diff --git a/assets/css/chapter-header.css b/assets/css/chapter-header.css index 1135497..be6b9e1 100644 --- a/assets/css/chapter-header.css +++ b/assets/css/chapter-header.css @@ -2,6 +2,9 @@ .chapter-header { position: relative; + margin-top: calc(var(--baseline)*-2.5); + width: calc(100% + 4px); + /* width: 101%; */ } .chapter-header .hgroup { @@ -10,15 +13,12 @@ font-weight: normal; position: relative; top: calc(var(--baseline)*-0.25 - 2px); - margin-bottom: calc(var(--baseline)*3 + 13px); + /* margin-bottom: calc(var(--baseline)*3 + 13px); */ /*padding-right: calc(var(--unit)*2);*/ position: relative; - padding-left: 15px; + /* padding-left: 15px; */ } -.chapter-header .type { - display: none; -} .chapter-header .hgroup h2 { @@ -29,7 +29,7 @@ /*display: inline;*/ box-sizing: border-box; text-align: center; - margin-top: 0; + margin-top: 1em; color: var(--sign-color); } @@ -38,7 +38,6 @@ padding-left: 0.25ch; padding-right: 0.25ch; box-decoration-break: clone; - /*background-color: var(--sign-color);*/ padding: 1px 0.25ch; text-transform: uppercase; } @@ -59,11 +58,17 @@ .chapter-header .author::before { display: none; } .chapter-header .bio { display: none; } -.hgroup-before, -.hgroup-after, -.chapter-header .title-before, + +.chapter-header .icon-type{ + text-align: center; +} + + +.chapter-header .title-between, .chapter-header .title-after, -.chapter-header .title-between { +.chapter-header .icon-type, +.chapter-header .type-container, +.chapter-header .type-separator{ font-size: var(--sign-size); color: var(--sign-color); letter-spacing: var(--sign-spacing); @@ -71,22 +76,35 @@ line-height: calc(var(--sign-baseline)*1); } -.chapter-header .title-before, -.chapter-header .title-after{ +.chapter-header .type-container{ + display: flex; + justify-content: space-between; +} + +.chapter-header .type{ +text-transform: uppercase; +} + + + + +/* .chapter-header .title-before, */ +/* .chapter-header .title-after{ white-space: nowrap; position: absolute; left: 0px; -} +} */ -.chapter-header .title-between{ +.chapter-header .title-between, +.chapter-header .title-after{ text-align: center; - font-size: 1em; + max-width: 1ch; + margin-inline: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; + /* font-size: 1em; */ } -.chapter-header .title-before { - top: calc(var(--baseline)*-2.5); - text-transform: uppercase; -} .chapter-header .title-after { bottom: calc(var(--baseline)*-2.25 + 1px); diff --git a/assets/css/notes.css b/assets/css/notes.css index 9187867..c26a72e 100644 --- a/assets/css/notes.css +++ b/assets/css/notes.css @@ -10,7 +10,7 @@ } .container-following-note { - margin-left: calc(var(--unit)*2); + margin-left: calc(var(--unit)*1.5); } .wrapper__note-call { @@ -41,5 +41,5 @@ .following-note_marker { position: absolute; - left: 0; + left: calc(var(--unit) * 0.75); } \ No newline at end of file diff --git a/assets/css/subtitles.css b/assets/css/subtitles.css index eeb71e8..d3ca68e 100644 --- a/assets/css/subtitles.css +++ b/assets/css/subtitles.css @@ -11,12 +11,17 @@ h3, h4{ color: var(--sign-color); } +h4::before{ + content: "///"; +} + .h3_container, .h4_container{ position: relative; } +h4::before, .subtitle-before, .subtitle-after{ letter-spacing:var(--sign-spacing); @@ -41,15 +46,20 @@ h3, h4{ .subtitle-text{ /* background-color: yellow; */ flex-grow: 2; + position: relative; + left: 5px; } + + .decor-h3{ font-size: var(--sign-size); color: var(--sign-color); letter-spacing: var(--sign-spacing); font-family: var(--sign-family); line-height: var(--sign-baseline); - position: absolute; + position: absolute; + display: none; } diff --git a/assets/css/text.css b/assets/css/text.css index 73d4fa1..65284e1 100644 --- a/assets/css/text.css +++ b/assets/css/text.css @@ -5,6 +5,8 @@ /* position: relative; */ orphans: 2; hyphens: 2; + text-indent: calc(var(--unit) * 0.75); + position: relative; } .chapter h2, @@ -14,7 +16,7 @@ p::before { - content: "........."; + /* content: "........."; */ font-size: var(--sign-size); color: var(--sign-color); letter-spacing: var(--sign-spacing); @@ -25,15 +27,33 @@ p::before { padding-left: 0px; padding-right: 0px; margin-right: -4px; + + content: "..."; + display: block; + position: absolute; + left: calc(var(--unit) * -0.75); + top: 7px; + background-color: red; } + +.first-p, +.following-title, +.following-h3, +.following-h4{ + text-indent: 0!important; +} + +.first-p::before, .following-title::before, -.following-h3::before { +.following-h3::before, +.following-h4::before { content: none; } + /* ------ BILBIOGRAPHIE ------ */ .block-type-bibliographie p { @@ -70,3 +90,6 @@ p::before { +sup{ + line-height: 0; +} \ No newline at end of file diff --git a/assets/js/plugins/decor-subtitles.js b/assets/js/plugins/decor-subtitles.js index 5e971fe..4a97ad9 100644 --- a/assets/js/plugins/decor-subtitles.js +++ b/assets/js/plugins/decor-subtitles.js @@ -101,13 +101,27 @@ class subtitlesDecor extends Paged.Handler { beforeParsed(content){ - content.querySelectorAll("h3").forEach(subtitle => { - const next = subtitle.nextElementSibling; - if (next) next.classList.add("following-h3"); + content.querySelectorAll("h3, h4").forEach(subtitle => { + const block = subtitle.closest('.block'); + const nextBlock = block?.nextElementSibling; + + if (!nextBlock) return; + + const firstP = nextBlock.querySelector('p'); + + if (!firstP) return; + + if (subtitle.tagName === "H3") { + firstP.classList.add("following-h3"); + } + + if (subtitle.tagName === "H4") { + firstP.classList.add("following-h4"); + } }); - content.querySelectorAll("h4").forEach(subtitle => { - const next = subtitle.nextElementSibling; - if (next) next.classList.add("following-h4"); + content.querySelectorAll(".chapter-content").forEach(chapter => { + let pfirst = chapter.querySelector('p'); + pfirst.classList.add("first-p"); }); } @@ -121,14 +135,14 @@ class subtitlesDecor extends Paged.Handler { this.processTitle(subtitle, symbol, true, isLeft); }); - pageElement.querySelectorAll("h4").forEach(subtitle => { - this.processTitle(subtitle, symbol, false, isLeft); - const container = document.createElement("div"); - container.className = "h4_container " + subtitle.className; - subtitle.className = ""; - subtitle.parentNode.insertBefore(container, subtitle); - container.appendChild(subtitle); - }); + // pageElement.querySelectorAll("h4").forEach(subtitle => { + // this.processTitle(subtitle, symbol, false, isLeft); + // const container = document.createElement("div"); + // container.className = "h4_container " + subtitle.className; + // subtitle.className = ""; + // subtitle.parentNode.insertBefore(container, subtitle); + // container.appendChild(subtitle); + // }); pageElement.querySelectorAll("h6").forEach(h6 => { if (h6.closest(".h6_container")) return; diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..b24a023 --- /dev/null +++ b/composer.lock @@ -0,0 +1,1219 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "0b7fb803e22a45eb87e24172337208aa", + "packages": [ + { + "name": "christian-riesen/base32", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/ChristianRiesen/base32.git", + "reference": "2e82dab3baa008e24a505649b0d583c31d31e894" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ChristianRiesen/base32/zipball/2e82dab3baa008e24a505649b0d583c31d31e894", + "reference": "2e82dab3baa008e24a505649b0d583c31d31e894", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.17", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^8.5.13 || ^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Base32\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Riesen", + "email": "chris.riesen@gmail.com", + "homepage": "http://christianriesen.com", + "role": "Developer" + } + ], + "description": "Base32 encoder/decoder according to RFC 4648", + "homepage": "https://github.com/ChristianRiesen/base32", + "keywords": [ + "base32", + "decode", + "encode", + "rfc4648" + ], + "support": { + "issues": "https://github.com/ChristianRiesen/base32/issues", + "source": "https://github.com/ChristianRiesen/base32/tree/1.6.0" + }, + "time": "2021-02-26T10:19:33+00:00" + }, + { + "name": "claviska/simpleimage", + "version": "4.4.0", + "source": { + "type": "git", + "url": "https://github.com/claviska/SimpleImage.git", + "reference": "6d928c779e343100cef40f75bac3e301c32c3741" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/claviska/SimpleImage/zipball/6d928c779e343100cef40f75bac3e301c32c3741", + "reference": "6d928c779e343100cef40f75bac3e301c32c3741", + "shasum": "" + }, + "require": { + "ext-gd": "*", + "league/color-extractor": "0.4.*", + "php": ">=8.0" + }, + "require-dev": { + "laravel/pint": "^1.5", + "phpstan/phpstan": "^1.10" + }, + "type": "library", + "autoload": { + "psr-0": { + "claviska": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cory LaViska", + "homepage": "http://www.abeautifulsite.net/", + "role": "Developer" + } + ], + "description": "A PHP class that makes working with images as simple as possible.", + "support": { + "issues": "https://github.com/claviska/SimpleImage/issues", + "source": "https://github.com/claviska/SimpleImage/tree/4.4.0" + }, + "funding": [ + { + "url": "https://github.com/claviska", + "type": "github" + } + ], + "time": "2025-11-20T16:58:37+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.4", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2025-08-20T19:15:30+00:00" + }, + { + "name": "filp/whoops", + "version": "2.18.4", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d", + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.18.4" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2025-08-08T12:00:00+00:00" + }, + { + "name": "getkirby/cms", + "version": "5.3.1", + "source": { + "type": "git", + "url": "https://github.com/getkirby/kirby.git", + "reference": "0ccfcabfbc86fc84127e876c249a75b7a15f1964" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/getkirby/kirby/zipball/0ccfcabfbc86fc84127e876c249a75b7a15f1964", + "reference": "0ccfcabfbc86fc84127e876c249a75b7a15f1964", + "shasum": "" + }, + "require": { + "christian-riesen/base32": "1.6.0", + "claviska/simpleimage": "4.4.0", + "composer/semver": "3.4.4", + "ext-ctype": "*", + "ext-curl": "*", + "ext-dom": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-iconv": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-simplexml": "*", + "filp/whoops": "2.18.4", + "getkirby/composer-installer": "^1.2.1", + "laminas/laminas-escaper": "2.18.0", + "michelf/php-smartypants": "1.8.1", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", + "phpmailer/phpmailer": "7.0.2", + "symfony/polyfill-intl-idn": "1.33.0", + "symfony/polyfill-mbstring": "1.33.0", + "symfony/yaml": "7.4.1" + }, + "replace": { + "symfony/polyfill-php72": "*" + }, + "suggest": { + "ext-apcu": "Support for the Apcu cache driver", + "ext-exif": "Support for exif information from images", + "ext-fileinfo": "Improved mime type detection for files", + "ext-imagick": "Improved thumbnail generation", + "ext-intl": "Improved i18n number formatting", + "ext-memcached": "Support for the Memcached cache driver", + "ext-pdo": "Support for using databases", + "ext-redis": "Support for the Redis cache driver", + "ext-sodium": "Support for the crypto class and more robust session handling", + "ext-zip": "Support for ZIP archive file functions", + "ext-zlib": "Sanitization and validation for svgz files" + }, + "type": "kirby-cms", + "autoload": { + "files": [ + "config/setup.php", + "config/helpers.php" + ], + "psr-4": { + "Kirby\\": "src/" + }, + "classmap": [ + "dependencies/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "authors": [ + { + "name": "Kirby Team", + "email": "support@getkirby.com", + "homepage": "https://getkirby.com" + } + ], + "description": "The Kirby core", + "homepage": "https://getkirby.com", + "keywords": [ + "cms", + "core", + "kirby" + ], + "support": { + "email": "support@getkirby.com", + "forum": "https://forum.getkirby.com", + "issues": "https://github.com/getkirby/kirby/issues", + "source": "https://github.com/getkirby/kirby" + }, + "funding": [ + { + "url": "https://getkirby.com/buy", + "type": "custom" + } + ], + "time": "2026-02-16T19:34:35+00:00" + }, + { + "name": "getkirby/composer-installer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/getkirby/composer-installer.git", + "reference": "c98ece30bfba45be7ce457e1102d1b169d922f3d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/getkirby/composer-installer/zipball/c98ece30bfba45be7ce457e1102d1b169d922f3d", + "reference": "c98ece30bfba45be7ce457e1102d1b169d922f3d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0" + }, + "require-dev": { + "composer/composer": "^1.8 || ^2.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Kirby\\ComposerInstaller\\Plugin" + }, + "autoload": { + "psr-4": { + "Kirby\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Kirby's custom Composer installer for the Kirby CMS and for Kirby plugins", + "homepage": "https://getkirby.com", + "support": { + "issues": "https://github.com/getkirby/composer-installer/issues", + "source": "https://github.com/getkirby/composer-installer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://getkirby.com/buy", + "type": "custom" + } + ], + "time": "2020-12-28T12:54:39+00:00" + }, + { + "name": "laminas/laminas-escaper", + "version": "2.18.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-escaper.git", + "reference": "06f211dfffff18d91844c1f55250d5d13c007e18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/06f211dfffff18d91844c1f55250d5d13c007e18", + "reference": "06f211dfffff18d91844c1f55250d5d13c007e18", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-mbstring": "*", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" + }, + "conflict": { + "zendframework/zend-escaper": "*" + }, + "require-dev": { + "infection/infection": "^0.31.0", + "laminas/laminas-coding-standard": "~3.1.0", + "phpunit/phpunit": "^11.5.42", + "psalm/plugin-phpunit": "^0.19.5", + "vimeo/psalm": "^6.13.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Escaper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", + "homepage": "https://laminas.dev", + "keywords": [ + "escaper", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-escaper/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-escaper/issues", + "rss": "https://github.com/laminas/laminas-escaper/releases.atom", + "source": "https://github.com/laminas/laminas-escaper" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2025-10-14T18:31:13+00:00" + }, + { + "name": "league/color-extractor", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/color-extractor.git", + "reference": "21fcac6249c5ef7d00eb83e128743ee6678fe505" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/color-extractor/zipball/21fcac6249c5ef7d00eb83e128743ee6678fe505", + "reference": "21fcac6249c5ef7d00eb83e128743ee6678fe505", + "shasum": "" + }, + "require": { + "ext-gd": "*", + "php": "^7.3 || ^8.0" + }, + "replace": { + "matthecat/colorextractor": "*" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2", + "phpunit/phpunit": "^9.5" + }, + "suggest": { + "ext-curl": "To download images from remote URLs if allow_url_fopen is disabled for security reasons" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\ColorExtractor\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathieu Lechat", + "email": "math.lechat@gmail.com", + "homepage": "http://matthecat.com", + "role": "Developer" + } + ], + "description": "Extract colors from an image as a human would do.", + "homepage": "https://github.com/thephpleague/color-extractor", + "keywords": [ + "color", + "extract", + "human", + "image", + "palette" + ], + "support": { + "issues": "https://github.com/thephpleague/color-extractor/issues", + "source": "https://github.com/thephpleague/color-extractor/tree/0.4.0" + }, + "time": "2022-09-24T15:57:16+00:00" + }, + { + "name": "michelf/php-smartypants", + "version": "1.8.1", + "source": { + "type": "git", + "url": "https://github.com/michelf/php-smartypants.git", + "reference": "47d17c90a4dfd0ccf1f87e25c65e6c8012415aad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/michelf/php-smartypants/zipball/47d17c90a4dfd0ccf1f87e25c65e6c8012415aad", + "reference": "47d17c90a4dfd0ccf1f87e25c65e6c8012415aad", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Michelf": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Michel Fortin", + "email": "michel.fortin@michelf.ca", + "homepage": "https://michelf.ca/", + "role": "Developer" + }, + { + "name": "John Gruber", + "homepage": "https://daringfireball.net/" + } + ], + "description": "PHP SmartyPants", + "homepage": "https://michelf.ca/projects/php-smartypants/", + "keywords": [ + "dashes", + "quotes", + "spaces", + "typographer", + "typography" + ], + "support": { + "issues": "https://github.com/michelf/php-smartypants/issues", + "source": "https://github.com/michelf/php-smartypants/tree/1.8.1" + }, + "time": "2016-12-13T01:01:17+00:00" + }, + { + "name": "phpmailer/phpmailer", + "version": "v7.0.2", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088", + "reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "doctrine/annotations": "^1.2.6 || ^1.13.3", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^10.0.0@dev", + "squizlabs/php_codesniffer": "^3.13.5", + "yoast/phpunit-polyfills": "^1.0.4" + }, + "suggest": { + "decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication", + "directorytree/imapengine": "For uploading sent messages via IMAP, see gmail example", + "ext-imap": "Needed to support advanced email address parsing according to RFC822", + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "ext-openssl": "Needed for secure SMTP sending and DKIM signing", + "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v7.0.2" + }, + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "time": "2026-01-09T18:02:33+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "symfony/polyfill-intl-normalizer": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-10T14:38:51+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "3833d7255cc303546435cb650316bff708a1c75c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-23T08:48:59+00:00" + }, + { + "name": "symfony/yaml", + "version": "v7.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "24dd4de28d2e3988b311751ac49e684d783e2345" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/24dd4de28d2e3988b311751ac49e684d783e2345", + "reference": "24dd4de28d2e3988b311751ac49e684d783e2345", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0|^8.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v7.4.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-04T18:11:45+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + }, + "platform-dev": {}, + "plugin-api-version": "2.9.0" +} diff --git a/kirby/composer.json b/kirby/composer.json index cd96766..ffce145 100644 --- a/kirby/composer.json +++ b/kirby/composer.json @@ -3,7 +3,7 @@ "description": "The Kirby core", "license": "proprietary", "type": "kirby-cms", - "version": "5.2.1", + "version": "5.3.1", "keywords": [ "kirby", "cms", @@ -43,7 +43,7 @@ "getkirby/composer-installer": "^1.2.1", "laminas/laminas-escaper": "2.18.0", "michelf/php-smartypants": "1.8.1", - "phpmailer/phpmailer": "7.0.1", + "phpmailer/phpmailer": "7.0.2", "symfony/polyfill-intl-idn": "1.33.0", "symfony/polyfill-mbstring": "1.33.0", "symfony/yaml": "7.4.1" diff --git a/kirby/composer.lock b/kirby/composer.lock index c909bd1..d6a8b2f 100644 --- a/kirby/composer.lock +++ b/kirby/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "fe434f2b1c0af831ff7f35c58f3584ea", + "content-hash": "a1686fb2832c359a095c842b56c7b086", "packages": [ { "name": "christian-riesen/base32", @@ -491,16 +491,16 @@ }, { "name": "phpmailer/phpmailer", - "version": "v7.0.1", + "version": "v7.0.2", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "360ae911ce62e25e11249f6140fa58939f556ebe" + "reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/360ae911ce62e25e11249f6140fa58939f556ebe", - "reference": "360ae911ce62e25e11249f6140fa58939f556ebe", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088", + "reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088", "shasum": "" }, "require": { @@ -561,7 +561,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v7.0.1" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v7.0.2" }, "funding": [ { @@ -569,7 +569,7 @@ "type": "github" } ], - "time": "2025-11-25T07:18:09+00:00" + "time": "2026-01-09T18:02:33+00:00" }, { "name": "psr/log", diff --git a/kirby/config/areas/account/dialogs.php b/kirby/config/areas/account/dialogs.php index fbdf0e8..a9493a6 100644 --- a/kirby/config/areas/account/dialogs.php +++ b/kirby/config/areas/account/dialogs.php @@ -59,7 +59,7 @@ return [ 'submit' => fn () => (new UserTotpEnableDialog())->submit() ], 'account.totp.disable' => [ - 'pattern' => '(account)/totp/disable', ...$dialogs['user.totp.disable'], + 'pattern' => '(account)/totp/disable', ], ]; diff --git a/kirby/config/areas/users/dialogs.php b/kirby/config/areas/users/dialogs.php index 00abd00..961dd1e 100644 --- a/kirby/config/areas/users/dialogs.php +++ b/kirby/config/areas/users/dialogs.php @@ -180,44 +180,57 @@ return [ $kirby = App::instance(); $user = Find::user($id); + $fields = [ + 'currentPassword' => Field::password([ + 'label' => I18n::translate('user.changePassword.' . ($kirby->user()->is($user) ? 'current' : 'own')), + 'autocomplete' => 'current-password', + 'help' => I18n::translate('account') . ': ' . App::instance()->user()->email(), + ]), + 'line' => [ + 'type' => 'line', + ], + 'password' => Field::password([ + 'label' => I18n::translate('user.changePassword.new'), + 'autocomplete' => 'new-password', + 'help' => I18n::translate('account') . ': ' . $user->email(), + ]), + 'passwordConfirmation' => Field::password([ + 'label' => I18n::translate('user.changePassword.new.confirm'), + 'autocomplete' => 'new-password' + ]) + ]; + + // if the currently logged in user tries to change their own password + // and has no password so far, password confirmation can be skipped + if ($user->isLoggedIn() === true && $user->hasPassword() === false) { + unset($fields['currentPassword'], $fields['line']); + } + return [ 'component' => 'k-form-dialog', 'props' => [ - 'fields' => [ - 'currentPassword' => Field::password([ - 'label' => I18n::translate('user.changePassword.' . ($kirby->user()->is($user) ? 'current' : 'own')), - 'autocomplete' => 'current-password', - 'help' => I18n::translate('account') . ': ' . App::instance()->user()->email(), - ]), - 'line' => [ - 'type' => 'line', - ], - 'password' => Field::password([ - 'label' => I18n::translate('user.changePassword.new'), - 'autocomplete' => 'new-password', - 'help' => I18n::translate('account') . ': ' . $user->email(), - ]), - 'passwordConfirmation' => Field::password([ - 'label' => I18n::translate('user.changePassword.new.confirm'), - 'autocomplete' => 'new-password' - ]) - ], + 'fields' => $fields, 'submitButton' => I18n::translate('change'), ] ]; }, 'submit' => function (string $id) { - $kirby = App::instance(); - $request = $kirby->request(); - + $kirby = App::instance(); + $request = $kirby->request(); $user = Find::user($id); $currentPassword = $request->get('currentPassword'); $password = $request->get('password'); $passwordConfirmation = $request->get('passwordConfirmation'); + // if the currently logged in user tries to change their own password + // and has no password so far, password confirmation can be skipped + $canSkipConfirmation = $user->isLoggedIn() === true && $user->hasPassword() === false; + // validate the current password of the acting user try { - $kirby->user()->validatePassword($currentPassword); + if ($canSkipConfirmation === false) { + $kirby->user()->validatePassword($currentPassword); + } } catch (Exception) { // catching and re-throwing exception to avoid automatic // sign-out of current user from the Panel diff --git a/kirby/config/components.php b/kirby/config/components.php index 012e084..aee367c 100644 --- a/kirby/config/components.php +++ b/kirby/config/components.php @@ -80,12 +80,14 @@ return [ $template = $mediaRoot . '/{{ name }}{{ attributes }}.{{ extension }}'; $thumbRoot = (new Filename($file->root(), $template, $options))->toString(); $thumbName = basename($thumbRoot); + $job = $mediaRoot . '/.jobs/' . $thumbName . '.json'; - // check if the thumb already exists - if (file_exists($thumbRoot) === false) { + // check if the thumb or job file already exists + if ( + file_exists($thumbRoot) === false && + file_exists($job) === false + ) { // if not, create job file - $job = $mediaRoot . '/.jobs/' . $thumbName . '.json'; - try { Data::write( $job, diff --git a/kirby/config/methods.php b/kirby/config/methods.php index bf8bccb..8061015 100644 --- a/kirby/config/methods.php +++ b/kirby/config/methods.php @@ -251,6 +251,9 @@ return function (App $app) { Field $field, string $separator = 'yaml' ) use ($app): Pages { + // always pass at least two arguments even if the + // data is empty so that `$site->find()` always + // returns a collection, not a single page return $app->site()->find( false, false, @@ -320,6 +323,9 @@ return function (App $app) { Field $field, string $separator = 'yaml' ) use ($app): Users { + // always pass at least two arguments even if the + // data is empty so that `$users->find()` always + // returns a collection, not a single user return $app->users()->find( false, false, diff --git a/kirby/i18n/translations/bg.json b/kirby/i18n/translations/bg.json index b9566d2..b893739 100644 --- a/kirby/i18n/translations/bg.json +++ b/kirby/i18n/translations/bg.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Моля въведете валиден URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Expand", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Previous", + "preview": "Preview", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Published", @@ -782,6 +788,7 @@ "user.create": "Добавете нов потребител", "user.delete": "Изтрийте потребителя", "user.delete.confirm": "Сигурни ли сте, че искате да изтриете
{email}?", + "user.setPassword": "Set password", "users": "Потребители", diff --git a/kirby/i18n/translations/bs.json b/kirby/i18n/translations/bs.json index c078e70..7517d78 100644 --- a/kirby/i18n/translations/bs.json +++ b/kirby/i18n/translations/bs.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Unesite važeći UUID", "error.validation.url": "Unesi važeći URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Proširi", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugini", "prev": "Previous", + "preview": "Pregled", + "preview.browser.scroll": "Sync scroll", "publish": "Objavi", "published": "Javno", @@ -782,6 +788,7 @@ "user.create": "Dodaj novog korisnika", "user.delete": "Obriši ovog korisnika", "user.delete.confirm": "Da li stvarno želite obrisati
{email}?", + "user.setPassword": "Set password", "users": "Korisnici", diff --git a/kirby/i18n/translations/ca.json b/kirby/i18n/translations/ca.json index 50d0841..4439060 100644 --- a/kirby/i18n/translations/ca.json +++ b/kirby/i18n/translations/ca.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Si us plau, introduïu una URL vàlida", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Expandir", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Anterior", + "preview": "Preview", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Publicat", @@ -782,6 +788,7 @@ "user.create": "Afegir un nou usuari", "user.delete": "Eliminar aquest usuari", "user.delete.confirm": "Segur que voleu eliminar
{email}?", + "user.setPassword": "Set password", "users": "Usuaris", diff --git a/kirby/i18n/translations/cs.json b/kirby/i18n/translations/cs.json index 11bde7c..8307084 100644 --- a/kirby/i18n/translations/cs.json +++ b/kirby/i18n/translations/cs.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Zadejte platné UUID", "error.validation.url": "Zadejte prosím platnou adresu URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Rozbalit", "expand.all": "Rozbalit vše", @@ -631,7 +635,9 @@ "plugin": "Doplněk", "plugins": "Doplňky", "prev": "Předchozí", + "preview": "Náhled", + "preview.browser.scroll": "Sync scroll", "publish": "Zveřejnit", "published": "Zveřejněno", @@ -782,6 +788,7 @@ "user.create": "Přidat nového uživatele", "user.delete": "Smazat tohoto uživatele", "user.delete.confirm": "Opravdu chcete smazat tohoto u\u017eivatele?", + "user.setPassword": "Set password", "users": "Uživatelé", diff --git a/kirby/i18n/translations/da.json b/kirby/i18n/translations/da.json index ca0d2a9..32dace2 100644 --- a/kirby/i18n/translations/da.json +++ b/kirby/i18n/translations/da.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Indtast venligst en gyldig URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Fold ud", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Forrige", + "preview": "Forhåndsvisning", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Udgivede", @@ -782,6 +788,7 @@ "user.create": "Tilføj en ny bruger", "user.delete": "Slet denne bruger", "user.delete.confirm": "\u00d8nsker du virkelig at slette denne bruger?", + "user.setPassword": "Set password", "users": "Brugere", diff --git a/kirby/i18n/translations/de.json b/kirby/i18n/translations/de.json index bee4082..4abca96 100644 --- a/kirby/i18n/translations/de.json +++ b/kirby/i18n/translations/de.json @@ -16,7 +16,7 @@ "changes": "Änderungen", "confirm": "OK", "collapse": "Zusammenklappen", - "collapse.all": "Collapse all", + "collapse.all": "Alle zusammenklappen", "color": "Farbe", "coordinates": "Koordinaten", "copy": "Kopieren", @@ -44,8 +44,8 @@ "delete": "L\u00f6schen", "delete.all": "Alle löschen", - "deselect": "Deselect", - "deselect.all": "Deselect all", + "deselect": "Abwählen", + "deselect.all": "Alles abwählen", "dialog.fields.empty": "Der Dialog hat keine Felder", "dialog.files.empty": "Keine verfügbaren Dateien", @@ -298,8 +298,12 @@ "error.validation.uuid": "Bitte gib eine gültige UUID an", "error.validation.url": "Bitte gib eine gültige URL ein", + "error.version.discard.permission": "Du darfst diese Version nicht verwerfen", + "error.version.publish.permission": "Du darfst diese Version nicht veröffentlichen", + "error.version.save.permission": "Du darfst diese Version nicht ändern", + "expand": "Aufklappen", - "expand.all": "Expand all", + "expand.all": "Alle aufklappen", "field.invalid": "Das Feld ist ungültig", "field.required": "Das Feld ist Pflicht", @@ -380,7 +384,7 @@ "field.structure.delete.confirm": "Willst du diesen Eintrag wirklich l\u00f6schen?", "field.structure.delete.confirm.all": "Möchtest du wirklich alle Einträge löschen?", - "field.structure.delete.confirm.selected": "Do you really want to delete the selected entries?", + "field.structure.delete.confirm.selected": "Willst du die ausgewählten Einträge wirklich löschen?", "field.structure.empty": "Es bestehen keine Eintr\u00e4ge.", "field.users.empty": "Keine Accounts ausgewählt", @@ -479,7 +483,7 @@ "license.code": "Code", "license.code.help": "Du hast deinen Lizenz Code nach dem Kauf per Email bekommen. Bitte kopiere sie aus der Email und füge sie hier ein. ", "license.code.label": "Bitte gib deinen Lizenzcode ein", - "license.remove.text": "

Removing the license will irreversibly delete the license file from this site. You can then activate this site with a different license key or re-register the same license key if the domain remains the same.

To change the domain associated with the license, please contact the Kirby team. Read more →

", + "license.remove.text": "

Durch das Entfernen der Lizenz wird die Lizenzdatei unwiderruflich von dieser Website gelöscht. Du kannst diese Website dann mit einem anderen Lizenzschlüssel aktivieren oder denselben Lizenzschlüssel erneut registrieren, wenn die Domain unverändert bleibt.

Um die mit der Lizenz verknüpfte Domain zu ändern, wende dich bitte an das Kirby-Team. Weiterlesen →

", "license.status.active.info": "Beinhaltet neue Major Versionen bis {date}", "license.status.active.label": "Gültige Lizenz", "license.status.demo.info": "Dies ist eine Demo Installation", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Vorheriger Eintrag", + "preview": "Vorschau", + "preview.browser.scroll": "Scrollen synchronisieren", "publish": "Veröffentlichen", "published": "Veröffentlicht", @@ -667,7 +673,7 @@ "security": "Sicherheit", "select": "Auswählen", - "select.all": "Select all", + "select.all": "Alles auswählen", "server": "Server", "settings": "Einstellungen", "show": "Anzeigen", @@ -776,12 +782,13 @@ "user.changePassword.current": "Dein aktuelles Passwort", "user.changePassword.new": "Neues Passwort", "user.changePassword.new.confirm": "Wiederhole das Passwort …", - "user.changePassword.own": "Your own password", + "user.changePassword.own": "Dein eigenes Passwort", "user.changeRole": "Rolle ändern", "user.changeRole.select": "Neue Rolle auswählen", "user.create": "Neuen Account anlegen", "user.delete": "Account löschen", "user.delete.confirm": "Willst du den Account
{email} wirklich löschen?", + "user.setPassword": "Passwort anlegen", "users": "Accounts", diff --git a/kirby/i18n/translations/el.json b/kirby/i18n/translations/el.json index a36fdee..16980ea 100644 --- a/kirby/i18n/translations/el.json +++ b/kirby/i18n/translations/el.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Expand", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Προηγούμενο", + "preview": "Preview", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Δημοσιευμένο", @@ -782,6 +788,7 @@ "user.create": "Προσθήκη νέου χρήστη", "user.delete": "Διαγραφή χρήστη", "user.delete.confirm": "\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03c3\u03af\u03b3\u03bf\u03c5\u03c1\u03b1 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc\u03bd \u03c4\u03bf\u03bd \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7;", + "user.setPassword": "Set password", "users": "Χρήστες", diff --git a/kirby/i18n/translations/en.json b/kirby/i18n/translations/en.json index ff62ccc..c4a3667 100644 --- a/kirby/i18n/translations/en.json +++ b/kirby/i18n/translations/en.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Please enter a valid URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Expand", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Previous", + "preview": "Preview", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Published", @@ -782,6 +788,7 @@ "user.create": "Add a new user", "user.delete": "Delete this user", "user.delete.confirm": "Do you really want to delete
{email}?", + "user.setPassword": "Set password", "users": "Users", diff --git a/kirby/i18n/translations/eo.json b/kirby/i18n/translations/eo.json index e5b03fd..7a8218e 100644 --- a/kirby/i18n/translations/eo.json +++ b/kirby/i18n/translations/eo.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Bonvolu entajpi validan URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Etendi", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Kromprogramoj", "prev": "Antaŭe", + "preview": "Antaŭrigardi", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Publikigita", @@ -782,6 +788,7 @@ "user.create": "Aldoni novan uzanton", "user.delete": "Forigi ĉi tiun uzanton", "user.delete.confirm": "Ĉu vi certe volas forigi
{email}?", + "user.setPassword": "Set password", "users": "Uzantoj", diff --git a/kirby/i18n/translations/es_419.json b/kirby/i18n/translations/es_419.json index 5c24127..f3f96b5 100644 --- a/kirby/i18n/translations/es_419.json +++ b/kirby/i18n/translations/es_419.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Por favor ingresa un URL válido", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Expandir", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Anterior", + "preview": "Previsualizar", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Publicado", @@ -782,6 +788,7 @@ "user.create": "Agregar un nuevo usuario", "user.delete": "Eliminar este usuario", "user.delete.confirm": "¿Estás seguro que deseas eliminar
{email}?", + "user.setPassword": "Set password", "users": "Usuarios", diff --git a/kirby/i18n/translations/es_ES.json b/kirby/i18n/translations/es_ES.json index efcabfa..e393edc 100644 --- a/kirby/i18n/translations/es_ES.json +++ b/kirby/i18n/translations/es_ES.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Por favor, introduce un URL válido", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Expandir", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Anterior", + "preview": "Previsualizar", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Publicadas", @@ -782,6 +788,7 @@ "user.create": "Añadir un nuevo usuario", "user.delete": "Eliminar este usuario", "user.delete.confirm": "¿Realmente quieres eliminar
{email}?", + "user.setPassword": "Set password", "users": "Usuarios", diff --git a/kirby/i18n/translations/fa.json b/kirby/i18n/translations/fa.json index 40ef7ef..336c94b 100644 --- a/kirby/i18n/translations/fa.json +++ b/kirby/i18n/translations/fa.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "لطفا آدرس URL صحیح وارد کنید", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Expand", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "قبلی", + "preview": "Preview", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "منتشر شده", @@ -782,6 +788,7 @@ "user.create": "افزودن کاربر جدید", "user.delete": "حذف کاربر جاری", "user.delete.confirm": "آیا واقعا میخواهید {email} را حذف کنید؟", + "user.setPassword": "Set password", "users": "کاربران", diff --git a/kirby/i18n/translations/fi.json b/kirby/i18n/translations/fi.json index 2f3633d..5f67ce1 100644 --- a/kirby/i18n/translations/fi.json +++ b/kirby/i18n/translations/fi.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Anna kelpaava URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Laajenna", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Liitännäinen", "plugins": "Liitännäiset", "prev": "Edellinen", + "preview": "Esikatselu", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Julkaistut", @@ -782,6 +788,7 @@ "user.create": "Lisää uusi käyttäjä", "user.delete": "Poista tämä käyttäjä", "user.delete.confirm": "Haluatko varmsti poistaa käyttäjän
{email}?", + "user.setPassword": "Set password", "users": "Käyttäjät", diff --git a/kirby/i18n/translations/fr.json b/kirby/i18n/translations/fr.json index 87bb720..ee116a9 100644 --- a/kirby/i18n/translations/fr.json +++ b/kirby/i18n/translations/fr.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Veuillez saisir un UUID valide", "error.validation.url": "Veuillez saisir une URL valide", + "error.version.discard.permission": "Vous n’êtes pas autorisé à supprimer cette version", + "error.version.publish.permission": "Vous n’êtes pas autorisé à publier cette version", + "error.version.save.permission": "Vous n’êtes pas autorisé à modifier cette version", + "expand": "Déplier", "expand.all": "Tout déplier", @@ -311,7 +315,7 @@ "field.blocks.delete.confirm.all": "Voulez-vous vraiment supprimer tous les blocs ?", "field.blocks.delete.confirm.selected": "Voulez-vous vraiment supprimer les blocs sélectionnés ?", "field.blocks.empty": "Pas encore de blocs", - "field.blocks.fieldsets.empty": "Pas encore d‘ensembles de champs", + "field.blocks.fieldsets.empty": "Pas encore d’ensembles de champs", "field.blocks.fieldsets.label": "Veuillez sélectionner un type de bloc…", "field.blocks.fieldsets.paste": "Pressez {{ shortcut }} pour importer des dispositions ou blocs depuis votre presse-papier Seuls ceux autorisés dans le champ actuel seront insérés.", "field.blocks.gallery.name": "Galerie", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Précédent", + "preview": "Prévisualiser", + "preview.browser.scroll": "Synchroniser le défilement", "publish": "Publier", "published": "Publié", @@ -782,6 +788,7 @@ "user.create": "Ajouter un nouvel utilisateur", "user.delete": "Supprimer cet utilisateur", "user.delete.confirm": "Voulez-vous vraiment supprimer
{email} ?", + "user.setPassword": "Définir un mot de passe", "users": "Utilisateurs", diff --git a/kirby/i18n/translations/hu.json b/kirby/i18n/translations/hu.json index 048b24c..eeb72a9 100644 --- a/kirby/i18n/translations/hu.json +++ b/kirby/i18n/translations/hu.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Kérlek megfelelő URL-t adj meg", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Kinyitás", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Pluginek", "prev": "Előző", + "preview": "Előnézet", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Publikálva", @@ -782,6 +788,7 @@ "user.create": "Új felhasználó hozzáadása", "user.delete": "Felhasználó törlése", "user.delete.confirm": "Biztos törlöd ezt a felhasználót:
{email}?", + "user.setPassword": "Set password", "users": "Felhasználók", diff --git a/kirby/i18n/translations/id.json b/kirby/i18n/translations/id.json index 5ff479e..3f49dca 100644 --- a/kirby/i18n/translations/id.json +++ b/kirby/i18n/translations/id.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Masukkan UUID yang valid", "error.validation.url": "Masukkan URL yang valid", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Luaskan", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Sebelumnya", + "preview": "Pratinjau", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Dipublikasikan", @@ -782,6 +788,7 @@ "user.create": "Tambah pengguna baru", "user.delete": "Hapus pengguna ini", "user.delete.confirm": "Anda yakin menghapus
{email}?", + "user.setPassword": "Set password", "users": "Pengguna", diff --git a/kirby/i18n/translations/is_IS.json b/kirby/i18n/translations/is_IS.json index d771be4..cd7341c 100644 --- a/kirby/i18n/translations/is_IS.json +++ b/kirby/i18n/translations/is_IS.json @@ -1,5 +1,5 @@ { - "account": "Account", + "account": "Reikningur", "account.changeName": "Breyta nafninu þínu", "account.delete": "Eyða notandareikning þínum", "account.delete.confirm": "Ertu alveg viss um að þú viljir endanlega eyða reikningnum þínum? Þú munt verða útskráð/ur án tafar. Ómögulegt verður að endurheimta reikninginn þinn.", @@ -16,7 +16,7 @@ "changes": "Breytingar", "confirm": "OK", "collapse": "Fella", - "collapse.all": "Collapse all", + "collapse.all": "Fella allt", "color": "Litur", "coordinates": "Hnit", "copy": "Afrita", @@ -44,8 +44,8 @@ "delete": "Eyða", "delete.all": "Eyða hreint öllu", - "deselect": "Deselect", - "deselect.all": "Deselect all", + "deselect": "Afvelja", + "deselect.all": "Afvelja allt", "dialog.fields.empty": "Þessi valmynd hefur engin svið", "dialog.files.empty": "Engar skrár til að velja úr", @@ -298,8 +298,12 @@ "error.validation.uuid": "Vinsamlegast gillt UUID (Notandakenni)", "error.validation.url": "Ákjósanleg vefslóð", + "error.version.discard.permission": "Þú mátt ekki hunsa þessa útgáfu", + "error.version.publish.permission": "Þú mátt ekki gefa út þessa útgáfu", + "error.version.save.permission": "Þú mátt ekki breyta þessari útgáfu", + "expand": "Þenja út", - "expand.all": "Expand all", + "expand.all": "Sýna allt", "field.invalid": "Þetta svið er bara ógillt sem stendur.", "field.required": "Þetta svið er nauðsynlegt", @@ -380,7 +384,7 @@ "field.structure.delete.confirm": "Viltu virkilega eyða þessari röð?", "field.structure.delete.confirm.all": "Ætlar þú virkilega að eyða öllum færslum?", - "field.structure.delete.confirm.selected": "Do you really want to delete the selected entries?", + "field.structure.delete.confirm.selected": "Viltu virkilega eyða völdum færslum?", "field.structure.empty": "Engar færslur enn", "field.users.empty": "Engir notendur valdir enn", @@ -479,7 +483,7 @@ "license.code": "Kóðasnið", "license.code.help": "Þú fékkst leyfiskóðan sendan í tölvupósti eftir að þú borgaðir fyrir leyfið. Vinsamlegast afritaðu hann hingað.", "license.code.label": "Vinsamlegast settu inn leyfiskóðan", - "license.remove.text": "

Removing the license will irreversibly delete the license file from this site. You can then activate this site with a different license key or re-register the same license key if the domain remains the same.

To change the domain associated with the license, please contact the Kirby team. Read more →

", + "license.remove.text": "

Að fjarlægja leyfið mun eyða leyfisskránni varanlega af þessu vefsvæði. Þú getur síðan virkjað vefsvæðið með öðrum leyfislykli eða skráð sama leyfislykil aftur, svo framarlega sem lénið helst óbreytt.

Til að breyta léninu sem leyfið er tengt við, vinsamlegast hafðu samband við Kirby-teymið.Lesa nánar →

", "license.status.active.info": "Felur í sér allar útgáfur þar til {date}", "license.status.active.label": "Gilt skráningarleyfi", "license.status.demo.info": "Þessi uppsetning er til prófunar.", @@ -631,7 +635,9 @@ "plugin": "Viðbót", "plugins": "Viðbætur", "prev": "Fyrri", + "preview": "Forskoða", + "preview.browser.scroll": "Skruna í takt", "publish": "Útgefa", "published": "Útgefnar og listaðar", @@ -667,7 +673,7 @@ "security": "Öryggi", "select": "Velja", - "select.all": "Select all", + "select.all": "Velja allt", "server": "Vefþjónn", "settings": "Stillingar", "show": "Sýna", @@ -776,12 +782,13 @@ "user.changePassword.current": "Þitt núverandi lykilorð", "user.changePassword.new": "Nýtt lykilorð", "user.changePassword.new.confirm": "Staðfestu nýtt lykilorð…", - "user.changePassword.own": "Your own password", + "user.changePassword.own": "Þitt eigið lykilorð", "user.changeRole": "Breyta hlutverki", "user.changeRole.select": "Veldu nýtt hlutverk", "user.create": "Bæta við nýjum notenda", "user.delete": "Farga þessum notenda", "user.delete.confirm": "Viltu virkilega eyða
{email}?", + "user.setPassword": "Setja lykilorð", "users": "Notendur", diff --git a/kirby/i18n/translations/it.json b/kirby/i18n/translations/it.json index f55b0eb..a1da97b 100644 --- a/kirby/i18n/translations/it.json +++ b/kirby/i18n/translations/it.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Inserisci un URL valido", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Espandi", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Precedente", + "preview": "Anteprima", + "preview.browser.scroll": "Sync scroll", "publish": "Pubblica", "published": "Pubblicato", @@ -782,6 +788,7 @@ "user.create": "Aggiungi nuovo utente", "user.delete": "Elimina questo utente", "user.delete.confirm": "Sei sicuro di voler eliminare l'utente
{email}?", + "user.setPassword": "Set password", "users": "Utenti", diff --git a/kirby/i18n/translations/ko.json b/kirby/i18n/translations/ko.json index 70aebcc..949d464 100644 --- a/kirby/i18n/translations/ko.json +++ b/kirby/i18n/translations/ko.json @@ -298,6 +298,10 @@ "error.validation.uuid": "올바른 UUID를 입력하세요.", "error.validation.url": "올바른 URL을 입력하세요.", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "열기", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "플러그인", "plugins": "플러그인", "prev": "이전", + "preview": "미리 보기", + "preview.browser.scroll": "Sync scroll", "publish": "발행", "published": "발행", @@ -782,6 +788,7 @@ "user.create": "사용자 추가", "user.delete": "사용자 삭제", "user.delete.confirm": "사용자({email})를 삭제할까요?", + "user.setPassword": "Set password", "users": "사용자", diff --git a/kirby/i18n/translations/lt.json b/kirby/i18n/translations/lt.json index 73fbec2..f42f329 100644 --- a/kirby/i18n/translations/lt.json +++ b/kirby/i18n/translations/lt.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Prašome įrašyti teisingą URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Išskleisti", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Įskiepas", "plugins": "Įskiepai", "prev": "Ankstesnis", + "preview": "Peržiūra", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Paskelbti", @@ -782,6 +788,7 @@ "user.create": "Pridėti naują vartotoją", "user.delete": "Pašalinti šį vartotoją", "user.delete.confirm": "Ar tikrai norite pašalinti vartotoją
{email}?", + "user.setPassword": "Set password", "users": "Vartotojai", diff --git a/kirby/i18n/translations/nb.json b/kirby/i18n/translations/nb.json index 9b8deef..c0b3b18 100644 --- a/kirby/i18n/translations/nb.json +++ b/kirby/i18n/translations/nb.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Vennligst skriv inn en gyldig URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Utvid", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Utvidelse", "plugins": "Plugins", "prev": "Forrige", + "preview": "Forhåndsvisning", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Publisert", @@ -782,6 +788,7 @@ "user.create": "Legg til ny bruker", "user.delete": "Slett denne brukeren", "user.delete.confirm": "Vil du virkelig slette denne konten?", + "user.setPassword": "Set password", "users": "Brukere", diff --git a/kirby/i18n/translations/nl.json b/kirby/i18n/translations/nl.json index 57ea977..70bb8ed 100644 --- a/kirby/i18n/translations/nl.json +++ b/kirby/i18n/translations/nl.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Vul een geldige UUID in", "error.validation.url": "Vul een geldige URL in", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Open", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Vorige", + "preview": "Voorbeeld", + "preview.browser.scroll": "Sync scroll", "publish": "Publiceren", "published": "Gepubliceerd", @@ -782,6 +788,7 @@ "user.create": "Voeg een nieuwe gebruiker toe", "user.delete": "Verwijder deze gebruiker", "user.delete.confirm": "Weet je zeker dat je
{email} wil verwijderen?", + "user.setPassword": "Set password", "users": "Gebruikers", diff --git a/kirby/i18n/translations/pl.json b/kirby/i18n/translations/pl.json index 2791948..d197a1c 100644 --- a/kirby/i18n/translations/pl.json +++ b/kirby/i18n/translations/pl.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Wprowadź prawidłowy identyfikator UUID", "error.validation.url": "Wprowadź poprawny adres URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Rozwiń", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Wtyczka", "plugins": "Wtyczki", "prev": "Poprzednie", + "preview": "Podgląd", + "preview.browser.scroll": "Sync scroll", "publish": "Opublikuj", "published": "Opublikowane", @@ -782,6 +788,7 @@ "user.create": "Dodaj nowego użytkownika", "user.delete": "Usuń tego użytkownika", "user.delete.confirm": "Czy na pewno chcesz usunąć
{email}?", + "user.setPassword": "Set password", "users": "Użytkownicy", diff --git a/kirby/i18n/translations/pt_BR.json b/kirby/i18n/translations/pt_BR.json index 02a02b8..da2b0e3 100644 --- a/kirby/i18n/translations/pt_BR.json +++ b/kirby/i18n/translations/pt_BR.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Por favor, insira um UUID válido", "error.validation.url": "Digite uma URL válida", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Expandir", "expand.all": "Expandir todos", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Anterior", + "preview": "Visualizar", + "preview.browser.scroll": "Sync scroll", "publish": "Publicar", "published": "Publicadas", @@ -782,6 +788,7 @@ "user.create": "Adicionar novo usuário", "user.delete": "Deletar este usuário", "user.delete.confirm": "Deseja realmente deletar
{email}?", + "user.setPassword": "Set password", "users": "Usuários", diff --git a/kirby/i18n/translations/pt_PT.json b/kirby/i18n/translations/pt_PT.json index 20b8f76..37a3b2f 100644 --- a/kirby/i18n/translations/pt_PT.json +++ b/kirby/i18n/translations/pt_PT.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Por favor, insira um UUID válido", "error.validation.url": "Por favor, insira um URL válido", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Expandir", "expand.all": "Expandir todos", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Anterior", + "preview": "Pré-visualizar", + "preview.browser.scroll": "Sync scroll", "publish": "Publicar", "published": "Publicadas", @@ -782,6 +788,7 @@ "user.create": "Adicionar um novo utilizador", "user.delete": "Eliminar este utilizador", "user.delete.confirm": "Tem a certeza que pretende eliminar
{email}?", + "user.setPassword": "Set password", "users": "Utilizadores", diff --git a/kirby/i18n/translations/ro.json b/kirby/i18n/translations/ro.json index fdea475..d19c9a2 100644 --- a/kirby/i18n/translations/ro.json +++ b/kirby/i18n/translations/ro.json @@ -1,5 +1,5 @@ { - "account": "Account", + "account": "Cont", "account.changeName": "Schimbă-ți numele", "account.delete": "Șterge-ți contul", "account.delete.confirm": "Chiar vrei să îți ștergi contul? Vei fi deconectat imediat. Contul nu poate fi recuperat.", @@ -16,7 +16,7 @@ "changes": "Schimbări", "confirm": "Ok", "collapse": "Pliază", - "collapse.all": "Collapse all", + "collapse.all": "Închide toate", "color": "Culoare", "coordinates": "Coordonate", "copy": "Copiază", @@ -44,8 +44,8 @@ "delete": "\u0218terge", "delete.all": "Șterge toate", - "deselect": "Deselect", - "deselect.all": "Deselect all", + "deselect": "Deselectează", + "deselect.all": "Deselectează toate", "dialog.fields.empty": "Acest dialog nu are niciun câmp", "dialog.files.empty": "Nu există fișiere de selectat", @@ -298,8 +298,12 @@ "error.validation.uuid": "Te rog introdu un UUID valid", "error.validation.url": "Te rog introdu un URL valid", + "error.version.discard.permission": "Nu ai voie să înlături această versiune", + "error.version.publish.permission": "Nu ai voie să publici această versiune", + "error.version.save.permission": "Nu ai voie să modifici această versiune", + "expand": "Extinde", - "expand.all": "Expand all", + "expand.all": "Deschide toate", "field.invalid": "Câmpul este nevalid", "field.required": "Acest câmp este necesar", @@ -380,7 +384,7 @@ "field.structure.delete.confirm": "Chiar vrei să ștergi acest rând?", "field.structure.delete.confirm.all": "Chiar vrei să ștergi toate înregistrările?", - "field.structure.delete.confirm.selected": "Do you really want to delete the selected entries?", + "field.structure.delete.confirm.selected": "Chiar vrei să ștergi toate intrările alese?", "field.structure.empty": "Nicio înregistrare deocamdată", "field.users.empty": "Niciun utilizator ales deocamdată", @@ -479,7 +483,7 @@ "license.code": "Cod", "license.code.help": "Ați primit codul de licență după achiziție prin e-mail. Vă rugăm să-l copiați și să-l inserezi aici.", "license.code.label": "Te rog introdu codul tău de licență", - "license.remove.text": "

Removing the license will irreversibly delete the license file from this site. You can then activate this site with a different license key or re-register the same license key if the domain remains the same.

To change the domain associated with the license, please contact the Kirby team. Read more →

", + "license.remove.text": "

Prin înlăturarea licenței se va șterge în mod ireversibil fișierul de licență de pe acest site. Vei putea apoi activa site-ul cu o altă cheie de licență sau să folosești din nou aceeași cheie în caz că domeniul rămâne același.

Pentru a schimba domeniul asociat licenței, contactează te rog echipa Kirby. Citește mai multe →

", "license.status.active.info": "Include noi versiuni majore până la data de {date}", "license.status.active.label": "Licență validă", "license.status.demo.info": "Aceasta este o instalare demo", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugin-uri", "prev": "Precedenta", + "preview": "Previzualizează", + "preview.browser.scroll": "Sync scroll", "publish": "Publică", "published": "Publicate", @@ -667,7 +673,7 @@ "security": "Securitate", "select": "Alege", - "select.all": "Select all", + "select.all": "Alege toate", "server": "Server", "settings": "Reglaje", "show": "Arată", @@ -776,12 +782,13 @@ "user.changePassword.current": "Parola ta curentă", "user.changePassword.new": "Parola nouă", "user.changePassword.new.confirm": "Confirmă parola nouă...", - "user.changePassword.own": "Your own password", + "user.changePassword.own": "Parola proprie", "user.changeRole": "Schimbă rolul", "user.changeRole.select": "Alege un rol nou", "user.create": "Adaugă un nou utilizator", "user.delete": "Șterge acest utilizator", "user.delete.confirm": "Chiar vrei să ștergi
{email}?", + "user.setPassword": "Set password", "users": "Utilizatori", diff --git a/kirby/i18n/translations/ru.json b/kirby/i18n/translations/ru.json index ff7ebfc..310a89a 100644 --- a/kirby/i18n/translations/ru.json +++ b/kirby/i18n/translations/ru.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Пожалуйста, введите правильный UUID", "error.validation.url": "Пожалуйста, введите правильный URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Развернуть", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Расширение", "plugins": "Плагины", "prev": "Предыдущий", + "preview": "Предпросмотр", + "preview.browser.scroll": "Sync scroll", "publish": "Опубликовать", "published": "Опубликовано", @@ -782,6 +788,7 @@ "user.create": "Добавить нового пользователя", "user.delete": "Удалить этого пользователя", "user.delete.confirm": "Вы действительно хотите аккаунт
{email}?", + "user.setPassword": "Set password", "users": "Пользователи", diff --git a/kirby/i18n/translations/sk.json b/kirby/i18n/translations/sk.json index d010942..1050c3d 100644 --- a/kirby/i18n/translations/sk.json +++ b/kirby/i18n/translations/sk.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Please enter a valid UUID", "error.validation.url": "Prosím, zadajte platnú URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Rozbaliť", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Plugin", "plugins": "Plugins", "prev": "Predchádzajúci", + "preview": "Preview", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Zverejnené", @@ -782,6 +788,7 @@ "user.create": "Pridať nového užívateľa", "user.delete": "Zmazať tohto užívateľa", "user.delete.confirm": "Ste si istý, že chcete zmazať
{email}?", + "user.setPassword": "Set password", "users": "Užívatelia", diff --git a/kirby/i18n/translations/sr@latin.json b/kirby/i18n/translations/sr@latin.json index a3393ee..49228c3 100644 --- a/kirby/i18n/translations/sr@latin.json +++ b/kirby/i18n/translations/sr@latin.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Molimo vas unesite važeći UUID", "error.validation.url": "Molimo vas da unesete važeći URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Proširite", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Dodatak", "plugins": "Dodaci", "prev": "Prethodna", + "preview": "Pregled", + "preview.browser.scroll": "Sync scroll", "publish": "Publish", "published": "Objavljeno", @@ -782,6 +788,7 @@ "user.create": "Dodajte novog korisnika", "user.delete": "Izbrišite ovog korisnika", "user.delete.confirm": "Da li zaista želite da izbrišete
{email}?", + "user.setPassword": "Set password", "users": "Korisnici", diff --git a/kirby/i18n/translations/sv_SE.json b/kirby/i18n/translations/sv_SE.json index 70dfa98..d5f853d 100644 --- a/kirby/i18n/translations/sv_SE.json +++ b/kirby/i18n/translations/sv_SE.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Ange ett giltigt UUID", "error.validation.url": "Ange en giltig URL", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "Expandera", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "Tillägg", "plugins": "Tillägg", "prev": "Föregående", + "preview": "Förhandsgranska", + "preview.browser.scroll": "Sync scroll", "publish": "Publicera", "published": "Publicerade", @@ -782,6 +788,7 @@ "user.create": "Lägg till en ny användare", "user.delete": "Radera denna användare", "user.delete.confirm": "Vill du verkligen radera
{email}?", + "user.setPassword": "Set password", "users": "Användare", diff --git a/kirby/i18n/translations/tr.json b/kirby/i18n/translations/tr.json index 101c311..87ce950 100644 --- a/kirby/i18n/translations/tr.json +++ b/kirby/i18n/translations/tr.json @@ -298,6 +298,10 @@ "error.validation.uuid": "Lütfen geçerli bir UUID girin", "error.validation.url": "Lütfen geçerli bir adres girin", + "error.version.discard.permission": "Bu sürümü silmenize izin verilmiyor.", + "error.version.publish.permission": "Bu sürümü yayınlamanıza izin verilmiyor.", + "error.version.save.permission": "Bu sürümü değiştirmenize izin verilmiyor.", + "expand": "Genişlet", "expand.all": "Tümünü genişlet", @@ -631,7 +635,9 @@ "plugin": "Eklenti", "plugins": "Eklentiler", "prev": "Önceki", + "preview": "Önizle", + "preview.browser.scroll": "Senkronize kaydırma", "publish": "Yayınla", "published": "Yayınlandı", @@ -782,6 +788,7 @@ "user.create": "Yeni bir kullanıcı ekle", "user.delete": "Bu kullanıcıyı sil", "user.delete.confirm": "{email} kullanıcısını silmek istediğinizden emin misiniz?", + "user.setPassword": "Şifre belirle", "users": "Kullanıcılar", diff --git a/kirby/i18n/translations/zh_TW.json b/kirby/i18n/translations/zh_TW.json index a0fa196..fd5a0a7 100644 --- a/kirby/i18n/translations/zh_TW.json +++ b/kirby/i18n/translations/zh_TW.json @@ -298,6 +298,10 @@ "error.validation.uuid": "請輸入有效的 UUID", "error.validation.url": "請輸入有效的網址", + "error.version.discard.permission": "You are not allowed to discard this version", + "error.version.publish.permission": "You are not allowed to publish this version", + "error.version.save.permission": "You are not allowed to change this version", + "expand": "展開", "expand.all": "Expand all", @@ -631,7 +635,9 @@ "plugin": "外掛", "plugins": "外掛列表", "prev": "上一步", + "preview": "預覽", + "preview.browser.scroll": "Sync scroll", "publish": "發佈", "published": "已發佈", @@ -782,6 +788,7 @@ "user.create": "新增使用者", "user.delete": "刪除使用者", "user.delete.confirm": "你確定要刪除「{email}」嗎?", + "user.setPassword": "Set password", "users": "使用者", diff --git a/kirby/panel/dist/css/style.min.css b/kirby/panel/dist/css/style.min.css index aa184a2..fe81900 100644 --- a/kirby/panel/dist/css/style.min.css +++ b/kirby/panel/dist/css/style.min.css @@ -1 +1 @@ -.k-items{position:relative;display:grid;container-type:inline-size}.k-items[data-layout=list]{gap:2px}.k-items[data-layout=cardlets]{--items-size: 1fr;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(var(--items-size),1fr))}@container (min-width: 15rem){.k-items[data-layout=cardlets]{--items-size: 15rem}}.k-items[data-layout=cards]{display:grid;gap:1.5rem;grid-template-columns:1fr}@container (min-width: 6rem){.k-items[data-layout=cards][data-size=tiny]{grid-template-columns:repeat(auto-fill,minmax(6rem,1fr))}}@container (min-width: 9rem){.k-items[data-layout=cards][data-size=small]{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr))}}@container (min-width: 12rem){.k-items[data-layout=cards][data-size=auto],.k-items[data-layout=cards][data-size=medium]{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}}@container (min-width: 15rem){.k-items[data-layout=cards][data-size=large]{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}}@container (min-width: 18rem){.k-items[data-layout=cards][data-size=huge]{grid-template-columns:repeat(auto-fill,minmax(18rem,1fr))}}.k-collection-footer{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:nowrap;gap:var(--spacing-12);margin-top:var(--spacing-2)}.k-empty{max-width:100%}.k-item-image{--back: var(--item-color-image);--icon-color: var(--item-color-icon)}:root{--item-button-height: var(--height-md);--item-button-width: var(--height-md);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--item-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-400);--item-color-icon: var(--csstools-light-dark-toggle--1, var(--color-gray-800));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-950);--item-color-image: var(--csstools-light-dark-toggle--2, var(--color-gray-300));--item-height: auto;--item-height-cardlet: calc(var(--height-md) * 3);--item-shadow: var(--shadow-sm)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--item-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-400);--item-color-icon: var(--csstools-light-dark-toggle--1, var(--color-gray-800));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-950);--item-color-image: var(--csstools-light-dark-toggle--2, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:root{--item-color-back: light-dark(var(--color-white), var(--color-gray-850));--item-color-icon: light-dark(var(--color-gray-800), var(--color-gray-400));--item-color-image: light-dark(var(--color-gray-300), var(--color-gray-950))}}.k-item{position:relative;background:var(--item-color-back);box-shadow:var(--item-shadow);border-radius:var(--rounded);min-height:var(--item-height);container-type:inline-size}.k-item:has(a:focus){outline:2px solid var(--color-focus)}.k-item-content{line-height:1.25;overflow:hidden;padding:var(--spacing-2)}.k-item-content a:focus{outline:0}.k-item-content a:after{content:"";position:absolute;inset:0}.k-item-info{color:var(--color-text-dimmed)}.k-item-options{transform:translate(0);z-index:1;display:flex;align-items:center;justify-content:space-between}.k-item-options:has(>:first-child:last-child){justify-content:flex-end}.k-item-options .k-button{--button-height: var(--item-button-height);--button-width: var(--item-button-width)}.k-item .k-sort-button{position:absolute;z-index:2}.k-item:not(:hover):not(.k-sortable-fallback) .k-sort-button{opacity:0}.k-item[data-layout=list]{--item-height: var( --field-input-height );--item-button-height: var(--item-height);--item-button-width: auto;display:grid;align-items:center;grid-template-columns:1fr auto}.k-item[data-layout=list][data-has-image=true]{grid-template-columns:var(--item-height) 1fr auto}.k-item[data-layout=list] .k-frame{--ratio: 1/1;border-start-start-radius:var(--rounded);border-end-start-radius:var(--rounded);height:100%}.k-item[data-layout=list] .k-item-content{display:flex;min-width:0;flex-wrap:wrap;column-gap:var(--spacing-4);justify-content:space-between}.k-item[data-layout=list] .k-item-title,.k-item[data-layout=list] .k-item-info{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@container (max-width: 25rem){.k-item[data-layout=list] .k-item-content:has(.k-item-info){flex-direction:column}}.k-item[data-layout=list] .k-sort-button{--button-width: calc(1.5rem + var(--spacing-1));--button-height: var(--item-height);left:calc(-1 * var(--button-width))}.k-item:is([data-layout=cardlets],[data-layout=cards]) .k-sort-button{top:var(--spacing-2);inset-inline-start:var(--spacing-2);--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-white);color:var(--csstools-light-dark-toggle--3, var(--color-black));--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) 7%;background:hsla(0,0%,var(--csstools-light-dark-toggle--4, 100%),50%);background:hsla(0,0%,light-dark(100%,7%),50%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 2px 5px #0003;--button-width: 1.5rem;--button-height: 1.5rem;--button-rounded: var(--rounded-sm);--button-padding: 0;--icon-size: 14px}@supports (color: light-dark(red,red)){.k-item:is([data-layout=cardlets],[data-layout=cards]) .k-sort-button{color:light-dark(var(--color-black),var(--color-white))}}.k-item:is([data-layout=cardlets],[data-layout=cards]) .k-sort-button:hover{--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) 7%;background:hsla(0,0%,var(--csstools-light-dark-toggle--5, 100%),95%);background:hsla(0,0%,light-dark(100%,7%),95%)}.k-item[data-layout=cardlets]{--item-height: var(--item-height-cardlet);display:grid;grid-template-areas:"content" "options";grid-template-columns:1fr;grid-template-rows:1fr var(--height-md)}.k-item[data-layout=cardlets][data-has-image=true]{grid-template-areas:"image content" "image options";grid-template-columns:minmax(0,var(--item-height)) 1fr}.k-item[data-layout=cardlets] .k-frame{grid-area:image;border-start-start-radius:var(--rounded);border-end-start-radius:var(--rounded);aspect-ratio:auto}.k-item[data-layout=cardlets] .k-item-content{grid-area:content}.k-item[data-layout=cardlets] .k-item-info{margin-top:.125em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.k-item[data-layout=cardlets] .k-item-options{grid-area:options}.k-item[data-layout=cards]{display:flex;flex-direction:column}.k-item[data-layout=cards] .k-frame{border-start-start-radius:var(--rounded);border-start-end-radius:var(--rounded)}.k-item[data-layout=cards] .k-item-content{flex-grow:1;padding:var(--spacing-2)}.k-item[data-layout=cards] .k-item-info{margin-top:.125em}.k-item[data-selecting=true][data-selectable=true]{cursor:pointer}.k-item-options-checkbox{display:inline-flex;align-items:center;justify-content:center;height:var(--item-button-height);width:var(--item-button-height);flex-shrink:0}.k-item[data-selectable=true]:has(.k-item-options-checkbox input:checked){--csstools-light-dark-toggle--6: var(--csstools-color-scheme--light) var(--color-blue-800);--item-color-back: var(--csstools-light-dark-toggle--6, var(--color-blue-250));--item-shadow: 0 1px 3px 0 rgba(0 0 0 / .25), 0 1px 2px 0 rgba(0 0 0 / .05)}@supports not (color: light-dark(tan,tan)){.k-item[data-selectable=true]:has(.k-item-options-checkbox input:checked) *{--csstools-light-dark-toggle--6: var(--csstools-color-scheme--light) var(--color-blue-800);--item-color-back: var(--csstools-light-dark-toggle--6, var(--color-blue-250))}}@supports (color: light-dark(red,red)){.k-item[data-selectable=true]:has(.k-item-options-checkbox input:checked){--item-color-back: light-dark(var(--color-blue-250), var(--color-blue-800))}}.k-item[data-theme=disabled]{background:transparent;box-shadow:none;outline:1px solid var(--color-border);outline-offset:-1px}.k-item[data-theme=skeleton]{--csstools-light-dark-toggle--7: var(--csstools-color-scheme--light) var(--color-gray-650);--item-color-icon: var(--csstools-light-dark-toggle--7, var(--color-gray-500));--csstools-light-dark-toggle--8: var(--csstools-color-scheme--light) var(--color-gray-800);--item-color-image: var(--csstools-light-dark-toggle--8, var(--color-gray-250))}@supports not (color: light-dark(tan,tan)){.k-item[data-theme=skeleton] *{--csstools-light-dark-toggle--7: var(--csstools-color-scheme--light) var(--color-gray-650);--item-color-icon: var(--csstools-light-dark-toggle--7, var(--color-gray-500));--csstools-light-dark-toggle--8: var(--csstools-color-scheme--light) var(--color-gray-800);--item-color-image: var(--csstools-light-dark-toggle--8, var(--color-gray-250))}}@supports (color: light-dark(red,red)){.k-item[data-theme=skeleton]{--item-color-icon: light-dark(var(--color-gray-500), var(--color-gray-650));--item-color-image: light-dark(var(--color-gray-250), var(--color-gray-800))}}.k-item[data-theme=skeleton] .k-item-options{visibility:hidden}.k-dialog-body{padding:var(--dialog-padding)}.k-dialog:has(.k-dialog-footer) .k-dialog-body{padding-bottom:0}.k-button-group.k-dialog-buttons{display:grid;grid-template-columns:1fr;gap:var(--spacing-3);--button-height: var(--height-lg)}.k-button-group.k-dialog-buttons:has(>.k-button:nth-child(2)){grid-template-columns:1fr 1fr}.k-dialog-fields{padding-bottom:.5rem;container-type:inline-size}.k-dialog-fields .k-line-field{height:2px}.k-dialog-footer{padding:var(--dialog-padding);line-height:1;flex-shrink:0}.k-dialog .k-notification{padding-block:.325rem;border-start-start-radius:var(--dialog-rounded);border-start-end-radius:var(--dialog-rounded);margin-top:-1px}.k-dialog-search{margin-bottom:.75rem;--input-color-border: transparent;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--input-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300))}@supports not (color: light-dark(tan,tan)){.k-dialog-search *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--input-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300))}}@supports (color: light-dark(red,red)){.k-dialog-search{--input-color-back: light-dark(var(--color-gray-300), var(--color-gray-950))}}:root{--dialog-color-back: var(--panel-color-back);--dialog-color-text: currentColor;--dialog-margin: var(--spacing-6);--dialog-padding: var(--spacing-6);--dialog-rounded: var(--rounded-xl);--dialog-shadow: var(--shadow-xl);--dialog-width: 22rem}.k-dialog-portal{padding:var(--dialog-margin)}.k-dialog{position:relative;background:var(--dialog-color-back);color:var(--dialog-color-text);width:clamp(10rem,100%,var(--dialog-width));box-shadow:var(--dialog-shadow);border-radius:var(--dialog-rounded);line-height:1;display:flex;flex-direction:column;overflow:clip;container-type:inline-size}@media screen and (min-width:20rem){.k-dialog[data-size=small]{--dialog-width: 20rem}}@media screen and (min-width:22rem){.k-dialog[data-size=default]{--dialog-width: 22rem}}@media screen and (min-width:30rem){.k-dialog[data-size=medium]{--dialog-width: 30rem}}@media screen and (min-width:40rem){.k-dialog[data-size=large]{--dialog-width: 40rem}}@media screen and (min-width:60rem){.k-dialog[data-size=huge]{--dialog-width: 60rem}}.k-dialog .k-pagination{margin-bottom:-1.5rem;display:flex;justify-content:center;align-items:center}.k-changes-dialog section+section{margin-top:var(--spacing-6)}.k-changes-dialog .k-headline{margin-top:-.5rem;margin-bottom:var(--spacing-3)}.k-error-details{background:var(--input-color-back);display:block;overflow:auto;padding:1rem;border-radius:var(--rounded);font-size:var(--text-sm);line-height:1.25em;margin-top:.75rem}.k-error-details dt{color:var(--color-red-500);margin-bottom:.25rem}.k-error-details dd{overflow:hidden;overflow-wrap:break-word;text-overflow:ellipsis}.k-error-details dd:not(:last-of-type){margin-bottom:1.5em}.k-error-details li{white-space:pre-line}.k-error-details li:not(:last-child){border-bottom:1px solid var(--color-border);padding-bottom:.25rem;margin-bottom:.25rem}.k-models-dialog .k-list-item{cursor:pointer}.k-models-dialog .k-choice-input{--choice-color-checked: var(--color-focus);display:flex;align-items:center;height:var(--item-button-height);margin-inline-end:var(--spacing-3)}.k-models-dialog .k-choice-input input{top:0}.k-models-dialog .k-collection-footer .k-pagination{margin-bottom:0}.k-license-dialog-status{display:flex;align-items:center;gap:var(--spacing-2)}.k-license-dialog .k-license-dialog-status{--icon-color: var(--theme-color-700)}.k-lock-alert-dialog dl{margin:var(--spacing-6) 0 var(--spacing-2) 0}.k-lock-alert-dialog dl div{padding:var(--spacing-1) 0;line-height:var(--leading-normal);display:flex;align-items:center;gap:.75rem;color:var(--color-gray-500)}.k-lock-alert-dialog .k-dialog-buttons{grid-template-columns:1fr}.k-page-template-switch{margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-6);border-bottom:1px dashed var(--color-gray-300)}.k-page-move-dialog .k-headline{margin-bottom:var(--spacing-2)}.k-page-move-parent{--tree-color-back: var(--input-color-back);--tree-branch-color-back: var(--input-color-back);--tree-branch-hover-color-back: var(--panel-color-back);padding:var(--spacing-3);background:var(--tree-color-back);border-radius:var(--rounded);box-shadow:var(--shadow)}.k-pages-dialog-navbar{display:flex;align-items:center;justify-content:center;margin-bottom:.5rem;padding-inline-end:38px}.k-pages-dialog-navbar .k-button[aria-disabled=true]{opacity:0}.k-pages-dialog-navbar .k-headline{flex-grow:1;text-align:center}.k-pages-dialog-option[aria-disabled=true]{opacity:.25}.k-search-dialog{--dialog-padding: 0;--dialog-rounded: var(--rounded);overflow:visible}.k-overlay[open][data-type=dialog]>.k-portal>.k-search-dialog{margin-top:0}.k-totp-dialog-headline{margin-bottom:var(--spacing-1)}.k-totp-dialog-intro{margin-bottom:var(--spacing-6)}.k-totp-dialog-grid{display:grid;gap:var(--spacing-6)}@media screen and (min-width:40rem){.k-totp-dialog-grid{grid-template-columns:1fr 1fr;gap:var(--spacing-8)}}.k-totp-qrcode .k-box[data-theme]{padding:var(--box-padding-inline)}.k-totp-dialog-fields .k-field-name-confirm{--input-height: var(--height-xl);--input-rounded: var(--rounded);--input-font-size: var(--text-3xl)}.k-upload-dialog.k-dialog{--dialog-width: 40rem}.k-upload-replace-dialog .k-upload-items{display:flex;gap:var(--spacing-3);align-items:center}.k-upload-original{width:6rem;border-radius:var(--rounded);box-shadow:var(--shadow);overflow:hidden}.k-upload-replace-dialog .k-upload-item{flex-grow:1}.k-drawer-body{padding:var(--drawer-body-padding);flex-grow:1;background:var(--drawer-color-back)}.k-drawer-body .k-writer-input:focus-within .k-toolbar:not([data-inline=true]),.k-drawer-body .k-textarea-input-wrapper:focus-within .k-toolbar,.k-drawer-body .k-table th{top:-1.5rem}.k-drawer-header{--button-height: calc(var(--drawer-header-height) - var(--spacing-1));flex-shrink:0;height:var(--drawer-header-height);padding-inline-start:var(--drawer-header-padding);display:flex;align-items:center;line-height:1;justify-content:space-between;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);background:var(--csstools-light-dark-toggle--0, var(--color-white));font-size:var(--text-sm)}@supports (color: light-dark(red,red)){.k-drawer-header{background:light-dark(var(--color-white),var(--color-gray-850))}}.k-drawer-breadcrumb{flex-grow:1}.k-drawer-options{display:flex;align-items:center;padding-inline-end:.75rem}.k-drawer-option{--button-width: var(--button-height)}.k-drawer-option[aria-disabled=true]{opacity:var(--opacity-disabled)}.k-notification.k-drawer-notification{padding:.625rem 1.5rem}.k-drawer-tabs.k-tabs{flex-grow:1;gap:0;margin:0;justify-content:end}.k-drawer-tabs .k-tabs-button{--button-height: calc(var(--drawer-header-height) - var(--spacing-1));--button-padding: var(--spacing-3);display:flex;align-items:center;font-size:var(--text-xs);margin-block:0}.k-drawer-tabs .k-tabs-button[aria-current=true]:after{z-index:1}:root{--drawer-body-padding: 1.5rem;--drawer-color-back: var(--panel-color-back);--drawer-header-height: 2.5rem;--drawer-header-padding: 1rem;--drawer-shadow: var(--shadow-xl);--drawer-width: 50rem}.k-drawer-overlay+.k-drawer-overlay{--overlay-color-back: none}.k-drawer{--header-sticky-offset: calc(var(--drawer-body-padding) * -1);z-index:var(--z-toolbar);flex-basis:var(--drawer-width);position:relative;display:flex;flex-direction:column;background:var(--drawer-color-back);box-shadow:var(--drawer-shadow);container-type:inline-size}.k-drawer:not([aria-current=true]){display:none;pointer-events:none}:root{--dropdown-color-bg: var(--color-gray-950);--dropdown-color-current: var(--color-blue-500);--dropdown-color-hr: var(--color-gray-850);--dropdown-color-text: var(--color-white);--dropdown-padding: var(--spacing-2);--dropdown-rounded: var(--rounded);--dropdown-shadow: var(--shadow-xl)}.k-dropdown-content{--dropdown-x: 0;--dropdown-y: 0;position:absolute;inset-block-start:0;inset-inline-start:initial;left:0;width:max-content;padding:var(--dropdown-padding);background:var(--dropdown-color-bg);border-radius:var(--dropdown-rounded);color:var(--dropdown-color-text);box-shadow:var(--dropdown-shadow);text-align:start;transform:translate(var(--dropdown-x),var(--dropdown-y))}.k-dropdown-content::backdrop{background:none}.k-dropdown-content[data-align-x=end]{--dropdown-x: -100%}.k-dropdown-content[data-align-x=center]{--dropdown-x: -50%}.k-dropdown-content[data-align-y=top]{--dropdown-y: -100%}.k-dropdown-content hr{margin:.5rem 0;height:1px;background:var(--dropdown-color-hr)}.k-dropdown-content[data-theme=light]{--dropdown-color-bg: var(--color-white);--dropdown-color-current: var(--color-blue-800);--dropdown-color-hr: var(--color-gray-250);--dropdown-color-text: var(--color-black)}:root{--button-align: center;--button-height: var(--height-md);--button-width: auto;--button-color-back: none;--button-color-text: currentColor;--button-color-icon: currentColor;--button-padding: var(--spacing-2);--button-rounded: var(--spacing-1);--button-text-display: block;--button-icon-display: block;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--button-filled-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300))}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--button-filled-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:root{--button-filled-color-back: light-dark( var(--color-gray-300), var(--color-gray-950) )}}.k-button{position:relative;display:inline-flex;align-items:center;justify-content:var(--button-align);gap:.5rem;padding-inline:var(--button-padding);white-space:nowrap;line-height:1;border-radius:var(--button-rounded);background:var(--button-color-back);height:var(--button-height);width:var(--button-width);color:var(--button-color-text);font-variant-numeric:tabular-nums;text-align:var(--button-align);flex-shrink:0}.k-button-icon{--icon-color: var(--button-color-icon);flex-shrink:0;display:var(--button-icon-display)}.k-button-text{text-overflow:ellipsis;overflow-x:clip;display:var(--button-text-display);min-width:0}.k-button:where([data-theme]){--button-color-icon: var(--theme-color-icon);--button-color-text: var(--theme-color-text)}.k-button:where([data-theme$=-icon]){--button-color-text: currentColor}.k-button:where([data-variant=dimmed]){--button-color-icon: var(--color-text);--button-color-text: var(--color-text-dimmed)}.k-button:where([data-variant=dimmed]):not([aria-disabled=true]):is(:hover,[aria-current=true]) .k-button-text{--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) brightness(125%);filter:var(--csstools-light-dark-toggle--1, brightness(75%));filter:light-dark(brightness(75%),brightness(125%))}.k-button:where([data-variant=dimmed][data-theme]){--button-color-icon: var(--theme-color-icon);--button-color-text: var(--theme-color-text-dimmed)}.k-button:where([data-variant=dimmed][data-theme$=-icon]){--button-color-text: var(--color-text-dimmed)}.k-button:where([data-variant=filled]){--button-color-back: var(--button-filled-color-back)}.k-button:where([data-variant=filled]):not([aria-disabled=true]):hover{filter:brightness(97%)}.k-button:where([data-variant=filled][data-theme]){--button-color-icon: var(--theme-color-icon-highlight);--button-color-back: var(--theme-color-back);--button-color-text: var(--theme-color-text-highlight)}.k-button:where([data-theme$=-icon][data-variant=filled]){--button-color-icon: var(--theme-color-icon);--button-color-back: var(--button-filled-color-back);--button-color-text: currentColor}.k-button:not([data-has-text=true]){--button-padding: 0;aspect-ratio:1/1}@container (max-width: 30rem){.k-button[data-responsive=true][data-has-icon=true]{--button-padding: 0;aspect-ratio:1/1;--button-text-display: none}.k-button[data-responsive=text][data-has-text=true]{--button-icon-display: none}.k-button[data-responsive=true][data-has-icon=true] .k-button-arrow{display:none}}.k-button:not(button,a,summary,label,.k-link){pointer-events:none}.k-button:where([data-size=xs]){--button-height: var(--height-xs);--button-padding: .325rem}.k-button:where([data-size=sm]){--button-height: var(--height-sm);--button-padding: .5rem}.k-button:where([data-size=lg]){--button-height: var(--height-lg)}.k-button-arrow{width:max-content;margin-inline-start:-.25rem;margin-inline-end:-.125rem}.k-button-badge{position:absolute;top:0;inset-inline-end:0;transform:translate(40%,-20%);min-width:1em;min-height:1em;font-variant-numeric:tabular-nums;line-height:1.5;padding:0 var(--spacing-1);border-radius:1em;text-align:center;font-size:.6rem;box-shadow:var(--shadow-md);background:var(--theme-color-back);--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-black);border:1px solid var(--csstools-light-dark-toggle--2, var(--theme-color-500));color:var(--theme-color-text-highlight);z-index:1}@supports (color: light-dark(red,red)){.k-button-badge{border:1px solid light-dark(var(--theme-color-500),var(--color-black))}}.k-button:where([aria-disabled=true]){cursor:not-allowed}.k-button:where([aria-disabled=true])>*{opacity:var(--opacity-disabled)}.k-dropdown-item.k-button{--button-align: flex-start;--button-color-text: var(--dropdown-color-text);--button-height: var(--height-sm);--button-rounded: var(--rounded-sm);--button-width: 100%;display:flex}.k-dropdown-item.k-button:focus{outline:var(--outline)}.k-dropdown-item.k-button[aria-current=true]{--button-color-text: var(--dropdown-color-current)}.k-dropdown-item.k-button[aria-current=true]:after{margin-inline-start:auto;text-align:center;content:"✓";padding-inline-start:var(--spacing-1)}.k-dropdown-item.k-button:not([aria-disabled=true]):hover{--button-color-back: var(--dropdown-color-hr)}.k-options-dropdown{display:flex;justify-content:center;align-items:center}:root{--picklist-rounded: var(--rounded-sm);--picklist-highlight: var(--color-yellow-500)}.k-picklist-input{--choice-color-text: currentColor;--button-rounded: var(--picklist-rounded)}.k-picklist-input-header{--input-rounded: var(--picklist-rounded)}.k-picklist-input-search{display:flex;align-items:center;border-radius:var(--picklist-rounded)}.k-picklist-input-search .k-search-input{height:var(--button-height)}.k-picklist-input-search:focus-within{outline:var(--outline)}.k-picklist-dropdown .k-picklist-input-create:focus{outline:0}.k-picklist-dropdown .k-picklist-input-create[aria-disabled=true]{visibility:hidden}.k-picklist-input-options.k-grid{--columns: 1}.k-picklist-input-options li+li{margin-top:var(--spacing-1)}.k-picklist-input-options .k-choice-input{padding-inline:var(--spacing-2)}.k-picklist-input-options .k-choice-input{--choice-color-checked: var(--color-focus)}.k-picklist-input-options .k-choice-input:has(:checked){--choice-color-text: var(--color-focus)}.k-picklist-input-options .k-choice-input[aria-disabled=true]{--choice-color-text: var(--color-text-dimmed)}.k-picklist-input-options .k-choice-input:has(:focus-within){outline:var(--outline)}.k-picklist-input-options .k-choice-input b{font-weight:var(--font-normal);color:var(--picklist-highlight)}.k-picklist-input-more.k-button{--button-width: 100%;--button-align: start;--button-color-text: var(--color-text-dimmed);padding-inline:var(--spacing-2)}.k-picklist-input-more.k-button .k-button-icon{position:relative;inset-inline-start:-1px}.k-picklist-input-empty{height:var(--button-height);line-height:1.25rem;padding:var(--spacing-1) var(--spacing-2);color:var(--color-text-dimmed)}.k-picklist-dropdown{--color-text-dimmed: var(--color-gray-400);padding:0;max-width:30rem;min-width:8rem}.k-picklist-dropdown :where(.k-picklist-input-header,.k-picklist-input-body,.k-picklist-input-footer){padding:var(--dropdown-padding)}.k-picklist-dropdown .k-picklist-input-header{border-bottom:1px solid var(--dropdown-color-hr)}.k-picklist-dropdown .k-picklist-input-search{background:var(--dropdown-color-hr);padding-inline-end:var(--input-padding)}.k-picklist-dropdown .k-picklist-input-create{--button-rounded: 1rem;--button-height: 1.125rem}.k-picklist-dropdown .k-picklist-input-create:focus{--button-color-back: var(--color-blue-500);--button-color-text: var(--color-black)}.k-picklist-dropdown .k-picklist-input-body{max-height:calc(var(--button-height) * 9.5 + 2px * 9 + var(--dropdown-padding));overflow-y:auto;outline-offset:-2px;overscroll-behavior:contain;scroll-padding-top:var(--dropdown-padding);scroll-padding-bottom:var(--dropdown-padding)}.k-picklist-dropdown .k-picklist-input-options .k-choice-input{--choice-color-border: var(--dropdown-color-hr);--choice-color-back: var(--dropdown-color-hr);--choice-color-info: var(--color-text-dimmed);min-height:var(--button-height);border-radius:var(--picklist-rounded);padding-block:.375rem}.k-picklist-dropdown .k-picklist-input-options li+li{margin-top:0}.k-picklist-dropdown .k-picklist-input-options .k-choice-input[aria-disabled=true] input{--choice-color-border: var(--dropdown-color-hr);--choice-color-back: var(--dropdown-color-hr);--choice-color-checked: var(--dropdown-color-hr);opacity:var(--opacity-disabled)}.k-picklist-dropdown .k-picklist-input-options .k-choice-input:not([aria-disabled=true]):hover{background-color:var(--dropdown-color-hr)}.k-picklist-dropdown .k-picklist-input-options .k-choice-input:not([aria-disabled=true]):focus-within{--choice-color-text: var(--color-blue-500)}.k-picklist-dropdown .k-picklist-input-more.k-button:hover{--button-color-back: var(--dropdown-color-hr)}.k-picklist-dropdown .k-picklist-input-body+.k-picklist-input-footer{border-top:1px solid var(--dropdown-color-hr)}.k-counter{font-size:var(--text-xs);color:var(--color-text)}.k-counter[data-theme]{color:var(--theme-color-text)}.k-counter-rules{color:var(--color-text-dimmed);padding-inline-start:.5rem}.k-field[data-disabled=true]{cursor:not-allowed}.k-field[data-disabled=true] *{pointer-events:none}.k-field[data-disabled=true] .k-text[data-theme=help] *{pointer-events:initial}.k-field-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-6);position:relative;margin-bottom:var(--spacing-2)}.k-field-options,.k-field-buttons{flex-shrink:0}.k-field:focus-within>.k-field-header>.k-field-counter{display:block}.k-field-footer{margin-top:var(--spacing-2)}.k-fieldset{border:0}.k-form-submitter{display:none}.k-form-controls-dropdown{max-width:15rem}.k-form-controls-dropdown p{line-height:var(--leading-normal);padding:var(--spacing-1) var(--spacing-2)}.k-form-controls-dropdown dl div{padding:var(--spacing-1) var(--spacing-2);line-height:var(--leading-normal);display:flex;align-items:center;gap:.75rem;color:var(--color-gray-500)}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--input-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--input-color-border: var(--color-border);--input-color-description: var(--color-text-dimmed);--input-color-icon: currentColor;--input-color-placeholder: var(--color-gray-600);--input-color-text: currentColor;--input-font-family: var(--font-sans);--input-font-size: var(--text-sm);--input-height: 2.25rem;--input-leading: 1;--input-outline-focus: var(--outline);--input-padding: var(--spacing-2);--input-padding-multiline: .475rem var(--input-padding);--input-rounded: var(--rounded);--input-shadow: none}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--input-color-back: var(--csstools-light-dark-toggle--0, var(--color-white))}}@supports (color: light-dark(red,red)){:root{--input-color-back: light-dark(var(--color-white), var(--color-gray-850))}}@media(pointer:coarse){:root{--input-font-size: var(--text-md);--input-padding-multiline: .375rem var(--input-padding)}}.k-input{display:flex;align-items:center;line-height:var(--input-leading);border:0;background:var(--input-color-back);border-radius:var(--input-rounded);outline:1px solid var(--input-color-border);color:var(--input-color-text);min-height:var(--input-height);box-shadow:var(--input-shadow);font-family:var(--input-font-family);font-size:var(--input-font-size)}.k-input:focus-within{outline:var(--input-outline-focus)}.k-input-element{flex-grow:1;min-width:0}.k-input-icon{color:var(--input-color-icon);display:flex;justify-content:center;align-items:center;width:var(--input-height)}.k-input-icon-button{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.k-input-description{color:var(--input-color-description);padding-inline:var(--input-padding)}.k-input-before{padding-inline-end:0}.k-input-after{padding-inline-start:0}.k-input :where(.k-input-description,.k-input-icon){align-self:stretch;display:flex;align-items:center;flex-shrink:0}.k-input[data-disabled=true]{--input-color-back: var(--panel-color-back);--input-color-icon: var(--color-gray-600);pointer-events:none}.k-block-title{display:flex;align-items:top;min-width:0;padding-inline-end:.75rem;gap:var(--spacing-2);flex-shrink:1}.k-block-title-text{display:flex;flex-shrink:1;flex-wrap:wrap;min-width:0;gap:var(--spacing-2)}.k-block-name,.k-block-label{line-height:1.25;overflow:hidden;min-width:0;white-space:wrap;text-overflow:ellipsis}.k-block-label{color:var(--color-text-dimmed)}.k-block-icon{--icon-color: var(--color-gray-600);width:1rem}.k-block-type-default .k-block-title{line-height:1.5em}.k-block-options{--toolbar-size: 30px;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-900);border:1px solid var(--csstools-light-dark-toggle--0, var(--color-border));box-shadow:var(--shadow-xl)}@supports (color: light-dark(red,red)){.k-block-options{border:1px solid light-dark(var(--color-border),var(--color-gray-900))}}.k-block-options>.k-button:not(:last-of-type){border-inline-end:1px solid var(--toolbar-border)}.k-block-options .k-dropdown-content{margin-top:.5rem}.k-block-container{position:relative;padding:var(--spacing-3);background:var(--block-color-back);border-radius:var(--rounded)}.k-block-container:not(:last-of-type){border-bottom:1px dashed var(--panel-color-back)}.k-block-container:focus{outline:0}.k-block-container[data-selected=true]{z-index:2;outline:var(--outline);border-bottom-color:transparent}.k-block-container[data-batched=true]:after{position:absolute;inset:0;content:"";background:#b1c2d82d;mix-blend-mode:multiply}.k-block-container .k-block-options{display:none;position:absolute;top:0;inset-inline-end:var(--spacing-3);margin-top:calc(-1.75rem + 2px)}.k-block-container[data-last-selected=true]>.k-block-options{display:flex}.k-block-container[data-hidden=true] .k-block{opacity:.25}.k-drawer-options .k-drawer-option[data-disabled=true]{vertical-align:middle;display:inline-grid}.k-block-container[data-disabled=true]{background:var(--panel-color-back)}.k-block-container:is(.k-sortable-ghost,.k-sortable-fallback) .k-block{position:relative;max-height:4rem;overflow:hidden}.k-block-container:is(.k-sortable-ghost,.k-sortable-fallback) .k-block:after{position:absolute;bottom:0;content:"";height:2rem;width:100%;background:linear-gradient(to top,var(--block-color-back),transparent)}:root{--block-color-back: var(--item-color-back)}.k-blocks{border-radius:var(--rounded)}.k-blocks:not(:has(>.k-blocks-list:empty),[data-disabled=true]){background:var(--block-color-back);box-shadow:var(--shadow)}.k-blocks[data-disabled=true]:not([data-empty=true]){border:1px solid var(--input-color-border)}.k-blocks-list[data-multi-select-key=true]>.k-block-container *{pointer-events:none}.k-blocks-list[data-multi-select-key=true]>.k-block-container .k-blocks *{pointer-events:all}.k-blocks .k-sortable-ghost{outline:2px solid var(--color-focus);box-shadow:#11111140 0 5px 10px;cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}.k-blocks>.k-blocks-empty{display:flex;align-items:center}.k-blocks>.k-blocks-list:not(:empty)+.k-blocks-empty{display:none}.k-block-importer .k-dialog-body{padding:0}.k-block-importer label{display:block;padding:var(--spacing-6) var(--spacing-6) 0;color:var(--color-text-dimmed);line-height:var(--leading-normal)}.k-block-importer label small{display:block;font-size:inherit}.k-block-importer textarea{width:100%;height:20rem;background:none;font:inherit;color:var(--color-white);border:0;padding:var(--spacing-6);resize:none}.k-block-importer textarea:focus{outline:0}.k-block-selector .k-headline{margin-bottom:1rem}.k-block-selector details+details{margin-top:var(--spacing-6)}.k-block-selector summary{font-size:var(--text-xs);cursor:pointer;color:var(--color-text-dimmed)}.k-block-selector details:only-of-type summary{pointer-events:none}.k-block-selector summary:focus{outline:0}.k-block-selector summary:focus-visible{color:var(--color-focus)}.k-block-types{display:grid;grid-gap:2px;margin-top:.75rem;grid-template-columns:repeat(1,1fr)}.k-block-types .k-button{--button-color-icon: var(--color-text);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--button-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--button-padding: var(--spacing-3);width:100%;justify-content:start;gap:1rem;box-shadow:var(--shadow)}@supports not (color: light-dark(tan,tan)){.k-block-types .k-button *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--button-color-back: var(--csstools-light-dark-toggle--0, var(--color-white))}}@supports (color: light-dark(red,red)){.k-block-types .k-button{--button-color-back: light-dark(var(--color-white), var(--color-gray-850))}}.k-block-types .k-button[aria-disabled=true]{opacity:var(--opacity-disabled);--button-color-back: transparent;box-shadow:none}.k-clipboard-hint{padding-top:1.5rem;line-height:var(--leading-normal);font-size:var(--text-xs);color:var(--color-text-dimmed)}.k-clipboard-hint small{display:block;font-size:inherit;color:var(--color-text-dimmed)}.k-block-background-dropdown>.k-button{--color-frame-rounded: 0;--color-frame-size: 1.5rem;--button-height: 1.5rem;--button-padding: 0 .125rem;--button-color-back: var(--block-color-back);gap:.25rem;box-shadow:var(--shadow-toolbar);border:1px solid var(--button-color-back);overflow:clip}.k-block-background-dropdown .k-color-frame{border-right:1px solid var(--color-border)}.k-block-background-dropdown .k-color-frame:after{box-shadow:none}.k-block .k-block-background-dropdown{position:absolute;inset-inline-end:var(--spacing-3);bottom:var(--spacing-3);opacity:0;transition:opacity .2s ease-in-out}.k-block:hover .k-block-background-dropdown{opacity:1}.k-block-figure:not([data-empty=true]){--block-figure-back: var(--block-color-back);background:var(--block-figure-back)}.k-block-figure-container:not([data-disabled=true]){cursor:pointer}.k-block-figure iframe{border:0;pointer-events:none;background:var(--color-black)}.k-block-figure figcaption{padding-top:.5rem;color:var(--color-text-dimmed);font-size:var(--text-sm);text-align:center}.k-block-figure-empty{--button-width: 100%;--button-height: 6rem;--button-color-text: var(--color-text-dimmed);--button-color-back: var(--panel-color-back)}.k-block-figure-empty,.k-block-figure-container>*{border-radius:var(--rounded-sm)}.k-block-figure-caption{display:flex;justify-content:center;padding-top:var(--spacing-3)}.k-block-figure-caption .k-writer{width:max-content;text-align:center}.k-block-figure-caption .k-writer .k-text{color:var(--color-gray-600);font-size:var(--text-sm);mix-blend-mode:exclusion}.k-block-type-code-editor{position:relative}.k-block-type-code-editor .k-input{--input-color-border: none;--input-color-back: var(--color-black);--input-color-text: var(--color-white);--input-font-family: var(--font-mono);--input-outline-focus: none;--input-padding: var(--spacing-3);--input-padding-multiline: var(--input-padding)}.k-block-type-code-editor .k-input[data-type=textarea]{white-space:pre-wrap}.k-block-type-code-editor-language{--input-font-size: var(--text-xs);position:absolute;inset-inline-end:0;bottom:0}.k-block-type-code-editor-language .k-input-element{padding-inline-start:1.5rem}.k-block-type-code-editor-language .k-input-icon{inset-inline-start:0}.k-block-container.k-block-container-type-fields{padding-block:0}.k-block-container:not([data-hidden=true]) .k-block-type-fields>:not([data-collapsed=true]){padding-bottom:var(--spacing-3)}.k-block-type-fields-header{display:flex;flex-wrap:wrap;justify-content:space-between}.k-block-type-fields-header .k-block-title{padding-block:var(--spacing-3);cursor:pointer;white-space:nowrap}.k-block-type-fields-form{background-color:var(--panel-color-back);padding:var(--spacing-6) var(--spacing-6) var(--spacing-8);border-radius:var(--rounded-sm);container:column / inline-size}.k-block-container-type-fields[data-hidden=true] :where(.k-drawer-tabs,.k-block-type-fields-form){display:none}.k-block-type-fields-header .k-drawer-tabs.k-tabs .k-tabs-button{bottom:-2px}.k-block-container.k-block-container-type-gallery{padding:0}.k-block-type-gallery-figure{padding:var(--spacing-3);border-radius:var(--rounded)}.k-block-type-gallery-figure:not([data-empty=true]){background:var(--block-back)}.k-block-type-gallery-figure ul{display:grid;grid-gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));line-height:0;align-items:center;justify-content:center}.k-block-type-gallery:not([data-disabled=true]) .k-block-type-gallery-figure ul{cursor:pointer}.k-block-type-gallery-frame{border-radius:var(--rounded-sm)}.k-block-type-gallery[data-disabled=true] .k-block-type-gallery-placeholder{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);background:var(--csstools-light-dark-toggle--0, var(--color-gray-250))}@supports (color: light-dark(red,red)){.k-block-type-gallery[data-disabled=true] .k-block-type-gallery-placeholder{background:light-dark(var(--color-gray-250),var(--color-gray-950))}}.k-block-type-gallery-placeholder{background:var(--panel-color-back)}.k-block-type-heading-input{display:flex;align-items:center;line-height:1.25em;font-size:var(--text-size);font-weight:var(--font-bold)}.k-block-type-heading-input[data-level=h1]{--text-size: var(--text-3xl);line-height:1.125em}.k-block-type-heading-input[data-level=h2]{--text-size: var(--text-2xl)}.k-block-type-heading-input[data-level=h3]{--text-size: var(--text-xl)}.k-block-type-heading-input[data-level=h4]{--text-size: var(--text-lg)}.k-block-type-heading-input[data-level=h5]{--text-size: var(--text-md);line-height:1.5em}.k-block-type-heading-input[data-level=h6]{--text-size: var(--text-sm);line-height:1.5em}.k-block-type-heading-input .k-writer-input .ProseMirror strong{font-weight:700}.k-block-type-heading-level{--input-color-back: transparent;--input-color-border: none;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-500);--input-color-text: var(--csstools-light-dark-toggle--0, var(--color-gray-600));font-weight:var(--font-bold);text-transform:uppercase}@supports not (color: light-dark(tan,tan)){.k-block-type-heading-level *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-500);--input-color-text: var(--csstools-light-dark-toggle--0, var(--color-gray-600))}}@supports (color: light-dark(red,red)){.k-block-type-heading-level{--input-color-text: light-dark(var(--color-gray-600), var(--color-gray-500))}}.k-block-container.k-block-container-type-image{padding:0}.k-block-type-image .k-block-figure{padding:var(--spacing-3);border-radius:var(--rounded)}.k-block-type-image .k-block-figure-container{text-align:center;line-height:0}.k-block-type-image .k-block-figure[data-empty=true]{padding:var(--spacing-3)}.k-block-type-image-auto{max-width:100%;max-height:30rem;margin-inline:auto}.k-block-type-image .k-background-dropdown{position:absolute;inset-inline-end:var(--spacing-3);bottom:var(--spacing-3);opacity:0;transition:opacity .2s ease-in-out}.k-block-type-image:hover .k-background-dropdown{opacity:1}.k-block-type-line hr{margin-block:.75rem;border:0;border-top:1px solid var(--color-border)}.k-block-type-list-input{--input-color-back: transparent;--input-color-border: none;--input-outline-focus: none}.k-block-type-markdown-input{--input-color-back: var(--panel-color-back);--input-color-border: none;--input-outline-focus: none;--input-padding-multiline: var(--spacing-3)}.k-block-type-quote-editor{padding-inline-start:var(--spacing-3);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-border);border-inline-start:2px solid var(--csstools-light-dark-toggle--0, var(--color-black))}@supports (color: light-dark(red,red)){.k-block-type-quote-editor{border-inline-start:2px solid light-dark(var(--color-black),var(--color-border))}}.k-block-type-quote-text{font-size:var(--text-xl);margin-bottom:var(--spacing-1);line-height:1.25em}.k-block-type-quote-citation{font-style:italic;color:var(--color-text-dimmed)}.k-block-type-table-preview{cursor:pointer;border:1px solid var(--color-border);border-spacing:0;border-radius:var(--rounded-sm)}.k-block-type-table-preview :where(th,td){text-align:start;line-height:1.5em;font-size:var(--text-sm)}.k-block-type-table-preview th{padding:.5rem .75rem}.k-block-type-table-preview td:not(.k-table-index-column){padding:0 .75rem}.k-block-type-table-preview td>*,.k-block-type-table-preview td [class$=-field-preview]{padding:0}.k-block-type-text-input{line-height:1.5;height:100%}.k-block-container.k-block-container-type-text{padding:0}.k-block-type-text-input.k-writer-input[data-toolbar-inline=true]{padding:var(--spacing-3)}.k-block-type-text-input.k-writer-input:not([data-toolbar-inline=true])>.ProseMirror,.k-block-type-text-input.k-writer-input:not([data-toolbar-inline=true])[data-placeholder][data-empty=true]:before{padding:var(--spacing-3) var(--spacing-6)}.k-block-type-text-input.k-textarea-input .k-textarea-input-native{padding:var(--input-padding-multiline)}.k-block-type-video-figure video{pointer-events:none}.k-blocks-field{position:relative}.k-blocks-field>footer{display:flex;justify-content:center;margin-top:var(--spacing-3)}.k-string-input{padding:var(--input-padding);border-radius:var(--input-rounded)}.k-string-input:focus{outline:0}.k-string-input[data-font=monospace]{font-family:var(--font-mono)}.k-string-input:disabled::placeholder{opacity:0}.k-color-field{--color-frame-size: calc(var(--input-height) - var(--spacing-2))}.k-color-field .k-input-before{align-items:center;padding-inline-start:var(--spacing-1)}.k-color-field-options{--color-frame-size: var(--input-height)}.k-color-field-picker{padding:var(--spacing-3)}.k-color-field-picker-toggle{--color-frame-rounded: var(--rounded-sm);border-radius:var(--color-frame-rounded)}.k-color-field .k-colorname-input{padding-inline:var(--input-padding)}.k-color-field .k-colorname-input:focus{outline:0}.k-date-input:disabled::placeholder{opacity:0}.k-date-field-body{display:grid;gap:var(--spacing-2)}@container (min-width: 20rem){.k-date-field-body[data-has-time=true]{grid-template-columns:1fr minmax(6rem,9rem)}}.k-entries-field-items{display:flex;flex-direction:column;gap:2px}.k-entries-field-item{height:var(--input-height);display:flex;align-items:center;background:var(--input-color-back);border-radius:var(--rounded)}.k-entries-field:not([data-disabled=true]) .k-entries-field-item{--input-color-border: transparent;box-shadow:var(--shadow)}.k-entries-field-item-sort-handle.k-button{--button-height: var(--input-height);--button-width: var(--input-height)}.k-entries-field-item-input{flex-grow:1;border-inline:1px solid var(--panel-color-back)}.k-entries-field-item-options .k-button{--button-height: 100%;--button-width: var(--input-height)}@container (max-width: 30rem){.k-entries-field-item-options>.k-button:not(:last-of-type){display:none}}.k-entries-field-item-options .k-button:has(+.k-button){border-right:1px solid var(--panel-color-back)}.k-entries-field-item.k-sortable-ghost{outline:var(--outline);cursor:grabbing}.k-entries-field-item.k-sortable-fallback{display:none}.k-entries-field-footer{display:flex;justify-content:center;margin-top:var(--spacing-3)}.k-models-field[data-disabled=true] .k-item *{pointer-events:all!important}.k-headline-field{position:relative;padding-top:1.5rem}.k-fieldset>.k-grid .k-column:first-child .k-headline-field{padding-top:0}.k-headline-field h2.k-headline{font-weight:var(--font-normal)}.k-headline-field footer{margin-top:var(--spacing-2)}.k-info-field .k-headline{padding-bottom:.75rem;line-height:1.25rem}.k-layout-column{position:relative;height:100%;display:flex;flex-direction:column;min-height:6rem}.k-layout-column:focus{outline:0}.k-layout-column>.k-blocks{box-shadow:none;padding:0;height:100%;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);background:var(--csstools-light-dark-toggle--0, var(--color-white));min-height:4rem}@supports (color: light-dark(red,red)){.k-layout-column>.k-blocks{background:light-dark(var(--color-white),var(--color-gray-850))}}.k-layout-column>.k-blocks[data-empty=true]{min-height:6rem}.k-layout-column>.k-blocks>.k-blocks-list{display:flex;flex-direction:column;height:100%}.k-layout-column>.k-blocks>.k-blocks-list>.k-block-container:last-of-type{flex-grow:1}.k-layout-column>.k-blocks>.k-blocks-list+.k-blocks-empty.k-box{--box-color-back: transparent;position:absolute;inset:0;justify-content:center;opacity:0;transition:opacity .3s;border:0}.k-layout-column>.k-blocks>.k-blocks-list+.k-blocks-empty:hover{opacity:1}.k-layout{--layout-border-color: var(--color-gray-300);--layout-toolbar-width: 2rem;position:relative}.k-layout:not([data-disabled=true]){padding-inline-end:var(--layout-toolbar-width);box-shadow:var(--shadow)}.k-layout:not(:last-of-type){margin-bottom:var(--spacing-2)}.k-layout:focus{outline:0}.k-layout-toolbar{position:absolute;inset-block:0;inset-inline-end:0;width:var(--layout-toolbar-width);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding-bottom:var(--spacing-2);font-size:var(--text-sm);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);background:var(--csstools-light-dark-toggle--0, var(--color-gray-100));border-inline-start:1px solid var(--panel-color-back);color:var(--color-gray-500);border-radius:var(--rounded)}@supports (color: light-dark(red,red)){.k-layout-toolbar{background:light-dark(var(--color-gray-100),var(--color-gray-850))}}.k-layout-toolbar:hover{--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-white);color:var(--csstools-light-dark-toggle--1, var(--color-black))}@supports (color: light-dark(red,red)){.k-layout-toolbar:hover{color:light-dark(var(--color-black),var(--color-white))}}.k-layout-toolbar-button{width:var(--layout-toolbar-width);height:var(--layout-toolbar-width)}.k-layout-columns.k-grid{grid-gap:1px;background:var(--panel-color-back)}.k-layout:not(:first-child) .k-layout-columns.k-grid{border-top:0}.k-layouts .k-sortable-ghost{position:relative;box-shadow:#11111140 0 5px 10px;outline:2px solid var(--color-focus);cursor:grabbing;z-index:1}.k-layout-field>footer{display:flex;justify-content:center;margin-top:var(--spacing-3)}.k-line-field{position:relative;border:0;height:3rem;width:auto}.k-line-field:after{position:absolute;content:"";top:50%;margin-top:-1px;inset-inline:0;height:1px;background:var(--color-border)}.k-link-input-header{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:.25rem;height:var(--input-height);grid-area:header}.k-link-input-toggle.k-button{--button-height: var(--height-sm);--button-rounded: var(--rounded-sm);--button-color-back: var(--panel-color-back);margin-inline-start:.25rem}.k-link-input-model{display:flex;justify-content:space-between;margin-inline-end:var(--spacing-1)}.k-link-input-model-placeholder.k-button{--button-align: flex-start;--button-color-text: var(--color-gray-600);--button-height: var(--height-sm);--button-padding: var(--spacing-2);--button-rounded: var(--rounded-sm);flex-grow:1;overflow:hidden;white-space:nowrap;align-items:center}.k-link-field .k-link-field-preview{--tag-height: var(--height-sm);padding-inline:0}.k-link-field .k-link-field-preview .k-tag:focus{outline:0}.k-link-field .k-link-field-preview .k-tag:focus-visible{outline:var(--outline)}.k-link-field .k-link-field-preview .k-tag-text{font-size:var(--text-sm)}.k-link-input-model-toggle{align-self:center;--button-height: var(--height-sm);--button-width: var(--height-sm);--button-rounded: var(--rounded-sm)}.k-link-input-body{display:grid;overflow:hidden;border-top:1px solid var(--color-border);background:var(--input-color-back);--tree-color-back: var(--input-color-back);--tree-branch-color-back: var(--input-color-back);--tree-branch-hover-color-back: var(--panel-color-back)}.k-link-input-body[data-type=page] .k-page-browser{padding:var(--spacing-2);padding-bottom:calc(var(--spacing-2) - 1px);width:100%;container-type:inline-size;overflow:auto}.k-link-field .k-tags-field-preview{--tag-rounded: var(--rounded-sm);--tag-size: var(--height-sm);padding-inline:0}.k-link-field[data-disabled=true] .k-link-input-model-placeholder{display:none}.k-link-field[data-disabled=true] input::placeholder{opacity:0}.k-writer-input{position:relative;width:100%;display:grid;grid-template-areas:"content";gap:var(--spacing-1)}.k-writer-input .ProseMirror{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;font-variant-ligatures:none;grid-area:content;padding:var(--input-padding-multiline)}.k-writer-input .ProseMirror:focus{outline:0}.k-writer-input .ProseMirror *{caret-color:currentColor}.k-writer-input .ProseMirror hr.ProseMirror-selectednode{outline:var(--outline)}.k-writer-input[data-placeholder][data-empty=true]:before{grid-area:content;content:attr(data-placeholder);color:var(--input-color-placeholder);pointer-events:none;white-space:pre-wrap;word-wrap:break-word;line-height:var(--text-line-height);padding:var(--input-padding-multiline)}.k-list-input.k-writer-input[data-placeholder][data-empty=true]:before{padding-inline-start:2.5em}.k-list-field .k-list-input .ProseMirror,.k-list-field .k-list-input:before{padding:.475rem .5rem .475rem .75rem}:root{--tag-color-back: var(--color-gray-950);--tag-color-text: var(--color-white);--tag-color-toggle: currentColor;--tag-color-disabled-back: var(--color-gray-600);--tag-color-disabled-text: var(--tag-color-text);--tag-height: var(--height-xs);--tag-rounded: var(--rounded-sm);--tag-text-size: var(--text-sm)}.k-tag[data-theme=light]{--tag-color-back: var(--panel-color-back);--tag-color-text: var(--color-text);--tag-color-disabled-back: var(--color-gray-200);--tag-color-disabled-text: var(--color-gray-600)}.k-tag{position:relative;height:var(--tag-height);max-width:100%;display:flex;align-items:center;justify-content:space-between;font-size:var(--tag-text-size);line-height:1;color:var(--tag-color-text);background-color:var(--tag-color-back);border-radius:var(--tag-rounded);-webkit-user-select:none;user-select:none}button.k-tag:not([aria-disabled=true]){cursor:pointer}.k-tag:not([aria-disabled=true]):focus{outline:var(--outline)}.k-tag-image{height:100%;border-radius:var(--rounded-xs);overflow:hidden;flex-shrink:0;border-radius:0;border-start-start-radius:var(--tag-rounded);border-end-start-radius:var(--tag-rounded);background-clip:padding-box}.k-tag-text{padding-inline:var(--spacing-2);line-height:var(--leading-tight);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.k-tag:has(.k-tag-toggle) .k-tag-text{padding-inline-end:0}.k-tag-toggle{--icon-size: 14px;width:var(--tag-height);height:var(--tag-height);filter:brightness(70%);flex-shrink:0}.k-tag-toggle:hover{filter:brightness(100%)}.k-tag:where([aria-disabled=true]){background-color:var(--tag-color-disabled-back);color:var(--tag-color-disabled-text);cursor:not-allowed}:root{--tags-gap: .375rem}.k-tags{display:inline-flex;max-width:100%;gap:var(--tags-gap);align-items:center;flex-wrap:wrap}.k-tags .k-sortable-ghost{outline:var(--outline)}.k-tags[data-layout=list],.k-tags[data-layout=list] .k-tag{width:100%}.k-tags.k-draggable .k-tag-text{cursor:grab}.k-tags.k-draggable .k-tag-text:active{cursor:grabbing}.k-multiselect-input{padding:var(--tags-gap);cursor:pointer}.k-multiselect-input-toggle.k-button{opacity:0}.k-tags-input{padding:var(--tags-gap)}.k-tags-input[data-can-add=true]{cursor:pointer}.k-tags-input-toggle.k-button{--button-color-text: var(--input-color-placeholder);opacity:0}.k-tags-input-toggle.k-button:focus{--button-color-text: var(--input-color-text)}.k-tags-input:focus-within .k-tags-input-toggle{opacity:1}.k-tags-input .k-picklist-dropdown{margin-top:var(--spacing-1)}.k-tags-input .k-picklist-dropdown .k-choice-input:focus-within{outline:var(--outline)}.k-number-input{padding:var(--input-padding);border-radius:var(--input-rounded)}.k-number-input:focus{outline:0}.k-number-input:disabled::placeholder{opacity:0}.k-table.k-object-field-table{table-layout:auto}.k-table.k-object-field-table tbody td{max-width:0}@container (max-width: 40rem){.k-object-field{overflow:hidden}.k-object-field-table.k-table tbody :where(th):is([data-mobile=true]){width:1px!important;white-space:normal;word-break:normal}}.k-range-input{--range-track-height: 1px;--range-tooltip-back: var(--color-black);display:flex;align-items:center;border-radius:var(--range-track-height)}.k-range-input input[type=range]:focus{outline:0}.k-range-input-tooltip{position:relative;display:flex;align-items:center;color:var(--color-white);font-size:var(--text-xs);font-variant-numeric:tabular-nums;line-height:1;text-align:center;border-radius:var(--rounded-sm);background:var(--range-tooltip-back);margin-inline-start:var(--spacing-3);padding:0 var(--spacing-1);white-space:nowrap}.k-range-input-tooltip:after{position:absolute;top:50%;inset-inline-start:-3px;width:0;height:0;transform:translateY(-50%);border-block:3px solid transparent;border-inline-end:3px solid var(--range-tooltip-back);content:""}.k-range-input-tooltip>*{padding:var(--spacing-1)}.k-range-input-tooltip-text{font-family:var(--font-mono);width:calc(var(--digits) + var(--spacing-1) * 2);text-align:right}.k-range-input[data-disabled=true]{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--range-tooltip-back: var(--csstools-light-dark-toggle--0, var(--color-gray-600))}@supports not (color: light-dark(tan,tan)){.k-range-input[data-disabled=true] *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--range-tooltip-back: var(--csstools-light-dark-toggle--0, var(--color-gray-600))}}@supports (color: light-dark(red,red)){.k-range-input[data-disabled=true]{--range-tooltip-back: light-dark( var(--color-gray-600), var(--color-gray-850) )}}.k-input[data-type=range] .k-range-input{padding-inline:var(--input-padding)}.k-select-input{position:relative;display:block;overflow:hidden;padding:var(--input-padding);border-radius:var(--input-rounded)}.k-select-input[data-empty=true]{color:var(--input-color-placeholder)}.k-select-input-native{position:absolute;inset:0;opacity:0;z-index:1}.k-select-input-native[disabled]{cursor:default}.k-input[data-type=select]{position:relative}.k-input[data-type=select] .k-input-icon{position:absolute;inset-block:0;inset-inline-end:0}.k-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));grid-auto-rows:1fr;grid-gap:var(--spacing-2px)}.k-stats[data-size=small]{--stat-value-text-size: var(--text-md)}.k-stats[data-size=medium]{--stat-value-text-size: var(--text-xl)}.k-stats[data-size=large]{--stat-value-text-size: var(--text-2xl)}.k-stats[data-size=huge]{--stat-value-text-size: var(--text-3xl)}.k-structure-field td.k-table-column{cursor:pointer}.k-structure-field .k-table+footer{display:flex;justify-content:center;margin-top:var(--spacing-3)}.k-structure-field[data-disabled=true]{cursor:initial}.k-structure-field[data-disabled=true] *{pointer-events:initial}.k-field-counter{display:none}.k-text-field:focus-within .k-field-counter{display:block}.k-toolbar.k-textarea-toolbar{border-end-start-radius:0;border-end-end-radius:0;border-bottom:1px solid var(--toolbar-border)}.k-toolbar.k-textarea-toolbar>.k-button:first-child{border-end-start-radius:0}.k-toolbar.k-textarea-toolbar>.k-button:last-child{border-end-end-radius:0}.k-textarea-input[data-size=small]{--textarea-size: 7.5rem}.k-textarea-input[data-size=medium]{--textarea-size: 15rem}.k-textarea-input[data-size=large]{--textarea-size: 30rem}.k-textarea-input[data-size=huge]{--textarea-size: 45rem}.k-textarea-input-wrapper{position:relative;display:block}.k-textarea-input-native{resize:none;min-height:var(--textarea-size)}.k-textarea-input-native:focus{outline:0}.k-textarea-input-native[data-font=monospace]{font-family:var(--font-mono)}.k-textarea-input-native:disabled::placeholder{opacity:0}.k-input[data-type=textarea] .k-input-element{min-width:0}.k-input[data-type=textarea] .k-textarea-input-native{padding:var(--input-padding-multiline)}.k-time-input:disabled::placeholder{opacity:0}.k-choice-input{display:flex;gap:var(--spacing-3);min-width:0}.k-choice-input input{top:2px}.k-choice-input-label{display:flex;line-height:1.25rem;flex-direction:column;min-width:0;color:var(--choice-color-text)}.k-choice-input-label>*{display:block;overflow:hidden;text-overflow:ellipsis}.k-choice-input-label-info{color:var(--choice-color-info)}.k-choice-input[aria-disabled=true]{cursor:not-allowed}:where(.k-checkboxes-field,.k-radio-field) .k-choice-input{min-height:var(--input-height);padding-block:var(--spacing-2);padding-inline:var(--spacing-3);border-radius:var(--input-rounded)}:where(.k-checkboxes-field,.k-radio-field):not([data-disabled=true]) .k-choice-input{background:var(--item-color-back);box-shadow:var(--shadow)}:where(.k-checkboxes-field,.k-radio-field)[data-disabled=true] .k-choice-input{border:1px solid var(--color-border)}.k-input[data-type=toggle]{--input-color-border: transparent;--input-shadow: var(--shadow)}.k-input[data-type=toggle] .k-input-before{padding-inline-end:calc(var(--input-padding) / 2)}.k-input[data-type=toggle] .k-toggle-input{padding-inline-start:var(--input-padding)}.k-input[data-type=toggle][data-disabled=true]{box-shadow:none;border:1px solid var(--color-border)}.k-input[data-type=toggles]{display:inline-flex}.k-input[data-type=toggles].grow{display:flex}.k-input[data-type=toggles]:has(.k-empty){outline:0;display:flex}.k-toggles-input ul{display:grid;grid-template-columns:repeat(var(--options),minmax(0,1fr));gap:1px;border-radius:var(--rounded);line-height:1;background:var(--color-border);overflow:hidden}.k-toggles-input li{height:var(--field-input-height)}.k-toggles-input label{align-items:center;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);background:var(--csstools-light-dark-toggle--0, var(--color-white));cursor:pointer;display:flex;font-size:var(--text-sm);justify-content:center;line-height:1.25;padding:0 var(--spacing-3);height:100%}@supports (color: light-dark(red,red)){.k-toggles-input label{background:light-dark(var(--color-white),var(--color-gray-850))}}.k-toggles-input input:checked+label{--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-950);background:var(--csstools-light-dark-toggle--1, var(--color-black));color:var(--color-white)}@supports (color: light-dark(red,red)){.k-toggles-input input:checked+label{background:light-dark(var(--color-black),var(--color-gray-950))}}.k-toggles-input input:focus:not(:checked)+label{--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-blue-800);background:var(--csstools-light-dark-toggle--2, var(--color-blue-300))}@supports (color: light-dark(red,red)){.k-toggles-input input:focus:not(:checked)+label{background:light-dark(var(--color-blue-300),var(--color-blue-800))}}.k-toggles-input input[disabled]:checked+label{--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-850);background:var(--csstools-light-dark-toggle--3, var(--color-gray-600))}@supports (color: light-dark(red,red)){.k-toggles-input input[disabled]:checked+label{background:light-dark(var(--color-gray-600),var(--color-gray-850))}}.k-toggles-input input[disabled]:not(:checked)+label{color:var(--color-text-dimmed);background:var(--panel-color-back)}.k-toggles-input .k-icon+.k-toggles-text{margin-inline-start:var(--spacing-2)}.k-alpha-input{--range-track-back: linear-gradient(to right, transparent, currentColor);--range-track-height: var(--range-thumb-size);color:#000;background:#fff var(--pattern-light)}.k-calendar-input{--button-height: var(--height-sm);--button-width: var(--button-height);--button-padding: 0;padding:var(--spacing-2);width:min-content}.k-calendar-table{table-layout:fixed;min-width:15rem}.k-calendar-input .k-button{justify-content:center}.k-calendar-input>nav{display:flex;direction:ltr;align-items:center;margin-bottom:var(--spacing-2)}.k-calendar-selects{flex-grow:1;display:flex;align-items:center;justify-content:center}[dir=ltr] .k-calendar-selects{direction:ltr}[dir=rtl] .k-calendar-selects{direction:rtl}.k-calendar-selects .k-select-input{display:flex;align-items:center;text-align:center;height:var(--button-height);padding:0 .5rem;border-radius:var(--input-rounded)}.k-calendar-selects .k-select-input:focus-within{outline:var(--outline)}.k-calendar-input th{padding-block:.5rem;color:var(--color-gray-500);font-size:var(--text-xs);text-align:center}.k-calendar-day{padding:2px}.k-calendar-day[aria-current=date] .k-button{text-decoration:underline}.k-calendar-day[aria-selected=date] .k-button,.k-calendar-day[aria-selected=date] .k-button:focus{--button-color-text: var(--color-text);--button-color-back: var(--color-blue-500)}.k-calendar-day[aria-selected=date] .k-button:focus-visible{outline-offset:2px}.k-calendar-today{padding-top:var(--spacing-2);text-align:center}.k-calendar-today .k-button{--button-width: auto;--button-padding: var(--spacing-3);font-size:var(--text-xs);text-decoration:underline}.k-coloroptions-input{--color-preview-size: var(--input-height)}.k-coloroptions-input ul{display:grid;grid-template-columns:repeat(auto-fill,var(--color-preview-size));gap:var(--spacing-2)}.k-coloroptions-input input:focus+.k-color-frame{outline:var(--outline)}.k-coloroptions-input[disabled] label{opacity:var(--opacity-disabled);cursor:not-allowed}.k-coloroptions-input input:checked+.k-color-frame{outline:1px solid var(--color-gray-600);outline-offset:2px}.k-colorpicker-input{--h: 0;--s: 0%;--l: 0%;--a: 1;--range-thumb-size: .75rem;--range-track-height: .75rem;display:flex;flex-direction:column;gap:var(--spacing-3);width:max-content}.k-colorpicker-input .k-coords-input{border-radius:var(--rounded-sm);aspect-ratio:1/1;background:linear-gradient(to bottom,transparent,#000),linear-gradient(to right,#fff,hsl(var(--h),100%,50%))}.k-colorpicker-input .k-alpha-input{color:hsl(var(--h),var(--s),var(--l))}.k-colorpicker-input .k-coloroptions-input ul{grid-template-columns:repeat(6,1fr)}.k-coords-input{position:relative;display:block!important}.k-coords-input-thumb{position:absolute;aspect-ratio:1/1;width:var(--range-thumb-size);background:var(--range-thumb-color);border-radius:var(--range-thumb-size);box-shadow:var(--range-thumb-shadow);transform:translate(-50%,-50%);cursor:move}.k-coords-input[data-empty=true] .k-coords-input-thumb{opacity:0}.k-coords-input-thumb:active{cursor:grabbing}.k-coords-input:focus-within{outline:var(--outline)}.k-coords-input[aria-disabled=true]{pointer-events:none;opacity:var(--opacity-disabled)}.k-coords-input .k-coords-input-thumb:focus{outline:var(--outline)}.k-hue-input{--range-track-back: linear-gradient( to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 16.67%, hsl(120, 100%, 50%) 33.33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 66.67%, hsl(320, 100%, 50%) 83.33%, hsl(360, 100%, 50%) 100% ) no-repeat;--range-track-height: var(--range-thumb-size)}.k-timeoptions-input{--button-height: var(--height-sm);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3)}.k-timeoptions-input h3{display:flex;align-items:center;padding-inline:var(--button-padding);height:var(--button-height);margin-bottom:var(--spacing-1)}.k-timeoptions-input hr{margin:var(--spacing-2) var(--spacing-3)}.k-timeoptions-input .k-button[aria-selected=time]{--button-color-text: var(--color-text);--button-color-back: var(--color-blue-500)}.k-layout-selector h3{margin-top:-.5rem;margin-bottom:var(--spacing-3)}.k-layout-selector-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-6)}@media screen and (min-width:65em){.k-layout-selector-options{grid-template-columns:repeat(var(--columns),1fr)}}.k-layout-selector-option{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) hsla(var(--color-gray-hs), 60%, 10%);--color-border: var(--csstools-light-dark-toggle--0, hsla(var(--color-gray-hs), 0%, 6%));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-950);--color-back: var(--csstools-light-dark-toggle--1, var(--color-white));border-radius:var(--rounded)}@supports not (color: light-dark(tan,tan)){.k-layout-selector-option *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) hsla(var(--color-gray-hs), 60%, 10%);--color-border: var(--csstools-light-dark-toggle--0, hsla(var(--color-gray-hs), 0%, 6%));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-950);--color-back: var(--csstools-light-dark-toggle--1, var(--color-white))}}@supports (color: light-dark(red,red)){.k-layout-selector-option{--color-border: light-dark( hsla(var(--color-gray-hs), 0%, 6%), hsla(var(--color-gray-hs), 60%, 10%) );--color-back: light-dark(var(--color-white), var(--color-gray-950))}}.k-layout-selector-option:focus-visible{outline:var(--outline);outline-offset:-1px}.k-layout-selector-option .k-grid{border:1px solid var(--color-border);gap:1px;grid-template-columns:repeat(var(--columns),1fr);cursor:pointer;background:var(--color-border);border-radius:var(--rounded);overflow:hidden;box-shadow:var(--shadow);height:5rem}.k-layout-selector-option .k-column{grid-column:span var(--span);background:var(--color-back);height:100%}.k-layout-selector-option:hover{--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-800);--color-border: var(--csstools-light-dark-toggle--2, var(--color-gray-500));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-900);--color-back: var(--csstools-light-dark-toggle--3, var(--color-gray-100))}@supports not (color: light-dark(tan,tan)){.k-layout-selector-option:hover *{--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-800);--color-border: var(--csstools-light-dark-toggle--2, var(--color-gray-500));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-900);--color-back: var(--csstools-light-dark-toggle--3, var(--color-gray-100))}}@supports (color: light-dark(red,red)){.k-layout-selector-option:hover{--color-border: light-dark(var(--color-gray-500), var(--color-gray-800));--color-back: light-dark(var(--color-gray-100), var(--color-gray-900))}}.k-layout-selector-option[aria-current=true]{--color-border: var(--color-focus);--color-back: var(--color-blue-300)}.k-tags-field-preview{--tags-gap: .25rem;--tag-text-size: var(--text-xs);padding:.375rem var(--table-cell-padding);overflow:hidden}.k-tags-field-preview .k-tags{flex-wrap:nowrap}.k-bubbles{display:flex;gap:.25rem}.k-bubbles-field-preview{--bubble-back: var(--panel-color-back);--bubble-text: var(--color-text);padding:.375rem var(--table-cell-padding);overflow:hidden}.k-bubbles-field-preview .k-bubbles{gap:.375rem}.k-color-field-preview{--color-frame-rounded: var(--tag-rounded);--color-frame-size: var(--tag-height);padding:.375rem var(--table-cell-padding);display:flex;align-items:center;gap:var(--spacing-2)}.k-text-field-preview{padding:.325rem .75rem;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.k-url-field-preview{padding-inline:var(--table-cell-padding)}.k-url-field-preview[data-link=true]{color:var(--link-color)}.k-url-field-preview a{display:inline-flex;align-items:center;height:var(--height-xs);padding-inline:var(--spacing-1);margin-inline:calc(var(--spacing-1) * -1);border-radius:var(--rounded);max-width:100%;min-width:0}.k-url-field-preview a>*{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-decoration:underline;text-underline-offset:var(--link-underline-offset)}.k-url-field-preview a:hover{color:var(--link-color-hover)}.k-flag-field-preview{--button-height: var(--table-row-height);--button-width: 100%;outline-offset:-2px}.k-html-field-preview{padding:.375rem var(--table-cell-padding);overflow:hidden;text-overflow:ellipsis}.k-image-field-preview{height:100%}.k-link-field-preview{--tag-height: var(--height-xs);--tag-color-back: var(--panel-color-back);--tag-color-text: currentColor;--tag-color-toggle: var(--tag-color-text);--tag-color-toggle-border: var(--color-gray-300);--tag-color-focus-back: var(--tag-color-back);--tag-color-focus-text: var(--tag-color-text);padding-inline:var(--table-cell-padding);min-width:0}.k-link-field-preview .k-tag{min-width:0;max-width:100%}.k-link-field-preview .k-tag-text{font-size:var(--text-xs);min-width:0}.k-toggle-field-preview{padding-inline:var(--table-cell-padding)}:root{--toolbar-size: var(--height);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-white);--toolbar-text: var(--csstools-light-dark-toggle--0, var(--color-black));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--toolbar-back: var(--csstools-light-dark-toggle--1, var(--color-white));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-750);--toolbar-hover: var(--csstools-light-dark-toggle--2, var(--color-gray-200));--toolbar-border: var(--panel-color-back);--toolbar-current: var(--color-focus)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-white);--toolbar-text: var(--csstools-light-dark-toggle--0, var(--color-black));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--toolbar-back: var(--csstools-light-dark-toggle--1, var(--color-white));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-750);--toolbar-hover: var(--csstools-light-dark-toggle--2, var(--color-gray-200))}}@supports (color: light-dark(red,red)){:root{--toolbar-text: light-dark(var(--color-black), var(--color-white));--toolbar-back: light-dark(var(--color-white), var(--color-gray-850));--toolbar-hover: light-dark(var(--color-gray-200), var(--color-gray-750))}}:where(.k-textarea-input,.k-writer-input):not(:focus-within){--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-700);--toolbar-text: var(--csstools-light-dark-toggle--3, var(--color-gray-300))}@supports not (color: light-dark(tan,tan)){:where(.k-textarea-input,.k-writer-input):not(:focus-within) *{--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-700);--toolbar-text: var(--csstools-light-dark-toggle--3, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:where(.k-textarea-input,.k-writer-input):not(:focus-within){--toolbar-text: light-dark(var(--color-gray-300), var(--color-gray-700))}}.k-toolbar{display:flex;max-width:100%;height:var(--toolbar-size);align-items:center;overflow-x:auto;overflow-y:hidden;color:var(--toolbar-text);background:var(--toolbar-back);border-radius:var(--rounded)}.k-toolbar>hr{height:var(--toolbar-size);width:1px;border-left:1px solid var(--toolbar-border)}.k-toolbar-button.k-button{--button-width: var(--toolbar-size);--button-height: var(--toolbar-size);--button-rounded: 0;outline-offset:-2px}.k-toolbar-button:hover{--button-color-back: var(--toolbar-hover)}.k-toolbar .k-button[aria-current=true]{--button-color-text: var(--toolbar-current)}.k-toolbar>.k-button:first-child{border-start-start-radius:var(--rounded);border-end-start-radius:var(--rounded)}.k-toolbar>.k-button:last-child{border-start-end-radius:var(--rounded);border-end-end-radius:var(--rounded)}:where(.k-textarea-input,.k-writer-input):not(:focus-within){--toolbar-text: var(--color-gray-400);--toolbar-border: var(--panel-color-back)}.k-toolbar:not([data-inline=true]):has(~:focus-within,:focus){position:sticky;top:var(--header-sticky-offset);inset-inline:0;z-index:1;box-shadow:#0000000d 0 2px 5px}.k-writer-input:has(.k-toolbar:not([data-inline=true],[data-disabled=true])){grid-template-areas:"topbar" "content";grid-template-rows:var(--toolbar-size) 1fr;gap:0}.k-writer-toolbar:not(:has(~:focus-within)){--toolbar-current: currentColor}.k-writer-toolbar[data-inline=true]{position:absolute;z-index:calc(var(--z-dropdown) + 1);max-width:none;box-shadow:var(--shadow-toolbar)}.k-writer-toolbar:not([data-inline=true]){border-end-start-radius:0;border-end-end-radius:0;border-bottom:1px solid var(--toolbar-border)}.k-writer-toolbar:not([data-inline=true])>.k-button:first-child{border-end-start-radius:0}.k-writer-toolbar:not([data-inline=true])>.k-button:last-child{border-end-end-radius:0}:root{--bar-height: var(--height-xs)}.k-bar{display:flex;align-items:center;gap:var(--spacing-3);height:var(--bar-height);justify-content:space-between}.k-bar:where([data-align=center]){justify-content:center}.k-bar:where([data-align=end]):has(:first-child:last-child){justify-content:end}:root{--box-height: var( --field-input-height );--box-padding-inline: var(--spacing-2);--box-font-size: var(--text-sm);--box-color-back: none;--box-color-text: currentColor}.k-box{--icon-color: var(--box-color-icon);--text-font-size: var(--box-font-size);display:flex;width:100%;align-items:center;gap:var(--spacing-2);color:var(--box-color-text);background:var(--box-color-back);word-wrap:break-word}.k-box[data-theme]{--box-color-back: var(--theme-color-back);--box-color-text: var(--theme-color-text-highlight);--box-color-icon: var(--theme-color-700);--link-color: var(--box-color-text);--link-color-hover: var(--box-color-text);min-height:var(--box-height);line-height:1.25;padding:.375rem var(--box-padding-inline);border-radius:var(--rounded)}.k-box[data-theme=text],.k-box[data-theme=white]{box-shadow:var(--shadow)}.k-box[data-theme=text]{padding:var(--spacing-6)}.k-box[data-theme=none]{padding:0}.k-box[data-align=center]{justify-content:center}:root{--bubble-size: 1.525rem;--bubble-back: var(--panel-color-back);--bubble-rounded: var(--rounded-sm);--bubble-text: var(--color-black)}.k-bubble{width:min-content;height:var(--bubble-size);white-space:nowrap;line-height:1.5;background:var(--bubble-back);color:var(--bubble-text);border-radius:var(--bubble-rounded);overflow:hidden}.k-bubble .k-frame{width:var(--bubble-size);height:var(--bubble-size)}.k-bubble:has(.k-bubble-text){display:flex;gap:var(--spacing-2);align-items:center;padding-inline-end:.5rem;font-size:var(--text-xs)}.k-column{min-width:0}.k-column[data-sticky=true]{align-self:stretch}.k-column[data-sticky=true]>div{position:sticky;top:calc(var(--header-sticky-offset) + 2vh);z-index:2}.k-column[data-disabled=true]{cursor:not-allowed;opacity:.4}.k-column[data-disabled=true] *{pointer-events:none}.k-column[data-disabled=true] .k-text[data-theme=help] *{pointer-events:initial}.k-frame{--fit: contain;--ratio: 1/1;position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:var(--ratio);background:var(--back);overflow:hidden}.k-frame:where([data-theme]){--back: var(--theme-color-back);color:var(--theme-color-text-highlight)}.k-frame *:where(img,video,iframe,button){position:absolute;inset:0;height:100%;width:100%;object-fit:var(--fit)}.k-frame>*{overflow:hidden;text-overflow:ellipsis;min-width:0;min-height:0}:root{--color-frame-back: none;--color-frame-pattern: var(--pattern-light);--color-frame-rounded: var(--rounded);--color-frame-size: 100%;--color-frame-darkness: 0%}:root:has(.k-panel[data-theme=dark]){--color-frame-pattern: var(--pattern-dark)}.k-color-frame.k-frame{background:var(--color-frame-pattern);width:var(--color-frame-size);color:transparent;border-radius:var(--color-frame-rounded);overflow:hidden;background-clip:padding-box}.k-color-frame:after{border-radius:var(--color-frame-rounded);box-shadow:0 0 0 1px inset hsla(0,0%,var(--color-frame-darkness),.175);position:absolute;inset:0;background:var(--color-frame-back);content:""}.k-dropzone{position:relative}.k-dropzone:after{content:"";position:absolute;inset:0;display:none;pointer-events:none;z-index:1;border-radius:var(--rounded)}.k-dropzone[data-over=true]:after{display:block;background:hsla(var(--color-blue-hs),var(--color-blue-l-300),.6);outline:var(--outline)}.k-grid{--columns: 12;--grid-inline-gap: 0;--grid-block-gap: 0;display:grid;align-items:start;grid-column-gap:var(--grid-inline-gap);grid-row-gap:var(--grid-block-gap)}.k-grid>*{--width: calc(1 / var(--columns));--span: calc(var(--columns) * var(--width))}@container (min-width: 30rem){.k-grid{grid-template-columns:repeat(var(--columns),1fr)}.k-grid>*{grid-column:span var(--span)}}:root{--columns-inline-gap: clamp(.75rem, 6cqw, 6rem);--columns-block-gap: var(--spacing-8)}.k-grid[data-variant=columns]{--grid-inline-gap: var(--columns-inline-gap);--grid-block-gap: var(--columns-block-gap)}.k-grid:where([data-variant=columns],[data-variant=fields])>*{container:column / inline-size}.k-grid[data-variant=fields]{gap:var(--spacing-8)}.k-grid[data-variant=choices]{align-items:stretch;gap:2px}:root{--header-color-back: var(--panel-color-back);--header-padding-block: var(--spacing-4);--header-sticky-offset: var(--scroll-top)}.k-header{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;column-gap:var(--spacing-3);border-bottom:1px solid var(--color-border);background:var(--header-color-back);padding-top:var(--header-padding-block);margin-bottom:var(--spacing-12);box-shadow:2px 0 0 0 var(--header-color-back),-2px 0 0 0 var(--header-color-back)}.k-header:has(+.k-tabs){margin-bottom:0}.k-header-title{font-size:var(--text-h1);font-weight:var(--font-h1);line-height:var(--leading-h1);margin-bottom:var(--header-padding-block);min-width:0}.k-header-title-button{display:inline-flex;text-align:start;gap:var(--spacing-2);align-items:baseline;max-width:100%;outline:0}.k-header-title-text{overflow-x:clip;text-overflow:ellipsis}.k-header-title-icon{--icon-color: var(--color-text-dimmed);border-radius:var(--rounded);transition:opacity .2s;display:grid;flex-shrink:0;place-items:center;height:var(--height-sm);width:var(--height-sm);opacity:0}.k-header-title-button:is(:hover,:focus) .k-header-title-icon{opacity:1}.k-header-title-button:is(:focus) .k-header-title-icon{outline:var(--outline)}.k-header-buttons{display:flex;gap:var(--spacing-2);margin-bottom:var(--header-padding-block)}.k-header:has(.k-header-buttons){position:sticky;top:var(--scroll-top);z-index:var(--z-toolbar)}:root:has(.k-header .k-header-buttons){--header-sticky-offset: calc(var(--scroll-top) + 4rem)}.k-header .k-header-title-placeholder{color:var(--color-gray-500);transition:color .3s}.k-header[data-editable=true] .k-header-title-placeholder:hover{color:var(--color-text-dimmed)}:root{--icon-size: 18px;--icon-color: currentColor}.k-icon{width:var(--icon-size);height:var(--icon-size);flex-shrink:0;color:var(--icon-color);fill:currentColor}.k-icon[data-type=loader]{animation:Spin 1.5s linear infinite}@media only screen and (-webkit-min-device-pixel-ratio:2),not all,not all,not all,only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.k-button-icon [data-type=emoji]{font-size:1.25em}}.k-icon-frame [data-type=emoji]{overflow:visible}.k-image[data-back=pattern]{--back: var(--color-black) var(--pattern)}.k-image[data-back=black]{--back: var(--color-black)}.k-image[data-back=white]{--back: var(--color-white);color:var(--color-gray-900)}:root{--overlay-color-back: rgba(0, 0, 0, .6);--overlay-color-back-dimmed: rgba(0, 0, 0, .2)}.k-overlay[open]{position:fixed;overscroll-behavior:contain;inset:0;width:100%;height:100vh;height:100dvh;background:none;z-index:var(--z-dialog);transform:translateZ(0);overflow:hidden}.k-overlay[open]::backdrop{background:none}.k-overlay[open]>.k-portal{position:fixed;inset:0;background:var(--overlay-color-back);overflow:auto}.k-overlay[open][data-type=dialog]>.k-portal{display:inline-flex}.k-overlay[open][data-type=dialog]>.k-portal>*{margin:auto}.k-overlay[open][data-type=drawer]>.k-portal{--overlay-color-back: var(--overlay-color-back-dimmed);display:flex;align-items:stretch;justify-content:flex-end}html[data-overlay=true]{overflow:hidden}html[data-overlay=true] body{overflow:scroll}:root{--stat-color-back: var(--item-color-back);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--stat-color-hover-back: var(--csstools-light-dark-toggle--0, var(--color-gray-100));--stat-info-text-color: var(--color-text-dimmed);--stat-value-text-size: var(--text-2xl)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--stat-color-hover-back: var(--csstools-light-dark-toggle--0, var(--color-gray-100))}}@supports (color: light-dark(red,red)){:root{--stat-color-hover-back: light-dark( var(--color-gray-100), var(--color-gray-850) )}}.k-stat{display:flex;flex-direction:column;padding:var(--spacing-3) var(--spacing-6);background:var(--stat-color-back);border-radius:var(--rounded);box-shadow:var(--shadow);line-height:var(--leading-normal)}.k-stat.k-link:hover{cursor:pointer;background:var(--stat-color-hover-back)}.k-stat :where(dt,dd){display:block}.k-stat-value{order:1;font-size:var(--stat-value-text-size);margin-bottom:var(--spacing-1)}.k-stat-label{--icon-size: var(--text-sm);order:2;display:flex;justify-content:start;align-items:center;gap:var(--spacing-1);font-size:var(--text-xs)}.k-stat-info{order:3;font-size:var(--text-xs);color:var(--stat-info-text-color)}.k-stat:is([data-theme]) .k-stat-info{--stat-info-text-color: var(--theme-color-text)}:root{--table-cell-padding: var(--spacing-3);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--table-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) rgba(0, 0, 0, .375);--table-color-border: var(--csstools-light-dark-toggle--1, rgba(0, 0, 0, .08));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) rgba(0, 0, 0, .1);--table-color-hover: var(--csstools-light-dark-toggle--2, var(--color-gray-100));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-800);--table-color-th-back: var(--csstools-light-dark-toggle--3, var(--color-gray-100));--table-color-th-text: var(--color-text-dimmed);--table-row-height: var(--input-height)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--table-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) rgba(0, 0, 0, .375);--table-color-border: var(--csstools-light-dark-toggle--1, rgba(0, 0, 0, .08));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) rgba(0, 0, 0, .1);--table-color-hover: var(--csstools-light-dark-toggle--2, var(--color-gray-100));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-800);--table-color-th-back: var(--csstools-light-dark-toggle--3, var(--color-gray-100))}}@supports (color: light-dark(red,red)){:root{--table-color-back: light-dark(var(--color-white), var(--color-gray-850));--table-color-border: light-dark(rgba(0, 0, 0, .08), rgba(0, 0, 0, .375));--table-color-hover: light-dark(var(--color-gray-100), rgba(0, 0, 0, .1));--table-color-th-back: light-dark( var(--color-gray-100), var(--color-gray-800) )}}.k-table{position:relative;background:var(--table-color-back);box-shadow:var(--shadow);border-radius:var(--rounded)}.k-table table{table-layout:fixed}.k-table th,.k-table td{padding-inline:var(--table-cell-padding);height:var(--table-row-height);overflow:hidden;text-overflow:ellipsis;width:100%;border-inline-end:1px solid var(--table-color-border);line-height:1.25}.k-table tr>*:last-child{border-inline-end:0}.k-table th,.k-table tr:not(:last-child) td{border-block-end:1px solid var(--table-color-border)}.k-table :where(td,th)[data-align]{text-align:var(--align)}.k-table th{padding-inline:var(--table-cell-padding);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--table-color-th-text);background:var(--table-color-th-back)}.k-table th[data-has-button=true]{padding:0}.k-table th button{padding-inline:var(--table-cell-padding);height:100%;width:100%;border-radius:var(--rounded);text-align:start}.k-table th button:focus-visible{outline-offset:-2px}.k-table thead th:first-child{border-start-start-radius:var(--rounded)}.k-table thead th:last-child{border-start-end-radius:var(--rounded)}.k-table thead th{position:sticky;top:var(--header-sticky-offset);inset-inline:0;z-index:1}.k-table tbody tr td{background:var(--table-color-back)}.k-table tbody tr:hover td{background:var(--table-color-hover)}.k-table tbody th{width:auto;white-space:nowrap;overflow:visible;border-radius:0}.k-table tbody tr:first-child th{border-start-start-radius:var(--rounded)}.k-table tbody tr:last-child th{border-end-start-radius:var(--rounded);border-block-end:0}.k-table-row-ghost{background:var(--table-color-back);outline:var(--outline);border-radius:var(--rounded);margin-bottom:2px;cursor:grabbing}.k-table-row-fallback{opacity:0!important}.k-table .k-table-index-column{width:var(--table-row-height);text-align:center}.k-table .k-table-index{font-size:var(--text-xs);color:var(--color-text-dimmed);line-height:1.1em}.k-table .k-table-index-column:has(.k-table-index-checkbox){padding:0}.k-table tr[data-sortable=true] .k-table-index-column .k-sort-handle{--button-width: 100%;display:none}.k-table tr[data-sortable=true]:hover .k-table-index-column .k-table-index{display:none}.k-table tr[data-sortable=true]:hover .k-table-index-column .k-sort-handle{display:flex}.k-table tr[data-selectable=true]:has(.k-table-select-checkbox input:checked){--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-blue-800);--table-color-back: var(--csstools-light-dark-toggle--4, var(--color-blue-250));--table-color-hover: var(--table-color-back)}@supports not (color: light-dark(tan,tan)){.k-table tr[data-selectable=true]:has(.k-table-select-checkbox input:checked) *{--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-blue-800);--table-color-back: var(--csstools-light-dark-toggle--4, var(--color-blue-250))}}@supports (color: light-dark(red,red)){.k-table tr[data-selectable=true]:has(.k-table-select-checkbox input:checked){--table-color-back: light-dark(var(--color-blue-250), var(--color-blue-800))}}.k-table .k-table-select-checkbox{height:var(--table-row-height);display:grid;place-items:center}.k-table .k-table-options-column{padding:0;width:var(--table-row-height);text-align:center}.k-table .k-table-options-column .k-options-dropdown-toggle{--button-width: 100%;--button-height: 100%;outline-offset:-2px}.k-table-empty{color:var(--color-text-dimmed);font-size:var(--text-sm)}.k-table[aria-disabled=true]{--table-color-back: transparent;--table-color-border: var(--color-border);--table-color-hover: transparent;--table-color-th-back: transparent;border:1px solid var(--table-color-border);box-shadow:none}.k-table[aria-disabled=true] thead th{position:static}@container (max-width: 40rem){.k-table{overflow-x:auto}.k-table thead th{position:static}.k-table .k-options-dropdown-toggle{aspect-ratio:auto!important}.k-table :where(th,td):not(.k-table-index-column,.k-table-options-column,[data-column-id=image],[data-column-id=flag]){width:auto!important}.k-table :where(th,td):not([data-mobile=true]){display:none}}.k-table-pagination{border-top:1px solid var(--table-color-border);height:var(--table-row-height);background:var(--table-color-th-back);display:flex;justify-content:center;border-end-start-radius:var(--rounded);border-end-end-radius:var(--rounded)}.k-table-pagination>.k-button{--button-color-back: transparent;border-left:0!important}.k-table .k-table-cell{padding:0}.k-tabs{--button-height: var(--height-md);--button-padding: var(--spacing-2);display:flex;gap:var(--spacing-1);margin-bottom:var(--spacing-12);margin-inline:calc(var(--button-padding) * -1)}.k-tabs-button.k-button{position:relative;margin-block:2px;overflow-x:visible}.k-tabs-button[aria-current=true]:after{position:absolute;content:"";height:2px;inset-inline:var(--button-padding);bottom:-2px;background:var(--color-text)}.k-tabs-button .k-button-badge{top:3px;inset-inline-end:calc(var(--button-padding) / 4)}.k-fatal[open]{background:var(--overlay-color-back);padding:var(--spacing-6)}.k-fatal-box{position:relative;width:100%;box-shadow:var(--dialog-shadow);border-radius:var(--dialog-rounded);line-height:1;height:calc(100vh - 3rem);height:calc(100dvh - 3rem);display:flex;flex-direction:column;overflow:hidden}.k-fatal-iframe{border:0;width:100%;flex-grow:1;background:var(--color-white);padding:var(--spacing-3)}.k-icons{position:absolute;width:0;height:0}.k-notification{padding:.75rem 1.5rem;background:var(--color-gray-900);width:100%;line-height:1.25rem;color:var(--color-white);display:flex;flex-shrink:0;align-items:center}.k-notification[data-theme]{background:var(--theme-color-back);color:var(--color-black)}.k-notification p{flex-grow:1;word-wrap:break-word;overflow:hidden}.k-notification .k-button{display:flex;margin-inline-start:1rem}.k-offline-warning{position:fixed;inset:0;z-index:var(--z-offline);background:var(--overlay-color-back);display:flex;align-items:center;justify-content:center;line-height:1}.k-offline-warning p{display:flex;align-items:center;gap:.5rem;background:var(--color-white);box-shadow:var(--shadow);padding:.75rem;border-radius:var(--rounded)}.k-offline-warning p .k-icon{color:var(--color-red-400)}:root{--progress-height: var(--spacing-2);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--progress-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300));--progress-color-value: var(--color-focus)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--progress-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:root{--progress-color-back: light-dark(var(--color-gray-300), var(--color-gray-850))}}progress{display:block;width:100%;height:var(--progress-height);border-radius:var(--progress-height);overflow:hidden;background:var(--progress-color-back);border:0}progress::-webkit-progress-bar{background:var(--progress-color-back)}progress::-webkit-progress-value{background:var(--progress-color-value);border-radius:var(--progress-height)}progress::-moz-progress-bar{background:var(--progress-color-value);border-radius:var(--progress-height)}progress:not([value])::-webkit-progress-bar{background:var(--progress-color-value)}progress:not([value])::-moz-progress-bar{background:var(--progress-color-value)}.k-sort-handle{cursor:grab;z-index:1}.k-sort-handle:active{cursor:grabbing}.k-breadcrumb{--breadcrumb-divider: "/";overflow-x:clip;padding:2px}.k-breadcrumb ol{display:none;gap:.125rem;align-items:center}.k-breadcrumb ol li{display:flex;align-items:center;min-width:0;transition:flex-shrink .1s}.k-breadcrumb ol li:has(.k-icon){min-width:2.25rem}.k-breadcrumb ol li:not(:last-child):after{content:var(--breadcrumb-divider);opacity:.175;flex-shrink:0}.k-breadcrumb .k-icon[data-type=loader]{opacity:.5}.k-breadcrumb ol li:is(:hover,:focus-within){flex-shrink:0}.k-button.k-breadcrumb-link{flex-shrink:1;min-width:0;justify-content:flex-start}.k-breadcrumb-dropdown{display:grid}.k-breadcrumb-dropdown .k-dropdown-content{width:15rem}@container (min-width: 40em){.k-breadcrumb ol{display:flex}.k-breadcrumb-dropdown{display:none}}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--browser-item-hover-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300));--browser-item-hover-color-text: currentColor;--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-blue-800);--browser-item-selected-color-back: var(--csstools-light-dark-toggle--1, var(--color-blue-300));--browser-item-selected-color-text: currentColor;--browser-item-gap: 1px;--browser-item-size: 1fr;--browser-item-height: var(--height-sm);--browser-item-padding: .25rem;--browser-item-rounded: var(--rounded)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--browser-item-hover-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-blue-800);--browser-item-selected-color-back: var(--csstools-light-dark-toggle--1, var(--color-blue-300))}}@supports (color: light-dark(red,red)){:root{--browser-item-hover-color-back: light-dark( var(--color-gray-300), var(--color-gray-950) );--browser-item-selected-color-back: light-dark( var(--color-blue-300), var(--color-blue-800) )}}.k-browser{container-type:inline-size;font-size:var(--text-sm)}.k-browser-items{display:grid;column-gap:var(--browser-item-gap);row-gap:var(--browser-item-gap);grid-template-columns:repeat(auto-fill,minmax(var(--browser-item-size),1fr))}.k-browser-item{display:flex;overflow:hidden;gap:.5rem;align-items:center;flex-shrink:0;height:var(--browser-item-height);padding-inline:calc(var(--browser-item-padding) + 1px);border-radius:var(--browser-item-rounded);white-space:nowrap;cursor:pointer}.k-browser-item:hover{background:var(--browser-item-hover-color-back);color:var(--browser-item-hover-color-text)}.k-browser-item-image{height:calc(var(--browser-item-height) - var(--browser-item-padding) * 2);aspect-ratio:1/1;border-radius:var(--rounded-sm);box-shadow:var(--shadow);flex-shrink:0}.k-browser-item-image.k-icon-frame{box-shadow:none;--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-black);background:var(--csstools-light-dark-toggle--2, var(--color-white))}@supports (color: light-dark(red,red)){.k-browser-item-image.k-icon-frame{background:light-dark(var(--color-white),var(--color-black))}}.k-browser-item-image svg{transform:scale(.8)}.k-browser-item input{position:absolute;box-shadow:var(--shadow);opacity:0;width:0}.k-browser-item[aria-selected]{background:var(--browser-item-selected-color-back);color:var(--browser-item-selected-color-text)}.k-button-group{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.k-button-group:where([data-layout=collapsed]){gap:0;flex-wrap:nowrap}.k-button-group[data-layout=collapsed]>.k-button[data-variant=filled]:not(:last-child){border-start-end-radius:0;border-end-end-radius:0}.k-button-group[data-layout=collapsed]>.k-button{--theme-color-border: var(--panel-color-back)}.k-button-group[data-layout=collapsed]>.k-button[data-variant=filled]:not(:first-child){border-start-start-radius:0;border-end-start-radius:0;border-left:1px solid var(--theme-color-border)}.k-button-group[data-layout=collapsed]>.k-button[data-variant=filled]:focus-visible{z-index:1;border-radius:var(--button-rounded)}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--panel-color-back);--file-browser-items-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-100))}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--panel-color-back);--file-browser-items-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-100))}}@supports (color: light-dark(red,red)){:root{--file-browser-items-color-back: light-dark( var(--color-gray-100), var(--panel-color-back) )}}.k-file-browser{container-type:inline-size;overflow:hidden}.k-file-browser-layout{display:grid;grid-template-columns:minmax(10rem,15rem) 1fr;grid-template-rows:1fr auto;grid-template-areas:"tree items" "tree pagination"}.k-file-browser-tree{grid-area:tree;padding:var(--spacing-2);border-right:1px solid var(--color-border)}.k-file-browser-items{grid-area:items;padding:var(--spacing-2);background:var(--file-browser-items-color-back)}.k-file-browser-back-button{display:none}.k-file-browser-pagination{background:var(--file-browser-items-color-back);padding:var(--spacing-2);display:flex;justify-content:end}@container (max-width: 30rem){.k-file-browser-layout{grid-template-columns:minmax(0,1fr);min-height:10rem}.k-file-browser-back-button{width:100%;height:var(--height-sm);display:flex;align-items:center;justify-content:flex-start;padding-inline:.25rem;margin-bottom:.5rem;--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-800);background:var(--csstools-light-dark-toggle--1, var(--color-gray-200));border-radius:var(--rounded)}@supports (color: light-dark(red,red)){.k-file-browser-back-button{background:light-dark(var(--color-gray-200),var(--color-gray-800))}}.k-file-browser-tree{border-right:0}.k-file-browser-pagination{justify-content:start}.k-file-browser[data-view=files] .k-file-browser-layout{grid-template-rows:1fr auto;grid-template-areas:"items" "pagination"}.k-file-browser[data-view=files] .k-file-browser-tree,.k-file-browser[data-view=tree] .k-file-browser-items,.k-file-browser[data-view=tree] .k-file-browser-pagination{display:none}}:root{--tree-color-back: var(--panel-color-back);--tree-indentation: .6rem;--tree-level: 0;--tree-branch-color-back: var(--tree-color-back);--tree-branch-color-text: var(--color-text-dimmed);--tree-branch-hover-color-back: var(--browser-item-hover-color-back);--tree-branch-hover-color-text: var(--browser-item-hover-color-text);--tree-branch-selected-color-back: var(--browser-item-selected-color-back);--tree-branch-selected-color-text: var(--browser-item-selected-color-text)}.k-tree-branch{display:flex;align-items:center;padding-inline-start:calc(var(--tree-level) * var(--tree-indentation));margin-bottom:1px;background:var(--tree-branch-color-back)}.k-tree-branch:has(+.k-tree){inset-block-start:calc(var(--tree-level) * 1.5rem);z-index:calc(100 - var(--tree-level))}.k-tree-branch:hover,li[aria-current=true]>.k-tree-branch{color:var(--tree-branch-hover-color-text);background:var(--tree-branch-hover-color-back);border-radius:var(--rounded)}li[aria-current=true]>.k-tree-branch{background:var(--tree-branch-selected-color-back)}.k-tree-toggle{--icon-size: 12px;width:1rem;aspect-ratio:1/1;display:grid;place-items:center;padding:0;border-radius:var(--rounded-sm);margin-inline-start:.25rem;flex-shrink:0}.k-tree-toggle:hover{background:#00000013}.k-tree-toggle[disabled]{visibility:hidden}.k-tree-folder{display:flex;height:var(--height-sm);border-radius:var(--rounded-sm);padding-inline:.25rem;width:100%;align-items:center;gap:.325rem;min-width:3rem;line-height:1.25;font-size:var(--text-sm)}@container (max-width: 15rem){.k-tree{--tree-indentation: .375rem}.k-tree-folder{padding-inline:.125rem}.k-tree-folder .k-icon{display:none}}.k-tree-folder>.k-frame{flex-shrink:0}.k-tree-folder-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:currentColor}.k-tree-folder[disabled]{opacity:var(--opacity-disabled)}.k-pagination{flex-shrink:0}.k-pagination-details{--button-padding: var(--spacing-3);font-size:var(--text-xs)}.k-pagination-selector{--button-height: var(--height);--dropdown-padding: 0;overflow:visible}.k-pagination-selector form{display:flex;align-items:center;justify-content:space-between}.k-pagination-selector label{display:flex;align-items:center;gap:var(--spacing-2);padding-inline-start:var(--spacing-3)}.k-pagination-selector select{--height: calc(var(--button-height) - .5rem);width:auto;min-width:var(--height);height:var(--height);text-align:center;background:var(--color-gray-800);color:var(--color-white);border-radius:var(--rounded-sm)}.k-prev-next{direction:ltr;flex-shrink:0}.k-search-bar-input{--button-height: var(--input-height);display:flex;align-items:center}.k-search-bar-types{flex-shrink:0;border-inline-end:1px solid var(--color-border)}.k-search-bar-input input{flex-grow:1;padding-inline:.75rem;height:var(--input-height);line-height:var(--input-height);border-radius:var(--rounded);font-size:var(--input-font-size)}.k-search-bar-input input:focus{outline:0}.k-search-bar-input .k-search-bar-close{flex-shrink:0}.k-search-bar-results{border-top:1px solid var(--color-border);padding:1rem}.k-search-bar-results .k-item[data-selected=true]{outline:var(--outline)}.k-search-bar-footer{text-align:center}.k-search-bar-footer p{color:var(--color-text-dimmed)}.k-search-bar-footer .k-button{margin-top:var(--spacing-4)}.k-section+.k-section{margin-top:var(--columns-block-gap)}.k-section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-6);margin-bottom:var(--spacing-2)}.k-section-buttons{flex-shrink:0}.k-fields-section input[type=submit]{display:none}[data-locked=true] .k-fields-section{opacity:.2;pointer-events:none}.k-models-section[data-processing=true]{pointer-events:none}.k-models-section-search.k-input{--input-color-back: var(--color-border);--input-color-border: transparent;margin-bottom:var(--spacing-3)}:root{--code-color-back: var(--color-black);--code-color-icon: var(--color-gray-500);--code-color-text: var(--color-gray-200, var(--color-white));--code-font-family: var(--font-mono);--code-font-size: 1em;--code-inline-color-back: var(--color-blue-300);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-blue-900);--code-inline-color-border: var(--csstools-light-dark-toggle--0, var(--color-blue-400));--code-inline-color-text: var(--color-blue-900);--code-inline-font-size: .9em;--code-padding: var(--spacing-3)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-blue-900);--code-inline-color-border: var(--csstools-light-dark-toggle--0, var(--color-blue-400))}}@supports (color: light-dark(red,red)){:root{--code-inline-color-border: light-dark(var(--color-blue-400), var(--color-blue-900))}}code{font-family:var(--code-font-family);font-size:var(--code-font-size);font-weight:var(--font-normal)}.k-code,.k-text pre{position:relative;display:block;max-width:100%;padding:var(--code-padding);border-radius:var(--rounded, .5rem);background:var(--code-color-back);color:var(--code-color-text);white-space:nowrap;overflow-y:hidden;overflow-x:auto;line-height:1.5;tab-size:2}.k-code:not(code),.k-text pre{white-space:pre-wrap}.k-code:before{position:absolute;content:attr(data-language);inset-block-start:0;inset-inline-end:0;padding:.5rem .5rem .25rem .25rem;font-size:calc(.75 * var(--text-xs));background:var(--code-color-back);border-radius:var(--rounded, .5rem)}.k-text>code,.k-text *:not(pre)>code{display:inline-flex;padding-inline:var(--spacing-1);font-size:var(--code-inline-font-size);color:var(--code-inline-color-text);background:var(--code-inline-color-back);border-radius:var(--rounded);outline:1px solid var(--code-inline-color-border);outline-offset:-1px}:root{--text-h1: 2em;--text-h2: 1.75em;--text-h3: 1.5em;--text-h4: 1.25em;--text-h5: 1.125em;--text-h6: 1em;--font-h1: var(--font-semi);--font-h2: var(--font-semi);--font-h3: var(--font-semi);--font-h4: var(--font-semi);--font-h5: var(--font-semi);--font-h6: var(--font-semi);--leading-h1: 1.125;--leading-h2: 1.125;--leading-h3: 1.25;--leading-h4: 1.375;--leading-h5: 1.5;--leading-h6: 1.5}.k-headline{line-height:1.5em;font-weight:var(--font-bold)}.h1,.k-text h1,.k-headline[data-size=huge]{color:var(--color-h1, var(--color-h));font-family:var(--font-family-h1);font-size:var(--text-h1);font-weight:var(--font-h1);line-height:var(--leading-h1)}.h2,.k-text h2,.k-headline[data-size=large]{color:var(--color-h2, var(--color-h));font-family:var(--font-family-h2);font-size:var(--text-h2);font-weight:var(--font-h2);line-height:var(--leading-h2)}.h3,.k-text h3{color:var(--color-h3, var(--color-h));font-family:var(--font-family-h3);font-size:var(--text-h3);font-weight:var(--font-h3);line-height:var(--leading-h3)}.h4,.k-text h4,.k-headline[data-size=small]{color:var(--color-h4, var(--color-h));font-family:var(--font-family-h4);font-size:var(--text-h4);font-weight:var(--font-h4);line-height:var(--leading-h4)}.h5,.k-text h5{color:var(--color-h5, var(--color-h));font-family:var(--font-family-h5);font-size:var(--text-h5);font-weight:var(--font-h5);line-height:var(--leading-h5)}.h6,.k-text h6{color:var(--color-h6, var(--color-h));font-family:var(--font-family-h6);font-size:var(--text-h6);font-weight:var(--font-h6);line-height:var(--leading-h6)}.k-text>*+h6{margin-block-start:calc(var(--text-line-height) * 1.5em)}.k-label{position:relative;display:flex;align-items:center;height:var(--height-xs);font-weight:var(--font-semi);min-width:0;flex:1}[aria-disabled=true] .k-label{opacity:var(--opacity-disabled);cursor:not-allowed}.k-label>a{display:inline-flex;height:var(--height-xs);align-items:center;padding-inline:var(--spacing-2);margin-inline-start:calc(-1 * var(--spacing-2));border-radius:var(--rounded);min-width:0}.k-label-text{text-overflow:ellipsis;white-space:nowrap;overflow-x:clip;min-width:0}.k-label abbr{font-size:var(--text-xs);color:var(--color-gray-500);margin-inline-start:var(--spacing-1)}.k-label abbr.k-label-invalid{display:none;color:var(--theme-color-text)}:where(.k-field:has(:invalid),.k-section:has([data-invalid=true]))>header>.k-label abbr.k-label-invalid{display:inline-block}.k-field:has(:invalid)>.k-field-header>.k-label abbr:has(+abbr.k-label-invalid){display:none}:root{--text-font-size: 1em;--text-line-height: 1.5;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-blue-500);--link-color: var(--csstools-light-dark-toggle--0, var(--color-blue-800));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-blue-400);--link-color-hover: var(--csstools-light-dark-toggle--1, var(--color-blue-700));--link-underline-offset: 2px}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-blue-500);--link-color: var(--csstools-light-dark-toggle--0, var(--color-blue-800));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-blue-400);--link-color-hover: var(--csstools-light-dark-toggle--1, var(--color-blue-700))}}@supports (color: light-dark(red,red)){:root{--link-color: light-dark(var(--color-blue-800), var(--color-blue-500));--link-color-hover: light-dark(var(--color-blue-700), var(--color-blue-400))}}.k-text{font-size:var(--text-font-size);line-height:var(--text-line-height)}.k-text[data-size=tiny]{--text-font-size: var(--text-xs)}.k-text[data-size=small]{--text-font-size: var(--text-sm)}.k-text[data-size=medium]{--text-font-size: var(--text-md)}.k-text[data-size=large]{--text-font-size: var(--text-xl)}.k-text[data-align]{text-align:var(--align)}.k-text>:where(audio,blockquote,details,div,figure,h1,h2,h3,h4,h5,h6,hr,iframe,img,object,ol,p,picture,pre,table,ul)+*{margin-block-start:calc(var(--text-line-height) * 1em)}.k-text :where(.k-link,a){color:var(--link-color);text-decoration:underline;text-underline-offset:var(--link-underline-offset);border-radius:var(--rounded-xs);outline-offset:2px}.k-text :where(.k-link,a):hover{color:var(--link-color-hover)}.k-text ol,.k-text ul{padding-inline-start:1.75em}.k-text ol{list-style:numeric}.k-text ol>li{list-style:decimal}.k-text ul>li{list-style:disc}.k-text ul ul>li{list-style:circle}.k-text ul ul ul>li{list-style:square}.k-text blockquote{font-size:var(--text-lg);line-height:1.25;padding-inline-start:var(--spacing-4);--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-border);border-inline-start:2px solid var(--csstools-light-dark-toggle--2, var(--color-black))}@supports (color: light-dark(red,red)){.k-text blockquote{border-inline-start:2px solid light-dark(var(--color-black),var(--color-border))}}.k-text img{border-radius:var(--rounded)}.k-text iframe{width:100%;aspect-ratio:16/9;border-radius:var(--rounded)}.k-text hr{background:var(--color-border);height:1px}.k-help{color:var(--color-text-dimmed)}.k-upload-item-preview{--icon-size: 24px;grid-area:preview;display:flex;aspect-ratio:1/1;width:100%;height:100%;overflow:hidden;border-start-start-radius:var(--rounded);border-end-start-radius:var(--rounded)}.k-upload-item-preview:focus{border-radius:var(--rounded);outline:2px solid var(--color-focus);z-index:1}:root{--upload-item-color-back: var(--item-color-back)}.k-upload-item{accent-color:var(--color-focus);display:grid;grid-template-areas:"preview input input" "preview body toggle";grid-template-columns:6rem 1fr auto;grid-template-rows:var(--input-height) 1fr;border-radius:var(--rounded);background:var(--upload-item-color-back);box-shadow:var(--shadow);min-height:6rem}.k-upload-item-body{grid-area:body;display:flex;flex-direction:column;justify-content:space-between;padding:var(--spacing-2) var(--spacing-3);min-width:0}.k-upload-item-input.k-input{--input-color-border: transparent;--input-padding: var(--spacing-2) var(--spacing-3);--input-rounded: 0;grid-area:input;font-size:var(--text-sm);border-bottom:1px solid var(--color-border);border-start-end-radius:var(--rounded)}.k-upload-item-input.k-input:focus-within{outline:2px solid var(--color-focus);z-index:1;border-radius:var(--rounded)}.k-upload-item-input.k-input[data-disabled=true]{--input-color-back: var(--upload-item-color-back)}.k-upload-item-input .k-input-after{color:var(--color-gray-600)}.k-upload-item-meta{font-size:var(--text-xs);color:var(--color-gray-600)}.k-upload-item-error{font-size:var(--text-xs);margin-top:.25rem;color:var(--theme-color-text)}.k-upload-item-progress{--progress-height: .25rem;--progress-color-back: var(--panel-color-back);margin-bottom:.3125rem}.k-upload-item-toggle{grid-area:toggle;align-self:end}.k-upload-item-toggle>*{padding:var(--spacing-3)}.k-upload-items{display:grid;gap:.25rem}.k-activation{position:relative;display:flex;color:var(--dropdown-color-text);background:var(--dropdown-color-bg);border-radius:var(--dropdown-rounded);box-shadow:var(--dropdown-shadow);justify-content:space-between}.k-activation p{padding-inline-start:var(--spacing-3);padding-inline-end:var(--spacing-2);padding-block:.425rem;line-height:1.25}.k-activation p strong{font-weight:var(--font-normal);margin-inline-end:var(--spacing-1)}.k-activation p :where(button,a){color:var(--color-pink-400);text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:2px;border-radius:var(--rounded-sm)}.k-activation-toggle{--button-color-text: var(--color-gray-400);--button-rounded: 0;border-left:1px solid var(--dropdown-color-hr)}.k-activation-toggle:is(:hover,:focus){--button-color-text: var(--color-white)}.k-activation-toggle:focus{--button-rounded: var(--rounded)}.k-languages-dropdown-item:after{content:"✓";padding-inline-start:var(--spacing-1)}.k-languages-dropdown-item:not([aria-current=true]):after{visibility:hidden}.k-languages-dropdown-item .k-button-text{display:flex;flex-grow:1;justify-content:space-between;align-items:center;gap:var(--spacing-6);min-width:8rem}.k-languages-dropdown-item-info{display:flex;gap:var(--spacing-2);align-items:center}.k-languages-dropdown-item-icon{--icon-color: var(--color-orange-500);--icon-size: 1rem}.k-languages-dropdown-item-info[data-lock=true] .k-languages-dropdown-item-icon{--icon-color: var(--color-red-500)}.k-languages-dropdown-item-code{font-size:var(--text-xs);color:var(--color-gray-500)}:root{--main-padding-inline: clamp(var(--spacing-6), 5cqw, var(--spacing-24))}.k-panel-main{min-height:100vh;min-height:100dvh;padding:var(--spacing-3) var(--main-padding-inline) var(--spacing-24);container:main / inline-size;margin-inline-start:var(--main-start)}.k-panel-notification{--button-height: var(--height-md);--button-color-icon: var(--theme-color-900);--button-color-text: var(--theme-color-900);border:1px solid var(--theme-color-500);position:fixed;inset-block-end:var(--menu-padding);inset-inline-end:var(--menu-padding);box-shadow:var(--dropdown-shadow);z-index:var(--z-notification)}:root{--menu-button-height: var(--height);--menu-button-width: 100%;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--menu-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-250));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--menu-color-border: var(--csstools-light-dark-toggle--1, var(--color-gray-300));--menu-display: none;--menu-display-backdrop: block;--menu-padding: var(--spacing-3);--menu-shadow: var(--shadow-xl);--menu-toggle-height: var(--menu-button-height);--menu-toggle-width: 1rem;--menu-width-closed: calc( var(--menu-button-height) + 2 * var(--menu-padding) );--menu-width-open: 12rem;--menu-width: var(--menu-width-open)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--menu-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-250));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--menu-color-border: var(--csstools-light-dark-toggle--1, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:root{--menu-color-back: light-dark(var(--color-gray-250), var(--color-gray-950));--menu-color-border: light-dark(var(--color-gray-300), var(--color-gray-850))}}.k-panel-menu{position:fixed;inset-inline-start:0;inset-block:0;z-index:var(--z-navigation);display:var(--menu-display);width:var(--menu-width);background-color:var(--menu-color-back);border-right:1px solid var(--menu-color-border);box-shadow:var(--menu-shadow)}.k-panel-menu-body{display:flex;flex-direction:column;gap:var(--spacing-4);padding:var(--menu-padding);overscroll-behavior:contain;overflow-x:hidden;overflow-y:auto;height:100%}.k-panel-menu-search{margin-bottom:var(--spacing-8)}.k-panel-menu-buttons{display:flex;flex-direction:column;width:100%}.k-panel-menu-buttons[data-second-last=true]{margin-bottom:auto}.k-panel-menu-button{--button-align: flex-start;--button-height: var(--menu-button-height);--button-width: var(--menu-button-width);--button-padding: 7px;flex-shrink:0}.k-panel-menu-button[aria-current=true]{--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-850);--button-color-back: var(--csstools-light-dark-toggle--2, var(--color-white));box-shadow:var(--shadow)}@supports not (color: light-dark(tan,tan)){.k-panel-menu-button[aria-current=true] *{--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-850);--button-color-back: var(--csstools-light-dark-toggle--2, var(--color-white))}}@supports (color: light-dark(red,red)){.k-panel-menu-button[aria-current=true]{--button-color-back: light-dark(var(--color-white), var(--color-gray-850))}}.k-panel-menu-button:focus{z-index:1}.k-panel[data-menu=true]{--menu-button-width: 100%;--menu-display: block;--menu-width: var(--menu-width-open)}.k-panel[data-menu=true]:after{content:"";position:fixed;inset:0;background:var(--overlay-color-back);display:var(--menu-display-backdrop);pointer-events:none;z-index:var(--z-drawer)}.k-panel-menu-toggle{--button-align: flex-start;--button-height: 100%;--button-width: var(--menu-toggle-width);position:absolute;inset-block:0;inset-inline-start:100%;align-items:flex-start;border-radius:0;overflow:visible;opacity:0;transition:opacity .2s}.k-panel-menu-toggle:focus{outline:0}.k-panel-menu-toggle .k-button-icon{display:grid;place-items:center;height:var(--menu-toggle-height);width:var(--menu-toggle-width);margin-top:var(--menu-padding);border-block:1px solid var(--menu-color-border);border-inline-end:1px solid var(--menu-color-border);background:var(--menu-color-back);border-start-end-radius:var(--button-rounded);border-end-end-radius:var(--button-rounded)}@media(max-width:60rem){.k-panel-menu .k-activation-button{margin-bottom:var(--spacing-3)}.k-panel-menu .k-activation-toggle{display:none}}@media(min-width:60rem){.k-panel{--menu-display: block;--menu-display-backdrop: none;--menu-shadow: none;--main-start: var(--menu-width)}.k-panel[data-menu=false]{--menu-button-width: var(--menu-button-height);--menu-width: var(--menu-width-closed)}.k-panel-menu-proxy{display:none}.k-panel-menu-toggle:focus-visible,.k-panel-menu[data-hover=true] .k-panel-menu-toggle{opacity:1}.k-panel-menu-toggle:focus-visible .k-button-icon{outline:var(--outline);border-radius:var(--button-rounded)}.k-panel-menu-search[aria-disabled=true]{opacity:0}.k-panel-menu .k-activation{position:absolute;bottom:var(--menu-padding);inset-inline-start:100%;height:var(--height-md);width:max-content;margin-left:var(--menu-padding)}.k-panel-menu .k-activation:before{position:absolute;content:"";top:50%;left:-4px;margin-top:-4px;border-top:4px solid transparent;border-right:4px solid var(--color-black);border-bottom:4px solid transparent}.k-panel-menu .k-activation p :where(button,a){padding-inline:var(--spacing-1)}.k-panel-menu .k-activation-toggle{border-left:1px solid var(--dropdown-color-hr)}}.k-panel.k-panel-outside{display:grid;grid-template-rows:1fr;place-items:center;min-height:100vh;min-height:100dvh;padding:var(--spacing-6)}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-900);--panel-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-200));--scroll-top: 0rem}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-900);--panel-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-200))}}@supports (color: light-dark(red,red)){:root{--panel-color-back: light-dark(var(--color-gray-200), var(--color-gray-900))}}html{overflow-x:hidden;overflow-y:scroll;background:var(--panel-color-back);color:var(--color-text)}body{font-size:var(--text-sm);color:var(--color-text)}.k-panel[data-loading=true]{animation:LoadingCursor .5s}.k-panel[data-loading=true]:after,.k-panel[data-dragging=true]{-webkit-user-select:none;user-select:none}.k-topbar{position:relative;margin-inline:calc(var(--button-padding) * -1);margin-bottom:var(--spacing-8);display:flex;align-items:center;gap:var(--spacing-1)}.k-topbar-breadcrumb{margin-inline-start:-2px;flex-shrink:1;min-width:0}.k-topbar-spacer{flex-grow:1}.k-topbar-signals{display:flex;align-items:center}.k-header+.k-search-view-results{margin-top:var(--spacing-12)}.k-search-view-input{--input-color-back: var(--color-border);--input-color-border: transparent;--input-height: var(--height-md);width:40cqw}.k-file-view-header{margin-bottom:0;border-bottom:0}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--file-preview-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-900));--file-preview-color-text: var(--color-gray-200)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--file-preview-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-900))}}@supports (color: light-dark(red,red)){:root{--file-preview-color-back: light-dark( var(--color-gray-900), var(--color-gray-950) )}}.k-file-preview{display:grid;align-items:stretch;background:var(--file-preview-color-back);border-radius:var(--rounded-lg);margin-bottom:var(--spacing-12);overflow:hidden}.k-file-preview:has(+.k-tabs){margin-bottom:0}.k-file-preview-details{display:grid}.k-file-preview-details dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));grid-gap:var(--spacing-6) var(--spacing-12);align-self:center;padding:var(--spacing-6);line-height:1.5em}.k-file-preview-details dt{font-size:var(--text-sm);font-weight:var(--font-semi);color:var(--color-gray-500);margin-bottom:var(--spacing-1)}.k-file-preview-details :where(dd,a){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--file-preview-color-text);font-size:var(--text-sm)}.k-file-preview-frame-column{aspect-ratio:1/1;background:var(--pattern)}.k-file-preview-frame{position:relative;display:flex;align-items:center;justify-content:center;height:100%;padding:var(--spacing-10);container-type:size}.k-file-preview-frame :where(img,audio,video){width:auto;max-width:100cqw;max-height:100cqh}.k-file-preview-frame>.k-button{position:absolute;top:var(--spacing-2);inset-inline-start:var(--spacing-2)}.k-button.k-file-preview-frame-dropdown-toggle{--button-color-icon: var(--color-gray-500)}@container (min-width: 36rem) and (max-width: 65rem){.k-file-preview-frame-column{aspect-ratio:auto}}.k-default-file-preview .k-file-preview-frame .k-item-icon{--icon-size: 3rem}@container (min-width: 36rem){.k-default-file-preview{grid-template-columns:50% auto}.k-default-file-preview-thumb-column{aspect-ratio:auto}}@container (min-width: 65rem){.k-default-file-preview{grid-template-columns:33.333% auto}.k-default-file-preview-thumb-column{aspect-ratio:1/1}}.k-audio-file-preview{display:block}.k-audio-file-preview audio{width:100%}.k-audio-file-preview audio::-webkit-media-controls-enclosure{border-radius:0}.k-image-file-preview .k-coords-input{--opacity-disabled: 1;--range-thumb-color: hsl(216 60% 60% / .75);--range-thumb-size: 1.25rem;--range-thumb-shadow: none;cursor:crosshair}.k-image-file-preview .k-coords-input-thumb:after{--size: .4rem;--pos: calc(50% - (var(--size) / 2));position:absolute;top:var(--pos);inset-inline-start:var(--pos);width:var(--size);height:var(--size);content:"";background:#fff;border-radius:50%}.k-image-file-preview:not([data-has-focus=true]) .k-coords-input-thumb{display:none}.k-image-file-preview-focus dd{display:flex;align-items:center}.k-image-file-preview-focus .k-button{--button-padding: var(--spacing-2);--button-color-back: var(--color-gray-800)}.k-pdf-file-preview[data-supported=true]{grid-template-columns:1fr}.k-pdf-file-preview .k-pdf-file-preview-object{width:100%}.k-pdf-file-preview[data-supported=true] .k-pdf-file-preview-object{aspect-ratio:1/1;border-bottom:1px solid var(--color-gray-850)}@container (min-width: 36rem){.k-pdf-file-preview[data-supported=true] .k-pdf-file-preview-object{aspect-ratio:3/2}}@container (min-width: 60rem){.k-pdf-file-preview[data-supported=true]{grid-template-columns:70% auto}.k-pdf-file-preview[data-supported=true] .k-pdf-file-preview-object{aspect-ratio:5/3;border-bottom:0;border-right:1px solid var(--color-gray-850)}}.k-video-file-preview .k-file-preview-frame-column{aspect-ratio:16/9}@container (min-width: 60rem){.k-video-file-preview{grid-template-columns:50% auto}}.k-installation-dialog{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--dialog-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) none;--dialog-shadow: var(--csstools-light-dark-toggle--1, var(--shadow));container-type:inline-size}@supports not (color: light-dark(tan,tan)){.k-installation-dialog *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--dialog-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) none;--dialog-shadow: var(--csstools-light-dark-toggle--1, var(--shadow))}}@supports (color: light-dark(red,red)){.k-installation-dialog{--dialog-color-back: light-dark(var(--color-white), var(--color-gray-950));--dialog-shadow: light-dark(var(--shadow), none)}}.k-installation-view .k-button{margin-top:var(--spacing-3);width:100%}.k-installation-view form .k-button{margin-top:var(--spacing-10)}.k-installation-view .k-headline{font-weight:var(--font-semi);margin-top:-.5rem;margin-bottom:.75rem}.k-installation-issues{line-height:1.5em;font-size:var(--text-sm)}.k-installation-issues li{position:relative;padding:var(--spacing-6);background:var(--theme-color-back);color:var(--theme-color-text-highlight);padding-inline-start:3.5rem;border-radius:var(--rounded)}.k-installation-issues .k-icon{position:absolute;top:calc(1.5rem + 2px);inset-inline-start:1.5rem}.k-installation-issues .k-icon{color:var(--theme-color-icon-highlight)}.k-installation-issues li:not(:last-child){margin-bottom:2px}.k-installation-issues li code{font:inherit;color:var(--theme-color-icon-highlight)}.k-login-code-form .k-user-info{margin-bottom:var(--spacing-6)}.k-login-form{position:relative}.k-login-form label abbr{visibility:hidden}.k-login-toggler{position:absolute;top:-2px;inset-inline-end:calc(var(--spacing-2) * -1);color:var(--link-color);text-decoration:underline;text-decoration-color:var(--link-color);text-underline-offset:1px;height:var(--height-xs);line-height:1;padding-inline:var(--spacing-2);border-radius:var(--rounded);z-index:1}.k-login{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--dialog-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) none;--dialog-shadow: var(--csstools-light-dark-toggle--1, var(--shadow));container-type:inline-size}@supports not (color: light-dark(tan,tan)){.k-login *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--dialog-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) none;--dialog-shadow: var(--csstools-light-dark-toggle--1, var(--shadow))}}@supports (color: light-dark(red,red)){.k-login{--dialog-color-back: light-dark(var(--color-white), var(--color-gray-950));--dialog-shadow: light-dark(var(--shadow), none)}}.k-login-buttons{--button-padding: var(--spacing-3);display:flex;gap:1.5rem;align-items:center;justify-content:space-between;margin-top:var(--spacing-10)}.k-page-view[data-has-tabs=true] .k-page-view-header,.k-site-view[data-has-tabs=true] .k-site-view-header{margin-bottom:0}:root{--preview-browser-color-background: var(--input-color-back)}.k-preview-browser{container-type:inline-size;display:flex;flex-direction:column;border-radius:var(--rounded-lg);box-shadow:var(--shadow-xl);background:var(--preview-browser-color-background);overflow:hidden;border:1px solid var(--color-border)}.k-preview-browser-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-6);background:var(--preview-browser-color-background);border-bottom:1px solid var(--color-border);color:var(--color-text);padding-inline:var(--spacing-2);height:var(--input-height)}.k-preview-browser header .k-headline{display:flex;align-items:center;gap:var(--spacing-1);font-weight:var(--font-normal);font-size:var(--text-xs);padding-inline:var(--spacing-1)}.k-preview-browser-header .k-form-controls-button{font-size:var(--text-xs);--button-rounded: 3px;--icon-size: 1rem}.k-preview-browser-message{font-size:var(--text-xs);display:flex;margin-inline-end:var(--spacing-1);color:var(--color-text-dimmed)}.k-preview-browser iframe{width:100%;flex-grow:1}@container (max-width: 30rem){.k-preview-browser-message{display:none}}.k-preview-view{position:fixed;inset:0;height:100%;display:grid;grid-template-rows:auto 1fr}.k-preview-view-header{container-type:inline-size;display:flex;gap:var(--spacing-2);justify-content:space-between;align-items:center;padding:var(--spacing-3)}.k-preview-view-tree{--tree-branch-color-back: transparent;--tree-branch-hover-color-back: var(--color-gray-800);--tree-branch-selected-color-back: var(--color-blue-800);width:20rem}.k-preview-view-grid{display:flex;justify-content:center;padding:var(--spacing-3);padding-top:0;gap:var(--spacing-3)}@media screen and (max-width:60rem){.k-preview-view-grid{flex-direction:column}.k-preview-view-title{display:none}}.k-preview-view .k-preview-browser{flex-grow:1;flex-basis:50%}.k-user-view-header{margin-bottom:0;border-bottom:0}.k-user-view .k-user-profile{margin-bottom:var(--spacing-12)}.k-user-view .k-user-profile:has(+.k-tabs){margin-bottom:0}.k-password-reset-view .k-user-info{margin-bottom:var(--spacing-8)}.k-user-view-image{padding:0}.k-user-view-image .k-frame{width:6rem;height:6rem;border-radius:var(--rounded);line-height:0}.k-user-view-image .k-icon-frame{--back: var(--color-black);--icon-color: var(--color-gray-200)}.k-user-info{display:flex;align-items:center;font-size:var(--text-sm);height:var(--height-lg);gap:.75rem;padding-inline:var(--spacing-2);background:var(--item-color-back);box-shadow:var(--shadow)}.k-user-info :where(.k-image-frame,.k-icon-frame){width:1.5rem;border-radius:var(--rounded-sm)}.k-user-profile{--button-height: auto;padding:var(--spacing-2);background:var(--item-color-back);border-radius:var(--rounded-lg);display:flex;align-items:center;gap:var(--spacing-3);box-shadow:var(--shadow)}.k-user-profile .k-button-group{display:flex;flex-direction:column;align-items:flex-start}.k-users-view-header{margin-bottom:0}.k-system-info .k-stat-label{color:var(--theme-color-text, currentColor)}.k-table-license-status-cell{padding:0 var(--spacing-1)}.k-table-update-status-cell{padding:0 .75rem;display:flex;align-items:center;height:100%}.k-table-update-status-cell-version,.k-table-update-status-cell-button{font-variant-numeric:tabular-nums}.k-plugin-info{display:grid;column-gap:var(--spacing-3);row-gap:2px;padding:var(--button-padding)}.k-plugin-info dt{color:var(--color-gray-400)}.k-plugin-info dd[data-theme]{color:var(--theme-color-600)}@container (max-width: 30em){.k-plugin-info dd:not(:last-of-type){margin-bottom:var(--spacing-2)}}@container (min-width: 30em){.k-plugin-info{width:20rem;grid-template-columns:1fr auto}}:root{--color-l-100: 98%;--color-l-150: 96%;--color-l-200: 94%;--color-l-250: 91%;--color-l-300: 88%;--color-l-350: 84%;--color-l-400: 80%;--color-l-450: 75%;--color-l-500: 70%;--color-l-550: 65%;--color-l-600: 60%;--color-l-650: 52%;--color-l-700: 45%;--color-l-750: 40%;--color-l-800: 30%;--color-l-850: 21%;--color-l-900: 15%;--color-l-950: 11%;--color-red-h: 0;--color-red-s: 80%;--color-red-hs: var(--color-red-h), var(--color-red-s);--color-red-boost: 3%;--color-red-l-100: calc(var(--color-l-100) + var(--color-red-boost));--color-red-l-150: calc(var(--color-l-150) + var(--color-red-boost));--color-red-l-200: calc(var(--color-l-200) + var(--color-red-boost));--color-red-l-250: calc(var(--color-l-250) + var(--color-red-boost));--color-red-l-300: calc(var(--color-l-300) + var(--color-red-boost));--color-red-l-350: calc(var(--color-l-350) + var(--color-red-boost));--color-red-l-400: calc(var(--color-l-400) + var(--color-red-boost));--color-red-l-450: calc(var(--color-l-450) + var(--color-red-boost));--color-red-l-500: calc(var(--color-l-500) + var(--color-red-boost));--color-red-l-550: calc(var(--color-l-550) + var(--color-red-boost));--color-red-l-600: calc(var(--color-l-600) + var(--color-red-boost));--color-red-l-650: calc(var(--color-l-650) + var(--color-red-boost));--color-red-l-700: calc(var(--color-l-700) + var(--color-red-boost));--color-red-l-750: calc(var(--color-l-750) + var(--color-red-boost));--color-red-l-800: calc(var(--color-l-800) + var(--color-red-boost));--color-red-l-850: calc(var(--color-l-850) + var(--color-red-boost));--color-red-l-900: calc(var(--color-l-900) + var(--color-red-boost));--color-red-l-950: calc(var(--color-l-950) + var(--color-red-boost));--color-red-100: hsl(var(--color-red-hs), var(--color-red-l-100));--color-red-150: hsl(var(--color-red-hs), var(--color-red-l-150));--color-red-200: hsl(var(--color-red-hs), var(--color-red-l-200));--color-red-250: hsl(var(--color-red-hs), var(--color-red-l-250));--color-red-300: hsl(var(--color-red-hs), var(--color-red-l-300));--color-red-350: hsl(var(--color-red-hs), var(--color-red-l-350));--color-red-400: hsl(var(--color-red-hs), var(--color-red-l-400));--color-red-450: hsl(var(--color-red-hs), var(--color-red-l-450));--color-red-500: hsl(var(--color-red-hs), var(--color-red-l-500));--color-red-550: hsl(var(--color-red-hs), var(--color-red-l-550));--color-red-600: hsl(var(--color-red-hs), var(--color-red-l-600));--color-red-650: hsl(var(--color-red-hs), var(--color-red-l-650));--color-red-700: hsl(var(--color-red-hs), var(--color-red-l-700));--color-red-750: hsl(var(--color-red-hs), var(--color-red-l-750));--color-red-800: hsl(var(--color-red-hs), var(--color-red-l-800));--color-red-850: hsl(var(--color-red-hs), var(--color-red-l-850));--color-red-900: hsl(var(--color-red-hs), var(--color-red-l-900));--color-red-950: hsl(var(--color-red-hs), var(--color-red-l-950));--color-orange-h: 28;--color-orange-s: 80%;--color-orange-hs: var(--color-orange-h), var(--color-orange-s);--color-orange-boost: 2%;--color-orange-l-100: calc(var(--color-l-100) + var(--color-orange-boost));--color-orange-l-150: calc(var(--color-l-150) + var(--color-orange-boost));--color-orange-l-200: calc(var(--color-l-200) + var(--color-orange-boost));--color-orange-l-250: calc(var(--color-l-250) + var(--color-orange-boost));--color-orange-l-300: calc(var(--color-l-300) + var(--color-orange-boost));--color-orange-l-350: calc(var(--color-l-350) + var(--color-orange-boost));--color-orange-l-400: calc(var(--color-l-400) + var(--color-orange-boost));--color-orange-l-450: calc(var(--color-l-450) + var(--color-orange-boost));--color-orange-l-500: calc(var(--color-l-500) + var(--color-orange-boost));--color-orange-l-550: calc(var(--color-l-550) + var(--color-orange-boost));--color-orange-l-600: calc(var(--color-l-600) + var(--color-orange-boost));--color-orange-l-650: calc(var(--color-l-650) + var(--color-orange-boost));--color-orange-l-700: calc(var(--color-l-700) + var(--color-orange-boost));--color-orange-l-750: calc(var(--color-l-750) + var(--color-orange-boost));--color-orange-l-800: calc(var(--color-l-800) + var(--color-orange-boost));--color-orange-l-850: calc(var(--color-l-850) + var(--color-orange-boost));--color-orange-l-900: calc(var(--color-l-900) + var(--color-orange-boost));--color-orange-l-950: calc(var(--color-l-950) + var(--color-orange-boost));--color-orange-100: hsl(var(--color-orange-hs), var(--color-orange-l-100));--color-orange-150: hsl(var(--color-orange-hs), var(--color-orange-l-150));--color-orange-200: hsl(var(--color-orange-hs), var(--color-orange-l-200));--color-orange-250: hsl(var(--color-orange-hs), var(--color-orange-l-250));--color-orange-300: hsl(var(--color-orange-hs), var(--color-orange-l-300));--color-orange-350: hsl(var(--color-orange-hs), var(--color-orange-l-350));--color-orange-400: hsl(var(--color-orange-hs), var(--color-orange-l-400));--color-orange-450: hsl(var(--color-orange-hs), var(--color-orange-l-450));--color-orange-500: hsl(var(--color-orange-hs), var(--color-orange-l-500));--color-orange-550: hsl(var(--color-orange-hs), var(--color-orange-l-550));--color-orange-600: hsl(var(--color-orange-hs), var(--color-orange-l-600));--color-orange-650: hsl(var(--color-orange-hs), var(--color-orange-l-650));--color-orange-700: hsl(var(--color-orange-hs), var(--color-orange-l-700));--color-orange-750: hsl(var(--color-orange-hs), var(--color-orange-l-750));--color-orange-800: hsl(var(--color-orange-hs), var(--color-orange-l-800));--color-orange-850: hsl(var(--color-orange-hs), var(--color-orange-l-850));--color-orange-900: hsl(var(--color-orange-hs), var(--color-orange-l-900));--color-orange-950: hsl(var(--color-orange-hs), var(--color-orange-l-950));--color-yellow-h: 47;--color-yellow-s: 80%;--color-yellow-hs: var(--color-yellow-h), var(--color-yellow-s);--color-yellow-boost: -4%;--color-yellow-l-100: calc(var(--color-l-100) + var(--color-yellow-boost));--color-yellow-l-150: calc(var(--color-l-150) + var(--color-yellow-boost));--color-yellow-l-200: calc(var(--color-l-200) + var(--color-yellow-boost));--color-yellow-l-250: calc(var(--color-l-250) + var(--color-yellow-boost));--color-yellow-l-300: calc(var(--color-l-300) + var(--color-yellow-boost));--color-yellow-l-350: calc(var(--color-l-350) + var(--color-yellow-boost));--color-yellow-l-400: calc(var(--color-l-400) + var(--color-yellow-boost));--color-yellow-l-450: calc(var(--color-l-450) + var(--color-yellow-boost));--color-yellow-l-500: calc(var(--color-l-500) + var(--color-yellow-boost));--color-yellow-l-550: calc(var(--color-l-550) + var(--color-yellow-boost));--color-yellow-l-600: calc(var(--color-l-600) + var(--color-yellow-boost));--color-yellow-l-650: calc(var(--color-l-650) + var(--color-yellow-boost));--color-yellow-l-700: calc(var(--color-l-700) + var(--color-yellow-boost));--color-yellow-l-750: calc(var(--color-l-750) + var(--color-yellow-boost));--color-yellow-l-800: calc(var(--color-l-800) + var(--color-yellow-boost));--color-yellow-l-850: calc(var(--color-l-850) + var(--color-yellow-boost));--color-yellow-l-900: calc(var(--color-l-900) + var(--color-yellow-boost));--color-yellow-l-950: calc(var(--color-l-950) + var(--color-yellow-boost));--color-yellow-100: hsl(var(--color-yellow-hs), var(--color-yellow-l-100));--color-yellow-150: hsl(var(--color-yellow-hs), var(--color-yellow-l-150));--color-yellow-200: hsl(var(--color-yellow-hs), var(--color-yellow-l-200));--color-yellow-250: hsl(var(--color-yellow-hs), var(--color-yellow-l-250));--color-yellow-300: hsl(var(--color-yellow-hs), var(--color-yellow-l-300));--color-yellow-350: hsl(var(--color-yellow-hs), var(--color-yellow-l-350));--color-yellow-400: hsl(var(--color-yellow-hs), var(--color-yellow-l-400));--color-yellow-450: hsl(var(--color-yellow-hs), var(--color-yellow-l-450));--color-yellow-500: hsl(var(--color-yellow-hs), var(--color-yellow-l-500));--color-yellow-550: hsl(var(--color-yellow-hs), var(--color-yellow-l-550));--color-yellow-600: hsl(var(--color-yellow-hs), var(--color-yellow-l-600));--color-yellow-650: hsl(var(--color-yellow-hs), var(--color-yellow-l-650));--color-yellow-700: hsl(var(--color-yellow-hs), var(--color-yellow-l-700));--color-yellow-750: hsl(var(--color-yellow-hs), var(--color-yellow-l-750));--color-yellow-800: hsl(var(--color-yellow-hs), var(--color-yellow-l-800));--color-yellow-850: hsl(var(--color-yellow-hs), var(--color-yellow-l-850));--color-yellow-900: hsl(var(--color-yellow-hs), var(--color-yellow-l-900));--color-yellow-950: hsl(var(--color-yellow-hs), var(--color-yellow-l-950));--color-green-h: 80;--color-green-s: 60%;--color-green-hs: var(--color-green-h), var(--color-green-s);--color-green-boost: -8%;--color-green-l-100: calc(var(--color-l-100) + var(--color-green-boost));--color-green-l-150: calc(var(--color-l-150) + var(--color-green-boost));--color-green-l-200: calc(var(--color-l-200) + var(--color-green-boost));--color-green-l-250: calc(var(--color-l-250) + var(--color-green-boost));--color-green-l-300: calc(var(--color-l-300) + var(--color-green-boost));--color-green-l-350: calc(var(--color-l-350) + var(--color-green-boost));--color-green-l-400: calc(var(--color-l-400) + var(--color-green-boost));--color-green-l-450: calc(var(--color-l-450) + var(--color-green-boost));--color-green-l-500: calc(var(--color-l-500) + var(--color-green-boost));--color-green-l-550: calc(var(--color-l-550) + var(--color-green-boost));--color-green-l-600: calc(var(--color-l-600) + var(--color-green-boost));--color-green-l-650: calc(var(--color-l-650) + var(--color-green-boost));--color-green-l-700: calc(var(--color-l-700) + var(--color-green-boost));--color-green-l-750: calc(var(--color-l-750) + var(--color-green-boost));--color-green-l-800: calc(var(--color-l-800) + var(--color-green-boost));--color-green-l-850: calc(var(--color-l-850) + var(--color-green-boost));--color-green-l-900: calc(var(--color-l-900) + var(--color-green-boost));--color-green-l-950: calc(var(--color-l-950) + var(--color-green-boost));--color-green-100: hsl(var(--color-green-hs), var(--color-green-l-100));--color-green-150: hsl(var(--color-green-hs), var(--color-green-l-150));--color-green-200: hsl(var(--color-green-hs), var(--color-green-l-200));--color-green-250: hsl(var(--color-green-hs), var(--color-green-l-250));--color-green-300: hsl(var(--color-green-hs), var(--color-green-l-300));--color-green-350: hsl(var(--color-green-hs), var(--color-green-l-350));--color-green-400: hsl(var(--color-green-hs), var(--color-green-l-400));--color-green-450: hsl(var(--color-green-hs), var(--color-green-l-450));--color-green-500: hsl(var(--color-green-hs), var(--color-green-l-500));--color-green-550: hsl(var(--color-green-hs), var(--color-green-l-550));--color-green-600: hsl(var(--color-green-hs), var(--color-green-l-600));--color-green-650: hsl(var(--color-green-hs), var(--color-green-l-650));--color-green-700: hsl(var(--color-green-hs), var(--color-green-l-700));--color-green-750: hsl(var(--color-green-hs), var(--color-green-l-750));--color-green-800: hsl(var(--color-green-hs), var(--color-green-l-800));--color-green-850: hsl(var(--color-green-hs), var(--color-green-l-850));--color-green-900: hsl(var(--color-green-hs), var(--color-green-l-900));--color-green-950: hsl(var(--color-green-hs), var(--color-green-l-950));--color-aqua-h: 180;--color-aqua-s: 50%;--color-aqua-hs: var(--color-aqua-h), var(--color-aqua-s);--color-aqua-boost: -4%;--color-aqua-l-100: calc(var(--color-l-100) + var(--color-aqua-boost));--color-aqua-l-150: calc(var(--color-l-150) + var(--color-aqua-boost));--color-aqua-l-200: calc(var(--color-l-200) + var(--color-aqua-boost));--color-aqua-l-250: calc(var(--color-l-250) + var(--color-aqua-boost));--color-aqua-l-300: calc(var(--color-l-300) + var(--color-aqua-boost));--color-aqua-l-350: calc(var(--color-l-350) + var(--color-aqua-boost));--color-aqua-l-400: calc(var(--color-l-400) + var(--color-aqua-boost));--color-aqua-l-450: calc(var(--color-l-450) + var(--color-aqua-boost));--color-aqua-l-500: calc(var(--color-l-500) + var(--color-aqua-boost));--color-aqua-l-550: calc(var(--color-l-550) + var(--color-aqua-boost));--color-aqua-l-600: calc(var(--color-l-600) + var(--color-aqua-boost));--color-aqua-l-650: calc(var(--color-l-650) + var(--color-aqua-boost));--color-aqua-l-700: calc(var(--color-l-700) + var(--color-aqua-boost));--color-aqua-l-750: calc(var(--color-l-750) + var(--color-aqua-boost));--color-aqua-l-800: calc(var(--color-l-800) + var(--color-aqua-boost));--color-aqua-l-850: calc(var(--color-l-850) + var(--color-aqua-boost));--color-aqua-l-900: calc(var(--color-l-900) + var(--color-aqua-boost));--color-aqua-l-950: calc(var(--color-l-950) + var(--color-aqua-boost));--color-aqua-100: hsl(var(--color-aqua-hs), var(--color-aqua-l-100));--color-aqua-150: hsl(var(--color-aqua-hs), var(--color-aqua-l-150));--color-aqua-200: hsl(var(--color-aqua-hs), var(--color-aqua-l-200));--color-aqua-250: hsl(var(--color-aqua-hs), var(--color-aqua-l-250));--color-aqua-300: hsl(var(--color-aqua-hs), var(--color-aqua-l-300));--color-aqua-350: hsl(var(--color-aqua-hs), var(--color-aqua-l-350));--color-aqua-400: hsl(var(--color-aqua-hs), var(--color-aqua-l-400));--color-aqua-450: hsl(var(--color-aqua-hs), var(--color-aqua-l-450));--color-aqua-500: hsl(var(--color-aqua-hs), var(--color-aqua-l-500));--color-aqua-550: hsl(var(--color-aqua-hs), var(--color-aqua-l-550));--color-aqua-600: hsl(var(--color-aqua-hs), var(--color-aqua-l-600));--color-aqua-650: hsl(var(--color-aqua-hs), var(--color-aqua-l-650));--color-aqua-700: hsl(var(--color-aqua-hs), var(--color-aqua-l-700));--color-aqua-750: hsl(var(--color-aqua-hs), var(--color-aqua-l-750));--color-aqua-800: hsl(var(--color-aqua-hs), var(--color-aqua-l-800));--color-aqua-850: hsl(var(--color-aqua-hs), var(--color-aqua-l-850));--color-aqua-900: hsl(var(--color-aqua-hs), var(--color-aqua-l-900));--color-aqua-950: hsl(var(--color-aqua-hs), var(--color-aqua-l-950));--color-blue-h: 210;--color-blue-s: 65%;--color-blue-hs: var(--color-blue-h), var(--color-blue-s);--color-blue-boost: 3%;--color-blue-l-100: calc(var(--color-l-100) + var(--color-blue-boost));--color-blue-l-150: calc(var(--color-l-150) + var(--color-blue-boost));--color-blue-l-200: calc(var(--color-l-200) + var(--color-blue-boost));--color-blue-l-250: calc(var(--color-l-250) + var(--color-blue-boost));--color-blue-l-300: calc(var(--color-l-300) + var(--color-blue-boost));--color-blue-l-350: calc(var(--color-l-350) + var(--color-blue-boost));--color-blue-l-400: calc(var(--color-l-400) + var(--color-blue-boost));--color-blue-l-450: calc(var(--color-l-450) + var(--color-blue-boost));--color-blue-l-500: calc(var(--color-l-500) + var(--color-blue-boost));--color-blue-l-550: calc(var(--color-l-550) + var(--color-blue-boost));--color-blue-l-600: calc(var(--color-l-600) + var(--color-blue-boost));--color-blue-l-650: calc(var(--color-l-650) + var(--color-blue-boost));--color-blue-l-700: calc(var(--color-l-700) + var(--color-blue-boost));--color-blue-l-750: calc(var(--color-l-750) + var(--color-blue-boost));--color-blue-l-800: calc(var(--color-l-800) + var(--color-blue-boost));--color-blue-l-850: calc(var(--color-l-850) + var(--color-blue-boost));--color-blue-l-900: calc(var(--color-l-900) + var(--color-blue-boost));--color-blue-l-950: calc(var(--color-l-950) + var(--color-blue-boost));--color-blue-100: hsl(var(--color-blue-hs), var(--color-blue-l-100));--color-blue-150: hsl(var(--color-blue-hs), var(--color-blue-l-150));--color-blue-200: hsl(var(--color-blue-hs), var(--color-blue-l-200));--color-blue-250: hsl(var(--color-blue-hs), var(--color-blue-l-250));--color-blue-300: hsl(var(--color-blue-hs), var(--color-blue-l-300));--color-blue-350: hsl(var(--color-blue-hs), var(--color-blue-l-350));--color-blue-400: hsl(var(--color-blue-hs), var(--color-blue-l-400));--color-blue-450: hsl(var(--color-blue-hs), var(--color-blue-l-450));--color-blue-500: hsl(var(--color-blue-hs), var(--color-blue-l-500));--color-blue-550: hsl(var(--color-blue-hs), var(--color-blue-l-550));--color-blue-600: hsl(var(--color-blue-hs), var(--color-blue-l-600));--color-blue-650: hsl(var(--color-blue-hs), var(--color-blue-l-650));--color-blue-700: hsl(var(--color-blue-hs), var(--color-blue-l-700));--color-blue-750: hsl(var(--color-blue-hs), var(--color-blue-l-750));--color-blue-800: hsl(var(--color-blue-hs), var(--color-blue-l-800));--color-blue-850: hsl(var(--color-blue-hs), var(--color-blue-l-850));--color-blue-900: hsl(var(--color-blue-hs), var(--color-blue-l-900));--color-blue-950: hsl(var(--color-blue-hs), var(--color-blue-l-950));--color-purple-h: 275;--color-purple-s: 60%;--color-purple-hs: var(--color-purple-h), var(--color-purple-s);--color-purple-boost: 0%;--color-purple-l-100: calc(var(--color-l-100) + var(--color-purple-boost));--color-purple-l-150: calc(var(--color-l-150) + var(--color-purple-boost));--color-purple-l-200: calc(var(--color-l-200) + var(--color-purple-boost));--color-purple-l-250: calc(var(--color-l-250) + var(--color-purple-boost));--color-purple-l-300: calc(var(--color-l-300) + var(--color-purple-boost));--color-purple-l-350: calc(var(--color-l-350) + var(--color-purple-boost));--color-purple-l-400: calc(var(--color-l-400) + var(--color-purple-boost));--color-purple-l-450: calc(var(--color-l-450) + var(--color-purple-boost));--color-purple-l-500: calc(var(--color-l-500) + var(--color-purple-boost));--color-purple-l-550: calc(var(--color-l-550) + var(--color-purple-boost));--color-purple-l-600: calc(var(--color-l-600) + var(--color-purple-boost));--color-purple-l-650: calc(var(--color-l-650) + var(--color-purple-boost));--color-purple-l-700: calc(var(--color-l-700) + var(--color-purple-boost));--color-purple-l-750: calc(var(--color-l-750) + var(--color-purple-boost));--color-purple-l-800: calc(var(--color-l-800) + var(--color-purple-boost));--color-purple-l-850: calc(var(--color-l-850) + var(--color-purple-boost));--color-purple-l-900: calc(var(--color-l-900) + var(--color-purple-boost));--color-purple-l-950: calc(var(--color-l-950) + var(--color-purple-boost));--color-purple-100: hsl(var(--color-purple-hs), var(--color-purple-l-100));--color-purple-150: hsl(var(--color-purple-hs), var(--color-purple-l-150));--color-purple-200: hsl(var(--color-purple-hs), var(--color-purple-l-200));--color-purple-250: hsl(var(--color-purple-hs), var(--color-purple-l-250));--color-purple-300: hsl(var(--color-purple-hs), var(--color-purple-l-300));--color-purple-350: hsl(var(--color-purple-hs), var(--color-purple-l-350));--color-purple-400: hsl(var(--color-purple-hs), var(--color-purple-l-400));--color-purple-450: hsl(var(--color-purple-hs), var(--color-purple-l-450));--color-purple-500: hsl(var(--color-purple-hs), var(--color-purple-l-500));--color-purple-550: hsl(var(--color-purple-hs), var(--color-purple-l-550));--color-purple-600: hsl(var(--color-purple-hs), var(--color-purple-l-600));--color-purple-650: hsl(var(--color-purple-hs), var(--color-purple-l-650));--color-purple-700: hsl(var(--color-purple-hs), var(--color-purple-l-700));--color-purple-750: hsl(var(--color-purple-hs), var(--color-purple-l-750));--color-purple-800: hsl(var(--color-purple-hs), var(--color-purple-l-800));--color-purple-850: hsl(var(--color-purple-hs), var(--color-purple-l-850));--color-purple-900: hsl(var(--color-purple-hs), var(--color-purple-l-900));--color-purple-950: hsl(var(--color-purple-hs), var(--color-purple-l-950));--color-pink-h: 320;--color-pink-s: 70%;--color-pink-hs: var(--color-pink-h), var(--color-pink-s);--color-pink-boost: 0%;--color-pink-l-100: calc(var(--color-l-100) + var(--color-pink-boost));--color-pink-l-150: calc(var(--color-l-150) + var(--color-pink-boost));--color-pink-l-200: calc(var(--color-l-200) + var(--color-pink-boost));--color-pink-l-250: calc(var(--color-l-250) + var(--color-pink-boost));--color-pink-l-300: calc(var(--color-l-300) + var(--color-pink-boost));--color-pink-l-350: calc(var(--color-l-350) + var(--color-pink-boost));--color-pink-l-400: calc(var(--color-l-400) + var(--color-pink-boost));--color-pink-l-450: calc(var(--color-l-450) + var(--color-pink-boost));--color-pink-l-500: calc(var(--color-l-500) + var(--color-pink-boost));--color-pink-l-550: calc(var(--color-l-550) + var(--color-pink-boost));--color-pink-l-600: calc(var(--color-l-600) + var(--color-pink-boost));--color-pink-l-650: calc(var(--color-l-650) + var(--color-pink-boost));--color-pink-l-700: calc(var(--color-l-700) + var(--color-pink-boost));--color-pink-l-750: calc(var(--color-l-750) + var(--color-pink-boost));--color-pink-l-800: calc(var(--color-l-800) + var(--color-pink-boost));--color-pink-l-850: calc(var(--color-l-850) + var(--color-pink-boost));--color-pink-l-900: calc(var(--color-l-900) + var(--color-pink-boost));--color-pink-l-950: calc(var(--color-l-950) + var(--color-pink-boost));--color-pink-100: hsl(var(--color-pink-hs), var(--color-pink-l-100));--color-pink-150: hsl(var(--color-pink-hs), var(--color-pink-l-150));--color-pink-200: hsl(var(--color-pink-hs), var(--color-pink-l-200));--color-pink-250: hsl(var(--color-pink-hs), var(--color-pink-l-250));--color-pink-300: hsl(var(--color-pink-hs), var(--color-pink-l-300));--color-pink-350: hsl(var(--color-pink-hs), var(--color-pink-l-350));--color-pink-400: hsl(var(--color-pink-hs), var(--color-pink-l-400));--color-pink-450: hsl(var(--color-pink-hs), var(--color-pink-l-450));--color-pink-500: hsl(var(--color-pink-hs), var(--color-pink-l-500));--color-pink-550: hsl(var(--color-pink-hs), var(--color-pink-l-550));--color-pink-600: hsl(var(--color-pink-hs), var(--color-pink-l-600));--color-pink-650: hsl(var(--color-pink-hs), var(--color-pink-l-650));--color-pink-700: hsl(var(--color-pink-hs), var(--color-pink-l-700));--color-pink-750: hsl(var(--color-pink-hs), var(--color-pink-l-750));--color-pink-800: hsl(var(--color-pink-hs), var(--color-pink-l-800));--color-pink-850: hsl(var(--color-pink-hs), var(--color-pink-l-850));--color-pink-900: hsl(var(--color-pink-hs), var(--color-pink-l-900));--color-pink-950: hsl(var(--color-pink-hs), var(--color-pink-l-950));--color-gray-h: 0;--color-gray-s: 0%;--color-gray-hs: var(--color-gray-h), var(--color-gray-s);--color-gray-boost: 0%;--color-gray-l-100: calc(var(--color-l-100) + var(--color-gray-boost));--color-gray-l-150: calc(var(--color-l-150) + var(--color-gray-boost));--color-gray-l-200: calc(var(--color-l-200) + var(--color-gray-boost));--color-gray-l-250: calc(var(--color-l-250) + var(--color-gray-boost));--color-gray-l-300: calc(var(--color-l-300) + var(--color-gray-boost));--color-gray-l-350: calc(var(--color-l-350) + var(--color-gray-boost));--color-gray-l-400: calc(var(--color-l-400) + var(--color-gray-boost));--color-gray-l-450: calc(var(--color-l-450) + var(--color-gray-boost));--color-gray-l-500: calc(var(--color-l-500) + var(--color-gray-boost));--color-gray-l-550: calc(var(--color-l-550) + var(--color-gray-boost));--color-gray-l-600: calc(var(--color-l-600) + var(--color-gray-boost));--color-gray-l-650: calc(var(--color-l-650) + var(--color-gray-boost));--color-gray-l-700: calc(var(--color-l-700) + var(--color-gray-boost));--color-gray-l-750: calc(var(--color-l-750) + var(--color-gray-boost));--color-gray-l-800: calc(var(--color-l-800) + var(--color-gray-boost));--color-gray-l-850: calc(var(--color-l-850) + var(--color-gray-boost));--color-gray-l-900: calc(var(--color-l-900) + var(--color-gray-boost));--color-gray-l-950: calc(var(--color-l-950) + var(--color-gray-boost));--color-gray-100: hsl(var(--color-gray-hs), var(--color-gray-l-100));--color-gray-150: hsl(var(--color-gray-hs), var(--color-gray-l-150));--color-gray-200: hsl(var(--color-gray-hs), var(--color-gray-l-200));--color-gray-250: hsl(var(--color-gray-hs), var(--color-gray-l-250));--color-gray-300: hsl(var(--color-gray-hs), var(--color-gray-l-300));--color-gray-350: hsl(var(--color-gray-hs), var(--color-gray-l-350));--color-gray-400: hsl(var(--color-gray-hs), var(--color-gray-l-400));--color-gray-450: hsl(var(--color-gray-hs), var(--color-gray-l-450));--color-gray-500: hsl(var(--color-gray-hs), var(--color-gray-l-500));--color-gray-550: hsl(var(--color-gray-hs), var(--color-gray-l-550));--color-gray-600: hsl(var(--color-gray-hs), var(--color-gray-l-600));--color-gray-650: hsl(var(--color-gray-hs), var(--color-gray-l-650));--color-gray-700: hsl(var(--color-gray-hs), var(--color-gray-l-700));--color-gray-750: hsl(var(--color-gray-hs), var(--color-gray-l-750));--color-gray-800: hsl(var(--color-gray-hs), var(--color-gray-l-800));--color-gray-850: hsl(var(--color-gray-hs), var(--color-gray-l-850));--color-gray-900: hsl(var(--color-gray-hs), var(--color-gray-l-900));--color-gray-950: hsl(var(--color-gray-hs), var(--color-gray-l-950));--color-black: hsl(0, 0%, 0%);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-800);--color-border: var(--csstools-light-dark-toggle--0, var(--color-gray-300));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--color-border-dimmed: var(--csstools-light-dark-toggle--1, hsla(0, 0%, 0%, .1));--color-dark: var(--color-gray-900);--color-focus: var(--color-blue-600);--color-light: var(--color-gray-200);--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-white);--color-text: var(--csstools-light-dark-toggle--2, var(--color-black));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-400);--color-text-dimmed: var(--csstools-light-dark-toggle--3, var(--color-gray-700));--color-white: hsl(0, 0%, 100%);--color-backdrop: rgba(0, 0, 0, .6);--color-background: var(--panel-color-back);--color-gray: var(--color-gray-600);--color-red: var(--color-red-600);--color-orange: var(--color-orange-600);--color-yellow: var(--color-yellow-600);--color-green: var(--color-green-600);--color-aqua: var(--color-aqua-600);--color-blue: var(--color-blue-600);--color-purple: var(--color-purple-600);--color-focus-light: var(--color-focus);--color-focus-outline: var(--color-focus);--color-negative: var(--color-red-700);--color-negative-light: var(--color-red-500);--color-negative-outline: var(--color-red-900);--color-notice: var(--color-orange-700);--color-notice-light: var(--color-orange-500);--color-positive: var(--color-green-700);--color-positive-light: var(--color-green-500);--color-positive-outline: var(--color-green-900);--color-text-light: var(--color-text-dimmed)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-800);--color-border: var(--csstools-light-dark-toggle--0, var(--color-gray-300));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--color-border-dimmed: var(--csstools-light-dark-toggle--1, hsla(0, 0%, 0%, .1));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-white);--color-text: var(--csstools-light-dark-toggle--2, var(--color-black));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-400);--color-text-dimmed: var(--csstools-light-dark-toggle--3, var(--color-gray-700))}}@supports (color: light-dark(red,red)){:root{--color-border: light-dark(var(--color-gray-300), var(--color-gray-800));--color-border-dimmed: light-dark( hsla(0, 0%, 0%, .1), var(--color-gray-850) );--color-text: light-dark(var(--color-black), var(--color-white));--color-text-dimmed: light-dark(var(--color-gray-700), var(--color-gray-400))}}:root:has(.k-panel[data-theme=dark]){--csstools-color-scheme--light: ;color-scheme:dark;--color-l-100: 95%;--color-l-150: 90%;--color-l-200: 86%;--color-l-250: 79%;--color-l-300: 74%;--color-l-350: 71%;--color-l-400: 68%;--color-l-450: 66%;--color-l-500: 64%;--color-l-550: 59%;--color-l-600: 54%;--color-l-650: 46%;--color-l-700: 37%;--color-l-750: 33%;--color-l-800: 25%;--color-l-850: 19%;--color-l-900: 12%;--color-l-950: 7%}:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--font-mono: "SFMono-Regular", Consolas, Liberation Mono, Menlo, Courier, monospace}:root{--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.75rem;--text-4xl: 2.5rem;--text-5xl: 3rem;--text-6xl: 4rem;--text-base: var(--text-md);--font-size-tiny: var(--text-xs);--font-size-small: var(--text-sm);--font-size-medium: var(--text-base);--font-size-large: var(--text-xl);--font-size-huge: var(--text-2xl);--font-size-monster: var(--text-3xl)}:root{--font-thin: 300;--font-normal: 400;--font-semi: 500;--font-bold: 600}:root{--height-xs: 1.5rem;--height-sm: 1.75rem;--height-md: 2rem;--height-lg: 2.25rem;--height-xl: 2.5rem;--height: var(--height-md)}:root{--opacity-disabled: .5}:root{--rounded-xs: 1px;--rounded-sm: .125rem;--rounded-md: .25rem;--rounded-lg: .375rem;--rounded-xl: .5rem;--rounded: var(--rounded-md)}:root{--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .025);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .05);--shadow: var(--shadow-sm);--shadow-toolbar: rgba(0, 0, 0, .1) -2px 0 5px, var(--shadow), var(--shadow-xl);--shadow-outline: var(--color-focus, currentColor) 0 0 0 2px;--shadow-inset: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--shadow-sticky: rgba(0, 0, 0, .05) 0 2px 5px;--box-shadow-dropdown: var(--shadow-dropdown);--box-shadow-item: var(--shadow);--box-shadow-focus: var(--shadow-xl);--shadow-dropdown: var(--shadow-lg);--shadow-item: var(--shadow-sm)}:root:has(.k-panel[data-theme=dark]){--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .2), 0 1px 2px 0 rgba(0, 0, 0, .125);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 10px 10px -5px rgba(0, 0, 0, .35)}:root{--spacing-0: 0;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-24: 6rem;--spacing-36: 9rem;--spacing-48: 12rem;--spacing-px: 1px;--spacing-2px: 2px;--spacing-5: 1.25rem;--spacing-10: 2.5rem;--spacing-20: 5rem}:root{--z-offline: 1200;--z-fatal: 1100;--z-loader: 1000;--z-notification: 900;--z-dialog: 800;--z-navigation: 700;--z-dropdown: 600;--z-drawer: 500;--z-dropzone: 400;--z-toolbar: 300;--z-content: 200;--z-background: 100}:root{--pattern-size: 16px;--pattern-light: repeating-conic-gradient( hsl(0, 0%, 100%) 0% 25%, hsl(0, 0%, 90%) 0% 50% ) 50% / var(--pattern-size) var(--pattern-size);--pattern-dark: repeating-conic-gradient( hsla(0, 0%, 15%) 0% 25%, hsl(0, 0%, 22%) 0% 50% ) 50% / var(--pattern-size) var(--pattern-size);--pattern: var(--pattern-dark)}:root{--container: 80rem;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--field-input-padding: var(--input-padding);--field-input-height: var(--input-height);--field-input-line-height: var(--input-leading);--field-input-font-size: var(--input-font-size);--bg-pattern: var(--pattern)}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-800);--choice-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-300);--choice-color-border: var(--csstools-light-dark-toggle--1, var(--color-gray-500));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-200);--choice-color-checked: var(--csstools-light-dark-toggle--2, var(--color-black));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-700);--choice-color-disabled: var(--csstools-light-dark-toggle--3, var(--color-gray-400));--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-gray-750);--choice-color-border-disabled: var(--csstools-light-dark-toggle--4, var(--color-gray-300));--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) var(--color-dark);--choice-color-icon: var(--csstools-light-dark-toggle--5, var(--color-light));--choice-color-info: var(--color-text-dimmed);--choice-color-text: var(--color-text);--choice-color-toggle: var(--choice-color-disabled);--choice-height: 1rem;--choice-rounded: var(--rounded-sm)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-800);--choice-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-300);--choice-color-border: var(--csstools-light-dark-toggle--1, var(--color-gray-500));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-200);--choice-color-checked: var(--csstools-light-dark-toggle--2, var(--color-black));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-700);--choice-color-disabled: var(--csstools-light-dark-toggle--3, var(--color-gray-400));--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-gray-750);--choice-color-border-disabled: var(--csstools-light-dark-toggle--4, var(--color-gray-300));--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) var(--color-dark);--choice-color-icon: var(--csstools-light-dark-toggle--5, var(--color-light))}}@supports (color: light-dark(red,red)){:root{--choice-color-back: light-dark(var(--color-white), var(--color-gray-800));--choice-color-border: light-dark( var(--color-gray-500), var(--color-gray-300) );--choice-color-checked: light-dark(var(--color-black), var(--color-gray-200));--choice-color-disabled: light-dark( var(--color-gray-400), var(--color-gray-700) );--choice-color-border-disabled: light-dark( var(--color-gray-300), var(--color-gray-750) );--choice-color-icon: light-dark(var(--color-light), var(--color-dark))}}input:where([type=checkbox],[type=radio]){position:relative;cursor:pointer;overflow:hidden;flex-shrink:0;height:var(--choice-height);aspect-ratio:1/1;border:1px solid var(--choice-color-border);appearance:none;border-radius:var(--choice-rounded);background:var(--choice-color-back);box-shadow:var(--shadow-sm)}input:where([type=checkbox],[type=radio]):after{position:absolute;content:"";display:none;place-items:center;text-align:center}input:where([type=checkbox],[type=radio]):focus{outline:var(--outline);outline-offset:-1px;color:var(--color-focus)}input:where([type=checkbox]):checked{border-color:var(--choice-color-checked)}input:where([type=checkbox],[type=radio]):checked:after,input:where([type=checkbox]):indeterminate:after{background:var(--choice-color-checked);display:grid}input:where([type=checkbox],[type=radio]):checked:focus{--choice-color-checked: var(--color-focus)}input:where([type=checkbox],[type=radio])[disabled]{--choice-color-back: none;--choice-color-border: var(--choice-color-border-disabled);--choice-color-checked: var(--choice-color-disabled);box-shadow:none;cursor:not-allowed}input[type=checkbox]:checked:after,input[type=checkbox]:indeterminate:after{content:"✓";inset:0;place-items:center;font-weight:700;color:var(--choice-color-icon);line-height:1}input[type=checkbox]:indeterminate:after{content:""}input[type=checkbox]:indeterminate:before{position:absolute;top:50%;left:50%;content:"";margin-top:-1px;margin-left:-4px;width:calc(var(--choice-height) - 8px);height:2px;background:var(--choice-color-icon);z-index:1}input[type=radio]{--choice-rounded: 50%}input[type=radio]:after{inset:3px;font-size:9px;border-radius:var(--choice-rounded)}input[type=checkbox][data-variant=toggle]{--choice-rounded: var(--choice-height);width:calc(var(--choice-height) * 2);aspect-ratio:2/1}input[type=checkbox][data-variant=toggle]:after{background:var(--choice-color-toggle);display:grid;inset:1px;width:.8rem;font-size:7px;border-radius:var(--choice-rounded);transition:margin-inline-start 75ms ease-in-out,background .1s ease-in-out}input[type=checkbox][data-variant=toggle]:checked{border-color:var(--choice-color-border)}input[type=checkbox][data-variant=toggle]:checked:after{background:var(--choice-color-checked);margin-inline-start:50%}:root{--range-thumb-color: white;--range-thumb-focus-outline: var(--outline);--range-thumb-size: 1rem;--range-thumb-shadow: rgba(0, 0, 0, .1) 0 2px 4px 2px, rgba(0, 0, 0, .125) 0 0 0 1px;--csstools-light-dark-toggle--6: var(--csstools-color-scheme--light) var(--color-black);--range-track-back: var(--csstools-light-dark-toggle--6, var(--color-gray-300));--range-track-height: var(--range-thumb-size)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--6: var(--csstools-color-scheme--light) var(--color-black);--range-track-back: var(--csstools-light-dark-toggle--6, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:root{--range-track-back: light-dark(var(--color-gray-300), var(--color-black))}}:where(input[type=range]){display:flex;align-items:center;appearance:none;padding:0;height:var(--range-thumb-size);border-radius:var(--range-track-size);width:100%}:where(input[type=range])::-webkit-slider-thumb{appearance:none;width:var(--range-thumb-size);height:var(--range-thumb-size);border:0;background:var(--range-thumb-color);box-shadow:var(--range-thumb-shadow);transform:translateZ(0);margin-top:calc(((var(--range-thumb-size) - var(--range-track-height)) / 2) * -1);border-radius:50%;z-index:1;cursor:grab}:where(input[type=range])::-moz-range-thumb{appearance:none;width:var(--range-thumb-size);height:var(--range-thumb-size);border:0;background:var(--range-thumb-color);box-shadow:var(--range-thumb-shadow);border-radius:50%;transform:translateZ(0);z-index:1;cursor:grab}:where(input[type=range])::-webkit-slider-thumb:active{cursor:grabbing}:where(input[type=range])::-moz-range-thumb:active{cursor:grabbing}:where(input[type=range])::-webkit-slider-runnable-track{background:var(--range-track-back);height:var(--range-track-height);border-radius:var(--range-track-height)}:where(input[type=range])::-moz-range-track{background:var(--range-track-back);height:var(--range-track-height);border-radius:var(--range-track-height)}:where(input[type=range][disabled]){--range-thumb-color: rgba(255, 255, 255, .2)}:where(input[type=range][disabled])::-webkit-slider-thumb{cursor:not-allowed}:where(input[type=range][disabled])::-moz-range-thumb{cursor:not-allowed}:where(input[type=range]):focus{outline:var(--outline)}:where(input[type=range]):focus::-webkit-slider-thumb{outline:var(--range-thumb-focus-outline)}:where(input[type=range]):focus::-moz-range-thumb{outline:var(--range-thumb-focus-outline)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:where(b,strong){font-weight:var(--font-bold, 600)}:where([hidden]){display:none!important}:where(abbr){text-decoration:none}:where(input,button,textarea,select){border:0;font:inherit;line-height:inherit;color:inherit;background:none}:where(fieldset){border:0}:where(legend){width:100%;float:left}:where(legend+*){clear:both}:where(select){appearance:none;background:var(--color-white);color:var(--color-black);cursor:pointer}:where(textarea,select,input:not([type=checkbox],[type=radio],[type=reset],[type=submit])){width:100%;font-variant-numeric:tabular-nums}:where(textarea){resize:vertical;line-height:1.5}:where(input)::-webkit-calendar-picker-indicator{display:none}:where(input[type=search]){appearance:none}:where(input)::-webkit-search-cancel-button{display:none}:where(button,label,select,summary,[role=button],[role=option]){cursor:pointer}:where(select[multiple]) option{display:flex;align-items:center}:where(input:-webkit-autofill){-webkit-text-fill-color:var(--color-text)!important;-webkit-background-clip:text}:where(:disabled){cursor:not-allowed}*::placeholder{color:var(--input-color-placeholder);opacity:1}:where(label:has(>input:disabled),label:has(+input:disabled)){cursor:not-allowed}:where(a){color:currentColor;text-decoration:none;text-underline-offset:.2ex}:where(ul,ol){list-style:none}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block}:where(iframe){border:0}:where(img,picture,svg){max-inline-size:100%;block-size:auto}:where(p,h1,h2,h3,h4,h5,h6){overflow-wrap:break-word}:where(h1,h2,h3,h4,h5,h6){font:inherit}:where(:focus,:focus-visible,:focus-within){outline-color:var(--color-focus, currentColor);outline-offset:0}:where(:focus-visible){outline:var(--outline, 2px solid var(--color-focus, currentColor))}:where(:invalid){box-shadow:none;outline:0}:where(dialog){border:0;max-width:none;max-height:none}:where(hr){border:0}:where(table){font:inherit;width:100%;border-spacing:0;font-variant-numeric:tabular-nums}:where(table th){font:inherit;text-align:start}body{font-family:var(--font-sans, sans-serif);font-size:var(--text-sm);line-height:1;position:relative;accent-color:var(--color-focus, currentColor)}:where(sup,sub){position:relative;line-height:0;vertical-align:baseline;font-size:75%}:where(sup){top:-.5em}:where(sub){bottom:-.25em}:where(mark){background:var(--color-yellow-300)}:where(kbd){display:inline-block;padding-inline:var(--spacing-2);border-radius:var(--rounded);--csstools-light-dark-toggle--7: var(--csstools-color-scheme--light) var(--color-black);background:var(--csstools-light-dark-toggle--7, var(--color-white));box-shadow:var(--shadow)}@supports (color: light-dark(red,red)){:where(kbd){background:light-dark(var(--color-white),var(--color-black))}}[data-align=left]{--align: start}[data-align=center]{--align: center}[data-align=right]{--align: end}@keyframes LoadingCursor{to{cursor:progress}}@keyframes Spin{to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}[data-theme]{--theme-color-h: 0;--theme-color-s: 0%;--theme-color-hs: var(--theme-color-h), var(--theme-color-s);--theme-color-boost: 3%;--theme-color-l-100: calc(var(--color-l-100) + var(--theme-color-boost));--theme-color-l-150: calc(var(--color-l-150) + var(--theme-color-boost));--theme-color-l-200: calc(var(--color-l-200) + var(--theme-color-boost));--theme-color-l-250: calc(var(--color-l-250) + var(--theme-color-boost));--theme-color-l-300: calc(var(--color-l-300) + var(--theme-color-boost));--theme-color-l-350: calc(var(--color-l-350) + var(--theme-color-boost));--theme-color-l-400: calc(var(--color-l-400) + var(--theme-color-boost));--theme-color-l-450: calc(var(--color-l-450) + var(--theme-color-boost));--theme-color-l-500: calc(var(--color-l-500) + var(--theme-color-boost));--theme-color-l-550: calc(var(--color-l-550) + var(--theme-color-boost));--theme-color-l-600: calc(var(--color-l-600) + var(--theme-color-boost));--theme-color-l-650: calc(var(--color-l-650) + var(--theme-color-boost));--theme-color-l-700: calc(var(--color-l-700) + var(--theme-color-boost));--theme-color-l-750: calc(var(--color-l-750) + var(--theme-color-boost));--theme-color-l-800: calc(var(--color-l-800) + var(--theme-color-boost));--theme-color-l-850: calc(var(--color-l-850) + var(--theme-color-boost));--theme-color-l-900: calc(var(--color-l-900) + var(--theme-color-boost));--theme-color-l-950: calc(var(--color-l-950) + var(--theme-color-boost));--theme-color-100: hsl(var(--theme-color-hs), var(--theme-color-l-100));--theme-color-150: hsl(var(--theme-color-hs), var(--theme-color-l-150));--theme-color-200: hsl(var(--theme-color-hs), var(--theme-color-l-200));--theme-color-250: hsl(var(--theme-color-hs), var(--theme-color-l-250));--theme-color-300: hsl(var(--theme-color-hs), var(--theme-color-l-300));--theme-color-350: hsl(var(--theme-color-hs), var(--theme-color-l-350));--theme-color-400: hsl(var(--theme-color-hs), var(--theme-color-l-400));--theme-color-450: hsl(var(--theme-color-hs), var(--theme-color-l-450));--theme-color-500: hsl(var(--theme-color-hs), var(--theme-color-l-500));--theme-color-550: hsl(var(--theme-color-hs), var(--theme-color-l-550));--theme-color-600: hsl(var(--theme-color-hs), var(--theme-color-l-600));--theme-color-650: hsl(var(--theme-color-hs), var(--theme-color-l-650));--theme-color-700: hsl(var(--theme-color-hs), var(--theme-color-l-700));--theme-color-750: hsl(var(--theme-color-hs), var(--theme-color-l-750));--theme-color-800: hsl(var(--theme-color-hs), var(--theme-color-l-800));--theme-color-850: hsl(var(--theme-color-hs), var(--theme-color-l-850));--theme-color-900: hsl(var(--theme-color-hs), var(--theme-color-l-900));--theme-color-950: hsl(var(--theme-color-hs), var(--theme-color-l-950));--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--theme-color-600);--theme-color-border: var(--csstools-light-dark-toggle--0, var(--theme-color-500));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--theme-color-500);--theme-color-back: var(--csstools-light-dark-toggle--1, var(--theme-color-400));--theme-color-hover: var(--theme-color-600);--theme-color-icon: var(--theme-color-600);--theme-color-icon-highlight: var(--theme-color-700);--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--theme-color-600);--theme-color-text: var(--csstools-light-dark-toggle--2, var(--theme-color-700));--theme-color-text-dimmed: hsl( var(--theme-color-h), calc(var(--theme-color-s) - 60%), 50% );--theme-color-text-highlight: var(--theme-color-900)}@supports not (color: light-dark(tan,tan)){[data-theme] *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--theme-color-600);--theme-color-border: var(--csstools-light-dark-toggle--0, var(--theme-color-500));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--theme-color-500);--theme-color-back: var(--csstools-light-dark-toggle--1, var(--theme-color-400));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--theme-color-600);--theme-color-text: var(--csstools-light-dark-toggle--2, var(--theme-color-700))}}@supports (color: light-dark(red,red)){[data-theme]{--theme-color-border: light-dark( var(--theme-color-500), var(--theme-color-600) );--theme-color-back: light-dark( var(--theme-color-400), var(--theme-color-500) );--theme-color-text: light-dark( var(--theme-color-700), var(--theme-color-600) )}}[data-theme^=red],[data-theme^=error],[data-theme^=negative]{--theme-color-h: var(--color-red-h);--theme-color-s: var(--color-red-s);--theme-color-boost: var(--color-red-boost)}[data-theme^=orange],[data-theme^=notice]{--theme-color-h: var(--color-orange-h);--theme-color-s: var(--color-orange-s);--theme-color-boost: var(--color-orange-boost)}[data-theme^=yellow],[data-theme^=warning]{--theme-color-h: var(--color-yellow-h);--theme-color-s: var(--color-yellow-s);--theme-color-boost: var(--color-yellow-boost)}[data-theme^=blue],[data-theme^=info]{--theme-color-h: var(--color-blue-h);--theme-color-s: var(--color-blue-s);--theme-color-boost: var(--color-blue-boost)}[data-theme^=pink],[data-theme^=love]{--theme-color-h: var(--color-pink-h);--theme-color-s: var(--color-pink-s);--theme-color-boost: var(--color-pink-boost)}[data-theme^=green],[data-theme^=positive]{--theme-color-h: var(--color-green-h);--theme-color-s: var(--color-green-s);--theme-color-boost: var(--color-green-boost)}[data-theme^=aqua]{--theme-color-h: var(--color-aqua-h);--theme-color-s: var(--color-aqua-s);--theme-color-boost: var(--color-aqua-boost)}[data-theme^=purple]{--theme-color-h: var(--color-purple-h);--theme-color-s: var(--color-purple-s);--theme-color-boost: var(--color-purple-boost)}[data-theme^=gray],[data-theme^=passive]{--theme-color-h: var(--color-gray-h);--theme-color-s: var(--color-gray-s);--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-950);--theme-color-back: var(--csstools-light-dark-toggle--3, var(--color-gray-300));--theme-color-boost: 10%;--theme-color-icon: var(--color-gray-600);--theme-color-text: var(--color-text);--theme-color-text-highlight: var(--theme-color-text)}@supports not (color: light-dark(tan,tan)){:is([data-theme^=gray],[data-theme^=passive]) *{--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-950);--theme-color-back: var(--csstools-light-dark-toggle--3, var(--color-gray-300))}}@supports (color: light-dark(red,red)){[data-theme^=gray],[data-theme^=passive]{--theme-color-back: light-dark(var(--color-gray-300), var(--color-gray-950))}}[data-theme^=white],[data-theme^=text]{--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-gray-850);--theme-color-back: var(--csstools-light-dark-toggle--4, var(--color-white));--theme-color-text: var(--color-text);--theme-color-text-highlight: var(--theme-color-text);--color-h: var(--color-text)}@supports not (color: light-dark(tan,tan)){:is([data-theme^=white],[data-theme^=text]) *{--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-gray-850);--theme-color-back: var(--csstools-light-dark-toggle--4, var(--color-white))}}@supports (color: light-dark(red,red)){[data-theme^=white],[data-theme^=text]{--theme-color-back: light-dark(var(--color-white), var(--color-gray-850))}}[data-theme^=dark]{--theme-color-h: var(--color-gray-h);--theme-color-s: var(--color-gray-s);--theme-color-boost: var(--color-gray-boost);--theme-color-back: var(--color-gray-800);--theme-color-icon: var(--color-gray-500);--theme-color-text: var(--color-gray-200);--theme-color-text-highlight: var(--theme-color-text)}[data-theme=code]{--theme-color-back: var(--code-color-back);--theme-color-hover: var(--color-black);--theme-color-icon: var(--code-color-icon);--theme-color-text: var(--code-color-text);--theme-color-text-highlight: var(--theme-color-text);font-family:var(--code-font-family);font-size:var(--code-font-size)}[data-theme=empty]{--theme-color-back: var(--panel-color-back);--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) var(--color-border);--theme-color-border: var(--csstools-light-dark-toggle--5, var(--color-gray-400));--theme-color-icon: var(--color-gray-600);--theme-color-text: var(--color-text-dimmed);--theme-color-text-highlight: var(--theme-color-text);border:1px dashed var(--theme-color-border)}@supports not (color: light-dark(tan,tan)){[data-theme=empty] *{--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) var(--color-border);--theme-color-border: var(--csstools-light-dark-toggle--5, var(--color-gray-400))}}@supports (color: light-dark(red,red)){[data-theme=empty]{--theme-color-border: light-dark(var(--color-gray-400), var(--color-border))}}[data-theme=none]{--theme-color-back: transparent;--theme-color-border: transparent;--theme-color-icon: var(--color-text);--theme-color-text: var(--color-text);--theme-color-text-highlight: var(--theme-color-text)}[data-theme]{--theme: var(--theme-color-700);--theme-light: var(--theme-color-500);--theme-bg: var(--theme-color-500)}:root{--outline: 2px solid var(--color-focus, currentColor)}.scroll-x,.scroll-x-auto,.scroll-y,.scroll-y-auto{-webkit-overflow-scrolling:touch;transform:translateZ(0)}.scroll-x{overflow-x:scroll;overflow-y:hidden}.scroll-x-auto{overflow-x:auto;overflow-y:hidden}.scroll-y{overflow-x:hidden;overflow-y:scroll}.scroll-y-auto{overflow-x:hidden;overflow-y:auto}.input-hidden{position:absolute;appearance:none;width:0;height:0;opacity:0}.k-lab-index-view .k-panel-main>.k-header .k-input{--input-color-back: var(--color-border);--input-color-border: transparent;--input-height: var(--height-md);width:40cqw;max-width:20rem;transform:translateY(-.5rem)}.k-lab-index-view .k-panel-main>.k-header>.k-header-buttons{margin-bottom:0}.k-lab-index-view .k-panel-main>.k-box{margin-bottom:var(--spacing-8)}.k-lab-index-view .k-list-items{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}.k-lab-docs-warning .k-box{box-shadow:var(--shadow)}.k-lab-docs-examples .k-code+.k-code{margin-top:var(--spacing-4)}.k-lab-docs-prop-values{font-size:var(--text-xs);border-left:2px solid var(--color-blue-300);padding-inline-start:var(--spacing-2)}.k-lab-docs-prop-values dl{font-weight:var(--font-bold)}.k-lab-docs-prop-values dl+dl{margin-top:var(--spacing-2)}.k-lab-docs-prop-values dd{display:inline-flex;flex-wrap:wrap;gap:var(--spacing-1)}.k-lab-docs-desc-header{display:flex;justify-content:space-between;align-items:center}.k-table .k-lab-docs-warning{--box-height: var(--height-xs);--text-font-size: var(--text-xs)}.k-labs-docs-params li{list-style:square;margin-inline-start:var(--spacing-3)}.k-labs-docs-params .k-lab-docs-types{margin-inline:1ch}.k-lab-docs-types{display:inline-flex;flex-wrap:wrap;gap:var(--spacing-1)}.k-lab-docs-types.k-text code{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-900);color:var(--csstools-light-dark-toggle--0, var(--color-gray-800));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-900);outline-color:var(--csstools-light-dark-toggle--1, var(--color-gray-400));background:var(--color-gray-300)}@supports (color: light-dark(red,red)){.k-lab-docs-types.k-text code{color:light-dark(var(--color-gray-800),var(--color-gray-900));outline-color:light-dark(var(--color-gray-400),var(--color-gray-900))}}.k-lab-docs-types code:is([data-type=boolean],[data-type=Boolean]){--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-purple-900);color:var(--csstools-light-dark-toggle--2, var(--color-purple-800));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-purple-900);outline-color:var(--csstools-light-dark-toggle--3, var(--color-purple-400));background:var(--color-purple-300)}@supports (color: light-dark(red,red)){.k-lab-docs-types code:is([data-type=boolean],[data-type=Boolean]){color:light-dark(var(--color-purple-800),var(--color-purple-900));outline-color:light-dark(var(--color-purple-400),var(--color-purple-900))}}.k-lab-docs-types code:is([data-type=string],[data-type=String]){--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-green-900);color:var(--csstools-light-dark-toggle--4, var(--color-green-800));--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) var(--color-green-900);outline-color:var(--csstools-light-dark-toggle--5, var(--color-green-500));background:var(--color-green-300)}@supports (color: light-dark(red,red)){.k-lab-docs-types code:is([data-type=string],[data-type=String]){color:light-dark(var(--color-green-800),var(--color-green-900));outline-color:light-dark(var(--color-green-500),var(--color-green-900))}}.k-lab-docs-types code:is([data-type=number],[data-type=Number]){--csstools-light-dark-toggle--6: var(--csstools-color-scheme--light) var(--color-orange-900);color:var(--csstools-light-dark-toggle--6, var(--color-orange-800));--csstools-light-dark-toggle--7: var(--csstools-color-scheme--light) var(--color-orange-900);outline-color:var(--csstools-light-dark-toggle--7, var(--color-orange-500));background:var(--color-orange-300)}@supports (color: light-dark(red,red)){.k-lab-docs-types code:is([data-type=number],[data-type=Number]){color:light-dark(var(--color-orange-800),var(--color-orange-900));outline-color:light-dark(var(--color-orange-500),var(--color-orange-900))}}.k-lab-docs-types code:is([data-type=array],[data-type=Array]){--csstools-light-dark-toggle--8: var(--csstools-color-scheme--light) var(--color-aqua-900);color:var(--csstools-light-dark-toggle--8, var(--color-aqua-800));--csstools-light-dark-toggle--9: var(--csstools-color-scheme--light) var(--color-aqua-900);outline-color:var(--csstools-light-dark-toggle--9, var(--color-aqua-500));background:var(--color-aqua-300)}@supports (color: light-dark(red,red)){.k-lab-docs-types code:is([data-type=array],[data-type=Array]){color:light-dark(var(--color-aqua-800),var(--color-aqua-900));outline-color:light-dark(var(--color-aqua-500),var(--color-aqua-900))}}.k-lab-docs-types code:is([data-type=object],[data-type=Object]){--csstools-light-dark-toggle--10: var(--csstools-color-scheme--light) var(--color-yellow-900);color:var(--csstools-light-dark-toggle--10, var(--color-yellow-800));--csstools-light-dark-toggle--11: var(--csstools-color-scheme--light) var(--color-yellow-900);outline-color:var(--csstools-light-dark-toggle--11, var(--color-yellow-500));background:var(--color-yellow-300)}@supports (color: light-dark(red,red)){.k-lab-docs-types code:is([data-type=object],[data-type=Object]){color:light-dark(var(--color-yellow-800),var(--color-yellow-900));outline-color:light-dark(var(--color-yellow-500),var(--color-yellow-900))}}.k-lab-docs-types code[data-type=func]{--csstools-light-dark-toggle--12: var(--csstools-color-scheme--light) var(--color-pink-900);color:var(--csstools-light-dark-toggle--12, var(--color-pink-800));outline-color:var(--color-pink-400);background:var(--color-pink-300)}@supports (color: light-dark(red,red)){.k-lab-docs-types code[data-type=func]{color:light-dark(var(--color-pink-800),var(--color-pink-900))}}.k-lab-docs-section+.k-lab-docs-section{margin-top:var(--spacing-12)}.k-lab-docs-section .k-headline{margin-bottom:var(--spacing-3)}.k-lab-docs-section .k-table td{padding:.375rem var(--table-cell-padding);vertical-align:top;line-height:1.5;word-break:break-word}.k-lab-docs-description :where(.k-text,.k-box)+:where(.k-text,.k-box){margin-top:var(--spacing-3)}.k-lab-docs-required{margin-inline-start:var(--spacing-1);font-size:.7rem;vertical-align:super;color:var(--color-red-600)}.k-lab-docs-since{margin-top:var(--spacing-1);font-size:var(--text-xs);color:var(--color-gray-600)}.k-lab-docs-view-since{display:flex;align-items:center;gap:var(--spacing-1);margin-bottom:var(--spacing-8)}.k-lab-docs-view-since .k-tag{--tag-color-back: var(--color-yellow-400)}.k-lab-example{position:relative;container-type:inline-size;max-width:100%;outline-offset:-2px;border-radius:var(--rounded);border:1px solid var(--color-border)}.k-lab-example+.k-lab-example{margin-top:var(--spacing-12)}.k-lab-example-header{display:flex;justify-content:space-between;align-items:center;height:var(--height-md);padding-block:var(--spacing-3);padding-inline:var(--spacing-2);border-bottom:1px solid var(--color-border)}.k-lab-example-label{font-size:12px;color:var(--color-text-dimmed)}.k-lab-example-canvas,.k-lab-example-code{padding:var(--spacing-16)}.k-lab-example[data-flex=true] .k-lab-example-canvas{display:flex;align-items:center;gap:var(--spacing-6)}.k-lab-example-inspector{--icon-size: 13px;--button-color-icon: var(--color-gray-500)}.k-lab-example-inspector .k-button:not([data-theme]):hover{--button-color-icon: var(--color-gray-600)}.k-lab-example-inspector .k-button:where([data-theme]){--button-color-icon: var(--color-gray-800)}.k-lab-examples>:where(.k-text,.k-box){margin-bottom:var(--spacing-6)}.k-lab-form>footer{border-top:1px dashed var(--color-border);padding-top:var(--spacing-6)}.k-lab-examples>h2{margin-bottom:var(--spacing-6)}.k-lab-examples>*+h2{margin-top:var(--spacing-12)}:where(.k-lab-input-examples,.k-lab-field-examples) .k-lab-example:has(:invalid){outline:2px solid var(--color-red-500);outline-offset:-2px}.k-lab-input-examples-focus .k-lab-example-canvas>.k-button{margin-top:var(--spacing-6)}.k-lab-helpers-examples .k-lab-example .k-text{margin-bottom:var(--spacing-6)}.k-lab-helpers-examples h2{margin-bottom:var(--spacing-3);font-weight:var(--font-bold)}:root{--highlight-punctuation: var(--color-gray-500);--highlight-variable: var(--color-red-500);--highlight-constant: var(--color-orange-500);--highlight-keyword: var(--color-purple-500);--highlight-function: var(--color-blue-500);--highlight-operator: var(--color-aqua-500);--highlight-string: var(--color-green-500);--highlight-scope: var(--color-yellow-500)}.k-panel[data-theme=dark]{--highlight-punctuation: var(--color-gray-400);--highlight-variable: var(--color-red-400);--highlight-constant: var(--color-orange-400);--highlight-keyword: var(--color-purple-400);--highlight-function: var(--color-blue-400);--highlight-operator: var(--color-aqua-400);--highlight-string: var(--color-green-400);--highlight-scope: var(--color-yellow-400)}.token.punctuation,.token.comment,.token.doctype,.token.title .punctuation{color:var(--highlight-punctuation)}.token.tag,.token.markup,.token.variable,.token.this,.token.selector,.token.key,.token.kirbytag-bracket,.token.prolog,.token.delimiter{color:var(--highlight-variable)}.token.constant,.token.number,.token.boolean,.token.boolean.important,.token.attr-name,.token.kirbytag-attr,.token.kirbytag-name,.token.entity,.token.bold,.token.bold>.punctuation{color:var(--highlight-constant)}.token.keyword,.token.italic,.token.italic>.punctuation{color:var(--highlight-keyword)}.token.function{color:var(--highlight-function)}.token.operator,.token.title{color:var(--highlight-operator)}.token.string,.token.attr-value,.token.attr-value .punctuation,.token.list.punctuation{color:var(--highlight-string)}.token.scope,.token.class-name,.token.property,.token.url{color:var(--highlight-scope)}.token.title,.token.kirbytag-bracket,.token.list.punctuation,.token.bold{font-weight:var(--font-bold)}.token.italic{font-style:italic} +.k-items{position:relative;display:grid;container-type:inline-size}.k-items[data-layout=list]{gap:2px}.k-items[data-layout=cardlets]{--items-size: 1fr;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(var(--items-size),1fr))}@container (min-width: 15rem){.k-items[data-layout=cardlets]{--items-size: 15rem}}.k-items[data-layout=cards]{display:grid;gap:1.5rem;grid-template-columns:1fr}@container (min-width: 6rem){.k-items[data-layout=cards][data-size=tiny]{grid-template-columns:repeat(auto-fill,minmax(6rem,1fr))}}@container (min-width: 9rem){.k-items[data-layout=cards][data-size=small]{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr))}}@container (min-width: 12rem){.k-items[data-layout=cards][data-size=auto],.k-items[data-layout=cards][data-size=medium]{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}}@container (min-width: 15rem){.k-items[data-layout=cards][data-size=large]{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}}@container (min-width: 18rem){.k-items[data-layout=cards][data-size=huge]{grid-template-columns:repeat(auto-fill,minmax(18rem,1fr))}}.k-collection-footer{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:nowrap;gap:var(--spacing-12);margin-top:var(--spacing-2)}.k-empty{max-width:100%}.k-item-image{--back: var(--item-color-image);--icon-color: var(--item-color-icon)}:root{--item-button-height: var(--height-md);--item-button-width: var(--height-md);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--item-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-400);--item-color-icon: var(--csstools-light-dark-toggle--1, var(--color-gray-800));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-950);--item-color-image: var(--csstools-light-dark-toggle--2, var(--color-gray-300));--item-height: auto;--item-height-cardlet: calc(var(--height-md) * 3);--item-shadow: var(--shadow-sm)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--item-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-400);--item-color-icon: var(--csstools-light-dark-toggle--1, var(--color-gray-800));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-950);--item-color-image: var(--csstools-light-dark-toggle--2, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:root{--item-color-back: light-dark(var(--color-white), var(--color-gray-850));--item-color-icon: light-dark(var(--color-gray-800), var(--color-gray-400));--item-color-image: light-dark(var(--color-gray-300), var(--color-gray-950))}}.k-item{position:relative;background:var(--item-color-back);box-shadow:var(--item-shadow);border-radius:var(--rounded);min-height:var(--item-height);container-type:inline-size}.k-item:has(a:focus){outline:2px solid var(--color-focus)}.k-item-content{line-height:1.25;overflow:hidden;padding:var(--spacing-2)}.k-item-content a:focus{outline:0}.k-item-content a:after{content:"";position:absolute;inset:0}.k-item-info{color:var(--color-text-dimmed)}.k-item-options{transform:translate(0);z-index:1;display:flex;align-items:center;justify-content:space-between}.k-item-options:has(>:first-child:last-child){justify-content:flex-end}.k-item-options .k-button{--button-height: var(--item-button-height);--button-width: var(--item-button-width)}.k-item .k-sort-button{position:absolute;z-index:2}.k-item:not(:hover):not(.k-sortable-fallback) .k-sort-button{opacity:0}.k-item[data-layout=list]{--item-height: var( --field-input-height );--item-button-height: var(--item-height);--item-button-width: auto;display:grid;align-items:center;grid-template-columns:1fr auto}.k-item[data-layout=list][data-has-image=true]{grid-template-columns:var(--item-height) 1fr auto}.k-item[data-layout=list] .k-frame{--ratio: 1/1;border-start-start-radius:var(--rounded);border-end-start-radius:var(--rounded);height:100%}.k-item[data-layout=list] .k-item-content{display:flex;min-width:0;flex-wrap:wrap;column-gap:var(--spacing-4);justify-content:space-between}.k-item[data-layout=list] .k-item-title,.k-item[data-layout=list] .k-item-info{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@container (max-width: 25rem){.k-item[data-layout=list] .k-item-content:has(.k-item-info){flex-direction:column}}.k-item[data-layout=list] .k-sort-button{--button-width: calc(1.5rem + var(--spacing-1));--button-height: var(--item-height);left:calc(-1 * var(--button-width))}.k-item:is([data-layout=cardlets],[data-layout=cards]) .k-sort-button{top:var(--spacing-2);inset-inline-start:var(--spacing-2);--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-white);color:var(--csstools-light-dark-toggle--3, var(--color-black));--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) 7%;background:hsla(0,0%,var(--csstools-light-dark-toggle--4, 100%),50%);background:hsla(0,0%,light-dark(100%,7%),50%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 2px 5px #0003;--button-width: 1.5rem;--button-height: 1.5rem;--button-rounded: var(--rounded-sm);--button-padding: 0;--icon-size: 14px}@supports (color: light-dark(red,red)){.k-item:is([data-layout=cardlets],[data-layout=cards]) .k-sort-button{color:light-dark(var(--color-black),var(--color-white))}}.k-item:is([data-layout=cardlets],[data-layout=cards]) .k-sort-button:hover{--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) 7%;background:hsla(0,0%,var(--csstools-light-dark-toggle--5, 100%),95%);background:hsla(0,0%,light-dark(100%,7%),95%)}.k-item[data-layout=cardlets]{--item-height: var(--item-height-cardlet);display:grid;grid-template-areas:"content" "options";grid-template-columns:1fr;grid-template-rows:1fr var(--height-md)}.k-item[data-layout=cardlets][data-has-image=true]{grid-template-areas:"image content" "image options";grid-template-columns:minmax(0,var(--item-height)) 1fr}.k-item[data-layout=cardlets] .k-frame{grid-area:image;border-start-start-radius:var(--rounded);border-end-start-radius:var(--rounded);aspect-ratio:auto}.k-item[data-layout=cardlets] .k-item-content{grid-area:content}.k-item[data-layout=cardlets] .k-item-info{margin-top:.125em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.k-item[data-layout=cardlets] .k-item-options{grid-area:options}.k-item[data-layout=cards]{display:flex;flex-direction:column}.k-item[data-layout=cards] .k-frame{border-start-start-radius:var(--rounded);border-start-end-radius:var(--rounded)}.k-item[data-layout=cards] .k-item-content{flex-grow:1;padding:var(--spacing-2)}.k-item[data-layout=cards] .k-item-info{margin-top:.125em}.k-item[data-selecting=true][data-selectable=true]{cursor:pointer}.k-item-options-checkbox{display:inline-flex;align-items:center;justify-content:center;height:var(--item-button-height);width:var(--item-button-height);flex-shrink:0}.k-item[data-selectable=true]:has(.k-item-options-checkbox input:checked){--csstools-light-dark-toggle--6: var(--csstools-color-scheme--light) var(--color-blue-800);--item-color-back: var(--csstools-light-dark-toggle--6, var(--color-blue-250));--item-shadow: 0 1px 3px 0 rgba(0 0 0 / .25), 0 1px 2px 0 rgba(0 0 0 / .05)}@supports not (color: light-dark(tan,tan)){.k-item[data-selectable=true]:has(.k-item-options-checkbox input:checked) *{--csstools-light-dark-toggle--6: var(--csstools-color-scheme--light) var(--color-blue-800);--item-color-back: var(--csstools-light-dark-toggle--6, var(--color-blue-250))}}@supports (color: light-dark(red,red)){.k-item[data-selectable=true]:has(.k-item-options-checkbox input:checked){--item-color-back: light-dark(var(--color-blue-250), var(--color-blue-800))}}.k-item[data-theme=disabled]{background:transparent;box-shadow:none;outline:1px solid var(--color-border);outline-offset:-1px}.k-item[data-theme=skeleton]{--csstools-light-dark-toggle--7: var(--csstools-color-scheme--light) var(--color-gray-650);--item-color-icon: var(--csstools-light-dark-toggle--7, var(--color-gray-500));--csstools-light-dark-toggle--8: var(--csstools-color-scheme--light) var(--color-gray-800);--item-color-image: var(--csstools-light-dark-toggle--8, var(--color-gray-250))}@supports not (color: light-dark(tan,tan)){.k-item[data-theme=skeleton] *{--csstools-light-dark-toggle--7: var(--csstools-color-scheme--light) var(--color-gray-650);--item-color-icon: var(--csstools-light-dark-toggle--7, var(--color-gray-500));--csstools-light-dark-toggle--8: var(--csstools-color-scheme--light) var(--color-gray-800);--item-color-image: var(--csstools-light-dark-toggle--8, var(--color-gray-250))}}@supports (color: light-dark(red,red)){.k-item[data-theme=skeleton]{--item-color-icon: light-dark(var(--color-gray-500), var(--color-gray-650));--item-color-image: light-dark(var(--color-gray-250), var(--color-gray-800))}}.k-item[data-theme=skeleton] .k-item-options{visibility:hidden}.k-dialog-body{padding:var(--dialog-padding)}.k-dialog:has(.k-dialog-footer) .k-dialog-body{padding-bottom:0}.k-button-group.k-dialog-buttons{display:grid;grid-template-columns:1fr;gap:var(--spacing-3);--button-height: var(--height-lg)}.k-button-group.k-dialog-buttons:has(>.k-button:nth-child(2)){grid-template-columns:1fr 1fr}.k-dialog-fields{padding-bottom:.5rem;container-type:inline-size}.k-dialog-fields .k-line-field{height:2px}.k-dialog-footer{padding:var(--dialog-padding);line-height:1;flex-shrink:0}.k-dialog .k-notification{padding-block:.325rem;border-start-start-radius:var(--dialog-rounded);border-start-end-radius:var(--dialog-rounded);margin-top:-1px}.k-dialog-search{margin-bottom:.75rem;--input-color-border: transparent;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--input-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300))}@supports not (color: light-dark(tan,tan)){.k-dialog-search *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--input-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300))}}@supports (color: light-dark(red,red)){.k-dialog-search{--input-color-back: light-dark(var(--color-gray-300), var(--color-gray-950))}}:root{--dialog-color-back: var(--panel-color-back);--dialog-color-text: currentColor;--dialog-margin: var(--spacing-6);--dialog-padding: var(--spacing-6);--dialog-rounded: var(--rounded-xl);--dialog-shadow: var(--shadow-xl);--dialog-width: 22rem}.k-dialog-portal{padding:var(--dialog-margin)}.k-dialog{position:relative;background:var(--dialog-color-back);color:var(--dialog-color-text);width:clamp(10rem,100%,var(--dialog-width));box-shadow:var(--dialog-shadow);border-radius:var(--dialog-rounded);line-height:1;display:flex;flex-direction:column;overflow:clip;container-type:inline-size}@media screen and (min-width:20rem){.k-dialog[data-size=small]{--dialog-width: 20rem}}@media screen and (min-width:22rem){.k-dialog[data-size=default]{--dialog-width: 22rem}}@media screen and (min-width:30rem){.k-dialog[data-size=medium]{--dialog-width: 30rem}}@media screen and (min-width:40rem){.k-dialog[data-size=large]{--dialog-width: 40rem}}@media screen and (min-width:60rem){.k-dialog[data-size=huge]{--dialog-width: 60rem}}.k-dialog .k-pagination{margin-bottom:-1.5rem;display:flex;justify-content:center;align-items:center}.k-changes-dialog section+section{margin-top:var(--spacing-6)}.k-changes-dialog .k-headline{margin-top:-.5rem;margin-bottom:var(--spacing-3)}.k-error-details{background:var(--input-color-back);display:block;overflow:auto;padding:1rem;border-radius:var(--rounded);font-size:var(--text-sm);line-height:1.25em;margin-top:.75rem}.k-error-details dt{color:var(--color-red-500);margin-bottom:.25rem}.k-error-details dd{overflow:hidden;overflow-wrap:break-word;text-overflow:ellipsis}.k-error-details dd:not(:last-of-type){margin-bottom:1.5em}.k-error-details li{white-space:pre-line}.k-error-details li:not(:last-child){border-bottom:1px solid var(--color-border);padding-bottom:.25rem;margin-bottom:.25rem}.k-models-dialog .k-list-item{cursor:pointer}.k-models-dialog .k-choice-input{--choice-color-checked: var(--color-focus);display:flex;align-items:center;height:var(--item-button-height);margin-inline-end:var(--spacing-3)}.k-models-dialog .k-choice-input input{top:0}.k-models-dialog .k-collection-footer .k-pagination{margin-bottom:0}.k-license-dialog-status{display:flex;align-items:center;gap:var(--spacing-2)}.k-license-dialog .k-license-dialog-status{--icon-color: var(--theme-color-700)}.k-lock-alert-dialog dl{margin:var(--spacing-6) 0 var(--spacing-2) 0}.k-lock-alert-dialog dl div{padding:var(--spacing-1) 0;line-height:var(--leading-normal);display:flex;align-items:center;gap:.75rem;color:var(--color-gray-500)}.k-lock-alert-dialog .k-dialog-buttons{grid-template-columns:1fr}.k-page-template-switch{margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-6);border-bottom:1px dashed var(--color-gray-300)}.k-page-move-dialog .k-headline{margin-bottom:var(--spacing-2)}.k-page-move-parent{--tree-color-back: var(--input-color-back);--tree-branch-color-back: var(--input-color-back);--tree-branch-hover-color-back: var(--panel-color-back);padding:var(--spacing-3);background:var(--tree-color-back);border-radius:var(--rounded);box-shadow:var(--shadow)}.k-pages-dialog-navbar{display:flex;align-items:center;justify-content:center;margin-bottom:.5rem;padding-inline-end:38px}.k-pages-dialog-navbar .k-button[aria-disabled=true]{opacity:0}.k-pages-dialog-navbar .k-headline{flex-grow:1;text-align:center}.k-pages-dialog-option[aria-disabled=true]{opacity:.25}.k-search-dialog{--dialog-padding: 0;--dialog-rounded: var(--rounded);overflow:visible}.k-overlay[open][data-type=dialog]>.k-portal>.k-search-dialog{margin-top:0}.k-totp-dialog-headline{margin-bottom:var(--spacing-1)}.k-totp-dialog-intro{margin-bottom:var(--spacing-6)}.k-totp-dialog-grid{display:grid;gap:var(--spacing-6)}@media screen and (min-width:40rem){.k-totp-dialog-grid{grid-template-columns:1fr 1fr;gap:var(--spacing-8)}}.k-totp-qrcode .k-box[data-theme]{padding:var(--box-padding-inline)}.k-totp-dialog-fields .k-field-name-confirm{--input-height: var(--height-xl);--input-rounded: var(--rounded);--input-font-size: var(--text-3xl)}.k-upload-dialog.k-dialog{--dialog-width: 40rem}.k-upload-replace-dialog .k-upload-items{display:flex;gap:var(--spacing-3);align-items:center}.k-upload-original{width:6rem;border-radius:var(--rounded);box-shadow:var(--shadow);overflow:hidden}.k-upload-replace-dialog .k-upload-item{flex-grow:1}.k-drawer-body{padding:var(--drawer-body-padding);flex-grow:1;background:var(--drawer-color-back)}.k-drawer-body .k-writer-input:focus-within .k-toolbar:not([data-inline=true]),.k-drawer-body .k-textarea-input-wrapper:focus-within .k-toolbar,.k-drawer-body .k-table th{top:-1.5rem}.k-drawer-header{--button-height: calc(var(--drawer-header-height) - var(--spacing-1));flex-shrink:0;height:var(--drawer-header-height);padding-inline-start:var(--drawer-header-padding);display:flex;align-items:center;line-height:1;justify-content:space-between;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);background:var(--csstools-light-dark-toggle--0, var(--color-white));font-size:var(--text-sm)}@supports (color: light-dark(red,red)){.k-drawer-header{background:light-dark(var(--color-white),var(--color-gray-850))}}.k-drawer-breadcrumb{flex-grow:1}.k-drawer-options{display:flex;align-items:center;padding-inline-end:.75rem}.k-drawer-option{--button-width: var(--button-height)}.k-drawer-option[aria-disabled=true]{opacity:var(--opacity-disabled)}.k-notification.k-drawer-notification{padding:.625rem 1.5rem}.k-drawer-tabs.k-tabs{flex-grow:1;gap:0;margin:0;justify-content:end}.k-drawer-tabs .k-tabs-button{--button-height: calc(var(--drawer-header-height) - var(--spacing-1));--button-padding: var(--spacing-3);display:flex;align-items:center;font-size:var(--text-xs);margin-block:0}.k-drawer-tabs .k-tabs-button[aria-current=true]:after{z-index:1}:root{--drawer-body-padding: 1.5rem;--drawer-color-back: var(--panel-color-back);--drawer-header-height: 2.5rem;--drawer-header-padding: 1rem;--drawer-shadow: var(--shadow-xl);--drawer-width: 50rem}.k-drawer-overlay+.k-drawer-overlay{--overlay-color-back: none}.k-drawer{--header-sticky-offset: calc(var(--drawer-body-padding) * -1);z-index:var(--z-toolbar);flex-basis:var(--drawer-width);position:relative;display:flex;flex-direction:column;background:var(--drawer-color-back);box-shadow:var(--drawer-shadow);container-type:inline-size}.k-drawer:not([aria-current=true]){display:none;pointer-events:none}.k-drawer[data-size=tiny]{--drawer-width: 26rem}.k-drawer[data-size=small]{--drawer-width: 36rem}.k-drawer[data-size=large]{--drawer-width: 65rem}.k-drawer[data-size=huge]{--drawer-width: 85rem}:root{--dropdown-color-bg: var(--color-gray-950);--dropdown-color-current: var(--color-blue-500);--dropdown-color-hr: var(--color-gray-850);--dropdown-color-text: var(--color-white);--dropdown-padding: var(--spacing-2);--dropdown-rounded: var(--rounded);--dropdown-shadow: var(--shadow-xl)}.k-dropdown-content{--dropdown-x: 0;--dropdown-y: 0;position:absolute;inset-block-start:0;inset-inline-start:initial;left:0;width:max-content;padding:var(--dropdown-padding);background:var(--dropdown-color-bg);border-radius:var(--dropdown-rounded);color:var(--dropdown-color-text);box-shadow:var(--dropdown-shadow);text-align:start;transform:translate(var(--dropdown-x),var(--dropdown-y))}.k-dropdown-content::backdrop{background:none}.k-dropdown-content[data-align-x=end]{--dropdown-x: -100%}.k-dropdown-content[data-align-x=center]{--dropdown-x: -50%}.k-dropdown-content[data-align-y=top]{--dropdown-y: -100%}.k-dropdown-content hr{margin:.5rem 0;height:1px;background:var(--dropdown-color-hr)}.k-dropdown-content[data-theme=light]{--dropdown-color-bg: var(--color-white);--dropdown-color-current: var(--color-blue-800);--dropdown-color-hr: var(--color-gray-250);--dropdown-color-text: var(--color-black)}:root{--button-align: center;--button-height: var(--height-md);--button-width: auto;--button-color-back: none;--button-color-text: currentColor;--button-color-icon: currentColor;--button-padding: var(--spacing-2);--button-rounded: var(--spacing-1);--button-text-display: block;--button-icon-display: block;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--button-filled-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300))}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--button-filled-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:root{--button-filled-color-back: light-dark( var(--color-gray-300), var(--color-gray-950) )}}.k-button{position:relative;display:inline-flex;align-items:center;justify-content:var(--button-align);gap:.5rem;padding-inline:var(--button-padding);white-space:nowrap;line-height:1;border-radius:var(--button-rounded);background:var(--button-color-back);height:var(--button-height);width:var(--button-width);color:var(--button-color-text);font-variant-numeric:tabular-nums;text-align:var(--button-align);flex-shrink:0}.k-button-icon{--icon-color: var(--button-color-icon);flex-shrink:0;display:var(--button-icon-display)}.k-button-text{text-overflow:ellipsis;overflow-x:clip;display:var(--button-text-display);min-width:0}.k-button:where([data-theme]){--button-color-icon: var(--theme-color-icon);--button-color-text: var(--theme-color-text)}.k-button:where([data-theme$=-icon]){--button-color-text: currentColor}.k-button:where([data-variant=dimmed]){--button-color-icon: var(--color-text);--button-color-text: var(--color-text-dimmed)}.k-button:where([data-variant=dimmed]):not([aria-disabled=true]):is(:hover,[aria-current=true]) .k-button-text{--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) brightness(125%);filter:var(--csstools-light-dark-toggle--1, brightness(75%));filter:light-dark(brightness(75%),brightness(125%))}.k-button:where([data-variant=dimmed][data-theme]){--button-color-icon: var(--theme-color-icon);--button-color-text: var(--theme-color-text-dimmed)}.k-button:where([data-variant=dimmed][data-theme$=-icon]){--button-color-text: var(--color-text-dimmed)}.k-button:where([data-variant=filled]){--button-color-back: var(--button-filled-color-back)}.k-button:where([data-variant=filled]):not([aria-disabled=true]):hover{filter:brightness(97%)}.k-button:where([data-variant=filled][data-theme]){--button-color-icon: var(--theme-color-icon-highlight);--button-color-back: var(--theme-color-back);--button-color-text: var(--theme-color-text-highlight)}.k-button:where([data-theme$=-icon][data-variant=filled]){--button-color-icon: var(--theme-color-icon);--button-color-back: var(--button-filled-color-back);--button-color-text: currentColor}.k-button:not([data-has-text=true]){--button-padding: 0;aspect-ratio:1/1}@container (max-width: 30rem){.k-button[data-responsive=true][data-has-icon=true]{--button-padding: 0;aspect-ratio:1/1;--button-text-display: none}.k-button[data-responsive=text][data-has-text=true]{--button-icon-display: none}.k-button[data-responsive=true][data-has-icon=true] .k-button-arrow{display:none}}.k-button:not(button,a,summary,label,.k-link){pointer-events:none}.k-button:where([data-size=xs]){--button-height: var(--height-xs);--button-padding: .325rem}.k-button:where([data-size=sm]){--button-height: var(--height-sm);--button-padding: .5rem}.k-button:where([data-size=lg]){--button-height: var(--height-lg)}.k-button-arrow{width:max-content;margin-inline-start:-.25rem;margin-inline-end:-.125rem}.k-button-badge{position:absolute;top:0;inset-inline-end:0;transform:translate(40%,-20%);min-width:1em;min-height:1em;font-variant-numeric:tabular-nums;line-height:1.5;padding:0 var(--spacing-1);border-radius:1em;text-align:center;font-size:.6rem;box-shadow:var(--shadow-md);background:var(--theme-color-back);--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-black);border:1px solid var(--csstools-light-dark-toggle--2, var(--theme-color-500));color:var(--theme-color-text-highlight);z-index:1}@supports (color: light-dark(red,red)){.k-button-badge{border:1px solid light-dark(var(--theme-color-500),var(--color-black))}}.k-button:where([aria-disabled=true]){cursor:not-allowed}.k-button:where([aria-disabled=true])>*{opacity:var(--opacity-disabled)}.k-dropdown-item.k-button{--button-align: flex-start;--button-color-text: var(--dropdown-color-text);--button-height: var(--height-sm);--button-rounded: var(--rounded-sm);--button-width: 100%;display:flex}.k-dropdown-item.k-button:focus{outline:var(--outline)}.k-dropdown-item.k-button[aria-current=true]{--button-color-text: var(--dropdown-color-current)}.k-dropdown-item.k-button[aria-current=true]:after{margin-inline-start:auto;text-align:center;content:"✓";padding-inline-start:var(--spacing-1)}.k-dropdown-item.k-button:not([aria-disabled=true]):hover{--button-color-back: var(--dropdown-color-hr)}.k-options-dropdown{display:flex;justify-content:center;align-items:center}:root{--picklist-rounded: var(--rounded-sm);--picklist-highlight: var(--color-yellow-500)}.k-picklist-input{--choice-color-text: currentColor;--button-rounded: var(--picklist-rounded)}.k-picklist-input-header{--input-rounded: var(--picklist-rounded)}.k-picklist-input-search{display:flex;align-items:center;border-radius:var(--picklist-rounded)}.k-picklist-input-search .k-search-input{height:var(--button-height)}.k-picklist-input-search:focus-within{outline:var(--outline)}.k-picklist-dropdown .k-picklist-input-create:focus{outline:0}.k-picklist-dropdown .k-picklist-input-create[aria-disabled=true]{visibility:hidden}.k-picklist-input-options.k-grid{--columns: 1}.k-picklist-input-options li+li{margin-top:var(--spacing-1)}.k-picklist-input-options .k-choice-input{padding-inline:var(--spacing-2)}.k-picklist-input-options .k-choice-input{--choice-color-checked: var(--color-focus)}.k-picklist-input-options .k-choice-input:has(:checked){--choice-color-text: var(--color-focus)}.k-picklist-input-options .k-choice-input[aria-disabled=true]{--choice-color-text: var(--color-text-dimmed)}.k-picklist-input-options .k-choice-input:has(:focus-within){outline:var(--outline)}.k-picklist-input-options .k-choice-input b{font-weight:var(--font-normal);color:var(--picklist-highlight)}.k-picklist-input-more.k-button{--button-width: 100%;--button-align: start;--button-color-text: var(--color-text-dimmed);padding-inline:var(--spacing-2)}.k-picklist-input-more.k-button .k-button-icon{position:relative;inset-inline-start:-1px}.k-picklist-input-empty{height:var(--button-height);line-height:1.25rem;padding:var(--spacing-1) var(--spacing-2);color:var(--color-text-dimmed)}.k-picklist-dropdown{--color-text-dimmed: var(--color-gray-400);padding:0;max-width:30rem;min-width:8rem}.k-picklist-dropdown :where(.k-picklist-input-header,.k-picklist-input-body,.k-picklist-input-footer){padding:var(--dropdown-padding)}.k-picklist-dropdown .k-picklist-input-header{border-bottom:1px solid var(--dropdown-color-hr)}.k-picklist-dropdown .k-picklist-input-search{background:var(--dropdown-color-hr);padding-inline-end:var(--input-padding)}.k-picklist-dropdown .k-picklist-input-create{--button-rounded: 1rem;--button-height: 1.125rem}.k-picklist-dropdown .k-picklist-input-create:focus{--button-color-back: var(--color-blue-500);--button-color-text: var(--color-black)}.k-picklist-dropdown .k-picklist-input-body{max-height:calc(var(--button-height) * 9.5 + 2px * 9 + var(--dropdown-padding));overflow-y:auto;outline-offset:-2px;overscroll-behavior:contain;scroll-padding-top:var(--dropdown-padding);scroll-padding-bottom:var(--dropdown-padding)}.k-picklist-dropdown .k-picklist-input-options .k-choice-input{--choice-color-border: var(--dropdown-color-hr);--choice-color-back: var(--dropdown-color-hr);--choice-color-info: var(--color-text-dimmed);min-height:var(--button-height);border-radius:var(--picklist-rounded);padding-block:.375rem}.k-picklist-dropdown .k-picklist-input-options .k-choice-input-label{flex-grow:1}.k-picklist-dropdown .k-picklist-input-options li+li{margin-top:0}.k-picklist-dropdown .k-picklist-input-options .k-choice-input[aria-disabled=true] input{--choice-color-border: var(--dropdown-color-hr);--choice-color-back: var(--dropdown-color-hr);--choice-color-checked: var(--dropdown-color-hr);opacity:var(--opacity-disabled)}.k-picklist-dropdown .k-picklist-input-options .k-choice-input:not([aria-disabled=true]):hover{background-color:var(--dropdown-color-hr);--choice-color-border: var(--dropdown-color-bg)}.k-picklist-dropdown .k-picklist-input-options .k-choice-input:not([aria-disabled=true]):focus-within{--choice-color-text: var(--color-blue-500)}.k-picklist-dropdown .k-picklist-input-more.k-button:hover{--button-color-back: var(--dropdown-color-hr)}.k-picklist-dropdown .k-picklist-input-body+.k-picklist-input-footer{border-top:1px solid var(--dropdown-color-hr)}.k-counter{font-size:var(--text-xs);color:var(--color-text)}.k-counter[data-theme]{color:var(--theme-color-text)}.k-counter-rules{color:var(--color-text-dimmed);padding-inline-start:.5rem}.k-field[data-disabled=true]{cursor:not-allowed}.k-field[data-disabled=true] *{pointer-events:none}.k-field[data-disabled=true] .k-text[data-theme=help] *{pointer-events:initial}.k-field-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-6);position:relative;margin-bottom:var(--spacing-2)}.k-field-options,.k-field-buttons{flex-shrink:0}.k-field:focus-within>.k-field-header>.k-field-counter{display:block}.k-field-footer{margin-top:var(--spacing-2)}.k-fieldset{border:0}.k-form-submitter{display:none}.k-form-controls-dropdown{max-width:15rem}.k-form-controls-dropdown p{line-height:var(--leading-normal);padding:var(--spacing-1) var(--spacing-2)}.k-form-controls-dropdown dl div{padding:var(--spacing-1) var(--spacing-2);line-height:var(--leading-normal);display:flex;align-items:center;gap:.75rem;color:var(--color-gray-500)}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--input-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--input-color-border: var(--color-border);--input-color-description: var(--color-text-dimmed);--input-color-icon: currentColor;--input-color-placeholder: var(--color-gray-600);--input-color-text: currentColor;--input-font-family: var(--font-sans);--input-font-size: var(--text-sm);--input-height: 2.25rem;--input-leading: 1;--input-outline-focus: var(--outline);--input-padding: var(--spacing-2);--input-padding-multiline: .475rem var(--input-padding);--input-rounded: var(--rounded);--input-shadow: none}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--input-color-back: var(--csstools-light-dark-toggle--0, var(--color-white))}}@supports (color: light-dark(red,red)){:root{--input-color-back: light-dark(var(--color-white), var(--color-gray-850))}}@media(pointer:coarse){:root{--input-font-size: var(--text-md);--input-padding-multiline: .375rem var(--input-padding)}}.k-input{display:flex;align-items:center;line-height:var(--input-leading);border:0;background:var(--input-color-back);border-radius:var(--input-rounded);outline:1px solid var(--input-color-border);color:var(--input-color-text);min-height:var(--input-height);box-shadow:var(--input-shadow);font-family:var(--input-font-family);font-size:var(--input-font-size)}.k-input:focus-within{outline:var(--input-outline-focus)}.k-input-element{flex-grow:1;min-width:0}.k-input-icon{color:var(--input-color-icon);display:flex;justify-content:center;align-items:center;width:var(--input-height)}.k-input-icon-button{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.k-input-description{color:var(--input-color-description);padding-inline:var(--input-padding)}.k-input-before{padding-inline-end:0}.k-input-after{padding-inline-start:0}.k-input :where(.k-input-description,.k-input-icon){align-self:stretch;display:flex;align-items:center;flex-shrink:0}.k-input[data-disabled=true]{--input-color-back: var(--panel-color-back);--input-color-icon: var(--color-gray-600);pointer-events:none}.k-block-title{display:flex;align-items:top;min-width:0;padding-inline-end:.75rem;gap:var(--spacing-2);flex-shrink:1}.k-block-title-text{display:flex;flex-shrink:1;flex-wrap:wrap;min-width:0;gap:var(--spacing-2)}.k-block-name,.k-block-label{line-height:1.25;overflow:hidden;min-width:0;white-space:wrap;text-overflow:ellipsis}.k-block-label{color:var(--color-text-dimmed)}.k-block-icon{--icon-color: var(--color-gray-600);width:1rem}.k-block-type-default .k-block-title{line-height:1.5em}.k-block-options{--toolbar-size: 30px;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-900);border:1px solid var(--csstools-light-dark-toggle--0, var(--color-border));box-shadow:var(--shadow-xl)}@supports (color: light-dark(red,red)){.k-block-options{border:1px solid light-dark(var(--color-border),var(--color-gray-900))}}.k-block-options>.k-button:not(:last-of-type){border-inline-end:1px solid var(--toolbar-border)}.k-block-options .k-dropdown-content{margin-top:.5rem}.k-block-container{position:relative;padding:var(--spacing-3);background:var(--block-color-back);border-radius:var(--rounded)}.k-block-container:not(:last-of-type){border-bottom:1px dashed var(--panel-color-back)}.k-block-container:focus{outline:0}.k-block-container[data-selected=true]{z-index:2;outline:var(--outline);border-bottom-color:transparent}.k-block-container[data-batched=true]:after{position:absolute;inset:0;content:"";background:#b1c2d82d;mix-blend-mode:multiply}.k-block-container .k-block-options{display:none;position:absolute;top:0;inset-inline-end:var(--spacing-3);margin-top:calc(-1.75rem + 2px)}.k-block-container[data-last-selected=true]>.k-block-options{display:flex}.k-block-container[data-hidden=true] .k-block{opacity:.25}.k-drawer-options .k-drawer-option[data-disabled=true]{vertical-align:middle;display:inline-grid}.k-block-container[data-disabled=true]{background:var(--panel-color-back)}.k-block-container:is(.k-sortable-ghost,.k-sortable-fallback) .k-block{position:relative;max-height:4rem;overflow:hidden}.k-block-container:is(.k-sortable-ghost,.k-sortable-fallback) .k-block:after{position:absolute;bottom:0;content:"";height:2rem;width:100%;background:linear-gradient(to top,var(--block-color-back),transparent)}:root{--block-color-back: var(--item-color-back)}.k-blocks{border-radius:var(--rounded)}.k-blocks:not(:has(>.k-blocks-list:empty),[data-disabled=true]){background:var(--block-color-back);box-shadow:var(--shadow)}.k-blocks[data-disabled=true]:not([data-empty=true]){border:1px solid var(--input-color-border)}.k-blocks-list[data-multi-select-key=true]>.k-block-container *{pointer-events:none}.k-blocks-list[data-multi-select-key=true]>.k-block-container .k-blocks *{pointer-events:all}.k-blocks .k-sortable-ghost{outline:2px solid var(--color-focus);box-shadow:#11111140 0 5px 10px;cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}.k-blocks>.k-blocks-empty{display:flex;align-items:center}.k-blocks>.k-blocks-list:not(:empty)+.k-blocks-empty{display:none}.k-block-importer .k-dialog-body{padding:0}.k-block-importer label{display:block;padding:var(--spacing-6) var(--spacing-6) 0;color:var(--color-text-dimmed);line-height:var(--leading-normal)}.k-block-importer label small{display:block;font-size:inherit}.k-block-importer textarea{width:100%;height:20rem;background:none;font:inherit;color:var(--color-white);border:0;padding:var(--spacing-6);resize:none}.k-block-importer textarea:focus{outline:0}.k-block-selector .k-headline{margin-bottom:1rem}.k-block-selector details+details{margin-top:var(--spacing-6)}.k-block-selector summary{font-size:var(--text-xs);cursor:pointer;color:var(--color-text-dimmed)}.k-block-selector details:only-of-type summary{pointer-events:none}.k-block-selector summary:focus{outline:0}.k-block-selector summary:focus-visible{color:var(--color-focus)}.k-block-types{display:grid;grid-gap:2px;margin-top:.75rem;grid-template-columns:repeat(1,1fr)}.k-block-types .k-button{--button-color-icon: var(--color-text);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--button-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--button-padding: var(--spacing-3);width:100%;justify-content:start;gap:1rem;box-shadow:var(--shadow)}@supports not (color: light-dark(tan,tan)){.k-block-types .k-button *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--button-color-back: var(--csstools-light-dark-toggle--0, var(--color-white))}}@supports (color: light-dark(red,red)){.k-block-types .k-button{--button-color-back: light-dark(var(--color-white), var(--color-gray-850))}}.k-block-types .k-button[aria-disabled=true]{opacity:var(--opacity-disabled);--button-color-back: transparent;box-shadow:none}.k-clipboard-hint{padding-top:1.5rem;line-height:var(--leading-normal);font-size:var(--text-xs);color:var(--color-text-dimmed)}.k-clipboard-hint small{display:block;font-size:inherit;color:var(--color-text-dimmed)}.k-block-background-dropdown>.k-button{--color-frame-rounded: 0;--color-frame-size: 1.5rem;--button-height: 1.5rem;--button-padding: 0 .125rem;--button-color-back: var(--block-color-back);gap:.25rem;box-shadow:var(--shadow-toolbar);border:1px solid var(--button-color-back);overflow:clip}.k-block-background-dropdown .k-color-frame{border-right:1px solid var(--color-border)}.k-block-background-dropdown .k-color-frame:after{box-shadow:none}.k-block .k-block-background-dropdown{position:absolute;inset-inline-end:var(--spacing-3);bottom:var(--spacing-3);opacity:0;transition:opacity .2s ease-in-out}.k-block:hover .k-block-background-dropdown{opacity:1}.k-block-figure:not([data-empty=true]){--block-figure-back: var(--block-color-back);background:var(--block-figure-back)}.k-block-figure-container:not([data-disabled=true]){cursor:pointer}.k-block-figure iframe{border:0;pointer-events:none;background:var(--color-black)}.k-block-figure figcaption{padding-top:.5rem;color:var(--color-text-dimmed);font-size:var(--text-sm);text-align:center}.k-block-figure-empty{--button-width: 100%;--button-height: 6rem;--button-color-text: var(--color-text-dimmed);--button-color-back: var(--panel-color-back)}.k-block-figure-empty,.k-block-figure-container>*{border-radius:var(--rounded-sm)}.k-block-figure-caption{display:flex;justify-content:center;padding-top:var(--spacing-3)}.k-block-figure-caption .k-writer{width:max-content;text-align:center}.k-block-figure-caption .k-writer .k-text{color:var(--color-gray-600);font-size:var(--text-sm);mix-blend-mode:exclusion}.k-block-type-code-editor{position:relative}.k-block-type-code-editor .k-input{--input-color-border: none;--input-color-back: var(--color-black);--input-color-text: var(--color-white);--input-font-family: var(--font-mono);--input-outline-focus: none;--input-padding: var(--spacing-3);--input-padding-multiline: var(--input-padding)}.k-block-type-code-editor .k-input[data-type=textarea]{white-space:pre-wrap}.k-block-type-code-editor-language{--input-font-size: var(--text-xs);position:absolute;inset-inline-end:0;bottom:0}.k-block-type-code-editor-language .k-input-element{padding-inline-start:1.5rem}.k-block-type-code-editor-language .k-input-icon{inset-inline-start:0}.k-block-container.k-block-container-type-fields{padding-block:0}.k-block-container:not([data-hidden=true]) .k-block-type-fields>:not([data-collapsed=true]){padding-bottom:var(--spacing-3)}.k-block-type-fields-header{display:flex;flex-wrap:wrap;justify-content:space-between}.k-block-type-fields-header .k-block-title{padding-block:var(--spacing-3);cursor:pointer;white-space:nowrap}.k-block-type-fields-form{background-color:var(--panel-color-back);padding:var(--spacing-6) var(--spacing-6) var(--spacing-8);border-radius:var(--rounded-sm);container:column / inline-size}.k-block-container-type-fields[data-hidden=true] :where(.k-drawer-tabs,.k-block-type-fields-form){display:none}.k-block-type-fields-header .k-drawer-tabs.k-tabs .k-tabs-button{bottom:-2px}.k-block-container.k-block-container-type-gallery{padding:0}.k-block-type-gallery-figure{padding:var(--spacing-3);border-radius:var(--rounded)}.k-block-type-gallery-figure:not([data-empty=true]){background:var(--block-back)}.k-block-type-gallery-figure ul{display:grid;grid-gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));line-height:0;align-items:center;justify-content:center}.k-block-type-gallery:not([data-disabled=true]) .k-block-type-gallery-figure ul{cursor:pointer}.k-block-type-gallery-frame{border-radius:var(--rounded-sm)}.k-block-type-gallery[data-disabled=true] .k-block-type-gallery-placeholder{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);background:var(--csstools-light-dark-toggle--0, var(--color-gray-250))}@supports (color: light-dark(red,red)){.k-block-type-gallery[data-disabled=true] .k-block-type-gallery-placeholder{background:light-dark(var(--color-gray-250),var(--color-gray-950))}}.k-block-type-gallery-placeholder{background:var(--panel-color-back)}.k-block-type-heading-input{display:flex;align-items:center;line-height:1.25em;font-size:var(--text-size);font-weight:var(--font-bold)}.k-block-type-heading-input[data-level=h1]{--text-size: var(--text-3xl);line-height:1.125em}.k-block-type-heading-input[data-level=h2]{--text-size: var(--text-2xl)}.k-block-type-heading-input[data-level=h3]{--text-size: var(--text-xl)}.k-block-type-heading-input[data-level=h4]{--text-size: var(--text-lg)}.k-block-type-heading-input[data-level=h5]{--text-size: var(--text-md);line-height:1.5em}.k-block-type-heading-input[data-level=h6]{--text-size: var(--text-sm);line-height:1.5em}.k-block-type-heading-input .k-writer-input .ProseMirror strong{font-weight:700}.k-block-type-heading-level{--input-color-back: transparent;--input-color-border: none;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-500);--input-color-text: var(--csstools-light-dark-toggle--0, var(--color-gray-600));font-weight:var(--font-bold);text-transform:uppercase}@supports not (color: light-dark(tan,tan)){.k-block-type-heading-level *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-500);--input-color-text: var(--csstools-light-dark-toggle--0, var(--color-gray-600))}}@supports (color: light-dark(red,red)){.k-block-type-heading-level{--input-color-text: light-dark(var(--color-gray-600), var(--color-gray-500))}}.k-block-container.k-block-container-type-image{padding:0}.k-block-type-image .k-block-figure{padding:var(--spacing-3);border-radius:var(--rounded)}.k-block-type-image .k-block-figure-container{text-align:center;line-height:0}.k-block-type-image .k-block-figure[data-empty=true]{padding:var(--spacing-3)}.k-block-type-image-auto{max-width:100%;max-height:30rem;margin-inline:auto}.k-block-type-image .k-background-dropdown{position:absolute;inset-inline-end:var(--spacing-3);bottom:var(--spacing-3);opacity:0;transition:opacity .2s ease-in-out}.k-block-type-image:hover .k-background-dropdown{opacity:1}.k-block-type-line hr{margin-block:.75rem;border:0;border-top:1px solid var(--color-border)}.k-block-type-list-input{--input-color-back: transparent;--input-color-border: none;--input-outline-focus: none}.k-block-type-markdown-input{--input-color-back: var(--panel-color-back);--input-color-border: none;--input-outline-focus: none;--input-padding-multiline: var(--spacing-3)}.k-block-type-quote-editor{padding-inline-start:var(--spacing-3);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-border);border-inline-start:2px solid var(--csstools-light-dark-toggle--0, var(--color-black))}@supports (color: light-dark(red,red)){.k-block-type-quote-editor{border-inline-start:2px solid light-dark(var(--color-black),var(--color-border))}}.k-block-type-quote-text{font-size:var(--text-xl);margin-bottom:var(--spacing-1);line-height:1.25em}.k-block-type-quote-citation{font-style:italic;color:var(--color-text-dimmed)}.k-block-type-table-preview{cursor:pointer;border:1px solid var(--color-border);border-spacing:0;border-radius:var(--rounded-sm)}.k-block-type-table-preview :where(th,td){text-align:start;line-height:1.5em;font-size:var(--text-sm)}.k-block-type-table-preview th{padding:.5rem .75rem}.k-block-type-table-preview td:not(.k-table-index-column){padding:0 .75rem}.k-block-type-table-preview td>*,.k-block-type-table-preview td [class$=-field-preview]{padding:0}.k-block-type-text-input{line-height:1.5;height:100%}.k-block-container.k-block-container-type-text{padding:0}.k-block-type-text-input.k-writer-input[data-toolbar-inline=true]{padding:var(--spacing-3)}.k-block-type-text-input.k-writer-input:not([data-toolbar-inline=true])>.ProseMirror,.k-block-type-text-input.k-writer-input:not([data-toolbar-inline=true])[data-placeholder][data-empty=true]:before{padding:var(--spacing-3) var(--spacing-6)}.k-block-type-text-input.k-textarea-input .k-textarea-input-native{padding:var(--input-padding-multiline)}.k-block-type-video-figure video{pointer-events:none}.k-blocks-field{position:relative}.k-blocks-field>footer{display:flex;justify-content:center;margin-top:var(--spacing-3)}.k-string-input{padding:var(--input-padding);border-radius:var(--input-rounded)}.k-string-input:focus{outline:0}.k-string-input[data-font=monospace]{font-family:var(--font-mono)}.k-string-input:disabled::placeholder{opacity:0}.k-color-field{--color-frame-size: calc(var(--input-height) - var(--spacing-2))}.k-color-field .k-input-before{align-items:center;padding-inline-start:var(--spacing-1)}.k-color-field-options{--color-frame-size: var(--input-height)}.k-color-field-picker{padding:var(--spacing-3)}.k-color-field-picker-toggle{--color-frame-rounded: var(--rounded-sm);border-radius:var(--color-frame-rounded)}.k-color-field .k-colorname-input{padding-inline:var(--input-padding)}.k-color-field .k-colorname-input:focus{outline:0}.k-date-input:disabled::placeholder{opacity:0}.k-date-field-body{display:grid;gap:var(--spacing-2)}@container (min-width: 20rem){.k-date-field-body[data-has-time=true]{grid-template-columns:1fr minmax(6rem,9rem)}}.k-entries-field-items{display:flex;flex-direction:column;gap:2px}.k-entries-field-item{height:var(--input-height);display:flex;align-items:center;background:var(--input-color-back);border-radius:var(--rounded)}.k-entries-field:not([data-disabled=true]) .k-entries-field-item{--input-color-border: transparent;box-shadow:var(--shadow)}.k-entries-field-item-sort-handle.k-button{--button-height: var(--input-height);--button-width: var(--input-height)}.k-entries-field-item-input{flex-grow:1;border-inline:1px solid var(--panel-color-back)}.k-entries-field-item-options .k-button{--button-height: 100%;--button-width: var(--input-height)}@container (max-width: 30rem){.k-entries-field-item-options>.k-button:not(:last-of-type){display:none}}.k-entries-field-item-options .k-button:has(+.k-button){border-right:1px solid var(--panel-color-back)}.k-entries-field-item.k-sortable-ghost{outline:var(--outline);cursor:grabbing}.k-entries-field-item.k-sortable-fallback{display:none}.k-entries-field-footer{display:flex;justify-content:center;margin-top:var(--spacing-3)}.k-models-field[data-disabled=true] .k-item *{pointer-events:all!important}.k-headline-field{position:relative;padding-top:1.5rem}.k-fieldset>.k-grid .k-column:first-child .k-headline-field{padding-top:0}.k-headline-field h2.k-headline{font-weight:var(--font-normal)}.k-headline-field footer{margin-top:var(--spacing-2)}.k-info-field .k-headline{padding-bottom:.75rem;line-height:1.25rem}.k-layout-column{position:relative;height:100%;display:flex;flex-direction:column;min-height:6rem}.k-layout-column:focus{outline:0}.k-layout-column>.k-blocks{box-shadow:none;padding:0;height:100%;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);background:var(--csstools-light-dark-toggle--0, var(--color-white));min-height:4rem}@supports (color: light-dark(red,red)){.k-layout-column>.k-blocks{background:light-dark(var(--color-white),var(--color-gray-850))}}.k-layout-column>.k-blocks[data-empty=true]{min-height:6rem}.k-layout-column>.k-blocks>.k-blocks-list{display:flex;flex-direction:column;height:100%}.k-layout-column>.k-blocks>.k-blocks-list>.k-block-container:last-of-type{flex-grow:1}.k-layout-column>.k-blocks>.k-blocks-list+.k-blocks-empty.k-box{--box-color-back: transparent;position:absolute;inset:0;justify-content:center;opacity:0;transition:opacity .3s;border:0}.k-layout-column>.k-blocks>.k-blocks-list+.k-blocks-empty:hover{opacity:1}.k-layout{--layout-border-color: var(--color-gray-300);--layout-toolbar-width: 2rem;position:relative}.k-layout:not([data-disabled=true]){padding-inline-end:var(--layout-toolbar-width);box-shadow:var(--shadow)}.k-layout:not(:last-of-type){margin-bottom:var(--spacing-2)}.k-layout:focus{outline:0}.k-layout:is(.k-sortable-ghost,.k-sortable-fallback){position:relative;max-height:6rem;overflow:hidden}.k-layout:is(.k-sortable-ghost,.k-sortable-fallback):after{position:absolute;bottom:0;content:"";height:2rem;width:100%;background:linear-gradient(to top,var(--block-color-back),transparent)}.k-layout-toolbar{position:absolute;inset-block:0;inset-inline-end:0;width:var(--layout-toolbar-width);display:flex;flex-direction:column;align-items:center;padding-bottom:var(--spacing-2);font-size:var(--text-sm);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);background:var(--csstools-light-dark-toggle--0, var(--color-gray-100));border-inline-start:1px solid var(--panel-color-back);color:var(--color-gray-500);border-radius:var(--rounded)}@supports (color: light-dark(red,red)){.k-layout-toolbar{background:light-dark(var(--color-gray-100),var(--color-gray-850))}}.k-layout-toolbar:hover{--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-white);color:var(--csstools-light-dark-toggle--1, var(--color-black))}@supports (color: light-dark(red,red)){.k-layout-toolbar:hover{color:light-dark(var(--color-black),var(--color-white))}}.k-layout-toolbar-button{width:var(--layout-toolbar-width);height:var(--layout-toolbar-width)}.k-layout-columns.k-grid{grid-gap:1px;background:var(--panel-color-back)}.k-layout:not(:first-child) .k-layout-columns.k-grid{border-top:0}.k-layouts .k-sortable-ghost{position:relative;box-shadow:#11111140 0 5px 10px;outline:2px solid var(--color-focus);cursor:grabbing;z-index:1}.k-layout-field>footer{display:flex;justify-content:center;margin-top:var(--spacing-3)}.k-line-field{position:relative;border:0;height:3rem;width:auto}.k-line-field:after{position:absolute;content:"";top:50%;margin-top:-1px;inset-inline:0;height:1px;background:var(--color-border)}.k-link-input-header{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:.25rem;height:var(--input-height);grid-area:header}.k-link-input-toggle.k-button{--button-height: var(--height-sm);--button-rounded: var(--rounded-sm);--button-color-back: var(--panel-color-back);margin-inline-start:.25rem}.k-link-input-model{display:flex;justify-content:space-between;margin-inline-end:var(--spacing-1)}.k-link-input-model-placeholder.k-button{--button-align: flex-start;--button-color-text: var(--color-gray-600);--button-height: var(--height-sm);--button-padding: var(--spacing-2);--button-rounded: var(--rounded-sm);flex-grow:1;overflow:hidden;white-space:nowrap;align-items:center}.k-link-field .k-link-field-preview{--tag-height: var(--height-sm);padding-inline:0}.k-link-field .k-link-field-preview .k-tag:focus{outline:0}.k-link-field .k-link-field-preview .k-tag:focus-visible{outline:var(--outline)}.k-link-field .k-link-field-preview .k-tag-text{font-size:var(--text-sm)}.k-link-input-model-toggle{align-self:center;--button-height: var(--height-sm);--button-width: var(--height-sm);--button-rounded: var(--rounded-sm)}.k-link-input-body{display:grid;overflow:hidden;border-top:1px solid var(--color-border);background:var(--input-color-back);--tree-color-back: var(--input-color-back);--tree-branch-color-back: var(--input-color-back);--tree-branch-hover-color-back: var(--panel-color-back)}.k-link-input-body[data-type=page] .k-page-browser{padding:var(--spacing-2);padding-bottom:calc(var(--spacing-2) - 1px);width:100%;container-type:inline-size;overflow:auto}.k-link-field .k-tags-field-preview{--tag-rounded: var(--rounded-sm);--tag-size: var(--height-sm);padding-inline:0}.k-link-field[data-disabled=true] .k-link-input-model-placeholder{display:none}.k-link-field[data-disabled=true] input::placeholder{opacity:0}.k-writer-input{position:relative;width:100%;display:grid;grid-template-areas:"content";gap:var(--spacing-1)}.k-writer-input .ProseMirror{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;font-variant-ligatures:none;grid-area:content;padding:var(--input-padding-multiline)}.k-writer-input .ProseMirror:focus{outline:0}.k-writer-input .ProseMirror *{caret-color:currentColor}.k-writer-input .ProseMirror hr.ProseMirror-selectednode{outline:var(--outline)}.k-writer-input[data-placeholder][data-empty=true]:before{grid-area:content;content:attr(data-placeholder);color:var(--input-color-placeholder);pointer-events:none;white-space:pre-wrap;word-wrap:break-word;line-height:var(--text-line-height);padding:var(--input-padding-multiline)}.k-list-input.k-writer-input[data-placeholder][data-empty=true]:before{padding-inline-start:2.5em}.k-list-field .k-list-input .ProseMirror,.k-list-field .k-list-input:before{padding:.475rem .5rem .475rem .75rem}:root{--tag-color-back: var(--color-gray-950);--tag-color-text: var(--color-white);--tag-color-toggle: currentColor;--tag-color-disabled-back: var(--color-gray-600);--tag-color-disabled-text: var(--tag-color-text);--tag-height: var(--height-xs);--tag-rounded: var(--rounded-sm);--tag-text-size: var(--text-sm)}.k-tag[data-theme=light]{--tag-color-back: var(--panel-color-back);--tag-color-text: var(--color-text);--tag-color-disabled-back: var(--color-gray-200);--tag-color-disabled-text: var(--color-gray-600)}.k-tag{position:relative;height:var(--tag-height);max-width:100%;display:flex;align-items:center;justify-content:space-between;font-size:var(--tag-text-size);line-height:1;color:var(--tag-color-text);background-color:var(--tag-color-back);border-radius:var(--tag-rounded);-webkit-user-select:none;user-select:none}button.k-tag:not([aria-disabled=true]){cursor:pointer}.k-tag:not([aria-disabled=true]):focus{outline:var(--outline)}.k-tag-image{height:100%;border-radius:var(--rounded-xs);overflow:hidden;flex-shrink:0;border-radius:0;border-start-start-radius:var(--tag-rounded);border-end-start-radius:var(--tag-rounded);background-clip:padding-box}.k-tag-text{padding-inline:var(--spacing-2);line-height:var(--leading-tight);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.k-tag:has(.k-tag-icon) .k-tag-text{padding-inline-start:0}.k-tag:has(.k-tag-toggle) .k-tag-text{padding-inline-end:0}.k-tag-toggle{--icon-size: 14px;width:var(--tag-height);height:var(--tag-height);filter:brightness(70%);flex-shrink:0}.k-tag-toggle:hover{filter:brightness(100%)}.k-tag:where([aria-disabled=true]){background-color:var(--tag-color-disabled-back);color:var(--tag-color-disabled-text);cursor:not-allowed}.k-tag:where([aria-disabled=true]) .k-tag-image{opacity:var(--opacity-disabled)}:root{--tags-gap: .375rem}.k-tags{display:inline-flex;max-width:100%;gap:var(--tags-gap);align-items:center;flex-wrap:wrap}.k-tags .k-sortable-ghost{outline:var(--outline)}.k-tags[data-layout=list],.k-tags[data-layout=list] .k-tag{width:100%}.k-tags.k-draggable .k-tag-text{cursor:grab}.k-tags.k-draggable .k-tag-text:active{cursor:grabbing}.k-multiselect-input{padding:var(--tags-gap);cursor:pointer}.k-multiselect-input-toggle.k-button{opacity:0}.k-tags-input{padding:var(--tags-gap)}.k-tags-input[data-can-add=true]{cursor:pointer}.k-tags-input-toggle.k-button{--button-color-text: var(--input-color-placeholder);opacity:0}.k-tags-input-toggle.k-button:focus{--button-color-text: var(--input-color-text)}.k-tags-input:focus-within .k-tags-input-toggle{opacity:1}.k-tags-input .k-picklist-dropdown{margin-top:var(--spacing-1)}.k-tags-input .k-picklist-dropdown .k-choice-input:focus-within{outline:var(--outline)}.k-number-input{padding:var(--input-padding);border-radius:var(--input-rounded)}.k-number-input:focus{outline:0}.k-number-input:disabled::placeholder{opacity:0}.k-table.k-object-field-table{table-layout:auto}.k-table.k-object-field-table tbody td{max-width:0}@container (max-width: 40rem){.k-object-field{overflow:hidden}.k-object-field-table.k-table tbody :where(th):is([data-mobile=true]){width:1px!important;white-space:normal;word-break:normal}}.k-range-input{--range-track-height: 1px;--range-tooltip-back: var(--color-black);display:flex;align-items:center;border-radius:var(--range-track-height)}.k-range-input input[type=range]:focus{outline:0}.k-range-input-tooltip{position:relative;display:flex;align-items:center;color:var(--color-white);font-size:var(--text-xs);font-variant-numeric:tabular-nums;line-height:1;text-align:center;border-radius:var(--rounded-sm);background:var(--range-tooltip-back);margin-inline-start:var(--spacing-3);padding:0 var(--spacing-1);white-space:nowrap}.k-range-input-tooltip:after{position:absolute;top:50%;inset-inline-start:-3px;width:0;height:0;transform:translateY(-50%);border-block:3px solid transparent;border-inline-end:3px solid var(--range-tooltip-back);content:""}.k-range-input-tooltip>*{padding:var(--spacing-1)}.k-range-input-tooltip-text{font-family:var(--font-mono);width:calc(var(--digits) + var(--spacing-1) * 2);text-align:right}.k-range-input[data-disabled=true]{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--range-tooltip-back: var(--csstools-light-dark-toggle--0, var(--color-gray-600))}@supports not (color: light-dark(tan,tan)){.k-range-input[data-disabled=true] *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--range-tooltip-back: var(--csstools-light-dark-toggle--0, var(--color-gray-600))}}@supports (color: light-dark(red,red)){.k-range-input[data-disabled=true]{--range-tooltip-back: light-dark( var(--color-gray-600), var(--color-gray-850) )}}.k-input[data-type=range] .k-range-input{padding-inline:var(--input-padding)}.k-select-input{position:relative;display:block;overflow:hidden;padding:var(--input-padding);border-radius:var(--input-rounded)}.k-select-input[data-empty=true]{color:var(--input-color-placeholder)}.k-select-input-native{position:absolute;inset:0;opacity:0;z-index:1}.k-select-input-native[disabled]{cursor:default}.k-input[data-type=select]{position:relative}.k-input[data-type=select] .k-input-icon{position:absolute;inset-block:0;inset-inline-end:0}.k-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));grid-auto-rows:1fr;grid-gap:var(--spacing-2px)}.k-stats[data-size=small]{--stat-value-text-size: var(--text-md)}.k-stats[data-size=medium]{--stat-value-text-size: var(--text-xl)}.k-stats[data-size=large]{--stat-value-text-size: var(--text-2xl)}.k-stats[data-size=huge]{--stat-value-text-size: var(--text-3xl)}.k-structure-field td.k-table-column{cursor:pointer}.k-structure-field .k-table+footer{display:flex;justify-content:center;margin-top:var(--spacing-3)}.k-structure-field[data-disabled=true]{cursor:initial}.k-structure-field[data-disabled=true] *{pointer-events:initial}.k-field-counter{display:none}.k-text-field:focus-within .k-field-counter{display:block}.k-toolbar.k-textarea-toolbar{border-end-start-radius:0;border-end-end-radius:0;border-bottom:1px solid var(--toolbar-border)}.k-toolbar.k-textarea-toolbar>.k-button:first-child{border-end-start-radius:0}.k-toolbar.k-textarea-toolbar>.k-button:last-child{border-end-end-radius:0}.k-textarea-input[data-size=small]{--textarea-size: 7.5rem}.k-textarea-input[data-size=medium]{--textarea-size: 15rem}.k-textarea-input[data-size=large]{--textarea-size: 30rem}.k-textarea-input[data-size=huge]{--textarea-size: 45rem}.k-textarea-input-wrapper{position:relative;display:block}.k-textarea-input-native{resize:none;min-height:var(--textarea-size)}.k-textarea-input-native:focus{outline:0}.k-textarea-input-native[data-font=monospace]{font-family:var(--font-mono)}.k-textarea-input-native:disabled::placeholder{opacity:0}.k-input[data-type=textarea] .k-input-element{min-width:0}.k-input[data-type=textarea] .k-textarea-input-native{padding:var(--input-padding-multiline)}.k-time-input:disabled::placeholder{opacity:0}.k-choice-input{display:flex;gap:var(--spacing-3);min-width:0}.k-choice-input-icon{--icon-size: var(--text-md);position:relative}.k-choice-input-icon,.k-choice-input input{top:2px}.k-choice-input-label{display:flex;flex-direction:column;min-width:0;line-height:1.25rem;color:var(--choice-color-text)}.k-choice-input-label>*{display:block;overflow:hidden;text-overflow:ellipsis}.k-choice-input-label-icon{grid-area:icon;--icon-size: var(--text-md)}.k-choice-input-label-info{grid-area:info;color:var(--choice-color-info)}.k-choice-input[aria-disabled=true]{cursor:not-allowed}:where(.k-checkboxes-field,.k-radio-field) .k-choice-input{min-height:var(--input-height);padding-block:var(--spacing-2);padding-inline:var(--spacing-3);border-radius:var(--input-rounded)}:where(.k-checkboxes-field,.k-radio-field):not([data-disabled=true]) .k-choice-input{background:var(--item-color-back);box-shadow:var(--shadow)}:where(.k-checkboxes-field,.k-radio-field)[data-disabled=true] .k-choice-input{border:1px solid var(--color-border)}.k-input[data-type=toggle]{--input-color-border: transparent;--input-shadow: var(--shadow)}.k-input[data-type=toggle] .k-input-before{padding-inline-end:calc(var(--input-padding) / 2)}.k-input[data-type=toggle] .k-toggle-input{padding-inline-start:var(--input-padding)}.k-input[data-type=toggle][data-disabled=true]{box-shadow:none;border:1px solid var(--color-border)}.k-input[data-type=toggles]{display:inline-flex}.k-input[data-type=toggles].grow{display:flex}.k-input[data-type=toggles]:has(.k-empty){outline:0;display:flex}.k-toggles-input ul{display:grid;grid-template-columns:repeat(var(--options),minmax(0,1fr));gap:1px;border-radius:var(--rounded);line-height:1;background:var(--color-border);overflow:hidden}.k-toggles-input li{height:var(--field-input-height)}.k-toggles-input label{align-items:center;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);background:var(--csstools-light-dark-toggle--0, var(--color-white));cursor:pointer;display:flex;font-size:var(--text-sm);justify-content:center;line-height:1.25;padding:0 var(--spacing-3);height:100%}@supports (color: light-dark(red,red)){.k-toggles-input label{background:light-dark(var(--color-white),var(--color-gray-850))}}.k-toggles-input input:checked+label{--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-950);background:var(--csstools-light-dark-toggle--1, var(--color-black));color:var(--color-white)}@supports (color: light-dark(red,red)){.k-toggles-input input:checked+label{background:light-dark(var(--color-black),var(--color-gray-950))}}.k-toggles-input input:focus:not(:checked)+label{--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-blue-800);background:var(--csstools-light-dark-toggle--2, var(--color-blue-300))}@supports (color: light-dark(red,red)){.k-toggles-input input:focus:not(:checked)+label{background:light-dark(var(--color-blue-300),var(--color-blue-800))}}.k-toggles-input input[disabled]:checked+label{--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-850);background:var(--csstools-light-dark-toggle--3, var(--color-gray-600))}@supports (color: light-dark(red,red)){.k-toggles-input input[disabled]:checked+label{background:light-dark(var(--color-gray-600),var(--color-gray-850))}}.k-toggles-input input[disabled]:not(:checked)+label{color:var(--color-text-dimmed);background:var(--panel-color-back)}.k-toggles-input .k-icon+.k-toggles-text{margin-inline-start:var(--spacing-2)}.k-alpha-input{--range-track-back: linear-gradient(to right, transparent, currentColor);--range-track-height: var(--range-thumb-size);color:#000;background:#fff var(--pattern-light)}.k-calendar-input{--button-height: var(--height-sm);--button-width: var(--button-height);--button-padding: 0;padding:var(--spacing-2);width:min-content}.k-calendar-table{table-layout:fixed;min-width:15rem}.k-calendar-input .k-button{justify-content:center}.k-calendar-input>nav{display:flex;direction:ltr;align-items:center;margin-bottom:var(--spacing-2)}.k-calendar-selects{flex-grow:1;display:flex;align-items:center;justify-content:center}[dir=ltr] .k-calendar-selects{direction:ltr}[dir=rtl] .k-calendar-selects{direction:rtl}.k-calendar-selects .k-select-input{display:flex;align-items:center;text-align:center;height:var(--button-height);padding:0 .5rem;border-radius:var(--input-rounded)}.k-calendar-selects .k-select-input:focus-within{outline:var(--outline)}.k-calendar-input th{padding-block:.5rem;color:var(--color-gray-500);font-size:var(--text-xs);text-align:center}.k-calendar-day{padding:2px}.k-calendar-day[aria-current=date] .k-button{text-decoration:underline}.k-calendar-day[aria-selected=date] .k-button,.k-calendar-day[aria-selected=date] .k-button:focus{--button-color-text: var(--color-text);--button-color-back: var(--color-blue-500)}.k-calendar-day[aria-selected=date] .k-button:focus-visible{outline-offset:2px}.k-calendar-today{padding-top:var(--spacing-2);text-align:center}.k-calendar-today .k-button{--button-width: auto;--button-padding: var(--spacing-3);font-size:var(--text-xs);text-decoration:underline}.k-coloroptions-input{--color-preview-size: var(--input-height)}.k-coloroptions-input ul{display:grid;grid-template-columns:repeat(auto-fill,var(--color-preview-size));gap:var(--spacing-2)}.k-coloroptions-input input:focus+.k-color-frame{outline:var(--outline)}.k-coloroptions-input[disabled] label{opacity:var(--opacity-disabled);cursor:not-allowed}.k-coloroptions-input input:checked+.k-color-frame{outline:1px solid var(--color-gray-600);outline-offset:2px}.k-colorpicker-input{--h: 0;--s: 0%;--l: 0%;--a: 1;--range-thumb-size: .75rem;--range-track-height: .75rem;display:flex;flex-direction:column;gap:var(--spacing-3);width:max-content}.k-colorpicker-input .k-coords-input{border-radius:var(--rounded-sm);aspect-ratio:1/1;background:linear-gradient(to bottom,transparent,#000),linear-gradient(to right,#fff,hsl(var(--h),100%,50%))}.k-colorpicker-input .k-alpha-input{color:hsl(var(--h),var(--s),var(--l))}.k-colorpicker-input .k-coloroptions-input ul{grid-template-columns:repeat(6,1fr)}.k-coords-input{position:relative;display:block!important}.k-coords-input-thumb{position:absolute;aspect-ratio:1/1;width:var(--range-thumb-size);background:var(--range-thumb-color);border-radius:var(--range-thumb-size);box-shadow:var(--range-thumb-shadow);transform:translate(-50%,-50%);cursor:move}.k-coords-input[data-empty=true] .k-coords-input-thumb{opacity:0}.k-coords-input-thumb:active{cursor:grabbing}.k-coords-input:focus-within{outline:var(--outline)}.k-coords-input[aria-disabled=true]{pointer-events:none;opacity:var(--opacity-disabled)}.k-coords-input .k-coords-input-thumb:focus{outline:var(--outline)}.k-hue-input{--range-track-back: linear-gradient( to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 16.67%, hsl(120, 100%, 50%) 33.33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 66.67%, hsl(320, 100%, 50%) 83.33%, hsl(360, 100%, 50%) 100% ) no-repeat;--range-track-height: var(--range-thumb-size)}.k-timeoptions-input{--button-height: var(--height-sm);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3)}.k-timeoptions-input h3{display:flex;align-items:center;padding-inline:var(--button-padding);height:var(--button-height);margin-bottom:var(--spacing-1)}.k-timeoptions-input hr{margin:var(--spacing-2) var(--spacing-3)}.k-timeoptions-input .k-button[aria-selected=time]{--button-color-text: var(--color-text);--button-color-back: var(--color-blue-500)}.k-layout-selector h3{margin-top:-.5rem;margin-bottom:var(--spacing-3)}.k-layout-selector-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-6)}@media screen and (min-width:65em){.k-layout-selector-options{grid-template-columns:repeat(var(--columns),1fr)}}.k-layout-selector-option{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) hsla(var(--color-gray-hs), 60%, 10%);--color-border: var(--csstools-light-dark-toggle--0, hsla(var(--color-gray-hs), 0%, 6%));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-950);--color-back: var(--csstools-light-dark-toggle--1, var(--color-white));border-radius:var(--rounded)}@supports not (color: light-dark(tan,tan)){.k-layout-selector-option *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) hsla(var(--color-gray-hs), 60%, 10%);--color-border: var(--csstools-light-dark-toggle--0, hsla(var(--color-gray-hs), 0%, 6%));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-950);--color-back: var(--csstools-light-dark-toggle--1, var(--color-white))}}@supports (color: light-dark(red,red)){.k-layout-selector-option{--color-border: light-dark( hsla(var(--color-gray-hs), 0%, 6%), hsla(var(--color-gray-hs), 60%, 10%) );--color-back: light-dark(var(--color-white), var(--color-gray-950))}}.k-layout-selector-option:focus-visible{outline:var(--outline);outline-offset:-1px}.k-layout-selector-option .k-grid{border:1px solid var(--color-border);gap:1px;grid-template-columns:repeat(var(--columns),1fr);cursor:pointer;background:var(--color-border);border-radius:var(--rounded);overflow:hidden;box-shadow:var(--shadow);height:5rem}.k-layout-selector-option .k-column{grid-column:span var(--span);background:var(--color-back);height:100%}.k-layout-selector-option:hover{--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-800);--color-border: var(--csstools-light-dark-toggle--2, var(--color-gray-500));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-900);--color-back: var(--csstools-light-dark-toggle--3, var(--color-gray-100))}@supports not (color: light-dark(tan,tan)){.k-layout-selector-option:hover *{--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-800);--color-border: var(--csstools-light-dark-toggle--2, var(--color-gray-500));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-900);--color-back: var(--csstools-light-dark-toggle--3, var(--color-gray-100))}}@supports (color: light-dark(red,red)){.k-layout-selector-option:hover{--color-border: light-dark(var(--color-gray-500), var(--color-gray-800));--color-back: light-dark(var(--color-gray-100), var(--color-gray-900))}}.k-layout-selector-option[aria-current=true]{--color-border: var(--color-focus);--color-back: var(--color-blue-300)}.k-tags-field-preview{--tags-gap: .25rem;--tag-text-size: var(--text-xs);padding:.375rem var(--table-cell-padding);overflow:hidden}.k-tags-field-preview .k-tags{flex-wrap:nowrap}.k-bubbles{display:flex;gap:.25rem}.k-bubbles-field-preview{--bubble-back: var(--panel-color-back);--bubble-text: var(--color-text);padding:.375rem var(--table-cell-padding);overflow:hidden}.k-bubbles-field-preview .k-bubbles{gap:.375rem}.k-color-field-preview{--color-frame-rounded: var(--tag-rounded);--color-frame-size: var(--tag-height);padding:.375rem var(--table-cell-padding);display:flex;align-items:center;gap:var(--spacing-2)}.k-text-field-preview{padding:.325rem .75rem;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.k-url-field-preview{padding-inline:var(--table-cell-padding)}.k-url-field-preview[data-link=true]{color:var(--link-color)}.k-url-field-preview a{display:inline-flex;align-items:center;height:var(--height-xs);padding-inline:var(--spacing-1);margin-inline:calc(var(--spacing-1) * -1);border-radius:var(--rounded);max-width:100%;min-width:0}.k-url-field-preview a>*{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-decoration:underline;text-underline-offset:var(--link-underline-offset)}.k-url-field-preview a:hover{color:var(--link-color-hover)}.k-flag-field-preview{--button-height: var(--table-row-height);--button-width: 100%;outline-offset:-2px}.k-html-field-preview{padding:.375rem var(--table-cell-padding);overflow:hidden;text-overflow:ellipsis}.k-image-field-preview{height:100%}.k-link-field-preview{--tag-height: var(--height-xs);--tag-color-back: var(--panel-color-back);--tag-color-text: currentColor;--tag-color-toggle: var(--tag-color-text);--tag-color-toggle-border: var(--color-gray-300);--tag-color-focus-back: var(--tag-color-back);--tag-color-focus-text: var(--tag-color-text);padding-inline:var(--table-cell-padding);min-width:0}.k-link-field-preview .k-tag{min-width:0;max-width:100%}.k-link-field-preview .k-tag-text{font-size:var(--text-xs);min-width:0}.k-toggle-field-preview{padding-inline:var(--table-cell-padding)}:root{--toolbar-size: var(--height);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-white);--toolbar-text: var(--csstools-light-dark-toggle--0, var(--color-black));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--toolbar-back: var(--csstools-light-dark-toggle--1, var(--color-white));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-750);--toolbar-hover: var(--csstools-light-dark-toggle--2, var(--color-gray-200));--toolbar-border: var(--panel-color-back);--toolbar-current: var(--color-focus)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-white);--toolbar-text: var(--csstools-light-dark-toggle--0, var(--color-black));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--toolbar-back: var(--csstools-light-dark-toggle--1, var(--color-white));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-750);--toolbar-hover: var(--csstools-light-dark-toggle--2, var(--color-gray-200))}}@supports (color: light-dark(red,red)){:root{--toolbar-text: light-dark(var(--color-black), var(--color-white));--toolbar-back: light-dark(var(--color-white), var(--color-gray-850));--toolbar-hover: light-dark(var(--color-gray-200), var(--color-gray-750))}}:where(.k-textarea-input,.k-writer-input):not(:focus-within){--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-700);--toolbar-text: var(--csstools-light-dark-toggle--3, var(--color-gray-300))}@supports not (color: light-dark(tan,tan)){:where(.k-textarea-input,.k-writer-input):not(:focus-within) *{--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-700);--toolbar-text: var(--csstools-light-dark-toggle--3, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:where(.k-textarea-input,.k-writer-input):not(:focus-within){--toolbar-text: light-dark(var(--color-gray-300), var(--color-gray-700))}}.k-toolbar{display:flex;max-width:100%;height:var(--toolbar-size);align-items:center;overflow-x:auto;overflow-y:hidden;color:var(--toolbar-text);background:var(--toolbar-back);border-radius:var(--rounded)}.k-toolbar>hr{height:var(--toolbar-size);width:1px;border-left:1px solid var(--toolbar-border)}.k-toolbar-button.k-button{--button-width: var(--toolbar-size);--button-height: var(--toolbar-size);--button-rounded: 0;outline-offset:-2px}.k-toolbar-button:hover{--button-color-back: var(--toolbar-hover)}.k-toolbar .k-button[aria-current=true]{--button-color-text: var(--toolbar-current)}.k-toolbar>.k-button:first-child{border-start-start-radius:var(--rounded);border-end-start-radius:var(--rounded)}.k-toolbar>.k-button:last-child{border-start-end-radius:var(--rounded);border-end-end-radius:var(--rounded)}:where(.k-textarea-input,.k-writer-input):not(:focus-within){--toolbar-text: var(--color-gray-400);--toolbar-border: var(--panel-color-back)}.k-toolbar:not([data-inline=true]):has(~:focus-within,:focus){position:sticky;top:var(--header-sticky-offset);inset-inline:0;z-index:1;box-shadow:#0000000d 0 2px 5px}.k-writer-input:has(.k-toolbar:not([data-inline=true],[data-disabled=true])){grid-template-areas:"topbar" "content";grid-template-rows:var(--toolbar-size) 1fr;gap:0}.k-writer-toolbar:not(:has(~:focus-within)){--toolbar-current: currentColor}.k-writer-toolbar[data-inline=true]{position:absolute;z-index:calc(var(--z-dropdown) + 1);max-width:none;box-shadow:var(--shadow-toolbar)}.k-writer-toolbar:not([data-inline=true]){border-end-start-radius:0;border-end-end-radius:0;border-bottom:1px solid var(--toolbar-border)}.k-writer-toolbar:not([data-inline=true])>.k-button:first-child{border-end-start-radius:0}.k-writer-toolbar:not([data-inline=true])>.k-button:last-child{border-end-end-radius:0}:root{--bar-height: var(--height-xs)}.k-bar{display:flex;align-items:center;gap:var(--spacing-3);height:var(--bar-height);justify-content:space-between}.k-bar:where([data-align=center]){justify-content:center}.k-bar:where([data-align=end]):has(:first-child:last-child){justify-content:end}:root{--box-height: var( --field-input-height );--box-padding-inline: var(--spacing-2);--box-font-size: var(--text-sm);--box-color-back: none;--box-color-text: currentColor}.k-box{--icon-color: var(--box-color-icon);--text-font-size: var(--box-font-size);display:flex;width:100%;align-items:center;gap:var(--spacing-2);color:var(--box-color-text);background:var(--box-color-back);word-wrap:break-word}.k-box[data-theme]{--box-color-back: var(--theme-color-back);--box-color-text: var(--theme-color-text-highlight);--box-color-icon: var(--theme-color-700);--link-color: var(--box-color-text);--link-color-hover: var(--box-color-text);min-height:var(--box-height);line-height:1.25;padding:.375rem var(--box-padding-inline);border-radius:var(--rounded)}.k-box[data-theme=text],.k-box[data-theme=white]{box-shadow:var(--shadow)}.k-box[data-theme=text]{padding:var(--spacing-6)}.k-box[data-theme=none]{padding:0}.k-box[data-align=center]{justify-content:center}:root{--bubble-size: 1.525rem;--bubble-back: var(--panel-color-back);--bubble-rounded: var(--rounded-sm);--bubble-text: var(--color-black)}.k-bubble{width:min-content;height:var(--bubble-size);white-space:nowrap;line-height:1.5;background:var(--bubble-back);color:var(--bubble-text);border-radius:var(--bubble-rounded);overflow:hidden}.k-bubble .k-frame{width:var(--bubble-size);height:var(--bubble-size)}.k-bubble:has(.k-bubble-text){display:flex;gap:var(--spacing-2);align-items:center;padding-inline-end:.5rem;font-size:var(--text-xs)}.k-column{min-width:0}.k-column[data-sticky=true]{align-self:stretch}.k-column[data-sticky=true]>div{position:sticky;top:calc(var(--header-sticky-offset) + 2vh);z-index:2}.k-column[data-disabled=true]{cursor:not-allowed;opacity:.4}.k-column[data-disabled=true] *{pointer-events:none}.k-column[data-disabled=true] .k-text[data-theme=help] *{pointer-events:initial}.k-frame{--fit: contain;--ratio: 1/1;position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:var(--ratio);background:var(--back);overflow:hidden}.k-frame:where([data-theme]){--back: var(--theme-color-back);color:var(--theme-color-text-highlight)}.k-frame *:where(img,video,iframe,button){position:absolute;inset:0;height:100%;width:100%;object-fit:var(--fit)}.k-frame>*{overflow:hidden;text-overflow:ellipsis;min-width:0;min-height:0}:root{--color-frame-back: none;--color-frame-pattern: var(--pattern-light);--color-frame-rounded: var(--rounded);--color-frame-size: 100%;--color-frame-darkness: 0%}:root:has(.k-panel[data-theme=dark]){--color-frame-pattern: var(--pattern-dark)}.k-color-frame.k-frame{background:var(--color-frame-pattern);width:var(--color-frame-size);color:transparent;border-radius:var(--color-frame-rounded);overflow:hidden;background-clip:padding-box}.k-color-frame:after{border-radius:var(--color-frame-rounded);box-shadow:0 0 0 1px inset hsla(0,0%,var(--color-frame-darkness),.175);position:absolute;inset:0;background:var(--color-frame-back);content:""}:root{--definition-align: center;--definition-height: var(--table-row-height);--definition-term-width: clamp(5rem, 100%, 20%)}.k-definition{display:grid;grid-template-columns:var(--definition-term-width) 1fr}.k-definition dt,.k-definition dd{padding-block:var(--spacing-2);padding-inline:var(--table-cell-padding);height:var(--definition-height);min-height:var(--table-row-height);display:flex;align-items:var(--definition-align)}.k-definition:not(:last-child) dt,.k-definition:not(:last-child) dd{border-block-end:1px solid var(--table-color-border)}.k-definition dt{background:var(--table-color-th-back);border-inline-end:1px solid var(--table-color-border)}.k-definitions{background:var(--table-color-back);box-shadow:var(--shadow);border-radius:var(--rounded);overflow:hidden;line-height:1.25;container-type:inline-size}.k-dropzone{position:relative}.k-dropzone:after{content:"";position:absolute;inset:0;display:none;pointer-events:none;z-index:1;border-radius:var(--rounded)}.k-dropzone[data-over=true]:after{display:block;background:hsla(var(--color-blue-hs),var(--color-blue-l-300),.6);outline:var(--outline)}.k-grid{--columns: 12;--grid-inline-gap: 0;--grid-block-gap: 0;display:grid;align-items:start;grid-column-gap:var(--grid-inline-gap);grid-row-gap:var(--grid-block-gap)}.k-grid>*{--width: calc(1 / var(--columns));--span: calc(var(--columns) * var(--width))}@container (min-width: 30rem){.k-grid{grid-template-columns:repeat(var(--columns),1fr)}.k-grid>*{grid-column:span var(--span)}}:root{--columns-inline-gap: clamp(.75rem, 6cqw, 6rem);--columns-block-gap: var(--spacing-8)}.k-grid[data-variant=columns]{--grid-inline-gap: var(--columns-inline-gap);--grid-block-gap: var(--columns-block-gap)}.k-grid:where([data-variant=columns],[data-variant=fields])>*{container:column / inline-size}.k-grid[data-variant=fields]{gap:var(--spacing-8)}.k-grid[data-variant=choices]{align-items:stretch;gap:2px}:root{--header-color-back: var(--panel-color-back);--header-padding-block: var(--spacing-4);--header-sticky-offset: var(--scroll-top)}.k-header{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;column-gap:var(--spacing-3);border-bottom:1px solid var(--color-border);background:var(--header-color-back);padding-top:var(--header-padding-block);margin-bottom:var(--spacing-12);box-shadow:2px 0 0 0 var(--header-color-back),-2px 0 0 0 var(--header-color-back)}.k-header:has(+.k-tabs){margin-bottom:0}@media screen and (min-width:70rem){.k-header{flex-wrap:nowrap}}.k-header-title{font-size:var(--text-h1);font-weight:var(--font-h1);line-height:var(--leading-h1);margin-bottom:var(--header-padding-block);min-width:0;flex:1 1 auto}.k-header-title-button{display:inline-flex;text-align:start;gap:var(--spacing-2);align-items:baseline;max-width:100%;outline:0}.k-header-title-text{overflow-x:clip;text-overflow:ellipsis}.k-header-title-icon{--icon-color: var(--color-text-dimmed);border-radius:var(--rounded);transition:opacity .2s;display:grid;flex-shrink:0;place-items:center;height:var(--height-sm);width:var(--height-sm);opacity:0}.k-header-title-button:is(:hover,:focus) .k-header-title-icon{opacity:1}.k-header-title-button:is(:focus) .k-header-title-icon{outline:var(--outline)}.k-header-buttons{display:flex;gap:var(--spacing-2);margin-bottom:var(--header-padding-block);flex-shrink:0}.k-header:has(.k-header-buttons){position:sticky;top:var(--scroll-top);z-index:var(--z-toolbar)}:root:has(.k-header .k-header-buttons){--header-sticky-offset: calc(var(--scroll-top) + 4rem)}.k-header .k-header-title-placeholder{color:var(--color-gray-500);transition:color .3s}.k-header[data-editable=true] .k-header-title-placeholder:hover{color:var(--color-text-dimmed)}:root{--icon-size: 18px;--icon-color: currentColor}.k-icon{width:var(--icon-size);height:var(--icon-size);flex-shrink:0;color:var(--icon-color);fill:currentColor}.k-icon[data-type=loader]{animation:Spin 1.5s linear infinite}@media only screen and (-webkit-min-device-pixel-ratio:2),not all,not all,not all,only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.k-button-icon [data-type=emoji]{font-size:1.25em}}.k-icon-frame [data-type=emoji]{overflow:visible}.k-image[data-back=pattern]{--back: var(--color-black) var(--pattern)}.k-image[data-back=black]{--back: var(--color-black)}.k-image[data-back=white]{--back: var(--color-white);color:var(--color-gray-900)}:root{--overlay-color-back: rgba(0, 0, 0, .6);--overlay-color-back-dimmed: rgba(0, 0, 0, .2)}.k-overlay[open]{position:fixed;overscroll-behavior:contain;inset:0;width:100%;height:100vh;height:100dvh;background:none;z-index:var(--z-dialog);transform:translateZ(0);overflow:hidden}.k-overlay[open]::backdrop{background:none}.k-overlay[open]>.k-portal{position:fixed;inset:0;background:var(--overlay-color-back);overflow:auto}.k-overlay[open][data-type=dialog]>.k-portal{display:inline-flex}.k-overlay[open][data-type=dialog]>.k-portal>*{margin:auto}.k-overlay[open][data-type=drawer]>.k-portal{--overlay-color-back: var(--overlay-color-back-dimmed);display:flex;align-items:stretch;justify-content:flex-end}html[data-overlay=true]{overflow:hidden}html[data-overlay=true] body{overflow:scroll}:where(.k-stack){display:flex;flex-direction:column;container-type:inline-size;gap:var(--spacing-3);width:100%}:root{--stat-color-back: var(--item-color-back);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--stat-color-hover-back: var(--csstools-light-dark-toggle--0, var(--color-gray-100));--stat-info-text-color: var(--color-text-dimmed);--stat-value-text-size: var(--text-2xl)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--stat-color-hover-back: var(--csstools-light-dark-toggle--0, var(--color-gray-100))}}@supports (color: light-dark(red,red)){:root{--stat-color-hover-back: light-dark( var(--color-gray-100), var(--color-gray-850) )}}.k-stat{display:flex;flex-direction:column;padding:var(--spacing-3) var(--spacing-6);background:var(--stat-color-back);border-radius:var(--rounded);box-shadow:var(--shadow);line-height:var(--leading-normal)}.k-stat.k-link:hover{cursor:pointer;background:var(--stat-color-hover-back)}.k-stat :where(dt,dd){display:block}.k-stat-value{order:1;font-size:var(--stat-value-text-size);margin-bottom:var(--spacing-1)}.k-stat-label{--icon-size: var(--text-sm);order:2;display:flex;justify-content:start;align-items:center;gap:var(--spacing-1);font-size:var(--text-xs)}.k-stat-info{order:3;font-size:var(--text-xs);color:var(--stat-info-text-color)}.k-stat:is([data-theme]) .k-stat-info{--stat-info-text-color: var(--theme-color-text)}:root{--table-cell-padding: var(--spacing-3);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--table-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) rgba(0, 0, 0, .375);--table-color-border: var(--csstools-light-dark-toggle--1, rgba(0, 0, 0, .08));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) rgba(0, 0, 0, .1);--table-color-hover: var(--csstools-light-dark-toggle--2, var(--color-gray-100));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-800);--table-color-th-back: var(--csstools-light-dark-toggle--3, var(--color-gray-100));--table-color-th-text: var(--color-text-dimmed);--table-row-height: var(--input-height)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--table-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) rgba(0, 0, 0, .375);--table-color-border: var(--csstools-light-dark-toggle--1, rgba(0, 0, 0, .08));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) rgba(0, 0, 0, .1);--table-color-hover: var(--csstools-light-dark-toggle--2, var(--color-gray-100));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-800);--table-color-th-back: var(--csstools-light-dark-toggle--3, var(--color-gray-100))}}@supports (color: light-dark(red,red)){:root{--table-color-back: light-dark(var(--color-white), var(--color-gray-850));--table-color-border: light-dark(rgba(0, 0, 0, .08), rgba(0, 0, 0, .375));--table-color-hover: light-dark(var(--color-gray-100), rgba(0, 0, 0, .1));--table-color-th-back: light-dark( var(--color-gray-100), var(--color-gray-800) )}}.k-table{position:relative;background:var(--table-color-back);box-shadow:var(--shadow);border-radius:var(--rounded)}.k-table table{table-layout:fixed}.k-table th,.k-table td{padding-inline:var(--table-cell-padding);height:var(--table-row-height);overflow:hidden;text-overflow:ellipsis;width:100%;border-inline-end:1px solid var(--table-color-border);line-height:1.25}.k-table tr>*:last-child{border-inline-end:0}.k-table th,.k-table tr:not(:last-child) td{border-block-end:1px solid var(--table-color-border)}.k-table :where(td,th)[data-align]{text-align:var(--align)}.k-table th{padding-inline:var(--table-cell-padding);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--table-color-th-text);background:var(--table-color-th-back)}.k-table th[data-has-button=true]{padding:0}.k-table th button{padding-inline:var(--table-cell-padding);height:100%;width:100%;border-radius:var(--rounded);text-align:start}.k-table th button:focus-visible{outline-offset:-2px}.k-table thead th:first-child{border-start-start-radius:var(--rounded)}.k-table thead th:last-child{border-start-end-radius:var(--rounded)}.k-table thead th{position:sticky;top:var(--header-sticky-offset);inset-inline:0;z-index:1}.k-table tbody tr td{background:var(--table-color-back)}.k-table tbody tr:hover td{background:var(--table-color-hover)}.k-table tbody th{width:auto;white-space:nowrap;overflow:visible;border-radius:0}.k-table tbody tr:first-child th{border-start-start-radius:var(--rounded)}.k-table tbody tr:last-child th{border-end-start-radius:var(--rounded);border-block-end:0}.k-table-row-ghost{background:var(--table-color-back);outline:var(--outline);border-radius:var(--rounded);margin-bottom:2px;cursor:grabbing}.k-table-row-fallback{opacity:0!important}.k-table .k-table-index-column{width:max(var(--table-row-height),calc(var(--table-index-width, 1ch) + (2 * var(--table-cell-padding))));text-align:center}.k-table .k-table-index{font-size:var(--text-xs);color:var(--color-text-dimmed);line-height:1.1em}.k-table .k-table-index-column:has(.k-table-index-checkbox){padding:0}.k-table tr[data-sortable=true] .k-table-index-column .k-sort-handle{--button-width: 100%;display:none}.k-table tr[data-sortable=true]:hover .k-table-index-column .k-table-index{display:none}.k-table tr[data-sortable=true]:hover .k-table-index-column .k-sort-handle{display:flex}.k-table tr[data-selectable=true]:has(.k-table-select-checkbox input:checked){--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-blue-800);--table-color-back: var(--csstools-light-dark-toggle--4, var(--color-blue-250));--table-color-hover: var(--table-color-back)}@supports not (color: light-dark(tan,tan)){.k-table tr[data-selectable=true]:has(.k-table-select-checkbox input:checked) *{--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-blue-800);--table-color-back: var(--csstools-light-dark-toggle--4, var(--color-blue-250))}}@supports (color: light-dark(red,red)){.k-table tr[data-selectable=true]:has(.k-table-select-checkbox input:checked){--table-color-back: light-dark(var(--color-blue-250), var(--color-blue-800))}}.k-table .k-table-select-checkbox{height:var(--table-row-height);display:grid;place-items:center}.k-table .k-table-options-column{padding:0;width:var(--table-row-height);text-align:center}.k-table .k-table-options-column .k-options-dropdown-toggle{--button-width: 100%;--button-height: 100%;outline-offset:-2px}.k-table-empty{color:var(--color-text-dimmed);font-size:var(--text-sm)}.k-table[aria-disabled=true]{--table-color-back: transparent;--table-color-border: var(--color-border);--table-color-hover: transparent;--table-color-th-back: transparent;border:1px solid var(--table-color-border);box-shadow:none}.k-table[aria-disabled=true] thead th{position:static}@container (max-width: 40rem){.k-table{overflow-x:auto}.k-table thead th{position:static}.k-table .k-options-dropdown-toggle{aspect-ratio:auto!important}.k-table :where(th,td):not(.k-table-index-column,.k-table-options-column,[data-column-id=image],[data-column-id=flag]){width:auto!important}.k-table :where(th,td):not([data-mobile=true]){display:none}}.k-table-pagination{border-top:1px solid var(--table-color-border);height:var(--table-row-height);background:var(--table-color-th-back);display:flex;justify-content:center;border-end-start-radius:var(--rounded);border-end-end-radius:var(--rounded)}.k-table-pagination>.k-button{--button-color-back: transparent;border-left:0!important}.k-table .k-table-cell{padding:0}.k-tabs{--button-height: var(--height-md);--button-padding: var(--spacing-2);display:flex;gap:var(--spacing-1);margin-bottom:var(--spacing-12);margin-inline:calc(var(--button-padding) * -1)}.k-tabs-button.k-button{position:relative;margin-block:2px;overflow-x:visible}.k-tabs-button[aria-current=true]:after{position:absolute;content:"";height:2px;inset-inline:var(--button-padding);bottom:-2px;background:var(--color-text)}.k-tabs-button .k-button-badge{top:3px;inset-inline-end:calc(var(--button-padding) / 4)}.k-fatal[open]{background:var(--overlay-color-back);padding:var(--spacing-6)}.k-fatal-box{position:relative;width:100%;box-shadow:var(--dialog-shadow);border-radius:var(--dialog-rounded);line-height:1;height:calc(100vh - 3rem);height:calc(100dvh - 3rem);display:flex;flex-direction:column;overflow:hidden}.k-fatal-iframe{border:0;width:100%;flex-grow:1;background:var(--color-white);padding:var(--spacing-3)}.k-icons{position:absolute;width:0;height:0}.k-notification{padding:.75rem 1.5rem;background:var(--color-gray-900);width:100%;line-height:1.25rem;color:var(--color-white);display:flex;flex-shrink:0;align-items:center}.k-notification[data-theme]{background:var(--theme-color-back);color:var(--color-black)}.k-notification p{flex-grow:1;word-wrap:break-word;overflow:hidden}.k-notification .k-button{display:flex;margin-inline-start:1rem}.k-offline-warning{position:fixed;inset:0;z-index:var(--z-offline);background:var(--overlay-color-back);display:flex;align-items:center;justify-content:center;line-height:1}.k-offline-warning p{display:flex;align-items:center;gap:.5rem;background:var(--color-white);box-shadow:var(--shadow);padding:.75rem;border-radius:var(--rounded)}.k-offline-warning p .k-icon{color:var(--color-red-400)}:root{--progress-height: var(--spacing-2);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--progress-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300));--progress-color-value: var(--color-focus)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-850);--progress-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:root{--progress-color-back: light-dark(var(--color-gray-300), var(--color-gray-850))}}progress{display:block;width:100%;height:var(--progress-height);border-radius:var(--progress-height);overflow:hidden;background:var(--progress-color-back);border:0}progress::-webkit-progress-bar{background:var(--progress-color-back)}progress::-webkit-progress-value{background:var(--progress-color-value);border-radius:var(--progress-height)}progress::-moz-progress-bar{background:var(--progress-color-value);border-radius:var(--progress-height)}progress:not([value])::-webkit-progress-bar{background:var(--progress-color-value)}progress:not([value])::-moz-progress-bar{background:var(--progress-color-value)}.k-sort-handle{cursor:grab;z-index:1}.k-sort-handle:active{cursor:grabbing}.k-breadcrumb{--breadcrumb-divider: "/";overflow-x:clip;padding:2px}.k-breadcrumb ol{display:none;gap:.125rem;align-items:center}.k-breadcrumb ol li{display:flex;align-items:center;min-width:0;transition:flex-shrink .1s}.k-breadcrumb ol li:has(.k-icon){min-width:2.25rem}.k-breadcrumb ol li:not(:last-child):after{content:var(--breadcrumb-divider);opacity:.175;flex-shrink:0}.k-breadcrumb .k-icon[data-type=loader]{opacity:.5}.k-breadcrumb ol li:is(:hover,:focus-within){flex-shrink:0}.k-button.k-breadcrumb-link{flex-shrink:1;min-width:0;justify-content:flex-start}.k-breadcrumb-dropdown{display:grid}.k-breadcrumb-dropdown .k-dropdown-content{width:15rem}@container (min-width: 40em){.k-breadcrumb ol{display:flex}.k-breadcrumb-dropdown{display:none}}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--browser-item-hover-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300));--browser-item-hover-color-text: currentColor;--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-blue-800);--browser-item-selected-color-back: var(--csstools-light-dark-toggle--1, var(--color-blue-300));--browser-item-selected-color-text: currentColor;--browser-item-gap: 1px;--browser-item-size: 1fr;--browser-item-height: var(--height-sm);--browser-item-padding: .25rem;--browser-item-rounded: var(--rounded)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--browser-item-hover-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-300));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-blue-800);--browser-item-selected-color-back: var(--csstools-light-dark-toggle--1, var(--color-blue-300))}}@supports (color: light-dark(red,red)){:root{--browser-item-hover-color-back: light-dark( var(--color-gray-300), var(--color-gray-950) );--browser-item-selected-color-back: light-dark( var(--color-blue-300), var(--color-blue-800) )}}.k-browser{container-type:inline-size;font-size:var(--text-sm)}.k-browser-items{display:grid;column-gap:var(--browser-item-gap);row-gap:var(--browser-item-gap);grid-template-columns:repeat(auto-fill,minmax(var(--browser-item-size),1fr))}.k-browser-item{display:flex;overflow:hidden;gap:.5rem;align-items:center;flex-shrink:0;height:var(--browser-item-height);padding-inline:calc(var(--browser-item-padding) + 1px);border-radius:var(--browser-item-rounded);white-space:nowrap;cursor:pointer}.k-browser-item:hover{background:var(--browser-item-hover-color-back);color:var(--browser-item-hover-color-text)}.k-browser-item-image{height:calc(var(--browser-item-height) - var(--browser-item-padding) * 2);aspect-ratio:1/1;border-radius:var(--rounded-sm);box-shadow:var(--shadow);flex-shrink:0}.k-browser-item-image.k-icon-frame{box-shadow:none;--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-black);background:var(--csstools-light-dark-toggle--2, var(--color-white))}@supports (color: light-dark(red,red)){.k-browser-item-image.k-icon-frame{background:light-dark(var(--color-white),var(--color-black))}}.k-browser-item-image svg{transform:scale(.8)}.k-browser-item input{position:absolute;box-shadow:var(--shadow);opacity:0;width:0}.k-browser-item[aria-selected]{background:var(--browser-item-selected-color-back);color:var(--browser-item-selected-color-text)}.k-button-group{display:flex;flex-wrap:wrap;gap:var(--spacing-2);align-items:center}.k-button-group:where([data-layout=collapsed]){gap:0;flex-wrap:nowrap}.k-button-group[data-layout=collapsed]>.k-button[data-variant=filled]:not(:last-child){border-start-end-radius:0;border-end-end-radius:0}.k-button-group[data-layout=collapsed]>.k-button{--theme-color-border: var(--panel-color-back)}.k-button-group[data-layout=collapsed]>.k-button[data-variant=filled]:not(:first-child){border-start-start-radius:0;border-end-start-radius:0;border-left:1px solid var(--theme-color-border)}.k-button-group[data-layout=collapsed]>.k-button[data-variant=filled]:focus-visible{z-index:1;border-radius:var(--button-rounded)}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--panel-color-back);--file-browser-items-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-100))}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--panel-color-back);--file-browser-items-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-100))}}@supports (color: light-dark(red,red)){:root{--file-browser-items-color-back: light-dark( var(--color-gray-100), var(--panel-color-back) )}}.k-file-browser{container-type:inline-size;overflow:hidden}.k-file-browser-layout{display:grid;grid-template-columns:minmax(10rem,15rem) 1fr;grid-template-rows:1fr auto;grid-template-areas:"tree items" "tree pagination"}.k-file-browser-tree{grid-area:tree;padding:var(--spacing-2);border-right:1px solid var(--color-border)}.k-file-browser-items{grid-area:items;padding:var(--spacing-2);background:var(--file-browser-items-color-back)}.k-file-browser-back-button{display:none}.k-file-browser-pagination{background:var(--file-browser-items-color-back);padding:var(--spacing-2);display:flex;justify-content:end}@container (max-width: 30rem){.k-file-browser-layout{grid-template-columns:minmax(0,1fr);min-height:10rem}.k-file-browser-back-button{width:100%;height:var(--height-sm);display:flex;align-items:center;justify-content:flex-start;padding-inline:.25rem;margin-bottom:.5rem;--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-800);background:var(--csstools-light-dark-toggle--1, var(--color-gray-200));border-radius:var(--rounded)}@supports (color: light-dark(red,red)){.k-file-browser-back-button{background:light-dark(var(--color-gray-200),var(--color-gray-800))}}.k-file-browser-tree{border-right:0}.k-file-browser-pagination{justify-content:start}.k-file-browser[data-view=files] .k-file-browser-layout{grid-template-rows:1fr auto;grid-template-areas:"items" "pagination"}.k-file-browser[data-view=files] .k-file-browser-tree,.k-file-browser[data-view=tree] .k-file-browser-items,.k-file-browser[data-view=tree] .k-file-browser-pagination{display:none}}:root{--tree-color-back: var(--panel-color-back);--tree-indentation: .6rem;--tree-level: 0;--tree-branch-color-back: var(--tree-color-back);--tree-branch-color-text: var(--color-text-dimmed);--tree-branch-hover-color-back: var(--browser-item-hover-color-back);--tree-branch-hover-color-text: var(--browser-item-hover-color-text);--tree-branch-selected-color-back: var(--browser-item-selected-color-back);--tree-branch-selected-color-text: var(--browser-item-selected-color-text)}.k-tree-branch{display:flex;align-items:center;padding-inline-start:calc(var(--tree-level) * var(--tree-indentation));margin-bottom:1px;background:var(--tree-branch-color-back)}.k-tree-branch:has(+.k-tree){inset-block-start:calc(var(--tree-level) * 1.5rem);z-index:calc(100 - var(--tree-level))}.k-tree-branch:hover,li[aria-current=true]>.k-tree-branch{color:var(--tree-branch-hover-color-text);background:var(--tree-branch-hover-color-back);border-radius:var(--rounded)}li[aria-current=true]>.k-tree-branch{background:var(--tree-branch-selected-color-back)}.k-tree-toggle{--icon-size: 12px;width:1rem;aspect-ratio:1/1;display:grid;place-items:center;padding:0;border-radius:var(--rounded-sm);margin-inline-start:.25rem;flex-shrink:0}.k-tree-toggle:hover{background:#00000013}.k-tree-toggle[disabled]{visibility:hidden}.k-tree-folder{display:flex;height:var(--height-sm);border-radius:var(--rounded-sm);padding-inline:.25rem;width:100%;align-items:center;gap:.325rem;min-width:3rem;line-height:1.25;font-size:var(--text-sm)}@container (max-width: 15rem){.k-tree{--tree-indentation: .375rem}.k-tree-folder{padding-inline:.125rem}.k-tree-folder .k-icon{display:none}}.k-tree-folder>.k-frame{flex-shrink:0}.k-tree-folder-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:currentColor}.k-tree-folder[disabled]{opacity:var(--opacity-disabled)}.k-pagination{flex-shrink:0}.k-pagination-details{--button-padding: var(--spacing-3);font-size:var(--text-xs)}.k-pagination-selector{--button-height: var(--height);--dropdown-padding: 0;overflow:visible}.k-pagination-selector form{display:flex;align-items:center;justify-content:space-between}.k-pagination-selector label{display:flex;align-items:center;gap:var(--spacing-2);padding-inline-start:var(--spacing-3)}.k-pagination-selector select{--height: calc(var(--button-height) - .5rem);width:auto;min-width:var(--height);height:var(--height);text-align:center;background:var(--color-gray-800);color:var(--color-white);border-radius:var(--rounded-sm)}.k-prev-next{direction:ltr;flex-shrink:0}.k-search-bar-input{--button-height: var(--input-height);display:flex;align-items:center}.k-search-bar-types{flex-shrink:0;border-inline-end:1px solid var(--color-border)}.k-search-bar-input input{flex-grow:1;padding-inline:.75rem;height:var(--input-height);line-height:var(--input-height);border-radius:var(--rounded);font-size:var(--input-font-size)}.k-search-bar-input input:focus{outline:0}.k-search-bar-input .k-search-bar-close{flex-shrink:0}.k-search-bar-results{border-top:1px solid var(--color-border);padding:1rem}.k-search-bar-results .k-item[data-selected=true]{outline:var(--outline)}.k-search-bar-footer{text-align:center}.k-search-bar-footer p{color:var(--color-text-dimmed)}.k-search-bar-footer .k-button{margin-top:var(--spacing-4)}.k-section+.k-section{margin-top:var(--columns-block-gap)}.k-section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-6);margin-bottom:var(--spacing-2)}.k-section-buttons{flex-shrink:0}.k-fields-section input[type=submit]{display:none}[data-locked=true] .k-fields-section{opacity:.2;pointer-events:none}.k-models-section[data-processing=true]{pointer-events:none}.k-models-section-search.k-input{--input-color-back: var(--color-border);--input-color-border: transparent;margin-bottom:var(--spacing-3)}.k-checklist{--checklist-marker: "✓";list-style:none;gap:var(--spacing-2);line-height:var(--text-line-height)}.k-checklist li{display:flex;gap:var(--spacing-2)}.k-checklist li:before{width:1.25em;flex-shrink:0;text-align:center;content:var(--checklist-marker);color:var(--theme-color-text)}.k-checklist[data-theme=notice],.k-checklist li[data-theme=notice]{--checklist-marker: "⚠"}.k-checklist[data-theme=negative],.k-checklist li[data-theme=negative]{--checklist-marker: "×"}:root{--code-color-back: var(--color-black);--code-color-icon: var(--color-gray-500);--code-color-text: var(--color-gray-200, var(--color-white));--code-font-family: var(--font-mono);--code-font-size: 1em;--code-padding: var(--spacing-3)}code{font-family:var(--code-font-family);font-size:var(--code-font-size);font-weight:var(--font-normal)}.k-code,.k-text pre{position:relative;display:block;max-width:100%;padding:var(--code-padding);border-radius:var(--rounded, .5rem);background:var(--code-color-back);color:var(--code-color-text);white-space:nowrap;overflow-y:hidden;overflow-x:auto;line-height:1.5;tab-size:2}.k-code:not(code),.k-text pre{white-space:pre-wrap}.k-code:before{position:absolute;content:attr(data-language);inset-block-start:0;inset-inline-end:0;padding:.5rem .5rem .25rem .25rem;font-size:calc(.75 * var(--text-xs));background:var(--code-color-back);border-radius:var(--rounded, .5rem)}:root{--code-inline-color-back: var(--color-blue-300);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-blue-900);--code-inline-color-border: var(--csstools-light-dark-toggle--0, var(--color-blue-400));--code-inline-color-text: var(--color-blue-900);--code-inline-font-size: .9em}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-blue-900);--code-inline-color-border: var(--csstools-light-dark-toggle--0, var(--color-blue-400))}}@supports (color: light-dark(red,red)){:root{--code-inline-color-border: light-dark( var(--color-blue-400), var(--color-blue-900) )}}code[data-type],.k-text>code,.k-text *:not(pre)>code{display:inline-flex;line-height:var(--text-line-height);padding-inline:var(--spacing-1);font-size:var(--code-inline-font-size);color:var(--code-inline-color-text);background:var(--code-inline-color-back);border-radius:var(--rounded);outline:1px solid var(--code-inline-color-border);outline-offset:-1px}code:is([data-type=gray],[data-type=undefined]){--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-900);color:var(--csstools-light-dark-toggle--1, var(--color-gray-800));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-900);outline-color:var(--csstools-light-dark-toggle--2, var(--color-gray-400));background:var(--color-gray-300)}@supports (color: light-dark(red,red)){code:is([data-type=gray],[data-type=undefined]){color:light-dark(var(--color-gray-800),var(--color-gray-900));outline-color:light-dark(var(--color-gray-400),var(--color-gray-900))}}code:is([data-type=purple],[data-type=boolean]){--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-purple-900);color:var(--csstools-light-dark-toggle--3, var(--color-purple-800));--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-purple-900);outline-color:var(--csstools-light-dark-toggle--4, var(--color-purple-400));background:var(--color-purple-300)}@supports (color: light-dark(red,red)){code:is([data-type=purple],[data-type=boolean]){color:light-dark(var(--color-purple-800),var(--color-purple-900));outline-color:light-dark(var(--color-purple-400),var(--color-purple-900))}}code:is([data-type=green],[data-type=string]){--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) var(--color-green-900);color:var(--csstools-light-dark-toggle--5, var(--color-green-800));--csstools-light-dark-toggle--6: var(--csstools-color-scheme--light) var(--color-green-900);outline-color:var(--csstools-light-dark-toggle--6, var(--color-green-500));background:var(--color-green-300)}@supports (color: light-dark(red,red)){code:is([data-type=green],[data-type=string]){color:light-dark(var(--color-green-800),var(--color-green-900));outline-color:light-dark(var(--color-green-500),var(--color-green-900))}}code:is([data-type=orange],[data-type=number]){--csstools-light-dark-toggle--7: var(--csstools-color-scheme--light) var(--color-orange-900);color:var(--csstools-light-dark-toggle--7, var(--color-orange-800));--csstools-light-dark-toggle--8: var(--csstools-color-scheme--light) var(--color-orange-900);outline-color:var(--csstools-light-dark-toggle--8, var(--color-orange-500));background:var(--color-orange-300)}@supports (color: light-dark(red,red)){code:is([data-type=orange],[data-type=number]){color:light-dark(var(--color-orange-800),var(--color-orange-900));outline-color:light-dark(var(--color-orange-500),var(--color-orange-900))}}code:is([data-type=aqua],[data-type=array]){--csstools-light-dark-toggle--9: var(--csstools-color-scheme--light) var(--color-aqua-900);color:var(--csstools-light-dark-toggle--9, var(--color-aqua-800));--csstools-light-dark-toggle--10: var(--csstools-color-scheme--light) var(--color-aqua-900);outline-color:var(--csstools-light-dark-toggle--10, var(--color-aqua-500));background:var(--color-aqua-300)}@supports (color: light-dark(red,red)){code:is([data-type=aqua],[data-type=array]){color:light-dark(var(--color-aqua-800),var(--color-aqua-900));outline-color:light-dark(var(--color-aqua-500),var(--color-aqua-900))}}code:is([data-type=yellow],[data-type=object]){--csstools-light-dark-toggle--11: var(--csstools-color-scheme--light) var(--color-yellow-900);color:var(--csstools-light-dark-toggle--11, var(--color-yellow-800));--csstools-light-dark-toggle--12: var(--csstools-color-scheme--light) var(--color-yellow-900);outline-color:var(--csstools-light-dark-toggle--12, var(--color-yellow-500));background:var(--color-yellow-300)}@supports (color: light-dark(red,red)){code:is([data-type=yellow],[data-type=object]){color:light-dark(var(--color-yellow-800),var(--color-yellow-900));outline-color:light-dark(var(--color-yellow-500),var(--color-yellow-900))}}code:is([data-type=pink],[data-type=func]){--csstools-light-dark-toggle--13: var(--csstools-color-scheme--light) var(--color-pink-900);color:var(--csstools-light-dark-toggle--13, var(--color-pink-800));outline-color:var(--color-pink-400);background:var(--color-pink-300)}@supports (color: light-dark(red,red)){code:is([data-type=pink],[data-type=func]){color:light-dark(var(--color-pink-800),var(--color-pink-900))}}code:is([data-type=red]){--csstools-light-dark-toggle--14: var(--csstools-color-scheme--light) var(--color-red-900);color:var(--csstools-light-dark-toggle--14, var(--color-red-800));outline-color:var(--color-red-400);background:var(--color-red-300)}@supports (color: light-dark(red,red)){code:is([data-type=red]){color:light-dark(var(--color-red-800),var(--color-red-900))}}code:is([data-type=black]){color:var(--color-gray-100);outline-color:var(--color-black);background:var(--color-gray-950)}code:is([data-type=white]){color:var(--color-gray-900);outline-color:var(--color-border);background:var(--color-white)}:root{--text-h1: 2em;--text-h2: 1.75em;--text-h3: 1.5em;--text-h4: 1.25em;--text-h5: 1.125em;--text-h6: 1em;--font-h1: var(--font-semi);--font-h2: var(--font-semi);--font-h3: var(--font-semi);--font-h4: var(--font-semi);--font-h5: var(--font-semi);--font-h6: var(--font-semi);--leading-h1: 1.125;--leading-h2: 1.125;--leading-h3: 1.25;--leading-h4: 1.375;--leading-h5: 1.5;--leading-h6: 1.5}.k-headline{line-height:1.5em;font-weight:var(--font-bold)}.h1,.k-text h1,.k-headline[data-size=huge]{color:var(--color-h1, var(--color-h));font-family:var(--font-family-h1);font-size:var(--text-h1);font-weight:var(--font-h1);line-height:var(--leading-h1)}.h2,.k-text h2,.k-headline[data-size=large]{color:var(--color-h2, var(--color-h));font-family:var(--font-family-h2);font-size:var(--text-h2);font-weight:var(--font-h2);line-height:var(--leading-h2)}.h3,.k-text h3{color:var(--color-h3, var(--color-h));font-family:var(--font-family-h3);font-size:var(--text-h3);font-weight:var(--font-h3);line-height:var(--leading-h3)}.h4,.k-text h4,.k-headline[data-size=small]{color:var(--color-h4, var(--color-h));font-family:var(--font-family-h4);font-size:var(--text-h4);font-weight:var(--font-h4);line-height:var(--leading-h4)}.h5,.k-text h5{color:var(--color-h5, var(--color-h));font-family:var(--font-family-h5);font-size:var(--text-h5);font-weight:var(--font-h5);line-height:var(--leading-h5)}.h6,.k-text h6{color:var(--color-h6, var(--color-h));font-family:var(--font-family-h6);font-size:var(--text-h6);font-weight:var(--font-h6);line-height:var(--leading-h6)}.k-text>*+h6{margin-block-start:calc(var(--text-line-height) * 1.5em)}.k-label{position:relative;display:flex;align-items:center;height:var(--height-xs);font-weight:var(--font-semi);min-width:0;flex:1}[aria-disabled=true] .k-label{opacity:var(--opacity-disabled);cursor:not-allowed}.k-label>a{display:inline-flex;height:var(--height-xs);align-items:center;padding-inline:var(--spacing-2);margin-inline-start:calc(-1 * var(--spacing-2));border-radius:var(--rounded);min-width:0}.k-label-text{text-overflow:ellipsis;white-space:nowrap;overflow-x:clip;min-width:0}.k-label abbr{font-size:var(--text-xs);color:var(--color-gray-500);margin-inline-start:var(--spacing-1)}.k-label abbr.k-label-invalid{display:none;color:var(--theme-color-text)}:where(.k-field:has(:invalid),.k-section:has([data-invalid=true]))>header>.k-label abbr.k-label-invalid{display:inline-block}.k-field:has(:invalid)>.k-field-header>.k-label abbr:has(+abbr.k-label-invalid){display:none}:root{--text-font-size: 1em;--text-line-height: 1.5;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-blue-500);--link-color: var(--csstools-light-dark-toggle--0, var(--color-blue-800));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-blue-400);--link-color-hover: var(--csstools-light-dark-toggle--1, var(--color-blue-700));--link-underline-offset: 2px}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-blue-500);--link-color: var(--csstools-light-dark-toggle--0, var(--color-blue-800));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-blue-400);--link-color-hover: var(--csstools-light-dark-toggle--1, var(--color-blue-700))}}@supports (color: light-dark(red,red)){:root{--link-color: light-dark(var(--color-blue-800), var(--color-blue-500));--link-color-hover: light-dark(var(--color-blue-700), var(--color-blue-400))}}.k-text{font-size:var(--text-font-size);line-height:var(--text-line-height)}.k-text[data-size=tiny]{--text-font-size: var(--text-xs)}.k-text[data-size=small]{--text-font-size: var(--text-sm)}.k-text[data-size=medium]{--text-font-size: var(--text-md)}.k-text[data-size=large]{--text-font-size: var(--text-xl)}.k-text[data-align]{text-align:var(--align)}.k-text>:where(audio,blockquote,details,div,figure,h1,h2,h3,h4,h5,h6,hr,iframe,img,object,ol,p,picture,pre,table,ul)+*{margin-block-start:calc(var(--text-line-height) * 1em)}.k-text :where(.k-link,a){color:var(--link-color);text-decoration:underline;text-underline-offset:var(--link-underline-offset);border-radius:var(--rounded-xs);outline-offset:2px}.k-text :where(.k-link,a):hover{color:var(--link-color-hover)}.k-text ol,.k-text ul{padding-inline-start:1.75em}.k-text ol{list-style:numeric}.k-text ol>li{list-style:decimal}.k-text ul>li{list-style:disc}.k-text ul ul>li{list-style:circle}.k-text ul ul ul>li{list-style:square}.k-text blockquote{font-size:var(--text-lg);line-height:1.25;padding-inline-start:var(--spacing-4);--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-border);border-inline-start:2px solid var(--csstools-light-dark-toggle--2, var(--color-black))}@supports (color: light-dark(red,red)){.k-text blockquote{border-inline-start:2px solid light-dark(var(--color-black),var(--color-border))}}.k-text img{border-radius:var(--rounded)}.k-text iframe{width:100%;aspect-ratio:16/9;border-radius:var(--rounded)}.k-text hr{background:var(--color-border);height:1px}.k-help{color:var(--color-text-dimmed)}.k-upload-item-preview{--icon-size: 24px;grid-area:preview;display:flex;aspect-ratio:1/1;width:100%;height:100%;overflow:hidden;border-start-start-radius:var(--rounded);border-end-start-radius:var(--rounded)}.k-upload-item-preview:focus{border-radius:var(--rounded);outline:2px solid var(--color-focus);z-index:1}:root{--upload-item-color-back: var(--item-color-back)}.k-upload-item{accent-color:var(--color-focus);display:grid;grid-template-areas:"preview input input" "preview body toggle";grid-template-columns:6rem 1fr auto;grid-template-rows:var(--input-height) 1fr;border-radius:var(--rounded);background:var(--upload-item-color-back);box-shadow:var(--shadow);min-height:6rem}.k-upload-item-body{grid-area:body;display:flex;flex-direction:column;justify-content:space-between;padding:var(--spacing-2) var(--spacing-3);min-width:0}.k-upload-item-input.k-input{--input-color-border: transparent;--input-padding: var(--spacing-2) var(--spacing-3);--input-rounded: 0;grid-area:input;font-size:var(--text-sm);border-bottom:1px solid var(--color-border);border-start-end-radius:var(--rounded)}.k-upload-item-input.k-input:focus-within{outline:2px solid var(--color-focus);z-index:1;border-radius:var(--rounded)}.k-upload-item-input.k-input[data-disabled=true]{--input-color-back: var(--upload-item-color-back)}.k-upload-item-input .k-input-after{color:var(--color-gray-600)}.k-upload-item-meta{font-size:var(--text-xs);color:var(--color-gray-600)}.k-upload-item-error{font-size:var(--text-xs);margin-top:.25rem;color:var(--theme-color-text)}.k-upload-item-progress{--progress-height: .25rem;--progress-color-back: var(--panel-color-back);margin-bottom:.3125rem}.k-upload-item-toggle{grid-area:toggle;align-self:end}.k-upload-item-toggle>*{padding:var(--spacing-3)}.k-upload-items{display:grid;gap:.25rem}.k-activation{position:relative;display:flex;color:var(--dropdown-color-text);background:var(--dropdown-color-bg);border-radius:var(--dropdown-rounded);box-shadow:var(--dropdown-shadow);justify-content:space-between}.k-activation p{padding-inline-start:var(--spacing-3);padding-inline-end:var(--spacing-2);padding-block:.425rem;line-height:1.25}.k-activation p strong{font-weight:var(--font-normal);margin-inline-end:var(--spacing-1)}.k-activation p :where(button,a){color:var(--color-pink-400);text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:2px;border-radius:var(--rounded-sm)}.k-activation-toggle{--button-color-text: var(--color-gray-400);--button-rounded: 0;border-left:1px solid var(--dropdown-color-hr)}.k-activation-toggle:is(:hover,:focus){--button-color-text: var(--color-white)}.k-activation-toggle:focus{--button-rounded: var(--rounded)}.k-languages-dropdown-item:after{content:"✓";padding-inline-start:var(--spacing-1)}.k-languages-dropdown-item:not([aria-current=true]):after{visibility:hidden}.k-languages-dropdown-item .k-button-text{display:flex;flex-grow:1;justify-content:space-between;align-items:center;gap:var(--spacing-6);min-width:8rem}.k-languages-dropdown-item-info{display:flex;gap:var(--spacing-2);align-items:center}.k-languages-dropdown-item-icon{--icon-color: var(--color-orange-500);--icon-size: 1rem}.k-languages-dropdown-item-info[data-lock=true] .k-languages-dropdown-item-icon{--icon-color: var(--color-red-500)}.k-languages-dropdown-item-code{font-size:var(--text-xs);color:var(--color-gray-500)}.k-view-buttons{display:flex;gap:var(--spacing-2)}@container (min-width: 50rem){.k-view-buttons{gap:var(--spacing-6)}}:root{--main-padding-inline: clamp(var(--spacing-6), 5cqw, var(--spacing-24))}.k-panel-main{min-height:100vh;min-height:100dvh;padding:var(--spacing-3) var(--main-padding-inline) var(--spacing-24);container:main / inline-size;margin-inline-start:var(--main-start)}.k-panel-notification{--button-height: var(--height-md);--button-color-icon: var(--theme-color-900);--button-color-text: var(--theme-color-900);border:1px solid var(--theme-color-500);position:fixed;inset-block-end:var(--menu-padding);inset-inline-end:var(--menu-padding);box-shadow:var(--dropdown-shadow);z-index:var(--z-notification)}:root{--menu-button-height: var(--height);--menu-button-width: 100%;--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--menu-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-250));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--menu-color-border: var(--csstools-light-dark-toggle--1, var(--color-gray-300));--menu-display: none;--menu-display-backdrop: block;--menu-padding: var(--spacing-3);--menu-shadow: var(--shadow-xl);--menu-toggle-height: var(--menu-button-height);--menu-toggle-width: 1rem;--menu-width-closed: calc( var(--menu-button-height) + 2 * var(--menu-padding) );--menu-width-open: 12rem;--menu-width: var(--menu-width-open)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--menu-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-250));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--menu-color-border: var(--csstools-light-dark-toggle--1, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:root{--menu-color-back: light-dark(var(--color-gray-250), var(--color-gray-950));--menu-color-border: light-dark(var(--color-gray-300), var(--color-gray-850))}}.k-panel-menu{position:fixed;inset-inline-start:0;inset-block:0;z-index:var(--z-navigation);display:var(--menu-display);width:var(--menu-width);background-color:var(--menu-color-back);border-right:1px solid var(--menu-color-border);box-shadow:var(--menu-shadow)}.k-panel-menu-body{display:flex;flex-direction:column;gap:var(--spacing-4);padding:var(--menu-padding);overscroll-behavior:contain;overflow-x:hidden;overflow-y:auto;height:100%}.k-panel-menu-search{margin-bottom:var(--spacing-8)}.k-panel-menu-buttons{display:flex;flex-direction:column;width:100%}.k-panel-menu-buttons[data-second-last=true]{margin-bottom:auto}.k-panel-menu-button{--button-align: flex-start;--button-height: var(--menu-button-height);--button-width: var(--menu-button-width);--button-padding: 7px;flex-shrink:0}.k-panel-menu-button[aria-current=true]{--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-850);--button-color-back: var(--csstools-light-dark-toggle--2, var(--color-white));box-shadow:var(--shadow)}@supports not (color: light-dark(tan,tan)){.k-panel-menu-button[aria-current=true] *{--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-850);--button-color-back: var(--csstools-light-dark-toggle--2, var(--color-white))}}@supports (color: light-dark(red,red)){.k-panel-menu-button[aria-current=true]{--button-color-back: light-dark(var(--color-white), var(--color-gray-850))}}.k-panel-menu-button:focus{z-index:1}.k-panel[data-menu=true]{--menu-button-width: 100%;--menu-display: block;--menu-width: var(--menu-width-open)}.k-panel[data-menu=true]:after{content:"";position:fixed;inset:0;background:var(--overlay-color-back);display:var(--menu-display-backdrop);pointer-events:none;z-index:var(--z-drawer)}.k-panel-menu-toggle{--button-align: flex-start;--button-height: 100%;--button-width: var(--menu-toggle-width);position:absolute;inset-block:0;inset-inline-start:100%;align-items:flex-start;border-radius:0;overflow:visible;opacity:0;transition:opacity .2s}.k-panel-menu-toggle:focus{outline:0}.k-panel-menu-toggle .k-button-icon{display:grid;place-items:center;height:var(--menu-toggle-height);width:var(--menu-toggle-width);margin-top:var(--menu-padding);border-block:1px solid var(--menu-color-border);border-inline-end:1px solid var(--menu-color-border);background:var(--menu-color-back);border-start-end-radius:var(--button-rounded);border-end-end-radius:var(--button-rounded)}@media(max-width:60rem){.k-panel-menu .k-activation-button{margin-bottom:var(--spacing-3)}.k-panel-menu .k-activation-toggle{display:none}}@media(min-width:60rem){.k-panel{--menu-display: block;--menu-display-backdrop: none;--menu-shadow: none;--main-start: var(--menu-width)}.k-panel[data-menu=false]{--menu-button-width: var(--menu-button-height);--menu-width: var(--menu-width-closed)}.k-panel-menu-proxy{display:none}.k-panel-menu-toggle:focus-visible,.k-panel-menu[data-hover=true] .k-panel-menu-toggle{opacity:1}.k-panel-menu-toggle:focus-visible .k-button-icon{outline:var(--outline);border-radius:var(--button-rounded)}.k-panel-menu-search[aria-disabled=true]{opacity:0}.k-panel-menu .k-activation{position:absolute;bottom:var(--menu-padding);inset-inline-start:100%;height:var(--height-md);width:max-content;margin-left:var(--menu-padding)}.k-panel-menu .k-activation:before{position:absolute;content:"";top:50%;left:-4px;margin-top:-4px;border-top:4px solid transparent;border-right:4px solid var(--color-black);border-bottom:4px solid transparent}.k-panel-menu .k-activation p :where(button,a){padding-inline:var(--spacing-1)}.k-panel-menu .k-activation-toggle{border-left:1px solid var(--dropdown-color-hr)}}.k-panel.k-panel-outside{display:grid;grid-template-rows:1fr;place-items:center;min-height:100vh;min-height:100dvh;padding:var(--spacing-6)}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-900);--panel-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-200));--scroll-top: 0rem}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-900);--panel-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-200))}}@supports (color: light-dark(red,red)){:root{--panel-color-back: light-dark(var(--color-gray-200), var(--color-gray-900))}}html{overflow-x:hidden;overflow-y:scroll;background:var(--panel-color-back);color:var(--color-text)}body{font-size:var(--text-sm);color:var(--color-text)}.k-panel[data-loading=true]{animation:LoadingCursor .5s}.k-panel[data-loading=true]:after,.k-panel[data-dragging=true]{-webkit-user-select:none;user-select:none}.k-topbar{position:relative;margin-inline:calc(var(--button-padding) * -1);margin-bottom:var(--spacing-8);display:flex;align-items:center;gap:var(--spacing-1)}.k-topbar-breadcrumb{margin-inline-start:-2px;flex-shrink:1;min-width:0}.k-topbar-spacer{flex-grow:1}.k-topbar-signals{display:flex;align-items:center}.k-header+.k-search-view-results{margin-top:var(--spacing-12)}.k-search-view-input{--input-color-back: var(--color-border);--input-color-border: transparent;--input-height: var(--height-md);width:40cqw}.k-file-view-header{margin-bottom:0;border-bottom:0}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--file-preview-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-900));--file-preview-color-text: var(--color-gray-200)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--file-preview-color-back: var(--csstools-light-dark-toggle--0, var(--color-gray-900))}}@supports (color: light-dark(red,red)){:root{--file-preview-color-back: light-dark( var(--color-gray-900), var(--color-gray-950) )}}.k-file-preview{display:grid;align-items:stretch;background:var(--file-preview-color-back);border-radius:var(--rounded-lg);margin-bottom:var(--spacing-12);overflow:hidden}.k-file-preview:has(+.k-tabs){margin-bottom:0}.k-file-preview-details{display:grid}.k-file-preview-details dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));grid-gap:var(--spacing-6) var(--spacing-12);align-self:center;padding:var(--spacing-6);line-height:1.5em}.k-file-preview-details dt{font-size:var(--text-sm);font-weight:var(--font-semi);color:var(--color-gray-500);margin-bottom:var(--spacing-1)}.k-file-preview-details :where(dd,a){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--file-preview-color-text);font-size:var(--text-sm)}.k-file-preview-frame-column{aspect-ratio:1/1;background:var(--pattern)}.k-file-preview-frame{position:relative;display:flex;align-items:center;justify-content:center;height:100%;padding:var(--spacing-10);container-type:size}.k-file-preview-frame :where(img,audio,video){width:auto;max-width:100cqw;max-height:100cqh}.k-file-preview-frame>.k-button{position:absolute;top:var(--spacing-2);inset-inline-start:var(--spacing-2)}.k-button.k-file-preview-frame-dropdown-toggle{--button-color-icon: var(--color-gray-500)}@container (min-width: 36rem) and (max-width: 65rem){.k-file-preview-frame-column{aspect-ratio:auto}}.k-default-file-preview .k-file-preview-frame .k-item-icon{--icon-size: 3rem}@container (min-width: 36rem){.k-default-file-preview{grid-template-columns:50% auto}.k-default-file-preview-thumb-column{aspect-ratio:auto}}@container (min-width: 65rem){.k-default-file-preview{grid-template-columns:33.333% auto}.k-default-file-preview-thumb-column{aspect-ratio:1/1}}.k-audio-file-preview{display:block}.k-audio-file-preview audio{width:100%}.k-audio-file-preview audio::-webkit-media-controls-enclosure{border-radius:0}.k-image-file-preview .k-coords-input{--opacity-disabled: 1;--range-thumb-color: hsl(216 60% 60% / .75);--range-thumb-size: 1.25rem;--range-thumb-shadow: none;cursor:crosshair}.k-image-file-preview .k-coords-input-thumb:after{--size: .4rem;--pos: calc(50% - (var(--size) / 2));position:absolute;top:var(--pos);inset-inline-start:var(--pos);width:var(--size);height:var(--size);content:"";background:#fff;border-radius:50%}.k-image-file-preview:not([data-has-focus=true]) .k-coords-input-thumb{display:none}.k-image-file-preview-focus dd{display:flex;align-items:center}.k-image-file-preview-focus .k-button{--button-padding: var(--spacing-2);--button-color-back: var(--color-gray-800)}.k-pdf-file-preview[data-supported=true]{grid-template-columns:1fr}.k-pdf-file-preview .k-pdf-file-preview-object{width:100%}.k-pdf-file-preview[data-supported=true] .k-pdf-file-preview-object{aspect-ratio:1/1;border-bottom:1px solid var(--color-gray-850)}@container (min-width: 36rem){.k-pdf-file-preview[data-supported=true] .k-pdf-file-preview-object{aspect-ratio:3/2}}@container (min-width: 60rem){.k-pdf-file-preview[data-supported=true]{grid-template-columns:70% auto}.k-pdf-file-preview[data-supported=true] .k-pdf-file-preview-object{aspect-ratio:5/3;border-bottom:0;border-right:1px solid var(--color-gray-850)}}.k-video-file-preview .k-file-preview-frame-column{aspect-ratio:16/9}@container (min-width: 60rem){.k-video-file-preview{grid-template-columns:50% auto}}.k-installation-dialog{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--dialog-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) none;--dialog-shadow: var(--csstools-light-dark-toggle--1, var(--shadow));container-type:inline-size}@supports not (color: light-dark(tan,tan)){.k-installation-dialog *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--dialog-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) none;--dialog-shadow: var(--csstools-light-dark-toggle--1, var(--shadow))}}@supports (color: light-dark(red,red)){.k-installation-dialog{--dialog-color-back: light-dark(var(--color-white), var(--color-gray-950));--dialog-shadow: light-dark(var(--shadow), none)}}.k-installation-view .k-button{margin-top:var(--spacing-3);width:100%}.k-installation-view form .k-button{margin-top:var(--spacing-10)}.k-installation-view .k-headline{font-weight:var(--font-semi);margin-top:-.5rem;margin-bottom:.75rem}.k-installation-issues{line-height:1.5em;font-size:var(--text-sm)}.k-installation-issues li{position:relative;padding:var(--spacing-6);background:var(--theme-color-back);color:var(--theme-color-text-highlight);padding-inline-start:3.5rem;border-radius:var(--rounded)}.k-installation-issues .k-icon{position:absolute;top:calc(1.5rem + 2px);inset-inline-start:1.5rem}.k-installation-issues .k-icon{color:var(--theme-color-icon-highlight)}.k-installation-issues li:not(:last-child){margin-bottom:2px}.k-installation-issues li code{font:inherit;color:var(--theme-color-icon-highlight)}.k-login-code-form .k-user-info{margin-bottom:var(--spacing-6)}.k-login-form{position:relative}.k-login-form label abbr{visibility:hidden}.k-login-toggler{position:absolute;top:-2px;inset-inline-end:calc(var(--spacing-2) * -1);color:var(--link-color);text-decoration:underline;text-decoration-color:var(--link-color);text-underline-offset:1px;height:var(--height-xs);line-height:1;padding-inline:var(--spacing-2);border-radius:var(--rounded);z-index:1}.k-login{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--dialog-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) none;--dialog-shadow: var(--csstools-light-dark-toggle--1, var(--shadow));container-type:inline-size}@supports not (color: light-dark(tan,tan)){.k-login *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-950);--dialog-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) none;--dialog-shadow: var(--csstools-light-dark-toggle--1, var(--shadow))}}@supports (color: light-dark(red,red)){.k-login{--dialog-color-back: light-dark(var(--color-white), var(--color-gray-950));--dialog-shadow: light-dark(var(--shadow), none)}}.k-login-buttons{--button-padding: var(--spacing-3);display:flex;gap:1.5rem;align-items:center;justify-content:space-between;margin-top:var(--spacing-10)}.k-page-view[data-has-tabs=true] .k-page-view-header,.k-site-view[data-has-tabs=true] .k-site-view-header{margin-bottom:0}:root{--preview-browser-color-background: var(--input-color-back)}.k-preview-browser{container-type:inline-size;display:flex;flex-direction:column;border-radius:var(--rounded-lg);box-shadow:var(--shadow-xl);background:var(--preview-browser-color-background);overflow:hidden;border:1px solid var(--color-border)}.k-preview-browser-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-6);background:var(--preview-browser-color-background);border-bottom:1px solid var(--color-border);color:var(--color-text);padding-inline:var(--spacing-2);height:var(--input-height)}.k-preview-browser header .k-headline{display:flex;align-items:center;gap:var(--spacing-1);font-weight:var(--font-normal);font-size:var(--text-xs);padding-inline:var(--spacing-1)}.k-preview-browser-header .k-form-controls-button{font-size:var(--text-xs);--button-rounded: 3px;--icon-size: 1rem}.k-preview-browser-message{font-size:var(--text-xs);display:flex;margin-inline-end:var(--spacing-1);color:var(--color-text-dimmed)}.k-preview-browser iframe{width:100%;flex-grow:1}@container (max-width: 30rem){.k-preview-browser-message{display:none}}.k-preview-view{position:fixed;inset:0;height:100%;display:grid;grid-template-rows:auto 1fr}.k-preview-view-header{container-type:inline-size;display:flex;gap:var(--spacing-2);justify-content:space-between;align-items:center;padding:var(--spacing-3)}.k-preview-view-tree{--tree-branch-color-back: transparent;--tree-branch-hover-color-back: var(--color-gray-800);--tree-branch-selected-color-back: var(--color-blue-800);width:20rem}.k-preview-view-grid{display:flex;justify-content:center;padding:var(--spacing-3);padding-top:0;gap:var(--spacing-3)}@media screen and (max-width:60rem){.k-preview-view-grid{flex-direction:column}.k-preview-view-title{display:none}}.k-preview-view .k-preview-browser{flex-grow:1;flex-basis:50%}.k-user-view-header{margin-bottom:0;border-bottom:0}.k-user-view .k-user-profile{margin-bottom:var(--spacing-12)}.k-user-view .k-user-profile:has(+.k-tabs){margin-bottom:0}.k-password-reset-view .k-user-info{margin-bottom:var(--spacing-8)}.k-user-view-image{padding:0}.k-user-view-image .k-frame{width:6rem;height:6rem;border-radius:var(--rounded);line-height:0}.k-user-view-image .k-icon-frame{--back: var(--color-black);--icon-color: var(--color-gray-200)}.k-user-info{display:flex;align-items:center;font-size:var(--text-sm);height:var(--height-lg);gap:.75rem;padding-inline:var(--spacing-2);background:var(--item-color-back);box-shadow:var(--shadow)}.k-user-info :where(.k-image-frame,.k-icon-frame){width:1.5rem;border-radius:var(--rounded-sm)}.k-user-profile{--button-height: auto;padding:var(--spacing-2);background:var(--item-color-back);border-radius:var(--rounded-lg);display:flex;align-items:center;gap:var(--spacing-3);box-shadow:var(--shadow)}.k-user-profile .k-button-group{display:flex;flex-direction:column;align-items:flex-start}.k-users-view-header{margin-bottom:0}.k-system-info .k-stat-label{color:var(--theme-color-text, currentColor)}.k-table-license-status-cell{padding:0 var(--spacing-1)}.k-table-update-status-cell{padding:0 .75rem;display:flex;align-items:center;height:100%}.k-table-update-status-cell-version,.k-table-update-status-cell-button{font-variant-numeric:tabular-nums}.k-plugin-info{display:grid;column-gap:var(--spacing-3);row-gap:2px;padding:var(--button-padding)}.k-plugin-info dt{color:var(--color-gray-400)}.k-plugin-info dd[data-theme]{color:var(--theme-color-600)}@container (max-width: 30em){.k-plugin-info dd:not(:last-of-type){margin-bottom:var(--spacing-2)}}@container (min-width: 30em){.k-plugin-info{width:20rem;grid-template-columns:1fr auto}}:root{--color-l-100: 98%;--color-l-150: 96%;--color-l-200: 94%;--color-l-250: 91%;--color-l-300: 88%;--color-l-350: 84%;--color-l-400: 80%;--color-l-450: 75%;--color-l-500: 70%;--color-l-550: 65%;--color-l-600: 60%;--color-l-650: 52%;--color-l-700: 45%;--color-l-750: 40%;--color-l-800: 30%;--color-l-850: 21%;--color-l-900: 15%;--color-l-950: 11%;--color-red-h: 0;--color-red-s: 80%;--color-red-hs: var(--color-red-h), var(--color-red-s);--color-red-boost: 3%;--color-red-l-100: calc(var(--color-l-100) + var(--color-red-boost));--color-red-l-150: calc(var(--color-l-150) + var(--color-red-boost));--color-red-l-200: calc(var(--color-l-200) + var(--color-red-boost));--color-red-l-250: calc(var(--color-l-250) + var(--color-red-boost));--color-red-l-300: calc(var(--color-l-300) + var(--color-red-boost));--color-red-l-350: calc(var(--color-l-350) + var(--color-red-boost));--color-red-l-400: calc(var(--color-l-400) + var(--color-red-boost));--color-red-l-450: calc(var(--color-l-450) + var(--color-red-boost));--color-red-l-500: calc(var(--color-l-500) + var(--color-red-boost));--color-red-l-550: calc(var(--color-l-550) + var(--color-red-boost));--color-red-l-600: calc(var(--color-l-600) + var(--color-red-boost));--color-red-l-650: calc(var(--color-l-650) + var(--color-red-boost));--color-red-l-700: calc(var(--color-l-700) + var(--color-red-boost));--color-red-l-750: calc(var(--color-l-750) + var(--color-red-boost));--color-red-l-800: calc(var(--color-l-800) + var(--color-red-boost));--color-red-l-850: calc(var(--color-l-850) + var(--color-red-boost));--color-red-l-900: calc(var(--color-l-900) + var(--color-red-boost));--color-red-l-950: calc(var(--color-l-950) + var(--color-red-boost));--color-red-100: hsl(var(--color-red-hs), var(--color-red-l-100));--color-red-150: hsl(var(--color-red-hs), var(--color-red-l-150));--color-red-200: hsl(var(--color-red-hs), var(--color-red-l-200));--color-red-250: hsl(var(--color-red-hs), var(--color-red-l-250));--color-red-300: hsl(var(--color-red-hs), var(--color-red-l-300));--color-red-350: hsl(var(--color-red-hs), var(--color-red-l-350));--color-red-400: hsl(var(--color-red-hs), var(--color-red-l-400));--color-red-450: hsl(var(--color-red-hs), var(--color-red-l-450));--color-red-500: hsl(var(--color-red-hs), var(--color-red-l-500));--color-red-550: hsl(var(--color-red-hs), var(--color-red-l-550));--color-red-600: hsl(var(--color-red-hs), var(--color-red-l-600));--color-red-650: hsl(var(--color-red-hs), var(--color-red-l-650));--color-red-700: hsl(var(--color-red-hs), var(--color-red-l-700));--color-red-750: hsl(var(--color-red-hs), var(--color-red-l-750));--color-red-800: hsl(var(--color-red-hs), var(--color-red-l-800));--color-red-850: hsl(var(--color-red-hs), var(--color-red-l-850));--color-red-900: hsl(var(--color-red-hs), var(--color-red-l-900));--color-red-950: hsl(var(--color-red-hs), var(--color-red-l-950));--color-orange-h: 28;--color-orange-s: 80%;--color-orange-hs: var(--color-orange-h), var(--color-orange-s);--color-orange-boost: 2%;--color-orange-l-100: calc(var(--color-l-100) + var(--color-orange-boost));--color-orange-l-150: calc(var(--color-l-150) + var(--color-orange-boost));--color-orange-l-200: calc(var(--color-l-200) + var(--color-orange-boost));--color-orange-l-250: calc(var(--color-l-250) + var(--color-orange-boost));--color-orange-l-300: calc(var(--color-l-300) + var(--color-orange-boost));--color-orange-l-350: calc(var(--color-l-350) + var(--color-orange-boost));--color-orange-l-400: calc(var(--color-l-400) + var(--color-orange-boost));--color-orange-l-450: calc(var(--color-l-450) + var(--color-orange-boost));--color-orange-l-500: calc(var(--color-l-500) + var(--color-orange-boost));--color-orange-l-550: calc(var(--color-l-550) + var(--color-orange-boost));--color-orange-l-600: calc(var(--color-l-600) + var(--color-orange-boost));--color-orange-l-650: calc(var(--color-l-650) + var(--color-orange-boost));--color-orange-l-700: calc(var(--color-l-700) + var(--color-orange-boost));--color-orange-l-750: calc(var(--color-l-750) + var(--color-orange-boost));--color-orange-l-800: calc(var(--color-l-800) + var(--color-orange-boost));--color-orange-l-850: calc(var(--color-l-850) + var(--color-orange-boost));--color-orange-l-900: calc(var(--color-l-900) + var(--color-orange-boost));--color-orange-l-950: calc(var(--color-l-950) + var(--color-orange-boost));--color-orange-100: hsl(var(--color-orange-hs), var(--color-orange-l-100));--color-orange-150: hsl(var(--color-orange-hs), var(--color-orange-l-150));--color-orange-200: hsl(var(--color-orange-hs), var(--color-orange-l-200));--color-orange-250: hsl(var(--color-orange-hs), var(--color-orange-l-250));--color-orange-300: hsl(var(--color-orange-hs), var(--color-orange-l-300));--color-orange-350: hsl(var(--color-orange-hs), var(--color-orange-l-350));--color-orange-400: hsl(var(--color-orange-hs), var(--color-orange-l-400));--color-orange-450: hsl(var(--color-orange-hs), var(--color-orange-l-450));--color-orange-500: hsl(var(--color-orange-hs), var(--color-orange-l-500));--color-orange-550: hsl(var(--color-orange-hs), var(--color-orange-l-550));--color-orange-600: hsl(var(--color-orange-hs), var(--color-orange-l-600));--color-orange-650: hsl(var(--color-orange-hs), var(--color-orange-l-650));--color-orange-700: hsl(var(--color-orange-hs), var(--color-orange-l-700));--color-orange-750: hsl(var(--color-orange-hs), var(--color-orange-l-750));--color-orange-800: hsl(var(--color-orange-hs), var(--color-orange-l-800));--color-orange-850: hsl(var(--color-orange-hs), var(--color-orange-l-850));--color-orange-900: hsl(var(--color-orange-hs), var(--color-orange-l-900));--color-orange-950: hsl(var(--color-orange-hs), var(--color-orange-l-950));--color-yellow-h: 47;--color-yellow-s: 80%;--color-yellow-hs: var(--color-yellow-h), var(--color-yellow-s);--color-yellow-boost: -4%;--color-yellow-l-100: calc(var(--color-l-100) + var(--color-yellow-boost));--color-yellow-l-150: calc(var(--color-l-150) + var(--color-yellow-boost));--color-yellow-l-200: calc(var(--color-l-200) + var(--color-yellow-boost));--color-yellow-l-250: calc(var(--color-l-250) + var(--color-yellow-boost));--color-yellow-l-300: calc(var(--color-l-300) + var(--color-yellow-boost));--color-yellow-l-350: calc(var(--color-l-350) + var(--color-yellow-boost));--color-yellow-l-400: calc(var(--color-l-400) + var(--color-yellow-boost));--color-yellow-l-450: calc(var(--color-l-450) + var(--color-yellow-boost));--color-yellow-l-500: calc(var(--color-l-500) + var(--color-yellow-boost));--color-yellow-l-550: calc(var(--color-l-550) + var(--color-yellow-boost));--color-yellow-l-600: calc(var(--color-l-600) + var(--color-yellow-boost));--color-yellow-l-650: calc(var(--color-l-650) + var(--color-yellow-boost));--color-yellow-l-700: calc(var(--color-l-700) + var(--color-yellow-boost));--color-yellow-l-750: calc(var(--color-l-750) + var(--color-yellow-boost));--color-yellow-l-800: calc(var(--color-l-800) + var(--color-yellow-boost));--color-yellow-l-850: calc(var(--color-l-850) + var(--color-yellow-boost));--color-yellow-l-900: calc(var(--color-l-900) + var(--color-yellow-boost));--color-yellow-l-950: calc(var(--color-l-950) + var(--color-yellow-boost));--color-yellow-100: hsl(var(--color-yellow-hs), var(--color-yellow-l-100));--color-yellow-150: hsl(var(--color-yellow-hs), var(--color-yellow-l-150));--color-yellow-200: hsl(var(--color-yellow-hs), var(--color-yellow-l-200));--color-yellow-250: hsl(var(--color-yellow-hs), var(--color-yellow-l-250));--color-yellow-300: hsl(var(--color-yellow-hs), var(--color-yellow-l-300));--color-yellow-350: hsl(var(--color-yellow-hs), var(--color-yellow-l-350));--color-yellow-400: hsl(var(--color-yellow-hs), var(--color-yellow-l-400));--color-yellow-450: hsl(var(--color-yellow-hs), var(--color-yellow-l-450));--color-yellow-500: hsl(var(--color-yellow-hs), var(--color-yellow-l-500));--color-yellow-550: hsl(var(--color-yellow-hs), var(--color-yellow-l-550));--color-yellow-600: hsl(var(--color-yellow-hs), var(--color-yellow-l-600));--color-yellow-650: hsl(var(--color-yellow-hs), var(--color-yellow-l-650));--color-yellow-700: hsl(var(--color-yellow-hs), var(--color-yellow-l-700));--color-yellow-750: hsl(var(--color-yellow-hs), var(--color-yellow-l-750));--color-yellow-800: hsl(var(--color-yellow-hs), var(--color-yellow-l-800));--color-yellow-850: hsl(var(--color-yellow-hs), var(--color-yellow-l-850));--color-yellow-900: hsl(var(--color-yellow-hs), var(--color-yellow-l-900));--color-yellow-950: hsl(var(--color-yellow-hs), var(--color-yellow-l-950));--color-green-h: 80;--color-green-s: 60%;--color-green-hs: var(--color-green-h), var(--color-green-s);--color-green-boost: -8%;--color-green-l-100: calc(var(--color-l-100) + var(--color-green-boost));--color-green-l-150: calc(var(--color-l-150) + var(--color-green-boost));--color-green-l-200: calc(var(--color-l-200) + var(--color-green-boost));--color-green-l-250: calc(var(--color-l-250) + var(--color-green-boost));--color-green-l-300: calc(var(--color-l-300) + var(--color-green-boost));--color-green-l-350: calc(var(--color-l-350) + var(--color-green-boost));--color-green-l-400: calc(var(--color-l-400) + var(--color-green-boost));--color-green-l-450: calc(var(--color-l-450) + var(--color-green-boost));--color-green-l-500: calc(var(--color-l-500) + var(--color-green-boost));--color-green-l-550: calc(var(--color-l-550) + var(--color-green-boost));--color-green-l-600: calc(var(--color-l-600) + var(--color-green-boost));--color-green-l-650: calc(var(--color-l-650) + var(--color-green-boost));--color-green-l-700: calc(var(--color-l-700) + var(--color-green-boost));--color-green-l-750: calc(var(--color-l-750) + var(--color-green-boost));--color-green-l-800: calc(var(--color-l-800) + var(--color-green-boost));--color-green-l-850: calc(var(--color-l-850) + var(--color-green-boost));--color-green-l-900: calc(var(--color-l-900) + var(--color-green-boost));--color-green-l-950: calc(var(--color-l-950) + var(--color-green-boost));--color-green-100: hsl(var(--color-green-hs), var(--color-green-l-100));--color-green-150: hsl(var(--color-green-hs), var(--color-green-l-150));--color-green-200: hsl(var(--color-green-hs), var(--color-green-l-200));--color-green-250: hsl(var(--color-green-hs), var(--color-green-l-250));--color-green-300: hsl(var(--color-green-hs), var(--color-green-l-300));--color-green-350: hsl(var(--color-green-hs), var(--color-green-l-350));--color-green-400: hsl(var(--color-green-hs), var(--color-green-l-400));--color-green-450: hsl(var(--color-green-hs), var(--color-green-l-450));--color-green-500: hsl(var(--color-green-hs), var(--color-green-l-500));--color-green-550: hsl(var(--color-green-hs), var(--color-green-l-550));--color-green-600: hsl(var(--color-green-hs), var(--color-green-l-600));--color-green-650: hsl(var(--color-green-hs), var(--color-green-l-650));--color-green-700: hsl(var(--color-green-hs), var(--color-green-l-700));--color-green-750: hsl(var(--color-green-hs), var(--color-green-l-750));--color-green-800: hsl(var(--color-green-hs), var(--color-green-l-800));--color-green-850: hsl(var(--color-green-hs), var(--color-green-l-850));--color-green-900: hsl(var(--color-green-hs), var(--color-green-l-900));--color-green-950: hsl(var(--color-green-hs), var(--color-green-l-950));--color-aqua-h: 180;--color-aqua-s: 50%;--color-aqua-hs: var(--color-aqua-h), var(--color-aqua-s);--color-aqua-boost: -4%;--color-aqua-l-100: calc(var(--color-l-100) + var(--color-aqua-boost));--color-aqua-l-150: calc(var(--color-l-150) + var(--color-aqua-boost));--color-aqua-l-200: calc(var(--color-l-200) + var(--color-aqua-boost));--color-aqua-l-250: calc(var(--color-l-250) + var(--color-aqua-boost));--color-aqua-l-300: calc(var(--color-l-300) + var(--color-aqua-boost));--color-aqua-l-350: calc(var(--color-l-350) + var(--color-aqua-boost));--color-aqua-l-400: calc(var(--color-l-400) + var(--color-aqua-boost));--color-aqua-l-450: calc(var(--color-l-450) + var(--color-aqua-boost));--color-aqua-l-500: calc(var(--color-l-500) + var(--color-aqua-boost));--color-aqua-l-550: calc(var(--color-l-550) + var(--color-aqua-boost));--color-aqua-l-600: calc(var(--color-l-600) + var(--color-aqua-boost));--color-aqua-l-650: calc(var(--color-l-650) + var(--color-aqua-boost));--color-aqua-l-700: calc(var(--color-l-700) + var(--color-aqua-boost));--color-aqua-l-750: calc(var(--color-l-750) + var(--color-aqua-boost));--color-aqua-l-800: calc(var(--color-l-800) + var(--color-aqua-boost));--color-aqua-l-850: calc(var(--color-l-850) + var(--color-aqua-boost));--color-aqua-l-900: calc(var(--color-l-900) + var(--color-aqua-boost));--color-aqua-l-950: calc(var(--color-l-950) + var(--color-aqua-boost));--color-aqua-100: hsl(var(--color-aqua-hs), var(--color-aqua-l-100));--color-aqua-150: hsl(var(--color-aqua-hs), var(--color-aqua-l-150));--color-aqua-200: hsl(var(--color-aqua-hs), var(--color-aqua-l-200));--color-aqua-250: hsl(var(--color-aqua-hs), var(--color-aqua-l-250));--color-aqua-300: hsl(var(--color-aqua-hs), var(--color-aqua-l-300));--color-aqua-350: hsl(var(--color-aqua-hs), var(--color-aqua-l-350));--color-aqua-400: hsl(var(--color-aqua-hs), var(--color-aqua-l-400));--color-aqua-450: hsl(var(--color-aqua-hs), var(--color-aqua-l-450));--color-aqua-500: hsl(var(--color-aqua-hs), var(--color-aqua-l-500));--color-aqua-550: hsl(var(--color-aqua-hs), var(--color-aqua-l-550));--color-aqua-600: hsl(var(--color-aqua-hs), var(--color-aqua-l-600));--color-aqua-650: hsl(var(--color-aqua-hs), var(--color-aqua-l-650));--color-aqua-700: hsl(var(--color-aqua-hs), var(--color-aqua-l-700));--color-aqua-750: hsl(var(--color-aqua-hs), var(--color-aqua-l-750));--color-aqua-800: hsl(var(--color-aqua-hs), var(--color-aqua-l-800));--color-aqua-850: hsl(var(--color-aqua-hs), var(--color-aqua-l-850));--color-aqua-900: hsl(var(--color-aqua-hs), var(--color-aqua-l-900));--color-aqua-950: hsl(var(--color-aqua-hs), var(--color-aqua-l-950));--color-blue-h: 210;--color-blue-s: 65%;--color-blue-hs: var(--color-blue-h), var(--color-blue-s);--color-blue-boost: 3%;--color-blue-l-100: calc(var(--color-l-100) + var(--color-blue-boost));--color-blue-l-150: calc(var(--color-l-150) + var(--color-blue-boost));--color-blue-l-200: calc(var(--color-l-200) + var(--color-blue-boost));--color-blue-l-250: calc(var(--color-l-250) + var(--color-blue-boost));--color-blue-l-300: calc(var(--color-l-300) + var(--color-blue-boost));--color-blue-l-350: calc(var(--color-l-350) + var(--color-blue-boost));--color-blue-l-400: calc(var(--color-l-400) + var(--color-blue-boost));--color-blue-l-450: calc(var(--color-l-450) + var(--color-blue-boost));--color-blue-l-500: calc(var(--color-l-500) + var(--color-blue-boost));--color-blue-l-550: calc(var(--color-l-550) + var(--color-blue-boost));--color-blue-l-600: calc(var(--color-l-600) + var(--color-blue-boost));--color-blue-l-650: calc(var(--color-l-650) + var(--color-blue-boost));--color-blue-l-700: calc(var(--color-l-700) + var(--color-blue-boost));--color-blue-l-750: calc(var(--color-l-750) + var(--color-blue-boost));--color-blue-l-800: calc(var(--color-l-800) + var(--color-blue-boost));--color-blue-l-850: calc(var(--color-l-850) + var(--color-blue-boost));--color-blue-l-900: calc(var(--color-l-900) + var(--color-blue-boost));--color-blue-l-950: calc(var(--color-l-950) + var(--color-blue-boost));--color-blue-100: hsl(var(--color-blue-hs), var(--color-blue-l-100));--color-blue-150: hsl(var(--color-blue-hs), var(--color-blue-l-150));--color-blue-200: hsl(var(--color-blue-hs), var(--color-blue-l-200));--color-blue-250: hsl(var(--color-blue-hs), var(--color-blue-l-250));--color-blue-300: hsl(var(--color-blue-hs), var(--color-blue-l-300));--color-blue-350: hsl(var(--color-blue-hs), var(--color-blue-l-350));--color-blue-400: hsl(var(--color-blue-hs), var(--color-blue-l-400));--color-blue-450: hsl(var(--color-blue-hs), var(--color-blue-l-450));--color-blue-500: hsl(var(--color-blue-hs), var(--color-blue-l-500));--color-blue-550: hsl(var(--color-blue-hs), var(--color-blue-l-550));--color-blue-600: hsl(var(--color-blue-hs), var(--color-blue-l-600));--color-blue-650: hsl(var(--color-blue-hs), var(--color-blue-l-650));--color-blue-700: hsl(var(--color-blue-hs), var(--color-blue-l-700));--color-blue-750: hsl(var(--color-blue-hs), var(--color-blue-l-750));--color-blue-800: hsl(var(--color-blue-hs), var(--color-blue-l-800));--color-blue-850: hsl(var(--color-blue-hs), var(--color-blue-l-850));--color-blue-900: hsl(var(--color-blue-hs), var(--color-blue-l-900));--color-blue-950: hsl(var(--color-blue-hs), var(--color-blue-l-950));--color-purple-h: 275;--color-purple-s: 60%;--color-purple-hs: var(--color-purple-h), var(--color-purple-s);--color-purple-boost: 0%;--color-purple-l-100: calc(var(--color-l-100) + var(--color-purple-boost));--color-purple-l-150: calc(var(--color-l-150) + var(--color-purple-boost));--color-purple-l-200: calc(var(--color-l-200) + var(--color-purple-boost));--color-purple-l-250: calc(var(--color-l-250) + var(--color-purple-boost));--color-purple-l-300: calc(var(--color-l-300) + var(--color-purple-boost));--color-purple-l-350: calc(var(--color-l-350) + var(--color-purple-boost));--color-purple-l-400: calc(var(--color-l-400) + var(--color-purple-boost));--color-purple-l-450: calc(var(--color-l-450) + var(--color-purple-boost));--color-purple-l-500: calc(var(--color-l-500) + var(--color-purple-boost));--color-purple-l-550: calc(var(--color-l-550) + var(--color-purple-boost));--color-purple-l-600: calc(var(--color-l-600) + var(--color-purple-boost));--color-purple-l-650: calc(var(--color-l-650) + var(--color-purple-boost));--color-purple-l-700: calc(var(--color-l-700) + var(--color-purple-boost));--color-purple-l-750: calc(var(--color-l-750) + var(--color-purple-boost));--color-purple-l-800: calc(var(--color-l-800) + var(--color-purple-boost));--color-purple-l-850: calc(var(--color-l-850) + var(--color-purple-boost));--color-purple-l-900: calc(var(--color-l-900) + var(--color-purple-boost));--color-purple-l-950: calc(var(--color-l-950) + var(--color-purple-boost));--color-purple-100: hsl(var(--color-purple-hs), var(--color-purple-l-100));--color-purple-150: hsl(var(--color-purple-hs), var(--color-purple-l-150));--color-purple-200: hsl(var(--color-purple-hs), var(--color-purple-l-200));--color-purple-250: hsl(var(--color-purple-hs), var(--color-purple-l-250));--color-purple-300: hsl(var(--color-purple-hs), var(--color-purple-l-300));--color-purple-350: hsl(var(--color-purple-hs), var(--color-purple-l-350));--color-purple-400: hsl(var(--color-purple-hs), var(--color-purple-l-400));--color-purple-450: hsl(var(--color-purple-hs), var(--color-purple-l-450));--color-purple-500: hsl(var(--color-purple-hs), var(--color-purple-l-500));--color-purple-550: hsl(var(--color-purple-hs), var(--color-purple-l-550));--color-purple-600: hsl(var(--color-purple-hs), var(--color-purple-l-600));--color-purple-650: hsl(var(--color-purple-hs), var(--color-purple-l-650));--color-purple-700: hsl(var(--color-purple-hs), var(--color-purple-l-700));--color-purple-750: hsl(var(--color-purple-hs), var(--color-purple-l-750));--color-purple-800: hsl(var(--color-purple-hs), var(--color-purple-l-800));--color-purple-850: hsl(var(--color-purple-hs), var(--color-purple-l-850));--color-purple-900: hsl(var(--color-purple-hs), var(--color-purple-l-900));--color-purple-950: hsl(var(--color-purple-hs), var(--color-purple-l-950));--color-pink-h: 320;--color-pink-s: 70%;--color-pink-hs: var(--color-pink-h), var(--color-pink-s);--color-pink-boost: 0%;--color-pink-l-100: calc(var(--color-l-100) + var(--color-pink-boost));--color-pink-l-150: calc(var(--color-l-150) + var(--color-pink-boost));--color-pink-l-200: calc(var(--color-l-200) + var(--color-pink-boost));--color-pink-l-250: calc(var(--color-l-250) + var(--color-pink-boost));--color-pink-l-300: calc(var(--color-l-300) + var(--color-pink-boost));--color-pink-l-350: calc(var(--color-l-350) + var(--color-pink-boost));--color-pink-l-400: calc(var(--color-l-400) + var(--color-pink-boost));--color-pink-l-450: calc(var(--color-l-450) + var(--color-pink-boost));--color-pink-l-500: calc(var(--color-l-500) + var(--color-pink-boost));--color-pink-l-550: calc(var(--color-l-550) + var(--color-pink-boost));--color-pink-l-600: calc(var(--color-l-600) + var(--color-pink-boost));--color-pink-l-650: calc(var(--color-l-650) + var(--color-pink-boost));--color-pink-l-700: calc(var(--color-l-700) + var(--color-pink-boost));--color-pink-l-750: calc(var(--color-l-750) + var(--color-pink-boost));--color-pink-l-800: calc(var(--color-l-800) + var(--color-pink-boost));--color-pink-l-850: calc(var(--color-l-850) + var(--color-pink-boost));--color-pink-l-900: calc(var(--color-l-900) + var(--color-pink-boost));--color-pink-l-950: calc(var(--color-l-950) + var(--color-pink-boost));--color-pink-100: hsl(var(--color-pink-hs), var(--color-pink-l-100));--color-pink-150: hsl(var(--color-pink-hs), var(--color-pink-l-150));--color-pink-200: hsl(var(--color-pink-hs), var(--color-pink-l-200));--color-pink-250: hsl(var(--color-pink-hs), var(--color-pink-l-250));--color-pink-300: hsl(var(--color-pink-hs), var(--color-pink-l-300));--color-pink-350: hsl(var(--color-pink-hs), var(--color-pink-l-350));--color-pink-400: hsl(var(--color-pink-hs), var(--color-pink-l-400));--color-pink-450: hsl(var(--color-pink-hs), var(--color-pink-l-450));--color-pink-500: hsl(var(--color-pink-hs), var(--color-pink-l-500));--color-pink-550: hsl(var(--color-pink-hs), var(--color-pink-l-550));--color-pink-600: hsl(var(--color-pink-hs), var(--color-pink-l-600));--color-pink-650: hsl(var(--color-pink-hs), var(--color-pink-l-650));--color-pink-700: hsl(var(--color-pink-hs), var(--color-pink-l-700));--color-pink-750: hsl(var(--color-pink-hs), var(--color-pink-l-750));--color-pink-800: hsl(var(--color-pink-hs), var(--color-pink-l-800));--color-pink-850: hsl(var(--color-pink-hs), var(--color-pink-l-850));--color-pink-900: hsl(var(--color-pink-hs), var(--color-pink-l-900));--color-pink-950: hsl(var(--color-pink-hs), var(--color-pink-l-950));--color-gray-h: 0;--color-gray-s: 0%;--color-gray-hs: var(--color-gray-h), var(--color-gray-s);--color-gray-boost: 0%;--color-gray-l-100: calc(var(--color-l-100) + var(--color-gray-boost));--color-gray-l-150: calc(var(--color-l-150) + var(--color-gray-boost));--color-gray-l-200: calc(var(--color-l-200) + var(--color-gray-boost));--color-gray-l-250: calc(var(--color-l-250) + var(--color-gray-boost));--color-gray-l-300: calc(var(--color-l-300) + var(--color-gray-boost));--color-gray-l-350: calc(var(--color-l-350) + var(--color-gray-boost));--color-gray-l-400: calc(var(--color-l-400) + var(--color-gray-boost));--color-gray-l-450: calc(var(--color-l-450) + var(--color-gray-boost));--color-gray-l-500: calc(var(--color-l-500) + var(--color-gray-boost));--color-gray-l-550: calc(var(--color-l-550) + var(--color-gray-boost));--color-gray-l-600: calc(var(--color-l-600) + var(--color-gray-boost));--color-gray-l-650: calc(var(--color-l-650) + var(--color-gray-boost));--color-gray-l-700: calc(var(--color-l-700) + var(--color-gray-boost));--color-gray-l-750: calc(var(--color-l-750) + var(--color-gray-boost));--color-gray-l-800: calc(var(--color-l-800) + var(--color-gray-boost));--color-gray-l-850: calc(var(--color-l-850) + var(--color-gray-boost));--color-gray-l-900: calc(var(--color-l-900) + var(--color-gray-boost));--color-gray-l-950: calc(var(--color-l-950) + var(--color-gray-boost));--color-gray-100: hsl(var(--color-gray-hs), var(--color-gray-l-100));--color-gray-150: hsl(var(--color-gray-hs), var(--color-gray-l-150));--color-gray-200: hsl(var(--color-gray-hs), var(--color-gray-l-200));--color-gray-250: hsl(var(--color-gray-hs), var(--color-gray-l-250));--color-gray-300: hsl(var(--color-gray-hs), var(--color-gray-l-300));--color-gray-350: hsl(var(--color-gray-hs), var(--color-gray-l-350));--color-gray-400: hsl(var(--color-gray-hs), var(--color-gray-l-400));--color-gray-450: hsl(var(--color-gray-hs), var(--color-gray-l-450));--color-gray-500: hsl(var(--color-gray-hs), var(--color-gray-l-500));--color-gray-550: hsl(var(--color-gray-hs), var(--color-gray-l-550));--color-gray-600: hsl(var(--color-gray-hs), var(--color-gray-l-600));--color-gray-650: hsl(var(--color-gray-hs), var(--color-gray-l-650));--color-gray-700: hsl(var(--color-gray-hs), var(--color-gray-l-700));--color-gray-750: hsl(var(--color-gray-hs), var(--color-gray-l-750));--color-gray-800: hsl(var(--color-gray-hs), var(--color-gray-l-800));--color-gray-850: hsl(var(--color-gray-hs), var(--color-gray-l-850));--color-gray-900: hsl(var(--color-gray-hs), var(--color-gray-l-900));--color-gray-950: hsl(var(--color-gray-hs), var(--color-gray-l-950));--color-black: hsl(0, 0%, 0%);--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-800);--color-border: var(--csstools-light-dark-toggle--0, var(--color-gray-300));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--color-border-dimmed: var(--csstools-light-dark-toggle--1, hsla(0, 0%, 0%, .1));--color-dark: var(--color-gray-900);--color-focus: var(--color-blue-600);--color-light: var(--color-gray-200);--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-white);--color-text: var(--csstools-light-dark-toggle--2, var(--color-black));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-400);--color-text-dimmed: var(--csstools-light-dark-toggle--3, var(--color-gray-700));--color-white: hsl(0, 0%, 100%);--color-backdrop: rgba(0, 0, 0, .6);--color-background: var(--panel-color-back);--color-gray: var(--color-gray-600);--color-red: var(--color-red-600);--color-orange: var(--color-orange-600);--color-yellow: var(--color-yellow-600);--color-green: var(--color-green-600);--color-aqua: var(--color-aqua-600);--color-blue: var(--color-blue-600);--color-purple: var(--color-purple-600);--color-focus-light: var(--color-focus);--color-focus-outline: var(--color-focus);--color-negative: var(--color-red-700);--color-negative-light: var(--color-red-500);--color-negative-outline: var(--color-red-900);--color-notice: var(--color-orange-700);--color-notice-light: var(--color-orange-500);--color-positive: var(--color-green-700);--color-positive-light: var(--color-green-500);--color-positive-outline: var(--color-green-900);--color-text-light: var(--color-text-dimmed)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-800);--color-border: var(--csstools-light-dark-toggle--0, var(--color-gray-300));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-850);--color-border-dimmed: var(--csstools-light-dark-toggle--1, hsla(0, 0%, 0%, .1));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-white);--color-text: var(--csstools-light-dark-toggle--2, var(--color-black));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-400);--color-text-dimmed: var(--csstools-light-dark-toggle--3, var(--color-gray-700))}}@supports (color: light-dark(red,red)){:root{--color-border: light-dark(var(--color-gray-300), var(--color-gray-800));--color-border-dimmed: light-dark( hsla(0, 0%, 0%, .1), var(--color-gray-850) );--color-text: light-dark(var(--color-black), var(--color-white));--color-text-dimmed: light-dark(var(--color-gray-700), var(--color-gray-400))}}:root:has(.k-panel[data-theme=dark]){--csstools-color-scheme--light: ;color-scheme:dark;--color-l-100: 95%;--color-l-150: 90%;--color-l-200: 86%;--color-l-250: 79%;--color-l-300: 74%;--color-l-350: 71%;--color-l-400: 68%;--color-l-450: 66%;--color-l-500: 64%;--color-l-550: 59%;--color-l-600: 54%;--color-l-650: 46%;--color-l-700: 37%;--color-l-750: 33%;--color-l-800: 25%;--color-l-850: 19%;--color-l-900: 12%;--color-l-950: 7%}:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--font-mono: "SFMono-Regular", Consolas, Liberation Mono, Menlo, Courier, monospace}:root{--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.75rem;--text-4xl: 2.5rem;--text-5xl: 3rem;--text-6xl: 4rem;--text-base: var(--text-md);--font-size-tiny: var(--text-xs);--font-size-small: var(--text-sm);--font-size-medium: var(--text-base);--font-size-large: var(--text-xl);--font-size-huge: var(--text-2xl);--font-size-monster: var(--text-3xl)}:root{--font-thin: 300;--font-normal: 400;--font-semi: 500;--font-bold: 600}:root{--height-xs: 1.5rem;--height-sm: 1.75rem;--height-md: 2rem;--height-lg: 2.25rem;--height-xl: 2.5rem;--height: var(--height-md)}:root{--opacity-disabled: .5}:root{--rounded-xs: 1px;--rounded-sm: .125rem;--rounded-md: .25rem;--rounded-lg: .375rem;--rounded-xl: .5rem;--rounded: var(--rounded-md)}:root{--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .025);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .05);--shadow: var(--shadow-sm);--shadow-toolbar: rgba(0, 0, 0, .1) -2px 0 5px, var(--shadow), var(--shadow-xl);--shadow-outline: var(--color-focus, currentColor) 0 0 0 2px;--shadow-inset: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--shadow-sticky: rgba(0, 0, 0, .05) 0 2px 5px;--box-shadow-dropdown: var(--shadow-dropdown);--box-shadow-item: var(--shadow);--box-shadow-focus: var(--shadow-xl);--shadow-dropdown: var(--shadow-lg);--shadow-item: var(--shadow-sm)}:root:has(.k-panel[data-theme=dark]){--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .2), 0 1px 2px 0 rgba(0, 0, 0, .125);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 10px 10px -5px rgba(0, 0, 0, .35)}:root{--spacing-0: 0;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-24: 6rem;--spacing-36: 9rem;--spacing-48: 12rem;--spacing-px: 1px;--spacing-2px: 2px;--spacing-5: 1.25rem;--spacing-10: 2.5rem;--spacing-20: 5rem}:root{--z-offline: 1200;--z-fatal: 1100;--z-loader: 1000;--z-notification: 900;--z-dialog: 800;--z-navigation: 700;--z-dropdown: 600;--z-drawer: 500;--z-dropzone: 400;--z-toolbar: 300;--z-content: 200;--z-background: 100}:root{--pattern-size: 16px;--pattern-light: repeating-conic-gradient( hsl(0, 0%, 100%) 0% 25%, hsl(0, 0%, 90%) 0% 50% ) 50% / var(--pattern-size) var(--pattern-size);--pattern-dark: repeating-conic-gradient( hsla(0, 0%, 15%) 0% 25%, hsl(0, 0%, 22%) 0% 50% ) 50% / var(--pattern-size) var(--pattern-size);--pattern: var(--pattern-dark)}:root{--container: 80rem;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--field-input-padding: var(--input-padding);--field-input-height: var(--input-height);--field-input-line-height: var(--input-leading);--field-input-font-size: var(--input-font-size);--bg-pattern: var(--pattern)}:root{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-800);--choice-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-300);--choice-color-border: var(--csstools-light-dark-toggle--1, var(--color-gray-500));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-200);--choice-color-checked: var(--csstools-light-dark-toggle--2, var(--color-black));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-700);--choice-color-disabled: var(--csstools-light-dark-toggle--3, var(--color-gray-400));--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-gray-750);--choice-color-border-disabled: var(--csstools-light-dark-toggle--4, var(--color-gray-300));--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) var(--color-dark);--choice-color-icon: var(--csstools-light-dark-toggle--5, var(--color-light));--choice-color-info: var(--color-text-dimmed);--choice-color-text: var(--color-text);--choice-color-toggle: var(--choice-color-disabled);--choice-height: 1rem;--choice-rounded: var(--rounded-sm)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--color-gray-800);--choice-color-back: var(--csstools-light-dark-toggle--0, var(--color-white));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--color-gray-300);--choice-color-border: var(--csstools-light-dark-toggle--1, var(--color-gray-500));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--color-gray-200);--choice-color-checked: var(--csstools-light-dark-toggle--2, var(--color-black));--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-700);--choice-color-disabled: var(--csstools-light-dark-toggle--3, var(--color-gray-400));--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-gray-750);--choice-color-border-disabled: var(--csstools-light-dark-toggle--4, var(--color-gray-300));--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) var(--color-dark);--choice-color-icon: var(--csstools-light-dark-toggle--5, var(--color-light))}}@supports (color: light-dark(red,red)){:root{--choice-color-back: light-dark(var(--color-white), var(--color-gray-800));--choice-color-border: light-dark( var(--color-gray-500), var(--color-gray-300) );--choice-color-checked: light-dark(var(--color-black), var(--color-gray-200));--choice-color-disabled: light-dark( var(--color-gray-400), var(--color-gray-700) );--choice-color-border-disabled: light-dark( var(--color-gray-300), var(--color-gray-750) );--choice-color-icon: light-dark(var(--color-light), var(--color-dark))}}input:where([type=checkbox],[type=radio]){position:relative;cursor:pointer;overflow:hidden;flex-shrink:0;height:var(--choice-height);aspect-ratio:1/1;border:1px solid var(--choice-color-border);appearance:none;border-radius:var(--choice-rounded);background:var(--choice-color-back);box-shadow:var(--shadow-sm)}input:where([type=checkbox],[type=radio]):after{position:absolute;content:"";display:none;place-items:center;text-align:center}input:where([type=checkbox],[type=radio]):focus{outline:var(--outline);outline-offset:-1px;color:var(--color-focus)}input:where([type=checkbox]):checked{border-color:var(--choice-color-checked)}input:where([type=checkbox],[type=radio]):checked:after,input:where([type=checkbox]):indeterminate:after{background:var(--choice-color-checked);display:grid}input:where([type=checkbox],[type=radio]):checked:focus{--choice-color-checked: var(--color-focus)}input:where([type=checkbox],[type=radio])[disabled]{--choice-color-back: none;--choice-color-border: var(--choice-color-border-disabled);--choice-color-checked: var(--choice-color-disabled);box-shadow:none;cursor:not-allowed}input[type=checkbox]:checked:after,input[type=checkbox]:indeterminate:after{content:"✓";inset:0;place-items:center;font-weight:700;color:var(--choice-color-icon);line-height:1}input[type=checkbox]:indeterminate:after{content:""}input[type=checkbox]:indeterminate:before{position:absolute;top:50%;left:50%;content:"";margin-top:-1px;margin-left:-4px;width:calc(var(--choice-height) - 8px);height:2px;background:var(--choice-color-icon);z-index:1}input[type=radio]{--choice-rounded: 50%}input[type=radio]:after{inset:3px;font-size:9px;border-radius:var(--choice-rounded)}input[type=checkbox][data-variant=toggle]{--choice-rounded: var(--choice-height);width:calc(var(--choice-height) * 2);aspect-ratio:2/1}input[type=checkbox][data-variant=toggle]:after{background:var(--choice-color-toggle);display:grid;inset:1px;width:.8rem;font-size:7px;border-radius:var(--choice-rounded);transition:margin-inline-start 75ms ease-in-out,background .1s ease-in-out}input[type=checkbox][data-variant=toggle]:checked{border-color:var(--choice-color-border)}input[type=checkbox][data-variant=toggle]:checked:after{background:var(--choice-color-checked);margin-inline-start:50%}:root{--range-thumb-color: white;--range-thumb-focus-outline: var(--outline);--range-thumb-size: 1rem;--range-thumb-shadow: rgba(0, 0, 0, .1) 0 2px 4px 2px, rgba(0, 0, 0, .125) 0 0 0 1px;--csstools-light-dark-toggle--6: var(--csstools-color-scheme--light) var(--color-black);--range-track-back: var(--csstools-light-dark-toggle--6, var(--color-gray-300));--range-track-height: var(--range-thumb-size)}@supports not (color: light-dark(tan,tan)){:root *{--csstools-light-dark-toggle--6: var(--csstools-color-scheme--light) var(--color-black);--range-track-back: var(--csstools-light-dark-toggle--6, var(--color-gray-300))}}@supports (color: light-dark(red,red)){:root{--range-track-back: light-dark(var(--color-gray-300), var(--color-black))}}:where(input[type=range]){display:flex;align-items:center;appearance:none;padding:0;height:var(--range-thumb-size);border-radius:var(--range-track-size);width:100%}:where(input[type=range])::-webkit-slider-thumb{appearance:none;width:var(--range-thumb-size);height:var(--range-thumb-size);border:0;background:var(--range-thumb-color);box-shadow:var(--range-thumb-shadow);transform:translateZ(0);margin-top:calc(((var(--range-thumb-size) - var(--range-track-height)) / 2) * -1);border-radius:50%;z-index:1;cursor:grab}:where(input[type=range])::-moz-range-thumb{appearance:none;width:var(--range-thumb-size);height:var(--range-thumb-size);border:0;background:var(--range-thumb-color);box-shadow:var(--range-thumb-shadow);border-radius:50%;transform:translateZ(0);z-index:1;cursor:grab}:where(input[type=range])::-webkit-slider-thumb:active{cursor:grabbing}:where(input[type=range])::-moz-range-thumb:active{cursor:grabbing}:where(input[type=range])::-webkit-slider-runnable-track{background:var(--range-track-back);height:var(--range-track-height);border-radius:var(--range-track-height)}:where(input[type=range])::-moz-range-track{background:var(--range-track-back);height:var(--range-track-height);border-radius:var(--range-track-height)}:where(input[type=range][disabled]){--range-thumb-color: rgba(255, 255, 255, .2)}:where(input[type=range][disabled])::-webkit-slider-thumb{cursor:not-allowed}:where(input[type=range][disabled])::-moz-range-thumb{cursor:not-allowed}:where(input[type=range]):focus{outline:var(--outline)}:where(input[type=range]):focus::-webkit-slider-thumb{outline:var(--range-thumb-focus-outline)}:where(input[type=range]):focus::-moz-range-thumb{outline:var(--range-thumb-focus-outline)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:where(b,strong){font-weight:var(--font-bold, 600)}:where([hidden]){display:none!important}:where(abbr){text-decoration:none}:where(input,button,textarea,select){border:0;font:inherit;line-height:inherit;color:inherit;background:none}:where(fieldset){border:0}:where(legend){width:100%;float:left}:where(legend+*){clear:both}:where(select){appearance:none;background:var(--color-white);color:var(--color-black);cursor:pointer}:where(textarea,select,input:not([type=checkbox],[type=radio],[type=reset],[type=submit])){width:100%;font-variant-numeric:tabular-nums}:where(textarea){resize:vertical;line-height:1.5}:where(input)::-webkit-calendar-picker-indicator{display:none}:where(input[type=search]){appearance:none}:where(input)::-webkit-search-cancel-button{display:none}:where(button,label,select,summary,[role=button],[role=option]){cursor:pointer}:where(select[multiple]) option{display:flex;align-items:center}:where(input:-webkit-autofill){-webkit-text-fill-color:var(--color-text)!important;-webkit-background-clip:text}:where(:disabled){cursor:not-allowed}*::placeholder{color:var(--input-color-placeholder);opacity:1}:where(label:has(>input:disabled),label:has(+input:disabled)){cursor:not-allowed}:where(a){color:currentColor;text-decoration:none;text-underline-offset:.2ex}:where(ul,ol){list-style:none}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block}:where(iframe){border:0}:where(img,picture,svg){max-inline-size:100%;block-size:auto}:where(p,h1,h2,h3,h4,h5,h6){overflow-wrap:break-word}:where(h1,h2,h3,h4,h5,h6){font:inherit}:where(:focus,:focus-visible,:focus-within){outline-color:var(--color-focus, currentColor);outline-offset:0}:where(:focus-visible){outline:var(--outline, 2px solid var(--color-focus, currentColor))}:where(:invalid){box-shadow:none;outline:0}:where(dialog){border:0;max-width:none;max-height:none}:where(hr){border:0}:where(table){font:inherit;width:100%;border-spacing:0;font-variant-numeric:tabular-nums}:where(table th){font:inherit;text-align:start}body{font-family:var(--font-sans, sans-serif);font-size:var(--text-sm);line-height:1;position:relative;accent-color:var(--color-focus, currentColor)}:where(sup,sub){position:relative;line-height:0;vertical-align:baseline;font-size:75%}:where(sup){top:-.5em}:where(sub){bottom:-.25em}:where(mark){background:var(--color-yellow-300)}:where(kbd){display:inline-block;padding-inline:var(--spacing-2);border-radius:var(--rounded);--csstools-light-dark-toggle--7: var(--csstools-color-scheme--light) var(--color-black);background:var(--csstools-light-dark-toggle--7, var(--color-white));box-shadow:var(--shadow)}@supports (color: light-dark(red,red)){:where(kbd){background:light-dark(var(--color-white),var(--color-black))}}[data-align=left]{--align: start}[data-align=center]{--align: center}[data-align=right]{--align: end}@keyframes LoadingCursor{to{cursor:progress}}@keyframes Spin{to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}[data-theme]{--theme-color-h: 0;--theme-color-s: 0%;--theme-color-hs: var(--theme-color-h), var(--theme-color-s);--theme-color-boost: 3%;--theme-color-l-100: calc(var(--color-l-100) + var(--theme-color-boost));--theme-color-l-150: calc(var(--color-l-150) + var(--theme-color-boost));--theme-color-l-200: calc(var(--color-l-200) + var(--theme-color-boost));--theme-color-l-250: calc(var(--color-l-250) + var(--theme-color-boost));--theme-color-l-300: calc(var(--color-l-300) + var(--theme-color-boost));--theme-color-l-350: calc(var(--color-l-350) + var(--theme-color-boost));--theme-color-l-400: calc(var(--color-l-400) + var(--theme-color-boost));--theme-color-l-450: calc(var(--color-l-450) + var(--theme-color-boost));--theme-color-l-500: calc(var(--color-l-500) + var(--theme-color-boost));--theme-color-l-550: calc(var(--color-l-550) + var(--theme-color-boost));--theme-color-l-600: calc(var(--color-l-600) + var(--theme-color-boost));--theme-color-l-650: calc(var(--color-l-650) + var(--theme-color-boost));--theme-color-l-700: calc(var(--color-l-700) + var(--theme-color-boost));--theme-color-l-750: calc(var(--color-l-750) + var(--theme-color-boost));--theme-color-l-800: calc(var(--color-l-800) + var(--theme-color-boost));--theme-color-l-850: calc(var(--color-l-850) + var(--theme-color-boost));--theme-color-l-900: calc(var(--color-l-900) + var(--theme-color-boost));--theme-color-l-950: calc(var(--color-l-950) + var(--theme-color-boost));--theme-color-100: hsl(var(--theme-color-hs), var(--theme-color-l-100));--theme-color-150: hsl(var(--theme-color-hs), var(--theme-color-l-150));--theme-color-200: hsl(var(--theme-color-hs), var(--theme-color-l-200));--theme-color-250: hsl(var(--theme-color-hs), var(--theme-color-l-250));--theme-color-300: hsl(var(--theme-color-hs), var(--theme-color-l-300));--theme-color-350: hsl(var(--theme-color-hs), var(--theme-color-l-350));--theme-color-400: hsl(var(--theme-color-hs), var(--theme-color-l-400));--theme-color-450: hsl(var(--theme-color-hs), var(--theme-color-l-450));--theme-color-500: hsl(var(--theme-color-hs), var(--theme-color-l-500));--theme-color-550: hsl(var(--theme-color-hs), var(--theme-color-l-550));--theme-color-600: hsl(var(--theme-color-hs), var(--theme-color-l-600));--theme-color-650: hsl(var(--theme-color-hs), var(--theme-color-l-650));--theme-color-700: hsl(var(--theme-color-hs), var(--theme-color-l-700));--theme-color-750: hsl(var(--theme-color-hs), var(--theme-color-l-750));--theme-color-800: hsl(var(--theme-color-hs), var(--theme-color-l-800));--theme-color-850: hsl(var(--theme-color-hs), var(--theme-color-l-850));--theme-color-900: hsl(var(--theme-color-hs), var(--theme-color-l-900));--theme-color-950: hsl(var(--theme-color-hs), var(--theme-color-l-950));--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--theme-color-600);--theme-color-border: var(--csstools-light-dark-toggle--0, var(--theme-color-500));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--theme-color-500);--theme-color-back: var(--csstools-light-dark-toggle--1, var(--theme-color-400));--theme-color-hover: var(--theme-color-600);--theme-color-icon: var(--theme-color-600);--theme-color-icon-highlight: var(--theme-color-700);--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--theme-color-600);--theme-color-text: var(--csstools-light-dark-toggle--2, var(--theme-color-700));--theme-color-text-dimmed: hsl( var(--theme-color-h), calc(var(--theme-color-s) - 60%), 50% );--theme-color-text-highlight: var(--theme-color-900)}@supports not (color: light-dark(tan,tan)){[data-theme] *{--csstools-light-dark-toggle--0: var(--csstools-color-scheme--light) var(--theme-color-600);--theme-color-border: var(--csstools-light-dark-toggle--0, var(--theme-color-500));--csstools-light-dark-toggle--1: var(--csstools-color-scheme--light) var(--theme-color-500);--theme-color-back: var(--csstools-light-dark-toggle--1, var(--theme-color-400));--csstools-light-dark-toggle--2: var(--csstools-color-scheme--light) var(--theme-color-600);--theme-color-text: var(--csstools-light-dark-toggle--2, var(--theme-color-700))}}@supports (color: light-dark(red,red)){[data-theme]{--theme-color-border: light-dark( var(--theme-color-500), var(--theme-color-600) );--theme-color-back: light-dark( var(--theme-color-400), var(--theme-color-500) );--theme-color-text: light-dark( var(--theme-color-700), var(--theme-color-600) )}}[data-theme^=red],[data-theme^=error],[data-theme^=negative]{--theme-color-h: var(--color-red-h);--theme-color-s: var(--color-red-s);--theme-color-boost: var(--color-red-boost)}[data-theme^=orange],[data-theme^=notice]{--theme-color-h: var(--color-orange-h);--theme-color-s: var(--color-orange-s);--theme-color-boost: var(--color-orange-boost)}[data-theme^=yellow],[data-theme^=warning]{--theme-color-h: var(--color-yellow-h);--theme-color-s: var(--color-yellow-s);--theme-color-boost: var(--color-yellow-boost)}[data-theme^=blue],[data-theme^=info]{--theme-color-h: var(--color-blue-h);--theme-color-s: var(--color-blue-s);--theme-color-boost: var(--color-blue-boost)}[data-theme^=pink],[data-theme^=love]{--theme-color-h: var(--color-pink-h);--theme-color-s: var(--color-pink-s);--theme-color-boost: var(--color-pink-boost)}[data-theme^=green],[data-theme^=positive]{--theme-color-h: var(--color-green-h);--theme-color-s: var(--color-green-s);--theme-color-boost: var(--color-green-boost)}[data-theme^=aqua]{--theme-color-h: var(--color-aqua-h);--theme-color-s: var(--color-aqua-s);--theme-color-boost: var(--color-aqua-boost)}[data-theme^=purple]{--theme-color-h: var(--color-purple-h);--theme-color-s: var(--color-purple-s);--theme-color-boost: var(--color-purple-boost)}[data-theme^=gray],[data-theme^=passive]{--theme-color-h: var(--color-gray-h);--theme-color-s: var(--color-gray-s);--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-950);--theme-color-back: var(--csstools-light-dark-toggle--3, var(--color-gray-300));--theme-color-boost: 10%;--theme-color-icon: var(--color-gray-600);--theme-color-text: var(--color-text);--theme-color-text-highlight: var(--theme-color-text)}@supports not (color: light-dark(tan,tan)){:is([data-theme^=gray],[data-theme^=passive]) *{--csstools-light-dark-toggle--3: var(--csstools-color-scheme--light) var(--color-gray-950);--theme-color-back: var(--csstools-light-dark-toggle--3, var(--color-gray-300))}}@supports (color: light-dark(red,red)){[data-theme^=gray],[data-theme^=passive]{--theme-color-back: light-dark(var(--color-gray-300), var(--color-gray-950))}}[data-theme^=white],[data-theme^=text]{--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-gray-850);--theme-color-back: var(--csstools-light-dark-toggle--4, var(--color-white));--theme-color-text: var(--color-text);--theme-color-text-highlight: var(--theme-color-text);--color-h: var(--color-text)}@supports not (color: light-dark(tan,tan)){:is([data-theme^=white],[data-theme^=text]) *{--csstools-light-dark-toggle--4: var(--csstools-color-scheme--light) var(--color-gray-850);--theme-color-back: var(--csstools-light-dark-toggle--4, var(--color-white))}}@supports (color: light-dark(red,red)){[data-theme^=white],[data-theme^=text]{--theme-color-back: light-dark(var(--color-white), var(--color-gray-850))}}[data-theme^=dark]{--theme-color-h: var(--color-gray-h);--theme-color-s: var(--color-gray-s);--theme-color-boost: var(--color-gray-boost);--theme-color-back: var(--color-gray-800);--theme-color-icon: var(--color-gray-500);--theme-color-text: var(--color-gray-200);--theme-color-text-highlight: var(--theme-color-text)}[data-theme=code]{--theme-color-back: var(--code-color-back);--theme-color-hover: var(--color-black);--theme-color-icon: var(--code-color-icon);--theme-color-text: var(--code-color-text);--theme-color-text-highlight: var(--theme-color-text);font-family:var(--code-font-family);font-size:var(--code-font-size)}[data-theme=empty]{--theme-color-back: var(--panel-color-back);--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) var(--color-border);--theme-color-border: var(--csstools-light-dark-toggle--5, var(--color-gray-400));--theme-color-icon: var(--color-gray-600);--theme-color-text: var(--color-text-dimmed);--theme-color-text-highlight: var(--theme-color-text);border:1px dashed var(--theme-color-border)}@supports not (color: light-dark(tan,tan)){[data-theme=empty] *{--csstools-light-dark-toggle--5: var(--csstools-color-scheme--light) var(--color-border);--theme-color-border: var(--csstools-light-dark-toggle--5, var(--color-gray-400))}}@supports (color: light-dark(red,red)){[data-theme=empty]{--theme-color-border: light-dark(var(--color-gray-400), var(--color-border))}}[data-theme=none]{--theme-color-back: transparent;--theme-color-border: transparent;--theme-color-icon: var(--color-text);--theme-color-text: var(--color-text);--theme-color-text-highlight: var(--theme-color-text)}[data-theme]{--theme: var(--theme-color-700);--theme-light: var(--theme-color-500);--theme-bg: var(--theme-color-500)}:root{--outline: 2px solid var(--color-focus, currentColor)}.scroll-x,.scroll-x-auto,.scroll-y,.scroll-y-auto{-webkit-overflow-scrolling:touch;transform:translateZ(0)}.scroll-x{overflow-x:scroll;overflow-y:hidden}.scroll-x-auto{overflow-x:auto;overflow-y:hidden}.scroll-y{overflow-x:hidden;overflow-y:scroll}.scroll-y-auto{overflow-x:hidden;overflow-y:auto}.input-hidden{position:absolute;appearance:none;width:0;height:0;opacity:0}.k-lab-index-view .k-panel-main>.k-header .k-input{--input-color-back: var(--color-border);--input-color-border: transparent;--input-height: var(--height-md);width:40cqw;max-width:20rem;transform:translateY(-.5rem)}.k-lab-index-view .k-panel-main>.k-header>.k-header-buttons{margin-bottom:0}.k-lab-index-view .k-panel-main>.k-box{margin-bottom:var(--spacing-8)}.k-lab-index-view .k-list-items{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}.k-lab-docs-warning .k-box{box-shadow:var(--shadow)}.k-lab-docs-examples .k-code+.k-code{margin-top:var(--spacing-4)}.k-lab-docs-prop-values{font-size:var(--text-xs);border-left:2px solid var(--color-blue-300);padding-inline-start:var(--spacing-2)}.k-lab-docs-prop-values dl{font-weight:var(--font-bold)}.k-lab-docs-prop-values dl+dl{margin-top:var(--spacing-2)}.k-lab-docs-prop-values dd{display:inline-flex;flex-wrap:wrap;gap:var(--spacing-1)}.k-lab-docs-desc-header{display:flex;justify-content:space-between;align-items:center}.k-table .k-lab-docs-warning{--box-height: var(--height-xs);--text-font-size: var(--text-xs)}.k-labs-docs-params li{list-style:square;margin-inline-start:var(--spacing-3)}.k-labs-docs-params .k-lab-docs-types{margin-inline:1ch}.k-lab-docs-types{display:inline-flex;flex-wrap:wrap;gap:var(--spacing-1)}.k-lab-docs-section+.k-lab-docs-section{margin-top:var(--spacing-12)}.k-lab-docs-section .k-headline{margin-bottom:var(--spacing-3)}.k-lab-docs-section .k-table td{padding:.375rem var(--table-cell-padding);vertical-align:top;line-height:1.5;word-break:break-word}.k-lab-docs-description :where(.k-text,.k-box)+:where(.k-text,.k-box){margin-top:var(--spacing-3)}.k-lab-docs-required{margin-inline-start:var(--spacing-1);font-size:.7rem;vertical-align:super;color:var(--color-red-600)}.k-lab-docs-since{margin-top:var(--spacing-1);font-size:var(--text-xs);color:var(--color-gray-600)}.k-lab-docs-view-since{display:flex;align-items:center;gap:var(--spacing-1);margin-bottom:var(--spacing-8)}.k-lab-docs-view-since .k-tag{--tag-color-back: var(--color-yellow-400)}.k-lab-example{position:relative;container-type:inline-size;max-width:100%;outline-offset:-2px;border-radius:var(--rounded);border:1px solid var(--color-border)}.k-lab-example+.k-lab-example{margin-top:var(--spacing-12)}.k-lab-example-header{display:flex;justify-content:space-between;align-items:center;height:var(--height-md);padding-block:var(--spacing-3);padding-inline:var(--spacing-2);border-bottom:1px solid var(--color-border)}.k-lab-example-label{font-size:12px;color:var(--color-text-dimmed)}.k-lab-example-canvas,.k-lab-example-code{padding:var(--spacing-16)}.k-lab-example[data-flex=true] .k-lab-example-canvas{display:flex;align-items:center;gap:var(--spacing-6)}.k-lab-example-inspector{--icon-size: 13px;--button-color-icon: var(--color-gray-500)}.k-lab-example-inspector .k-button:not([data-theme]):hover{--button-color-icon: var(--color-gray-600)}.k-lab-example-inspector .k-button:where([data-theme]){--button-color-icon: var(--color-gray-800)}.k-lab-examples>:where(.k-text,.k-box){margin-bottom:var(--spacing-6)}.k-lab-form>footer{border-top:1px dashed var(--color-border);padding-top:var(--spacing-6)}.k-lab-examples>h2{margin-bottom:var(--spacing-6)}.k-lab-examples>*+h2{margin-top:var(--spacing-12)}:where(.k-lab-input-examples,.k-lab-field-examples) .k-lab-example:has(:invalid){outline:2px solid var(--color-red-500);outline-offset:-2px}.k-lab-input-examples-focus .k-lab-example-canvas>.k-button{margin-top:var(--spacing-6)}.k-lab-helpers-examples .k-lab-example .k-text{margin-bottom:var(--spacing-6)}.k-lab-helpers-examples h2{margin-bottom:var(--spacing-3);font-weight:var(--font-bold)}:root{--highlight-punctuation: var(--color-gray-500);--highlight-variable: var(--color-red-500);--highlight-constant: var(--color-orange-500);--highlight-keyword: var(--color-purple-500);--highlight-function: var(--color-blue-500);--highlight-operator: var(--color-aqua-500);--highlight-string: var(--color-green-500);--highlight-scope: var(--color-yellow-500)}.k-panel[data-theme=dark]{--highlight-punctuation: var(--color-gray-400);--highlight-variable: var(--color-red-400);--highlight-constant: var(--color-orange-400);--highlight-keyword: var(--color-purple-400);--highlight-function: var(--color-blue-400);--highlight-operator: var(--color-aqua-400);--highlight-string: var(--color-green-400);--highlight-scope: var(--color-yellow-400)}.token.punctuation,.token.comment,.token.doctype,.token.title .punctuation{color:var(--highlight-punctuation)}.token.tag,.token.markup,.token.variable,.token.this,.token.selector,.token.key,.token.kirbytag-bracket,.token.prolog,.token.delimiter{color:var(--highlight-variable)}.token.constant,.token.number,.token.boolean,.token.boolean.important,.token.attr-name,.token.kirbytag-attr,.token.kirbytag-name,.token.entity,.token.bold,.token.bold>.punctuation{color:var(--highlight-constant)}.token.keyword,.token.italic,.token.italic>.punctuation{color:var(--highlight-keyword)}.token.function{color:var(--highlight-function)}.token.operator,.token.title{color:var(--highlight-operator)}.token.string,.token.attr-value,.token.attr-value .punctuation,.token.list.punctuation{color:var(--highlight-string)}.token.scope,.token.class-name,.token.property,.token.url{color:var(--highlight-scope)}.token.title,.token.kirbytag-bracket,.token.list.punctuation,.token.bold{font-weight:var(--font-bold)}.token.italic{font-style:italic} diff --git a/kirby/panel/dist/img/icons.svg b/kirby/panel/dist/img/icons.svg index a1ae989..8b3fa70 100644 --- a/kirby/panel/dist/img/icons.svg +++ b/kirby/panel/dist/img/icons.svg @@ -384,12 +384,18 @@ + + + + + + @@ -523,6 +529,9 @@ + + + diff --git a/kirby/panel/dist/js/index.min.js b/kirby/panel/dist/js/index.min.js index 732de84..210648c 100644 --- a/kirby/panel/dist/js/index.min.js +++ b/kirby/panel/dist/js/index.min.js @@ -1,2 +1,2 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./IndexView.min.js","./vendor.min.js","./DocsView.min.js","./Docs.min.js","./PlaygroundView.min.js","./Highlight.min.js"])))=>i.map(i=>d[i]); -import t,{del as e,set as s,h as i,reactive as n}from"vue";import{I as o,P as r,S as a,F as l,N as c,s as u,l as p,w as d,a as h,b as m,c as f,d as g,e as b,t as k,f as y,g as v,h as $,i as x,k as w,D as _,j as S,E as C,m as O,n as A,o as M,T as D,u as E,p as j,r as I,q as B,v as L,x as T,y as P,z as q,A as N,B as F,C as z,G as Y}from"./vendor.min.js";const R={created(){this.$panel.events.subscribe();for(const t of this.$panel.plugins.created)t(this);this.$panel.events.on("popstate",()=>{this.$panel.open(window.location.href)}),this.$panel.events.on("drop",()=>{this.$panel.drag.stop()})},destroyed(){this.$panel.events.unsubscribe()},render(t){if(this.$panel.view.component)return t(this.$panel.view.component,{key:this.$panel.view.component,props:this.$panel.view.props})}},H={props:{after:String}},U={props:{autocomplete:String}},V={props:{autofocus:Boolean}},K={props:{before:String}},W={props:{disabled:Boolean}},J={props:{font:String}},G={props:{help:String}},X={props:{id:{type:[Number,String],default(){return this._uid}}}},Z={props:{label:[String,Boolean]}},Q={props:{layout:{type:String,default:"list"}}},tt={props:{maxlength:Number}},et={props:{minlength:Number}},st={props:{name:[Number,String]}},it={props:{options:{default:()=>[],type:Array}}},nt={props:{pattern:String}},ot={props:{placeholder:[Number,String]}},rt={props:{required:Boolean}},at={props:{spellcheck:{type:Boolean,default:!0}}};function lt(t,e,s,i,n,o,r,a){var l="function"==typeof t?t.options:t;return e&&(l.render=e,l.staticRenderFns=s,l._compiled=!0),{exports:t,options:l}}const ct={mixins:[Q],inheritAttrs:!1,props:{columns:{type:[Object,Array],default:()=>({})},fields:{type:Object,default:()=>({})},items:{type:Array,default:()=>[]},link:{type:Boolean,default:!0},selecting:Boolean,sortable:Boolean,size:{type:String,default:"medium"},theme:String}};const ut=lt({mixins:[ct],props:{image:{type:[Object,Boolean],default:()=>({})}},emits:["change","hover","item","option","sort"],computed:{dragOptions(){return{sort:this.sortable,disabled:!1===this.sortable,draggable:".k-draggable-item"}},itemsWithIds(){return this.items.map(t=>({...t,id:t.id??t.uuid??this.$helper.uuid()}))},table(){return{columns:this.columns,fields:this.fields,rows:this.items,selecting:this.selecting,sortable:this.sortable}}},methods:{onDragStart(t,e){this.$panel.drag.start("text",e)},onOption(t,e,s){this.$emit("option",t,e,s)},onSelect(t,e,s){this.$emit("select",t,e,s)},imageOptions(t){let e=this.image,s=t.image;return!1!==e&&!1!==s&&("object"!=typeof e&&(e={}),"object"!=typeof s&&(s={}),{...s,...e})}}},function(){var t=this,e=t._self._c;return"table"===t.layout?e("k-table",t._b({class:t.$attrs.class,style:t.$attrs.style,on:{change:function(e){return t.$emit("change",e)},select:t.onSelect,sort:function(e){return t.$emit("sort",e)},option:t.onOption},scopedSlots:t._u([t.$scopedSlots.options?{key:"options",fn:function({row:e,rowIndex:s}){return[t._t("options",null,null,{item:e,index:s})]}}:null],null,!0)},"k-table",t.table,!1)):e("k-draggable",{class:["k-items","k-"+t.layout+"-items",t.$attrs.class],style:t.$attrs.style,attrs:{"data-layout":t.layout,"data-size":t.size,handle:!0,list:t.items,options:t.dragOptions},on:{change:function(e){return t.$emit("change",e)},end:function(e){return t.$emit("sort",t.items,e)}}},[t._l(t.itemsWithIds,function(s,i){return[t._t("default",function(){return[e("k-item",t._b({key:s.id,class:{"k-draggable-item":t.sortable&&!1!==s.sortable},attrs:{image:t.imageOptions(s),layout:t.layout,link:!!t.link&&s.link,selecting:t.selecting,selectable:s.selectable,sortable:t.sortable&&!1!==s.sortable,theme:s.theme??t.theme,width:s.column},on:{click:function(e){return t.$emit("item",s,i)},drag:function(e){return t.onDragStart(e,s.dragText)},option:function(e){return t.onOption(e,s,i)},select:function(e){return t.onSelect(s,i)}},nativeOn:{mouseover:function(e){return t.$emit("hover",e,s,i)}},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options",null,null,{item:s,index:i})]},proxy:!0}],null,!0)},"k-item",s,!1))]},null,{item:s,itemIndex:i})]})],2)},[]).exports;const pt=lt({mixins:[ct],props:{empty:{type:Object,default:()=>({})},help:String,pagination:{type:[Boolean,Object],default:!1}},emits:["action","change","empty","item","option","paginate","sort"],computed:{hasPagination(){return!1!==this.pagination&&(!0!==this.paginationOptions.hide&&!(this.pagination.total<=this.pagination.limit))},listeners(){return this.$listeners.empty?{click:this.onEmpty}:{}},paginationOptions(){return{limit:10,details:!0,keys:!1,total:0,hide:!1,..."object"!=typeof this.pagination?{}:this.pagination}}},watch:{$props(){this.$forceUpdate()}},methods:{onEmpty(t){t.stopPropagation(),this.$emit("empty")},onOption(...t){this.$emit("action",...t),this.$emit("option",...t)},onSelect(...t){this.$emit("select",...t)}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-collection"},[0===t.items.length?e("k-empty",t._g(t._b({attrs:{layout:t.layout}},"k-empty",t.empty,!1),t.listeners)):e("k-items",t._b({on:{change:function(e){return t.$emit("change",e)},item:function(e){return t.$emit("item",e)},option:t.onOption,select:t.onSelect,sort:function(e){return t.$emit("sort",e)}},scopedSlots:t._u([{key:"options",fn:function({item:e,index:s}){return[t._t("options",null,null,{item:e,index:s})]}}],null,!0)},"k-items",{columns:t.columns,fields:t.fields,items:t.items,layout:t.layout,link:t.link,selecting:t.selecting,size:t.size,sortable:t.sortable,theme:t.theme},!1)),t.help||t.hasPagination?e("footer",{staticClass:"k-collection-footer"},[e("k-text",{staticClass:"k-help k-collection-help",attrs:{html:t.help}}),t.hasPagination?e("k-pagination",t._b({on:{paginate:function(e){return t.$emit("paginate",e)}}},"k-pagination",t.paginationOptions,!1)):t._e()],1):t._e()],1)},[]).exports;const dt=lt({mixins:[Q],props:{text:String,icon:String},emits:["click"],computed:{attrs(){const t={button:void 0!==this.$listeners.click,icon:this.icon,theme:"empty"};return"cardlets"!==this.layout&&"cards"!==this.layout||(t.align="center",t.height="var(--item-height-cardlet)"),t}}},function(){var t=this;return(0,t._self._c)("k-box",t._b({staticClass:"k-empty",nativeOn:{click:function(e){return t.$emit("click",e)}}},"k-box",t.attrs,!1),[t._t("default",function(){return[t._v(" "+t._s(t.text)+" ")]})],2)},[]).exports,ht={mixins:[Q],props:{image:[Object,Boolean],width:{type:String,default:"1/1"}}};const mt=lt({mixins:[ht],inheritAttrs:!1,computed:{attrs(){return{back:this.image.back,cover:!0,...this.image,ratio:"list"===this.layout?"auto":this.image.ratio,size:this.sizes}},component(){return this.image.src?"k-image-frame":"k-icon-frame"},sizes(){switch(this.width){case"1/2":case"2/4":return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 44em, 27em";case"1/3":return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 29.333em, 27em";case"1/4":return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 22em, 27em";case"2/3":return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 27em, 27em";case"3/4":return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 66em, 27em";default:return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 88em, 27em"}}}},function(){var t=this;return(0,t._self._c)(t.component,t._b({tag:"component",class:["k-item-image",t.$attrs.class],style:t.$attrs.style},"component",t.attrs,!1))},[]).exports;const ft=lt({mixins:[ht,Q],inheritAttrs:!1,props:{buttons:{type:Array,default:()=>[]},data:Object,info:String,link:{type:[Boolean,String,Function]},options:{type:[Array,Function,String]},selecting:Boolean,selectable:Boolean,sortable:Boolean,target:String,text:String,theme:String},emits:["action","click","drag","option"],computed:{hasFigure(){return!1!==this.image&&this.$helper.object.length(this.image)>0}},methods:{onClick(t){if(this.selecting&&this.selectable)return this.$refs.selector.click();this.$emit("click",t)},onOption(t){this.$emit("action",t),this.$emit("option",t)},title(t){return this.$helper.string.stripHTML(this.$helper.string.unescapeHTML(t)).trim()}}},function(){var t=this,e=t._self._c;return e("div",t._b({class:["k-item",`k-${t.layout}-item`,t.$attrs.class],style:t.$attrs.style,attrs:{"data-has-image":t.hasFigure,"data-layout":t.layout,"data-selecting":t.selecting,"data-selectable":t.selectable,"data-theme":t.theme},on:{click:t.onClick,dragstart:function(e){return t.$emit("drag",e)}}},"div",t.data,!1),[t._t("image",function(){return[t.hasFigure?e("k-item-image",{attrs:{image:t.image,layout:t.layout,width:t.width}}):t._e()]}),t.sortable?e("k-sort-handle",{staticClass:"k-item-sort-handle",attrs:{tabindex:"-1"}}):t._e(),e("div",{staticClass:"k-item-content"},[e("h3",{staticClass:"k-item-title",attrs:{title:t.title(t.text)}},[!1!==t.link&&!0!==t.selecting?e("k-link",{attrs:{target:t.target,to:t.link}},[e("span",{domProps:{innerHTML:t._s(t.text??" ")}})]):e("span",{domProps:{innerHTML:t._s(t.text??" ")}})],1),t.info?e("p",{staticClass:"k-item-info",attrs:{title:t.title(t.info)},domProps:{innerHTML:t._s(t.info)}}):t._e()]),t.buttons?.length||t.options||t.$slots.options||t.selecting?e("div",{staticClass:"k-item-options"},[t._l(t.buttons,function(s,i){return e("k-button",t._b({key:"button-"+i},"k-button",s,!1))}),t.selecting?e("label",{staticClass:"k-item-options-checkbox",on:{click:function(t){t.stopPropagation()}}},[e("input",{ref:"selector",attrs:{type:"checkbox",disabled:!t.selectable},on:{change:function(e){return t.$emit("select",e)}}})]):t._t("options",function(){return[t.options?e("k-options-dropdown",{staticClass:"k-item-options-dropdown",attrs:{options:t.options},on:{option:t.onOption}}):t._e()]})],2):t._e()],2)},[]).exports,gt={install(t){t.component("k-collection",pt),t.component("k-empty",dt),t.component("k-item",ft),t.component("k-item-image",mt),t.component("k-items",ut)}};const bt=lt({},function(){return(0,this._self._c)("div",{staticClass:"k-dialog-body"},[this._t("default")],2)},[]).exports;function kt(t){if(void 0!==t)return structuredClone(t)}function yt(t){return"object"==typeof t&&t?.constructor===Object}function vt(t){return Object.keys(t??{}).length}function $t(t){return Object.keys(t).reduce((e,s)=>(e[s.toLowerCase()]=t[s],e),{})}const xt={clone:kt,filter:function(t,e){return Object.fromEntries(Object.entries(t).filter(([t,s])=>e(s,t)))},isEmpty:function(t){return null==t||""===t||(!(!yt(t)||0!==vt(t))||0===t.length)},isObject:yt,length:vt,merge:function t(e,s={}){for(const i in s)s[i]instanceof Object&&Object.assign(s[i],t(e[i]??{},s[i]));return Object.assign(e??{},s),e},same:function(t,e){return JSON.stringify(t)===JSON.stringify(e)},toLowerKeys:$t},wt={props:{cancelButton:{default:!0,type:[Boolean,String,Object]},disabled:{default:!1,type:Boolean},icon:{default:"check",type:String},submitButton:{type:[Boolean,String,Object],default:!0},theme:{default:"positive",type:String}}};const _t=lt({mixins:[wt],emits:["cancel"],computed:{cancel(){return this.button(this.cancelButton,{click:()=>this.$emit("cancel"),class:"k-dialog-button-cancel",icon:"cancel",text:this.$t("cancel"),variant:"filled"})},submit(){return this.button(this.submitButton,{class:"k-dialog-button-submit",disabled:this.disabled||this.$panel.dialog.isLoading,icon:this.$panel.dialog.isLoading?"loader":this.icon,text:this.$t("confirm"),theme:this.theme,type:"submit",variant:"filled"})}},methods:{button:(t,e)=>"string"==typeof t?{...e,text:t}:!1!==t&&(!1===yt(t)?e:{...e,...t})}},function(){var t=this,e=t._self._c;return e("k-button-group",{staticClass:"k-dialog-buttons"},[t.cancel?e("k-button",t._b({},"k-button",t.cancel,!1)):t._e(),t.submit?e("k-button",t._b({},"k-button",t.submit,!1)):t._e()],1)},[]).exports,St={props:{empty:{default:()=>window.panel.t("dialog.fields.empty"),type:String},fields:{default:()=>[],type:[Array,Object]},value:{default:()=>({}),type:Object}}};const Ct=lt({mixins:[St],emits:["input","submit"],computed:{hasFields(){return this.$helper.object.length(this.fields)>0}}},function(){var t=this,e=t._self._c;return t.hasFields?e("k-fieldset",{staticClass:"k-dialog-fields",attrs:{fields:t.fields,value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}}):e("k-box",{attrs:{theme:"info"}},[t._v(t._s(t.empty))])},[]).exports;const Ot=lt({},function(){return(0,this._self._c)("footer",{staticClass:"k-dialog-footer"},[this._t("default")],2)},[]).exports;const At=lt({},function(){var t=this,e=t._self._c;return"dialog"===t.$panel.notification.context?e("k-notification",{staticClass:"k-dialog-notification"}):t._e()},[]).exports;const Mt=lt({props:{autofocus:{default:!0,type:Boolean},placeholder:{type:String},value:{type:String}},emits:["search"],computed:{icon(){return this.value?"cancel-small":"search"}},methods:{onIconClick(){this.value?this.$emit("search",null):this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-input",{ref:"input",staticClass:"k-dialog-search",attrs:{autofocus:t.autofocus,placeholder:t.placeholder,value:t.value,type:"search"},on:{input:function(e){return t.$emit("search",e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("k-button",{attrs:{icon:t.icon,tabindex:"-1"},on:{click:t.onIconClick}})]},proxy:!0}])})},[]).exports,Dt={props:{empty:{type:String,default:()=>window.panel.t("dialog.text.empty")},text:{type:String}}};const Et=lt({mixins:[Dt]},function(){var t=this,e=t._self._c;return t.text?e("k-text",{attrs:{html:t.text}}):e("k-box",{attrs:{theme:"info"}},[t._v(t._s(t.empty))])},[]).exports,jt={install(t){t.component("k-dialog-body",bt),t.component("k-dialog-buttons",_t),t.component("k-dialog-fields",Ct),t.component("k-dialog-footer",Ot),t.component("k-dialog-notification",At),t.component("k-dialog-search",Mt),t.component("k-dialog-text",Et)}},It={mixins:[wt],props:{size:{default:"default",type:String},visible:{default:!1,type:Boolean}},emits:["cancel","close","input","submit","success"],methods:{cancel(){this.$emit("cancel")},close(){this.$emit("close")},error(t){this.$panel.notification.error(t)},focus(t){this.$panel.dialog.focus(t)},input(t){this.$emit("input",t)},open(){this.$panel.dialog.open(this)},submit(){this.$emit("submit",this.value)},success(t){this.$emit("success",t)}}};const Bt=lt({mixins:[It]},function(){var t=this,e=t._self._c;return t.visible?e("portal",{attrs:{to:"dialog"}},[e("form",{class:["k-dialog",t.$vnode.data.class,t.$vnode.data.staticClass,t.$attrs.class],attrs:{"data-size":t.size,method:"dialog"},on:{click:function(t){t.stopPropagation()},submit:function(e){return e.preventDefault(),t.$emit("submit")}}},[t._t("header",function(){return[e("k-dialog-notification")]}),t.$slots.default?e("k-dialog-body",[t._t("default")],2):t._e(),t._t("footer",function(){return[t.cancelButton||t.submitButton?e("k-dialog-footer",[e("k-dialog-buttons",{attrs:{"cancel-button":t.cancelButton,disabled:t.disabled,icon:t.icon,"submit-button":t.submitButton,theme:t.theme},on:{cancel:function(e){return t.$emit("cancel")}}})],1):t._e()]})],2)]):t._e()},[]).exports;const Lt=lt({mixins:[It],props:{cancelButton:{default:!1},files:{type:Array,default:()=>[]},pages:{type:Array,default:()=>[]},size:{default:"medium"},submitButton:{default:!1},users:{type:Array,default:()=>[]}}},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({staticClass:"k-changes-dialog"},"k-dialog",t.$props,!1),[t.pages.length?e("section",[e("k-headline",[t._v(t._s(t.$t("lock.unsaved.pages")))]),e("k-items",{attrs:{items:t.pages,layout:"list"}})],1):t._e(),t.files.length?e("section",[e("k-headline",[t._v(t._s(t.$t("lock.unsaved.files")))]),e("k-items",{attrs:{items:t.files,layout:"list"}})],1):t._e(),t.users.length?e("section",[e("k-headline",[t._v(t._s(t.$t("lock.unsaved.users")))]),e("k-items",{attrs:{items:t.users,layout:"list"}})],1):t._e(),t.pages.length||t.files.length||t.users.length?t._e():e("section",[e("k-headline",[t._v(t._s(t.$t("lock.unsaved")))]),e("k-empty",{attrs:{icon:"edit-line"}},[t._v(t._s(t.$t("lock.unsaved.empty")))])],1)])},[]).exports;const Tt=lt({mixins:[It,St],props:{fields:{default:()=>({href:{label:window.panel.t("email"),type:"email",icon:"email"},title:{label:window.panel.t("title"),type:"text",icon:"title"}})},size:{default:"medium"},submitButton:{default:()=>window.panel.t("insert")}},data(){return{values:{href:"",title:null,...this.value}}},methods:{submit(){this.$emit("submit",this.values)}}},function(){var t=this;return(0,t._self._c)("k-form-dialog",t._b({attrs:{value:t.values},on:{cancel:function(e){return t.$emit("cancel")},input:function(e){t.values=e},submit:t.submit}},"k-form-dialog",t.$props,!1))},[]).exports;const Pt=lt({mixins:[It],props:{details:[Object,Array],message:String,size:{default:"medium",type:String}},emits:["cancel"],computed:{detailsList(){return this.$helper.array.fromObject(this.details)}}},function(){var t=this,e=t._self._c;return e("k-dialog",{ref:"dialog",staticClass:"k-error-dialog",attrs:{"cancel-button":!1,"submit-button":!1,size:t.size,visible:t.visible},on:{cancel:function(e){return t.$emit("cancel")}}},[e("k-text",[t._v(t._s(t.message))]),t.detailsList.length?e("dl",{staticClass:"k-error-details"},[t._l(t.detailsList,function(s,i){return[e("dt",{key:"detail-label-"+i},[t._v(" "+t._s(s.label)+" ")]),e("dd",{key:"detail-message-"+i},["object"==typeof s.message?[e("ul",t._l(s.message,function(s,i){return e("li",{key:i},[t._v(" "+t._s(s)+" ")])}),0)]:[t._v(" "+t._s(s.message)+" ")]],2)]})],2):t._e()],1)},[]).exports;const qt=lt({},function(){var t=this;return(0,t._self._c)(t.$panel.dialog.component,t._g(t._b({key:t.$panel.dialog.timestamp,tag:"component",attrs:{visible:!0}},"component",t.$panel.dialog.props,!1),t.$panel.dialog.listeners()))},[]).exports,Nt=(t,e,s={leading:!1,trailing:!0})=>{let i=null,n=null;return!1===s.leading&&!1===s.trailing?()=>null:function(...o){!i&&s.leading?t.apply(this,o):n=o,clearTimeout(i),i=setTimeout(()=>{s.trailing&&n&&t.apply(this,n),i=null,n=null},e)}},Ft={props:{delay:{default:200,type:Number},hasSearch:{default:!0,type:Boolean}},data:()=>({query:""}),watch:{query(){!1!==this.hasSearch&&this.search()}},created(){this.search=Nt(this.search,this.delay)},methods:{async search(){console.warn("Search mixin: Please implement a `search` method.")}}},zt={props:{endpoint:String,empty:Object,fetchParams:Object,item:{type:Function,default:t=>t},max:Number,multiple:{type:Boolean,default:!0},size:{type:String,default:"medium"},value:{type:Array,default:()=>[]}}};const Yt=lt({mixins:[It,Ft,zt],emits:["cancel","fetched","submit"],data(){return{models:[],selected:this.value.reduce((t,e)=>({...t,[e]:{id:e}}),{}),pagination:{limit:20,page:1,total:0}}},computed:{items(){return this.models.map(this.item)}},watch:{fetchParams(t,e){!1===this.$helper.object.same(t,e)&&(this.pagination.page=1,this.fetch())}},mounted(){this.fetch()},methods:{async fetch(){const t={page:this.pagination.page,search:this.query,...this.fetchParams};try{this.$panel.dialog.isLoading=!0;const e=await this.$api.get(this.endpoint,t);this.models=e.data,this.pagination=e.pagination,this.$emit("fetched",e)}catch(e){this.$panel.error(e),this.models=[]}finally{this.$panel.dialog.isLoading=!1}},isSelected(t){return void 0!==this.selected[t.id]},paginate(t){this.pagination.page=t.page,this.pagination.limit=t.limit,this.fetch()},submit(){this.$emit("submit",Object.values(this.selected))},async search(){this.pagination.page=0,await this.fetch()},toggle(t){if(!1!==this.multiple&&1!==this.max||(this.selected={}),this.isSelected(t))return e(this.selected,t.id);this.max&&this.max<=this.$helper.object.length(this.selected)||s(this.selected,t.id,t)}}},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({staticClass:"k-models-dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:t.submit}},"k-dialog",t.$props,!1),[t._t("header"),t.hasSearch?e("k-dialog-search",{attrs:{value:t.query},on:{search:function(e){t.query=e}}}):t._e(),e("k-collection",{attrs:{empty:{...t.empty,text:t.$panel.dialog.isLoading?t.$t("loading"):t.empty.text},items:t.items,link:!1,pagination:{details:!0,dropdown:!1,align:"center",...t.pagination},sortable:!1,layout:"list"},on:{item:t.toggle,paginate:t.paginate},scopedSlots:t._u([{key:"options",fn:function({item:s}){return[e("k-choice-input",{attrs:{checked:t.isSelected(s),type:t.multiple&&1!==t.max?"checkbox":"radio",title:t.isSelected(s)?t.$t("remove"):t.$t("select")},on:{click:function(e){return e.stopPropagation(),t.toggle(s)}}}),t._t("options",null,null,{item:s})]}}],null,!0)})],2)},[]).exports;const Rt=lt({mixins:[It,zt],props:{empty:{type:Object,default:()=>({icon:"image",text:window.panel.t("dialog.files.empty")})}}},function(){var t=this;return(0,t._self._c)("k-models-dialog",t._b({on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",e)}}},"k-models-dialog",t.$props,!1))},[]).exports;const Ht=lt({mixins:[It,St],props:{size:{default:"medium"},submitButton:{default:()=>window.panel.t("save")},text:{type:String}},emits:["cancel","input","submit"]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",t.value)}}},"k-dialog",t.$props,!1),[t._t("default",function(){return[t.text?e("k-dialog-text",{attrs:{text:t.text}}):t._e(),e("k-dialog-fields",{attrs:{fields:t.fields,value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})]})],2)},[]).exports;const Ut=lt({extends:Ht,watch:{"value.name"(t){this.fields.code.disabled||this.onNameChanges(t)},"value.code"(t){this.fields.code.disabled||(this.value.code=this.$helper.slug(t,[this.$panel.system.ascii]),this.onCodeChanges(this.value.code))}},methods:{onCodeChanges(t){if(!t)return this.value.locale=null;if(t.length>=2)if(-1!==t.indexOf("-")){let e=t.split("-"),s=[e[0],e[1].toUpperCase()];this.value.locale=s.join("_")}else{let e=this.$panel.system.locales??[];this.value.locale=e?.[t]}},onNameChanges(t){this.value.code=this.$helper.slug(t,[this.value.rules,this.$panel.system.ascii]).substr(0,2)}}},null,null).exports;const Vt=lt({mixins:[{mixins:[It],props:{license:Object,size:{default:"large"}}}]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",staticClass:"k-license-dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[e("k-bar",{staticStyle:{"margin-bottom":"var(--spacing-2)"}},[e("h2",{staticClass:"k-headline"},[t._v(" "+t._s(t.$t("license"))+" ")]),e("k-button",{attrs:{text:t.$t("remove"),icon:"trash",size:"xs",variant:"filled",dialog:"license/remove"}})],1),e("div",{staticClass:"k-table"},[e("table",{staticStyle:{"table-layout":"auto"}},[e("tbody",[e("tr",[e("th",{attrs:{"data-mobile":"true"}},[t._v(t._s(t.$t("type")))]),e("td",{attrs:{"data-mobile":"true"}},[t._v(t._s(t.license.type))])]),t.license.code?e("tr",[e("th",{attrs:{"data-mobile":"true"}},[t._v(t._s(t.$t("license.code")))]),e("td",{staticClass:"k-text",attrs:{"data-mobile":"true"}},[e("code",[t._v(t._s(t.license.code))])])]):t._e(),t.license.info?e("tr",[e("th",{attrs:{"data-mobile":"true"}},[t._v(t._s(t.$t("status")))]),e("td",{attrs:{"data-mobile":"true","data-theme":t.license.theme}},[e("p",{staticClass:"k-license-dialog-status"},[e("k-icon",{attrs:{type:t.license.icon}}),t._v(" "+t._s(t.license.info)+" ")],1)])]):t._e()])])])],1)},[]).exports;const Kt=lt({mixins:[{mixins:[It],props:{cancelButton:null,submitButton:null,lock:Object,preview:String}}]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",staticClass:"k-lock-alert-dialog",attrs:{"cancel-button":!1,"submit-button":{theme:"passive"}},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[e("k-dialog-text",{attrs:{text:t.$t("form.locked")}}),e("dl",[e("div",[e("dt",[e("k-icon",{attrs:{type:"user"}})],1),e("dd",[t._v(t._s(t.lock.user.email))])]),e("div",[e("dt",[e("k-icon",{attrs:{type:"clock"}})],1),e("dd",[t._v(" "+t._s(t.$library.dayjs(t.lock.modified).format("YYYY-MM-DD HH:mm:ss"))+" ")])])])],1)},[]).exports;const Wt=lt({mixins:[It,St],props:{fields:{default:()=>({href:{label:window.panel.t("link"),type:"link",placeholder:window.panel.t("url.placeholder"),icon:"url"},title:{label:window.panel.t("title"),type:"text",icon:"title"},target:{label:window.panel.t("open.newWindow"),type:"toggle",text:[window.panel.t("no"),window.panel.t("yes")]}})},size:{default:"medium"},submitButton:{default:()=>window.panel.t("insert")}},data(){return{values:{href:"",title:null,...this.value,target:Boolean(this.value.target??!1)}}},methods:{submit(){let t="/@/$1/";this.values.href.startsWith("page://")&&window.panel.language.code&&!1===window.panel.language.default&&(t="/"+window.panel.language.code+t);const e=this.values.href.replace(/(file|page):\/\//,t);this.$emit("submit",{...this.values,href:e,target:this.values.target?"_blank":null})}}},function(){var t=this;return(0,t._self._c)("k-form-dialog",t._b({attrs:{value:t.values},on:{cancel:function(e){return t.$emit("cancel")},input:function(e){t.values=e},submit:t.submit}},"k-form-dialog",t.$props,!1))},[]).exports;const Jt=lt({mixins:[Ht],props:{blueprints:{type:Array},size:{default:"medium",type:String},submitButton:{type:[String,Boolean],default:()=>window.panel.t("save")},template:{type:String}},computed:{templates(){return this.blueprints.map(t=>({text:t.title,value:t.name}))}},methods:{pick(t){this.$panel.dialog.refresh({query:{...this.$panel.dialog.query,slug:this.value.slug,template:t,title:this.value.title}})}}},function(){var t=this,e=t._self._c;return e("k-form-dialog",t._b({ref:"dialog",staticClass:"k-page-create-dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",t.value)}}},"k-form-dialog",t.$props,!1),[t.templates.length>1?e("k-select-field",{staticClass:"k-page-template-switch",attrs:{empty:!1,label:t.$t("template"),options:t.templates,required:!0,value:t.template},on:{input:function(e){return t.pick(e)}}}):t._e(),e("k-dialog-fields",{attrs:{fields:t.fields,value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})],1)},[]).exports;const Gt=lt({mixins:[It],props:{value:{default:()=>({}),type:Object}},emits:["cancel","input","submit"],methods:{select(t){this.$emit("input",{...this.value,parent:t.value})}}},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",staticClass:"k-page-move-dialog",attrs:{"submit-button":{icon:"parent",text:t.$t("move")},size:"medium"},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",t.value)}}},"k-dialog",t.$props,!1),[e("k-headline",[t._v(t._s(t.$t("page.move")))]),e("div",{staticClass:"k-page-move-parent",attrs:{tabindex:"0","data-autofocus":""}},[e("k-page-tree",{attrs:{current:t.value.parent,move:t.value.move,identifier:"id"},on:{select:t.select}})],1)],1)},[]).exports;const Xt=lt({mixins:[It,zt],props:{empty:{type:Object,default:()=>({icon:"page",text:window.panel.t("dialog.pages.empty")})}},data:()=>({model:null,parent:null})},function(){var t=this,e=t._self._c;return e("k-models-dialog",t._b({attrs:{"fetch-params":{parent:t.parent}},on:{cancel:function(e){return t.$emit("cancel")},fetched:function(e){t.model=e.model},submit:function(e){return t.$emit("submit",e)}},scopedSlots:t._u([t.model?{key:"header",fn:function(){return[e("header",{staticClass:"k-pages-dialog-navbar"},[e("k-button",{attrs:{disabled:!t.model.id,title:t.$t("back"),icon:"angle-left"},on:{click:function(e){t.parent=t.model.parent}}}),e("k-headline",[t._v(t._s(t.model.title))])],1)]},proxy:!0}:null,t.model?{key:"options",fn:function({item:s}){return[e("k-button",{staticClass:"k-pages-dialog-option",attrs:{disabled:!s.hasChildren,title:t.$t("open"),icon:"angle-right"},on:{click:function(e){e.stopPropagation(),t.parent=s.id}}})]}}:null],null,!0)},"k-models-dialog",t.$props,!1))},[]).exports;const Zt=lt({mixins:[{mixins:[It,Dt]}]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[t._t("default",function(){return[e("k-dialog-text",{attrs:{text:t.text}})]})],2)},[]).exports;const Qt=lt({mixins:[Zt],props:{icon:{default:"trash"},submitButton:{default:()=>window.panel.t("delete")},theme:{default:"negative"}}},function(){var t=this;return(0,t._self._c)("k-text-dialog",t._b({ref:"dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-text-dialog",t.$props,!1),[t._t("default")],2)},[]).exports;const te=lt({mixins:[It],props:{type:String},emits:["cancel"],data:()=>({results:null,pagination:{}}),methods:{focus(){this.$refs.search?.focus()},navigate(t){t&&(this.$go(t.link),this.close())},async search({type:t,query:e}){const s=await this.$panel.search(t,e);s&&(this.results=s.results,this.pagination=s.pagination)}}},function(){var t=this,e=t._self._c;return e("k-dialog",{staticClass:"k-search-dialog",attrs:{"cancel-button":!1,"submit-button":!1,visible:!0,role:"search",size:"medium"},on:{cancel:function(e){return t.$emit("cancel")},submit:t.submit}},[e("k-search-bar",{ref:"search",attrs:{"default-type":t.type??t.$panel.view.search,"is-loading":t.$panel.searcher.isLoading,pagination:t.pagination,results:t.results,types:t.$panel.searches},on:{close:t.close,more:function(e){return t.$go("search",{query:e})},navigate:t.navigate,search:t.search}})],1)},[]).exports;const ee=lt({mixins:[{mixins:[It,St]}],props:{fields:null,qr:{type:String,required:!0},size:{default:"large"},submitButton:{default:()=>({text:window.panel.t("activate"),icon:"lock",theme:"notice"})}},emits:["cancel","input","submit"]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[e("k-dialog-text",{staticClass:"k-totp-dialog-intro",attrs:{text:t.$t("login.totp.enable.intro")}}),e("div",{staticClass:"k-totp-dialog-grid"},[e("div",{staticClass:"k-totp-qrcode"},[e("k-info-field",{attrs:{label:t.$t("login.totp.enable.qr.label"),text:t.qr,help:t.$t("login.totp.enable.qr.help",{secret:t.value.secret}),theme:"passive"}})],1),e("k-dialog-fields",{staticClass:"k-totp-dialog-fields",attrs:{fields:{info:{label:t.$t("login.totp.enable.confirm.headline"),type:"info",text:t.$t("login.totp.enable.confirm.text"),theme:"none"},confirm:{label:t.$t("login.totp.enable.confirm.label"),type:"text",counter:!1,font:"monospace",required:!0,placeholder:t.$t("login.code.placeholder.totp"),help:t.$t("login.totp.enable.confirm.help")},secret:{type:"hidden"}},value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})],1)],1)},[]).exports;const se=lt({mixins:[It],props:{submitButton:{type:[String,Boolean,Object],default:()=>({icon:"upload",text:window.panel.t("upload")})}}},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",staticClass:"k-upload-dialog",attrs:{disabled:t.disabled||0===t.$panel.upload.files.length},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[e("k-dropzone",{on:{drop:function(e){return t.$panel.upload.select(e)}}},[0===t.$panel.upload.files.length?e("k-empty",{attrs:{icon:"upload",layout:"cards"},on:{click:function(e){return t.$panel.upload.pick()}}},[t._v(" "+t._s(t.$t("files.empty"))+" ")]):e("k-upload-items",{attrs:{items:t.$panel.upload.files},on:{remove:e=>{t.$panel.upload.remove(e.id)},rename:(t,e)=>{t.name=e}}})],1)],1)},[]).exports;const ie=lt({extends:se,props:{original:Object,submitButton:{type:[String,Boolean,Object],default:()=>({icon:"upload",text:window.panel.t("replace")})}},computed:{file(){return this.$panel.upload.files[0]}}},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",staticClass:"k-upload-dialog k-upload-replace-dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[e("ul",{staticClass:"k-upload-items"},[e("li",{staticClass:"k-upload-original"},[e("k-upload-item-preview",{attrs:{color:t.original.image?.color,icon:t.original.image?.icon,url:t.original.url,type:t.original.mime}})],1),e("li",[t._v("←")]),e("k-upload-item",t._b({attrs:{color:t.original.image?.color,editable:!1,icon:t.original.image?.icon,name:t.$helper.file.name(t.original.filename),removable:!1}},"k-upload-item",t.file,!1))],1)])},[]).exports;const ne=lt({mixins:[It,zt],props:{empty:{type:Object,default:()=>({icon:"users",text:window.panel.t("dialog.users.empty")})},item:{type:Function,default:t=>({...t,key:t.email,info:t.info!==t.text?t.info:null})}}},function(){var t=this;return(0,t._self._c)("k-models-dialog",t._b({on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",e)}}},"k-models-dialog",t.$props,!1))},[]).exports,oe={install(t){t.use(jt),t.component("k-dialog",Bt),t.component("k-changes-dialog",Lt),t.component("k-email-dialog",Tt),t.component("k-error-dialog",Pt),t.component("k-fiber-dialog",qt),t.component("k-files-dialog",Rt),t.component("k-form-dialog",Ht),t.component("k-license-dialog",Vt),t.component("k-link-dialog",Wt),t.component("k-lock-alert-dialog",Kt),t.component("k-language-dialog",Ut),t.component("k-models-dialog",Yt),t.component("k-page-create-dialog",Jt),t.component("k-page-move-dialog",Gt),t.component("k-pages-dialog",Xt),t.component("k-remove-dialog",Qt),t.component("k-search-dialog",te),t.component("k-text-dialog",Zt),t.component("k-totp-dialog",ee),t.component("k-upload-dialog",se),t.component("k-upload-replace-dialog",ie),t.component("k-users-dialog",ne)}};const re=lt({},function(){return(0,this._self._c)("div",{staticClass:"k-drawer-body scroll-y-auto"},[this._t("default")],2)},[]).exports,ae={props:{disabled:Boolean,empty:{type:String,default:()=>window.panel.t("drawer.fields.empty")},fields:Object,value:Object}};const le=lt({mixins:[ae],emits:["input","submit"],computed:{hasFields(){return this.$helper.object.length(this.fields)>0}}},function(){var t=this,e=t._self._c;return t.hasFields?e("k-fieldset",{staticClass:"k-drawer-fields",attrs:{disabled:t.disabled,fields:t.fields,value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}}):e("k-box",{attrs:{theme:"info"}},[t._v(t._s(t.empty))])},[]).exports,ce={props:{breadcrumb:{default:()=>[],type:Array},tab:{type:String},tabs:{default:()=>({}),type:Object}}};const ue=lt({mixins:[ce],emits:["crumb","tab"]},function(){var t=this,e=t._self._c;return e("header",{staticClass:"k-drawer-header"},[e("nav",{staticClass:"k-breadcrumb k-drawer-breadcrumb"},[e("ol",t._l(t.breadcrumb,function(s,i){return e("li",{key:s.id},[e("k-button",{staticClass:"k-breadcrumb-link",attrs:{icon:s.props.icon,text:s.props.title,current:i===t.breadcrumb.length-1,variant:"dimmed"},on:{click:function(e){return t.$emit("crumb",s.id)}}})],1)}),0)]),e("k-drawer-tabs",{attrs:{tab:t.tab,tabs:t.tabs},on:{open:function(e){return t.$emit("tab",e)}}}),e("nav",{staticClass:"k-drawer-options"},[t._t("default"),e("k-button",{staticClass:"k-drawer-option",attrs:{icon:"check",type:"submit"}})],2)],1)},[]).exports;const pe=lt({},function(){var t=this,e=t._self._c;return"drawer"===t.$panel.notification.context?e("k-notification",{staticClass:"k-drawer-notification"}):t._e()},[]).exports;const de=lt({mixins:[{props:{tab:{type:String},tabs:{default:()=>({}),type:[Array,Object]}}}],emits:["open"],computed:{hasTabs(){return this.$helper.object.length(this.tabs)>1},tabsWithClickHandler(){let t=this.tabs;return!1===Array.isArray(t)&&(t=Object.values(t)),t.map(t=>({...t,click:()=>this.$emit("open",t.name)}))}}},function(){var t=this,e=t._self._c;return t.hasTabs?e("k-tabs",{staticClass:"k-drawer-tabs",attrs:{tab:t.tab,tabs:t.tabsWithClickHandler}}):t._e()},[]).exports,he={props:{empty:{type:String,default:()=>window.panel.t("drawer.text.empty")},text:{type:String}}};const me=lt({mixins:[he]},function(){var t=this,e=t._self._c;return t.text?e("k-text",{attrs:{html:t.text}}):e("k-box",{attrs:{theme:"info"}},[t._v(t._s(t.empty))])},[]).exports,fe={install(t){t.component("k-drawer-body",re),t.component("k-drawer-fields",le),t.component("k-drawer-header",ue),t.component("k-drawer-notification",pe),t.component("k-drawer-tabs",de),t.component("k-drawer-text",me)}},ge={mixins:[ce],props:{current:{default:!0,type:Boolean},icon:String,id:String,options:{type:Array},title:String,visible:{default:!1,type:Boolean}}};const be=lt({mixins:[ge],emits:["cancel","crumb","submit","tab"]},function(){var t=this,e=t._self._c;return t.visible?e("portal",{attrs:{to:"drawer"}},[e("form",{staticClass:"k-drawer",class:t.$vnode.data.staticClass,attrs:{"aria-current":t.current,method:"dialog"},on:{submit:function(e){return e.preventDefault(),t.$emit("submit")}}},[e("k-drawer-notification"),e("k-drawer-header",{attrs:{breadcrumb:t.breadcrumb,tab:t.tab,tabs:t.tabs},on:{crumb:function(e){return t.$emit("crumb",e)},tab:function(e){return t.$emit("tab",e)}}},[t._t("options",function(){return[t._l(t.options,function(s,i){return[s.dropdown?[e("k-button",t._b({key:"btn-"+i,staticClass:"k-drawer-option",on:{click:function(e){t.$refs["dropdown-"+i][0].toggle()}}},"k-button",s,!1)),e("k-dropdown-content",{key:"dropdown-"+i,ref:"dropdown-"+i,refInFor:!0,attrs:{options:s.dropdown,"align-x":"end",theme:"light"}})]:e("k-button",t._b({key:i,staticClass:"k-drawer-option"},"k-button",s,!1))]})]})],2),e("k-drawer-body",[t._t("default")],2)],1)]):t._e()},[]).exports,ke={props:{hidden:{type:Boolean},next:{type:Object},prev:{type:Object}}};const ye=lt({mixins:[ge,ae,ke],emits:["cancel","crumb","input","next","prev","remove","show","submit","tab"]},function(){var t=this,e=t._self._c;return e("k-form-drawer",t._b({ref:"drawer",staticClass:"k-block-drawer",on:{cancel:function(e){return t.$emit("cancel",e)},crumb:function(e){return t.$emit("crumb",e)},input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)},tab:function(e){return t.$emit("tab",e)}},scopedSlots:t._u([{key:"options",fn:function(){return[t.hidden?e("k-button",{staticClass:"k-drawer-option",attrs:{icon:"hidden"},on:{click:function(e){return t.$emit("show")}}}):t._e(),e("k-button",{staticClass:"k-drawer-option",attrs:{disabled:!t.prev,icon:"angle-left"},on:{click:function(e){return t.$emit("prev")}}}),e("k-button",{staticClass:"k-drawer-option",attrs:{disabled:!t.next,icon:"angle-right"},on:{click:function(e){return t.$emit("next")}}}),e("k-button",{staticClass:"k-drawer-option",attrs:{icon:"trash"},on:{click:function(e){return t.$emit("remove")}}})]},proxy:!0}])},"k-form-drawer",t.$props,!1))},[]).exports;const ve=lt({methods:{isCurrent(t){return this.$panel.drawer.id===t}}},function(){var t=this,e=t._self._c;return e("div",t._l(t.$panel.drawer.history.milestones,function(s){return e(s.component,t._g(t._b({key:s.id,tag:"component",attrs:{breadcrumb:t.$panel.drawer.breadcrumb,current:!0===t.isCurrent(s.id),visible:!0}},"component",t.isCurrent(s.id)?t.$panel.drawer.props:s.props,!1),t.isCurrent(s.id)?t.$panel.drawer.listeners():s.on))}),1)},[]).exports;const $e=lt({mixins:[ge,ae],emits:["cancel","crumb","input","submit","tab"]},function(){var t=this,e=t._self._c;return e("k-drawer",t._b({ref:"drawer",staticClass:"k-form-drawer",on:{cancel:function(e){return t.$emit("cancel")},crumb:function(e){return t.$emit("crumb",e)},submit:function(e){return t.$emit("submit",t.value)},tab:function(e){return t.$emit("tab",e)}},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0}],null,!0)},"k-drawer",t.$props,!1),[e("k-drawer-fields",{attrs:{disabled:t.disabled,fields:t.fields,value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})],1)},[]).exports;const xe=lt({mixins:[ge,ae,{props:{next:{type:Object},prev:{type:Object}}}],emits:["cancel","crumb","input","next","prev","remove","submit","tab"]},function(){var t=this,e=t._self._c;return e("k-form-drawer",t._b({ref:"drawer",staticClass:"k-structure-drawer",on:{cancel:function(e){return t.$emit("cancel",e)},crumb:function(e){return t.$emit("crumb",e)},input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)},tab:function(e){return t.$emit("tab",e)}},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function(){return[e("k-button",{staticClass:"k-drawer-option",attrs:{disabled:!t.prev,icon:"angle-left"},on:{click:function(e){return t.$emit("prev")}}}),e("k-button",{staticClass:"k-drawer-option",attrs:{disabled:!t.next,icon:"angle-right"},on:{click:function(e){return t.$emit("next")}}}),e("k-button",{staticClass:"k-drawer-option",attrs:{icon:"trash"},on:{click:function(e){return t.$emit("remove")}}})]},proxy:!0}],null,!0)},"k-form-drawer",t.$props,!1))},[]).exports;const we=lt({mixins:[ge,he],emits:["cancel","crumb","input","submit","tab"]},function(){var t=this,e=t._self._c;return e("k-drawer",t._b({ref:"drawer",staticClass:"k-text-drawer",on:{cancel:function(e){return t.$emit("cancel")},crumb:function(e){return t.$emit("crumb",e)},submit:function(e){return t.$emit("submit",t.value)},tab:function(e){return t.$emit("tab",e)}},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0}],null,!0)},"k-drawer",t.$props,!1),[e("k-dialog-text",{attrs:{text:t.text}})],1)},[]).exports,_e={install(t){t.use(fe),t.component("k-drawer",be),t.component("k-block-drawer",ye),t.component("k-fiber-drawer",ve),t.component("k-form-drawer",$e),t.component("k-structure-drawer",xe),t.component("k-text-drawer",we)}};let Se=null;const Ce=lt({props:{align:{type:String},alignX:{type:String,default:"start"},alignY:{type:String,default:"bottom"},disabled:{type:Boolean,default:!1},navigate:{default:!0,type:Boolean},options:[Array,Function,String],theme:{type:String,default:"dark"}},emits:["action","close","open"],data(){return{axis:{x:this.alignX,y:this.alignY},position:{x:0,y:0},isOpen:!1,items:[],opener:null}},mounted(){this.align&&window.panel.deprecated(": `align` prop will be removed in a future version. Use the `alignX` prop instead.")},methods:{close(){this.$refs.dropdown?.close()},async fetchOptions(t){return this.options?"string"==typeof this.options?this.$dropdown(this.options)(t):"function"==typeof this.options?this.options(t):Array.isArray(this.options)?t(this.options):void 0:t(this.items)},focus(t=0){this.$refs.navigate.focus(t)},onClick(){this.close()},onClose(){this.resetPosition(),this.isOpen=Se=!1,this.$emit("close"),window.removeEventListener("resize",this.setPosition)},async onOpen(){this.isOpen=!0;const t=window.scrollY;Se=this,await this.$nextTick(),this.$el&&this.opener&&(window.addEventListener("resize",this.setPosition),await this.setPosition(),window.scrollTo(0,t),this.$emit("open"))},onOptionClick(t){return this.close(),"function"==typeof t.click?t.click.call(this):"string"==typeof t.click?this.$emit("action",t.click):void(t.click&&(t.click.name&&this.$emit(t.click.name,t.click.payload),t.click.global&&this.$events.emit(t.click.global,t.click.payload)))},open(t){if(!0===this.disabled)return!1;Se&&Se!==this&&Se.close(),this.opener=t??window.event?.target.closest("button")??window.event?.target,this.fetchOptions(t=>{this.items=t,this.onOpen()})},async setPosition(){this.axis={x:this.alignX??this.align,y:this.alignY},"right"===this.axis.x?this.axis.x="end":"left"===this.axis.x&&(this.axis.x="start"),"rtl"===this.$panel.direction&&("start"===this.axis.x?this.axis.x="end":"end"===this.axis.x&&(this.axis.x="start")),this.opener.$el&&(this.opener=this.opener.$el);const t=this.opener.getBoundingClientRect();this.position.x=t.left+window.scrollX+t.width,this.position.y=t.top+window.scrollY+t.height,!0!==this.$el.open&&this.$el.showModal(),await this.$nextTick();const e=this.$el.getBoundingClientRect(),s=10;"end"===this.axis.x?t.left-e.widthwindow.innerWidth-s&&e.width+se.top&&(this.axis.y="bottom"):t.top+e.height>window.innerHeight-s&&e.height+st.onOptionClick(s)}},"k-dropdown-item",s,!1),[t._v(" "+t._s(s.label??s.text)+" ")])]},null,{item:s,index:i}):t._e()]})]},null,{items:t.items})],2)],1):t._e()},[]).exports,Oe={props:{disabled:Boolean,download:Boolean,rel:String,tabindex:[String,Number],target:String,title:String}};const Ae=lt({mixins:[Oe],props:{to:[String,Function]},emits:["click"],computed:{downloadAttr(){return this.download?this.href.split("/").pop():void 0},href(){return"function"==typeof this.to?"":"/"!==this.to[0]||this.target?!0===this.to.includes("@")&&!1===this.to.includes("/")&&!1===this.to.startsWith("mailto:")?"mailto:"+this.to:this.to:this.$url(this.to)},relAttr(){return"_blank"===this.target?"noreferrer noopener":this.rel}},methods:{isRoutable(t){if(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)return!1;if(t.defaultPrevented)return!1;if(void 0!==t.button&&0!==t.button)return!1;if(this.target)return!1;if("string"==typeof this.href){if(this.href.includes("://")||this.href.startsWith("//"))return!1;if(this.href.includes("mailto:"))return!1}return!0},onClick(t){if(!0===this.disabled)return t.preventDefault(),!1;"function"==typeof this.to&&(t.preventDefault(),this.to()),this.isRoutable(t)&&(t.preventDefault(),this.$go(this.to)),this.$emit("click",t)}}},function(){var t=this,e=t._self._c;return t.to&&!t.disabled?e("a",{ref:"link",staticClass:"k-link",attrs:{download:t.downloadAttr,href:t.href,rel:t.relAttr,tabindex:t.tabindex,target:t.target,title:t.title},on:{click:t.onClick}},[t._t("default")],2):e("span",{staticClass:"k-link",attrs:{title:t.title,"aria-disabled":""}},[t._t("default")],2)},[]).exports,Me={mixins:[Oe],props:{autofocus:Boolean,badge:Object,click:{type:Function,default:()=>{}},current:[String,Boolean],dialog:[String,Object],drawer:[String,Object],dropdown:Boolean,element:String,icon:String,id:[String,Number],link:String,responsive:[Boolean,String],role:String,selected:[String,Boolean],size:String,text:[String,Number],theme:String,type:{type:String,default:"button"},variant:String}};const De=lt({mixins:[Me],inheritAttrs:!1,emits:["click"],computed:{attrs(){const t={"aria-current":this.current,"aria-disabled":this.disabled,"aria-label":this.text??this.title,"aria-selected":this.selected,"data-responsive":this.responsive,"data-size":this.size,"data-theme":this.theme,"data-variant":this.variant,id:this.id,tabindex:this.tabindex,title:this.title};return"k-link"===this.component?(t.disabled=this.disabled,t.download=this.download,t.to=this.link,t.rel=this.rel,t.target=this.target):"button"===this.component&&(t.autofocus=this.autofocus,t.role=this.role,t.type=this.type),this.dropdown&&(t["aria-haspopup"]="menu",t["data-dropdown"]=this.dropdown),t},component(){return this.element?this.element:this.link?"k-link":"button"}},methods:{focus(){this.$el.focus?.()},onClick(t){return this.disabled?(t.preventDefault(),!1):this.dialog?this.$panel.dialog.open(this.dialog):this.drawer?this.$panel.drawer.open(this.drawer):(this.click?.(t),void this.$emit("click",t))}}},function(){var t=this,e=t._self._c;return e(t.component,t._b({tag:"component",class:["k-button",t.$attrs.class],style:t.$attrs.style,attrs:{"data-has-icon":Boolean(t.icon),"data-has-text":Boolean(t.text||t.$slots.default)},on:{click:t.onClick}},"component",t.attrs,!1),[t.icon?e("span",{staticClass:"k-button-icon"},[e("k-icon",{attrs:{type:t.icon}})],1):t._e(),t.text||t.$slots.default?e("span",{staticClass:"k-button-text"},[t._t("default",function(){return[t._v(" "+t._s(t.text)+" ")]})],2):t._e(),t.dropdown&&(t.text||t.$slots.default)?e("span",{staticClass:"k-button-arrow"},[e("k-icon",{attrs:{type:"angle-dropdown"}})],1):t._e(),t.badge?e("span",{staticClass:"k-button-badge",attrs:{"data-theme":t.badge.theme??t.theme}},[t._v(" "+t._s(t.badge.text)+" ")]):t._e()])},[]).exports;const Ee=lt({mixins:[Me],inheritAttrs:!1,emit:["click"],methods:{focus(){this.$refs.button.focus()},tab(){this.$refs.button.tab()}}},function(){var t=this;return(0,t._self._c)("k-button",t._b({ref:"button",class:["k-dropdown-item",t.$attrs.class],style:t.$attrs.style,on:{click:function(e){return t.$emit("click",e)}}},"k-button",t.$props,!1),[t._t("default")],2)},[]).exports;const je=lt({props:{align:{type:String,default:"right"},disabled:{type:Boolean},icon:{type:String,default:"dots"},options:{type:[Array,Function,String],default:()=>[]},text:{type:[Boolean,String],default:!0},theme:{type:String,default:"dark"},size:String,variant:String},emits:["action","option"],computed:{hasSingleOption(){return Array.isArray(this.options)&&1===this.options.length}},methods:{onAction(t,e,s){"function"==typeof t?t.call(this):(this.$emit("action",t,e,s),this.$emit("option",t,e,s))},toggle(t=this.$el){this.$refs.options.toggle(t)}}},function(){var t=this,e=t._self._c;return t.hasSingleOption?e("k-button",{staticClass:"k-options-dropdown-toggle",attrs:{disabled:t.disabled,icon:t.options[0].icon??t.icon,size:t.options[0].size??t.size,title:t.options[0].title??t.options[0].tooltip??t.options[0].text,variant:t.options[0].variant??t.variant},on:{click:function(e){return t.onAction(t.options[0].option??t.options[0].click,t.options[0],0)}}},[!0===t.text?[t._v(" "+t._s(t.options[0].text)+" ")]:!1!==t.text?[t._v(" "+t._s(t.text)+" ")]:t._e()],2):t.options.length?e("div",{staticClass:"k-options-dropdown"},[e("k-button",{staticClass:"k-options-dropdown-toggle",attrs:{disabled:t.disabled,dropdown:!0,icon:t.icon,size:t.size,text:!0!==t.text&&!1!==t.text?t.text:null,title:t.$t("options"),variant:t.variant},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",staticClass:"k-options-dropdown-content",attrs:{"align-x":t.align,options:t.options},on:{action:t.onAction}})],1):t._e()},[]).exports,Ie={mixins:[V,W,X,st,rt]},Be={mixins:[Ie],inheritAttrs:!1,emits:["input"],methods:{focus(){this.$el.focus()}}},Le={mixins:[V,W,it,rt],props:{ignore:{default:()=>[],type:Array},max:Number,min:Number,search:{default:!0,type:[Object,Boolean]}}},Te={mixins:[Ie,Le],props:{create:{type:[Boolean,Object],default:!1},multiple:{type:Boolean,default:!0},value:{type:[Array,String],default:()=>[]}},emits:["create","escape","input"]};const Pe=lt({mixins:[Be,Te],data(){return{display:this.search.display??!0,query:""}},computed:{choices(){let t=this.filteredOptions;return!0!==this.display&&(t=t.slice(0,this.display)),t.map(t=>({...t,disabled:t.disabled||this.isFull&&!1===this.value.includes(t.value),text:this.highlight(t.text),...this.search.info&&t.info?{info:this.highlight(t.info)}:{}}))},filteredOptions(){if(!(this.query.length<(this.search.min??0))){if(this.search.info){let t=this.$helper.array.search(this.options,this.query,{field:"text"});return t=t.concat(this.$helper.array.search(this.options,this.query,{field:"info"})),t=t.filter((t,e,s)=>e===s.findIndex(e=>e===t)),t}return this.$helper.array.search(this.options,this.query,{field:"text"})}},isFull(){return this.max&&this.value.length>=this.max},placeholder(){return this.search.placeholder?this.search.placeholder:this.options.length>0?this.$t("filter")+"…":this.$t("enter")+"…"},showCreate(){if(!1===this.create)return!1;if(this.isFull)return!1;if(0===this.query.trim().length)return!1;if(!0===this.ignore.includes(this.query))return!1;if(!0===this.create.ignore?.includes(this.query))return!1;return 0===this.options.filter(t=>t.text===this.query||t.value===this.query).length},showEmpty(){return!1===this.create&&0===this.filteredOptions.length}},methods:{add(){this.showCreate&&this.$emit("create",this.query)},enter(t){t.target?.click()},escape(){0===this.query.length?this.$emit("escape"):this.query=""},focus(){this.$refs.search?this.$refs.search.focus():this.$refs.options?.focus()},highlight(t){if(t=this.$helper.string.stripHTML(t),this.query.length>0){const e=new RegExp(`(${RegExp.escape(this.query)})`,"ig");return t.replace(e,"$1")}return t},input(t){this.$emit("input",t)}}},function(){var t=this,e=t._self._c;return e("k-navigate",{class:["k-picklist-input",t.$attrs.class],style:t.$attrs.style,attrs:{element:"nav",axis:"y",select:"input[type=search], label, .k-picklist-input-body button"},on:{prev:function(e){return t.$emit("escape")}}},[t.search?e("header",{staticClass:"k-picklist-input-header"},[e("div",{staticClass:"k-picklist-input-search"},[e("k-search-input",{ref:"search",attrs:{autofocus:t.autofocus,disabled:t.disabled,placeholder:t.placeholder,value:t.query},on:{input:function(e){t.query=e}},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"escape",void 0,e.key,void 0)?null:(e.preventDefault(),t.escape.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.add.apply(null,arguments))}]}}),t.showCreate?e("k-button",{staticClass:"k-picklist-input-create",attrs:{icon:"add",size:"xs"},on:{click:t.add}}):t._e()],1)]):t._e(),t.filteredOptions.length?[e("div",{staticClass:"k-picklist-input-body"},[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e(t.multiple?"k-checkboxes-input":"k-radio-input",{ref:"options",tag:"component",staticClass:"k-picklist-input-options",attrs:{disabled:t.disabled,options:t.choices,value:t.value},on:{input:t.input},nativeOn:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.enter.apply(null,arguments))}}})],1),!0!==t.display&&t.filteredOptions.length>t.display?e("k-button",{staticClass:"k-picklist-input-more",attrs:{icon:"angle-down"},on:{click:function(e){t.display=!0}}},[t._v(" "+t._s(t.$t("options.all",{count:t.filteredOptions.length}))+" ")]):t._e()],1)]:t.showEmpty?[e("div",{staticClass:"k-picklist-input-body"},[e("p",{staticClass:"k-picklist-input-empty"},[t._v(" "+t._s(t.$t("options.none"))+" ")])])]:t._e()],2)},[]).exports;const qe=lt({mixins:[Te],emits:["create","input"],methods:{close(){this.$refs.dropdown.close()},add(t){this.$emit("create",t)},input(t){this.$emit("input",t)},open(t){this.$refs.dropdown.open(t)},toggle(){this.$refs.dropdown.toggle()}}},function(){var t=this,e=t._self._c;return e("k-dropdown-content",{ref:"dropdown",staticClass:"k-picklist-dropdown",attrs:{"align-x":"start",disabled:t.disabled,navigate:!1},nativeOn:{click:function(t){t.stopPropagation()}}},[e("k-picklist-input",t._b({on:{create:t.add,input:t.input,escape:function(e){return t.$refs.dropdown.close()}},nativeOn:{click:function(t){t.stopPropagation()}}},"k-picklist-input",t.$props,!1))],1)},[]).exports,Ne={install(t){t.component("k-dropdown-content",Ce),t.component("k-dropdown-item",Ee),t.component("k-options-dropdown",je),t.component("k-picklist-dropdown",qe)}};const Fe=lt({props:{count:Number,min:Number,max:Number,required:{type:Boolean,default:!1}},computed:{valid(){return!1===this.required&&0===this.count||(!0!==this.required||0!==this.count)&&(!(this.min&&this.countthis.max))}}},function(){var t=this,e=t._self._c;return e("span",{staticClass:"k-counter",attrs:{"data-invalid":!t.valid,"data-theme":t.valid?"positive":"negative"}},[e("span",[t._v(t._s(t.count))]),t.min||t.max?e("span",{staticClass:"k-counter-rules"},[t.min&&t.max?[t._v(t._s(t.min)+"–"+t._s(t.max))]:t.min?[t._v("≥ "+t._s(t.min))]:t.max?[t._v("≤ "+t._s(t.max))]:t._e()],2):t._e()])},[]).exports,ze={mixins:[W,G,X,Z,st,rt],props:{counter:[Boolean,Object],endpoints:Object,input:{type:[String,Number,Boolean],default:null},translate:Boolean,type:String}};const Ye=lt({mixins:[ze],inheritAttrs:!1,emits:["blur","focus"]},function(){var t=this,e=t._self._c;return e("div",{class:["k-field",`k-field-name-${t.name}`,`k-field-type-${t.type}`,t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-translate":t.translate},on:{focusin:function(e){return t.$emit("focus",e)},focusout:function(e){return t.$emit("blur",e)}}},[t._t("header",function(){return[t.label||t.$slots.label||t.$slots.options||t.$slots.counter?e("header",{staticClass:"k-field-header"},[t._t("label",function(){return[e("k-label",{attrs:{input:t.input,required:t.required,title:t.label,type:"field"}},[t._v(" "+t._s(t.label)+" ")])]}),t._t("options"),t._t("counter",function(){return[t.counter?e("k-counter",t._b({staticClass:"k-field-counter",attrs:{required:t.required}},"k-counter",t.counter,!1)):t._e()]})],2):t._e()]}),t._t("default"),t._t("footer",function(){return[t.help||t.$slots.help?e("footer",{staticClass:"k-field-footer"},[t._t("help",function(){return[t.help?e("k-text",{staticClass:"k-help k-field-help",attrs:{html:t.help}}):t._e()]})],2):t._e()]})],2)},[]).exports;const Re=lt({props:{config:Object,disabled:Boolean,fields:{type:[Array,Object],default:()=>({})},value:{type:Object,default:()=>({})}},emits:["focus","input","submit"],methods:{focus(t){if(t)return void(this.hasField(t)&&"function"==typeof this.$refs[t][0].focus&&this.$refs[t][0].focus());const e=Object.keys(this.$refs)[0];this.focus(e)},hasFieldType(t){return this.$helper.isComponent(`k-${t}-field`)},hasField(t){return this.$refs[t]?.[0]},onInput(t,e,s){const i=this.value;this.$set(i,s,t),this.$emit("input",i,e,s)}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-fieldset"},[e("k-grid",{attrs:{variant:"fields"}},[t._l(t.fields,function(s,i){return[t.$helper.field.isVisible(s,t.value)?e("k-column",{key:i,attrs:{width:s.width}},[t.hasFieldType(s.type)?e("k-"+s.type+"-field",t._b({ref:i,refInFor:!0,tag:"component",attrs:{disabled:t.disabled||s.disabled,"form-data":t.value,name:i,value:t.value[i]},on:{input:function(e){return t.onInput(e,s,i)},focus:function(e){return t.$emit("focus",e,s,i)},submit:function(e){return t.$emit("submit",e,s,i)}}},"component",s,!1)):e("k-box",{attrs:{theme:"negative"}},[e("k-text",{attrs:{size:"small"}},[t._v(" "+t._s(t.$t("error.field.type.missing",{name:i,type:s.type}))+" ")])],1)],1):t._e()]})],2)],1)},[]).exports;const He=lt({props:{disabled:Boolean,config:Object,fields:{type:[Array,Object],default:()=>[]},novalidate:{type:Boolean,default:!1},value:{type:Object,default:()=>({})}},emits:["focus","input","submit"],data:()=>({errors:{}}),methods:{focus(t){this.$refs.fields?.focus?.(t)},onFocus(t,e,s){this.$emit("focus",t,e,s)},onInput(t,e,s){this.$emit("input",t,e,s)},onSubmit(){this.$emit("submit",this.value)},submit(){this.$refs.submitter.click()}}},function(){var t=this,e=t._self._c;return e("form",{ref:"form",staticClass:"k-form",attrs:{novalidate:t.novalidate,method:"POST",autocomplete:"off"},on:{submit:function(e){return e.preventDefault(),t.onSubmit.apply(null,arguments)}}},[t._t("header"),t._t("default",function(){return[e("k-fieldset",{ref:"fields",attrs:{disabled:t.disabled,fields:t.fields,value:t.value},on:{focus:t.onFocus,input:t.onInput,submit:t.onSubmit}})]}),t._t("footer"),e("input",{ref:"submitter",staticClass:"k-form-submitter",attrs:{type:"submit"}})],2)},[]).exports,Ue={props:{editor:String,hasDiff:Boolean,isLocked:Boolean,isProcessing:Boolean,modified:[String,Date],preview:[String,Boolean],size:{type:String,default:"sm"}}};const Ve=lt({mixins:[Ue],emits:["discard","submit"],computed:{buttons(){return!0===this.isLocked?[{theme:"negative",dropdown:!0,text:this.editor,icon:"lock",responsive:!0,click:()=>this.$refs.dropdown.toggle()}]:!0===this.hasDiff?[{theme:"notice",text:this.$t("discard"),icon:"undo",responsive:!0,click:()=>this.discard()},{theme:"notice",text:this.$t("save"),icon:this.isProcessing?"loader":"check",click:()=>this.$emit("submit")},{theme:"notice",icon:"dots",click:()=>this.$refs.dropdown.toggle()}]:[]}},methods:{discard(){this.$panel.dialog.open({component:"k-remove-dialog",props:{size:"medium",submitButton:{theme:"notice",icon:"undo",text:this.$t("form.discard")},text:this.$t("form.discard.confirm")},on:{submit:()=>{this.$panel.dialog.close(),this.$emit("discard")}}})}}},function(){var t=this,e=t._self._c;return t.buttons.length?e("div",{staticClass:"k-form-controls"},[e("k-button-group",{attrs:{layout:"collapsed"}},t._l(t.buttons,function(s){return e("k-button",t._b({key:s.text,staticClass:"k-form-controls-button",attrs:{disabled:t.isProcessing,variant:"filled",size:t.size}},"k-button",s,!1))}),1),e("k-dropdown-content",{ref:"dropdown",staticClass:"k-form-controls-dropdown",attrs:{"align-x":"end"}},[t.isLocked?[e("p",[t._v(" "+t._s(t.$t("form.locked"))+" ")])]:[e("p",[t._v(" "+t._s(t.$t("form.unsaved"))+" ")])],t.editor||t.modified?[e("hr"),e("dl",[t.editor?e("div",[e("dt",[e("k-icon",{attrs:{type:"user"}})],1),e("dd",[t._v(t._s(t.editor))])]):t._e(),t.modified?e("div",[e("dt",[e("k-icon",{attrs:{type:"clock"}})],1),e("dd",[t._v(" "+t._s(t.$library.dayjs(t.modified).format("YYYY-MM-DD HH:mm:ss"))+" ")])]):t._e()])]:t._e(),t.preview?[e("hr"),e("k-dropdown-item",{attrs:{link:t.preview,icon:"window"}},[t._v(" "+t._s(t.$t("form.preview"))+" ")])]:t._e()],2)],1):t._e()},[]).exports,Ke={mixins:[H,K,W],inheritAttrs:!1,props:{autofocus:Boolean,type:String,icon:[String,Boolean],value:{type:[String,Boolean,Number,Object,Array],default:null}},emits:["input","submit"]};const We=lt({mixins:[Ke],computed:{inputProps(){return{...this.$props,...this.$attrs}}},methods:{blur(t){t?.relatedTarget&&!1===this.$el.contains(t.relatedTarget)&&this.trigger(null,"blur")},focus(t){this.trigger(t,"focus")},select(t){this.trigger(t,"select")},trigger(t,e){if("INPUT"===t?.target?.tagName&&"function"==typeof t?.target?.[e])return void t.target[e]();if("function"==typeof this.$refs.input?.[e])return void this.$refs.input[e]();const s=this.$el.querySelector("input, select, textarea");"function"==typeof s?.[e]&&s[e]()}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-type":t.type}},[t.$slots.before||t.before?e("span",{staticClass:"k-input-description k-input-before",on:{click:t.focus}},[t._t("before",function(){return[t._v(t._s(t.before))]})],2):t._e(),e("span",{staticClass:"k-input-element",on:{click:function(e){return e.stopPropagation(),t.focus.apply(null,arguments)}}},[t._t("default",function(){return[e("k-"+t.type+"-input",t._b({ref:"input",tag:"component",attrs:{value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}},"component",t.inputProps,!1))]})],2),t.$slots.after||t.after?e("span",{staticClass:"k-input-description k-input-after",on:{click:t.focus}},[t._t("after",function(){return[t._v(t._s(t.after))]})],2):t._e(),t.$slots.icon||t.icon?e("span",{staticClass:"k-input-icon",on:{click:t.focus}},[t._t("icon",function(){return[e("k-icon",{attrs:{type:t.icon}})]})],2):t._e()])},[]).exports,Je={props:{content:{default:()=>({}),type:[Array,Object]},fieldset:{default:()=>({}),type:Object}}};const Ge=lt({mixins:[Je],inheritAttrs:!1,computed:{icon(){return this.fieldset.icon??"box"},label(){if(!this.fieldset.label||0===this.fieldset.label.length)return!1;if(this.fieldset.label===this.name)return!1;let t=this.$helper.string.template(this.fieldset.label,this.content);return"…"!==t&&(t=this.$helper.string.stripHTML(t),this.$helper.string.unescapeHTML(t))},name(){return this.fieldset.name??this.fieldset.label}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-block-title",t.$attrs.class],style:t.$attrs.style},[e("k-icon",{staticClass:"k-block-icon",attrs:{type:t.icon}}),e("span",{staticClass:"k-block-title-text"},[t.name?e("span",{staticClass:"k-block-name"},[t._v(" "+t._s(t.name)+" ")]):t._e(),t.label?e("span",{staticClass:"k-block-label"},[t._v(" "+t._s(t.label)+" ")]):t._e()])],1)},[]).exports,Xe={mixins:[Je,W],props:{endpoints:{default:()=>({}),type:[Array,Object]},id:String}};const Ze=lt({mixins:[Xe],inheritAttrs:!1,methods:{field(t,e=null){let s=null;for(const i of Object.values(this.fieldset.tabs??{}))i.fields[t]&&(s=i.fields[t]);return s??e},open(){this.$emit("open")},update(t){this.$emit("update",{...this.content,...t})}}},function(){var t=this;return(0,t._self._c)("k-block-title",{class:t.$attrs.class,style:t.$attrs.style,attrs:{content:t.content,fieldset:t.fieldset},nativeOn:{dblclick:function(e){return t.$emit("open")}}})},[]).exports,Qe={props:{isBatched:Boolean,isFull:Boolean,isHidden:Boolean,isMergable:Boolean}};const ts=lt({mixins:[Qe],props:{isEditable:Boolean,isSplitable:Boolean},emits:["chooseToAppend","chooseToConvert","chooseToPrepend","copy","duplicate","hide","merge","open","paste","remove","removeSelected","show","split","sortDown","sortUp"],computed:{buttons(){return this.isBatched?[{icon:"template",title:this.$t("copy"),click:()=>this.$emit("copy")},{when:this.isMergable,icon:"merge",title:this.$t("merge"),click:()=>this.$emit("merge")},{icon:"trash",title:this.$t("remove"),click:()=>this.$emit("removeSelected")}]:[{when:this.isEditable,icon:"edit",title:this.$t("edit"),click:()=>this.$emit("open")},{icon:"add",title:this.$t("insert.after"),disabled:this.isFull,click:()=>this.$emit("chooseToAppend")},{icon:"trash",title:this.$t("delete"),click:()=>this.$emit("remove")},{icon:"sort",title:this.$t("sort.drag"),class:"k-sort-handle",key:t=>this.sort(t)},{icon:"dots",title:this.$t("more"),dropdown:[{icon:"angle-up",label:this.$t("insert.before"),disabled:this.isFull,click:()=>this.$emit("chooseToPrepend")},{icon:"angle-down",label:this.$t("insert.after"),disabled:this.isFull,click:()=>this.$emit("chooseToAppend")},"-",{when:this.isEditable,icon:"edit",label:this.$t("edit"),click:()=>this.$emit("open")},{icon:"refresh",label:this.$t("field.blocks.changeType"),click:()=>this.$emit("chooseToConvert")},{when:this.isSplitable,icon:"split",label:this.$t("split"),click:()=>this.$emit("split")},"-",{icon:"template",label:this.$t("copy"),click:()=>this.$emit("copy")},{icon:"download",label:this.$t("paste.after"),disabled:this.isFull,click:()=>this.$emit("paste")},"-",{icon:this.isHidden?"preview":"hidden",label:this.isHidden?this.$t("show"):this.$t("hide"),click:()=>this.$emit(this.isHidden?"show":"hide")},{icon:"copy",label:this.$t("duplicate"),click:()=>this.$emit("duplicate")},"-",{icon:"trash",label:this.$t("delete"),click:()=>this.$emit("remove")}]}]}},methods:{open(){this.$refs.options.open()},sort(t){switch(t.key){case"ArrowUp":t.preventDefault(),this.$emit("sortUp");break;case"ArrowDown":t.preventDefault(),this.$emit("sortDown")}}}},function(){return(0,this._self._c)("k-toolbar",{staticClass:"k-block-options",attrs:{buttons:this.buttons},nativeOn:{mousedown:function(t){t.preventDefault()}}})},[]).exports;const es=lt({mixins:[Xe,Qe],inheritAttrs:!1,props:{attrs:{default:()=>({}),type:[Array,Object]},isLastSelected:Boolean,isSelected:Boolean,name:String,next:Object,prev:Object,type:String},emits:["append","chooseToAppend","chooseToConvert","chooseToPrepend","close","copy","duplicate","focus","hide","merge","open","paste","prepend","remove","removeSelected","selectDown","selectUp","show","sortDown","sortUp","split","submit","update"],computed:{className(){let t=["k-block-type-"+this.type];return this.fieldset.preview&&this.fieldset.preview!==this.type&&t.push("k-block-type-"+this.fieldset.preview),!1===this.wysiwyg&&t.push("k-block-type-default"),t},containerType(){const t=this.fieldset.preview;return!1!==t&&(t&&this.$helper.isComponent("k-block-type-"+t)?t:!!this.$helper.isComponent("k-block-type-"+this.type)&&this.type)},customComponent(){return this.wysiwyg?this.wysiwygComponent:"k-block-type-default"},isDisabled(){return!0===this.disabled||!0===this.fieldset.disabled},isEditable(){return!1!==this.fieldset.editable},listeners(){return{append:t=>this.$emit("append",t),chooseToAppend:t=>this.$emit("chooseToAppend",t),chooseToConvert:t=>this.$emit("chooseToConvert",t),chooseToPrepend:t=>this.$emit("chooseToPrepend",t),close:()=>this.$emit("close"),copy:()=>this.$emit("copy"),duplicate:()=>this.$emit("duplicate"),focus:()=>this.$emit("focus"),hide:()=>this.$emit("hide"),merge:()=>this.$emit("merge"),open:t=>this.open(t),paste:()=>this.$emit("paste"),prepend:t=>this.$emit("prepend",t),remove:()=>this.remove(),removeSelected:()=>this.$emit("removeSelected"),show:()=>this.$emit("show"),sortDown:()=>this.$emit("sortDown"),sortUp:()=>this.$emit("sortUp"),split:t=>this.$emit("split",t),update:t=>this.$emit("update",t)}},listenersForOptions(){return{...this.listeners,split:()=>this.$refs.editor.split(),open:()=>{"function"==typeof this.$refs.editor.open?this.$refs.editor.open():this.open()}}},tabs(){const t=this.fieldset.tabs??{};for(const[e,s]of Object.entries(t))for(const[i]of Object.entries(s.fields??{}))t[e].fields[i].section=this.name,t[e].fields[i].endpoints={field:this.endpoints.field+"/fieldsets/"+this.type+"/fields/"+i,section:this.endpoints.section,model:this.endpoints.model};return t},wysiwyg(){return!1!==this.wysiwygComponent},wysiwygComponent(){return!!this.containerType&&"k-block-type-"+this.containerType}},methods:{backspace(t){if(t.target.matches("[contenteditable], input, textarea"))return!1;t.preventDefault(),this.remove()},close(){this.$panel.drawer.close(this.id)},collapse(){this.$refs.editor?.collapse?.()},expand(){this.$refs.editor?.expand?.()},focus(){"function"==typeof this.$refs.editor?.focus?this.$refs.editor.focus():this.$refs.container?.focus()},goTo(t){t&&(t.$refs.container?.focus(),t.open(null,!0))},isCollapsed(){return!0===(this.$refs.editor?.collapsed??!1)},isCollapsible(){return"function"==typeof this.$refs.editor?.collapse},isExpandable(){return"function"==typeof this.$refs.editor?.expand},isSplitable(){return!0!==this.isFull&&(!!this.$refs.editor&&((this.$refs.editor.isSplitable??!0)&&"function"==typeof this.$refs.editor?.split))},onClose(){this.$emit("close"),this.focus()},onFocus(t){this.disabled||this.$emit("focus",t)},onFocusIn(t){this.disabled||this.$refs.options?.$el?.contains(t.target)||this.$emit("focus",t)},onInput(t){this.$emit("update",t)},open(t,e=!1){!this.isEditable||this.isBatched||this.isDisabled||(this.$panel.drawer.open({component:"k-block-drawer",id:this.id,tab:t,on:{close:this.onClose,input:this.onInput,next:()=>this.goTo(this.next),prev:()=>this.goTo(this.prev),remove:this.remove,show:this.show,submit:this.submit},props:{hidden:this.isHidden,icon:this.fieldset.icon??"box",next:this.next,prev:this.prev,tabs:this.tabs,title:this.fieldset.name,value:this.content},replace:e}),this.$emit("open"))},remove(){if(this.isBatched)return this.$emit("removeSelected");this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.blocks.delete.confirm")},on:{submit:()=>{this.$panel.dialog.close(),this.close(),this.$emit("remove",this.id)}}})},show(){this.$emit("show")},submit(){this.close(),this.$emit("submit")}}},function(){var t=this,e=t._self._c;return e("div",{ref:"container",class:["k-block-container","k-block-container-fieldset-"+t.type,t.containerType?"k-block-container-type-"+t.containerType:"",t.$attrs.class],style:t.$attrs.style,attrs:{"data-batched":t.isBatched,"data-disabled":t.isDisabled,"data-hidden":t.isHidden,"data-id":t.id,"data-last-selected":t.isLastSelected,"data-selected":t.isSelected,"data-translate":t.fieldset.translate,tabindex:t.isDisabled?null:0},on:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"j",void 0,e.key,void 0)?null:e.ctrlKey?(e.preventDefault(),e.stopPropagation(),t.$emit("merge")):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:e.ctrlKey&&e.altKey?(e.preventDefault(),e.stopPropagation(),t.$emit("selectDown")):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:e.ctrlKey&&e.altKey?(e.preventDefault(),e.stopPropagation(),t.$emit("selectUp")):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:e.ctrlKey&&e.shiftKey?(e.preventDefault(),e.stopPropagation(),t.$emit("sortDown")):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:e.ctrlKey&&e.shiftKey?(e.preventDefault(),e.stopPropagation(),t.$emit("sortUp")):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"backspace",void 0,e.key,void 0)?null:e.ctrlKey?(e.stopPropagation(),t.backspace.apply(null,arguments)):null}],focus:function(e){return e.stopPropagation(),t.onFocus.apply(null,arguments)},focusin:function(e){return e.stopPropagation(),t.onFocusIn.apply(null,arguments)}}},[e("div",{staticClass:"k-block",class:t.className,attrs:{"data-disabled":t.isDisabled}},[e(t.customComponent,t._g(t._b({ref:"editor",tag:"component",attrs:{tabs:t.tabs}},"component",t.$props,!1),t.listeners))],1),t.isDisabled?t._e():e("k-block-options",t._g(t._b({ref:"options"},"k-block-options",{isBatched:t.isBatched,isEditable:t.isEditable,isFull:t.isFull,isHidden:t.isHidden,isMergable:t.isMergable,isSplitable:t.isSplitable()},!1),t.listenersForOptions))],1)},[]).exports,ss={mixins:[V,W,X],props:{empty:String,endpoints:Object,fieldsets:Object,fieldsetGroups:Object,group:String,min:{type:Number,default:null},max:{type:Number,default:null},value:{type:Array,default:()=>[]}},emits:["input"]};const is=lt({mixins:[ss],inheritAttrs:!1,data(){return{blocks:this.value??[],isEditing:!1,isMultiSelectKey:!1,selected:[]}},computed:{draggableOptions(){return{handle:".k-sort-handle",list:this.blocks,group:this.group,move:this.move,data:{fieldsets:this.fieldsets,isFull:this.isFull}}},hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0},isEmpty(){return 0===this.blocks.length},isFull(){return null!==this.max&&this.blocks.length>=this.max},isMergable(){if(this.selected.length<2)return!1;const t=this.selected.map(t=>this.find(t));return!(new Set(t.map(t=>t.type)).size>1)&&"function"==typeof this.ref(t[0]).$refs.editor.merge}},watch:{value(){this.blocks=this.value}},mounted(){!0===this.$props.autofocus&&setTimeout(this.focus,100),this.$events.on("blur",this.onBlur),this.$events.on("click",this.onClickGlobal),this.$events.on("copy",this.onCopy),this.$events.on("keydown",this.onKey),this.$events.on("keyup",this.onKey),this.$events.on("paste",this.onPaste)},destroyed(){this.$events.off("blur",this.onBlur),this.$events.off("click",this.onClickGlobal),this.$events.off("copy",this.onCopy),this.$events.off("keydown",this.onKey),this.$events.off("keyup",this.onKey),this.$events.off("paste",this.onPaste)},methods:{async add(t="text",e){const s=await this.$api.get(this.endpoints.field+"/fieldsets/"+t);this.blocks.splice(e,0,s),this.save(),await this.$nextTick(),this.focusOrOpen(s)},choose(t){if(1===this.$helper.object.length(this.fieldsets))return this.add(Object.values(this.fieldsets)[0].type,t);this.$panel.dialog.open({component:"k-block-selector",props:{fieldsetGroups:this.fieldsetGroups,fieldsets:this.fieldsets},on:{submit:e=>{this.add(e,t),this.$panel.dialog.close()},paste:e=>{this.paste(e,t)}}})},chooseToConvert(t){this.$panel.dialog.open({component:"k-block-selector",props:{disabledFieldsets:[t.type],fieldsetGroups:this.fieldsetGroups,fieldsets:this.fieldsets,headline:this.$t("field.blocks.changeType")},on:{submit:e=>{this.convert(e,t),this.$panel.dialog.close()},paste:this.paste}})},collapse(t){this.ref(t)?.collapse?.()},collapseAll(){for(const t of this.blocks)this.collapse(t)},copy(t){if(0===this.blocks.length)return!1;if(0===this.selected.length)return!1;let e=[];for(const s of this.blocks)this.selected.includes(s.id)&&e.push(s);if(0===e.length)return!1;this.$helper.clipboard.write(e,t),this.selected=e.map(t=>t.id),this.$panel.notification.success({message:this.$t("copy.success.multiple",{count:e.length}),icon:"template"})},copyAll(){this.selectAll(),this.copy(),this.deselectAll()},async convert(t,e){const s=this.findIndex(e.id);if(-1===s)return!1;const i=t=>{let e={};for(const s of Object.values(t?.tabs??{}))e={...e,...s.fields};return e},n=this.blocks[s],o=await this.$api.get(this.endpoints.field+"/fieldsets/"+t),r=this.fieldsets[n.type],a=this.fieldsets[t];if(!a)return!1;let l=o.content;const c=i(a),u=i(r);for(const[p,d]of Object.entries(c)){const t=u[p];t?.type===d.type&&n?.content?.[p]&&(l[p]=n.content[p])}this.blocks[s]={...o,id:n.id,content:l},this.save()},deselect(t){const e=this.selected.findIndex(e=>e===t.id);-1!==e&&this.selected.splice(e,1)},deselectAll(){this.selected=[]},async duplicate(t,e){const s={...this.$helper.object.clone(t),id:this.$helper.uuid()};this.blocks.splice(e+1,0,s),this.save()},expand(t){this.ref(t)?.expand?.()},expandAll(){for(const t of this.blocks)this.expand(t)},fieldset(t){return this.fieldsets[t.type]??{icon:"box",name:t.type,tabs:{content:{fields:{}}},type:t.type}},find(t){return this.blocks.find(e=>e.id===t)},findIndex(t){return this.blocks.findIndex(e=>e.id===t)},focus(t){const e=this.ref(t);this.selected=[t?.id??this.blocks[0]],e?.focus(),e?.$el.scrollIntoView({block:"nearest"})},focusOrOpen(t){this.fieldsets[t.type].wysiwyg?this.focus(t):this.open(t)},hide(t){s(t,"isHidden",!0),this.save()},isEventTarget(t){return t.target.closest(".k-blocks")===this.$el},isFullyCollapsed(){return this.blocks.every(t=>!1===(t=this.ref(t)).isCollapsible()||!0===t.isCollapsed())},isCollapsible(){return this.blocks.some(t=>this.ref(t).isCollapsible())},isFullyExpanded(){return this.blocks.every(t=>!1===(t=this.ref(t)).isCollapsible()||!1===t.isCollapsed())},isExpandable(){return this.blocks.some(t=>this.ref(t).isExpandable())},isInputEvent(){const t=document.querySelector(":focus");return t?.matches("input, textarea, [contenteditable], .k-writer-input")},isLastSelected(t){const[e]=this.selected.slice(-1);return e&&t.id===e},isOnlyInstance:()=>1===document.querySelectorAll(".k-blocks").length,isSelected(t){return this.selected.includes(t.id)},async merge(){if(this.isMergable){const t=this.selected.map(t=>this.find(t)).sort((t,e)=>this.findIndex(t.id)-this.findIndex(e.id));this.ref(t[0]).$refs.editor.merge(t);for(const e of t.slice(1))this.remove(e);await this.$nextTick(),this.focus(t[0])}},move(t){if(t.from!==t.to){const e=t.draggedData,s=t.toData;if(!1===Object.keys(s.fieldsets).includes(e.type))return!1;if(!0===s.isFull)return!1}return!0},onBlur(){0===this.selected.length&&(this.isMultiSelectKey=!1)},onClickBlock(t,e){e&&this.isMultiSelectKey&&this.onKey(e),this.isMultiSelectKey&&(e.preventDefault(),e.stopPropagation(),this.isSelected(t)?this.deselect(t):this.select(t))},onClickGlobal(t){if(t.target.closest(".k-dialog")||t.target.closest(".k-drawer"))return;const e=document.querySelector(".k-overlay:last-of-type");!1!==this.$el.contains(t.target)||!1!==e?.contains(t.target)?e&&!1===this.$el.closest(".k-layout-column")?.contains(t.target)&&this.deselectAll():this.deselectAll()},onCopy(t){return!1!==this.$el.contains(t.target)&&!0!==this.isEditing&&!0!==this.$panel.dialog.isOpen&&!0!==this.isInputEvent(t)&&this.copy(t)},onFocus(t){!1===this.isMultiSelectKey&&(this.selected=[t.id])},async onKey(t){if(this.isMultiSelectKey=t.metaKey||t.ctrlKey||t.altKey,"Escape"===t.code&&this.selected.length>1){const t=this.find(this.selected[0]);await this.$nextTick(),this.focus(t)}},onPaste(t){return!0!==this.isInputEvent(t)&&(!1!==this.isEventTarget(t)&&(!0!==this.isEditing&&!0!==this.$panel.dialog.isOpen&&this.paste(t)))},open(t){this.$refs["block-"+t.id]?.[0].open()},async paste(t,e){const s=this.$helper.clipboard.read(t);let i=await this.$api.post(this.endpoints.field+"/paste",{html:s});if(void 0===e){let t=this.selected[this.selected.length-1];-1===(e=this.findIndex(t))&&(e=this.blocks.length),e++}if(this.max){const t=this.max-this.blocks.length;i=i.slice(0,t)}this.blocks.splice(e,0,...i),this.save(),this.$panel.notification.success({message:this.$t("paste.success",{count:i.length}),icon:"download"})},pasteboard(){this.$panel.dialog.open({component:"k-block-pasteboard",on:{paste:this.paste}})},prevNext(t){if(this.blocks[t])return this.$refs["block-"+this.blocks[t].id]?.[0]},ref(t){return this.$refs["block-"+(t?.id??this.blocks[0]?.id)]?.[0]},remove(t){const e=this.findIndex(t.id);-1!==e&&(this.deselect(t),this.$delete(this.blocks,e),this.save())},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.blocks.delete.confirm.all"),submitButton:this.$t("delete.all")},on:{submit:()=>{this.selected=[],this.blocks=[],this.save(),this.$panel.dialog.close()}}})},removeSelected(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.blocks.delete.confirm.selected")},on:{submit:()=>{for(const t of this.selected){const e=this.findIndex(t);-1!==e&&this.$delete(this.blocks,e)}this.deselectAll(),this.save(),this.$panel.dialog.close()}}})},save(){this.$emit("input",this.blocks)},select(t){!1===this.isSelected(t)&&this.selected.push(t.id)},selectDown(){const t=this.selected[this.selected.length-1],e=this.findIndex(t)+1;e=0&&this.select(this.blocks[e])},selectAll(){this.selected=Object.values(this.blocks).map(t=>t.id)},show(t){s(t,"isHidden",!1),this.save()},async sort(t,e,s){if(s<0)return;let i=this.$helper.object.clone(this.blocks);i.splice(e,1),i.splice(s,0,t),this.blocks=i,this.save(),await this.$nextTick(),this.focus(t)},async split(t,e,s){const i=this.$helper.object.clone(t);i.content={...i.content,...s[0]};const n=await this.$api.get(this.endpoints.field+"/fieldsets/"+t.type);n.content={...n.content,...i.content,...s[1]},this.blocks.splice(e,1,i,n),this.save(),await this.$nextTick(),this.focus(n)},update(t,e){const i=this.findIndex(t.id);if(-1!==i)for(const n in e)s(this.blocks[i].content,n,e[n]);this.save()}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-blocks",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-empty":0===t.blocks.length}},[t.hasFieldsets?[e("k-draggable",t._b({staticClass:"k-blocks-list",attrs:{"data-multi-select-key":t.isMultiSelectKey},on:{sort:t.save}},"k-draggable",t.draggableOptions,!1),t._l(t.blocks,function(s,i){return e("k-block",t._b({key:s.id,ref:"block-"+s.id,refInFor:!0,on:{append:function(e){return t.add(e,i+1)},chooseToAppend:function(e){return t.choose(i+1)},chooseToConvert:function(e){return t.chooseToConvert(s)},chooseToPrepend:function(e){return t.choose(i)},close:function(e){t.isEditing=!1},copy:function(e){return t.copy()},duplicate:function(e){return t.duplicate(s,i)},focus:function(e){return t.onFocus(s)},hide:function(e){return t.hide(s)},merge:function(e){return t.merge()},open:function(e){t.isEditing=!0},paste:function(e){return t.pasteboard()},prepend:function(e){return t.add(e,i)},remove:function(e){return t.remove(s)},removeSelected:t.removeSelected,show:function(e){return t.show(s)},selectDown:t.selectDown,selectUp:t.selectUp,sortDown:function(e){return t.sort(s,i,i+1)},sortUp:function(e){return t.sort(s,i,i-1)},split:function(e){return t.split(s,i,e)},update:function(e){return t.update(s,e)}},nativeOn:{click:function(e){return t.onClickBlock(s,e)}}},"k-block",{...s,disabled:t.disabled,endpoints:t.endpoints,fieldset:t.fieldset(s),isBatched:t.isSelected(s)&&t.selected.length>1,isFull:t.isFull,isHidden:!0===s.isHidden,isLastSelected:t.isLastSelected(s),isMergable:t.isMergable,isSelected:t.isSelected(s),next:t.prevNext(i+1),prev:t.prevNext(i-1)},!1))}),1),e("k-empty",{staticClass:"k-blocks-empty",attrs:{icon:"box"},on:{click:function(e){return t.choose(t.blocks.length)}}},[t._v(" "+t._s(t.empty??t.$t("field.blocks.empty"))+" ")])]:e("k-empty",{attrs:{icon:"box"}},[t._v(" "+t._s(t.$t("field.blocks.fieldsets.empty"))+" ")])],2)},[]).exports;const ns=lt({inheritAttrs:!1,emits:["close","paste","submit"],computed:{shortcut(){return this.$helper.keyboard.metaKey()+"+v"}},methods:{paste(t){this.$emit("close"),this.$emit("paste",t)}}},function(){var t=this,e=t._self._c;return e("k-dialog",{ref:"dialog",class:["k-block-importer",t.$attrs.class],style:t.$attrs.style,attrs:{"cancel-button":!1,"submit-button":!1,visible:!0,size:"large"},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},[e("label",{attrs:{for:"pasteboard"},domProps:{innerHTML:t._s(t.$t("field.blocks.fieldsets.paste",{shortcut:t.shortcut}))}}),e("textarea",{attrs:{id:"pasteboard"},on:{paste:function(e){return e.preventDefault(),t.paste.apply(null,arguments)}}})])},[]).exports;const os=lt({inheritAttrs:!1,props:{disabledFieldsets:{default:()=>[],type:Array},fieldsets:{type:Object},fieldsetGroups:{type:Object},headline:{type:String},size:{type:String,default:"medium"},value:{default:null,type:String}},emits:["cancel","close","input","paste","submit"],data:()=>({selected:null}),computed:{groups(){const t={};let e=0;const s=this.fieldsetGroups??{blocks:{label:this.$t("field.blocks.fieldsets.label"),sets:Object.keys(this.fieldsets)}};for(const i in s){const n=s[i];n.open=!1!==n.open,n.fieldsets=n.sets.filter(t=>this.fieldsets[t]).map(t=>(e++,{...this.fieldsets[t],index:e})),0!==n.fieldsets.length&&(t[i]=n)}return t},shortcut(){return this.$helper.keyboard.metaKey()+"+v"}},mounted(){this.$events.on("paste",this.paste)},destroyed(){this.$events.off("paste",this.paste)},methods:{paste(t){this.$emit("paste",t),this.$emit("close")}}},function(){var t=this,e=t._self._c;return e("k-dialog",{class:["k-block-selector",t.$attrs.class],style:t.$attrs.style,attrs:{"cancel-button":!1,size:t.size,"submit-button":!1,visible:!0},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",t.value)}}},[t.headline?e("k-headline",[t._v(" "+t._s(t.headline)+" ")]):t._e(),t._l(t.groups,function(s,i){return e("details",{key:i,attrs:{open:s.open}},[e("summary",[t._v(t._s(s.label))]),e("k-navigate",{staticClass:"k-block-types"},t._l(s.fieldsets,function(s){return e("k-button",{key:s.name,attrs:{disabled:t.disabledFieldsets.includes(s.type),icon:s.icon??"box",text:s.name,size:"lg"},on:{click:function(e){return t.$emit("submit",s.type)}},nativeOn:{focus:function(e){return t.$emit("input",s.type)}}})}),1)],1)}),e("p",{staticClass:"k-clipboard-hint",domProps:{innerHTML:t._s(t.$t("field.blocks.fieldsets.paste",{shortcut:t.shortcut}))}})],2)},[]).exports;const rs=lt({props:{value:String},computed:{valueAdapted(){return"transparent"===this.value?"var(--block-color-back)":this.value}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-block-background-dropdown"},[e("k-button",{attrs:{dropdown:!0,size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.dropdown.toggle()}}},[e("k-color-frame",{attrs:{color:t.valueAdapted,ratio:"1/1"}})],1),e("k-dropdown-content",{ref:"dropdown",attrs:{"align-x":"end",options:[{text:t.$t("field.blocks.figure.back.plain"),click:"var(--block-color-back)"},{text:t.$t("field.blocks.figure.back.pattern.light"),click:"var(--pattern-light)"},{text:t.$t("field.blocks.figure.back.pattern.dark"),click:"var(--pattern)"}]},on:{action:function(e){return t.$emit("input",e)}}})],1)},[]).exports;const as=lt({inheritAttrs:!1,props:{back:String,caption:String,captionMarks:{default:!0,type:[Boolean,Array]},disabled:Boolean,isEmpty:Boolean,emptyIcon:String,emptyText:String},emits:["open","update"]},function(){var t=this,e=t._self._c;return e("figure",{class:["k-block-figure",t.$attrs.class],style:{"--block-figure-back":t.back,...t.$attrs.style},attrs:{"data-empty":t.isEmpty}},[t.isEmpty?e("k-button",{staticClass:"k-block-figure-empty",attrs:{disabled:t.disabled,icon:t.emptyIcon,text:t.emptyText},on:{click:function(e){return t.$emit("open")}}}):e("span",{staticClass:"k-block-figure-container",attrs:{"data-disabled":t.disabled},on:{dblclick:function(e){return t.$emit("open")}}},[t._t("default")],2),t.caption?e("k-block-figure-caption",{attrs:{disabled:t.disabled,marks:t.captionMarks,value:t.caption},on:{input:function(e){return t.$emit("update",{caption:e})}}}):t._e()],1)},[]).exports;const ls=lt({props:{disabled:Boolean,marks:[Array,Boolean],value:String}},function(){var t=this,e=t._self._c;return e("figcaption",{staticClass:"k-block-figure-caption"},[e("k-writer-input",{attrs:{disabled:t.disabled,inline:!0,marks:t.marks,spellcheck:!1,value:t.value},on:{input:function(e){return t.$emit("input",e)}}})],1)},[]).exports;const cs=lt({extends:Ze,computed:{placeholder(){return this.field("code",{}).placeholder},languages(){return this.field("language",{options:[]}).options}},methods:{focus(){this.$refs.code.focus()}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-block-type-code-editor"},[e("k-input",{ref:"code",attrs:{buttons:!1,disabled:t.disabled,placeholder:t.placeholder,spellcheck:!1,value:t.content.code,font:"monospace",type:"textarea"},on:{input:function(e){return t.update({code:e})}}}),t.languages.length?e("div",{staticClass:"k-block-type-code-editor-language"},[e("k-input",{ref:"language",attrs:{disabled:t.disabled,empty:!1,options:t.languages,value:t.content.language,icon:"code",type:"select"},on:{input:function(e){return t.update({language:e})}}})],1):t._e()],1)},[]).exports;const us=lt({extends:Ze,props:{tabs:Object},data(){return{collapsed:this.state(),tab:Object.keys(this.tabs)[0]}},computed:{fields(){return this.tabs[this.tab]?.fields},values(){return Object.assign({},this.content)}},methods:{open(){this.$emit("open",this.tab)},state(t){const e=`kirby.fieldsBlock.${this.endpoints.field}.${this.id}`;if(void 0===t)return JSON.parse(sessionStorage.getItem(e));sessionStorage.setItem(e,t)},toggle(){this.state(this.collapsed=!this.collapsed)},collapse(){this.state(this.collapsed=!0)},expand(){this.state(this.collapsed=!1)}}},function(){var t=this,e=t._self._c;return e("div",{attrs:{"data-collapsed":t.collapsed},on:{dblclick:function(e){!t.fieldset.wysiwyg&&t.$emit("open")}}},[e("header",{staticClass:"k-block-type-fields-header"},[e("k-block-title",{attrs:{content:t.values,fieldset:t.fieldset},nativeOn:{click:function(e){return t.toggle.apply(null,arguments)}}}),t.collapsed?t._e():e("k-drawer-tabs",{attrs:{tab:t.tab,tabs:t.fieldset.tabs},on:{open:function(e){t.tab=e}}})],1),t.collapsed?t._e():e("k-form",{ref:"form",staticClass:"k-block-type-fields-form",attrs:{autofocus:!0,disabled:t.disabled||!t.fieldset.wysiwyg,fields:t.fields,value:t.values},on:{input:function(e){return t.$emit("update",e)}}})],1)},[]).exports;const ps=lt({extends:Ze,data(){return{back:this.onBack()??"var(--block-color-back)"}},computed:{captionMarks(){return this.field("caption",{marks:!0}).marks},crop(){return this.content.crop},isEmpty(){return!this.content.images?.length},ratio(){return this.content.ratio}},methods:{onBack(t){const e=`kirby.galleryBlock.${this.endpoints.field}.${this.id}`;if(void 0===t)return sessionStorage.getItem(e);this.back=t,sessionStorage.setItem(e,t)}}},function(){var t=this,e=t._self._c;return e("figure",{staticClass:"k-block-type-gallery-figure",style:{"--block-back":t.back},attrs:{"data-empty":t.isEmpty}},[e("ul",{on:{dblclick:t.open}},[t.isEmpty?t._l(3,function(s){return e("li",{key:s,staticClass:"k-block-type-gallery-placeholder"},[e("k-image-frame",{staticClass:"k-block-type-gallery-frame",attrs:{ratio:t.ratio}})],1)}):[t._l(t.content.images,function(s){return e("li",{key:s.id},[e("k-image-frame",{staticClass:"k-block-type-gallery-frame",attrs:{ratio:t.ratio,cover:t.crop,src:s.url,srcset:s.image.srcset,alt:s.alt}})],1)}),e("k-block-background-dropdown",{attrs:{value:t.back},on:{input:t.onBack}})]],2),t.content.caption?e("k-block-figure-caption",{attrs:{disabled:t.disabled,marks:t.captionMarks,value:t.content.caption},on:{input:function(e){return t.$emit("update",{caption:e})}}}):t._e()],1)},[]).exports;const ds=lt({extends:Ze,inheritAttrs:!1,emits:["append","open","split","update"],computed:{isSplitable(){return this.content.text.length>0&&!1===this.$refs.input.isCursorAtStart&&!1===this.$refs.input.isCursorAtEnd},keys(){return{Enter:()=>!0===this.$refs.input.isCursorAtEnd?this.$emit("append","text"):this.split(),"Mod-Enter":this.split}},levels(){return this.field("level",{options:[]}).options},textField(){return this.field("text",{marks:!0})}},methods:{focus(){this.$refs.input.focus()},merge(t){this.update({text:t.map(t=>t.content.text).join(" ")})},split(){const t=this.$refs.input.getSplitContent?.();t&&this.$emit("split",[{text:t[0]},{level:"h"+Math.min(parseInt(this.content.level.slice(1))+1,6),text:t[1]}])}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-block-type-heading-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-level":t.content.level}},[e("k-writer-input",t._b({ref:"input",attrs:{disabled:t.disabled,inline:!0,keys:t.keys,value:t.content.text},on:{input:function(e){return t.update({text:e})}}},"k-writer-input",t.textField,!1)),t.levels.length>1?e("k-input",{ref:"level",staticClass:"k-block-type-heading-level",attrs:{disabled:t.disabled,empty:!1,options:t.levels,value:t.content.level,type:"select"},on:{input:function(e){return t.update({level:e})}}}):t._e()],1)},[]).exports;const hs=lt({extends:Ze,data(){return{back:this.onBack()??"transparent"}},computed:{captionMarks(){return this.field("caption",{marks:!0}).marks},crop(){return this.content.crop??!1},src(){return"web"===this.content.location?this.content.src:!!this.content.image?.[0]?.url&&this.content.image[0].url},ratio(){return this.content.ratio??!1}},methods:{onBack(t){const e=`kirby.imageBlock.${this.endpoints.field}.${this.id}`;if(void 0===t)return sessionStorage.getItem(e);this.back=t,sessionStorage.setItem(e,t)}}},function(){var t=this,e=t._self._c;return e("k-block-figure",{attrs:{back:t.back,caption:t.content.caption,"caption-marks":t.captionMarks,"empty-text":t.$t("field.blocks.image.placeholder")+" …",disabled:t.disabled,"is-empty":!t.src,"empty-icon":"image"},on:{open:t.open,update:t.update}},[t.src?[t.ratio?e("k-image-frame",{attrs:{ratio:t.ratio,cover:t.crop,alt:t.content.alt,src:t.src}}):e("img",{staticClass:"k-block-type-image-auto",attrs:{alt:t.content.alt,src:t.src}}),e("k-block-background-dropdown",{attrs:{value:t.back},on:{input:t.onBack}})]:t._e()],2)},[]).exports;const ms=lt({},function(){return this._self._c,this._m(0)},[function(){var t=this._self._c;return t("div",[t("hr")])}]).exports;const fs=lt({extends:Ze,emits:["open","split","update"],computed:{isSplitable(){return this.content.text.length>0&&!1===this.input().isCursorAtStart&&!1===this.input().isCursorAtEnd},keys(){return{"Mod-Enter":this.split}},marks(){return this.field("text",{}).marks}},methods:{focus(){this.$refs.input.focus()},input(){return this.$refs.input.$refs.input.$refs.input},merge(t){this.update({text:t.map(t=>t.content.text).join("").replaceAll("
    ","")})},split(){const t=this.input().getSplitContent?.();t&&this.$emit("split",[{text:t[0].replace(/(
  • <\/p><\/li><\/ul>)$/,"

")},{text:t[1].replace(/^(
  • <\/p><\/li>)/,"

      ")}])}}},function(){var t=this;return(0,t._self._c)("k-input",{ref:"input",staticClass:"k-block-type-list-input",attrs:{disabled:t.disabled,keys:t.keys,marks:t.marks,value:t.content.text,type:"list"},on:{input:function(e){return t.update({text:e})}}})},[]).exports;const gs=lt({extends:Ze,computed:{placeholder(){return this.field("text",{}).placeholder}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this;return(0,t._self._c)("k-input",{ref:"input",staticClass:"k-block-type-markdown-input",attrs:{buttons:!1,disabled:t.disabled,placeholder:t.placeholder,spellcheck:!1,value:t.content.text,font:"monospace",type:"textarea"},on:{input:function(e){return t.update({text:e})}}})},[]).exports;const bs=lt({extends:Ze,computed:{citationField(){return this.field("citation",{})},textField(){return this.field("text",{})}},methods:{focus(){this.$refs.text.focus()}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-block-type-quote-editor"},[e("k-writer-input",{ref:"text",staticClass:"k-block-type-quote-text",attrs:{disabled:t.disabled,inline:t.textField.inline??!1,marks:t.textField.marks,placeholder:t.textField.placeholder,value:t.content.text},on:{input:function(e){return t.update({text:e})}}}),e("k-writer-input",{ref:"citation",staticClass:"k-block-type-quote-citation",attrs:{disabled:t.disabled,inline:t.citationField.inline??!0,marks:t.citationField.marks,placeholder:t.citationField.placeholder,value:t.content.citation},on:{input:function(e){return t.update({citation:e})}}})],1)},[]).exports;const ks=lt({extends:Ze,inheritAttrs:!1,computed:{columns(){return this.table.columns??this.fields},fields(){return this.table.fields??{}},rows(){return this.content.rows??[]},table(){let t=null;for(const e of Object.values(this.fieldset.tabs??{}))e.fields.rows&&(t=e.fields.rows);return t??{}}}},function(){var t=this;return(0,t._self._c)("k-table",{class:["k-block-type-table-preview",t.$attrs.class],style:t.$attrs.style,attrs:{columns:t.columns,empty:t.$t("field.structure.empty"),rows:t.rows},nativeOn:{dblclick:function(e){return t.open.apply(null,arguments)}}})},[]).exports;const ys=lt({extends:Ze,emits:["open","split","update"],computed:{component(){const t="k-"+this.textField.type+"-input";return this.$helper.isComponent(t)?t:"k-writer-input"},isSplitable(){return this.content.text.length>0&&!1===this.$refs.input.isCursorAtStart&&!1===this.$refs.input.isCursorAtEnd},keys(){const t={"Mod-Enter":this.split};return!0===this.textField.inline&&(t.Enter=this.split),t},textField(){return this.field("text",{})}},methods:{focus(){this.$refs.input.focus()},merge(t){this.update({text:t.map(t=>t.content.text).join(this.textField.inline?" ":"")})},split(){const t=this.$refs.input.getSplitContent?.();t&&("writer"===this.textField.type&&(t[0]=t[0].replace(/(

      <\/p>)$/,""),t[1]=t[1].replace(/^(

      <\/p>)/,"")),this.$emit("split",t.map(t=>({text:t}))))}}},function(){var t=this;return(0,t._self._c)(t.component,t._b({ref:"input",tag:"component",staticClass:"k-block-type-text-input",attrs:{disabled:t.disabled,keys:t.keys,value:t.content.text},on:{input:function(e){return t.update({text:e})}}},"component",t.textField,!1))},[]).exports;const vs=lt({extends:Ze,computed:{captionMarks(){return this.field("caption",{marks:!0}).marks},location(){return this.content.location},poster(){return this.content.poster?.[0]?.url},video(){return"kirby"===this.content.location?this.content.video?.[0]?.url:this.$helper.embed.video(this.content.url??"",!0)}}},function(){var t=this,e=t._self._c;return e("k-block-figure",{staticClass:"k-block-type-video-figure",attrs:{caption:t.content.caption,"caption-marks":t.captionMarks,disabled:t.disabled,"empty-text":t.$t("field.blocks.video.placeholder")+" …","is-empty":!t.video,"empty-icon":"video"},on:{open:t.open,update:t.update}},[e("k-frame",{attrs:{ratio:"16/9"}},[t.video?["kirby"==t.location?e("video",{attrs:{src:t.video,poster:t.poster,controls:""}}):e("iframe",{attrs:{src:t.video,referrerpolicy:"strict-origin-when-cross-origin"}})]:t._e()],2)],1)},[]).exports,$s={install(t){t.component("k-block",es),t.component("k-blocks",is),t.component("k-block-options",ts),t.component("k-block-pasteboard",ns),t.component("k-block-selector",os),t.component("k-block-background-dropdown",rs),t.component("k-block-figure",as),t.component("k-block-figure-caption",ls),t.component("k-block-title",Ge),t.component("k-block-type-code",cs),t.component("k-block-type-default",Ze),t.component("k-block-type-fields",us),t.component("k-block-type-gallery",ps),t.component("k-block-type-heading",ds),t.component("k-block-type-image",hs),t.component("k-block-type-line",ms),t.component("k-block-type-list",fs),t.component("k-block-type-markdown",gs),t.component("k-block-type-quote",bs),t.component("k-block-type-table",ks),t.component("k-block-type-text",ys),t.component("k-block-type-video",vs)}};const xs=lt({mixins:[ze,ss],inheritAttrs:!1,data:()=>({opened:[]}),computed:{hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0},isEmpty(){return 0===this.value.length},isFull(){return this.max&&this.value.length>=this.max}},methods:{focus(){this.$refs.blocks.focus()},options(t){const e=[{click:()=>this.$refs.blocks.copyAll(),disabled:this.isEmpty,icon:"template",text:this.$t("copy.all")},{click:()=>this.$refs.blocks.pasteboard(),disabled:this.isFull,icon:"download",text:this.$t("paste")}];return!0!==this.$refs.blocks.isCollapsible()&&!0!==this.$refs.blocks.isExpandable()||e.push("-"),!0===this.$refs.blocks.isCollapsible()&&e.push({click:()=>this.$refs.blocks.collapseAll(),disabled:this.isEmpty||this.$refs.blocks.isFullyCollapsed(),icon:"collapse",text:this.$t("collapse.all")}),!0===this.$refs.blocks.isExpandable()&&e.push({click:()=>this.$refs.blocks.expandAll(),disabled:this.isEmpty||this.$refs.blocks.isFullyExpanded(),icon:"expand",text:this.$t("expand.all")}),e.push("-"),e.push({click:()=>this.$refs.blocks.removeAll(),disabled:this.isEmpty,icon:"trash",text:this.$t("delete.all")}),t(e)}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-blocks-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},scopedSlots:t._u([!t.disabled&&t.hasFieldsets?{key:"options",fn:function(){return[e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{staticClass:"input-focus",attrs:{autofocus:t.autofocus,disabled:t.isFull,responsive:!0,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.blocks.choose(t.value.length)}}}),e("k-button",{attrs:{icon:"dots",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}})],1)]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[e("k-blocks",t._b({ref:"blocks",on:{close:function(e){t.opened=e},open:function(e){t.opened=e},input:function(e){return t.$emit("input",e)}}},"k-blocks",t.$props,!1))],1),t.disabled||t.isEmpty||t.isFull||!t.hasFieldsets?t._e():e("footer",[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.blocks.choose(t.value.length)}}})],1)],1)},[]).exports,ws={mixins:[Ie,it],props:{columns:{default:1,type:Number},max:Number,min:Number,theme:String,value:{type:Array,default:()=>[]}}};const _s=lt({mixins:[Be,ws],data:()=>({selected:[]}),computed:{choices(){return this.options.map((t,e)=>{const s=this.selected.includes(t.value);return{autofocus:this.autofocus&&0===e,checked:s,disabled:this.disabled||t.disabled||!s&&this.isFull,id:`${this.id}-${e}`,info:t.info,label:t.text,name:this.name??this.id,type:"checkbox",value:t.value}})},isFull(){return this.max&&this.selected.length>=this.max}},watch:{value:{handler(t){this.selected=Array.isArray(t)?t:[]},immediate:!0}},methods:{deselectAll(){this.selected=[],this.$emit("input",this.selected)},focus(){this.$el.querySelector("input")?.focus()},input(t,e){if(!0===e)this.selected.push(t);else{const e=this.selected.indexOf(t);-1!==e&&this.selected.splice(e,1)}this.$emit("input",this.selected)},select(){this.focus()},selectAll(){this.selected=this.choices.map(t=>t.value),this.$emit("input",this.selected)}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-checkboxes-input",t.$attrs.class],style:t.$attrs.style,attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.selected)}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("ul",{staticClass:"k-grid",style:{"--columns":t.columns},attrs:{"data-variant":"choices"}},t._l(t.choices,function(s,i){return e("li",{key:i},[e("k-choice-input",t._b({on:{input:function(e){return t.input(s.value,e)}}},"k-choice-input",s,!1))],1)}),0)])],1)},[]).exports,Ss={props:{counter:{type:Boolean,default:!0}},computed:{counterOptions(){const t=this.counterValue??this.value;return!(!1===this.counter||this.disabled||!t)&&{count:Array.isArray(t)?t.length:String(t).length,min:this.$props.min??this.$props.minlength,max:this.$props.max??this.$props.maxlength}},counterValue:()=>null}};const Cs=lt({mixins:[ze,Ke,ws,Ss],inheritAttrs:!1,props:{batch:Boolean},methods:{deselectAll(){this.$refs.input.deselectAll()},selectAll(){this.$refs.input.selectAll()},focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-checkboxes-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id+"-0"},scopedSlots:t._u([{key:"counter",fn:function(){return[t.counterOptions?e("k-counter",t._b({staticClass:"k-field-counter",attrs:{required:t.required}},"k-counter",t.counterOptions,!1)):t._e(),t.batch?e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{attrs:{disabled:0===t.value.length,responsive:!0,icon:"deselect-all",size:"xs",variant:"filled"},on:{click:t.deselectAll}},[t._v(" "+t._s(t.$t("deselect.all"))+" ")]),e("k-button",{attrs:{disabled:t.value.length>=t.options.length,responsive:!0,icon:"select-all",size:"xs",variant:"filled"},on:{click:t.selectAll}},[t._v(" "+t._s(t.$t("select.all"))+" ")])],1):t._e()]},proxy:!0}])},"k-field",t.$props,!1),[t.options?.length?e("k-checkboxes-input",t._b({ref:"input",on:{input:function(e){return t.$emit("input",e)}}},"k-checkboxes-input",t.$props,!1)):e("k-empty",{attrs:{text:t.$t("options.none"),icon:"checklist"}})],1)},[]).exports,Os={mixins:[Ie,U,V,J,tt,et,nt,ot,at],props:{ariaLabel:String,preselect:Boolean,type:{default:"text",type:String},value:{type:String}}};const As=lt({mixins:[Be,Os],mounted(){this.$props.autofocus&&this.focus(),this.$props.preselect&&this.select()},methods:{select(){this.$el.select()}}},function(){var t=this;return(0,t._self._c)("input",t._b({directives:[{name:"direction",rawName:"v-direction"}],class:["k-string-input",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-label":t.ariaLabel,"data-font":t.font},on:{input:function(e){return t.$emit("input",e.target.value)}}},"input",{autocomplete:t.autocomplete,autofocus:t.autofocus,disabled:t.disabled,id:t.id,maxlength:t.maxlength,minlength:t.minlength,name:t.name,pattern:t.pattern,placeholder:t.placeholder,required:t.required,spellcheck:t.spellcheck,type:t.type,value:t.value},!1))},[]).exports,Ms={mixins:[Os],props:{autocomplete:null,font:null,maxlength:null,minlength:null,pattern:null,spellcheck:null,alpha:{type:Boolean,default:!0},format:{type:String,default:"hex",validator:t=>["hex","rgb","hsl"].includes(t)}}};const Ds=lt({mixins:[As,Ms],watch:{value(){this.validate()}},mounted(){this.validate()},methods:{convert(t){if(!t)return t;try{return this.$library.colors.toString(t,this.format,this.alpha)}catch{const e=document.createElement("div");return e.style.color=t,document.body.append(e),t=window.getComputedStyle(e).color,e.remove(),this.$library.colors.toString(t,this.format,this.alpha)}},convertAndEmit(t){this.emit(this.convert(t))},emit(t){this.$emit("input",t)},onBlur(){this.convertAndEmit(this.value)},onPaste(t){t instanceof ClipboardEvent&&(t=this.$helper.clipboard.read(t,!0)),this.convertAndEmit(t)},async onSave(){this.convertAndEmit(this.value),await this.$nextTick(),this.$el.form?.requestSubmit()},validate(){let t="";null===this.$library.colors.parse(this.value)&&(t=this.$t("error.validation.color",{format:this.format})),this.$el.setCustomValidity(t)}}},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-colorname-input",attrs:{spellcheck:!1,autocomplete:"off",type:"text"},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{blur:function(e){return t.onBlur.apply(null,arguments)},paste:function(e){return t.onPaste.apply(null,arguments)},keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"s",void 0,e.key,void 0)?null:e.metaKey?(e.stopPropagation(),e.preventDefault(),t.onSave.apply(null,arguments)):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.onSave.apply(null,arguments)}]}},"k-string-input",t.$props,!1))},[]).exports;const Es=lt({mixins:[ze,Ke,Ms],inheritAttrs:!1,props:{icon:{type:String,default:"pipette"},mode:{type:String,default:"picker",validator:t=>["picker","input","options"].includes(t)},options:{type:Array,default:()=>[]}},computed:{convertedOptions(){return this.options.map(t=>({...t,value:this.convert(t.value)}))},currentOption(){return this.convertedOptions.find(t=>t.value===this.value)}},methods:{convert(t){return this.$library.colors.toString(t,this.format,this.alpha)}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-color-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),["options"===t.mode?e("k-coloroptions-input",t._b({staticClass:"k-color-field-options",attrs:{options:t.convertedOptions},on:{input:function(e){return t.$emit("input",e)}}},"k-coloroptions-input",t.$props,!1)):e("k-input",t._b({attrs:{type:"color"},scopedSlots:t._u([{key:"before",fn:function(){return["picker"===t.mode?[e("button",{staticClass:"k-color-field-picker-toggle",attrs:{disabled:t.disabled,type:"button"},on:{click:function(e){return t.$refs.picker.toggle()}}},[e("k-color-frame",{attrs:{color:t.value}})],1),e("k-dropdown-content",{ref:"picker",staticClass:"k-color-field-picker"},[e("k-colorpicker-input",t._b({ref:"color",attrs:{options:t.convertedOptions},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{click:function(t){t.stopPropagation()}}},"k-colorpicker-input",t.$props,!1))],1)]:e("k-color-frame",{attrs:{color:t.value}})]},proxy:!0},{key:"default",fn:function(){return[e("k-colorname-input",t._b({on:{input:function(e){return t.$emit("input",e)}}},"k-colorname-input",t.$props,!1))]},proxy:!0},t.currentOption?.text?{key:"after",fn:function(){return[e("span",{domProps:{innerHTML:t._s(t.currentOption.text)}})]},proxy:!0}:null,"picker"===t.mode?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{icon:t.icon},on:{click:function(e){return e.stopPropagation(),t.$refs.picker.toggle()}}})]},proxy:!0}:null],null,!0)},"k-input",t.$props,!1))],1)},[]).exports,js={props:{max:String,min:String,value:String}},Is={mixins:[Ie,js],props:{display:{type:String,default:"DD.MM.YYYY"},step:{type:Object,default:()=>({size:1,unit:"day"})},type:{type:String,default:"date"}}};const Bs=lt({mixins:[Be,Is],emits:["input","focus","submit"],data:()=>({dt:null,formatted:null}),computed:{inputType:()=>"date",pattern(){return this.$library.dayjs.pattern(this.display)},rounding(){return{...this.$options.props.step.default(),...this.step}}},watch:{value:{handler(t,e){if(t!==e){const e=this.toDatetime(t);this.commit(e)}},immediate:!0}},methods:{async alter(t){let e=this.parse()??this.round(this.$library.dayjs()),s=this.rounding.unit,i=this.rounding.size;const n=this.selection();null!==n&&("meridiem"===n.unit?(t="pm"===e.format("a")?"subtract":"add",s="hour",i=12):(s=n.unit,s!==this.rounding.unit&&(i=1))),e=e[t](i,s).round(this.rounding.unit,this.rounding.size),this.commit(e),this.emit(e),await this.$nextTick(),this.select(n)},commit(t){this.dt=t,this.formatted=this.pattern.format(t),this.validate()},emit(t){this.$emit("input",this.toISO(t))},onArrowDown(){this.alter("subtract")},onArrowUp(){this.alter("add")},onBlur(){const t=this.parse();this.commit(t),this.emit(t)},async onEnter(){this.onBlur(),await this.$nextTick(),this.$emit("submit")},onInput(t){const e=this.parse(),s=this.pattern.format(e);if(!t||s==t)return this.commit(e),this.emit(e)},async onTab(t){if(""==this.$el.value)return;this.onBlur(),await this.$nextTick();const e=this.selection();if(this.$el&&e.start===this.$el.selectionStart&&e.end===this.$el.selectionEnd-1)if(t.shiftKey){if(0===e.index)return;this.selectPrev(e.index)}else{if(e.index===this.pattern.parts.length-1)return;this.selectNext(e.index)}else{if(this.$el&&this.$el.selectionStart==e.end+1&&e.index==this.pattern.parts.length-1)return;if(this.$el&&this.$el.selectionEnd-1>e.end){const t=this.pattern.at(this.$el.selectionEnd,this.$el.selectionEnd);this.select(this.pattern.parts[t.index])}else this.select(this.pattern.parts[e.index])}t.preventDefault()},parse(){const t=this.$library.dayjs.interpret(this.$el.value,this.inputType);return this.round(t)},round(t){return t?.round(this.rounding.unit,this.rounding.size)},select(t){t??=this.selection(),this.$el?.setSelectionRange(t.start,t.end+1)},selectFirst(){this.select(this.pattern.parts[0])},selectLast(){this.select(this.pattern.parts[this.pattern.parts.length-1])},selectNext(t){this.select(this.pattern.parts[t+1])},selectPrev(t){this.select(this.pattern.parts[t-1])},selection(){return this.pattern.at(this.$el.selectionStart,this.$el.selectionEnd)},toDatetime(t){return this.round(this.$library.dayjs.iso(t,this.inputType))},toISO(t){return t?.toISO(this.inputType)},validate(){const t=[];this.required&&!this.dt&&t.push(this.$t("error.validation.required")),this.min&&!1===this.dt?.validate(this.min,"min",this.rounding.unit)&&t.push(this.$t("error.validation.date.after",{date:this.min})),this.max&&!1===this.dt?.validate(this.max,"max",this.rounding.unit)&&t.push(this.$t("error.validation.date.before",{date:this.max})),this.$el?.setCustomValidity(t.join(", "))}}},function(){var t=this;return(0,t._self._c)("input",{directives:[{name:"direction",rawName:"v-direction"}],class:["k-string-input",`k-${t.type}-input`,t.$attrs.class],style:t.$attrs.style,attrs:{id:t.id,autofocus:t.autofocus,disabled:t.disabled,placeholder:t.display,required:t.required,autocomplete:"off",spellcheck:"false",type:"text"},domProps:{value:t.formatted},on:{blur:t.onBlur,focus:function(e){return t.$emit("focus")},input:function(e){return t.onInput(e.target.value)},keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:(e.stopPropagation(),e.preventDefault(),t.onArrowDown.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:(e.stopPropagation(),e.preventDefault(),t.onArrowUp.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.stopPropagation(),e.preventDefault(),t.onEnter.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"s",void 0,e.key,void 0)?null:e.metaKey?(e.stopPropagation(),e.preventDefault(),t.onEnter.apply(null,arguments)):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"s",void 0,e.key,void 0)?null:e.ctrlKey?(e.stopPropagation(),e.preventDefault(),t.onEnter.apply(null,arguments)):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"tab",9,e.key,"Tab")?null:t.onTab.apply(null,arguments)}]}})},[]).exports;const Ls=lt({mixins:[ze,Ke,Is],inheritAttrs:!1,props:{calendar:{type:Boolean,default:!0},icon:{type:String,default:"calendar"},time:{type:[Boolean,Object],default:()=>({})},times:{type:Boolean,default:!0}},emits:["input","submit"],data(){return{iso:this.toIso(this.value)}},computed:{isEmpty(){return this.time?!this.iso.date||!this.iso.time:!this.iso.date}},watch:{value(t,e){t!==e&&(this.iso=this.toIso(t))}},methods:{focus(){this.$refs.dateInput.focus()},now(){const t=this.$library.dayjs();return{date:t.toISO("date"),time:this.time?t.toISO("time"):"00:00:00"}},onInput(){if(this.isEmpty)return this.$emit("input","");const t=this.$library.dayjs.iso(this.iso.date+" "+this.iso.time);(t||null!==this.iso.date&&null!==this.iso.time)&&this.$emit("input",t?.toISO()??"")},onDateInput(t){t&&!this.iso.time&&(this.iso.time=this.now().time),this.iso.date=t,this.onInput()},onTimeInput(t){t&&!this.iso.date&&(this.iso.date=this.now().date),this.iso.time=t,this.onInput()},onTimesInput(t){this.$refs.times?.close(),this.onTimeInput(t+":00")},toIso(t){const e=this.$library.dayjs.iso(t);return{date:e?.toISO("date")??null,time:e?.toISO("time")??null}}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-date-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("div",{ref:"body",staticClass:"k-date-field-body",attrs:{"data-has-time":Boolean(t.time)}},[e("k-input",t._b({ref:"dateInput",attrs:{type:"date"},on:{input:t.onDateInput,submit:function(e){return t.$emit("submit")}},scopedSlots:t._u([t.calendar?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{disabled:t.disabled,icon:t.icon,title:t.$t("date.select")},on:{click:function(e){return t.$refs.calendar.toggle()}}}),e("k-dropdown-content",{ref:"calendar",attrs:{"align-x":"end"}},[e("k-calendar",{attrs:{value:t.iso.date,min:t.min,max:t.max},on:{input:t.onDateInput}})],1)]},proxy:!0}:null],null,!0)},"k-input",t.$props,!1)),t.time?e("k-input",{ref:"timeInput",attrs:{disabled:t.disabled,display:t.time.display,required:t.required,step:t.time.step,value:t.iso.time,icon:t.time.icon,type:"time"},on:{input:t.onTimeInput,submit:function(e){return t.$emit("submit")}},scopedSlots:t._u([t.times?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{disabled:t.disabled,icon:t.time.icon??"clock",title:t.$t("time.select")},on:{click:function(e){return t.$refs.times.toggle()}}}),e("k-dropdown-content",{ref:"times",attrs:{"align-x":"end"}},[e("k-timeoptions-input",{attrs:{display:t.time.display,value:t.value},on:{input:t.onTimesInput}})],1)]},proxy:!0}:null],null,!0)}):t._e()],1)])},[]).exports,Ts={mixins:[Os],props:{autocomplete:{type:String,default:"email"},placeholder:{type:String,default:()=>window.panel.t("email.placeholder")}}};const Ps=lt({mixins:[As,Ts]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-email-input",attrs:{type:"email"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const qs=lt({mixins:[ze,Ke,Ts],inheritAttrs:!1,props:{link:{type:Boolean,default:!0},icon:{type:String,default:"email"}},computed:{mailto(){return this.value?.length>0?"mailto:"+this.value:null}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-email-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"email"},on:{input:function(e){return t.$emit("input",e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.link?e("k-button",{staticClass:"k-input-icon-button",attrs:{icon:t.icon,link:t.mailto,title:t.$t("open"),tabindex:"-1",target:"_blank"}}):t._e()]},proxy:!0}])},"k-input",t.$props,!1))],1)},[]).exports;const Ns=lt({mixins:[ze,Ke],inheritAttrs:!1,props:{empty:String,field:{type:Object,default:()=>({})},max:Number,min:Number,sortable:{type:Boolean,default:!0},value:{type:Array,default:()=>[]}},emits:["input","sort"],data:()=>({entries:[]}),computed:{dragOptions(){return{disabled:!1===this.isSortable,handle:!0,list:this.entries,sort:this.isSortable}},isSortable(){return!0!==this.disabled&&(!(this.entries.length<=1)&&!1!==this.sortable)},more(){return!0!==this.disabled&&!(this.max&&this.entries.length>=this.max)},options(){return[{disabled:0===this.entries.length||this.disabled,icon:"template",text:this.$t("copy.all"),click:this.copyAll},"-",{disabled:0===this.entries.length||this.disabled,icon:"trash",text:this.$t("delete.all"),click:this.removeAll}]},values(){return this.entries.map(t=>t.value)}},watch:{value:{handler(t){t??=[],t!==this.values&&(this.entries=t.map(t=>({id:this.$helper.uuid(),value:t})))},immediate:!0}},methods:{async add(t=null,e=null){if(!1===this.more||!0===this.disabled)return;e??=this.$helper.field.form({field:this.field})?.field;const s={id:this.$helper.uuid(),value:e??""};t??=this.entries.length,this.entries.splice(t,0,s),this.save(),await this.$nextTick(),this.focus(t)},copyAll(){const t=this.values.map(t=>"- "+t).join("\n");this.$helper.clipboard.write(t),this.$panel.notification.success(this.$t("copy.success"))},async duplicate(t){if(!1===this.more||!0===this.disabled||void 0===this.entries[t])return;const e={...this.entries[t],id:this.$helper.uuid()};this.entries.splice(t+1,0,e),this.save(),await this.$nextTick(),this.focus(t+1)},focus(t,e="input"){this.$refs["entry-"+t+"-"+e]?.[0]?.focus?.()},onInput(t,e){this.entries[t].value=e,this.save()},remove(t){!0!==this.disabled&&(this.entries.splice(t,1),this.save(),this.focus(t-1))},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.entries.delete.confirm.all")},on:{submit:()=>{this.entries=[],this.save(),this.$panel.dialog.close()}}})},save(){this.$emit("input",this.values)},async sort(t,e){if(!1===this.isSortable)return;const s=this.entries[t];this.entries.splice(t,1),this.entries.splice(t+e,0,s),this.save(),await this.$nextTick(),this.focus(t+e,"sort-handle")},sortDown(t){t>=this.entries.length-1||this.sort(t,1)},sortUp(t){t<=0||this.sort(t,-1)}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-entries-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},nativeOn:{click:function(t){t.stopPropagation()}},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function(){return[e("k-button-group",{attrs:{layout:"collapsed"}},[t.more?e("k-button",{staticClass:"input-focus",attrs:{autofocus:t.autofocus,responsive:!0,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.add()}}}):t._e(),e("k-button",{attrs:{icon:"dots",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}})],1)]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.entries)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[0===t.entries.length?e("k-empty",{attrs:{icon:"list-bullet"},on:{click:function(e){return t.add()}}},[t._v(" "+t._s(t.empty??t.$t("field.entries.empty"))+" ")]):e("k-draggable",t._b({staticClass:"k-entries-field-items",on:{sort:t.save}},"k-draggable",t.dragOptions,!1),t._l(t.entries,function(s,i){return e("div",{key:s.id,staticClass:"k-entries-field-item"},[t.isSortable?e("k-button",{ref:"entry-"+i+"-sort-handle",refInFor:!0,staticClass:"k-sort-handle k-entries-field-item-sort-handle",attrs:{title:t.$t("sort.drag"),icon:"sort",size:"sm"},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:t.sortUp(i)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:t.sortDown(i)}]}}):t._e(),e(`k-${t.field.type}-field`,t._b({ref:"entry-"+i+"-input",refInFor:!0,tag:"component",staticClass:"k-entries-field-item-input",attrs:{disabled:t.disabled,value:s.value,counter:!1,label:!1},on:{input:function(e){return t.onInput(i,e)}}},"component",t.field,!1)),e("k-button-group",{staticClass:"k-entries-field-item-options",attrs:{layout:"collapsed"}},[t.more?e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"sm"},on:{click:function(e){return t.add(i+1)}}}):t._e(),t.more?e("k-button",{attrs:{title:t.$t("duplicate"),icon:"copy",size:"sm"},on:{click:function(e){return t.duplicate(i)}}}):t._e(),t.disabled?t._e():e("k-button",{attrs:{title:t.$t("remove"),icon:"trash",size:"sm"},on:{click:function(e){return t.remove(i)}}})],1)],1)}),0)],1),t.more?e("footer",{staticClass:"k-entries-field-footer"},[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.add()}}})],1):t._e()],1)},[]).exports;const Fs=lt({type:"model",mixins:[ze,V,Q],inheritAttrs:!1,props:{empty:String,info:String,link:Boolean,max:Number,min:Number,multiple:Boolean,parent:String,search:Boolean,size:String,text:String,value:{type:Array,default:()=>[]}},emits:["change","input"],data(){return{selected:this.value}},computed:{buttons(){return[{autofocus:this.autofocus,text:this.$t("select"),icon:"checklist",responsive:!0,click:()=>this.open()}]},collection(){return{empty:this.emptyProps,items:this.selected,layout:this.layout,link:this.link,size:this.size,sortable:!this.disabled&&this.selected.length>1,theme:this.disabled?"disabled":null}},hasDropzone:()=>!1,more(){return!this.max||this.max>this.selected.length}},watch:{value(t){this.selected=t}},methods:{drop(){},focus(){},onInput(){this.$emit("input",this.selected)},open(){if(this.disabled)return!1;this.$panel.dialog.open({component:`k-${this.$options.type}-dialog`,props:{endpoint:this.endpoints.field,hasSearch:this.search,max:this.max,multiple:this.multiple,value:this.selected.map(t=>t.id)},on:{submit:t=>{this.select(t),this.$panel.dialog.close()}}})},remove(t){this.selected.splice(t,1),this.onInput()},removeById(t){this.selected=this.selected.filter(e=>e.id!==t),this.onInput()},select(t){if(0===t.length)return this.selected=[],void this.onInput();this.selected=this.selected.filter(e=>t.find(t=>t.id===e.id));for(const e of t)this.selected.find(t=>e.id===t.id)||this.selected.push(e);this.onInput()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-models-field",`k-${t.$options.type}-field`,t.$attrs.class],style:t.$attrs.style,attrs:{input:!1},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function(){return[e("k-button-group",{ref:"buttons",staticClass:"k-field-options",attrs:{buttons:t.buttons,layout:"collapsed",size:"xs",variant:"filled"}})]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-dropzone",{attrs:{disabled:!t.hasDropzone},on:{drop:t.drop}},[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("k-collection",t._b({on:{empty:t.open,sort:t.onInput,sortChange:function(e){return t.$emit("change",e)}},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function({index:s}){return[e("k-button",{attrs:{title:t.$t("remove"),icon:"remove"},on:{click:function(e){return t.remove(s)}}})]}}],null,!0)},"k-collection",t.collection,!1))],1)],1)],1)},[]).exports;const zs=lt({extends:Fs,type:"files",props:{uploads:[Boolean,Object,Array]},computed:{buttons(){const t=Fs.computed.buttons.call(this);return this.hasDropzone&&t.unshift({autofocus:this.autofocus,text:this.$t("upload"),responsive:!0,icon:"upload",click:()=>this.$panel.upload.pick(this.uploadOptions)}),t},emptyProps(){return{icon:"image",text:this.empty??(this.multiple&&1!==this.max?this.$t("field.files.empty"):this.$t("field.files.empty.single"))}},hasDropzone(){return!this.disabled&&this.more&&this.uploads},uploadOptions(){return{accept:this.uploads.accept,max:this.max,multiple:this.multiple,preview:this.uploads.preview,url:this.$panel.urls.api+"/"+this.endpoints.field+"/upload",on:{done:async t=>{!1===this.multiple&&(this.selected=[]);for(const e of t)void 0===this.selected.find(t=>t.id===e.id)&&this.selected.push(e);this.onInput(),await this.$panel.content.update()}}}}},mounted(){this.$events.on("file.delete",this.removeById)},destroyed(){this.$events.off("file.delete",this.removeById)},methods:{drop(t){return!1!==this.uploads&&this.$panel.upload.open(t,this.uploadOptions)}}},null,null).exports;const Ys=lt({},function(){return(0,this._self._c)("div",{staticClass:"k-field k-gap-field"})},[]).exports;const Rs=lt({mixins:[G,Z],inheritAttrs:!1},function(){var t=this,e=t._self._c;return e("div",{class:["k-headline-field",t.$attrs.class],style:t.$attrs.style},[e("k-headline",{staticClass:"h2"},[t._v(" "+t._s(t.label)+" ")]),t.help?e("footer",{staticClass:"k-field-footer"},[e("k-text",{staticClass:"k-help k-field-help",attrs:{html:t.help}})],1):t._e()],1)},[]).exports;const Hs=lt({mixins:[G,Z],props:{icon:String,text:String,theme:{type:String,default:"info"}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-field k-info-field"},[t.label?e("k-headline",[t._v(t._s(t.label))]):t._e(),e("k-box",{attrs:{icon:t.icon,theme:t.theme}},[e("k-text",{attrs:{html:t.text}})],1),t.help?e("footer",{staticClass:"k-field-footer"},[e("k-text",{staticClass:"k-help k-field-help",attrs:{html:t.help}})],1):t._e()],1)},[]).exports,Us={mixins:[W],props:{endpoints:Object,fieldsetGroups:Object,fieldsets:Object,id:String,isSelected:Boolean}};const Vs=lt({mixins:[Us],props:{blocks:Array,width:{type:String,default:"1/1"}},emits:["input"]},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-column k-layout-column",style:{"--width":t.width},attrs:{id:t.id,tabindex:"0"},on:{dblclick:function(e){return t.$refs.blocks.choose(t.blocks.length)}}},[e("k-blocks",t._b({ref:"blocks",on:{input:function(e){return t.$emit("input",e)}},nativeOn:{dblclick:function(t){t.stopPropagation()}}},"k-blocks",{disabled:t.disabled,endpoints:t.endpoints,fieldsets:t.fieldsets,fieldsetGroups:t.fieldsetGroups,group:"layout",value:t.blocks},!1))],1)},[]).exports,Ks={mixins:[Us],props:{columns:Array,layouts:{type:Array,default:()=>[["1/1"]]},settings:Object}};const Ws=lt({mixins:[Ks],props:{attrs:[Array,Object]},emits:["append","change","copy","duplicate","prepend","remove","select","updateAttrs","updateColumn"],computed:{options(){return[{click:()=>this.$emit("prepend"),icon:"angle-up",text:this.$t("insert.before")},{click:()=>this.$emit("append"),icon:"angle-down",text:this.$t("insert.after")},"-",{click:()=>this.openSettings(),icon:"settings",text:this.$t("settings"),when:!1===this.$helper.object.isEmpty(this.settings)},{click:()=>this.$emit("duplicate"),icon:"copy",text:this.$t("duplicate")},{click:()=>this.$emit("change"),disabled:1===this.layouts.length,icon:"dashboard",text:this.$t("field.layout.change")},"-",{click:()=>this.$emit("copy"),icon:"template",text:this.$t("copy")},{click:()=>this.$emit("paste"),icon:"download",text:this.$t("paste.after")},"-",{click:()=>this.remove(),icon:"trash",text:this.$t("field.layout.delete")}]},tabs(){let t=this.settings.tabs;for(const[e,s]of Object.entries(t))for(const i in s.fields)t[e].fields[i].endpoints={field:this.endpoints.field+"/fields/"+i,section:this.endpoints.section,model:this.endpoints.model};return t}},methods:{openSettings(){this.$panel.drawer.open({component:"k-form-drawer",props:{icon:"settings",tabs:this.tabs,title:this.$t("settings"),value:this.attrs},on:{input:t=>this.$emit("updateAttrs",t)}})},remove(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.layout.delete.confirm")},on:{submit:()=>{this.$emit("remove"),this.$panel.dialog.close()}}})}}},function(){var t=this,e=t._self._c;return e("section",{staticClass:"k-layout",attrs:{"data-disabled":t.disabled,"data-selected":t.isSelected,tabindex:"0"},on:{click:function(e){return t.$emit("select")}}},[e("k-grid",{staticClass:"k-layout-columns"},t._l(t.columns,function(s,i){return e("k-layout-column",t._b({key:s.id,on:{input:function(e){return t.$emit("updateColumn",{column:s,columnIndex:i,blocks:e})}}},"k-layout-column",{...s,disabled:t.disabled,endpoints:t.endpoints,fieldsetGroups:t.fieldsetGroups,fieldsets:t.fieldsets},!1))}),1),t.disabled?t._e():e("nav",{staticClass:"k-layout-toolbar"},[t.settings?e("k-button",{staticClass:"k-layout-toolbar-button",attrs:{title:t.$t("settings"),icon:"settings"},on:{click:t.openSettings}}):t._e(),e("k-button",{staticClass:"k-layout-toolbar-button",attrs:{icon:"angle-down"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}}),e("k-sort-handle")],1)],1)},[]).exports,Js={mixins:[Ks,X],props:{empty:String,min:Number,max:Number,selector:Object,value:{type:Array,default:()=>[]}}};const Gs=lt({mixins:[Js],emits:["input"],data(){return{current:null,nextIndex:null,rows:this.value,selected:null}},computed:{draggableOptions(){return{handle:!0,list:this.rows}},hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0}},watch:{value(){this.rows=this.value}},methods:{copy(t,e){if(0===this.rows.length)return!1;const s=void 0!==e?this.rows[e]:this.rows;this.$helper.clipboard.write(JSON.stringify(s),t),this.$panel.notification.success({message:this.$t("copy.success.multiple",{count:s.length??1}),icon:"template"})},change(t,e){const s=e.columns.map(t=>t.width),i=this.layouts.findIndex(t=>t.toString()===s.toString());this.$panel.dialog.open({component:"k-layout-selector",props:{label:this.$t("field.layout.change"),layouts:this.layouts,selector:this.selector,value:this.layouts[i]},on:{submit:s=>{this.onChange(s,i,{rowIndex:t,layoutIndex:i,layout:e}),this.$panel.dialog.close()}}})},duplicate(t,e){const s=this.$helper.object.clone(e),i=this.updateIds(s);this.rows.splice(t+1,0,...i),this.save()},async onAdd(t){let e=await this.$api.post(this.endpoints.field+"/layout",{columns:t});this.rows.splice(this.nextIndex,0,e),this.save()},async onChange(t,e,s){if(e===this.layouts[s.layoutIndex])return;const i=s.layout,n=await this.$api.post(this.endpoints.field+"/layout",{attrs:i.attrs,columns:t}),o=i.columns.filter(t=>t?.blocks?.length>0),r=[];if(0===o.length)r.push(n);else{const t=Math.ceil(o.length/n.columns.length)*n.columns.length;for(let e=0;e(t.blocks=o[s+e]?.blocks??[],t)),t.columns.filter(t=>t?.blocks?.length).length&&r.push(t)}}this.rows.splice(s.rowIndex,1,...r),this.save()},async paste(t,e=this.rows.length){let s=await this.$api.post(this.endpoints.field+"/layout/paste",{json:this.$helper.clipboard.read(t)});s.length&&(this.rows.splice(e,0,...s),this.save()),this.$panel.notification.success({message:this.$t("paste.success",{count:s.length}),icon:"download"})},pasteboard(t){this.$panel.dialog.open({component:"k-block-pasteboard",on:{paste:e=>this.paste(e,t)}})},remove(t){const e=this.rows.findIndex(e=>e.id===t.id);-1!==e&&this.$delete(this.rows,e),this.save()},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.layout.delete.confirm.all")},on:{submit:()=>{this.rows=[],this.save(),this.$panel.dialog.close()}}})},save(){this.$emit("input",this.rows)},select(t){if(this.nextIndex=t,1===this.layouts.length)return this.onAdd(this.layouts[0]);this.$panel.dialog.open({component:"k-layout-selector",props:{layouts:this.layouts,selector:this.selector,value:null},on:{submit:t=>{this.onAdd(t),this.$panel.dialog.close()}}})},updateAttrs(t,e){this.rows[t].attrs=e,this.save()},updateColumn(t){this.rows[t.index].columns[t.columnIndex].blocks=t.blocks,this.save()},updateIds(t){return!1===Array.isArray(t)&&(t=[t]),t.map(t=>(t.id=this.$helper.uuid(),t.columns=t.columns.map(t=>(t.id=this.$helper.uuid(),t.blocks=t.blocks.map(t=>(t.id=this.$helper.uuid(),t)),t)),t))}}},function(){var t=this,e=t._self._c;return e("div",[t.hasFieldsets&&t.rows.length?[e("k-draggable",t._b({staticClass:"k-layouts",on:{sort:t.save}},"k-draggable",t.draggableOptions,!1),t._l(t.rows,function(s,i){return e("k-layout",t._b({key:s.id,on:{append:function(e){return t.select(i+1)},change:function(e){return t.change(i,s)},copy:function(e){return t.copy(e,i)},duplicate:function(e){return t.duplicate(i,s)},paste:function(e){return t.pasteboard(i+1)},prepend:function(e){return t.select(i)},remove:function(e){return t.remove(s)},select:function(e){t.selected=s.id},updateAttrs:function(e){return t.updateAttrs(i,e)},updateColumn:function(e){return t.updateColumn({layout:s,index:i,...e})}}},"k-layout",{...s,disabled:t.disabled,endpoints:t.endpoints,fieldsetGroups:t.fieldsetGroups,fieldsets:t.fieldsets,isSelected:t.selected===s.id,layouts:t.layouts,settings:t.settings},!1))}),1)]:!1===t.hasFieldsets?e("k-empty",{staticClass:"k-layout-empty",attrs:{icon:"dashboard"}},[t._v(" "+t._s(t.$t("field.blocks.fieldsets.empty"))+" ")]):e("k-empty",{staticClass:"k-layout-empty",attrs:{icon:"dashboard"},on:{click:function(e){return t.select(0)}}},[t._v(" "+t._s(t.empty??t.$t("field.layout.empty"))+" ")])],2)},[]).exports;const Xs=lt({mixins:[ze,Js,V],inheritAttrs:!1,computed:{hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0},isEmpty(){return 0===this.value.length},options(){return[{click:()=>this.$refs.layouts.copy(),disabled:this.isEmpty,icon:"template",text:this.$t("copy.all")},{click:()=>this.$refs.layouts.pasteboard(),icon:"download",text:this.$t("paste")},"-",{click:()=>this.$refs.layouts.removeAll(),disabled:this.isEmpty,icon:"trash",text:this.$t("delete.all")}]}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-layout-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},scopedSlots:t._u([!t.disabled&&t.hasFieldsets?{key:"options",fn:function(){return[e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{staticClass:"input-focus",attrs:{autofocus:t.autofocus,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.layouts.select(0)}}}),e("k-button",{attrs:{icon:"dots",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}})],1)]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[e("k-layouts",t._b({ref:"layouts",on:{input:function(e){return t.$emit("input",e)}}},"k-layouts",t.$props,!1))],1),!t.disabled&&t.hasFieldsets?e("footer",[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.layouts.select(t.value.length)}}})],1):t._e()],1)},[]).exports;const Zs=lt({},function(){return(0,this._self._c)("hr",{staticClass:"k-line-field"})},[]).exports;const Qs=lt({mixins:[{mixins:[ze,Ke,Ie,it],props:{value:{default:"",type:String}}}],inheritAttrs:!1,data:()=>({linkType:null,linkValue:null,expanded:!1}),computed:{activeTypes(){return this.$helper.link.types(this.options)},activeTypesOptions(){const t=[];for(const e in this.activeTypes)t.push({click:()=>this.switchType(e),current:e===this.currentType.id,icon:this.activeTypes[e].icon,label:this.activeTypes[e].label});return t},currentType(){return this.activeTypes[this.linkType]??Object.values(this.activeTypes)[0]}},watch:{value:{async handler(t,e){if(t===e||t===this.linkValue)return;const s=this.$helper.link.detect(t,this.activeTypes);s&&(this.linkType=s.type,this.linkValue=s.link)},immediate:!0}},mounted(){this.$events.on("click",this.onOutsideClick)},destroyed(){this.$events.off("click",this.onOutsideClick)},methods:{clear(){this.linkValue="",this.$emit("input","")},focus(){this.$refs.input?.focus()},onInput(t){const e=t?.trim()??"";if(this.linkType??=this.currentType.id,this.linkValue=e,!e.length)return this.clear();this.$emit("input",this.currentType.value(e))},onOutsideClick(t){!1===this.$el.contains(t.target)&&(this.expanded=!1)},removeModel(){this.clear(),this.expanded=!1},selectModel(t){t.uuid?this.onInput(t.uuid):(this.switchType("url"),this.onInput(t.url))},async switchType(t){t!==this.currentType.id&&(this.linkType=t,this.clear(),"page"===this.currentType.id||"file"===this.currentType.id?this.expanded=!0:this.expanded=!1,await this.$nextTick(),this.focus())},toggle(){this.expanded=!this.expanded}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-link-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({attrs:{icon:!1}},"k-input",t.$props,!1),[e("div",{staticClass:"k-link-input-header"},[e("k-button",{staticClass:"k-link-input-toggle",attrs:{disabled:t.disabled,dropdown:!t.disabled&&t.activeTypesOptions.length>1,icon:t.currentType.icon,variant:"filled"},on:{click:function(e){t.activeTypesOptions.length>1?t.$refs.types.toggle():t.toggle()}}},[t._v(" "+t._s(t.currentType.label)+" ")]),e("k-dropdown-content",{ref:"types",attrs:{options:t.activeTypesOptions}}),"page"===t.currentType.id||"file"===t.currentType.id?e("div",{staticClass:"k-link-input-model",on:{click:t.toggle}},[e("k-link-field-preview",{attrs:{removable:!0,type:t.currentType.id,value:t.value},on:{remove:t.removeModel},scopedSlots:t._u([{key:"placeholder",fn:function(){return[e("k-button",{staticClass:"k-link-input-model-placeholder"},[t._v(" "+t._s(t.currentType.placeholder)+" ")])]},proxy:!0}],null,!1,3171606015)}),e("k-button",{staticClass:"k-link-input-model-toggle",attrs:{icon:"bars"}})],1):e("k-"+t.currentType.input+"-input",{ref:"input",tag:"component",attrs:{id:t.id,disabled:t.disabled,pattern:t.currentType.pattern??null,placeholder:t.currentType.placeholder,required:t.required,value:t.linkValue},on:{input:t.onInput}})],1),"page"===t.currentType.id?e("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}],staticClass:"k-link-input-body",attrs:{"data-type":"page"}},[e("div",{staticClass:"k-page-browser"},[e("k-page-tree",{attrs:{current:t.$helper.link.getPageUUID(t.value),root:!1},on:{select:function(e){return t.selectModel(e)}}})],1)]):"file"===t.currentType.id?e("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}],staticClass:"k-link-input-body",attrs:{"data-type":"file"}},[e("k-file-browser",{attrs:{opened:t.$panel.view.props.model.uuid??t.$panel.view.props.model.id,selected:t.$helper.link.getFileUUID(t.value)},on:{select:function(e){return t.selectModel(e)}}})],1):t._e()])],1)},[]).exports;const ti=t=>({$from:e})=>((t,e)=>{for(let s=t.depth;s>0;s--){const i=t.node(s);if(e(i))return{pos:s>0?t.before(s):0,start:t.start(s),depth:s,node:i}}})(e,t),ei=t=>e=>{if((t=>t instanceof c)(e)){const{node:s,$from:i}=e;if(((t,e)=>Array.isArray(t)&&t.indexOf(e.type)>-1||e.type===t)(t,s))return{node:s,pos:i.pos,depth:i.depth}}},si=(t,e,s={})=>{const i=ei(e)(t.selection)||ti(t=>t.type===e)(t.selection);return 0!==vt(s)&&i?i.node.hasMarkup(e,{...i.node.attrs,...s}):!!i};function ii(t=null,e=null){if(!t||!e)return!1;const s=t.parent.childAfter(t.parentOffset);if(!s.node)return!1;const i=s.node.marks.find(t=>t.type===e);if(!i)return!1;let n=t.index(),o=t.start()+s.offset,r=n+1,a=o+s.node.nodeSize;for(;n>0&&i.isInSet(t.parent.child(n-1).marks);)n-=1,o-=t.parent.child(n).nodeSize;for(;r{n=[...n,...t.marks]});const o=n.find(t=>t.type.name===e.name);return o?o.attrs:{}},getNodeAttrs:function(t,e){const{from:s,to:i}=t.selection;let n=[];t.doc.nodesBetween(s,i,t=>{n=[...n,t]});const o=n.reverse().find(t=>t.type.name===e.name);return o?o.attrs:{}},insertNode:function(t,e,s,i){return(n,o)=>{o(n.tr.replaceSelectionWith(t.create(e,s,i)).scrollIntoView())}},markInputRule:function(t,e,s){return new o(t,(t,i,n,o)=>{const r=s instanceof Function?s(i):s,{tr:a}=t,l=i.length-1;let c=o,u=n;if(i[l]){const s=n+i[0].indexOf(i[l-1]),r=s+i[l-1].length-1,p=s+i[l-1].lastIndexOf(i[l]),d=p+i[l].length,h=function(t,e,s){let i=[];return s.doc.nodesBetween(t,e,(t,e)=>{i=[...i,...t.marks.map(s=>({start:e,end:e+t.nodeSize,mark:s}))]}),i}(n,o,t).filter(t=>{const{excluded:s}=t.mark.type;return s.find(t=>t.name===e.name)}).filter(t=>t.end>s);if(h.length)return!1;ds&&a.delete(s,p),u=s,c=u+i[l].length}return a.addMark(u,c,e.create(r)),a.removeStoredMark(e),a})},markIsActive:function(t,e){const{from:s,$from:i,to:n,empty:o}=t.selection;return o?!!e.isInSet(t.storedMarks||i.marks()):!!t.doc.rangeHasMark(s,n,e)},markPasteRule:function(t,e,s){const i=(n,o)=>{const r=[];return n.forEach(n=>{if(n.isText){const{text:i,marks:a}=n;let l,c=0;const u=!!a.filter(t=>"link"===t.type.name)[0];for(;!u&&null!==(l=t.exec(i));)if(o?.type?.allowsMarkType(e)&&l[1]){const t=l.index,i=t+l[0].length,o=t+l[0].indexOf(l[1]),a=o+l[1].length,u=s instanceof Function?s(l):s;t>0&&r.push(n.cut(c,t)),r.push(n.cut(o,a).mark(e.create(u).addToSet(n.marks))),c=i}cnew a(i(t.content),t.openStart,t.openEnd)}})},minMax:function(t=0,e=0,s=0){return Math.min(Math.max(parseInt(t,10),e),s)},nodeIsActive:si,nodeInputRule:function(t,e,s){return new o(t,(t,i,n,o)=>{const r=s instanceof Function?s(i):s,{tr:a}=t;return i[0]&&a.replaceWith(n,o,e.create(r)),a})},pasteRule:function(t,e,s){const i=n=>{const o=[];return n.forEach(n=>{if(n.isText){const{text:i}=n;let r,a=0;do{if(r=t.exec(i),r){const t=r.index,i=t+r[0].length,l=s instanceof Function?s(r[0]):s;t>0&&o.push(n.cut(a,t)),o.push(n.cut(t,i).mark(e.create(l).addToSet(n.marks))),a=i}}while(r);anew a(i(t.content),t.openStart,t.openEnd)}})},removeMark:function(t){return(e,s)=>{const{tr:i,selection:n}=e;let{from:o,to:r}=n;const{$from:a,empty:l}=n;if(l){const e=ii(a,t);o=e.from,r=e.to}return i.removeMark(o,r,t),s(i)}},toggleBlockType:function(t,e,s={}){return(i,n,o)=>si(i,t,s)?u(e)(i,n,o):u(t,s)(i,n,o)},toggleList:function(t,e){return(s,i,n)=>{const{schema:o,selection:r}=s,{$from:a,$to:l}=r,c=a.blockRange(l);if(!c)return!1;const u=ti(t=>ni(t,o))(r);if(c.depth>=1&&u&&c.depth-u.depth<=1){if(u.node.type===t)return p(e)(s,i,n);if(ni(u.node,o)&&t.validContent(u.node.content)){const{tr:e}=s;return e.setNodeMarkup(u.pos,t),i&&i(e),!1}}return d(t)(s,i,n)}},toggleWrap:function(t,e={}){return(s,i,n)=>si(s,t,e)?h(s,i):m(t,e)(s,i,n)},updateMark:function(t,e){return(s,i)=>{const{tr:n,selection:o,doc:r}=s,{ranges:a,empty:l}=o;if(l){const{from:s,to:i}=ii(o.$from,t);r.rangeHasMark(s,i,t)&&n.removeMark(s,i,t),n.addMark(s,i,t.create(e))}else a.forEach(s=>{const{$to:i,$from:o}=s;r.rangeHasMark(o.pos,i.pos,t)&&n.removeMark(o.pos,i.pos,t),n.addMark(o.pos,i.pos,t.create(e))});return i(n)}}};class ri{emit(t,...e){this._callbacks??={};const s=this._callbacks[t]??[];for(const i of s)i.apply(this,e);return this}off(t,e){if(arguments.length){const s=this._callbacks?this._callbacks[t]:null;s&&(e?this._callbacks[t]=s.filter(t=>t!==e):delete this._callbacks[t])}else this._callbacks={};return this}on(t,e){return this._callbacks??={},this._callbacks[t]??=[],this._callbacks[t].push(e),this}}class ai{constructor(t=[],e){for(const s of t)s.bindEditor(e),s.init();this.extensions=t}commands({schema:t,view:e}){return this.extensions.filter(t=>t.commands).reduce((s,i)=>{const{name:n,type:o}=i,r={},a=i.commands({schema:t,utils:oi,...["node","mark"].includes(o)?{type:t[`${o}s`][n]}:{}}),l=(t,s)=>{r[t]=t=>{if("function"!=typeof s||!e.editable)return!1;e.focus();const i=s(t);return"function"==typeof i?i(e.state,e.dispatch,e):i}};if("object"==typeof a)for(const[t,e]of Object.entries(a))l(t,e);else l(n,a);return{...s,...r}},{})}buttons(t="mark"){const e={};for(const s of this.extensions)if(s.type===t&&s.button)if(Array.isArray(s.button))for(const t of s.button)e[t.id??t.name]=t;else e[s.name]={name:s.name,...s.button};return e}getAllowedExtensions(t){return t instanceof Array||!t?t instanceof Array?this.extensions.filter(e=>!t.includes(e.name)):this.extensions:[]}getFromExtensions(t,e,s=this.extensions){return s.filter(t=>["extension"].includes(t.type)).filter(e=>e[t]).map(s=>s[t]({...e,utils:oi}))}getFromNodesAndMarks(t,e,s=this.extensions){return s.filter(t=>["node","mark"].includes(t.type)).filter(e=>e[t]).map(s=>s[t]({...e,type:e.schema[`${s.type}s`][s.name],utils:oi}))}inputRules({schema:t,excludedExtensions:e}){const s=this.getAllowedExtensions(e);return[...this.getFromExtensions("inputRules",{schema:t},s),...this.getFromNodesAndMarks("inputRules",{schema:t},s)].reduce((t,e)=>[...t,...e],[])}keymaps({schema:t}){return[...this.getFromExtensions("keys",{schema:t}),...this.getFromNodesAndMarks("keys",{schema:t})].map(t=>w(t))}get marks(){return this.extensions.filter(t=>"mark"===t.type).reduce((t,{name:e,schema:s})=>({...t,[e]:s}),{})}get markViews(){return this.extensions.filter(t=>["mark"].includes(t.type)).filter(t=>t.view).reduce((t,{name:e,view:s})=>({...t,[e]:s}),{})}get nodes(){return this.extensions.filter(t=>"node"===t.type).reduce((t,{name:e,schema:s})=>({...t,[e]:s}),{})}get nodeViews(){return this.extensions.filter(t=>["node"].includes(t.type)).filter(t=>t.view).reduce((t,{name:e,view:s})=>({...t,[e]:s}),{})}get options(){const{view:t}=this;return this.extensions.reduce((e,s)=>({...e,[s.name]:new Proxy(s.options,{set(e,s,i){const n=e[s]!==i;return Object.assign(e,{[s]:i}),n&&t.updateState(t.state),!0}})}),{})}pasteRules({schema:t,excludedExtensions:e}){const s=this.getAllowedExtensions(e);return[...this.getFromExtensions("pasteRules",{schema:t},s),...this.getFromNodesAndMarks("pasteRules",{schema:t},s)].reduce((t,e)=>[...t,...e],[])}plugins({schema:t}){return[...this.getFromExtensions("plugins",{schema:t}),...this.getFromNodesAndMarks("plugins",{schema:t})].reduce((t,e)=>[...t,...e],[]).map(t=>t instanceof r?t:new r(t))}}class li{constructor(t={}){this.options={...this.defaults,...t}}init(){return null}bindEditor(t=null){this.editor=t}get name(){return null}get type(){return"extension"}get defaults(){return{}}plugins(){return[]}inputRules(){return[]}pasteRules(){return[]}keys(){return{}}}class ci extends li{constructor(t={}){super(t)}get type(){return"node"}get schema(){return{}}commands(){return{}}}class ui extends ci{get defaults(){return{inline:!1}}get name(){return"doc"}get schema(){return{content:this.options.inline?"inline*":"block+"}}}class pi extends ci{get button(){return{id:this.name,icon:"paragraph",label:window.panel.$t("toolbar.button.paragraph"),name:this.name,separator:!0}}commands({utils:t,schema:e,type:s}){return{paragraph:()=>this.editor.activeNodes.includes("bulletList")?t.toggleList(e.nodes.bulletList,e.nodes.listItem):this.editor.activeNodes.includes("orderedList")?t.toggleList(e.nodes.orderedList,e.nodes.listItem):this.editor.activeNodes.includes("quote")?t.toggleWrap(e.nodes.quote):t.setBlockType(s)}}get schema(){return{content:"inline*",group:"block",draggable:!1,parseDOM:[{tag:"p"}],toDOM:()=>["p",0]}}get name(){return"paragraph"}}let di=class extends ci{get name(){return"text"}get schema(){return{group:"inline"}}};class hi extends ri{constructor(t={}){super(),this.defaults={autofocus:!1,content:"",disableInputRules:!1,disablePasteRules:!1,editable:!0,element:null,extensions:[],emptyDocument:{type:"doc",content:[]},events:{},inline:!1,parseOptions:{},topNode:"doc",useBuiltInExtensions:!0},this.init(t)}blur(){this.view.dom.blur()}get builtInExtensions(){return!0!==this.options.useBuiltInExtensions?[]:[new ui({inline:this.options.inline}),new di,new pi]}buttons(t){return this.extensions.buttons(t)}clearContent(t=!1){this.setContent(this.options.emptyDocument,t)}command(t,...e){this.commands[t]?.(...e)}createCommands(){return this.extensions.commands({schema:this.schema,view:this.view})}createDocument(t,e=this.options.parseOptions){if(null===t)return this.schema.nodeFromJSON(this.options.emptyDocument);if("object"==typeof t)try{return this.schema.nodeFromJSON(t)}catch(s){return window.console.warn("Invalid content.","Passed value:",t,"Error:",s),this.schema.nodeFromJSON(this.options.emptyDocument)}if("string"==typeof t){const s=`

      ${t}
      `,i=(new window.DOMParser).parseFromString(s,"text/html").body.firstElementChild;return _.fromSchema(this.schema).parse(i,e)}return!1}createEvents(){const t=this.options.events??{};for(const[e,s]of Object.entries(t))this.on(e,s);return t}createExtensions(){return new ai([...this.builtInExtensions,...this.options.extensions],this)}createFocusEvents(){const t=(t,e,s=!0)=>{this.focused=s,this.emit(s?"focus":"blur",{event:e,state:t.state,view:t});const i=this.state.tr.setMeta("focused",s);this.view.dispatch(i)};return new r({props:{attributes:{tabindex:0},handleDOMEvents:{focus:(e,s)=>t(e,s,!0),blur:(e,s)=>t(e,s,!1)}}})}createInputRules(){return this.extensions.inputRules({schema:this.schema,excludedExtensions:this.options.disableInputRules})}createKeymaps(){return this.extensions.keymaps({schema:this.schema})}createMarks(){return this.extensions.marks}createMarkViews(){return this.extensions.markViews}createNodes(){return this.extensions.nodes}createNodeViews(){return this.extensions.nodeViews}createPasteRules(){return this.extensions.pasteRules({schema:this.schema,excludedExtensions:this.options.disablePasteRules})}createPlugins(){return this.extensions.plugins({schema:this.schema})}createSchema(){return new S({topNode:this.options.topNode,nodes:this.nodes,marks:this.marks})}createState(){return C.create({schema:this.schema,doc:this.createDocument(this.options.content),plugins:[...this.plugins,O({rules:this.inputRules}),...this.pasteRules,...this.keymaps,w({Backspace:E}),w(j),this.createFocusEvents()]})}createView(){return new A(this.element,{dispatchTransaction:this.dispatchTransaction.bind(this),attributes:{class:"k-text"},editable:()=>this.options.editable,handlePaste:(t,e)=>{if("function"==typeof this.events.paste){const t=e.clipboardData.getData("text/html"),s=e.clipboardData.getData("text/plain");if(!0===this.events.paste(e,t,s))return!0}},handleDrop:(...t)=>{this.emit("drop",...t)},markViews:this.createMarkViews(),nodeViews:this.createNodeViews(),state:this.createState()})}destroy(){this.view&&this.view.destroy()}dispatchTransaction(t){const e=this.state,s=this.state.apply(t);this.view.updateState(s),this.setActiveNodesAndMarks();const i={editor:this,getHTML:this.getHTML.bind(this),getJSON:this.getJSON.bind(this),state:this.state,transaction:t};this.emit("transaction",i),t.docChanged&&!t.getMeta("preventUpdate")&&t.steps.length>0&&this.emit("update",i);const{from:n,to:o}=this.state.selection,r=!e||!e.selection.eq(s.selection);this.emit(s.selection.empty?"deselect":"select",{...i,from:n,hasChanged:r,to:o})}focus(t=null){if(this.view.focused&&null===t||!1===t)return;const{from:e,to:s}=this.selectionAtPosition(t);this.setSelection(e,s),setTimeout(()=>this.view.focus(),10)}getHTML(t=this.state.doc.content){const e=document.createElement("div"),s=M.fromSchema(this.schema).serializeFragment(t);return e.appendChild(s),this.options.inline&&e.querySelector("p")?e.querySelector("p").innerHTML:e.innerHTML}getHTMLStartToSelection(){const t=this.state.doc.slice(0,this.selection.head).content;return this.getHTML(t)}getHTMLSelectionToEnd(){const t=this.state.doc.slice(this.selection.head).content;return this.getHTML(t)}getHTMLStartToSelectionToEnd(){return[this.getHTMLStartToSelection(),this.getHTMLSelectionToEnd()]}getJSON(){return this.state.doc.toJSON()}getMarkAttrs(t=null){return this.activeMarkAttrs[t]}getSchemaJSON(){return JSON.parse(JSON.stringify({nodes:this.nodes,marks:this.marks}))}init(t={}){this.options={...this.defaults,...t},this.element=this.options.element,this.focused=!1,this.events=this.createEvents(),this.extensions=this.createExtensions(),this.nodes=this.createNodes(),this.marks=this.createMarks(),this.schema=this.createSchema(),this.keymaps=this.createKeymaps(),this.inputRules=this.createInputRules(),this.pasteRules=this.createPasteRules(),this.plugins=this.createPlugins(),this.view=this.createView(),this.commands=this.createCommands(),this.setActiveNodesAndMarks(),!1!==this.options.autofocus&&this.focus(this.options.autofocus),this.emit("init",{view:this.view,state:this.state}),this.extensions.view=this.view,this.setContent(this.options.content)}insertText(t,e=!1){const{tr:s}=this.state,i=s.insertText(t);if(this.view.dispatch(i),e){const e=s.selection.from,i=e-t.length;this.setSelection(i,e)}}get isActive(){return Object.entries({...this.activeMarks,...this.activeNodes}).reduce((t,[e,s])=>({...t,[e]:(t={})=>s(t)}),{})}isEditable(){return this.options.editable}isEmpty(){if(this.state)return 0===this.state.doc.textContent.length}removeMark(t){if(this.schema.marks[t])return oi.removeMark(this.schema.marks[t])(this.state,this.view.dispatch)}get selection(){return this.state.selection}get selectionAtEnd(){return D.atEnd(this.state.doc)}get selectionIsAtEnd(){return this.selection.head===this.selectionAtEnd.head}get selectionAtStart(){return D.atStart(this.state.doc)}get selectionIsAtStart(){return this.selection.head===this.selectionAtStart.head}selectionAtPosition(t=null){return null===t?this.selection:"start"===t||!0===t?this.selectionAtStart:"end"===t?this.selectionAtEnd:{from:t,to:t}}setActiveNodesAndMarks(){this.activeMarks=Object.values(this.schema.marks).filter(t=>oi.markIsActive(this.state,t)).map(t=>t.name),this.activeMarkAttrs=Object.entries(this.schema.marks).reduce((t,[e,s])=>({...t,[e]:oi.getMarkAttrs(this.state,s)}),{}),this.activeNodes=Object.values(this.schema.nodes).filter(t=>oi.nodeIsActive(this.state,t)).map(t=>t.name),this.activeNodeAttrs=Object.entries(this.schema.nodes).reduce((t,[e,s])=>({...t,[e]:oi.getNodeAttrs(this.state,s)}),{})}setContent(t={},e=!1,s){const{doc:i,tr:n}=this.state,o=this.createDocument(t,s),r=n.replaceWith(0,i.content.size,o).setMeta("preventUpdate",!e);this.view.dispatch(r)}setSelection(t=0,e=0){const{doc:s,tr:i}=this.state,n=oi.minMax(t,0,s.content.size),o=oi.minMax(e,0,s.content.size),r=D.create(s,n,o),a=i.setSelection(r);this.view.dispatch(a)}get state(){return this.view?.state}toggleMark(t){if(this.schema.marks[t])return oi.toggleMark(this.schema.marks[t])(this.state,this.view.dispatch)}updateMark(t,e){if(this.schema.marks[t])return oi.updateMark(this.schema.marks[t],e)(this.state,this.view.dispatch)}}class mi extends li{command(){return()=>{}}remove(){this.editor.removeMark(this.name)}get schema(){return{}}get type(){return"mark"}toggle(){return this.editor.toggleMark(this.name)}update(t){this.editor.updateMark(this.name,t)}}class fi extends mi{get button(){return{icon:"bold",label:window.panel.$t("toolbar.button.bold")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,t),e.markInputRule(/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,t)]}keys(){return{"Mod-b":()=>this.toggle()}}get name(){return"bold"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,t),e.markPasteRule(/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,t)]}get schema(){return{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:t=>"normal"!==t.style.fontWeight&&null},{style:"font-weight",getAttrs:t=>/^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null}],toDOM:()=>["strong",0]}}}class gi extends mi{get button(){return{icon:"clear",label:window.panel.$t("toolbar.button.clear")}}commands(){return()=>this.clear()}clear(){const{state:t}=this.editor,{from:e,to:s}=t.tr.selection;for(const i of this.editor.activeMarks){const n=t.schema.marks[i],o=this.editor.state.tr.removeMark(e,s,n);this.editor.view.dispatch(o)}}get name(){return"clear"}}let bi=class extends mi{get button(){return{icon:"code",label:window.panel.$t("toolbar.button.code")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/(?:`)([^`]+)(?:`)$/,t)]}keys(){return{"Mod-`":()=>this.toggle()}}get name(){return"code"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/(?:`)([^`]+)(?:`)/g,t)]}get schema(){return{excludes:"_",parseDOM:[{tag:"code"}],toDOM:()=>["code",0]}}};class ki extends mi{get button(){return{icon:"email",label:window.panel.$t("toolbar.button.email")}}commands(){return{email:t=>{if(t.altKey||t.metaKey)return this.remove();this.editor.emit("email",this.editor)},insertEmail:(t={})=>{const{selection:e}=this.editor.state;if(e.empty&&this.editor.insertText(t.href,!0),t.href)return this.update(t)},removeEmail:()=>this.remove(),toggleEmail:(t={})=>{t.href?.length>0?this.editor.command("insertEmail",t):this.editor.command("removeEmail")}}}get defaults(){return{target:null}}get name(){return"email"}pasteRules({type:t,utils:e}){return[e.pasteRule(/^[\w-.]+@([\w-]+\.)+[\w-]{2,4}$/gi,t,t=>({href:t}))]}plugins(){return[{props:{handleClick:(t,e,s)=>{const i=this.editor.getMarkAttrs("email");i.href&&!0===s.altKey&&s.target instanceof HTMLAnchorElement&&(s.stopPropagation(),window.open(i.href))}}}]}get schema(){return{attrs:{href:{default:null},title:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href^='mailto:']",getAttrs:t=>({href:t.getAttribute("href").replace("mailto:",""),title:t.getAttribute("title")})}],toDOM:t=>["a",{...t.attrs,href:"mailto:"+t.attrs.href},0]}}}class yi extends mi{get button(){return{icon:"italic",label:window.panel.$t("toolbar.button.italic")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,t),e.markInputRule(/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,t)]}keys(){return{"Mod-i":()=>this.toggle()}}get name(){return"italic"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,t),e.markPasteRule(/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,t)]}get schema(){return{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"}],toDOM:()=>["em",0]}}}class vi extends mi{get button(){return{icon:"url",label:window.panel.$t("toolbar.button.link")}}commands(){return{link:t=>{if(t.altKey||t.metaKey)return this.remove();this.editor.emit("link",this.editor)},insertLink:(t={})=>{const{selection:e}=this.editor.state;if(e.empty&&!1===this.editor.activeMarks.includes("link")&&this.editor.insertText(t.href,!0),t.href)return this.update(t)},removeLink:()=>this.remove(),toggleLink:(t={})=>{t.href?.length>0?this.editor.command("insertLink",t):this.editor.command("removeLink")}}}get defaults(){return{target:null}}get name(){return"link"}pasteRules({type:t,utils:e}){return[e.pasteRule(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z]{2,}\b([-a-zA-Z0-9@:%_+.~#?&//=,]*)/gi,t,t=>({href:t}))]}plugins(){return[{props:{handleClick:(t,e,s)=>{const i=this.editor.getMarkAttrs("link");i.href&&!0===s.altKey&&s.target instanceof HTMLAnchorElement&&(s.stopPropagation(),window.open(i.href,i.target))}}}]}get schema(){return{attrs:{href:{default:null},target:{default:null},title:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href]:not([href^='mailto:'])",getAttrs:t=>({href:t.getAttribute("href"),target:t.getAttribute("target"),title:t.getAttribute("title")})}],toDOM:t=>["a",{...t.attrs},0]}}}class $i extends mi{get button(){return{icon:"strikethrough",label:window.panel.$t("toolbar.button.strike")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/~([^~]+)~$/,t)]}keys(){return{"Mod-d":()=>this.toggle()}}get name(){return"strike"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/~([^~]+)~/g,t)]}get schema(){return{parseDOM:[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",getAttrs:t=>"line-through"===t}],toDOM:()=>["s",0]}}}let xi=class extends mi{get button(){return{icon:"superscript",label:window.panel.$t("toolbar.button.sup")}}commands(){return()=>this.toggle()}get name(){return"sup"}get schema(){return{parseDOM:[{tag:"sup"}],toDOM:()=>["sup",0]}}};class wi extends mi{get button(){return{icon:"subscript",label:window.panel.$t("toolbar.button.sub")}}commands(){return()=>this.toggle()}get name(){return"sub"}get schema(){return{parseDOM:[{tag:"sub"}],toDOM:()=>["sub",0]}}}class _i extends mi{get button(){return{icon:"underline",label:window.panel.$t("toolbar.button.underline")}}commands(){return()=>this.toggle()}keys(){return{"Mod-u":()=>this.toggle()}}get name(){return"underline"}get schema(){return{parseDOM:[{tag:"u"},{style:"text-decoration",getAttrs:t=>"underline"===t}],toDOM:()=>["u",0]}}}class Si extends ci{get button(){return{id:this.name,icon:"list-bullet",label:window.panel.$t("toolbar.button.ul"),name:this.name,when:["listItem","bulletList","orderedList","paragraph"]}}commands({type:t,schema:e,utils:s}){return()=>s.toggleList(t,e.nodes.listItem)}inputRules({type:t,utils:e}){return[e.wrappingInputRule(/^\s*([-+*])\s$/,t)]}keys({type:t,schema:e,utils:s}){return{"Shift-Ctrl-8":s.toggleList(t,e.nodes.listItem)}}get name(){return"bulletList"}get schema(){return{content:"listItem+",group:"block",parseDOM:[{tag:"ul"}],toDOM:()=>["ul",0]}}}class Ci extends ci{commands({utils:t,type:e}){return()=>this.createHardBreak(t,e)}createHardBreak(t,e){return t.chainCommands(t.exitCode,t.insertNode(e))}get defaults(){return{enter:!1,text:!1}}keys({utils:t,type:e}){const s=this.createHardBreak(t,e);let i={"Mod-Enter":s,"Shift-Enter":s};return this.options.enter&&(i.Enter=s),i}get name(){return"hardBreak"}get schema(){return{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM:()=>["br"]}}}class Oi extends ci{get button(){const t=this.options.levels.map(t=>({id:`h${t}`,command:`h${t}`,icon:`h${t}`,label:window.panel.$t("toolbar.button.heading."+t),attrs:{level:t},name:this.name,when:["heading","paragraph"]}));return t[t.length-1].separator=!0,t}commands({type:t,schema:e,utils:s}){let i={toggleHeading:i=>s.toggleBlockType(t,e.nodes.paragraph,i)};for(const n of this.options.levels)i[`h${n}`]=()=>s.toggleBlockType(t,e.nodes.paragraph,{level:n});return i}get defaults(){return{levels:[1,2,3,4,5,6]}}inputRules({type:t,utils:e}){return this.options.levels.map(s=>e.textblockTypeInputRule(new RegExp(`^(#{1,${s}})\\s$`),t,()=>({level:s})))}keys({type:t,utils:e}){return this.options.levels.reduce((s,i)=>({...s,[`Shift-Ctrl-${i}`]:e.setBlockType(t,{level:i})}),{})}get name(){return"heading"}get schema(){return{attrs:{level:{default:1}},content:"inline*",group:"block",defining:!0,draggable:!1,parseDOM:this.options.levels.map(t=>({tag:`h${t}`,attrs:{level:t}})),toDOM:t=>[`h${t.attrs.level}`,0]}}}class Ai extends ci{commands({type:t,utils:e}){return()=>e.insertNode(t)}inputRules({type:t,utils:e}){const s=e.nodeInputRule(/^(?:---|___\s|\*\*\*\s)$/,t),i=s.handler;return s.handler=(t,e,s,n)=>i(t,e,s,n).replaceWith(s-1,s,""),[s]}get name(){return"horizontalRule"}get schema(){return{group:"block",parseDOM:[{tag:"hr"}],toDOM:()=>["hr"]}}}class Mi extends ci{keys({type:t,utils:e}){return{Enter:e.splitListItem(t),"Shift-Tab":e.liftListItem(t),Tab:e.sinkListItem(t)}}get name(){return"listItem"}get schema(){return{content:"paragraph block*",defining:!0,draggable:!1,parseDOM:[{tag:"li"}],toDOM:()=>["li",0]}}}class Di extends ci{get button(){return{id:this.name,icon:"list-numbers",label:window.panel.$t("toolbar.button.ol"),name:this.name,when:["listItem","bulletList","orderedList","paragraph"],separator:!0}}commands({type:t,schema:e,utils:s}){return()=>s.toggleList(t,e.nodes.listItem)}inputRules({type:t,utils:e}){return[e.wrappingInputRule(/^(\d+)\.\s$/,t,t=>({order:+t[1]}),(t,e)=>e.childCount+e.attrs.order===+t[1])]}keys({type:t,schema:e,utils:s}){return{"Shift-Ctrl-9":s.toggleList(t,e.nodes.listItem)}}get name(){return"orderedList"}get schema(){return{attrs:{order:{default:1}},content:"listItem+",group:"block",parseDOM:[{tag:"ol",getAttrs:t=>({order:t.hasAttribute("start")?+t.getAttribute("start"):1})}],toDOM:t=>1===t.attrs.order?["ol",0]:["ol",{start:t.attrs.order},0]}}}class Ei extends ci{get button(){return{id:this.name,icon:"quote",label:window.panel.$t("field.blocks.quote.name"),name:this.name}}commands({type:t,utils:e}){return()=>e.toggleWrap(t)}inputRules({type:t,utils:e}){return[e.wrappingInputRule(/^\s*>\s$/,t)]}keys({utils:t}){return{"Shift-Tab":(e,s)=>t.lift(e,s)}}get name(){return"quote"}get schema(){return{content:"block+",group:"block",defining:!0,draggable:!1,parseDOM:[{tag:"blockquote"}],toDOM:()=>["blockquote",0]}}}let ji=class extends li{commands(){return{undo:()=>T,redo:()=>L,undoDepth:()=>B,redoDepth:()=>I}}get defaults(){return{depth:"",newGroupDelay:""}}keys(){return{"Mod-z":T,"Mod-y":L,"Shift-Mod-z":L,"Mod-я":T,"Shift-Mod-я":L}}get name(){return"history"}plugins(){return[P({depth:this.options.depth,newGroupDelay:this.options.newGroupDelay})]}};class Ii extends li{commands(){return{insertHtml:t=>(e,s)=>{let i=document.createElement("div");i.innerHTML=t.trim();const n=_.fromSchema(e.schema).parse(i);s(e.tr.replaceSelectionWith(n).scrollIntoView())}}}}class Bi extends li{keys(){const t={};for(const e in this.options)t[e]=()=>(this.options[e](),!0);return t}}let Li=class extends li{constructor(t){super(),this.writer=t}get component(){return this.writer.$refs.toolbar}init(){this.editor.on("deselect",({event:t})=>this.component?.close(t)),this.editor.on("select",({hasChanged:t})=>{!1!==t&&this.component?.open()})}get type(){return"toolbar"}};const Ti={mixins:[Ie,tt,et,ot,at],props:{breaks:Boolean,code:Boolean,emptyDocument:{type:Object,default:()=>({type:"doc",content:[]})},extensions:Array,headings:{default:()=>[1,2,3,4,5,6],type:[Array,Boolean]},inline:Boolean,keys:Object,marks:{type:[Array,Boolean],default:!0},nodes:{type:[Array,Boolean],default:()=>["heading","bulletList","orderedList"]},paste:{type:Function,default:()=>()=>!1},toolbar:{type:Object,default:()=>({inline:!0})},value:{type:String,default:""}}};const Pi=lt({mixins:[Be,Ti],emits:["input"],data(){return{editor:null,json:{},html:this.value,isEmpty:!0}},computed:{characters(){const t=this.$helper.string.stripHTML(this.value??"");return this.$helper.string.unescapeHTML(t).length},isCursorAtEnd(){return this.editor.selectionIsAtEnd},isCursorAtStart(){return this.editor.selectionIsAtStart},toolbarOptions(){return{marks:Array.isArray(this.marks)||!1===this.marks?this.marks:void 0,...this.toolbar,editor:this.editor}}},watch:{value(t,e){t!==e&&t!==this.html&&(this.html=t,this.editor.setContent(this.html),this.isEmpty=this.editor.isEmpty())}},mounted(){this.editor=new hi({autofocus:this.autofocus,content:this.value,editable:!this.disabled,element:this.$el,emptyDocument:this.emptyDocument,parseOptions:{preserveWhitespace:!0},events:{link:t=>{this.$panel.dialog.open({component:"k-link-dialog",props:{value:t.getMarkAttrs("link")},on:{cancel:()=>t.focus(),submit:e=>{this.$panel.dialog.close(),t.command("toggleLink",e)}}})},email:t=>{this.$panel.dialog.open({component:"k-email-dialog",props:{value:this.editor.getMarkAttrs("email")},on:{cancel:()=>t.focus(),submit:e=>{this.$panel.dialog.close(),t.command("toggleEmail",e)}}})},paste:this.paste,update:t=>{if(!this.editor)return;const e=JSON.stringify(this.editor.getJSON());e!==JSON.stringify(this.json)&&(this.json=e,this.isEmpty=t.editor.isEmpty(),this.html=t.editor.getHTML(),this.isEmpty&&(0===t.editor.activeNodes.length||t.editor.activeNodes.includes("paragraph"))&&(this.html=""),this.$emit("input",this.html),this.validate())}},extensions:[...this.createMarks(),...this.createNodes(),new Bi(this.keys),new ji,new Ii,new Li(this),...this.extensions||[]],inline:this.inline}),this.isEmpty=this.editor.isEmpty(),this.json=this.editor.getJSON(),this.$panel.events.on("click",this.onBlur),this.$panel.events.on("focus",this.onBlur),this.validate(),this.$props.autofocus&&this.focus()},beforeDestroy(){this.editor.destroy(),this.$panel.events.off("click",this.onBlur),this.$panel.events.off("focus",this.onBlur)},methods:{command(t,...e){this.editor.command(t,...e)},createMarks(){return this.filterExtensions({clear:new gi,code:new bi,underline:new _i,strike:new $i,link:new vi,email:new ki,bold:new fi,italic:new yi,sup:new xi,sub:new wi,...this.createMarksFromPanelPlugins()},this.marks)},createMarksFromPanelPlugins(){const t=window.panel.plugins.writerMarks??{},e={};for(const s in t)e[s]=Object.create(mi.prototype,Object.getOwnPropertyDescriptors({name:s,...t[s]}));return e},createNodes(){const t=new Ci({text:!0,enter:this.inline});return this.filterExtensions({bulletList:new Si,orderedList:new Di,heading:new Oi({levels:this.headings}),horizontalRule:new Ai,listItem:new Mi,quote:new Ei,...this.createNodesFromPanelPlugins()},this.nodes,(e,s)=>((e.includes("bulletList")||e.includes("orderedList"))&&s.push(new Mi),!0===this.inline&&(s=s.filter(t=>!0===t.schema.inline)),s.push(t),s))},createNodesFromPanelPlugins(){const t=window.panel.plugins.writerNodes??{},e={};for(const s in t)e[s]=Object.create(ci.prototype,Object.getOwnPropertyDescriptors({name:s,...t[s]}));return e},getHTML(){return this.editor.getHTML()},filterExtensions(t,e,s){!1===e?e=[]:!0!==e&&!1!==Array.isArray(e)||(e=Object.keys(t));let i=[];for(const n in t)e.includes(n)&&i.push(t[n]);return"function"==typeof s&&(i=s(e,i)),i},focus(){this.editor.focus()},getSplitContent(){return this.editor.getHTMLStartToSelectionToEnd()},onBlur(t){!1===this.$el.contains(t.target)&&this.$refs.toolbar?.close()},onCommand(t,...e){this.editor.command(t,...e)},async validate(){await new Promise(t=>setTimeout(()=>t(""),50));let t="";!1===this.isEmpty&&this.minlength&&this.charactersthis.maxlength&&(t=this.$t("error.validation.maxlength",{max:this.maxlength})),this.$refs.output?.setCustomValidity(t)}}},function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"direction",rawName:"v-direction"}],ref:"editor",class:["k-writer","k-writer-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-empty":t.isEmpty,"data-placeholder":t.placeholder,spellcheck:t.spellcheck}},[t.editor&&!t.disabled?e("k-writer-toolbar",t._b({ref:"toolbar",on:{command:t.onCommand}},"k-writer-toolbar",t.toolbarOptions,!1)):t._e(),e("textarea",{ref:"output",staticClass:"input-hidden",attrs:{name:t.name,required:t.required,tabindex:"-1"},domProps:{value:t.value}})],1)},[]).exports;class qi extends ui{get schema(){return{content:this.options.nodes.join("|")}}}const Ni={mixins:[Ti],inheritAttrs:!1,props:{nodes:{type:Array,default:()=>["bulletList","orderedList"]}}};const Fi=lt({mixins:[Be,Ni],data(){return{list:this.value,html:this.value}},computed:{listExtensions(){return[new qi({inline:!0,nodes:this.nodes})]}},watch:{value(t){t!==this.html&&(this.list=t,this.html=t)}},methods:{focus(){this.$refs.input.focus()},onInput(t){let e=(new DOMParser).parseFromString(t,"text/html").querySelector("ul, ol");e&&0!==e.textContent.trim().length?(this.list=t,this.html=t.replace(/(

      |<\/p>)/gi,""),this.$emit("input",this.html)):this.$emit("input",this.list="")}}},function(){var t=this;return(0,t._self._c)("k-writer-input",t._b({ref:"input",class:["k-list-input",t.$attrs.class],style:t.$attrs.style,attrs:{extensions:t.listExtensions,value:t.list},on:{input:t.onInput}},"k-writer-input",t.$props,!1))},[]).exports;const zi=lt({mixins:[ze,Ke,Ni],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-list-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:!1,input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"list"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Yi={props:{disabled:Boolean,html:{type:Boolean},removable:Boolean,theme:{type:String,default:"dark"}}};const Ri=lt({mixins:[Yi],props:{element:String,image:{type:Object},link:String,text:String},emits:["remove"],computed:{isRemovable(){return this.removable&&!this.disabled}},methods:{remove(){this.isRemovable&&this.$emit("remove")},focus(){this.$el.focus()}}},function(){var t=this,e=t._self._c;return e(t.element??(t.link?"k-link":"button"),{tag:"component",staticClass:"k-tag",attrs:{"aria-disabled":t.disabled,"data-theme":t.theme,to:t.link,type:"button"},on:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete","Del"])?null:(e.preventDefault(),t.remove.apply(null,arguments))}}},[t._t("image",function(){return[t.image?.src?e("k-image-frame",t._b({staticClass:"k-tag-image"},"k-image-frame",t.image,!1)):t.image?e("k-icon-frame",t._b({staticClass:"k-tag-image"},"k-icon-frame",t.image,!1)):t._e()]}),t.text?[t.html?e("span",{staticClass:"k-tag-text",domProps:{innerHTML:t._s(t.text)}}):e("span",{staticClass:"k-tag-text"},[t._v(t._s(t.text))])]:t.$slots.default?[e("span",{staticClass:"k-tag-text"},[t._t("default")],2)]:t._e(),t.isRemovable?e("k-icon-frame",{staticClass:"k-tag-toggle",attrs:{icon:"cancel-small"},nativeOn:{click:function(e){return e.stopPropagation(),t.remove.apply(null,arguments)}}}):t._e()],2)},[]).exports,Hi={mixins:[Yi,X,it],inheritAttrs:!1,props:{element:{type:String,default:"div"},layout:String,sort:{default:!1,type:Boolean},value:{default:()=>[],type:Array}}};const Ui=lt({mixins:[Hi],props:{draggable:{default:!0,type:Boolean}},emits:["edit","input"],data:()=>({tags:[]}),computed:{dragOptions(){return{delay:1,disabled:!this.isDraggable,draggable:".k-tag",handle:".k-tag-text"}},isDraggable(){return!0!==this.sort&&!1!==this.draggable&&0!==this.tags.length&&!0!==this.disabled}},watch:{value:{handler(){let t=this.$helper.object.clone(this.value);if(!0===this.sort){const e=[];for(const s of this.options){const i=t.indexOf(s.value);-1!==i&&(e.push(s),t.splice(i,1))}e.push(...t),t=e}this.tags=t.map(this.tag).filter(t=>t)},immediate:!0}},methods:{edit(t,e,s){!1===this.disabled&&this.$emit("edit",t,e,s)},focus(t="last"){this.$refs.navigate.move(t)},index(t){return this.tags.findIndex(e=>e.value===t.value)},input(){this.$emit("input",this.tags.map(t=>t.value))},navigate(t){this.focus(t)},remove(t){this.tags.length<=1?this.navigate("last"):this.navigate("prev"),this.tags.splice(t,1),this.input()},option(t){return this.options.find(e=>e.value===t.value)},select(){this.focus()},tag(t){"object"!=typeof t&&(t={value:t});const e=this.option(t);return e||{text:this.$helper.string.escapeHTML(t.text??t.value),...t}}}},function(){var t=this,e=t._self._c;return e("k-navigate",{ref:"navigate",attrs:{axis:"list"===t.layout?"y":"x",select:":where(.k-tag, .k-tags-navigatable):not(:disabled)"}},[e("k-draggable",{class:["k-tags",t.$attrs.class],style:t.$attrs.style,attrs:{"data-layout":t.layout,element:t.element,list:t.tags,options:t.dragOptions},on:{end:t.input},scopedSlots:t._u([{key:"footer",fn:function(){return[t._t("default")]},proxy:!0}],null,!0)},t._l(t.tags,function(s,i){return e("k-tag",{key:s.id??s.value??s.text,attrs:{disabled:t.disabled,element:t.element,html:t.html,image:s.image,link:s.link,removable:t.removable&&!t.disabled,theme:t.theme,name:"tag"},on:{remove:function(e){return t.remove(i,s)}},nativeOn:{click:function(t){t.stopPropagation()},keypress:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.edit(i,s,e)},dblclick:function(e){return t.edit(i,s,e)}}},[e("span",{domProps:{innerHTML:t._s(s.text)}})])}),1)],1)},[]).exports,Vi={mixins:[st,rt,Hi,Le],props:{value:{default:()=>[],type:Array}},methods:{open(){this.$refs.dropdown.open(this.$el)}}};const Ki=lt({mixins:[Be,Vi]},function(){var t=this,e=t._self._c;return e("div",{class:["k-multiselect-input",t.$attrs.class],style:t.$attrs.style},[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value),anchor:".k-multiselect-input-toggle"}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("k-tags",t._b({ref:"tags",attrs:{removable:!0},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{click:function(e){return e.stopPropagation(),t.open.apply(null,arguments)}}},"k-tags",t.$props,!1),[!t.max||t.value.length({editing:null}),computed:{canAdd(){return!this.max||this.value.length!1===this.value.includes(t.value))},picklist(){return{disabled:this.disabled,create:this.showCreate,ignore:this.ignore,min:this.min,max:this.max,search:this.showSearch}},replacableOptions(){return this.options.filter(t=>!1===this.value.includes(t.value)||t.value===this.editing?.tag.value)},showCreate(){return"options"!==this.accept&&(!this.editing||{submit:this.$t("replace.with")})},showSearch(){return!1!==this.search&&(this.editing?{placeholder:this.$t("replace.with"),...this.search}:"options"===this.accept?{placeholder:this.$t("filter"),...this.search}:this.search)}},methods:{create(t){const e=t.split(this.separator).map(t=>t.trim()),s=this.$helper.object.clone(this.value);for(let i of e)i=this.$refs.tags.tag(i,this.separator),!0===this.isAllowed(i)&&s.push(i.value);this.$emit("input",s),this.$refs.create.close()},async edit(t,e){this.editing={index:t,tag:e},this.$refs.replace.open()},focus(){this.canAdd&&this.$refs.create.open()},isAllowed(t){return"object"==typeof t&&0!==t.value.trim().length&&(!("options"===this.accept&&!this.$refs.tags.option(t))&&!0!==this.value.includes(t.value))},pick(t){this.$emit("input",t),this.$refs.create.close()},replace(t){const{index:e}=this.editing,s=this.$refs.tags.tag(t);if(this.$refs.replace.close(),this.editing=null,!1===this.isAllowed(s))return!1;const i=this.$helper.object.clone(this.value);i.splice(e,1,s.value),this.$emit("input",i),this.$refs.tags.navigate(e)},toggle(t){return!(t.metaKey||t.altKey||t.ctrlKey)&&("ArrowDown"===t.key?(this.$refs.create.open(),void t.preventDefault()):void(String.fromCharCode(t.keyCode).match(/(\w)/g)&&this.$refs.create.open()))}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-tags-input",attrs:{"data-can-add":t.canAdd}},[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("k-tags",t._b({ref:"tags",attrs:{removable:!0},on:{edit:t.edit,input:function(e){return t.$emit("input",e)}},nativeOn:{click:function(e){e.stopPropagation(),t.$refs.toggle?.$el?.click()}}},"k-tags",t.$props,!1),[!t.max||t.value.length({object:{}}),computed:{hasFields(){return this.$helper.object.length(this.fields)>0},isEmpty(){return null===this.object||0===this.$helper.object.length(this.object)}},watch:{value:{handler(t){this.object=this.valueToObject(t)},immediate:!0}},methods:{add(){this.object=this.$helper.field.form(this.fields),this.save(),this.open()},cell(t,e){this.$set(this.object,t,e),this.save()},form(t){const e=this.$helper.field.subfields(this,this.fields);if(t)for(const s in e)e[s].autofocus=s===t;return e},remove(){this.object={},this.save()},open(t){if(this.disabled)return!1;this.$panel.drawer.open({component:"k-form-drawer",props:{breadcrumb:[],icon:"box",tab:"object",tabs:{object:{fields:this.form(t)}},title:this.label,value:this.object},on:{input:t=>{for(const e in t)this.$set(this.object,e,t[e]);this.save()}}})},save(){this.$emit("input",this.object)},valueToObject:t=>"object"!=typeof t?{}:t}},function(){var t=this,e=t._self._c;return e("k-field",t._b({staticClass:"k-object-field",attrs:{input:t.id},scopedSlots:t._u([!t.disabled&&t.hasFields?{key:"options",fn:function(){return[t.isEmpty?e("k-button",{attrs:{id:t.id,icon:"add",size:"xs",variant:"filled"},on:{click:t.add}}):e("k-button",{attrs:{icon:"remove",size:"xs",variant:"filled"},on:{click:t.remove}})]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[t.hasFields?[t.isEmpty?e("k-empty",{attrs:{icon:"box"},on:{click:t.add}},[t._v(" "+t._s(t.empty??t.$t("field.object.empty"))+" ")]):e("table",{staticClass:"k-table k-object-field-table",attrs:{"aria-disabled":t.disabled}},[e("tbody",[t._l(t.fields,function(s){return[s.saveable&&t.$helper.field.isVisible(s,t.value)?e("tr",{key:s.name,on:{click:function(e){return t.open(s.name)}}},[e("th",{attrs:{"data-has-button":"","data-mobile":"true"}},[e("button",{attrs:{type:"button"}},[t._v(t._s(s.label))])]),e("k-table-cell",{attrs:{column:s,field:s,mobile:!0,value:t.object[s.name]},on:{input:function(e){return t.cell(s.name,e)}}})],1):t._e()]})],2)])]:[e("k-empty",{attrs:{icon:"box"}},[t._v(t._s(t.$t("fields.empty")))])],e("input",{staticClass:"input-hidden",attrs:{type:"checkbox",required:t.required},domProps:{checked:!t.isEmpty}})],2)},[]).exports;const sn=lt({extends:Fs,type:"pages",computed:{emptyProps(){return{icon:"page",text:this.empty??(this.multiple&&1!==this.max?this.$t("field.pages.empty"):this.$t("field.pages.empty.single"))}}}},null,null).exports,nn={mixins:[Os],props:{autocomplete:{type:String,default:"new-password"}}};const on=lt({mixins:[As,nn]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-password-input",attrs:{type:"password"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const rn=lt({mixins:[ze,Ke,nn,Ss],inheritAttrs:!1,props:{minlength:{type:Number,default:8},icon:{type:String,default:"key"}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-password-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"password"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,an={mixins:[Ie,it],props:{columns:{default:1,type:Number},reset:{default:!0,type:Boolean},theme:String,value:[String,Number,Boolean]}};const ln=lt({mixins:[Be,an],computed:{choices(){return this.options.map((t,e)=>({autofocus:this.autofocus&&0===e,checked:this.value===t.value,disabled:this.disabled||t.disabled,id:`${this.id}-${e}`,info:t.info,label:t.text,name:this.name??this.id,type:"radio",value:t.value}))}},methods:{focus(){this.$el.querySelector("input")?.focus()},select(){this.focus()},toggle(t){t===this.value&&this.reset&&!this.required&&this.$emit("input","")}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-radio-input",t.$attrs.class],style:t.$attrs.style,attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("k-input-validator",{attrs:{required:t.required,value:JSON.stringify(t.value)}},[e("ul",{staticClass:"k-grid",style:{"--columns":t.columns},attrs:{"data-variant":"choices"}},t._l(t.choices,function(s,i){return e("li",{key:i},[e("k-choice-input",t._b({on:{input:function(e){return t.$emit("input",s.value)}},nativeOn:{click:function(e){return e.stopPropagation(),t.toggle(s.value)}}},"k-choice-input",s,!1))],1)}),0)])],1)},[]).exports;const cn=lt({mixins:[ze,Ke,an],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-radio-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id+"-0"}},"k-field",t.$props,!1),[t.options?.length?e("k-radio-input",t._b({ref:"input",on:{input:function(e){return t.$emit("input",e)}}},"k-radio-input",t.$props,!1)):e("k-empty",{attrs:{text:t.$t("options.none"),icon:"checklist"}})],1)},[]).exports,un={mixins:[Ie],props:{default:[Number,String],max:{type:Number,default:100},min:{type:Number,default:0},step:{type:[Number,String],default:1},tooltip:{type:[Boolean,Object],default:()=>({before:null,after:null})},value:[Number,String]}};const pn=lt({mixins:[Be,un],computed:{baseline(){return this.min<0?0:this.min},isEmpty(){return""===this.value||void 0===this.value||null===this.value},label(){return this.required||this.value||0===this.value?this.format(this.position):"–"},maxLength(){return Math.max(this.format(this.min).length,this.format(this.max).length)},position(){return this.value||0===this.value?this.value:this.default??this.baseline}},watch:{value:{handler(){this.validate()},immediate:!0}},mounted(){this.$props.autofocus&&this.focus()},methods:{focus(){this.$el.querySelector("input")?.focus()},format(t){const e=document.lang?document.lang.replace("_","-"):"en",s=this.step.toString().split("."),i=s.length>1?s[1].length:0;return new Intl.NumberFormat(e,{minimumFractionDigits:i}).format(t)},onInput(t){this.$emit("input",t)},validate(){const t=[];this.required&&!0===this.isEmpty&&t.push(this.$t("error.validation.required")),!1===this.isEmpty&&this.min&&this.valuethis.max&&t.push(this.$t("error.validation.max",{max:this.max})),this.$refs.range?.setCustomValidity(t.join(", "))}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-range-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled}},[e("input",t._b({ref:"range",attrs:{type:"range"},domProps:{value:t.position},on:{input:function(e){return t.$emit("input",e.target.valueAsNumber)}}},"input",{autofocus:t.autofocus,disabled:t.disabled,id:t.id,max:t.max,min:t.min,name:t.name,required:t.required,step:t.step},!1)),t.tooltip?e("output",{staticClass:"k-range-input-tooltip",attrs:{for:t.id}},[t.tooltip.before?e("span",{staticClass:"k-range-input-tooltip-before"},[t._v(t._s(t.tooltip.before))]):t._e(),e("span",{staticClass:"k-range-input-tooltip-text",style:`--digits: ${t.maxLength}ch`},[t._v(" "+t._s(t.label)+" ")]),t.tooltip.after?e("span",{staticClass:"k-range-input-tooltip-after"},[t._v(t._s(t.tooltip.after))]):t._e()]):t._e()])},[]).exports;const dn=lt({mixins:[Ke,ze,un],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-range-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"range"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,hn={mixins:[Ie,it,ot],props:{ariaLabel:String,value:{type:[String,Number,Boolean],default:""}}};const mn=lt({mixins:[Be,hn],emits:["click","input"],computed:{empty(){return this.placeholder??"—"},hasEmptyOption(){return!this.required||this.isEmpty},isEmpty(){return null===this.value||void 0===this.value||""===this.value},label(){const t=this.text(this.value);return this.isEmpty||null===t?this.empty:t}},mounted(){this.$props.autofocus&&this.focus()},methods:{focus(){this.$refs.input.focus()},onClick(t){t.stopPropagation(),this.$emit("click",t)},select(){this.focus()},text(t){let e=null;for(const s of this.options)s.value==t&&(e=s.text);return e}}},function(){var t=this,e=t._self._c;return e("span",{class:["k-select-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-empty":t.isEmpty}},[e("select",{ref:"input",staticClass:"k-select-input-native",attrs:{id:t.id,autofocus:t.autofocus,"aria-label":t.ariaLabel,disabled:t.disabled,name:t.name,required:t.required},domProps:{value:t.value},on:{change:function(e){return t.$emit("input",e.target.value)},click:t.onClick}},[t.hasEmptyOption?e("option",{attrs:{disabled:t.required,value:""}},[t._v(" "+t._s(t.empty)+" ")]):t._e(),t._l(t.options,function(s){return e("option",{key:s.value,attrs:{disabled:s.disabled},domProps:{value:s.value}},[t._v(" "+t._s(s.text)+" ")])})],2),t._v(" "+t._s(t.label)+" ")])},[]).exports;const fn=lt({mixins:[ze,Ke,hn],inheritAttrs:!1,props:{icon:{type:String,default:"angle-down"}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-select-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"select"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,gn={mixins:[Os],props:{autocomplete:null,spellcheck:null,allow:{type:String,default:""},formData:{type:Object,default:()=>({})},sync:{type:String}}};const bn=lt({extends:As,mixins:[gn],data(){return{slug:this.sluggify(this.value),slugs:this.$panel.language.rules??this.$panel.system.slugs,syncValue:null}},watch:{formData:{handler(t){return!this.disabled&&(!(!this.sync||void 0===t[this.sync])&&(t[this.sync]!=this.syncValue&&(this.syncValue=t[this.sync],void this.onInput(this.sluggify(this.syncValue)))))},deep:!0,immediate:!0},value(t){(t=this.sluggify(t))!==this.slug&&(this.slug=t,this.$emit("input",this.slug))}},methods:{sluggify(t){return this.$helper.slug(t,[this.slugs,this.$panel.system.ascii],this.allow)},onInput(t){this.slug=this.sluggify(t),this.$emit("input",this.slug)}}},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-slug-input",attrs:{spellcheck:!1,value:t.slug,autocomplete:"off"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const kn=lt({mixins:[ze,Ke,gn],inheritAttrs:!1,props:{icon:{type:String,default:"url"},path:{type:String},wizard:{type:[Boolean,Object],default:!1}},data(){return{slug:this.value}},computed:{preview(){return void 0!==this.help?this.help:void 0!==this.path?this.path+this.value:null}},watch:{value(){this.slug=this.value}},methods:{focus(){this.$refs.input.focus()},onWizard(){let t=this.wizard?.field;if(t){const e=this.formData[t.toLowerCase()];e&&(this.slug=e)}}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-slug-field",t.$attrs.class],style:t.$attrs.style,attrs:{help:t.preview,input:t.id},scopedSlots:t._u([t.wizard&&t.wizard.text?{key:"options",fn:function(){return[e("k-button",{attrs:{text:t.wizard.text,icon:"sparkling",size:"xs",variant:"filled"},on:{click:t.onWizard}})]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{value:t.slug,type:"slug"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,yn={props:{reports:{type:Array,default:()=>[]},size:{type:String,default:"large"}}};const vn=lt({mixins:[yn]},function(){var t=this,e=t._self._c;return t.reports.length>0?e("dl",{staticClass:"k-stats",attrs:{"data-size":t.size}},t._l(t.reports,function(s,i){return e("k-stat",t._b({key:i},"k-stat",s,!1))}),1):e("k-empty",{attrs:{icon:"chart"}},[t._v(t._s(t.$t("stats.empty")))])},[]).exports;const $n=lt({mixins:[G,X,Z,st,yn]},function(){var t=this,e=t._self._c;return e("k-field",{attrs:{id:t.id,help:t.help,input:!1,label:t.label,name:t.name,type:"stats"}},[e("k-stats",{attrs:{reports:t.reports,size:t.size}})],1)},[]).exports,xn={data:()=>({isSelecting:!1,selected:[]}),created(){this.$events.on(this.batchEditingEvent,this.stopSelectingCollision)},destroyed(){this.$events.off(this.batchEditingEvent,this.stopSelectingCollision)},computed:{batchDeleteConfirmMessage(){return this.$t(`${this.type}.delete.confirm.selected`,{count:this.selected.length})},batchEditingButtons(){const t=[];return t.push({disabled:0===this.selected.length,icon:"trash",text:this.$t("delete")+` (${this.selected.length})`,theme:"negative",click:()=>{this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.batchDeleteConfirmMessage},on:{submit:async()=>{this.$panel.dialog.close(),0!==this.selected.length&&(await this.onBatchDelete(),this.stopSelecting())}}})},responsive:!0}),t.push({icon:"cancel",text:this.$t("cancel"),click:this.onSelectToggle,responsive:!0}),t},batchEditingEvent:()=>"selecting",batchEditingIdentifier:()=>"id",batchEditingToggle(){return{icon:"checklist",click:this.onSelectToggle,title:this.$t("select"),responsive:!0}},canSelect:()=>!0},methods:{onBatchDelete(){throw new Error("Not implemented")},onSelect(t){this.selected.includes(t)?this.selected=this.selected.filter(e=>e[this.batchEditingIdentifier]!==t[this.batchEditingIdentifier]):this.selected.push(t)},onSelectToggle(){this.isSelecting?this.stopSelecting():this.startSelecting()},startSelecting(){this.isSelecting=!0,this.selected=[],this.$events.emit(this.batchEditingEvent,this.name)},stopSelecting(){this.isSelecting=!1,this.selected=[]},stopSelectingCollision(t){t!==this.name&&this.stopSelecting()}}};const wn=lt({mixins:[ze,xn],inheritAttrs:!1,props:{autofocus:Boolean,batch:{type:Boolean,default:!1},columns:Object,duplicate:{type:Boolean,default:!0},empty:String,fields:[Array,Object],limit:Number,max:Number,min:Number,prepend:{type:Boolean,default:!1},sortable:{type:Boolean,default:!0},sortBy:String,value:{type:Array,default:()=>[]}},data:()=>({items:[],page:1}),computed:{batchDeleteConfirmMessage(){return this.$t("field.structure.delete.confirm.selected",{count:this.selected.length})},batchEditingEvent:()=>"structure.selecting",batchEditingIdentifier:()=>"_id",canSelect(){return!0===this.batch&&this.items.length>0},index(){return this.limit?(this.page-1)*this.limit+1:1},hasFields(){return this.$helper.object.length(this.fields)>0},isSortable(){return!this.sortBy&&(!this.limit&&(!0!==this.disabled&&(!(this.items.length<=1)&&!1!==this.sortable)))},more(){return!0!==this.disabled&&!(this.max&&this.items.length>=this.max)},options(){return this.disabled?[]:[{icon:"edit",text:this.$t("edit"),click:"edit"},{disabled:!this.duplicate||!this.more,icon:"copy",text:this.$t("duplicate"),click:"duplicate"},"-",{icon:"trash",text:this.$t("delete"),click:"remove"}]},paginatedItems(){return this.limit?this.items.slice(this.pagination.offset,this.pagination.offset+this.limit):this.items},pagination(){let t=0;return this.limit&&(t=(this.page-1)*this.limit),{page:this.page,offset:t,limit:this.limit,total:this.items.length,align:"center",details:!0}}},watch:{value:{handler(t){this.stopSelecting(),t!==this.items&&(this.items=this.toItems(t))},immediate:!0}},methods:{add(t=null){if(!1===this.more)return!1;t??=this.$helper.field.form(this.fields),t._id??=this.$helper.uuid(),!0===this.prepend?this.items.unshift(t):this.items.push(t),this.save(),this.open(t)},close(){this.$panel.drawer.close(this.id)},focus(){this.$refs.add?.focus?.()},form(t){const e=this.$helper.field.subfields(this,this.fields);if(t)for(const s in e)e[s].autofocus=s===t;return e},findIndex(t){return this.items.findIndex(e=>e._id===t._id)},navigate(t,e){const s=this.findIndex(t);-1!==s&&this.open(this.items[s+e],null,!0)},open(t,e,s=!1){const i=this.findIndex(t);if(-1===i)return!1;this.stopSelecting(),this.$panel.drawer.open({component:"k-structure-drawer",id:this.id,props:{disabled:this.disabled,icon:this.icon??"list-bullet",next:this.items[i+1],prev:this.items[i-1],tabs:{content:{fields:this.form(e)}},title:this.label,value:t},replace:s,on:{input:e=>{const s=this.findIndex(t);this.$panel.drawer.props.next=this.items[s+1],this.$panel.drawer.props.prev=this.items[s-1],this.$set(this.items,s,e),this.save()},next:()=>{this.navigate(t,1)},prev:()=>{this.navigate(t,-1)},remove:()=>{this.remove(t)}}})},option(t,e){switch(t){case"remove":this.remove(e);break;case"duplicate":this.add({...this.$helper.object.clone(e),_id:this.$helper.uuid()});break;case"edit":this.open(e)}},onBatchDelete(){this.removeSelected()},onTableInput(t){this.limit&&(t=this.items.toSpliced(this.pagination.offset,this.limit,...t)),this.save(t)},paginate({page:t}){this.page=t,this.stopSelecting()},remove(t){const e=this.findIndex(t);this.disabled||-1===e||this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.structure.delete.confirm")},on:{submit:()=>{this.items.splice(e,1),this.save(),this.$panel.dialog.close(),this.close(),0===this.paginatedItems.length&&this.page>1&&this.page--}}})},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.structure.delete.confirm.all")},on:{submit:()=>{this.page=1,this.items=[],this.save(),this.$panel.dialog.close()}}})},removeSelected(){this.items=this.items.filter(t=>!this.selected.includes(t)),this.save()},save(t=this.items){this.$emit("input",t)},sort(t){return this.sortBy?this.$helper.array.sortBy(t,this.sortBy):t},toItems(t){return!1===Array.isArray(t)?[]:(t=t.map(t=>({_id:t._id??this.$helper.uuid(),...t})),this.sort(t))}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-structure-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},nativeOn:{click:function(t){t.stopPropagation()}},scopedSlots:t._u([t.hasFields&&!t.disabled?{key:"options",fn:function(){return[t.isSelecting?e("k-button-group",{attrs:{buttons:t.batchEditingButtons,size:"xs",variant:"filled"}}):e("k-button-group",[t.canSelect?[e("k-button",t._b({attrs:{size:"xs",variant:"filled"}},"k-button",t.batchEditingToggle,!1))]:t._e(),e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{attrs:{autofocus:t.autofocus,disabled:!t.more,responsive:!0,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.add()}}}),e("k-button",{attrs:{icon:"dots",size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:[{click:()=>t.add(),disabled:!t.more,icon:"add",text:t.$t("add")},{click:()=>t.removeAll(),disabled:0===t.items.length||t.disabled,icon:"trash",text:t.$t("delete.all")}],"align-x":"end"}})],1)],2)]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.items)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[t.hasFields?[0===t.items.length?e("k-empty",{attrs:{icon:"list-bullet"},on:{click:function(e){return t.add()}}},[t._v(" "+t._s(t.empty??t.$t("field.structure.empty"))+" ")]):[e("k-table",{attrs:{columns:t.columns,disabled:t.disabled,fields:t.fields,empty:t.$t("field.structure.empty"),index:t.index,options:t.options,pagination:!(!t.limit||t.isSelecting)&&t.pagination,rows:t.paginatedItems,selecting:t.isSelecting,sortable:t.isSortable},on:{cell:function(e){return t.open(e.row,e.columnIndex)},input:t.onTableInput,option:t.option,paginate:t.paginate,select:t.onSelect}}),t.more?e("footer",[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.add()}}})],1):t._e()]]:[e("k-empty",{attrs:{icon:"list-bullet"}},[t._v(t._s(t.$t("fields.empty")))])]],2)],1)},[]).exports,_n={mixins:[Os],props:{autocomplete:{default:"tel"},placeholder:{default:()=>window.panel.t("tel.placeholder")}}};const Sn=lt({mixins:[As,_n]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-tel-input",attrs:{type:"tel"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const Cn=lt({mixins:[ze,Ke,_n],inheritAttrs:!1,props:{icon:{type:String,default:"phone"}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-tel-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"tel"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,On={mixins:[Os]};const An=lt({mixins:[As,On]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({class:["k-text-input",t.$attrs.class],attrs:{type:"text"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const Mn=lt({mixins:[ze,Ke,On,Ss],inheritAttrs:!1,computed:{inputType(){return this.$helper.isComponent(`k-${this.type}-input`)?this.type:"text"}},methods:{focus(){this.$refs.input.focus()},select(){this.$refs.input.select()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-text-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:t.inputType},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Dn={props:{buttons:{type:[Array,Boolean],default:!0},uploads:[Boolean,Object,Array]}};const En=lt({mixins:[Dn],emits:["command"],computed:{commands(){return{headlines:{label:this.$t("toolbar.button.headings"),icon:"title",dropdown:[{label:this.$t("toolbar.button.heading.1"),icon:"h1",click:()=>this.command("prepend","#")},{label:this.$t("toolbar.button.heading.2"),icon:"h2",click:()=>this.command("prepend","##")},{label:this.$t("toolbar.button.heading.3"),icon:"h3",click:()=>this.command("prepend","###")}]},bold:{label:this.$t("toolbar.button.bold"),icon:"bold",click:()=>this.command("toggle","**"),shortcut:"b"},italic:{label:this.$t("toolbar.button.italic"),icon:"italic",click:()=>this.command("toggle","*"),shortcut:"i"},link:{label:this.$t("toolbar.button.link"),icon:"url",click:()=>this.command("dialog","link"),shortcut:"k"},email:{label:this.$t("toolbar.button.email"),icon:"email",click:()=>this.command("dialog","email"),shortcut:"e"},file:{label:this.$t("toolbar.button.file"),icon:"attachment",click:()=>this.command("file"),dropdown:this.uploads?[{label:this.$t("toolbar.button.file.select"),icon:"check",click:()=>this.command("file")},{label:this.$t("toolbar.button.file.upload"),icon:"upload",click:()=>this.command("upload")}]:void 0},code:{label:this.$t("toolbar.button.code"),icon:"code",click:()=>this.command("toggle","`")},ul:{label:this.$t("toolbar.button.ul"),icon:"list-bullet",click:()=>this.command("insert",(t,e)=>e.split("\n").map(t=>"- "+t).join("\n"))},ol:{label:this.$t("toolbar.button.ol"),icon:"list-numbers",click:()=>this.command("insert",(t,e)=>e.split("\n").map((t,e)=>e+1+". "+t).join("\n"))}}},default:()=>["headlines","|","bold","italic","code","|","link","email","file","|","ul","ol"],layout(){if(!1===this.buttons)return[];const t=[],e=Array.isArray(this.buttons)?this.buttons:this.default,s={...this.commands,...window.panel.plugins.textareaButtons??{}};for(const i of e)if("|"===i)t.push("|");else if(s[i]){const e={...s[i],click:()=>{s[i].click?.call(this)}};t.push(e)}return t}},methods:{close(){this.$refs.toolbar.close()},command(t,...e){this.$emit("command",t,...e)},shortcut(t,e){const s=this.layout.find(e=>e.shortcut===t);s&&(e.preventDefault(),s.click?.())}}},function(){return(0,this._self._c)("k-toolbar",{ref:"toolbar",staticClass:"k-textarea-toolbar",attrs:{buttons:this.layout}})},[]).exports,jn={mixins:[Dn,Ie,J,tt,et,ot,at],props:{endpoints:Object,preselect:Boolean,size:String,value:String}};const In=lt({mixins:[Be,jn],emits:["focus","input","submit"],data:()=>({over:!1,selectionRange:null}),computed:{uploadOptions(){return{url:this.$panel.urls.api+"/"+this.endpoints.field+"/upload",multiple:!1,on:{cancel:async()=>await this.restoreSelection(),done:async t=>{await this.restoreSelection(),await this.insertUpload(t)}}}}},watch:{async value(){await this.$nextTick(),this.$library.autosize.update(this.$refs.input)}},async mounted(){await this.$nextTick(),this.$library.autosize(this.$refs.input),this.$props.autofocus&&this.focus(),this.$props.preselect&&this.select()},methods:{dialog(t){this.$panel.dialog.open({component:"k-toolbar-"+t+"-dialog",props:{value:this.parseSelection()},on:{cancel:async()=>await this.restoreSelection(),submit:async t=>{this.$panel.dialog.close(),await this.restoreSelection(),await this.insert(t)}}})},file(){this.$panel.dialog.open({component:"k-files-dialog",props:{endpoint:this.endpoints.field+"/files",multiple:!1},on:{cancel:async()=>await this.restoreSelection(),submit:async t=>{this.$panel.dialog.close(),await this.restoreSelection(),await this.insertFile(t)}}})},focus(){this.$refs.input.focus()},async insert(t){const e=this.$refs.input,s=e.value;if("function"==typeof t&&(t=t(e,this.selection())),this.focus(),document.execCommand("insertText",!1,t),e.value===s){const{start:s,end:i}=this.selectionRange,n=s===i?"end":"select";e.setRangeText(t,s,i,n)}return this.$emit("input",e.value),e.value},async insertFile(t){t?.length>0&&await this.insert(t.map(t=>t.dragText).join("\n\n"))},async insertUpload(t){await this.insertFile(t),await this.$panel.content.update()},onCommand(t,...e){if("function"!=typeof this[t])return console.warn(t+" is not a valid command");this[t](...e)},onDrop(t){if(this.uploads&&this.$helper.isUploadEvent(t))return this.$panel.upload.open(t.dataTransfer.files,this.uploadOptions);"text"===this.$panel.drag.type&&(this.focus(),this.insert(this.$panel.drag.data))},onFocus(t){this.$emit("focus",t)},onInput(t){this.$emit("input",t.target.value)},onOut(){this.$refs.input.blur(),this.over=!1},onOver(t){if(this.uploads&&this.$helper.isUploadEvent(t))return t.dataTransfer.dropEffect="copy",this.focus(),void(this.over=!0);"text"===this.$panel.drag.type&&(t.dataTransfer.dropEffect="copy",this.focus(),this.over=!0)},onSelectionChange(){this.selectionRange={start:this.$refs.input.selectionStart,end:this.$refs.input.selectionEnd}},onShortcut(t){!1!==this.buttons&&"Meta"!==t.key&&"Control"!==t.key&&this.$refs.toolbar?.shortcut(t.key,t)},onSubmit(t){return this.$emit("submit",t)},parseSelection(){const t=this.selection();if(0===t?.length)return{href:null,title:null};let e;e=this.$panel.config.kirbytext?/^\(link:\s*(?.*?)(?:\s*text:\s*(?.*?))?\)$/is:/^(\[(?.*?)\]\((?.*?)\))|(<(?.*?)>)$/is;const s=e.exec(t);return null!==s?{href:s.groups.url??s.groups.link,title:s.groups.text??null}:{href:null,title:t}},async prepend(t){return this.insert(t+" "+this.selection())},async restoreSelection(){this.selectionRange&&this.$refs.input.setSelectionRange(this.selectionRange.start,this.selectionRange.end),await this.$nextTick()},restoreSelectionCallback(){return async t=>{await this.restoreSelection(),t&&t()}},select(){this.$refs.select()},selection(){if(!this.selectionRange)return"";const{start:t,end:e}=this.selectionRange;return this.$refs.input.value.substring(t,e)},async toggle(t,e){e??=t;const s=this.selection();return s.startsWith(t)&&s.endsWith(e)?this.insert(s.slice(t.length).slice(0,s.length-t.length-e.length)):this.wrap(t,e)},upload(){this.$panel.upload.pick(this.uploadOptions)},async wrap(t,e){e??=t,await this.insert(t+this.selection()+e)}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-textarea-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-over":t.over,"data-size":t.size}},[e("div",{staticClass:"k-textarea-input-wrapper"},[t.buttons&&!t.disabled?e("k-textarea-toolbar",{ref:"toolbar",attrs:{buttons:t.buttons,disabled:t.disabled,uploads:t.uploads},on:{command:t.onCommand},nativeOn:{mousedown:function(t){t.preventDefault()}}}):t._e(),e("textarea",t._b({directives:[{name:"direction",rawName:"v-direction"}],ref:"input",staticClass:"k-textarea-input-native",attrs:{"data-font":t.font},on:{click:function(e){t.$refs.toolbar?.close()},focus:t.onFocus,input:t.onInput,keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:e.metaKey?t.onSubmit.apply(null,arguments):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:e.ctrlKey?t.onSubmit.apply(null,arguments):null},function(e){return e.metaKey?e.ctrlKey||e.shiftKey||e.altKey?null:t.onShortcut.apply(null,arguments):null},function(e){return e.ctrlKey?e.shiftKey||e.altKey||e.metaKey?null:t.onShortcut.apply(null,arguments):null}],dragover:t.onOver,dragleave:t.onOut,drop:t.onDrop,selectionchange:t.onSelectionChange}},"textarea",{autofocus:t.autofocus,disabled:t.disabled,id:t.id,minlength:t.minlength,name:t.name,placeholder:t.placeholder,required:t.required,spellcheck:t.spellcheck,value:t.value},!1))],1)])},[]).exports;const Bn=lt({mixins:[ze,Ke,jn,Ss],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-textarea-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"textarea"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Ln={props:{max:String,min:String,value:String}},Tn={mixins:[Ln],props:{display:{type:String,default:"HH:mm"},step:{type:Object,default:()=>({size:5,unit:"minute"})},type:{type:String,default:"time"}}};const Pn=lt({mixins:[Bs,Tn],computed:{inputType:()=>"time"}},null,null).exports;const qn=lt({mixins:[ze,Ke,Tn],inheritAttrs:!1,props:{icon:{type:String,default:"clock"},times:{type:Boolean,default:!0}},methods:{focus(){this.$refs.input.focus()},select(t){this.$emit("input",t),this.$refs.times?.close()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-time-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"time"},on:{input:function(e){return t.$emit("input",e??"")}},scopedSlots:t._u([t.times?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{disabled:t.disabled,icon:t.icon??"clock",title:t.$t("time.select")},on:{click:function(e){return t.$refs.times.toggle()}}}),e("k-dropdown-content",{ref:"times",attrs:{"align-x":"end"}},[e("k-timeoptions-input",{attrs:{display:t.display,value:t.value},on:{input:t.select}})],1)]},proxy:!0}:null],null,!0)},"k-input",t.$props,!1))],1)},[]).exports,Nn={mixins:[Ie],props:{checked:{type:Boolean},info:{type:String},label:{type:String},type:{default:"checkbox",type:String},value:{type:[Boolean,Number,String]},variant:{type:String}}};const Fn=lt({mixins:[Be,Nn]},function(){var t=this,e=t._self._c;return e("label",{class:["k-choice-input",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-disabled":t.disabled}},[e("input",t._b({class:["invisible"===t.variant?"sr-only":null,t.$attrs.class],attrs:{"data-variant":t.variant},on:{input:function(e){return t.$emit("input",e.target.checked)}}},"input",{autofocus:t.autofocus,id:t.id,checked:t.checked,disabled:t.disabled,name:t.name,required:t.required,type:t.type,value:t.value},!1)),t.label||t.info?e("span",{staticClass:"k-choice-input-label"},[e("span",{staticClass:"k-choice-input-label-text",domProps:{innerHTML:t._s(t.label)}}),t.info?e("span",{staticClass:"k-choice-input-label-info",domProps:{innerHTML:t._s(t.info)}}):t._e()]):t._e()])},[]).exports,zn={mixins:[Nn],props:{text:{type:[Array,String]},value:Boolean}};const Yn=lt({mixins:[Be,zn],computed:{labelText(){const t=this.text??[this.$t("off"),this.$t("on")];return Array.isArray(t)?this.value?t[1]:t[0]:t}},mounted(){this.$props.autofocus&&this.focus()},methods:{onEnter(t){"Enter"===t.key&&this.$el.click()},onInput(t){this.$emit("input",t)},select(){this.$el.focus()}}},function(){var t=this;return(0,t._self._c)("k-choice-input",t._b({class:["k-toggle-input",t.$attrs.class],style:t.$attrs.style,attrs:{checked:t.value,disabled:t.disabled,label:t.labelText,type:"checkbox",variant:"toggle"},on:{input:function(e){return t.$emit("input",e)}}},"k-choice-input",t.$props,!1))},[]).exports;const Rn=lt({mixins:[ze,Ke,zn],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-toggle-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"toggle"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Hn={mixins:[Ie],props:{columns:Number,grow:Boolean,labels:Boolean,options:Array,reset:Boolean,value:[String,Number,Boolean]}};const Un=lt({mixins:[Be,Hn],mounted(){this.$props.autofocus&&this.focus()},methods:{focus(){(this.$el.querySelector("input[checked]")||this.$el.querySelector("input"))?.focus()},onClick(t){t===this.value&&this.reset&&!this.required&&this.$emit("input","")},onInput(t){this.$emit("input",t)},select(){this.focus()}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-toggles-input",t.$attrs.class],style:t.$attrs.style,attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("k-input-validator",{attrs:{required:t.required,value:JSON.stringify(t.value)}},[e("ul",{style:{"--options":t.columns??t.options.length},attrs:{"data-labels":t.labels}},t._l(t.options,function(s,i){return e("li",{key:i},[e("input",{staticClass:"input-hidden",attrs:{id:t.id+"-"+i,"aria-label":s.text,disabled:t.disabled,name:t.id,type:"radio"},domProps:{value:s.value,checked:t.value===s.value},on:{click:function(e){return t.onClick(s.value)},change:function(e){return t.onInput(s.value)}}}),e("label",{attrs:{for:t.id+"-"+i,title:s.text}},[s.icon?e("k-icon",{attrs:{type:s.icon}}):t._e(),t.labels||!s.icon?e("span",{staticClass:"k-toggles-text",domProps:{innerHTML:t._s(s.text)}}):t._e()],1)])}),0)])],1)},[]).exports;const Vn=lt({mixins:[ze,Ke,Hn],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()},onInput(t){this.$emit("input",t)}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-toggles-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[t.options?.length?e("k-input",t._b({ref:"input",class:{grow:t.grow},attrs:{type:"toggles"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1)):e("k-empty",{attrs:{text:t.$t("options.none"),icon:"checklist"}})],1)},[]).exports,Kn={mixins:[Os],props:{autocomplete:{type:String,default:"url"},placeholder:{type:String,default:()=>window.panel.t("url.placeholder")}}};const Wn=lt({mixins:[As,Kn],watch:{value:{handler(){this.validate()},immediate:!0}},methods:{validate(){const t=[];this.value&&!1===this.$helper.url.isUrl(this.value,!0)&&t.push(this.$t("error.validation.url")),this.$el?.setCustomValidity(t.join(", "))}}},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-url-input",attrs:{type:"url"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const Jn=lt({mixins:[ze,Ke,Kn],inheritAttrs:!1,props:{link:{type:Boolean,default:!0},icon:{type:String,default:"url"}},computed:{isValidUrl(){return""!==this.value&&!0===this.$helper.url.isUrl(this.value,!0)}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-url-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"url"},on:{input:function(e){return t.$emit("input",e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.link&&t.isValidUrl?e("k-button",{staticClass:"k-input-icon-button",attrs:{icon:t.icon,link:t.value,title:t.$t("open"),tabindex:"-1",target:"_blank"}}):t._e()]},proxy:!0}])},"k-input",t.$props,!1))],1)},[]).exports;const Gn=lt({extends:Fs,type:"users",computed:{emptyProps(){return{icon:"users",text:this.empty??(this.multiple&&1!==this.max?this.$t("field.users.empty"):this.$t("field.users.empty.single"))}}}},null,null).exports;const Xn=lt({mixins:[ze,Ke,Ti,Ss],inheritAttrs:!1,computed:{counterValue(){const t=this.$helper.string.stripHTML(this.value??"");return this.$helper.string.unescapeHTML(t)}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-writer-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{after:t.after,before:t.before,icon:t.icon,type:"writer"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Zn={install(t){t.component("k-blocks-field",xs),t.component("k-checkboxes-field",Cs),t.component("k-color-field",Es),t.component("k-date-field",Ls),t.component("k-email-field",qs),t.component("k-entries-field",Ns),t.component("k-files-field",zs),t.component("k-gap-field",Ys),t.component("k-headline-field",Rs),t.component("k-info-field",Hs),t.component("k-layout-field",Xs),t.component("k-line-field",Zs),t.component("k-link-field",Qs),t.component("k-list-field",zi),t.component("k-multiselect-field",Xi),t.component("k-number-field",tn),t.component("k-object-field",en),t.component("k-pages-field",sn),t.component("k-password-field",rn),t.component("k-radio-field",cn),t.component("k-range-field",dn),t.component("k-select-field",fn),t.component("k-slug-field",kn),t.component("k-stats-field",$n),t.component("k-structure-field",wn),t.component("k-tags-field",Gi),t.component("k-text-field",Mn),t.component("k-textarea-field",Bn),t.component("k-tel-field",Cn),t.component("k-time-field",qn),t.component("k-toggle-field",Rn),t.component("k-toggles-field",Vn),t.component("k-url-field",Jn),t.component("k-users-field",Gn),t.component("k-writer-field",Xn)}},Qn={mixins:[un],props:{max:null,min:null,step:{default:.01,type:Number},tooltip:{default:!1,type:[Boolean,Object]}}};const to=lt({mixins:[pn,Qn]},function(){var t=this;return(0,t._self._c)("k-range-input",t._b({staticClass:"k-alpha-input",attrs:{min:0,max:1},on:{input:function(e){return t.$emit("input",e)}}},"k-range-input",t.$props,!1))},[]).exports,eo=["sun","mon","tue","wed","thu","fri","sat"];const so=lt({mixins:[Ie,js],data(){const t=this.$library.dayjs();return{maxdate:null,mindate:null,month:t.month(),selected:null,today:t,year:t.year()}},computed:{numberOfDays(){return this.toDate().daysInMonth()},firstWeekday(){const t=eo[this.toDate().day()];return this.weekdays.indexOf(t)},weekdays(){const t=this.$panel.translation.weekday;return[...eo.slice(t),...eo.slice(0,t)]},weeks(){return Math.ceil((this.numberOfDays+this.firstWeekday)/7)},monthnames(){return["january","february","march","april","may","june","july","august","september","october","november","december"].map(t=>this.$t("months."+t))},months(){var t=[];return this.monthnames.forEach((e,s)=>{t.push({value:s,text:e})}),t},years(){const t=this.year-20,e=this.year+20;return this.toOptions(t,e)}},watch:{max:{handler(t,e){t!==e&&(this.maxdate=this.$library.dayjs.interpret(t,"date"))},immediate:!0},min:{handler(t,e){t!==e&&(this.mindate=this.$library.dayjs.interpret(t,"date"))},immediate:!0},value:{handler(t,e){t!==e&&(this.selected=this.$library.dayjs.interpret(t,"date"),this.show(this.selected))},immediate:!0}},methods:{days(t){let e=[];const s=7*(t-1)+1,i=s+7;for(let n=s;nthis.numberOfDays;e.push(s?"":t)}return e},isDisabled(t){const e=this.toDate(t);return this.disabled||e.isBefore(this.mindate,"day")||e.isAfter(this.maxdate,"day")},isSelected(t){return this.toDate(t).isSame(this.selected,"day")},isToday(t){return this.toDate(t).isSame(this.today,"day")},onNext(){const t=this.toDate().add(1,"month");this.show(t)},onPrev(){const t=this.toDate().subtract(1,"month");this.show(t)},select(t){this.$emit("input",t?.toISO("date")??null)},show(t){this.month=(t??this.today).month(),this.year=(t??this.today).year()},toDate(t=1,e){return this.$library.dayjs(`${this.year}-${(e??this.month)+1}-${t}`)},toOptions(t,e){for(var s=[],i=t;i<=e;i++)s.push({value:i,text:this.$helper.pad(i)});return s}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-calendar-input",t.$attrs.class],style:t.$attrs.style,on:{click:function(t){t.stopPropagation()}}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("date.select")))]),e("nav",[e("k-button",{attrs:{title:t.$t("prev"),icon:"angle-left"},on:{click:t.onPrev}}),e("span",{staticClass:"k-calendar-selects"},[e("k-select-input",{attrs:{"aria-label":t.$t("month"),autofocus:t.autofocus,options:t.months,empty:!1,required:!0,value:t.month},on:{input:function(e){t.month=Number(e)}}}),e("k-select-input",{attrs:{"aria-label":t.$t("year"),options:t.years,empty:!1,required:!0,value:t.year},on:{input:function(e){t.year=Number(e)}}})],1),e("k-button",{attrs:{title:t.$t("next"),icon:"angle-right"},on:{click:t.onNext}})],1),e("table",{key:t.year+"-"+t.month,staticClass:"k-calendar-table"},[e("thead",[e("tr",t._l(t.weekdays,function(s){return e("th",{key:"weekday_"+s},[t._v(" "+t._s(t.$t("days."+s))+" ")])}),0)]),e("tbody",t._l(t.weeks,function(s){return e("tr",{key:"week_"+s},t._l(t.days(s),function(s,i){return e("td",{key:"day_"+i,staticClass:"k-calendar-day",attrs:{"aria-current":!!t.isToday(s)&&"date","aria-selected":!!t.isSelected(s)&&"date"}},[s?e("k-button",{attrs:{disabled:t.isDisabled(s),text:s},on:{click:function(e){t.select(t.toDate(s))}}}):t._e()],1)}),0)}),0),e("tfoot",[e("tr",[e("td",{staticClass:"k-calendar-today",attrs:{colspan:"7"}},[e("k-button",{attrs:{disabled:t.disabled,text:t.$t("today")},on:{click:function(e){t.show(t.today),t.select(t.today)}}})],1)])])]),e("input",{staticClass:"input-hidden",attrs:{id:t.id,disabled:t.disabled,min:t.min,max:t.max,name:t.name,required:t.required,tabindex:"-1",type:"date"},domProps:{value:t.value}})])},[]).exports;const io=lt({extends:Fn},null,null).exports;const no=lt({mixins:[ln,{mixins:[an],props:{format:{type:String,default:"hex",validator:t=>["hex","rgb","hsl"].includes(t)},value:{type:String}}}],computed:{choices(){return this.options.map(t=>({...t,title:t.text??t.value,value:this.colorToString(t.value)}))}},methods:{colorToString(t){try{return this.$library.colors.toString(t,this.format)}catch{return t}}}},function(){var t=this,e=t._self._c;return t.choices.length?e("fieldset",{staticClass:"k-coloroptions-input",attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("ul",t._l(t.choices,function(s,i){return e("li",{key:i},[e("label",{attrs:{title:s.title}},[e("input",{staticClass:"input-hidden",attrs:{autofocus:t.autofocus&&0===i,disabled:t.disabled,name:t.name??t.id,required:t.required,type:"radio"},domProps:{checked:s.value===t.value,value:s.value},on:{click:function(e){return t.toggle(s.value)},input:function(e){return t.$emit("input",s.value)}}}),e("k-color-frame",{attrs:{color:s.value}})],1)])}),0)]):t._e()},[]).exports;const oo=lt({mixins:[Be,{mixins:[Ie,it],props:{alpha:{default:!0,type:Boolean},format:{default:"hex",type:String,validator:t=>["hex","rgb","hsl"].includes(t)},value:{type:[Object,String]}}}],data:()=>({color:{h:0,s:0,v:1,a:1},formatted:null}),computed:{coords(){return this.value?{x:100*this.color.s,y:100*(1-this.color.v)}:null},hsl(){try{const t=this.$library.colors.convert(this.color,"hsl");return{h:t.h,s:(100*t.s).toFixed()+"%",l:(100*t.l).toFixed()+"%",a:t.a}}catch{return{h:0,s:"0%",l:"0%",a:1}}}},watch:{value:{handler(t,e){if(t===e||t===this.formatted)return;const s=this.$library.colors.parseAs(t??"","hsv");s?(this.formatted=this.$library.colors.toString(s,this.format),this.color=s):(this.formatted=null,this.color={h:0,s:0,v:1,a:1})},immediate:!0}},methods:{between:(t,e,s)=>Math.min(Math.max(t,e),s),emit(){return this.formatted=this.$library.colors.toString(this.color,this.format),this.$emit("input",this.formatted)},focus(){this.$refs.coords.focus()},setAlpha(t){this.color.a=this.alpha?this.between(Number(t),0,1):1,this.emit()},setCoords(t){if(!t)return this.$emit("input","");const e=Math.round(t.x),s=Math.round(t.y);this.color.s=this.between(e/100,0,1),this.color.v=this.between(1-s/100,0,1),this.emit()},setHue(t){this.color.h=this.between(Number(t),0,360),this.emit()}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-colorpicker-input",t.$attrs.class],style:{"--h":t.hsl.h,"--s":t.hsl.s,"--l":t.hsl.l,"--a":t.hsl.a,...t.$attrs.style}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("color")))]),e("k-coords-input",{ref:"coords",attrs:{autofocus:t.autofocus,disabled:t.disabled,required:t.required,value:t.coords},on:{input:function(e){return t.setCoords(e)}}}),e("label",{attrs:{"aria-label":t.$t("hue")}},[e("k-hue-input",{attrs:{disabled:t.disabled,required:t.required,value:t.color.h},on:{input:function(e){return t.setHue(e)}}})],1),t.alpha?e("label",{attrs:{"aria-label":t.$t("alpha")}},[e("k-alpha-input",{attrs:{disabled:t.disabled,required:t.required,value:t.color.a},on:{input:function(e){return t.setAlpha(e)}}})],1):t._e(),e("k-coloroptions-input",{attrs:{disabled:t.disabled,format:t.format,options:t.options,required:t.required,value:t.value},on:{input:function(e){return t.$emit("input",e)}}}),e("input",{staticClass:"input-hidden",attrs:{name:t.name,required:t.required,tabindex:"-1",type:"text"},domProps:{value:t.formatted}})],1)},[]).exports;const ro=lt({mixins:[Be,{mixins:[Ie],props:{reset:{default:!0,type:Boolean},value:{default:()=>({x:0,y:0}),type:Object}}}],data:()=>({x:0,y:0}),watch:{value:{handler(t){const e=this.parse(t);this.x=e?.x??0,this.y=e?.y??0},immediate:!0}},methods:{focus(){this.$el.querySelector("button")?.focus()},getCoords:(t,e)=>({x:Math.min(Math.max(t.clientX-e.left,0),e.width),y:Math.min(Math.max(t.clientY-e.top,0),e.height)}),onDelete(){this.reset&&!this.required&&this.$emit("input",null)},onDrag(t){if(0!==t.button)return;const e=t=>this.onMove(t),s=()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",e),window.addEventListener("mouseup",s)},onEnter(){this.$el.form?.requestSubmit()},onInput(t,e){if(t.preventDefault(),t.stopPropagation(),this.disabled)return!1;this.x=Math.min(Math.max(parseFloat(e.x??this.x??0),0),100),this.y=Math.min(Math.max(parseFloat(e.y??this.y??0),0),100),this.$emit("input",{x:this.x,y:this.y})},onKeys(t){const e=t.shiftKey?10:1,s={ArrowUp:{y:this.y-e},ArrowDown:{y:this.y+e},ArrowLeft:{x:this.x-e},ArrowRight:{x:this.x+e}};s[t.key]&&this.onInput(t,s[t.key])},async onMove(t){const e=this.$el.getBoundingClientRect(),s=this.getCoords(t,e),i=s.x/e.width*100,n=s.y/e.height*100;this.onInput(t,{x:i,y:n}),await this.$nextTick(),this.focus()},parse(t){if("object"==typeof t)return t;const e={"top left":{x:0,y:0},"top center":{x:50,y:0},"top right":{x:100,y:0},"center left":{x:0,y:50},center:{x:50,y:50},"center center":{x:50,y:50},"center right":{x:100,y:50},"bottom left":{x:0,y:100},"bottom center":{x:50,y:100},"bottom right":{x:100,y:100}};if(e[t])return e[t];const s=t.split(",").map(t=>t.trim());return{x:s[0],y:s[1]??0}}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-coords-input",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-disabled":t.disabled,"data-empty":!t.value},on:{mousedown:t.onDrag,click:t.onMove,keydown:t.onKeys}},[t._t("default"),e("button",{staticClass:"k-coords-input-thumb",style:{left:`${t.x}%`,top:`${t.y}%`},attrs:{id:t.id,autofocus:t.autofocus,disabled:t.disabled},on:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.onEnter.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete","Del"])?null:t.onDelete.apply(null,arguments)}]}}),e("input",{staticClass:"input-hidden",attrs:{name:t.name,required:t.required,tabindex:"-1",type:"text"},domProps:{value:t.value?[t.value.x,t.value.y]:null}})],2)},[]).exports,ao={mixins:[un],props:{max:null,min:null,step:{default:1,type:Number},tooltip:{default:!1,type:[Boolean,Object]}}};const lo=lt({mixins:[pn,ao]},function(){var t=this;return(0,t._self._c)("k-range-input",t._b({staticClass:"k-hue-input",attrs:{min:0,max:360},on:{input:function(e){return t.$emit("input",e)}}},"k-range-input",t.$props,!1))},[]).exports;const co=lt({mixins:[As,{mixins:[Os],props:{autocomplete:null,pattern:null,spellcheck:null,placeholder:{default:()=>window.panel.t("search")+" …",type:String}}}]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-search-input",attrs:{spellcheck:!1,autocomplete:"off",type:"search"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const uo=lt({mixins:[Be,{mixins:[Ie,Ln]}],props:{display:{type:String,default:"HH:mm"},value:String},computed:{day(){return this.formatTimes([6,7,8,9,10,11,"-",12,13,14,15,16,17])},night(){return this.formatTimes([18,19,20,21,22,23,"-",0,1,2,3,4,5])}},methods:{focus(){this.$el.querySelector("button").focus()},formatTimes(t){return t.map(t=>{if("-"===t)return t;const e=this.$library.dayjs(t+":00","H:mm");return{display:e.format(this.display),select:e.toISO("time")}})},select(t){this.$emit("input",t)}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-timeoptions-input",t.$attrs.class],style:t.$attrs.style},[e("div",[e("h3",[e("k-icon",{attrs:{type:"sun"}}),t._v(" "),e("span",{staticClass:"sr-only"},[t._v(t._s(t.$t("day")))])],1),e("ul",t._l(t.day,function(s,i){return e("li",{key:s.select},["-"===s?e("hr"):e("k-button",{attrs:{autofocus:t.autofocus&&0===i,disabled:t.disabled,selected:s.select===t.value&&"time"},on:{click:function(e){return t.select(s.select)}}},[t._v(" "+t._s(s.display)+" ")])],1)}),0)]),e("div",[e("h3",[e("k-icon",{attrs:{type:"moon"}}),t._v(" "),e("span",{staticClass:"sr-only"},[t._v(t._s(t.$t("night")))])],1),e("ul",t._l(t.night,function(s){return e("li",{key:s.select},["-"===s?e("hr"):e("k-button",{attrs:{disabled:t.disabled,selected:s.select===t.value&&"time"},on:{click:function(e){return t.select(s.select)}}},[t._v(" "+t._s(s.display)+" ")])],1)}),0)]),e("input",{staticClass:"input-hidden",attrs:{id:t.id,disabled:t.disabled,min:t.min,max:t.max,name:t.name,required:t.required,tabindex:"-1",type:"time"},domProps:{value:t.value}})])},[]).exports;class po extends HTMLElement{static formAssociated=!0;static get observedAttributes(){return["min","max","required","value"]}attributeChangedCallback(t,e,s){this[t]=s}constructor(){super(),this.internals=this.attachInternals(),this.entries=[],this.max=null,this.min=null,this.required=!1}connectedCallback(){this.tabIndex=0;const t=this.getAttribute("id");t&&(this.input.setAttribute("id",t),this.removeAttribute("id")),this.validate()}checkValidity(){return this.internals.checkValidity()}get form(){return this.internals.form}has(t){return this.entries.includes(t)}get input(){return this.querySelector(this.getAttribute("anchor"))??this.querySelector("input, textarea, select, button")??this.querySelector(":scope > *")}get isEmpty(){return 0===this.selected.length}get name(){return this.getAttribute("name")}reportValidity(){return this.internals.reportValidity()}get type(){return this.localName}validate(){const t=parseInt(this.getAttribute("max")),e=parseInt(this.getAttribute("min"));this.hasAttribute("required")&&"false"!==this.getAttribute("required")&&0===this.entries.length?this.internals.setValidity({valueMissing:!0},window.panel.$t("error.validation.required"),this.input):this.hasAttribute("min")&&this.entries.lengtht?this.internals.setValidity({rangeOverflow:!0},window.panel.$t("error.validation.max",{max:t}),this.input):this.internals.setValidity({})}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get value(){return JSON.stringify(this.entries??[])}set value(t){this.entries=("string"==typeof t?JSON.parse(t):[])??[],this.validate()}get willValidate(){return this.internals.willValidate}}const ho=lt({extends:"k-writer-input",created(){window.panel.deprecated("`k-writer` will be removed in a future version. Use `k-writer-input` instead.")}},null,null).exports,mo={install(t){customElements.define("k-input-validator",po),t.component("k-alpha-input",to),t.component("k-calendar-input",so),t.component("k-checkbox-input",io),t.component("k-checkboxes-input",_s),t.component("k-choice-input",Fn),t.component("k-colorname-input",Ds),t.component("k-coloroptions-input",no),t.component("k-colorpicker-input",oo),t.component("k-coords-input",ro),t.component("k-date-input",Bs),t.component("k-email-input",Ps),t.component("k-hue-input",lo),t.component("k-list-input",Fi),t.component("k-multiselect-input",Ki),t.component("k-number-input",Qi),t.component("k-password-input",on),t.component("k-picklist-input",Pe),t.component("k-radio-input",ln),t.component("k-range-input",pn),t.component("k-search-input",co),t.component("k-select-input",mn),t.component("k-slug-input",bn),t.component("k-string-input",As),t.component("k-tags-input",Ji),t.component("k-tel-input",Sn),t.component("k-text-input",An),t.component("k-textarea-input",In),t.component("k-time-input",Pn),t.component("k-timeoptions-input",uo),t.component("k-toggle-input",Yn),t.component("k-toggles-input",Un),t.component("k-url-input",Wn),t.component("k-writer-input",Pi),t.component("k-calendar",so),t.component("k-times",uo),t.component("k-writer",ho)}};const fo=lt({mixins:[It],inheritAttrs:!1,props:{cancelButton:{default:!1},label:{default(){return this.$t("field.layout.select")},type:String},layouts:{type:Array},selector:Object,submitButton:{default:!1},value:{type:Array}},emits:["cancel","input","submit"]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({class:["k-layout-selector",t.$attrs.class],style:t.$attrs.style,attrs:{size:t.selector?.size??"medium"},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",t.value)}}},"k-dialog",t.$props,!1),[e("h3",{staticClass:"k-label"},[t._v(t._s(t.label))]),e("k-navigate",{staticClass:"k-layout-selector-options",style:{"--columns":Number(t.selector?.columns??3)},attrs:{axis:"x"}},t._l(t.layouts,function(s,i){return e("button",{key:i,staticClass:"k-layout-selector-option",attrs:{"aria-current":t.value===s,"aria-label":s.join(","),value:s},on:{click:function(e){return t.$emit("input",s)}}},[e("k-grid",{attrs:{"aria-hidden":""}},t._l(s,function(t,s){return e("k-column",{key:s,attrs:{width:t}})}),1)],1)}),0)],1)},[]).exports,go={install(t){t.component("k-layout",Ws),t.component("k-layout-column",Vs),t.component("k-layouts",Gs),t.component("k-layout-selector",fo)}},bo={inheritAttrs:!1,props:{column:{default:()=>({}),type:Object},field:{default:()=>({}),type:Object},value:{}}};const ko=lt({mixins:[bo],props:{html:{type:Boolean},value:{default:()=>[],type:[Array,String]}},computed:{tags(){let t=this.value;const e=this.column.options??this.field.options??[];return"string"==typeof t&&(t=t.split(",")),(t??[]).map(t=>{"string"==typeof t&&(t={value:t,text:t});for(const s of e)s.value===t.value&&(t.text=s.text);return t})}}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-tags-field-preview","k-tags",t.$options.class,t.$attrs.class],style:t.$attrs.style},t._l(t.tags,function(s,i){return e("li",{key:s.id??s.value??s.text??i},[e("k-tag",{attrs:{html:t.html,image:s.image,link:s.link,text:s.text,element:"div",theme:"light"}})],1)}),0)},[]).exports;const yo=lt({extends:ko,inheritAttrs:!1,class:"k-array-field-preview",computed:{tags(){return[{text:1===this.value.length?`1 ${this.$t("entry")}`:`${this.value.length} ${this.$t("entries")}`}]}}},null,null).exports,vo={props:{html:{type:Boolean}}};const $o=lt({mixins:[vo],inheritAttrs:!1,props:{bubbles:[Array,String]},computed:{items(){let t=this.bubbles;return"string"==typeof t&&(t=t.split(",")),t.map(t=>"string"===t?{text:t}:t)}},mounted(){window.panel.deprecated(" will be removed in a future version. Use instead.")}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-bubbles",t.$attrs.class],style:t.$attrs.style},t._l(t.items,function(s,i){return e("li",{key:i},[e("k-bubble",t._b({attrs:{html:t.html}},"k-bubble",s,!1))],1)}),0)},[]).exports;const xo=lt({mixins:[bo,vo],props:{value:{default:()=>[],type:[Array,String]}},computed:{bubbles(){let t=this.value;const e=this.column.options??this.field.options??[];return"string"==typeof t&&(t=t.split(",")),(t??[]).map(t=>{"string"==typeof t&&(t={value:t,text:t});for(const s of e)s.value===t.value&&(t.text=s.text);return t})}},mounted(){window.panel.deprecated(" will be removed in a future version. Use instead.")}},function(){var t=this,e=t._self._c;return e("div",{class:["k-bubbles-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style},[e("k-bubbles",{attrs:{bubbles:t.bubbles,html:t.html}})],1)},[]).exports;const wo=lt({mixins:[bo],props:{value:String},computed:{text(){if(!this.value)return;const t=this.$library.colors.toString(this.value,this.field.format,this.field.alpha),e=this.field.options?.find(e=>this.$library.colors.toString(e.value,this.field.format,this.field.alpha)===t);return e?e.text:null}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-color-field-preview",t.$attrs.class],style:t.$attrs.style},[e("k-color-frame",{attrs:{color:t.value}}),t.text?[t._v(" "+t._s(t.text)+" ")]:t._e()],2)},[]).exports;const _o=lt({mixins:[bo],computed:{text(){return this.value}}},function(){var t=this;return(0,t._self._c)("p",{class:["k-text-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style},[t._v(" "+t._s(t.column.before)+" "),t._t("default",function(){return[t._v(t._s(t.text))]}),t._v(" "+t._s(t.column.after)+" ")],2)},[]).exports;const So=lt({extends:_o,props:{value:String},class:"k-date-field-preview",computed:{display(){return this.column.display??this.field.display},format(){let t=this.display??"YYYY-MM-DD";return this.time?.display&&(t+=" "+this.time.display),t},parsed(){return this.$library.dayjs(this.value)},text(){return!1===this.parsed.isValid()?this.value:this.parsed?.format(this.format)},time(){return this.column.time??this.field.time}}},null,null).exports;const Co=lt({mixins:[bo],props:{value:[String,Object]},computed:{link(){return"object"==typeof this.value?this.value.href:this.value},text(){return"object"==typeof this.value?this.value.text:this.link}}},function(){var t=this,e=t._self._c;return e("p",{class:["k-url-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style,attrs:{"data-link":Boolean(t.link)}},[t._v(" "+t._s(t.column.before)+" "),e("k-link",{attrs:{to:t.link},nativeOn:{click:function(t){t.stopPropagation()}}},[e("span",[t._v(t._s(t.text))])]),t._v(" "+t._s(t.column.after)+" ")],1)},[]).exports;const Oo=lt({extends:Co,class:"k-email-field-preview"},null,null).exports;const Ao=lt({extends:ko,class:"k-files-field-preview",props:{html:{type:Boolean,default:!0}},computed:{tags(){return this.value.map(t=>({text:t.filename,link:t.link,image:t.image}))}}},null,null).exports;const Mo=lt({mixins:[bo],props:{value:Object},computed:{status(){return{...this.$helper.page.status(this.value?.status),...this.value}}}},function(){var t=this,e=t._self._c;return t.value?e("k-button",t._b({class:["k-flag-field-preview",t.$attrs.class],style:t.$attrs.style,attrs:{size:"md"}},"k-button",t.status,!1)):t._e()},[]).exports;const Do=lt({mixins:[bo],props:{value:String},computed:{html(){return this.value}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-html-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style},[t._v(" "+t._s(t.column.before)+" "),e("k-text",{attrs:{html:t.html}}),t._v(" "+t._s(t.column.after)+" ")],1)},[]).exports;const Eo=lt({mixins:[bo],props:{value:[Object]}},function(){var t=this,e=t._self._c;return t.value?e("k-item-image",{class:["k-image-field-preview",t.$attrs.class],style:t.$attrs.style,attrs:{image:t.value}}):t._e()},[]).exports;const jo=lt({mixins:[bo],props:{removable:Boolean,type:String},emits:["remove"],data:()=>({model:null}),computed:{currentType(){return this.type??this.detected.type},detected(){return this.$helper.link.detect(this.value)},isLink(){return["url","email","tel"].includes(this.currentType)}},watch:{detected:{async handler(t,e){t!==e&&(this.model=await this.$helper.link.preview(this.detected))},immediate:!0},type(){this.model=null}}},function(){var t=this,e=t._self._c;return e("div",{class:{"k-link-field-preview":!0,"k-url-field-preview":t.isLink,[t.$attrs.class]:!0},style:t.$attrs.style},["page"===t.currentType||"file"===t.currentType?[t.model?[e("k-tag",{attrs:{image:{...t.model.image,cover:!0},removable:t.removable,text:t.model.label},on:{remove:function(e){return t.$emit("remove",e)}}})]:t._t("placeholder")]:t.isLink?[e("p",{staticClass:"k-text"},[e("a",{attrs:{href:t.value,target:"_blank"}},[e("span",[t._v(t._s(t.detected.link))])])])]:[t._v(" "+t._s(t.detected.link)+" ")]],2)},[]).exports;const Io=lt({extends:ko,class:"k-object-field-preview",props:{value:[Array,Object]},computed:{tags(){return this.value?[{text:"{ ... }"}]:[]}}},null,null).exports;const Bo=lt({extends:ko,inheritAttrs:!1,class:"k-pages-field-preview",props:{html:{type:Boolean,default:!0}}},null,null).exports;const Lo=lt({mixins:[bo],props:{html:{type:Boolean},value:String}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-tag-field-preview","k-tags-field-preview","k-tags",t.$options.class,t.$attrs.class],style:t.$attrs.style},[e("li",[e("k-tag",{attrs:{html:t.html,text:t.value,theme:"light"},nativeOn:{click:function(t){t.stopPropagation()}}})],1)])},[]).exports;const To=lt({extends:So,class:"k-time-field-preview",computed:{format(){return this.display??"HH:mm"},parsed(){return this.$library.dayjs.iso(this.value,"time")},text(){return this.parsed?.format(this.format)}}},null,null).exports;const Po=lt({mixins:[bo],props:{value:Boolean},emits:["input"],computed:{isEditable(){return!0!==this.field.disabled},text(){return!1!==this.column.text?this.field.text:null}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-toggle-field-preview",t.$attrs.class],style:t.$attrs.style},[e("k-toggle-input",{attrs:{disabled:!t.isEditable,text:t.text,value:t.value},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{click:function(e){t.isEditable&&e.stopPropagation()}}})],1)},[]).exports;const qo=lt({extends:ko,class:"k-users-field-preview",props:{html:{type:Boolean,default:!0}},computed:{tags(){return this.value.map(t=>({text:t.username??t.email,link:t.link,image:t.image}))}}},null,null).exports,No={install(t){t.component("k-array-field-preview",yo),t.component("k-bubbles-field-preview",xo),t.component("k-color-field-preview",wo),t.component("k-date-field-preview",So),t.component("k-email-field-preview",Oo),t.component("k-files-field-preview",Ao),t.component("k-flag-field-preview",Mo),t.component("k-html-field-preview",Do),t.component("k-image-field-preview",Eo),t.component("k-link-field-preview",jo),t.component("k-object-field-preview",Io),t.component("k-pages-field-preview",Bo),t.component("k-tag-field-preview",Lo),t.component("k-tags-field-preview",ko),t.component("k-text-field-preview",_o),t.component("k-toggle-field-preview",Po),t.component("k-time-field-preview",To),t.component("k-url-field-preview",Co),t.component("k-users-field-preview",qo),t.component("k-list-field-preview",Do),t.component("k-writer-field-preview",Do),t.component("k-checkboxes-field-preview",ko),t.component("k-multiselect-field-preview",ko),t.component("k-radio-field-preview",ko),t.component("k-select-field-preview",ko),t.component("k-toggles-field-preview",ko)}};const Fo=lt({mixins:[{props:{buttons:{type:Array,default:()=>[]},theme:{type:String,default:"light"}}}],methods:{close(){for(const t in this.$refs){const e=this.$refs[t][0];"function"==typeof e?.close&&e.close()}}}},function(){var t=this,e=t._self._c;return t.buttons.length?e("nav",{staticClass:"k-toolbar",attrs:{"data-theme":t.theme}},[t._l(t.buttons,function(s,i){return["|"===s?e("hr",{key:"separator-"+i}):s.when??1?e("k-button",{key:i,class:["k-toolbar-button",s.class],attrs:{current:s.current,disabled:s.disabled,icon:s.icon,title:s.label??s.title,tabindex:"0"},on:{click:function(e){s.dropdown?.length?t.$refs[i+"-dropdown"][0].toggle():s.click?.(e)}},nativeOn:{keydown:function(t){s.key?.(t)}}}):t._e(),(s.when??1)&&s.dropdown?.length?e("k-dropdown-content",{key:i+"-dropdown",ref:i+"-dropdown",refInFor:!0,attrs:{options:s.dropdown,theme:"dark"===t.theme?"light":"dark"}}):t._e()]})],2):t._e()},[]).exports;const zo=lt({props:{editor:{required:!0,type:Object},inline:{default:!0,type:Boolean},marks:{default:()=>["bold","italic","underline","strike","code","|","link","email","|","clear"],type:[Array,Boolean]},nodes:{default:!0,type:[Array,Boolean]}},emits:["command"],data:()=>({isOpen:!1,position:{x:0,y:0}}),computed:{activeDropdownEntry(){return Object.values(this.dropdownEntries).findLast(this.isNodeActive)},buttons(){const t=[];this.hasDropdownEntries&&t.push(this.dropdownInlineButton),this.hasDropdownEntries&&this.hasInlineEntries&&t.push("|");for(const[e,s]of Object.entries(this.inlineEntries))t.push(this.inlineButton(s,e));return t},dropdown(){const t=[],e=Object.entries(this.dropdownEntries);let s=0;for(const[i,n]of e)t.push(this.dropdownButton(n,i)),!0===n.separator&&s!==e.length-1&&t.push("-"),s++;return t},dropdownInlineButton(){return{current:Boolean(this.activeDropdownEntry),dropdown:this.dropdown,icon:this.activeDropdownEntry?.icon??"title"}},dropdownEntries(){if(!1===this.nodes)return{};const t=this.nodesForBlock;return"block+"!==this.editor.nodes.doc.content&&t.paragraph&&delete t.paragraph,!0===this.nodes?t:Object.fromEntries(this.nodes.filter(e=>t[e]).map(e=>[e,t[e]]))},hasDropdownEntries(){return this.$helper.object.length(this.dropdownEntries)>1},hasInlineEntries(){return this.$helper.object.length(this.inlineEntries)>0},inlineEntries(){let t={};if(!0===this.nodes)t=this.nodesForInline;else if(!1!==this.nodes)for(const s of this.nodes)this.nodesForInline[s]&&(t[s]=this.nodesForInline[s]);this.$helper.object.length(t)>0&&(t["divider-inline-nodes"]="|");const e=this.editor.buttons("mark");if(!0===this.marks)return{...t,...e};if(!1!==this.marks)for(const[s,i]of this.marks.entries())"|"===i?t["divider"+s]="|":e[i]&&(t[i]=e[i]);return t},nodesForBlock(){return this.$helper.object.filter(this.editor.buttons("node"),t=>!0!==t.inline)},nodesForInline(){return this.$helper.object.filter(this.editor.buttons("node"),t=>!0===t.inline)},positions(){return!1===this.inline?null:{top:this.position.y+"px",left:this.position.x+"px"}},theme(){return this.inline?"dark":"light"}},methods:{close(t){t&&!1!==this.$el.contains(t.relatedTarget)||(this.isOpen=!1)},command(t,...e){this.$emit("command",t,...e)},dropdownButton(t,e){return{current:this.activeDropdownEntry?.id===t.id,disabled:!1===this.activeDropdownEntry?.when?.includes(t.name),icon:t.icon,label:t.label,click:()=>this.command(t.command??e)}},inlineButton(t,e){return"|"===t?"|":{current:this.isMarkActive({...t,name:e}),icon:t.icon,label:t.label,click:s=>this.command(t.command??e,s)}},isMarkActive(t){return this.editor.activeMarks.includes(t.name)},isNodeActive(t){if(!1===this.editor.activeNodes.includes(t.name))return!1;if(t.attrs){if(void 0===Object.values(this.editor.activeNodeAttrs).find(e=>JSON.stringify(e)===JSON.stringify(t.attrs)))return!1}return!0},open(){0!==this.buttons.length&&(this.isOpen=!0,this.inline&&this.$nextTick(this.setPosition))},setPosition(){const t=this.$el.getBoundingClientRect(),e=this.editor.element.getBoundingClientRect(),s=document.querySelector(".k-panel-menu").getBoundingClientRect(),{from:i,to:n}=this.editor.selection,o=this.editor.view.coordsAtPos(i),r=this.editor.view.coordsAtPos(n,!0),a=new DOMRect(o.left,o.top,r.right-o.left,r.bottom-o.top);let l=a.x-e.x+a.width/2-t.width/2,c=a.y-e.y-t.height-5;if(t.widthe.width&&(l=e.width-t.width);else{const i=e.x+l,n=i+t.width,o=s.width+20,r=20;iwindow.innerWidth-r&&(l-=n-(window.innerWidth-r))}this.position={x:l,y:c}}}},function(){var t=this,e=t._self._c;return t.isOpen||!t.inline?e("k-toolbar",{ref:"toolbar",staticClass:"k-writer-toolbar",style:t.positions,attrs:{buttons:t.buttons,"data-inline":t.inline,theme:t.theme}}):t._e()},[]).exports;const Yo=lt({extends:Tt,props:{fields:{default:()=>{const t=Tt.props.fields.default();return t.title.label=window.panel.t("link.text"),t}}},methods:{submit(){const t=this.values.href??"",e=this.values.title??"";return this.$panel.config.kirbytext?e?.length>0?this.$emit("submit",`(email: ${t} text: ${e})`):this.$emit("submit",`(email: ${t})`):e?.length>0?this.$emit("submit",`[${e}](mailto:${t})`):this.$emit("submit",`<${t}>`)}}},null,null).exports;const Ro=lt({extends:Wt,props:{fields:{default:()=>({href:{label:window.panel.t("link"),type:"link",placeholder:window.panel.t("url.placeholder"),icon:"url"},title:{label:window.panel.t("link.text"),type:"text",icon:"title"}})}},methods:{submit(){const t=this.values.href??"",e=this.values.title??"";return this.$panel.config.kirbytext?e?.length>0?this.$emit("submit",`(link: ${t} text: ${e})`):this.$emit("submit",`(link: ${t})`):e?.length>0?this.$emit("submit",`[${e}](${t})`):this.$emit("submit",`<${t}>`)}}},null,null).exports,Ho={install(t){t.component("k-toolbar",Fo),t.component("k-textarea-toolbar",En),t.component("k-writer-toolbar",zo),t.component("k-toolbar-email-dialog",Yo),t.component("k-toolbar-link-dialog",Ro)}},Uo={install(t){t.component("k-counter",Fe),t.component("k-field",Ye),t.component("k-fieldset",Re),t.component("k-form",He),t.component("k-form-controls",Ve),t.component("k-input",We),t.use($s),t.use(mo),t.use(Zn),t.use(go),t.use(No),t.use(Ho)}},Vo={},Ko=function(t,e,s){let i=Promise.resolve();if(e&&e.length>0){let t=function(t){return Promise.all(t.map(t=>Promise.resolve(t).then(t=>({status:"fulfilled",value:t}),t=>({status:"rejected",reason:t}))))};const n=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),r=o?.nonce||o?.getAttribute("nonce");i=t(e.map(t=>{if(t=function(t,e){return new URL(t,e).href}(t,s),t in Vo)return;Vo[t]=!0;const e=t.endsWith(".css"),i=e?'[rel="stylesheet"]':"";if(s)for(let s=n.length-1;s>=0;s--){const i=n[s];if(i.href===t&&(!e||"stylesheet"===i.rel))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;const o=document.createElement("link");return o.rel=e?"stylesheet":"modulepreload",e||(o.as="script"),o.crossOrigin="",o.href=t,r&&o.setAttribute("nonce",r),document.head.appendChild(o),e?new Promise((e,s)=>{o.addEventListener("load",e),o.addEventListener("error",()=>s(new Error(`Unable to preload CSS for ${t}`)))}):void 0}))}function n(t){const e=new Event("vite:preloadError",{cancelable:!0});if(e.payload=t,window.dispatchEvent(e),!e.defaultPrevented)throw t}return i.then(e=>{for(const t of e||[])"rejected"===t.status&&n(t.reason);return t().catch(n)})},Wo=()=>Ko(()=>import("./IndexView.min.js"),__vite__mapDeps([0,1]),import.meta.url),Jo=()=>Ko(()=>import("./DocsView.min.js"),__vite__mapDeps([2,3,1]),import.meta.url),Go=()=>Ko(()=>import("./PlaygroundView.min.js"),__vite__mapDeps([4,3,1]),import.meta.url),Xo={install(t){t.component("k-lab-index-view",Wo),t.component("k-lab-docs-view",Jo),t.component("k-lab-playground-view",Go)}};const Zo=lt({props:{align:{type:String,default:"start"}}},function(){var t=this;return(0,t._self._c)("div",{staticClass:"k-bar",attrs:{"data-align":t.align}},[t._t("default")],2)},[]).exports;const Qo=lt({props:{align:{type:String,default:"start"},button:Boolean,height:String,icon:String,theme:{type:String},text:String,html:{type:Boolean}},computed:{element(){return this.button?"button":"div"},type(){return this.button?"button":null}}},function(){var t=this,e=t._self._c;return e(t.element,{tag:"component",staticClass:"k-box",style:t.height?{"--box-height":t.height}:null,attrs:{"data-align":t.align,"data-theme":t.theme,type:t.type}},[t.icon?e("k-icon",{attrs:{type:t.icon}}):t._e(),t._t("default",function(){return[t.html?e("k-text",{attrs:{html:t.text}}):e("k-text",[t._v(" "+t._s(t.text)+" ")])]},null,{html:t.html,text:t.text})],2)},[]).exports;const tr=lt({inheritAttrs:!1,props:{back:String,color:String,element:{type:String,default:"li"},html:{type:Boolean},image:Object,link:String,text:String},mounted(){window.panel.deprecated(" will be removed in a future version. Use instead.")}},function(){var t=this,e=t._self._c;return e(t.link?"k-link":"p",{tag:"component",class:["k-bubble",t.$attrs.class],style:{color:t.$helper.color(t.color),background:t.$helper.color(t.back),...t.$attrs.style},attrs:{to:t.link},nativeOn:{click:function(t){t.stopPropagation()}}},[t._t("image",function(){return[t.image?.src?e("k-image-frame",t._b({},"k-image-frame",t.image,!1)):t.image?e("k-icon-frame",t._b({},"k-icon-frame",t.image,!1)):e("span")]}),t.text?[t.html?e("span",{staticClass:"k-bubble-text",domProps:{innerHTML:t._s(t.text)}}):e("span",{staticClass:"k-bubble-text"},[t._v(t._s(t.text))])]:t._e()],2)},[]).exports;const er=lt({props:{width:{type:String,default:"1/1"},sticky:Boolean}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-column",style:{"--width":t.width},attrs:{"data-sticky":t.sticky}},[t.sticky?e("div",[t._t("default")],2):t._t("default")],2)},[]).exports,sr={props:{element:{type:String,default:"div"},fit:String,ratio:String,cover:Boolean,back:String,theme:String}};const ir=lt({mixins:[sr],inheritAttrs:!1,computed:{background(){return this.$helper.color(this.back)}}},function(){var t=this;return(0,t._self._c)(t.element,{tag:"component",class:["k-frame",t.$attrs.class],style:{"--fit":t.fit??(t.cover?"cover":"contain"),"--ratio":t.ratio,"--back":t.background,...t.$attrs.style},attrs:{"data-theme":t.theme}},[t._t("default")],2)},[]).exports;const nr=lt({mixins:[{mixins:[sr],props:{color:String}}],inheritAttrs:!1},function(){var t=this;return(0,t._self._c)("k-frame",t._b({class:["k-color-frame",t.$attrs.class],style:{"--color-frame-back":t.color,...t.$attrs.style}},"k-frame",t.$props,!1),[t._t("default")],2)},[]).exports;const or=lt({props:{disabled:{type:Boolean}},emits:["drop"],data:()=>({files:[],dragging:!1,over:!1}),methods:{cancel(){this.reset()},reset(){this.dragging=!1,this.over=!1},onDrop(t){return!0===this.disabled||!1===this.$helper.isUploadEvent(t)?this.reset():(this.$events.emit("dropzone.drop"),this.files=t.dataTransfer.files,this.$emit("drop",this.files),void this.reset())},onEnter(t){!1===this.disabled&&this.$helper.isUploadEvent(t)&&(this.dragging=!0)},onLeave(){this.reset()},onOver(t){!1===this.disabled&&this.$helper.isUploadEvent(t)&&(t.dataTransfer.dropEffect="copy",this.over=!0)}}},function(){var t=this;return(0,t._self._c)("div",{staticClass:"k-dropzone",attrs:{"data-dragging":t.dragging,"data-over":t.over},on:{dragenter:t.onEnter,dragleave:t.onLeave,dragover:t.onOver,drop:t.onDrop}},[t._t("default")],2)},[]).exports;const rr=lt({props:{variant:String}},function(){var t=this;return(0,t._self._c)("div",{staticClass:"k-grid",attrs:{"data-variant":t.variant}},[t._t("default")],2)},[]).exports;const ar=lt({props:{editable:Boolean},emits:["edit"]},function(){var t=this,e=t._self._c;return e("header",{staticClass:"k-header",attrs:{"data-editable":t.editable}},[e("h1",{staticClass:"k-header-title"},[t.editable?e("button",{staticClass:"k-header-title-button",attrs:{type:"button"},on:{click:function(e){return t.$emit("edit")}}},[e("span",{staticClass:"k-header-title-text"},[t._t("default")],2),e("span",{staticClass:"k-header-title-icon"},[e("k-icon",{attrs:{type:"edit"}})],1)]):e("span",{staticClass:"k-header-title-text"},[t._t("default")],2)]),t.$slots.buttons?e("div",{staticClass:"k-header-buttons"},[t._t("buttons")],2):t._e()])},[]).exports,lr={props:{alt:String,color:String,type:String}};const cr=lt({mixins:[lr],computed:{isEmoji(){return this.$helper.string.hasEmoji(this.type)}}},function(){var t=this,e=t._self._c;return t.isEmoji?e("span",{attrs:{"data-type":"emoji"}},[t._v(t._s(t.type))]):e("svg",{staticClass:"k-icon",style:{color:t.$helper.color(t.color)},attrs:{"aria-label":t.alt,role:t.alt?"img":null,"aria-hidden":!t.alt,"data-type":t.type}},[e("use",{attrs:{"xlink:href":"#icon-"+t.type}})])},[]).exports;const ur=lt({mixins:[{mixins:[sr,lr],props:{type:null,icon:String}}],inheritAttrs:!1},function(){var t=this,e=t._self._c;return e("k-frame",t._b({class:["k-icon-frame",t.$attrs.class],style:t.$attrs.style,attrs:{element:"figure"}},"k-frame",t.$props,!1),[e("k-icon",t._b({},"k-icon",{color:t.color,type:t.icon,alt:t.alt},!1))],1)},[]).exports;const pr=lt({mixins:[{mixins:[sr],props:{alt:String,sizes:String,src:String,srcset:String}}],inheritAttrs:!1},function(){var t=this,e=t._self._c;return e("k-frame",t._b({class:["k-image-frame","k-image",t.$attrs.class],style:t.$attrs.style,attrs:{element:"figure"}},"k-frame",t.$props,!1),[t.src?e("img",{key:t.src,attrs:{alt:t.alt??"",src:t.src,srcset:t.srcset,sizes:t.sizes},on:{dragstart:function(t){t.preventDefault()}}}):t._e()])},[]).exports;const dr=lt({mixins:[{props:{autofocus:{default:!0,type:Boolean},nested:{default:!1,type:Boolean},type:{default:"overlay",type:String},visible:{default:!1,type:Boolean}}}],inheritAttrs:!0,emits:["cancel","close","open"],watch:{visible(t,e){t!==e&&this.toggle()}},mounted(){this.toggle()},methods:{cancel(){this.$emit("cancel"),this.close()},close(){if(!1!==this.$refs.overlay.open)return this.nested?this.onClose():void this.$refs.overlay.close()},focus(){this.$helper.focus(this.$refs.overlay)},onCancel(t){this.nested&&(t.preventDefault(),this.cancel())},onClick(t){t.target.matches(".k-portal")&&this.cancel()},onClose(){this.$emit("close")},open(){!0!==this.$refs.overlay.open&&this.$refs.overlay.showModal(),setTimeout(()=>{!0===this.autofocus&&this.focus(),this.$emit("open")})},toggle(){!0===this.visible?this.open():this.close()}}},function(){var t=this;return(0,t._self._c)("dialog",{ref:"overlay",staticClass:"k-overlay",attrs:{"data-type":t.type},on:{cancel:t.onCancel,mousedown:t.onClick,touchdown:t.onClick,close:t.onClose}},[t._t("default")],2)},[]).exports;const hr=lt({props:{click:Function,dialog:{type:[String,Object]},drawer:{type:[String,Object]},icon:String,info:String,label:String,link:String,theme:String,value:String},computed:{component(){return null!==this.target?"k-link":"div"},target(){return this.link?this.link:this.click?this.click:this.dialog?()=>this.$panel.dialog.open(this.dialog):this.drawer?()=>this.$panel.drawer.open(this.drawer):null}}},function(){var t=this,e=t._self._c;return e(t.component,{tag:"component",staticClass:"k-stat",attrs:{"data-theme":t.theme,to:t.target}},[t.label?e("dt",{staticClass:"k-stat-label"},[t.icon?e("k-icon",{attrs:{type:t.icon}}):t._e(),t._v(" "+t._s(t.label)+" ")],1):t._e(),t.value?e("dd",{staticClass:"k-stat-value"},[t._v(t._s(t.value))]):t._e(),t.info?e("dd",{staticClass:"k-stat-info"},[t._v(t._s(t.info))]):t._e()])},[]).exports;const mr=lt({inheritAttrs:!1,props:{columns:{type:Object,default:()=>({})},disabled:Boolean,fields:{type:Object,default:()=>({})},empty:String,index:{type:[Number,Boolean],default:1},rows:Array,options:{default:()=>[],type:[Array,Function]},pagination:[Object,Boolean],selecting:Boolean,sortable:Boolean},emits:["cell","change","header","input","option","paginate","sort"],data(){return{values:this.rows}},computed:{colspan(){let t=this.columnsCount;return this.hasIndexColumn&&t++,this.hasOptions&&t++,t},columnsCount(){return this.$helper.object.length(this.columns)},dragOptions(){return{disabled:!this.sortable||0===this.rows.length,draggable:".k-table-sortable-row",fallbackClass:"k-table-row-fallback",ghostClass:"k-table-row-ghost"}},hasIndexColumn(){return this.sortable||!1!==this.index},hasOptions(){return this.selecting||this.$scopedSlots.options||this.options?.length>0||Object.values(this.values).filter(t=>t?.options).length>0}},watch:{rows(){this.values=this.rows}},methods:{isColumnEmpty(t){return 0===this.rows.filter(e=>!1===this.$helper.object.isEmpty(e[t])).length},label(t,e){return t.label??this.$helper.string.ucfirst(e)},onChange(t){this.$emit("change",t)},onCell(t){this.$emit("cell",t)},onCellUpdate({columnIndex:t,rowIndex:e,value:s}){this.values[e][t]=s,this.$emit("input",this.values)},onHeader(t){this.$emit("header",t)},onOption(t,e,s){this.$emit("option",t,e,s)},onSort(){this.$emit("input",this.values),this.$emit("sort",this.values)},rowIsSelectable(t){return!0===this.selecting&&!1!==t.selectable},rowIsSortable(t){return!0===this.sortable&&!1===this.selecting&&!1!==t.sortable},width(t){return"string"!=typeof t?"auto":!1===t.includes("/")?t:this.$helper.ratio(t,"auto",!1)}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-table",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-disabled":t.disabled}},[e("table",{attrs:{"data-disabled":t.disabled,"data-indexed":t.hasIndexColumn,"data-selecting":t.selecting}},[e("thead",[e("tr",[t.hasIndexColumn?e("th",{staticClass:"k-table-index-column",attrs:{"data-mobile":"true"}},[t._v(" # ")]):t._e(),t._l(t.columns,function(s,i){return e("th",{key:i+"-header",staticClass:"k-table-column",style:{width:t.width(s.width)},attrs:{"data-align":s.align,"data-column-id":i,"data-mobile":s.mobile},on:{click:function(e){return t.onHeader({column:s,columnIndex:i})}}},[t._t("header",function(){return[t._v(" "+t._s(t.label(s,i))+" ")]},null,{column:s,columnIndex:i,label:t.label(s,i)})],2)}),t.hasOptions?e("th",{staticClass:"k-table-options-column",attrs:{"data-mobile":"true"}}):t._e()],2)]),e("k-draggable",{attrs:{list:t.values,options:t.dragOptions,handle:!0,element:"tbody"},on:{change:t.onChange,end:t.onSort}},[0===t.rows.length?e("tr",[e("td",{staticClass:"k-table-empty",attrs:{colspan:t.colspan}},[t._v(" "+t._s(t.empty)+" ")])]):t._l(t.values,function(s,i){return e("tr",{key:s.id??s._id??s.value??JSON.stringify(s),class:{"k-table-sortable-row":t.rowIsSortable(s)},attrs:{"data-selecting":t.selecting,"data-selectable":t.rowIsSelectable(s),"data-sortable":t.rowIsSortable(s)}},[t.hasIndexColumn?e("td",{staticClass:"k-table-index-column",attrs:{"data-mobile":"true"}},[t._t("index",function(){return[e("div",{staticClass:"k-table-index",domProps:{textContent:t._s(t.index+i)}})]},null,{row:s,rowIndex:i}),t.rowIsSortable(s)?e("k-sort-handle",{staticClass:"k-table-sort-handle"}):t._e()],2):t._e(),t._l(t.columns,function(n,o){return e("k-table-cell",{key:o,staticClass:"k-table-column",style:{width:t.width(n.width)},attrs:{id:o,column:n,field:t.fields[o],row:s,mobile:n.mobile,value:s[o]},on:{input:function(e){return t.onCellUpdate({columnIndex:o,rowIndex:i,value:e})}},nativeOn:{click:function(e){return t.onCell({row:s,rowIndex:i,column:n,columnIndex:o})}}})}),t.hasOptions?e("td",{staticClass:"k-table-options-column",attrs:{"data-mobile":"true"}},[t.selecting?[e("label",{staticClass:"k-table-select-checkbox"},[e("input",{attrs:{disabled:!1===s.selectable,type:"checkbox"},on:{change:function(e){return t.$emit("select",s,i)}}})])]:[t._t("options",function(){return[e("k-options-dropdown",{attrs:{options:s.options??t.options,text:(s.options??t.options).length>1},on:{option:function(e){return t.onOption(e,s,i)}}})]},null,{row:s,rowIndex:i})]],2):t._e()],2)})],2)],1),t.pagination?e("k-pagination",t._b({staticClass:"k-table-pagination",on:{paginate:function(e){return t.$emit("paginate",e)}}},"k-pagination",t.pagination,!1)):t._e()],1)},[]).exports;const fr=lt({inheritAttrs:!1,props:{column:Object,field:Object,id:String,mobile:{type:Boolean,default:!1},row:Object,value:{default:""}},emits:["input"],computed:{component(){return this.$helper.isComponent(`k-${this.type}-field-preview`)?`k-${this.type}-field-preview`:this.$helper.isComponent(`k-table-${this.type}-cell`)?`k-table-${this.type}-cell`:Array.isArray(this.value)?"k-array-field-preview":"object"==typeof this.value?"k-object-field-preview":"k-text-field-preview"},type(){return this.column.type??this.field?.type}}},function(){var t=this,e=t._self._c;return e("td",{class:["k-table-cell",t.$attrs.class],style:t.$attrs.style,attrs:{"data-align":t.column.align,"data-column-id":t.id,"data-mobile":t.mobile}},[!1===t.$helper.object.isEmpty(t.value)?e(t.component,{tag:"component",attrs:{column:t.column,field:t.field,row:t.row,value:t.value},on:{input:function(e){return t.$emit("input",e)}}}):t._e()],1)},[]).exports;const gr=lt({props:{tab:String,tabs:{type:Array,default:()=>[]},theme:{type:String,default:"passive"}},data(){return{observer:null,visible:this.tabs,invisible:[]}},computed:{buttons(){return this.visible.map(this.button)},current(){const t=this.tabs.find(t=>t.name===this.tab)??this.tabs[0];return t?.name},dropdown(){return this.invisible.map(this.button)}},watch:{tabs:{async handler(){this.observer?.disconnect(),await this.$nextTick(),this.$el instanceof Element&&(this.observer=new ResizeObserver(this.resize),this.observer.observe(this.$el))},immediate:!0}},destroyed(){this.observer?.disconnect()},methods:{button(t){const e={...t,current:t.name===this.current,title:t.label,text:t.label??t.text??t.name};return t.badge?e.badge={theme:this.theme,text:t.badge}:delete e.badge,e},async resize(){const t=this.$el.offsetWidth;this.visible=this.tabs,this.invisible=[],await this.$nextTick();const e=[...this.$refs.visible].map(t=>t.$el.offsetWidth);let s=32;for(let i=0;it)return this.visible=this.tabs.slice(0,i),void(this.invisible=this.tabs.slice(i))}}},function(){var t=this,e=t._self._c;return t.tabs.length>1?e("nav",{staticClass:"k-tabs"},[t._l(t.buttons,function(s){return e("k-button",t._b({key:s.name,ref:"visible",refInFor:!0,staticClass:"k-tabs-button",attrs:{variant:"dimmed"}},"k-button",s,!1),[t._v(" "+t._s(s.text)+" ")])}),t.invisible.length?[e("k-button",{staticClass:"k-tabs-button k-tabs-dropdown-button",attrs:{current:!!t.invisible.find(e=>t.tab===e.name),title:t.$t("more"),icon:"dots",variant:"dimmed"},on:{click:function(e){return e.stopPropagation(),t.$refs.more.toggle()}}}),e("k-dropdown-content",{ref:"more",staticClass:"k-tabs-dropdown",attrs:{options:t.dropdown,"align-x":"end"}})]:t._e()],2):t._e()},[]).exports,br={install(t){t.component("k-bar",Zo),t.component("k-box",Qo),t.component("k-bubble",tr),t.component("k-bubbles",$o),t.component("k-color-frame",nr),t.component("k-column",er),t.component("k-dropzone",or),t.component("k-frame",ir),t.component("k-grid",rr),t.component("k-header",ar),t.component("k-icon-frame",ur),t.component("k-image-frame",pr),t.component("k-image",pr),t.component("k-overlay",dr),t.component("k-stat",hr),t.component("k-stats",vn),t.component("k-table",mr),t.component("k-table-cell",fr),t.component("k-tabs",gr)}};const kr=lt({props:{data:Object,disabled:Boolean,element:{type:String,default:"div"},group:String,handle:[String,Boolean],list:Array,move:Function,options:{type:Object,default:()=>({})}},emits:["change","end","sort","start"],data:()=>({sortable:null}),computed:{dragOptions(){return{group:this.group,disabled:this.disabled,handle:!0===this.handle?".k-sort-handle":this.handle,draggable:">*",filter:".k-draggable-footer",ghostClass:"k-sortable-ghost",fallbackClass:"k-sortable-fallback",forceFallback:!0,fallbackOnBody:!0,scroll:document.querySelector(".k-panel-main"),...this.options}}},watch:{dragOptions:{handler(t,e){for(const s in t)t[s]!==e[s]&&this.sortable.option(s,t[s])},deep:!0}},mounted(){this.disableFooter(),this.create()},methods:{async create(){const t=(await Ko(async()=>{const{default:t}=await import("./sortable.min.js");return{default:t}},[],import.meta.url)).default;this.sortable=t.create(this.$el,{...this.dragOptions,onStart:t=>{this.$panel.drag.start("data",{}),this.$emit("start",t)},onEnd:t=>{this.$panel.drag.stop(),this.$emit("end",t)},onAdd:t=>{if(this.list){const e=this.getInstance(t.from),s=t.oldDraggableIndex,i=t.newDraggableIndex,n=e.list[s];this.list.splice(i,0,n),this.$emit("change",{added:{element:n,newIndex:i}})}},onUpdate:t=>{if(this.list){const e=t.oldDraggableIndex,s=t.newDraggableIndex,i=this.list[e];this.list.splice(e,1),this.list.splice(s,0,i),this.$emit("change",{moved:{element:i,newIndex:s,oldIndex:e}})}},onRemove:t=>{if(this.list){const e=t.oldDraggableIndex,s=this.list[e];this.list.splice(e,1),this.$emit("change",{removed:{element:s,oldIndex:e}})}},onSort:t=>{this.$emit("sort",t)},onMove:t=>{if(t.dragged.classList.contains("k-draggable-footer"))return!1;if(this.move){const e=t.dragged.__vue__;t.draggedData=e.$props;const s=this.getInstance(t.from);t.fromData=s.$props.data;const i=this.getInstance(t.to);return t.toData=i.$props.data,this.move(t)}return!0}})},disableFooter(){if(this.$slots.footer){const t=[...this.$el.childNodes].slice(-1*this.$slots.footer.length);for(const e of t)e.classList?.add("k-draggable-footer")}},getInstance:t=>"list"in(t=t.__vue__)?t:1===t.$children.length&&"list"in t.$children[0]?t.$children[0]:"k-draggable"===t.$parent.$options._componentTag?t.$parent:void 0}},function(){var t=this;return(0,t._self._c)(t.element,{tag:"component",class:{"k-draggable":!t.dragOptions.disabled}},[t._t("default"),t.$slots.footer?[t._t("footer")]:t._e()],2)},[]).exports;const yr=lt({data:()=>({error:null}),errorCaptured(t){return this.$panel.debug&&window.console.warn(t),this.error=t,!1},render(){return this.error?this.$slots.error?this.$slots.error[0]:this.$scopedSlots.error?this.$scopedSlots.error({error:this.error}):i("k-box",{attrs:{theme:"negative"}},this.error.message??this.error):this.$slots.default[0]}},null,null).exports;const vr=lt({props:{html:String},mounted(){try{let t=this.$refs.iframe.contentWindow.document;t.open(),t.write(this.html),t.close()}catch(t){console.error(t)}}},function(){var t=this,e=t._self._c;return e("k-overlay",{staticClass:"k-fatal",attrs:{visible:!0}},[e("div",{staticClass:"k-fatal-box"},[e("div",{staticClass:"k-notification",attrs:{"data-theme":"negative"}},[e("p",[t._v("The JSON response could not be parsed")]),e("k-button",{attrs:{icon:"cancel"},on:{click:function(e){return e.stopPropagation(),t.$panel.notification.close()}}})],1),e("iframe",{ref:"iframe",staticClass:"k-fatal-iframe"})])])},[]).exports;const $r=lt({icons:window.panel.plugins.icons},function(){var t=this,e=t._self._c;return e("svg",{staticClass:"k-icons",attrs:{"aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",overflow:"hidden"}},[e("defs",t._l(t.$options.icons,function(s,i){return e("symbol",{key:i,attrs:{id:"icon-"+i,viewBox:"0 0 24 24"},domProps:{innerHTML:t._s(s)}})}),0)])},[]).exports;const xr=lt({},function(){var t=this,e=t._self._c;return t.$panel.notification.isOpen?e("div",{staticClass:"k-notification",attrs:{"data-theme":t.$panel.notification.theme}},[e("p",[t._v(t._s(t.$panel.notification.message))]),e("k-button",{attrs:{icon:"cancel"},on:{click:function(e){return t.$panel.notification.close()}}})],1):t._e()},[]).exports;const wr=lt({},function(){var t=this,e=t._self._c;return!t.$panel.system.isLocal&&t.$panel.isOffline?e("div",{staticClass:"k-offline-warning"},[e("p",[e("k-icon",{attrs:{type:"bolt"}}),t._v(" "+t._s(t.$t("error.offline")))],1)]):t._e()},[]).exports;const _r=lt({props:{value:{type:Number,default:0,validator:t=>t>=0&&t<=100}}},function(){var t=this;return(0,t._self._c)("progress",{staticClass:"k-progress",attrs:{max:"100"},domProps:{value:t.value}},[t._v(t._s(t.value)+"%")])},[]).exports;const Sr=lt({},function(){return(0,this._self._c)("k-button",{staticClass:"k-sort-handle k-sort-button",attrs:{title:this.$t("sort.drag"),icon:"sort","aria-hidden":"true"}})},[]).exports,Cr={install(t){t.component("k-draggable",kr),t.component("k-error-boundary",yr),t.component("k-fatal",vr),t.component("k-icon",cr),t.component("k-icons",$r),t.component("k-notification",xr),t.component("k-offline-warning",wr),t.component("k-progress",_r),t.component("k-sort-handle",Sr)}};const Or=lt({props:{crumbs:{type:Array,default:()=>[]},label:{type:String,default:"Breadcrumb"}},computed:{dropdown(){return this.crumbs.map(t=>({...t,text:t.label,icon:"angle-right"}))}}},function(){var t=this,e=t._self._c;return e("nav",{staticClass:"k-breadcrumb",attrs:{"aria-label":t.label}},[t.crumbs.length>1?e("div",{staticClass:"k-breadcrumb-dropdown"},[e("k-button",{attrs:{icon:"home"},on:{click:function(e){return t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",attrs:{options:t.dropdown}})],1):t._e(),e("ol",t._l(t.crumbs,function(s,i){return e("li",{key:i},[e("k-button",{staticClass:"k-breadcrumb-link",attrs:{icon:s.loading?"loader":s.icon,link:s.link,disabled:!s.link,text:s.text??s.label,title:s.text??s.label,current:i===t.crumbs.length-1&&"page",variant:"dimmed",size:"sm"}})],1)}),0)])},[]).exports;const Ar=lt({props:{items:{type:Array},name:{default:"items",type:String},selected:{type:String},type:{default:"radio",type:String}},emits:["select"]},function(){var t=this,e=t._self._c;return e("nav",{staticClass:"k-browser"},[e("div",{staticClass:"k-browser-items"},t._l(t.items,function(s){return e("label",{key:s.value,staticClass:"k-browser-item",attrs:{"aria-selected":t.selected===s.value}},[e("input",{attrs:{name:t.name,type:t.type},domProps:{checked:t.selected===s.value},on:{change:function(e){return t.$emit("select",s)}}}),s.image?e("k-item-image",{staticClass:"k-browser-item-image",attrs:{image:{...s.image,cover:!0,back:"black"}}}):t._e(),e("span",{staticClass:"k-browser-item-info"},[t._v(" "+t._s(s.label)+" ")])],1)}),0)])},[]).exports;const Mr=lt({props:{buttons:Array,layout:String,variant:String,theme:String,size:String,responsive:Boolean}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-button-group",attrs:{"data-layout":t.layout}},[t.$slots.default?t._t("default"):t._l(t.buttons,function(s,i){return e("k-button",t._b({key:i},"k-button",{variant:t.variant,theme:t.theme,size:t.size,responsive:t.responsive,...s},!1))})],2)},[]).exports;const Dr=lt({props:{limit:{default:50,type:Number},opened:{type:String},selected:{type:String}},emits:["select"],data(){return{files:[],page:null,pagination:null,view:this.opened?"files":"tree"}},methods:{paginate(t){this.selectPage(this.page,t.page)},selectFile(t){this.$emit("select",t)},async selectPage(t,e=1){this.page=t;const s="/"===t.id?"/site/files":"/pages/"+this.$api.pages.id(t.id)+"/files",{data:i,pagination:n}=await this.$api.get(s,{select:"filename,id,panelImage,url,uuid",limit:this.limit,page:e});this.pagination=n,this.files=i.map(t=>({label:t.filename,image:t.panelImage,id:t.id,url:t.url,uuid:t.uuid,value:t.uuid??t.url})),this.view="files"},async togglePage(){await this.$nextTick(),this.$refs.tree.scrollIntoView({behaviour:"smooth",block:"nearest",inline:"nearest"})}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-file-browser",attrs:{"data-view":t.view}},[e("div",{staticClass:"k-file-browser-layout"},[e("aside",{ref:"tree",staticClass:"k-file-browser-tree"},[e("k-page-tree",{attrs:{current:t.page?.value??t.opened},on:{select:t.selectPage,toggleBranch:t.togglePage}})],1),e("div",{ref:"items",staticClass:"k-file-browser-items"},[e("k-button",{staticClass:"k-file-browser-back-button",attrs:{icon:"angle-left",text:t.page?.label},on:{click:function(e){t.view="tree"}}}),t.files.length?e("k-browser",{attrs:{items:t.files,selected:t.selected},on:{select:t.selectFile}}):t._e()],1),e("div",{staticClass:"k-file-browser-pagination",on:{click:function(t){t.stopPropagation()}}},[t.pagination?e("k-pagination",t._b({attrs:{details:!0},on:{paginate:t.paginate}},"k-pagination",t.pagination,!1)):t._e()],1)])])},[]).exports;const Er=lt({props:{diff:Object,tab:String,tabs:{type:Array,default:()=>[]}},computed:{withBadges(){const t=Object.keys(this.diff);return this.tabs.map(e=>{const s=[];for(const t in e.columns)for(const i in e.columns[t].sections)if("fields"===e.columns[t].sections[i].type)for(const n in e.columns[t].sections[i].fields)s.push(n);return e.badge=s.filter(e=>t.includes(e.toLowerCase())).length,e})}}},function(){var t=this;return(0,t._self._c)("k-tabs",{staticClass:"k-model-tabs",attrs:{tab:t.tab,tabs:t.withBadges,theme:"notice"}})},[]).exports;const jr=lt({props:{axis:String,disabled:Boolean,element:{type:String,default:"div"},select:{type:String,default:":where(button, a):not(:disabled)"}},emits:["next","prev"],computed:{keys(){switch(this.axis){case"x":return{ArrowLeft:this.prev,ArrowRight:this.next};case"y":return{ArrowUp:this.prev,ArrowDown:this.next};default:return{ArrowLeft:this.prev,ArrowRight:this.next,ArrowUp:this.prev,ArrowDown:this.next}}}},mounted(){this.$el.addEventListener("keydown",this.keydown)},destroyed(){this.$el.removeEventListener("keydown",this.keydown)},methods:{focus(t=0,e){this.move(t,e)},keydown(t){if(this.disabled)return!1;this.keys[t.key]?.apply(this,[t])},move(t=0,e){const s=[...this.$el.querySelectorAll(this.select)];let i=s.findIndex(t=>t===document.activeElement||t.contains(document.activeElement));switch(-1===i&&(i=0),t){case"first":t=0;break;case"next":t=i+1;break;case"last":t=s.length-1;break;case"prev":t=i-1}t<0?this.$emit("prev"):t>=s.length?this.$emit("next"):s[t]?.focus(),e?.preventDefault()},next(t){this.move("next",t)},prev(t){this.move("prev",t)}}},function(){var t=this;return(0,t._self._c)(t.element,{tag:"component",staticClass:"k-navigate"},[t._t("default")],2)},[]).exports;const Ir=lt({name:"k-tree",inheritAttrs:!1,props:{element:{type:String,default:"k-tree"},current:{type:String},items:{type:[Array,Object]},level:{default:0,type:Number}},emits:["close","open","select","toggle"],data(){return{state:this.items}},methods:{arrow:t=>!0===t.loading?"loader":t.open?"angle-down":"angle-right",close(t){this.$set(t,"open",!1),this.$emit("close",t)},isItem:(t,e)=>t.value===e,open(t){this.$set(t,"open",!0),this.$emit("open",t)},select(t){this.$emit("select",t)},toggle(t){this.$emit("toggle",t),!0===t.open?this.close(t):this.open(t)}}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-tree",t.$options.name,t.$attrs.class],style:{"--tree-level":t.level,...t.$attrs.style}},t._l(t.state,function(s){return e("li",{key:s.value,attrs:{"aria-expanded":s.open,"aria-current":t.isItem(s,t.current)}},[e("p",{staticClass:"k-tree-branch"},[e("button",{staticClass:"k-tree-toggle",attrs:{disabled:!s.hasChildren,type:"button"},on:{click:function(e){return t.toggle(s)}}},[e("k-icon",{attrs:{type:t.arrow(s)}})],1),e("button",{staticClass:"k-tree-folder",attrs:{disabled:s.disabled,type:"button"},on:{click:function(e){return t.select(s)},dblclick:function(e){return t.toggle(s)}}},[e("k-icon-frame",{attrs:{icon:s.icon??"folder"}}),e("span",{staticClass:"k-tree-folder-label"},[t._v(t._s(s.label))])],1)]),s.hasChildren&&s.open?[e(t.$options.name,t._b({ref:s.value,refInFor:!0,tag:"component",attrs:{items:s.children,level:t.level+1},on:{close:function(e){return t.$emit("close",e)},open:function(e){return t.$emit("open",e)},select:function(e){return t.$emit("select",e)},toggle:function(e){return t.$emit("toggle",e)}}},"component",t.$props,!1))]:t._e()],2)}),0)},[]).exports;const Br=lt({name:"k-page-tree",extends:Ir,inheritAttrs:!1,props:{current:{type:String},move:{type:String},root:{default:!0,type:Boolean}},data:()=>({state:[]}),async mounted(){if(this.items)this.state=this.items;else{const t=await this.load(null);await this.open(t[0]),this.state=this.root?t:t[0].children,this.current&&this.preselect(this.current)}},methods:{findItem(t){return this.state.find(e=>this.isItem(e,t))},isItem:(t,e)=>t.value===e||t.uuid===e||t.id===e,async load(t){return await this.$panel.get("site/tree",{query:{move:this.move??null,parent:t}})},async open(t){if(t){if(!1===t.hasChildren)return!1;this.$set(t,"loading",!0),"string"==typeof t.children&&(t.children=await this.load(t.children)),this.$set(t,"open",!0),this.$set(t,"loading",!1)}},async preselect(t){const e=(await this.$panel.get("site/tree/parents",{query:{page:t,root:this.root}})).data;let s=this;for(let n=0;nPromise.resolve()}},emits:["paginate"],computed:{detailsText(){return 1===this.limit?this.start:this.start+"-"+this.end},end(){return Math.min(this.start-1+this.limit,this.total)},offset(){return this.start-1},pages(){return Math.ceil(this.total/this.limit)},start(){return(this.page-1)*this.limit+1}},methods:{async goTo(t){try{await this.validate(t),this.$refs.dropdown?.close();const e=((t=Math.max(1,Math.min(t,this.pages)))-1)*this.limit+1;this.$emit("paginate",{page:t,start:e,end:Math.min(e-1+this.limit,this.total),limit:this.limit,offset:e-1,total:this.total})}catch{}},prev(){this.goTo(this.page-1)},next(){this.goTo(this.page+1)}}},function(){var t=this,e=t._self._c;return t.pages>1?e("k-button-group",{staticClass:"k-pagination",attrs:{layout:"collapsed"},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"left",37,e.key,["Left","ArrowLeft"])||"button"in e&&0!==e.button?null:t.prev.apply(null,arguments)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"right",39,e.key,["Right","ArrowRight"])||"button"in e&&2!==e.button?null:t.next.apply(null,arguments)}]}},[e("k-button",{staticClass:"k-pagination-button",attrs:{disabled:t.start<=1,title:t.$t("prev"),icon:"angle-left",size:"xs",variant:"filled"},on:{click:t.prev}}),t.details?[e("k-button",{staticClass:"k-pagination-details",attrs:{disabled:t.total<=t.limit,text:t.total>1?`${t.detailsText} / ${t.total}`:t.total,size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",staticClass:"k-pagination-selector",attrs:{"align-x":"end"},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"left",37,e.key,["Left","ArrowLeft"])||"button"in e&&0!==e.button?null:void e.stopPropagation()},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"right",39,e.key,["Right","ArrowRight"])||"button"in e&&2!==e.button?null:void e.stopPropagation()}]}},[e("form",{attrs:{method:"dialog"},on:{click:function(t){t.stopPropagation()},submit:function(e){return t.goTo(t.$refs.page.value)}}},[e("label",[t._v(" "+t._s(t.$t("pagination.page"))+": "),e("select",{ref:"page",attrs:{autofocus:!0}},t._l(t.pages,function(s){return e("option",{key:s,domProps:{selected:t.page===s,value:s}},[t._v(" "+t._s(s)+" ")])}),0)]),e("k-button",{attrs:{type:"submit",icon:"check"}})],1)])]:t._e(),e("k-button",{staticClass:"k-pagination-button",attrs:{disabled:t.end>=t.total,title:t.$t("next"),icon:"angle-right",size:"xs",variant:"filled"},on:{click:t.next}})],2):t._e()},[]).exports;const Tr=lt({props:{prev:{type:[Boolean,Object],default:!1},next:{type:[Boolean,Object],default:!1}},computed:{buttons(){return[{...this.button(this.prev),icon:"angle-left"},{...this.button(this.next),icon:"angle-right"}]},isFullyDisabled(){return 0===this.buttons.filter(t=>!t.disabled).length}},methods:{button:t=>t||{disabled:!0,link:"#"}}},function(){var t=this,e=t._self._c;return t.isFullyDisabled?t._e():e("k-button-group",{staticClass:"k-prev-next",attrs:{buttons:t.buttons,layout:"collapsed",size:"xs"}})},[]).exports;const Pr=lt({mixins:[Ft],props:{defaultType:String,isLoading:Boolean,pagination:{type:Object,default:()=>({})},results:Array,types:{type:Object,default:()=>({})}},emits:["close","more","navigate","search"],data(){return{selected:-1,type:this.types[this.defaultType]?this.defaultType:Object.keys(this.types)[0]}},computed:{typesDropdown(){return Object.values(this.types).map(t=>({...t,current:this.type===t.id,click:()=>{this.type=t.id,this.focus()}}))}},watch:{type(){this.search()}},methods:{focus(){this.$refs.input?.focus()},onDown(){this.select(Math.min(this.selected+1,this.results.length-1))},onEnter(){this.$emit("navigate",this.results[this.selected]??this.results[0])},onUp(){this.select(Math.max(this.selected-1,-1))},async search(){this.$refs.types?.close(),this.select?.(-1),this.$emit("search",{type:this.type,query:this.query})},select(t){this.selected=t;const e=this.$refs.results?.$el.querySelectorAll(".k-item")??[];for(const s of e)delete s.dataset.selected;t>=0&&(e[t].dataset.selected=!0)}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-search-bar"},[e("div",{staticClass:"k-search-bar-input"},[t.typesDropdown.length>1?[e("k-button",{staticClass:"k-search-bar-types",attrs:{dropdown:!0,icon:t.types[t.type].icon,text:t.types[t.type].label,variant:"dimmed"},on:{click:function(e){return t.$refs.types.toggle()}}}),e("k-dropdown-content",{ref:"types",attrs:{options:t.typesDropdown}})]:t._e(),e("k-search-input",{ref:"input",attrs:{"aria-label":t.$t("search"),autofocus:!0,value:t.query},on:{input:function(e){t.query=e}},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:(e.preventDefault(),t.onDown.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:(e.preventDefault(),t.onUp.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.onEnter.apply(null,arguments)}]}}),e("k-button",{staticClass:"k-search-bar-close",attrs:{icon:t.isLoading?"loader":"cancel",title:t.$t("close")},on:{click:function(e){return t.$emit("close")}}})],2),t.results?e("div",{staticClass:"k-search-bar-results"},[t.results.length?e("k-collection",{ref:"results",attrs:{items:t.results},nativeOn:{mouseout:function(e){return t.select(-1)}}}):t._e(),e("footer",{staticClass:"k-search-bar-footer"},[0===t.results.length?e("p",[t._v(" "+t._s(t.$t("search.results.none"))+" ")]):t._e(),t.results.length({fields:{},isLoading:!0,issue:null}),watch:{timestamp(){this.fetch()}},mounted(){this.fetch()},methods:{async fetch(){try{const t=await this.load();this.fields=t.fields;for(const e in this.fields)this.fields[e].section=this.name,this.fields[e].endpoints={field:this.parent+"/fields/"+e,section:this.parent+"/sections/"+this.name,model:this.parent}}catch(t){this.issue=t}finally{this.isLoading=!1}}}},function(){var t=this,e=t._self._c;return t.isLoading?t._e():e("k-section",{class:["k-fields-section",t.$attrs.class],style:t.$attrs.style,attrs:{headline:t.issue?t.$t("error"):null}},[t.issue?e("k-box",{attrs:{text:t.issue.message,html:!1,icon:"alert",theme:"negative"}}):t._e(),e("k-form",{attrs:{fields:t.fields,validate:!0,value:t.content,disabled:t.lock&&"lock"===t.lock.state},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})],1)},[]).exports;const Rr=lt({mixins:[zr,xn],inheritAttrs:!1,props:{column:String},data:()=>({data:[],error:null,isLoading:!1,isProcessing:!1,options:{batch:!1,columns:{},empty:null,fields:{},headline:null,help:null,layout:"list",link:null,max:null,min:null,size:null,sortable:null},pagination:{page:null},searchterm:null,searching:!1}),computed:{addIcon:()=>"add",batchDeleteConfirmMessage(){return this.$t(`${this.type}.delete.confirm.selected`,{count:this.selected.length})},batchEditingEvent:()=>"section.selecting",buttons(){let t=[];return this.isSelecting?this.batchEditingButtons:(this.canSearch&&t.push({icon:"filter",text:this.$t("filter"),click:this.onSearchToggle,responsive:!0}),this.canSelect&&t.push(this.batchEditingToggle),this.canAdd&&t.push({icon:this.addIcon,text:this.$t("add"),click:this.onAdd,responsive:!0}),t)},canAdd:()=>!0,canDrop:()=>!1,canSearch(){return this.options.search},canSelect(){return this.options.batch&&this.items.length>0},collection(){return{columns:this.options.columns,empty:this.emptyPropsWithSearch,fields:this.fields,layout:this.options.layout,help:this.options.help,items:this.items,pagination:this.pagination,selecting:!this.isProcessing&&this.isSelecting,sortable:!this.isProcessing&&this.options.sortable,size:this.options.size}},emptyProps(){return{icon:"page",text:this.$t("pages.empty")}},emptyPropsWithSearch(){return{...this.emptyProps,text:this.searching?this.$t("search.results.none"):this.options.empty??this.emptyProps.text}},fields(){const t={};for(const e in this.options.columns??{})t[e]={...this.options.fields?.[e]??this.options.columns[e],disabled:!0};return t},items(){return this.data},isInvalid(){return!(this.searchterm?.length>0)&&(!!(this.options.min&&this.data.lengththis.options.max))},paginationId(){return"kirby$pagination$"+this.parent+"/"+this.name},type:()=>"models"},watch:{searchterm(){this.search()},timestamp(){this.reload()}},created(){this.$events.on("model.update",this.reload)},destroyed(){this.$events.off("model.update",this.reload)},mounted(){this.search=Nt(this.search,200),this.load()},methods:{async deleteSelected(){if(0!==this.selected.length){this.isProcessing=!0;try{await this.$api.delete(this.parent+"/sections/"+this.name+"/delete",{ids:this.selected.map(t=>t.id)})}catch(t){this.$panel.notification.error(t)}finally{this.$panel.events.emit("model.update"),this.isProcessing=!1}}},async load(t){this.isProcessing=!0,t||(this.isLoading=!0);const e=this.pagination.page??sessionStorage.getItem(this.paginationId)??null;try{const t=await this.$api.get(this.parent+"/sections/"+this.name,{page:e,searchterm:this.searchterm});this.options=t.options,this.pagination=t.pagination,this.data=t.data}catch(s){this.error=s.message}finally{this.isProcessing=!1,this.isLoading=!1}},onAction(){},onAdd(){},onBatchDelete(){this.deleteSelected()},onChange(){},onDrop(){},onPaginate(t){sessionStorage.setItem(this.paginationId,t.page),this.pagination=t,this.reload()},onSearchToggle(){this.searching=!this.searching,this.searchterm=null},onSort(){},async reload(){this.stopSelecting(),await this.load(!0)},async search(){this.pagination.page=0,await this.reload()},update(){this.reload(),this.$events.emit("model.update")}}},function(){var t=this,e=t._self._c;return!1===t.isLoading?e("k-section",{class:["k-models-section",`k-${t.type}-section`,t.$attrs.class],style:t.$attrs.style,attrs:{buttons:t.buttons,"data-processing":t.isProcessing,headline:t.options.headline??" ",invalid:t.isInvalid,link:t.options.link,required:Boolean(t.options.min)}},[t.error?e("k-box",{attrs:{icon:"alert",theme:"negative"}},[e("k-text",{attrs:{size:"small"}},[e("strong",[t._v(" "+t._s(t.$t("error.section.notLoaded",{name:t.name}))+": ")]),t._v(" "+t._s(t.error)+" ")])],1):[e("k-dropzone",{attrs:{disabled:!t.canDrop},on:{drop:t.onDrop}},[t.searching&&t.options.search?e("k-input",{staticClass:"k-models-section-search",attrs:{autofocus:!0,placeholder:t.$t("filter")+" …",value:t.searchterm,icon:"search",type:"text"},on:{input:function(e){t.searchterm=e}},nativeOn:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:t.onSearchToggle.apply(null,arguments)}}}):t._e(),e("k-collection",t._g(t._b({on:{action:t.onAction,change:t.onChange,select:t.onSelect,sort:t.onSort,paginate:t.onPaginate}},"k-collection",t.collection,!1),t.canAdd?{empty:t.onAdd}:{}))],1)]],2):t._e()},[]).exports;const Hr=lt({extends:Rr,computed:{addIcon:()=>"upload",canAdd(){return this.$panel.permissions.files.create&&!1!==this.options.upload},canDrop(){return!1!==this.canAdd},emptyProps(){return{icon:"image",text:this.$t("files.empty")}},items(){return this.data.map(t=>{const e=t.permissions.sort&&this.options.sortable&&!this.isSelecting,s=t.permissions.delete&&this.data.length>this.options.min;return{...t,column:this.column,data:{"data-id":t.id,"data-template":t.template},options:this.$dropdown(t.link,{query:{delete:s,sort:e,view:"list"}}),selectable:this.isSelecting&&s,sortable:e}})},type:()=>"files",uploadOptions(){return{...this.options.upload,url:this.$panel.urls.api+"/"+this.options.upload.api}}},mounted(){this.$events.on("file.sort",this.reload)},destroyed(){this.$events.off("file.sort",this.reload)},methods:{onAction(t,e){"replace"===t&&this.replace(e)},onAdd(){this.canAdd&&this.$panel.upload.pick(this.uploadOptions)},onDrop(t){this.canAdd&&this.$panel.upload.open(t,this.uploadOptions)},async onSort(t){if(!1===this.options.sortable)return!1;this.isProcessing=!0;try{await this.$api.patch(this.options.apiUrl+"/sort",{files:t.map(t=>t.id),index:this.pagination.offset}),this.$panel.notification.success(),this.$events.emit("file.sort")}catch(e){this.$panel.error(e),this.reload()}finally{this.isProcessing=!1}},replace(t){this.$panel.upload.replace(t,this.uploadOptions)}}},null,null).exports;const Ur=lt({mixins:[zr],inheritAttrs:!1,data:()=>({icon:null,label:null,text:null,theme:null}),async mounted(){const t=await this.load();this.icon=t.icon,this.label=t.label,this.text=t.text,this.theme=t.theme??"info"}},function(){var t=this,e=t._self._c;return e("k-section",{class:["k-info-section",t.$attrs.class],style:t.$attrs.style,attrs:{headline:t.label}},[e("k-box",{attrs:{html:!0,icon:t.icon,text:t.text,theme:t.theme}})],1)},[]).exports;const Vr=lt({extends:Rr,computed:{canAdd(){return this.options.add&&this.$panel.permissions.pages.create},items(){return this.data.map(t=>{const e=t.permissions.sort&&this.options.sortable&&!this.isSelecting,s=t.permissions.delete&&this.data.length>this.options.min,i={...this.$helper.page.status(t.status,!1===t.permissions.changeStatus),class:"k-page-status-icon-option",dialog:t.link+"/changeStatus"};return{...t,buttons:[i,...t.buttons??[]],column:this.column,data:{"data-id":t.id,"data-status":t.status,"data-template":t.template},flag:i,deletable:s,options:this.$dropdown(t.link,{query:{view:"list",delete:s,sort:e}}),selectable:this.isSelecting&&s,sortable:e}})},type:()=>"pages"},mounted(){this.$events.on("page.changeStatus",this.reload),this.$events.on("page.sort",this.reload)},destroyed(){this.$events.off("page.changeStatus",this.reload),this.$events.off("page.sort",this.reload)},methods:{onAdd(){this.canAdd&&this.$dialog("pages/create",{query:{parent:this.options.link??this.parent,view:this.parent,section:this.name}})},async onChange(t){let e=null;if(t.added&&(e="added"),t.moved&&(e="moved"),e){this.isProcessing=!0;const i=t[e].element,n=t[e].newIndex+1+this.pagination.offset;try{await this.$api.pages.changeStatus(i.id,"listed",n),this.$panel.notification.success(),this.$events.emit("page.sort",i)}catch(s){this.$panel.error({message:s.message,details:s.details}),await this.reload()}finally{this.isProcessing=!1}}}}},null,null).exports;const Kr=lt({mixins:[zr],data:()=>({headline:null,isLoading:!0,reports:null,size:null}),async mounted(){const t=await this.load();this.isLoading=!1,this.headline=t.headline,this.reports=t.reports,this.size=t.size},methods:{}},function(){var t=this,e=t._self._c;return!1===t.isLoading?e("k-section",{staticClass:"k-stats-section",attrs:{headline:t.headline}},[e("k-stats",{attrs:{reports:t.reports,size:t.size}})],1):t._e()},[]).exports,Wr={install(t){t.component("k-section",Nr),t.component("k-sections",Fr),t.component("k-fields-section",Yr),t.component("k-files-section",Hr),t.component("k-info-section",Ur),t.component("k-pages-section",Vr),t.component("k-stats-section",Kr)}};const Jr=lt({components:{"k-highlight":()=>Ko(()=>import("./Highlight.min.js"),__vite__mapDeps([5,1]),import.meta.url)},props:{language:{type:String}}},function(){var t=this,e=t._self._c;return e("k-highlight",[e("div",[e("pre",{staticClass:"k-code",attrs:{"data-language":t.language}},[e("code",{key:t.$slots.default[0].text+"-"+t.language,class:t.language?`language-${t.language}`:null},[t._t("default")],2)])])])},[]).exports;const Gr=lt({props:{link:String,tag:{type:String,default:"h2"}},emits:["click"]},function(){var t=this,e=t._self._c;return e(t.tag,{tag:"component",staticClass:"k-headline",on:{click:function(e){return t.$emit("click",e)}}},[t.link?e("k-link",{attrs:{to:t.link}},[t._t("default")],2):t._t("default")],2)},[]).exports;const Xr=lt({props:{input:{type:[String,Number,Boolean]},invalid:{type:Boolean},link:{type:String},required:{default:!1,type:Boolean},type:{default:"field",type:String}},computed:{element(){return"section"===this.type||!1===this.input?"h2":"label"}}},function(){var t=this,e=t._self._c;return e(t.element,{tag:"component",staticClass:"k-label",class:"k-"+t.type+"-label",attrs:{for:t.input}},[t.link?e("k-link",{attrs:{to:t.link}},[e("span",{staticClass:"k-label-text"},[t._t("default")],2)]):e("span",{staticClass:"k-label-text"},[t._t("default")],2),t.required?e("abbr",{attrs:{title:t.$t(t.type+".required")}},[t._v("✶")]):t._e(),e("abbr",{staticClass:"k-label-invalid",attrs:{title:t.$t(t.type+".invalid"),"data-theme":"negative"}},[t._v(" × ")])],1)},[]).exports;const Zr=lt({props:{align:String,html:String,size:String},computed:{attrs(){return{class:"k-text","data-align":this.align,"data-size":this.size}}}},function(){var t=this,e=t._self._c;return t.html?e("div",t._b({domProps:{innerHTML:t._s(t.html)}},"div",t.attrs,!1)):e("div",t._b({},"div",t.attrs,!1),[t._t("default")],2)},[]).exports,Qr={install(t){t.component("k-code",Jr),t.component("k-headline",Gr),t.component("k-label",Xr),t.component("k-text",Zr)}},ta={props:{back:String,color:String,cover:{type:Boolean,default:!0},icon:String,type:String,url:String}};const ea=lt({mixins:[ta],computed:{fallbackColor(){return this.type?.startsWith("image/")?"orange-500":this.type?.startsWith("audio/")?"aqua-500":this.type?.startsWith("video/")?"yellow-500":"white"},fallbackIcon(){return this.type?.startsWith("image/")?"image":this.type?.startsWith("audio/")?"audio":this.type?.startsWith("video/")?"video":"file"},isPreviewable(){return["image/jpeg","image/jpg","image/gif","image/png","image/webp","image/avif","image/svg+xml"].includes(this.type)}}},function(){var t=this,e=t._self._c;return e("a",{staticClass:"k-upload-item-preview",attrs:{href:t.url,target:"_blank"}},[t.isPreviewable?e("k-image",{attrs:{cover:t.cover,src:t.url,back:t.back??"pattern"}}):e("k-icon-frame",{attrs:{color:t.color??t.fallbackColor,icon:t.icon??t.fallbackIcon,back:t.back??"black",ratio:"1/1"}})],1)},[]).exports;const sa=lt({mixins:[ta],props:{completed:Boolean,editable:{type:Boolean,default:!0},error:[String,Boolean],extension:String,id:String,name:String,niceSize:String,progress:Number,removable:{type:Boolean,default:!0}},emits:["remove","rename"]},function(){var t=this,e=t._self._c;return e("li",{staticClass:"k-upload-item",attrs:{"data-completed":t.completed}},[e("k-upload-item-preview",{attrs:{back:t.back,color:t.color,cover:t.cover,icon:t.icon,type:t.type,url:t.url}}),e("k-input",{staticClass:"k-upload-item-input",attrs:{disabled:t.completed||!t.editable,after:"."+t.extension,required:!0,value:t.name,allow:"a-z0-9@._-",type:"slug"},on:{input:function(e){return t.$emit("rename",e)}}}),e("div",{staticClass:"k-upload-item-body"},[e("p",{staticClass:"k-upload-item-meta"},[t._v(" "+t._s(t.niceSize)+" "),t.progress?[t._v(" - "+t._s(t.progress)+"% ")]:t._e()],2),t.error?e("p",{staticClass:"k-upload-item-error",attrs:{"data-theme":"negative"}},[t._v(" "+t._s(t.error)+" ")]):t.progress?e("k-progress",{staticClass:"k-upload-item-progress",attrs:{value:t.progress}}):t._e()],1),e("div",{staticClass:"k-upload-item-toggle"},[t.completed||t.progress||!t.removable?!t.completed&&t.progress?e("k-button",{attrs:{disabled:!0,icon:"loader"}}):t.completed?e("k-button",{attrs:{icon:"check",theme:"positive"},on:{click:function(e){return t.$emit("remove")}}}):t._e():e("k-button",{attrs:{icon:"remove"},on:{click:function(e){return t.$emit("remove")}}})],1)],1)},[]).exports;const ia=lt({props:{items:Array},emits:["remove","rename"]},function(){var t=this,e=t._self._c;return e("ul",{staticClass:"k-upload-items"},t._l(t.items,function(s){return e("k-upload-item",t._b({key:s.id,on:{rename:function(e){return t.$emit("rename",s,e)},remove:function(e){return t.$emit("remove",s)}}},"k-upload-item",s,!1))}),1)},[]).exports,na={install(t){t.component("k-upload-item",sa),t.component("k-upload-item-preview",ea),t.component("k-upload-items",ia)}};const oa=lt({props:{status:{default:"missing",type:String}}},function(){var t=this,e=t._self._c;return t.$panel.activation.isOpen?e("div",{staticClass:"k-activation"},[e("p",[e("strong",[t._v(t._s(t.$t(`license.status.${t.status}.bubble`)))]),"missing"===t.status?[e("a",{attrs:{href:"https://getkirby.com/buy",target:"_blank"}},[t._v(t._s(t.$t("license.buy")))]),t._v(" & "),e("button",{attrs:{type:"button"},on:{click:function(e){return t.$dialog("registration")}}},[t._v(" "+t._s(t.$t("license.activate"))+" ")])]:t._e()],2),e("k-button",{staticClass:"k-activation-toggle",attrs:{icon:"cancel-small"},on:{click:function(e){return t.$panel.activation.close()}}})],1):t._e()},[]).exports;const ra=lt({mixins:[Me],props:{hasDiff:Boolean,options:String},computed:{changesBadge(){return this.hasDiff||this.$panel.content.hasDiff()?{theme:this.$panel.content.isLocked()?"red":"orange"}:null}},methods:{change(t){this.$reload({query:{language:t.code}})}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-view-button k-languages-dropdown"},[e("k-button",t._b({attrs:{badge:t.changesBadge,dropdown:!0},on:{click:function(e){return t.$refs.dropdown.toggle()}}},"k-button",t.$props,!1)),e("k-dropdown-content",{ref:"dropdown",attrs:{options:t.$dropdown(t.options),"align-x":"end"},scopedSlots:t._u([{key:"item",fn:function({item:s,index:i}){return[e("k-button",t._b({key:"item-"+i,staticClass:"k-dropdown-item k-languages-dropdown-item",on:{click:function(e){return t.change(s)}}},"k-button",s,!1),[t._v(" "+t._s(s.text)+" "),e("span",{staticClass:"k-languages-dropdown-item-info",attrs:{"data-lock":s.lock}},[s.changes?e("k-icon",{staticClass:"k-languages-dropdown-item-icon",attrs:{alt:t.$t("lock.unsaved"),type:s.lock?"lock":"edit-line"}}):t._e(),e("span",{staticClass:"k-languages-dropdown-item-code"},[t._v(" "+t._s(s.code.toUpperCase())+" ")])],1)])]}}])})],1)},[]).exports;const aa=lt({extends:De,props:{options:[Array,String],size:{default:"sm"},variant:{default:"filled"}},emits:["action","click"],computed:{hasDropdown(){return!0===Array.isArray(this.options)?this.options.length>0:Boolean(this.options)}},methods:{onClick(){if(this.hasDropdown)return this.$refs.dropdown.toggle();this.$emit("click")}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-view-button"},[e("k-button",t._b({attrs:{dropdown:t.dropdown||t.hasDropdown},on:{click:t.onClick}},"k-button",t.$props,!1)),t.hasDropdown?e("k-dropdown-content",{ref:"dropdown",attrs:{options:Array.isArray(t.options)?t.options:t.$dropdown(t.options),"align-x":"end"},on:{action:function(e){return t.$emit("action",e)}}}):t._e()],1)},[]).exports;const la=lt({extends:aa,emits:["action"]},function(){var t=this;return(0,t._self._c)("k-view-button",t._b({attrs:{disabled:t.$panel.content.isLocked()},on:{action:function(e){return t.$emit("action",e)}}},"k-view-button",t.$props,!1))},[]).exports;const ca=lt({extends:aa},function(){var t=this;return(0,t._self._c)("k-view-button",t._b({attrs:{disabled:t.disabled||t.$panel.content.isLocked()}},"k-view-button",t.$props,!1))},[]).exports;const ua=lt({props:{size:String,text:{type:String,default:()=>window.panel.t("theme")},variant:String},computed:{current(){return this.$panel.theme.current},options(){return[{text:this.$t("theme.light"),icon:"sun",disabled:"light"===this.setting,click:()=>this.$panel.theme.set("light")},{text:this.$t("theme.dark"),icon:"moon",disabled:"dark"===this.setting,click:()=>this.$panel.theme.set("dark")},{text:this.$t("theme.automatic"),icon:"wand",disabled:"system"===this.setting,click:()=>this.$panel.theme.set("system")}]},setting(){return this.$panel.theme.setting??this.$panel.theme.config}}},function(){var t=this;return(0,t._self._c)("k-view-button",t._b({attrs:{icon:"light"===t.current?"sun":"moon",options:t.options}},"k-view-button",t.$props,!1))},[]).exports;const pa=lt({props:{buttons:{type:Array,default:()=>[]}},emits:["action"],methods:{component(t){return this.$helper.isComponent(t.component)?t.component:"k-view-button"}}},function(){var t=this,e=t._self._c;return t.buttons.length?e("k-button-group",{staticClass:"k-view-buttons"},t._l(t.buttons,function(s){return e(t.component(s),t._b({key:s.key,tag:"component",on:{action:function(e){return t.$emit("action",e)}}},"component",s.props,!1))}),1):t._e()},[]).exports,da={install(t){t.component("k-languages-dropdown",ra),t.component("k-settings-view-button",la),t.component("k-status-view-button",ca),t.component("k-theme-view-button",ua),t.component("k-view-button",aa),t.component("k-view-buttons",pa)}};const ha=lt({computed:{notification(){return"view"!==this.$panel.notification.context||this.$panel.notification.isFatal?null:this.$panel.notification}}},function(){var t=this,e=t._self._c;return e("k-panel",{staticClass:"k-panel-inside"},[e("k-panel-menu"),e("main",{staticClass:"k-panel-main"},[e("k-topbar",{attrs:{breadcrumb:t.$panel.view.breadcrumb,view:t.$panel.view}},[t._t("topbar")],2),t._t("default")],2),t.notification&&"error"!==t.notification.type?e("k-button",{staticClass:"k-panel-notification",attrs:{icon:t.notification.icon,text:t.notification.message,theme:t.notification.theme,variant:"filled"},on:{click:function(e){return t.notification.close()}}}):t._e()],1)},[]).exports;const ma=lt({data:()=>({over:!1}),computed:{activationButton(){return"missing"===this.$panel.license?{dialog:"registration",text:this.$t("activate")}:"legacy"===this.$panel.license&&{dialog:"license",text:this.$t("renew")}},hasSearch(){return this.$helper.object.length(this.$panel.searches)>0},menus(){return this.$helper.array.split(this.$panel.menu.entries,"-")}}},function(){var t=this,e=t._self._c;return e("nav",{staticClass:"k-panel-menu",attrs:{"aria-label":t.$t("menu"),"data-hover":t.$panel.menu.hover},on:{mouseenter:function(e){t.$panel.menu.hover=!0},mouseleave:function(e){t.$panel.menu.hover=!1}}},[e("div",{staticClass:"k-panel-menu-body"},[t.hasSearch?e("k-button",{staticClass:"k-panel-menu-search k-panel-menu-button",attrs:{text:t.$t("search"),icon:"search"},on:{click:function(e){return t.$panel.search()}}}):t._e(),t._l(t.menus,function(s,i){return e("menu",{key:i,staticClass:"k-panel-menu-buttons",attrs:{"data-second-last":i===t.menus.length-2}},t._l(s,function(s){return e("k-button",t._b({key:s.id,staticClass:"k-panel-menu-button",attrs:{title:s.title??s.text}},"k-button",s,!1))}),1)}),t.activationButton?e("menu",[e("k-button",t._b({staticClass:"k-activation-button k-panel-menu-button",attrs:{icon:"key",theme:"love",variant:"filled"}},"k-button",t.activationButton,!1)),e("k-activation",{attrs:{status:t.$panel.license}})],1):t._e()],2),e("k-button",{staticClass:"k-panel-menu-toggle",attrs:{icon:t.$panel.menu.isOpen?"angle-left":"angle-right",title:t.$panel.menu.isOpen?t.$t("collapse"):t.$t("expand"),size:"xs"},on:{click:function(e){return t.$panel.menu.toggle()}}})],1)},[]).exports;const fa=lt({},function(){return(0,this._self._c)("k-panel",{staticClass:"k-panel-outside",attrs:{tabindex:"0"}},[this._t("default")],2)},[]).exports;const ga=lt({},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-panel",attrs:{"data-dragging":t.$panel.drag.isDragging,"data-loading":t.$panel.isLoading,"data-language":t.$panel.language.code,"data-language-default":t.$panel.language.isDefault,"data-menu":t.$panel.menu.isOpen?"true":"false","data-role":t.$panel.user.role,"data-theme":t.$panel.theme.current,"data-translation":t.$panel.translation.code,"data-user":t.$panel.user.id,dir:t.$panel.direction}},[t._t("default"),t.$panel.dialog.isOpen&&!t.$panel.dialog.legacy?e("k-fiber-dialog"):t._e(),t.$panel.drawer.isOpen&&!t.$panel.drawer.legacy?e("k-fiber-drawer"):t._e(),t.$panel.notification.isFatal&&t.$panel.notification.isOpen?e("k-fatal",{attrs:{html:t.$panel.notification.message}}):t._e(),e("k-offline-warning"),e("k-icons"),e("k-overlay",{attrs:{nested:t.$panel.drawer.history.milestones.length>1,visible:t.$panel.drawer.isOpen,type:"drawer"},on:{close:function(e){return t.$panel.drawer.close()}}},[e("portal-target",{staticClass:"k-drawer-portal k-portal",attrs:{name:"drawer",multiple:""}})],1),e("k-overlay",{attrs:{nested:t.$panel.dialog.history.milestones.length>1,visible:t.$panel.dialog.isOpen,type:"dialog"},on:{close:function(e){return t.$panel.dialog.close()}}},[e("portal-target",{staticClass:"k-dialog-portal k-portal",attrs:{name:"dialog",multiple:""}})],1),e("portal-target",{staticClass:"k-overlay-portal k-portal",attrs:{name:"overlay",multiple:""}})],2)},[]).exports;const ba=lt({props:{breadcrumb:Array,view:Object},computed:{crumbs(){return[{link:this.view.link,label:this.view.label??this.view.breadcrumbLabel,icon:this.view.icon,loading:this.$panel.isLoading},...this.breadcrumb]}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-topbar"},[e("k-button",{staticClass:"k-panel-menu-proxy",attrs:{icon:"bars"},on:{click:function(e){return t.$panel.menu.toggle()}}}),e("k-breadcrumb",{staticClass:"k-topbar-breadcrumb",attrs:{crumbs:t.crumbs}}),e("div",{staticClass:"k-topbar-spacer"}),e("div",{staticClass:"k-topbar-signals"},[t._t("default")],2)],1)},[]).exports,ka={install(t){t.use(da),t.component("k-activation",oa),t.component("k-panel",ga),t.component("k-panel-inside",ha),t.component("k-panel-menu",ma),t.component("k-panel-outside",fa),t.component("k-topbar",ba)}};const ya=lt({props:{error:String,layout:String}},function(){var t=this,e=t._self._c;return e(`k-panel-${t.layout}`,{tag:"component",staticClass:"k-error-view"},["outside"===t.layout?[e("div",[e("k-box",{attrs:{icon:"alert",theme:"negative"}},[t._v(t._s(t.error))])],1)]:[e("k-header",[t._v(t._s(t.$t("error")))]),e("k-box",{attrs:{icon:"alert",theme:"negative"}},[t._v(t._s(t.error))])]],2)},[]).exports;const va=lt({mixins:[Ft],props:{type:{default:"pages",type:String}},data:()=>({query:new URLSearchParams(window.location.search).get("query"),pagination:{},results:[]}),computed:{currentType(){return this.$panel.searches[this.type]??Object.values(this.$panel.searches)[0]},empty(){return this.isLoading?this.$t("searching")+"…":this.query.length<2?this.$t("search.min",{min:2}):this.$t("search.results.none")},isLoading(){return this.$panel.searcher.isLoading},tabs(){const t=[];for(const e in this.$panel.searches){const s=this.$panel.searches[e];t.push({label:s.label,link:"/search/?type="+e+"&query="+this.query,name:e})}return t}},watch:{isLoading(t){this.$panel.isLoading=t},query:{handler(){this.search(1)},immediate:!0},type(){this.search()}},methods:{focus(){this.$refs.input?.focus()},onPaginate(t){this.search(t.page)},async search(t){t||(t=new URLSearchParams(window.location.search).get("page")??1);const e=this.$panel.url(window.location,{type:this.currentType.id,query:this.query,page:t});window.history.pushState("","",e.toString());const s=await this.$panel.search(this.currentType.id,this.query,{page:t,limit:15});s&&(this.results=s.results??[],this.pagination=s.pagination)}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-search-view"},[e("k-header",[t._v(" "+t._s(t.$t("search"))+" "),e("k-input",{ref:"input",staticClass:"k-search-view-input",attrs:{slot:"buttons","aria-label":t.$t("search"),autofocus:!0,icon:t.isLoading?"loader":"search",placeholder:t.$t("search")+" …",spellcheck:!1,value:t.query,type:"text"},on:{input:function(e){t.query=e}},slot:"buttons"})],1),e("k-tabs",{attrs:{tab:t.currentType.id,tabs:t.tabs}}),e("div",{staticClass:"k-search-view-results"},[e("k-collection",{attrs:{items:t.results,empty:{icon:t.isLoading?"loader":"search",text:t.empty},pagination:t.pagination},on:{paginate:t.onPaginate}})],1)],1)},[]).exports;const $a=lt({props:{api:String,blueprint:String,buttons:Array,id:String,link:String,lock:{type:[Boolean,Object]},model:Object,next:Object,prev:Object,permissions:{type:Object,default:()=>({})},tab:{type:Object,default:()=>({columns:[]})},tabs:{type:Array,default:()=>[]},uuid:String,versions:Object},data:()=>({isSaved:!0}),computed:{content(){return this.versions.changes},diff(){return this.$panel.content.diff()},editor(){return this.lock.user.email},hasDiff(){return this.$panel.content.hasDiff()},isLocked(){return this.lock.isLocked},isSaving(){return this.$panel.content.isProcessing},modified(){return this.lock.modified}},mounted(){this.$events.on("beforeunload",this.onBeforeUnload),this.$events.on("content.save",this.onContentSave),this.$events.on("keydown.left",this.toPrev),this.$events.on("keydown.right",this.toNext),this.$events.on("model.reload",this.$reload),this.$events.on("view.save",this.onViewSave)},destroyed(){this.$events.off("beforeunload",this.onBeforeUnload),this.$events.off("content.save",this.onContentSave),this.$events.off("keydown.left",this.toPrev),this.$events.off("keydown.right",this.toNext),this.$events.off("model.reload",this.$reload),this.$events.off("view.save",this.onViewSave)},methods:{onBeforeUnload(t){!0!==this.$panel.content.isProcessing&&!1!==this.isSaved||(t.preventDefault(),t.returnValue="")},onContentSave({api:t,language:e}){t===this.api&&e===this.$panel.language.code&&(this.isSaved=!0)},async onDiscard(){await this.$panel.content.discard({api:this.api,language:this.$panel.language.code}),this.$panel.view.refresh()},onInput(t){this.$panel.content.updateLazy(t,{api:this.api,language:this.$panel.language.code})},async onSubmit(){try{await this.$panel.content.publish(this.content,{api:this.api,language:this.$panel.language.code}),this.$panel.notification.success(),this.$events.emit("model.update"),await this.$panel.view.refresh()}catch(t){this.$panel.notification.error(t)}},onViewSave(t){t?.preventDefault?.(),this.onSubmit()},toNext(t){this.next&&"body"===t.target.localName&&this.$go(this.next.link)},toPrev(t){this.prev&&"body"===t.target.localName&&this.$go(this.prev.link)}}},null,null).exports;const xa=lt({extends:$a,props:{extension:String,filename:String,mime:String,preview:Object,type:String,url:String},methods:{onAction(t){if("replace"===t)return this.$panel.upload.replace({extension:this.extension,filename:this.filename,image:this.preview.image,link:this.link,mime:this.mime,url:this.url})}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-file-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint},scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{staticClass:"k-file-view-header",attrs:{editable:t.permissions.changeName&&!t.isLocked},on:{edit:function(e){return t.$dialog(t.api+"/changeName")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons},on:{action:t.onAction}}),e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])},[t._v(" "+t._s(t.filename)+" ")]),e("k-file-preview",t._b({attrs:{content:t.content,"is-locked":t.isLocked},on:{input:t.onInput,submit:t.onSubmit}},"k-file-preview",t.preview,!1)),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("file.blueprint",{blueprint:t.$esc(t.blueprint)}),lock:t.lock,parent:t.api,tab:t.tab},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports;const wa=lt({props:{component:String,content:Object,isLocked:Boolean,props:Object},emits:["input","submit"],computed:{preview(){return this.$helper.isComponent(this.component)?this.component:"k-default-file-preview"}}},function(){var t=this;return(0,t._self._c)(t.preview,t._b({tag:"component",staticClass:"k-file-preview",attrs:{content:t.content,"is-locked":t.isLocked},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}},"component",t.props,!1))},[]).exports;const _a=lt({props:{details:{default:()=>[],type:Array}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-file-preview-details"},[e("dl",[t._l(t.details,function(s){return e("div",{key:s.title},[e("dt",[t._v(t._s(s.title))]),e("dd",[s.link?e("k-link",{attrs:{to:s.link,tabindex:"-1",target:"_blank"}},[t._v(" "+t._s(s.text)+" ")]):[t._v(" "+t._s(s.text)+" ")]],2)])}),t._t("default")],2)])},[]).exports;const Sa=lt({props:{options:{default:()=>[],type:Array}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-file-preview-frame-column"},[e("div",{staticClass:"k-file-preview-frame"},[t._t("default"),t.options.length?[e("k-button",{staticClass:"k-file-preview-frame-dropdown-toggle",attrs:{icon:"dots",size:"xs"},on:{click:function(e){return t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",attrs:{options:t.options,theme:"light"},on:{action:function(e){return t.$emit("action",e)}}})]:t._e()],2)])},[]).exports;const Ca=lt({props:{details:Array,image:{default:()=>({}),type:Object}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-default-file-preview"},[e("k-file-preview-frame",[e("k-icon",{staticClass:"k-item-icon",attrs:{color:t.$helper.color(t.image.color),type:t.image.icon}})],1),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports;const Oa=lt({props:{details:Array,url:String}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-audio-file-preview"},[e("audio",{attrs:{controls:"",preload:"metadata",src:t.url}}),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports;const Aa=lt({props:{content:{default:()=>({}),type:Object},details:Array,focusable:Boolean,image:{default:()=>({}),type:Object},isLocked:Boolean,url:String},emits:["focus","input"],computed:{focus(){const t=this.content.focus;if(!t)return;const[e,s]=t.replaceAll("%","").split(" ");return{x:parseFloat(e),y:parseFloat(s)}},hasFocus(){return Boolean(this.focus)},isFocusable(){return!0===this.focusable&&!0!==this.isLocked},options(){return[{icon:"open",text:this.$t("open"),link:this.url,target:"_blank"},{icon:"cancel",text:this.$t("file.focus.reset"),click:()=>this.setFocus(void 0),when:this.isFocusable&&this.hasFocus},{icon:"preview",text:this.$t("file.focus.placeholder"),click:()=>this.setFocus({x:50,y:50}),when:this.isFocusable&&!this.hasFocus}]}},methods:{setFocus(t){if(!1===this.isFocusable)return!1;t?!0===this.$helper.object.isObject(t)&&(t=`${t.x.toFixed(1)}% ${t.y.toFixed(1)}%`):t=null,this.$emit("input",{focus:t})}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-default-file-preview k-image-file-preview",attrs:{"data-has-focus":t.hasFocus}},[e("k-file-preview-frame",{attrs:{options:t.options}},[e("k-coords-input",{attrs:{disabled:!t.isFocusable,value:t.focus},on:{input:function(e){return t.setFocus(e)}}},[e("img",t._b({on:{dragstart:function(t){t.preventDefault()}}},"img",t.image,!1))])],1),e("k-file-preview-details",{attrs:{details:t.details}},[t.image.src?e("div",{staticClass:"k-image-file-preview-focus"},[e("dt",[t._v(t._s(t.$t("file.focus.title")))]),e("dd",[t.isFocusable?e("k-button",{ref:"focus",attrs:{icon:t.focus?"cancel-small":"preview",title:t.focus?t.$t("file.focus.reset"):void 0,size:"xs",variant:"filled"},on:{click:function(e){t.focus?t.setFocus(void 0):t.setFocus({x:50,y:50})}}},[t.hasFocus?[t._v(t._s(t.focus.x)+"% "+t._s(t.focus.y)+"%")]:[t._v(t._s(t.$t("file.focus.placeholder")))]],2):t.hasFocus?[t._v(" "+t._s(t.focus.x)+"% "+t._s(t.focus.y)+"% ")]:[t._v("–")]],2)]):t._e()])],1)},[]).exports;const Ma=lt({props:{details:Array,image:{default:()=>({}),type:Object},url:String},computed:{supported:()=>window.navigator.pdfViewerEnabled}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-default-file-preview k-pdf-file-preview",attrs:{"data-supported":t.supported}},[e("object",{staticClass:"k-pdf-file-preview-object",attrs:{data:t.url,type:"application/pdf"}},[e("k-file-preview-frame",[e("a",{attrs:{href:t.url}},[e("k-icon",{staticClass:"k-item-icon",attrs:{color:t.$helper.color(t.image.color),type:t.image.icon}})],1)])],1),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports;const Da=lt({props:{details:Array,url:String},computed:{options(){return[{icon:"download",text:this.$t("download"),link:this.url,download:!0}]}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-video-file-preview"},[e("k-file-preview-frame",{attrs:{options:t.options}},[e("video",{attrs:{controls:"",preload:"metadata",src:t.url}})]),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports,Ea={install(t){t.component("k-file-view",xa),t.component("k-file-preview",wa),t.component("k-file-preview-details",_a),t.component("k-file-preview-frame",Sa),t.component("k-default-file-preview",Ca),t.component("k-audio-file-preview",Oa),t.component("k-image-file-preview",Aa),t.component("k-pdf-file-preview",Ma),t.component("k-video-file-preview",Da)}};const ja=lt({props:{isInstallable:Boolean,isInstalled:Boolean,isOk:Boolean,requirements:Object,translations:Array},data(){return{user:{name:"",email:"",language:this.$panel.translation.code,password:"",role:"admin"}}},computed:{fields(){return{email:{label:this.$t("email"),type:"email",link:!1,autofocus:!0,required:!0},password:{label:this.$t("password"),type:"password",placeholder:this.$t("password")+" …",required:!0},language:{label:this.$t("language"),type:"select",options:this.translations,icon:"translate",empty:!1,required:!0}}},isReady(){return this.isOk&&this.isInstallable},isComplete(){return this.isOk&&this.isInstalled}},methods:{async install(){try{await this.$api.system.install(this.user),await this.$reload({globals:["$system","$translation"]}),this.$panel.notification.success({message:this.$t("welcome")+"!",icon:"smile"})}catch(t){this.$panel.error(t)}}}},function(){var t=this,e=t._self._c;return e("k-panel-outside",{staticClass:"k-installation-view"},[e("div",{staticClass:"k-dialog k-installation-dialog"},[e("k-dialog-body",[t.isComplete?e("k-text",[e("k-headline",[t._v(t._s(t.$t("installation.completed")))]),e("k-link",{attrs:{to:"/login"}},[t._v(" "+t._s(t.$t("login"))+" ")])],1):t.isReady?e("form",{on:{submit:function(e){return e.preventDefault(),t.install.apply(null,arguments)}}},[e("h1",{staticClass:"sr-only"},[t._v(" "+t._s(t.$t("installation"))+" ")]),e("k-fieldset",{attrs:{fields:t.fields,value:t.user},on:{input:function(e){t.user=e}}}),e("k-button",{attrs:{text:t.$t("install"),icon:"check",size:"lg",theme:"positive",type:"submit",variant:"filled"}})],1):e("div",[e("k-headline",[t._v(" "+t._s(t.$t("installation.issues.headline"))+" ")]),e("ul",{staticClass:"k-installation-issues",attrs:{"data-theme":"negative"}},[!1===t.isInstallable?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.disabled"))}})],1):t._e(),!1===t.requirements.php?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.php"))}})],1):t._e(),!1===t.requirements.server?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.server"))}})],1):t._e(),!1===t.requirements.mbstring?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.mbstring"))}})],1):t._e(),!1===t.requirements.curl?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.curl"))}})],1):t._e(),!1===t.requirements.accounts?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.accounts"))}})],1):t._e(),!1===t.requirements.content?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.content"))}})],1):t._e(),!1===t.requirements.media?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.media"))}})],1):t._e(),!1===t.requirements.sessions?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.sessions"))}})],1):t._e()]),e("k-button",{attrs:{text:t.$t("retry"),icon:"refresh",size:"lg",theme:"positive",variant:"filled"},on:{click:t.$reload}})],1)],1)],1)])},[]).exports,Ia={install(t){t.component("k-installation-view",ja)}};const Ba=lt({props:{buttons:Array,languages:{type:Array,default:()=>[]},variables:{type:Boolean,default:!0}},computed:{languagesCollection(){return this.languages.map(t=>({...t,image:{back:"black",color:"gray",icon:"translate"},link:()=>{if(!1===this.variables)return null;this.$go(`languages/${t.id}`)},options:[{icon:"edit",text:this.$t("edit"),disabled:!1===this.variables,click:()=>this.$go(`languages/${t.id}`)},{icon:"cog",text:this.$t("settings"),dialog:`languages/${t.id}/update`,disabled:!this.$panel.permissions.languages.update},{when:t.deletable,icon:"trash",text:this.$t("delete"),dialog:`languages/${t.id}/delete`,disabled:!this.$panel.permissions.languages.delete}]}))},primaryLanguage(){return this.languagesCollection.filter(t=>t.default)},secondaryLanguages(){return this.languagesCollection.filter(t=>!1===t.default)}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-languages-view"},[e("k-header",{scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.languages"))+" ")]),t.languages.length>0?[e("k-section",{attrs:{headline:t.$t("languages.default")}},[e("k-collection",{attrs:{items:t.primaryLanguage}})],1),e("k-section",{attrs:{headline:t.$t("languages.secondary")}},[t.secondaryLanguages.length?e("k-collection",{attrs:{items:t.secondaryLanguages}}):e("k-empty",{attrs:{icon:"translate",disabled:!t.$panel.permissions.languages.create},on:{click:function(e){return t.$dialog("languages/create")}}},[t._v(" "+t._s(t.$t("languages.secondary.empty"))+" ")])],1)]:0===t.languages.length?[e("k-empty",{attrs:{icon:"translate",disabled:!t.$panel.permissions.languages.create},on:{click:function(e){return t.$dialog("languages/create")}}},[t._v(" "+t._s(t.$t("languages.empty"))+" ")])]:t._e()],2)},[]).exports;const La=lt({props:{buttons:Array,code:String,deletable:Boolean,direction:String,id:String,info:Array,next:Object,name:String,prev:Object,translations:Array,url:String},computed:{canUpdate(){return this.$panel.permissions.languages.update}},methods:{createTranslation(){this.canUpdate&&this.$dialog(`languages/${this.id}/translations/create`)},option(t,e){this.canUpdate&&this.$dialog(`languages/${this.id}/translations/${window.btoa(encodeURIComponent(e.key))}/${t}`)},updateTranslation({row:t}){this.canUpdate&&this.$dialog(`languages/${this.id}/translations/${window.btoa(encodeURIComponent(t.key))}/update`)}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-language-view",scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{attrs:{editable:t.canUpdate},on:{edit:function(e){return t.$dialog(`languages/${t.id}/update`)}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.name)+" ")]),e("k-section",{attrs:{headline:t.$t("language.settings")}},[e("k-stats",{attrs:{reports:t.info,size:"small"}})],1),e("k-section",{attrs:{buttons:[{click:t.createTranslation,disabled:!t.canUpdate,icon:"add",text:t.$t("add")}],headline:t.$t("language.variables")}},[t.translations.length?[e("k-table",{attrs:{columns:{key:{label:t.$t("language.variable.key"),mobile:!0,width:"1/4"},value:{label:t.$t("language.variable.value"),mobile:!0}},disabled:!t.canUpdate,rows:t.translations},on:{cell:t.updateTranslation,option:t.option}})]:[e("k-empty",{attrs:{disabled:!t.canUpdate,icon:"translate"},on:{click:t.createTranslation}},[t._v(" "+t._s(t.$t("language.variables.empty"))+" ")])]],2)],1)},[]).exports,Ta={install(t){t.component("k-languages-view",Ba),t.component("k-language-view",La)}};const Pa=lt({emits:["click"]},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-notification k-login-alert",attrs:{"data-theme":"error"}},[e("p",[t._t("default")],2),e("k-button",{attrs:{icon:"cancel"},on:{click:function(e){return t.$emit("click")}}})],1)},[]).exports,qa={props:{methods:{type:Array,default:()=>[]},pending:{type:Object,default:()=>({challenge:"email"})},value:String}};const Na=lt({mixins:[qa],emits:["error"],data(){return{code:this.value??"",isLoading:!1}},computed:{mode(){return this.methods.includes("password-reset")?"password-reset":"login"},submitText(){const t=this.isLoading?" …":"";return"password-reset"===this.mode?this.$t("login.reset")+t:this.$t("login")+t}},methods:{async login(){this.$emit("error",null),this.isLoading=!0;try{await this.$api.auth.verifyCode(this.code),this.$panel.notification.success({message:this.$t("welcome")+"!",icon:"smile"}),"password-reset"===this.mode?this.$go("reset-password"):this.$reload()}catch(t){this.$emit("error",t)}finally{this.isLoading=!1}}}},function(){var t=this,e=t._self._c;return e("form",{staticClass:"k-login-form k-login-code-form",on:{submit:function(e){return e.preventDefault(),t.login.apply(null,arguments)}}},[t.pending.email?e("k-user-info",{attrs:{user:t.pending.email}}):t._e(),e("k-text-field",{attrs:{autofocus:!0,counter:!1,help:t.$t("login.code.text."+t.pending.challenge),label:t.$t("login.code.label."+t.mode),placeholder:t.$t("login.code.placeholder."+t.pending.challenge),required:!0,value:t.code,autocomplete:"one-time-code",icon:"unlock",name:"code"},on:{input:function(e){t.code=e}}}),e("footer",{staticClass:"k-login-buttons"},[e("k-button",{staticClass:"k-login-button k-login-back-button",attrs:{text:t.$t("back"),icon:"angle-left",link:"/logout",size:"lg",variant:"filled"}}),e("k-button",{staticClass:"k-login-button",attrs:{text:t.submitText,icon:"check",size:"lg",type:"submit",theme:"positive",variant:"filled"}})],1)],1)},[]).exports,Fa={props:{methods:{type:Array,default:()=>[]},value:{type:Object,default:()=>({})}}};const za=lt({mixins:[Fa],emits:["error"],data(){return{mode:null,isLoading:!1,user:{email:"",password:"",remember:!1,...this.value}}},computed:{alternateMode(){return"email-password"===this.form?"email":"email-password"},canToggle(){return null!==this.codeMode&&(!1!==this.methods.includes("password")&&(!0===this.methods.includes("password-reset")||!0===this.methods.includes("code")))},codeMode(){return!0===this.methods.includes("password-reset")?"password-reset":!0===this.methods.includes("code")?"code":null},fields(){const t={email:{autofocus:!0,label:this.$t("email"),type:"email",required:!0,link:!1}};return"email-password"===this.form&&(t.password={label:this.$t("password"),type:"password",minLength:8,required:!0,autocomplete:"current-password",counter:!1}),t},form(){return this.mode?this.mode:"password"===this.methods[0]?"email-password":"email"},isResetForm(){return"password-reset"===this.codeMode&&"email"===this.form},submitText(){const t=this.isLoading?" …":"";return this.isResetForm?this.$t("login.reset")+t:this.$t("login")+t},toggleText(){return this.$t("login.toggleText."+this.codeMode+"."+this.alternateMode)}},methods:{async login(){this.$emit("error",null),this.isLoading=!0;const t={...this.user};"email"===this.mode&&(t.password=null),!0===this.isResetForm&&(t.remember=!1);try{await this.$api.auth.login(t),this.$reload({globals:["$system","$translation"]}),this.$panel.notification.success({message:this.$t("welcome")+"!",icon:"smile"})}catch(e){this.$emit("error",e)}finally{this.isLoading=!1}},toggle(){this.mode=this.alternateMode,this.$refs.fieldset.focus("email")}}},function(){var t=this,e=t._self._c;return e("form",{staticClass:"k-login-form",on:{submit:function(e){return e.preventDefault(),t.login.apply(null,arguments)}}},[e("div",{staticClass:"k-login-fields"},[!0===t.canToggle?e("button",{staticClass:"k-login-toggler",attrs:{type:"button"},on:{click:t.toggle}},[t._v(" "+t._s(t.toggleText)+" ")]):t._e(),e("k-fieldset",{ref:"fieldset",attrs:{fields:t.fields,value:t.user},on:{input:function(e){t.user=e}}})],1),e("footer",{staticClass:"k-login-buttons"},[!1===t.isResetForm?e("k-checkbox-input",{attrs:{label:t.$t("login.remember"),checked:t.user.remember,value:t.user.remember},on:{input:function(e){t.user.remember=e}}}):t._e(),e("k-button",{staticClass:"k-login-button",attrs:{icon:"check",size:"lg",theme:"positive",type:"submit",variant:"filled"}},[t._v(" "+t._s(t.submitText)+" ")])],1)])},[]).exports;const Ya=lt({components:{"k-login-plugin-form":window.panel.plugins.login},mixins:[qa,Fa],props:{value:{type:Object,default:()=>({code:"",email:"",password:""})}},data:()=>({issue:""}),computed:{component:()=>window.panel.plugins.login?"k-login-plugin-form":"k-login-form",form(){return this.pending.email?"code":"login"}},methods:{async onError(t){null!==t?(!0===t.details.challengeDestroyed&&await this.$reload({globals:["$system"]}),this.issue=t.message):this.issue=null}}},function(){var t=this,e=t._self._c;return e("k-panel-outside",{class:"code"===t.form?"k-login-code-view":"k-login-view"},[e("div",{staticClass:"k-dialog k-login k-login-dialog"},[e("h1",{staticClass:"sr-only"},[t._v(" "+t._s(t.$t("login"))+" ")]),t.issue?e("k-login-alert",{nativeOn:{click:function(e){t.issue=null}}},[t._v(" "+t._s(t.issue)+" ")]):t._e(),e("k-dialog-body",["code"===t.form?e("k-login-code-form",t._b({on:{error:t.onError}},"k-login-code-form",{methods:t.methods,pending:t.pending,value:t.value.code},!1)):e(t.component,t._b({tag:"component",on:{error:t.onError}},"component",{methods:t.methods,value:t.value},!1))],1)],1)])},[]).exports,Ra={install(t){t.component("k-login-alert",Pa),t.component("k-login-code-form",Na),t.component("k-login-form",za),t.component("k-login-view",Ya),t.component("k-login",za),t.component("k-login-code",Na)}};const Ha=lt({extends:$a,props:{title:String}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-page-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint},scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{staticClass:"k-page-view-header",attrs:{editable:t.permissions.changeTitle&&!t.isLocked},on:{edit:function(e){return t.$dialog(t.api+"/changeTitle")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}}),e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified,preview:!!t.permissions.preview&&t.api+"/preview/changes"},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])},[t._v(" "+t._s(t.title)+" ")]),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("page.blueprint",{blueprint:t.$esc(t.blueprint)}),lock:t.lock,parent:t.api,tab:t.tab},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports;const Ua=lt({extends:$a,props:{title:String}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-site-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint}},[e("k-header",{staticClass:"k-site-view-header",attrs:{editable:t.permissions.changeTitle&&!t.isLocked},on:{edit:function(e){return t.$dialog(t.api+"/changeTitle")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}}),e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified,preview:!!t.permissions.preview&&t.api+"/preview/changes"},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])},[t.title&&0!==t.title.length?[t._v(" "+t._s(t.title)+" ")]:e("span",{staticClass:"k-header-title-placeholder"},[t._v(" "+t._s(t.$t("view.site"))+" … ")])],2),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("site.blueprint"),lock:t.lock,tab:t.tab,parent:"site"},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports,Va={install(t){t.component("k-page-view",Ha),t.component("k-site-view",Ua)}};const Ka=lt({mixins:[Ue],props:{label:String,src:String,versionId:String},emits:["discard","submit"],computed:{srcWithPreviewParam(){const t=new URL(this.src,this.$panel.urls.site);return t.searchParams.append("_preview",!0),t.toString()}},mounted(){this.$events.on("content.discard",this.reload),this.$events.on("content.publish",this.reload)},destroyed(){this.$events.off("content.discard",this.reload),this.$events.off("content.publish",this.reload)},methods:{reload(){this.$refs.browser.contentWindow.location.reload()}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-preview-browser"},[e("header",{staticClass:"k-preview-browser-header"},[e("k-headline",[e("k-icon",{attrs:{type:"git-branch"}}),t._v(" "+t._s(t.label)+" ")],1),e("k-button-group",["changes"===t.versionId?[!1===t.hasDiff?e("p",{staticClass:"k-preview-browser-message"},[t._v(" "+t._s(t.$t("lock.unsaved.empty"))+" ")]):e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified,size:"xs"},on:{discard:function(e){return t.$emit("discard",e)},submit:function(e){return t.$emit("submit",e)}}})]:t._e(),e("k-button",{attrs:{link:t.src,icon:"open",size:"xs",target:"_blank"}})],2)],1),e("iframe",{ref:"browser",attrs:{src:t.srcWithPreviewParam}})])},[]).exports;const Wa=lt({extends:$a,props:{back:String,versionId:String,src:Object,title:String},mounted(){this.$events.on("keydown.esc",this.exit)},destroyed(){this.$events.off("keydown.esc",this.exit)},methods:{browserProps(t){return{editor:this.editor,hasDiff:this.hasDiff,isLocked:this.isLocked,modified:this.modified,label:this.$t("version."+t),src:this.src[t],versionId:t}},exit(){this.$panel.overlays().length>0||this.$panel.view.open(this.link)},navigate(t){if(t.id===this.id)return;if(this.$refs.tree.close(),"/"===t.id)return this.$panel.view.open("site/preview/"+this.versionId);const e=this.$api.pages.url(t.id,"preview/"+this.versionId);this.$panel.view.open(e)}}},function(){var t=this,e=t._self._c;return e("k-panel",{staticClass:"k-panel-inside k-preview-view",attrs:{"data-version-id":t.versionId}},[e("header",{staticClass:"k-preview-view-header"},[e("k-button-group",[e("k-button",{attrs:{link:t.back,responsive:!0,title:t.$t("back"),icon:"angle-left",size:"sm",variant:"filled"}}),e("k-button",{staticClass:"k-preview-view-title",attrs:{icon:t.$panel.isLoading?"loader":"title",dropdown:!0},on:{click:function(e){return t.$refs.tree.toggle()}}},[t._v(" "+t._s(t.title)+" ")]),e("k-dropdown-content",{ref:"tree",staticClass:"k-preview-view-tree",attrs:{theme:"dark"}},[e("k-page-tree",{attrs:{current:t.id},on:{select:t.navigate},nativeOn:{click:function(t){t.stopPropagation()}}})],1)],1),e("k-button-group",[e("k-view-buttons",{attrs:{buttons:t.buttons}})],1)],1),e("main",{staticClass:"k-preview-view-grid"},["compare"===t.versionId?[e("k-preview-browser",t._b({on:{discard:t.onDiscard,submit:t.onSubmit}},"k-preview-browser",t.browserProps("latest"),!1)),e("k-preview-browser",t._b({on:{discard:t.onDiscard,submit:t.onSubmit}},"k-preview-browser",t.browserProps("changes"),!1))]:[e("k-preview-browser",t._b({on:{discard:t.onDiscard,submit:t.onSubmit}},"k-preview-browser",t.browserProps(t.versionId),!1))]],2)])},[]).exports,Ja={install(t){t.component("k-preview-browser",Ka),t.component("k-preview-view",Wa)}};const Ga=lt({extends:$a,props:{avatar:String,canChangeEmail:Boolean,canChangeLanguage:Boolean,canChangeName:Boolean,canChangeRole:Boolean,email:String,language:String,name:String,role:String}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-user-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint},scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{staticClass:"k-user-view-header",attrs:{editable:t.canChangeName},on:{edit:function(e){return t.$dialog(t.api+"/changeName")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}}),e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])},[t.name&&0!==t.name.length?[t._v(" "+t._s(t.name)+" ")]:e("span",{staticClass:"k-header-title-placeholder k-user-name-placeholder"},[t._v(" "+t._s(t.$t("name"))+" … ")])],2),e("k-user-profile",{attrs:{id:t.id,api:t.api,avatar:t.avatar,email:t.email,"can-change-email":t.canChangeEmail,"can-change-language":t.canChangeLanguage,"can-change-name":t.canChangeName,"can-change-role":t.canChangeRole,"is-locked":t.isLocked,language:t.language,role:t.role}}),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("user.blueprint",{blueprint:t.$esc(t.blueprint)}),lock:t.lock,parent:t.api,tab:t.tab},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports;const Xa=lt({extends:Ga,prevnext:!1},null,null).exports;const Za=lt({props:{requirePassword:{type:Boolean,default:!1}},data:()=>({isLoading:!1,values:{currentPassword:null,password:null,passwordConfirmation:null}}),computed:{fields(){let t={};return!0===this.requirePassword&&(t={currentPassword:{autofocus:!0,label:this.$t("user.changePassword.current"),icon:"key",type:"password",width:"1/2"},gap:{type:"gap",width:"1/2"}}),{...t,password:{autofocus:!1===this.requirePassword,label:this.$t("user.changePassword.new"),icon:"key",type:"password",width:"1/2"},passwordConfirmation:{label:this.$t("user.changePassword.new.confirm"),icon:"key",type:"password",width:"1/2"}}}},mounted(){this.$panel.title=this.$t("view.resetPassword")},methods:{async submit(){if(!this.values.password||this.values.password.length<8)return this.$panel.notification.error(this.$t("error.user.password.invalid"));if(this.values.password!==this.values.passwordConfirmation)return this.$panel.notification.error(this.$t("error.user.password.notSame"));this.isLoading=!0;try{await this.$api.users.changePassword(this.$panel.user.id,this.values.password,this.values.currentPassword),this.$panel.notification.success(),this.$go("/")}catch(t){this.$panel.notification.error(t)}finally{this.isLoading=!1}}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-password-reset-view"},[e("form",{on:{submit:function(e){return e.preventDefault(),t.submit.apply(null,arguments)}}},[e("k-header",{scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-button",{attrs:{icon:"check",theme:"notice",type:"submit",variant:"filled",size:"sm"}},[t._v(" "+t._s(t.$t("change"))+" "),t.isLoading?[t._v(" … ")]:t._e()],2)]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.resetPassword"))+" ")]),e("k-user-info",{attrs:{user:t.$panel.user}}),e("k-fieldset",{attrs:{fields:t.fields,value:t.values}})],1)])},[]).exports;const Qa=lt({props:{api:String,avatar:String,id:String,isLocked:Boolean},methods:{open(){this.avatar?this.$refs.dropdown.toggle():this.upload()},async remove(){await this.$api.users.deleteAvatar(this.id),this.$panel.notification.success(),this.$reload()},upload(){this.$panel.upload.pick({url:this.$panel.urls.api+"/"+this.api+"/avatar",accept:"image/*",immediate:!0,multiple:!1,on:{done:()=>{this.$panel.view.reload()}}})}}},function(){var t=this,e=t._self._c;return e("k-button",{staticClass:"k-user-view-image",attrs:{disabled:t.isLocked,title:t.$t("avatar")},on:{click:t.open}},[t.avatar?[e("k-image-frame",{attrs:{cover:!0,src:t.avatar}}),e("k-dropdown-content",{ref:"dropdown",attrs:{options:[{icon:"upload",text:t.$t("change"),click:t.upload},{icon:"trash",text:t.$t("delete"),click:t.remove}]}})]:e("k-icon-frame",{attrs:{icon:"user"}})],2)},[]).exports;const tl=lt({props:{user:[Object,String]}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-user-info"},[t.user.avatar?e("k-image-frame",{attrs:{cover:!0,src:t.user.avatar.url,ratio:"1/1"}}):e("k-icon-frame",{attrs:{color:"white",back:"black",icon:"user"}}),t._v(" "+t._s(t.user.name??t.user.email??t.user)+" ")],1)},[]).exports;const el=lt({props:{api:String,avatar:String,canChangeEmail:Boolean,canChangeLanguage:Boolean,canChangeRole:Boolean,email:String,id:String,isLocked:Boolean,language:String,role:String}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-user-profile"},[e("k-user-avatar",{attrs:{id:t.id,api:t.api,avatar:t.avatar,"is-locked":t.isLocked}}),e("k-button-group",{attrs:{buttons:[{icon:"email",text:t.email,title:`${t.$t("email")}: ${t.email}`,disabled:!t.canChangeEmail,click:()=>t.$dialog(t.api+"/changeEmail")},{icon:"bolt",text:t.role,title:`${t.$t("role")}: ${t.role}`,disabled:!t.canChangeRole,click:()=>t.$dialog(t.api+"/changeRole")},{icon:"translate",text:t.language,title:`${t.$t("language")}: ${t.language}`,disabled:!t.canChangeLanguage,click:()=>t.$dialog(t.api+"/changeLanguage")}]}})],1)},[]).exports;const sl=lt({props:{buttons:Array,role:Object,roles:Array,search:String,title:String,users:Object},computed:{empty(){return{icon:"users",text:this.$t("role.empty")}},items(){return this.users.data.map(t=>(t.options=this.$dropdown(t.link),t))},tabs(){const t=[{name:"all",label:this.$t("role.all"),link:"/users"}];for(const e of this.roles)t.push({name:e.id,label:e.title,link:"/users?role="+e.id});return t}},methods:{create(){this.$dialog("users/create",{query:{role:this.role?.id}})},paginate(t){this.$reload({query:{page:t.page}})}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-users-view"},[e("k-header",{staticClass:"k-users-view-header",scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.users"))+" ")]),e("k-tabs",{attrs:{tab:t.role?.id??"all",tabs:t.tabs}}),e("k-collection",{attrs:{empty:t.empty,items:t.items,pagination:t.users.pagination},on:{paginate:t.paginate}})],1)},[]).exports,il={install(t){t.component("k-account-view",Xa),t.component("k-reset-password-view",Za),t.component("k-user-avatar",Qa),t.component("k-user-info",tl),t.component("k-user-profile",el),t.component("k-user-view",Ga),t.component("k-users-view",sl)}};const nl=lt({components:{Plugins:lt({props:{plugins:Array}},function(){var t=this,e=t._self._c;return t.plugins.length?e("k-section",{attrs:{headline:t.$t("plugins"),link:"https://getkirby.com/plugins"}},[e("k-table",{attrs:{index:!1,columns:{name:{label:t.$t("name"),type:"url",mobile:!0},author:{label:t.$t("author")},license:{label:t.$t("license"),type:"license"},status:{label:t.$t("license.status"),type:"license-status"},version:{label:t.$t("version"),type:"update-status",mobile:!0,width:"10rem"}},rows:t.plugins}})],1):t._e()},[]).exports,Security:lt({props:{exceptions:{type:Array,default:()=>[]},security:{type:Array,default:()=>[]},urls:{type:[Object,Array],default:()=>({})}},data(){return{issues:this.$helper.object.clone(this.security)}},async mounted(){console.info("Running system health checks for the Panel system view; failed requests in the following console output are expected behavior.");const t=(Promise.allSettled??Promise.all).bind(Promise),e=Object.entries(this.urls??{}).map(this.check);await t(e),console.info(`System health checks ended. ${this.issues.length-this.security.length} issues with accessible files/folders found (see the security list in the system view).`)},methods:{async check([t,e]){if(!e)return;const{status:s}=await fetch(e,{cache:"no-store"});s<400&&this.issues.push({id:t,text:this.$t("system.issues."+t),link:"https://getkirby.com/security/"+t,icon:"folder"})},retry(){this.$go(window.location.href)}}},function(){var t=this,e=t._self._c;return t.issues.length?e("k-section",{attrs:{headline:t.$t("security"),buttons:[{title:t.$t("retry"),icon:"refresh",click:t.retry}]}},[e("k-items",{attrs:{items:t.issues.map(t=>({theme:"negative",image:{back:"light-dark(var(--theme-color-200), var(--theme-color-900))",icon:t.icon??"alert",color:"var(--theme-color-icon)"},target:"_blank",...t}))}})],1):t._e()},[]).exports},props:{buttons:Array,environment:Array,exceptions:Array,info:Object,plugins:Array,security:Array,urls:[Object,Array]},mounted(){this.exceptions.length>0&&(console.info("The following errors occurred during the update check of Kirby and/or plugins:"),this.exceptions.map(t=>console.warn(t)),console.info("End of errors from the update check."))},methods:{copy(){const t=JSON.stringify({info:this.info,security:this.security.map(t=>t.text),plugins:this.plugins.map(t=>({name:t.name.text,version:t.version.currentVersion}))},null,2);this.$helper.clipboard.write(t),this.$panel.notification.success({message:this.$t("system.info.copied")})}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-system-view"},[e("k-header",{scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.system"))+" ")]),e("k-section",{attrs:{headline:t.$t("environment"),buttons:[{text:t.$t("system.info.copy"),icon:"copy",responsive:!0,click:t.copy}]}},[e("k-stats",{staticClass:"k-system-info",attrs:{reports:t.environment,size:"medium"}})],1),e("security",{attrs:{security:t.security,urls:t.urls}}),e("plugins",{attrs:{plugins:t.plugins}})],1)},[]).exports;const ol=lt({inheritAttrs:!1,props:{value:Object}},function(){var t=this,e=t._self._c;return t.value.link?e("k-url-field-preview",{attrs:{value:{href:t.value.link,text:t.value.name}}}):e("k-text-field-preview",{attrs:{value:t.value.name}})},[]).exports;const rl=lt({inheritAttrs:!1,props:{value:Object},computed:{element(){return this.value.dialog||this.value.drawer||this.value.link?null:"span"}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-table-license-status-cell"},[e("k-button",{attrs:{dialog:t.value.dialog,drawer:t.value.drawer,element:t.element,icon:t.value.icon,link:t.value.link,theme:t.value.theme,size:"xs",target:"_blank"}},[t._v(" "+t._s(t.value.label)+" ")])],1)},[]).exports;const al=lt({props:{value:[String,Object]}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-table-update-status-cell"},["string"==typeof t.value?e("span",{staticClass:"k-table-update-status-cell-version"},[t._v(" "+t._s(t.value)+" ")]):[e("k-button",{staticClass:"k-table-update-status-cell-button",attrs:{dropdown:!0,icon:t.value.icon,href:t.value.url,text:t.value.currentVersion,theme:t.value.theme,size:"xs",variant:"filled"},on:{click:function(e){return e.stopPropagation(),t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",attrs:{"align-x":"end"}},[e("dl",{staticClass:"k-plugin-info"},[e("dt",[t._v(t._s(t.$t("plugin")))]),e("dd",[t._v(t._s(t.value.pluginName))]),e("dt",[t._v(t._s(t.$t("version.current")))]),e("dd",[t._v(t._s(t.value.currentVersion))]),e("dt",[t._v(t._s(t.$t("version.latest")))]),e("dd",[t._v(t._s(t.value.latestVersion))]),e("dt",[t._v(t._s(t.$t("system.updateStatus")))]),e("dd",{attrs:{"data-theme":t.value.theme}},[t._v(t._s(t.value.label))])]),t.value.url?[e("hr"),e("k-button",{attrs:{icon:"open",link:t.value.url}},[t._v(" "+t._s(t.$t("versionInformation"))+" ")])]:t._e()],2)]],2)},[]).exports,ll={install(t){t.component("k-system-view",nl),t.component("k-table-license-cell",ol),t.component("k-table-license-status-cell",rl),t.component("k-table-update-status-cell",al)}},cl={install(t){t.component("k-error-view",ya),t.component("k-search-view",va),t.use(Ea),t.use(Ia),t.use(Ta),t.use(Ra),t.use(Va),t.use(Ja),t.use(ll),t.use(il)}},ul={install(t){t.use(gt),t.use(oe),t.use(_e),t.use(Ne),t.use(Uo),t.use(Xo),t.use(br),t.use(Cr),t.use(qr),t.use(Wr),t.use(Qr),t.use(na),t.use(ka),t.use(cl),t.use(q)}},pl={install(t){window.onunhandledrejection=t=>{t.preventDefault(),window.panel.error(t.reason)},t.config.errorHandler=window.panel.error.bind(window.panel)}},dl=(t={})=>{var e=t.desc?-1:1,s=-e,i=/^0/,n=/\s+/g,o=/^\s+|\s+$/g,r=/[^\x00-\x80]/,a=/^0x[0-9a-f]+$/i,l=/(0x[\da-fA-F]+|(^[\+\-]?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?(?=\D|\s|$))|\d+)/g,c=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,u=t.insensitive?function(t){return function(t){if(t.toLocaleLowerCase)return t.toLocaleLowerCase();return t.toLowerCase()}(""+t).replace(o,"")}:function(t){return(""+t).replace(o,"")};function p(t){return t.replace(l,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0")}function d(t,e){return(!t.match(i)||1===e)&&parseFloat(t)||t.replace(n," ").replace(o,"")||0}return function(t,i){var n=u(t),o=u(i);if(!n&&!o)return 0;if(!n&&o)return s;if(n&&!o)return e;var l=p(n),h=p(o),m=parseInt(n.match(a),16)||1!==l.length&&Date.parse(n),f=parseInt(o.match(a),16)||m&&o.match(c)&&Date.parse(o)||null;if(f){if(mf)return e}for(var g=l.length,b=h.length,k=0,y=Math.max(g,b);k0)return e;if(x<0)return s;if(k===y-1)return 0}else{if(v<$)return s;if(v>$)return e}}return 0}};RegExp.escape=function(t){return t.replace(new RegExp("[-/\\\\^$*+?.()[\\]{}]","gu"),"\\$&")};function hl(t){return Array.isArray(t)?t:[t]}const ml={fromObject:function(t){return Array.isArray(t)?t:Object.values(t??{})},search:(t,e,s={})=>{if((e??"").length<=(s.min??0))return t;const i=new RegExp(RegExp.escape(e),"ig"),n=s.field??"text",o=t.filter(t=>!!t[n]&&null!==t[n].match(i));return s.limit?o.slice(0,s.limit):o},sortBy:function(t,e){const s=e.split(" "),i=s[0],n=s[1]??"asc",o=dl({desc:"desc"===n,insensitive:!0});return t.sort((t,e)=>{const s=String(t[i]??""),n=String(e[i]??"");return o(s,n)})},split:function(t,e){return t.reduce((t,s)=>(s===e?t.push([]):t[t.length-1].push(s),t),[[]])},wrap:hl};const fl={read:function(t,e=!1){if(!t)return null;if("string"==typeof t)return t;if(t instanceof ClipboardEvent){if(t.preventDefault(),!0===e)return t.clipboardData.getData("text/plain");const s=t.clipboardData.getData("text/html")||t.clipboardData.getData("text/plain")||null;if(s)return s.replace(/\u00a0/g," ")}return null},write:function(t,e){if("string"!=typeof t&&(t=JSON.stringify(t,null,2)),e&&e instanceof ClipboardEvent)return e.preventDefault(),e.clipboardData.setData("text/plain",t),!0;const s=document.createElement("textarea");if(s.value=t,document.body.append(s),navigator.userAgent.match(/ipad|ipod|iphone/i)){s.contentEditable=!0,s.readOnly=!0;const t=document.createRange();t.selectNodeContents(s);const e=window.getSelection();e.removeAllRanges(),e.addRange(t),s.setSelectionRange(0,999999)}else s.select();return document.execCommand("copy"),s.remove(),!0}};function gl(t){if("string"==typeof t){if("pattern"===(t=t.toLowerCase()))return"var(--pattern)";if(!1===t.startsWith("#")&&!1===t.startsWith("var(")){const e="--color-"+t;if(window.getComputedStyle(document.documentElement).getPropertyValue(e))return`var(${e})`}return t}}function bl(t,e=!1){if(!t.match("youtu"))return!1;let s=null;try{s=new URL(t)}catch{return!1}const i=s.pathname.split("/").filter(t=>""!==t),n=i[0],o=i[1],r="https://"+(!0===e?"www.youtube-nocookie.com":s.host)+"/embed",a=t=>!!t&&null!==t.match(/^[a-zA-Z0-9_-]+$/);let l=s.searchParams,c=null;switch(i.join("/")){case"embed/videoseries":case"playlist":a(l.get("list"))&&(c=r+"/videoseries");break;case"watch":a(l.get("v"))&&(c=r+"/"+l.get("v"),l.has("t")&&l.set("start",l.get("t")),l.delete("v"),l.delete("t"));break;default:s.host.includes("youtu.be")&&a(n)?(c=!0===e?"https://www.youtube-nocookie.com/embed/"+n:"https://www.youtube.com/embed/"+n,l.has("t")&&l.set("start",l.get("t")),l.delete("t")):["embed","shorts"].includes(n)&&a(o)&&(c=r+"/"+o)}if(!c)return!1;const u=l.toString();return u.length&&(c+="?"+u),c}function kl(t,e=!1){let s=null;try{s=new URL(t)}catch{return!1}const i=s.pathname.split("/").filter(t=>""!==t);let n=s.searchParams,o=null;switch(!0===e&&n.append("dnt",1),s.host){case"vimeo.com":case"www.vimeo.com":o=i[0];break;case"player.vimeo.com":o=i[1]}if(!o||!o.match(/^[0-9]*$/))return!1;let r="https://player.vimeo.com/video/"+o;const a=n.toString();return a.length&&(r+="?"+a),r}const yl={youtube:bl,vimeo:kl,video:function(t,e=!1){return!0===t.includes("youtu")?bl(t,e):!0===t.includes("vimeo")&&kl(t,e)}};function vl(t){if(void 0!==t.default)return kt(t.default);const e=window.panel.app.$options.components[`k-${t.type}-field`],s=e?.options.props?.value;if(void 0===s)return;const i=s?.default;return"function"==typeof i?i():void 0!==i?i:null}const $l={defaultValue:vl,form:function(t){const e={};for(const s in t){const i=vl(t[s]);void 0!==i&&(e[s]=i)}return e},isVisible:function(t,e){if("hidden"===t.type||!0===t.hidden)return!1;if(!t.when)return!0;for(const s in t.when){const i=e[s.toLowerCase()],n=t.when[s];if((void 0!==i||!(""===n||Array.isArray(n)&&0===n.length))&&i!==n)return!1}return!0},subfields:function(t,e){let s={};for(const i in e){const n=e[i];n.section=t.name,t.endpoints&&(n.endpoints={field:t.endpoints.field+"+"+i,section:t.endpoints.section,model:t.endpoints.model}),s[i]=n}return s}},xl=t=>t.split(".").slice(-1).join(""),wl=t=>t.split(".").slice(0,-1).join("."),_l=t=>Intl.NumberFormat("en",{notation:"compact",style:"unit",unit:"byte",unitDisplay:"narrow"}).format(t),Sl={extension:xl,name:wl,niceSize:_l};function Cl(t,e){if("string"==typeof t&&(t=document.querySelector(t)),!t)return!1;if(!e&&t.contains(document.activeElement)&&t!==document.activeElement)return!1;const s=[":where([autofocus], [data-autofocus])",":where(input, textarea, select, [contenteditable=true], .input-focus)","[type=submit]","button"];e&&s.unshift(`[name="${e}"]`);const i=function(t,e){for(const s of e){const e=t.querySelector(s);if(!0===Ol(e))return e}return null}(t,s);return i?(i.focus(),i):!0===Ol(t)&&(t.focus(),t)}function Ol(t){return!!t&&(!t.matches("[disabled], [aria-disabled], input[type=hidden]")&&(!t.closest("[aria-disabled]")&&!t.closest("[disabled]")&&"function"==typeof t.focus))}const Al=t=>"function"==typeof window.Vue.options.components[t],Ml=t=>!!t.dataTransfer&&(!!t.dataTransfer.types&&(!0===t.dataTransfer.types.includes("Files")&&!1===t.dataTransfer.types.includes("text/plain")));const Dl={metaKey:function(){return window.navigator.userAgent.indexOf("Mac")>-1?"cmd":"ctrl"}};function El(t){return!0===t.startsWith("file://")||!0===t.startsWith("/@/file/")}function jl(t){return"site://"===t||!0===t.startsWith("page://")||null!==t.match(/^\/(.*\/)?@\/page\//)}function Il(t=[]){const e={url:{detect:t=>/^(http|https):\/\//.test(t),icon:"url",id:"url",label:window.panel.$t("url"),link:t=>t,placeholder:window.panel.$t("url.placeholder"),input:"url",value:t=>t},page:{detect:t=>!0===jl(t),icon:"page",id:"page",label:window.panel.$t("page"),link:t=>t,placeholder:window.panel.$t("select")+" …",input:"text",value:t=>t},file:{detect:t=>!0===El(t),icon:"file",id:"file",label:window.panel.$t("file"),link:t=>t,placeholder:window.panel.$t("select")+" …",value:t=>t},email:{detect:t=>t.startsWith("mailto:"),icon:"email",id:"email",label:window.panel.$t("email"),link:t=>t.replace(/^mailto:/,""),placeholder:window.panel.$t("email.placeholder"),input:"email",value:t=>"mailto:"+t},tel:{detect:t=>t.startsWith("tel:"),icon:"phone",id:"tel",label:window.panel.$t("tel"),link:t=>t.replace(/^tel:/,""),pattern:"[+]{0,1}[0-9]+",placeholder:window.panel.$t("tel.placeholder"),input:"tel",value:t=>"tel:"+t},anchor:{detect:t=>t.startsWith("#"),icon:"anchor",id:"anchor",label:"Anchor",link:t=>t,pattern:"^#.+",placeholder:"#element",input:"text",value:t=>t},custom:{detect:()=>!0,icon:"title",id:"custom",label:window.panel.$t("custom"),link:t=>t,input:"text",value:t=>t}};if(!t.length)return e;const s={};for(const i of t)e[i]&&(s[i]=e[i]);return s}const Bl={detect:function(t,e){if(t??="",e??=Il(),0===t.length)return{type:Object.keys(e)[0]??"url",link:""};for(const s in e)if(!0===e[s].detect(t))return{type:s,link:e[s].link(t)}},getFileUUID:function(t){return t.replace("/@/file/","file://")},getPageUUID:function(t){return t.replace(/^\/(.*\/)?@\/page\//,"page://")},isFileUUID:El,isPageUUID:jl,preview:async function({type:t,link:e},s){return"page"===t&&e?await async function(t,e=["title","panelImage"]){if("site://"===t)return{label:window.panel.$t("view.site")};try{const s=await window.panel.api.pages.get(t,{select:e.join(",")});return{label:s.title,image:s.panelImage}}catch{return null}}(e,s):"file"===t&&e?await async function(t,e=["filename","panelImage"]){try{const s=await window.panel.api.files.get(null,t,{select:e.join(",")});return{label:s.filename,image:s.panelImage}}catch{return null}}(e,s):e?{label:e}:null},types:Il};const Ll={status:function(t,e=!1){const s={icon:"status-"+t,title:window.panel.$t("page.status")+": "+window.panel.$t("page.status."+t),disabled:e,size:"xs",style:"--icon-size: 15px"};return e&&(s.title+=` (${window.panel.$t("disabled")})`),s.theme="draft"===t?"negative-icon":"unlisted"===t?"info-icon":"positive-icon",s}},Tl=(t="3/2",e="100%",s=!0)=>{const i=String(t).split("/");if(2!==i.length)return e;const n=Number(i[0]),o=Number(i[1]);let r=100;return 0!==n&&0!==o&&(r=s?r/n*o:r/o*n,r=parseFloat(String(r)).toFixed(2)),r+"%"},Pl={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function ql(t){return String(t).replace(/[&<>"'`=/]/g,t=>Pl[t])}function Nl(t){return!t||0===String(t).length}function Fl(t){const e=String(t);return e.charAt(0).toLowerCase()+e.slice(1)}function zl(t="",e=""){const s=new RegExp(`^(${RegExp.escape(e)})+`,"g");return t.replace(s,"")}function Yl(t){let e="";const s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(var i=0;i{const i=e[ql(t.shift())]??"…";return"…"===i||0===t.length?i:s(t,i)},i="[{]{1,2}[\\s]?",n="[\\s]?[}]{1,2}";return(t=t.replace(new RegExp(`${i}(.*?)${n}`,"gi"),(t,i)=>s(i.split("."),e))).replace(new RegExp(`${i}.*${n}`,"gi"),"…")}function Ul(t){const e=String(t);return e.charAt(0).toUpperCase()+e.slice(1)}function Vl(){let t,e,s="";for(t=0;t<32;t++)e=16*Math.random()|0,8!=t&&12!=t&&16!=t&&20!=t||(s+="-"),s+=(12==t?4:16==t?3&e|8:e).toString(16);return s}const Kl={camelToKebab:function(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()},escapeHTML:ql,hasEmoji:function(t){if("string"!=typeof t)return!1;if(!0===/^[a-z0-9_-]+$/.test(t))return!1;const e=t.match(/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c\ude32-\ude3a]|[\ud83c\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/i);return null!==e&&null!==e.length},isEmpty:Nl,lcfirst:Fl,ltrim:zl,pad:function(t,e=2){t=String(t);let s="";for(;s.length]+)>)/gi,"")},template:Hl,ucfirst:Ul,ucwords:function(t){return String(t).split(/ /g).map(t=>Ul(t)).join(" ")},unescapeHTML:function(t){for(const e in Pl)t=String(t).replaceAll(Pl[e],e);return t},uuid:Vl},Wl=(t,e,s={leading:!0,trailing:!1})=>{let i=null,n=null,o=null;function r(...r){if(i)return n=this,void(o=r);s.leading?t.call(this,...r):(n=this,o=r);const a=()=>{s.trailing&&o?(t.call(n,...o),n=null,o=null,i=setTimeout(a,e)):i=null};i=setTimeout(a,e)}return r.cancel=()=>{i&&(clearTimeout(i),i=null,n=null,o=null)},r};async function Jl(t,e){return new Promise((s,i)=>{const n={url:"/",field:"file",method:"POST",filename:t.name,headers:{},attributes:{},complete:()=>{},error:()=>{},success:()=>{},progress:()=>{}},o=Object.assign(n,e),r=new XMLHttpRequest,a=new FormData;a.append(o.field,t,o.filename);for(const t in o.attributes){const e=o.attributes[t];null!=e&&a.append(t,e)}const l=e=>{if(e.lengthComputable&&o.progress){const s=Math.max(0,Math.min(100,Math.ceil(e.loaded/e.total*100)));o.progress(r,t,s)}};r.upload.addEventListener("loadstart",l),r.upload.addEventListener("progress",l),r.addEventListener("load",e=>{let n=null;try{n=JSON.parse(e.target.response)}catch{n={status:"error",message:"The file could not be uploaded"}}"error"===n.status?(o.error(r,t,n),i(n)):(o.progress(r,t,100),o.success(r,t,n),s(n))}),r.addEventListener("error",e=>{const s=JSON.parse(e.target.response);o.progress(r,t,100),o.error(r,t,s),i(s)}),r.open(o.method,o.url,!0);for(const t in o.headers)r.setRequestHeader(t,o.headers[t]);o.abort?.addEventListener("abort",()=>{r.abort()}),r.send(a)})}function Gl(){return new URL(document.querySelector("base")?.href??window.location.origin)}function Xl(t={},e={}){e instanceof URL&&(e=e.search);const s=new URLSearchParams(e);for(const[i,n]of Object.entries(t))null!==n&&s.set(i,n);return s}function Zl(t="",e={},s){return(t=ic(t,s)).search=Xl(e,t.search),t}function Ql(t){return null!==String(t).match(/^https?:\/\//)}function tc(t){return ic(t).origin===window.location.origin}function ec(t,e){if((t instanceof URL||t instanceof Location)&&(t=t.toString()),"string"!=typeof t)return!1;try{new URL(t,window.location)}catch{return!1}if(!0===e){return/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:localhost)|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)}return!0}function sc(t,e){return!0===Ql(t)?t:(e??=Gl(),(e=String(e).replaceAll(/\/$/g,""))+"/"+(t=String(t).replaceAll(/^\//g,"")))}function ic(t,e){return t instanceof URL?t:new URL(sc(t,e))}const nc={base:Gl,buildQuery:Xl,buildUrl:Zl,isAbsolute:Ql,isSameOrigin:tc,isUrl:ec,makeAbsolute:sc,toObject:ic},oc={install(t){t.prototype.$helper={array:ml,clipboard:fl,clone:xt.clone,color:gl,embed:yl,focus:Cl,isComponent:Al,isUploadEvent:Ml,debounce:Nt,field:$l,file:Sl,keyboard:Dl,link:Bl,object:xt,page:Ll,pad:Kl.pad,ratio:Tl,slug:Kl.slug,sort:dl,string:Kl,throttle:Wl,upload:Jl,url:nc,uuid:Kl.uuid},t.prototype.$esc=Kl.escapeHTML}},rc={install(t){const e=(t,e,s)=>{!0!==s.context.disabled?t.dir=window.panel.language.direction:t.dir=null};t.directive("direction",{bind:e,update:e})}},ac={install(t){const e=window.panel;t.prototype.$api=e.api,t.prototype.$dialog=e.dialog.open.bind(e.dialog),t.prototype.$drawer=e.drawer.open.bind(e.drawer),t.prototype.$dropdown=e.dropdown.openAsync.bind(e.dropdown),t.prototype.$events=e.events,t.prototype.$go=e.view.open.bind(e.view),t.prototype.$reload=e.reload,t.prototype.$t=e.$t=e.t,t.prototype.$url=e.url}},lc=/^#?([\da-f]{3}){1,2}$/i,cc=/^#?([\da-f]{4}){1,2}$/i,uc=/^rgba?\(\s*(\d{1,3})(%?)(?:,|\s)+(\d{1,3})(%?)(?:,|\s)+(\d{1,3})(%?)(?:,|\s|\/)*(\d*(?:\.\d+)?)(%?)\s*\)?$/i,pc=/^hsla?\(\s*(\d{1,3}\.?\d*)(deg|rad|grad|turn)?(?:,|\s)+(\d{1,3})%(?:,|\s)+(\d{1,3})%(?:,|\s|\/)*(\d*(?:\.\d+)?)(%?)\s*\)?$/i;function dc(t){return"string"==typeof t&&(lc.test(t)||cc.test(t))}function hc(t){return yt(t)&&"r"in t&&"g"in t&&"b"in t}function mc(t){return yt(t)&&"h"in t&&"s"in t&&"l"in t}function fc({h:t,s:e,v:s,a:i}){if(0===s)return{h:t,s:0,l:0,a:i};if(0===e&&1===s)return{h:t,s:1,l:1,a:i};const n=s*(2-e)/2;return{h:t,s:e=s*e/(1-Math.abs(2*n-1)),l:n,a:i}}function gc({h:t,s:e,l:s,a:i}){const n=e*(s<.5?s:1-s);return{h:t,s:e=0===n?0:2*n/(s+n),v:s+n,a:i}}function bc(t){if(!0===lc.test(t)||!0===cc.test(t)){"#"===t[0]&&(t=t.slice(1)),3===t.length&&(t=t.split("").reduce((t,e)=>t+e+e,""));const e=parseInt(t,16);return!0===lc.test(t)?{r:e>>16,g:e>>8&255,b:255&e,a:1}:{r:e>>24&255,g:e>>16&255,b:e>>8&255,a:Math.round((255&e)/255*100)/100}}throw new Error(`unknown hex color: ${t}`)}function kc({r:t,g:e,b:s,a:i=1}){let n="#"+(1<<24|t<<16|e<<8|s).toString(16).slice(1);return i<1&&(n+=(256|Math.round(255*i)).toString(16).slice(1)),n}function yc({h:t,s:e,l:s,a:i}){const n=e*Math.min(s,1-s),o=(e,i=(e+t/30)%12)=>s-n*Math.max(Math.min(i-3,9-i,1),-1);return{r:255*o(0),g:255*o(8),b:255*o(4),a:i}}function vc({r:t,g:e,b:s,a:i}){t/=255,e/=255,s/=255;const n=Math.max(t,e,s),o=n-Math.min(t,e,s),r=1-Math.abs(n+n-o-1);let a=o&&(n==t?(e-s)/o:n==e?2+(s-t)/o:4+(t-e)/o);return a=60*(a<0?a+6:a),{h:a,s:r?o/r:0,l:(n+n-o)/2,a:i}}function $c(t){return kc(yc(t))}function xc(t){return vc(bc(t))}function wc(t,e){return t=Number(t),"grad"===e?t*=.9:"rad"===e?t*=180/Math.PI:"turn"===e&&(t*=360),parseInt(t%360)}function _c(t,e){if(!0===dc(t))switch("#"!==t[0]&&(t="#"+t),e){case"hex":return t;case"rgb":return bc(t);case"hsl":return xc(t);case"hsv":return gc(xc(t))}if(!0===hc(t))switch(e){case"hex":return kc(t);case"rgb":return t;case"hsl":return vc(t);case"hsv":return function({r:t,g:e,b:s,a:i}){t/=255,e/=255,s/=255;const n=Math.max(t,e,s),o=n-Math.min(t,e,s);let r=o&&(n==t?(e-s)/o:n==e?2+(s-t)/o:4+(t-e)/o);return r=60*(r<0?r+6:r),{h:r,s:n&&o/n,v:n,a:i}}(t)}if(!0===mc(t))switch(e){case"hex":return $c(t);case"rgb":return yc(t);case"hsl":return t;case"hsv":return gc(t)}if(!0===function(t){return yt(t)&&"h"in t&&"s"in t&&"v"in t}(t))switch(e){case"hex":return $c(fc(t));case"rgb":return function({h:t,s:e,v:s,a:i}){const n=(i,n=(i+t/60)%6)=>s-s*e*Math.max(Math.min(n,4-n,1),0);return{r:255*n(5),g:255*n(3),b:255*n(1),a:i}}(t);case"hsl":return fc(t);case"hsv":return t}throw new Error(`Invalid color conversion: ${JSON.stringify(t)} -> ${e}`)}function Sc(t){let e;if(!t||"string"!=typeof t)return!1;if(!0===dc(t))return"#"!==t[0]&&(t="#"+t),t;if(e=t.match(uc)){const t={r:Number(e[1]),g:Number(e[3]),b:Number(e[5]),a:Number(e[7]||1)};return"%"===e[2]&&(t.r=Math.ceil(2.55*t.r)),"%"===e[4]&&(t.g=Math.ceil(2.55*t.g)),"%"===e[6]&&(t.b=Math.ceil(2.55*t.b)),"%"===e[8]&&(t.a=t.a/100),t}if(e=t.match(pc)){let[t,s,i,n,o]=e.slice(1);const r={h:wc(t,s),s:Number(i)/100,l:Number(n)/100,a:Number(o||1)};return"%"===e[6]&&(r.a=r.a/100),r}return null}const Cc={convert:_c,parse:Sc,parseAs:function(t,e){const s=Sc(t);return s&&e?_c(s,e):s},toString:function(t,e,s=!0){let i=t;if("string"==typeof i&&(i=Sc(t)),i&&e&&(i=_c(i,e)),!0===dc(i))return!0!==s&&(5===i.length?i=i.slice(0,4):i.length>7&&(i=i.slice(0,7))),i.toLowerCase();if(!0===hc(i)){const t=i.r.toFixed(),e=i.g.toFixed(),n=i.b.toFixed(),o=i.a?.toFixed(2);return s&&o&&o<1?`rgb(${t} ${e} ${n} / ${o})`:`rgb(${t} ${e} ${n})`}if(!0===mc(i)){const t=i.h.toFixed(),e=(100*i.s).toFixed(),n=(100*i.l).toFixed(),o=i.a?.toFixed(2);return s&&o&&o<1?`hsl(${t} ${e}% ${n}% / ${o})`:`hsl(${t} ${e}% ${n}%)`}throw new Error(`Unsupported color: ${JSON.stringify(t)}`)}};N.extend(F),N.extend((t,e,s)=>{s.interpret=(t,e="date")=>{const i={date:{"YYYY-MM-DD":!0,"YYYY-MM-D":!0,"YYYY-MM-":!0,"YYYY-MM":!0,"YYYY-M-DD":!0,"YYYY-M-D":!0,"YYYY-M-":!0,"YYYY-M":!0,"YYYY-":!0,YYYYMMDD:!0,"MMM DD YYYY":!1,"MMM D YYYY":!1,"MMM DD YY":!1,"MMM D YY":!1,"MMM YYYY":!0,"MMM DD":!1,"MMM D":!1,"MM YYYY":!0,"M YYYY":!0,"MMMM DD YYYY":!0,"MMMM D YYYY":!0,"MMMM DD YY":!0,"MMMM D YY":!0,"MMMM DD, YYYY":!0,"MMMM D, YYYY":!0,"MMMM DD, YY":!0,"MMMM D, YY":!0,"MMMM DD. YYYY":!0,"MMMM D. YYYY":!0,"MMMM DD. YY":!0,"MMMM D. YY":!0,DDMMYYYY:!0,DDMMYY:!0,"DD MMMM YYYY":!1,"DD MMMM YY":!1,"DD MMMM":!1,"D MMMM YYYY":!1,"D MMMM YY":!1,"D MMMM":!1,"DD MMM YYYY":!1,"D MMM YYYY":!1,"DD MMM YY":!1,"D MMM YY":!1,"DD MMM":!1,"D MMM":!1,"DD MM YYYY":!1,"DD M YYYY":!1,"D MM YYYY":!1,"D M YYYY":!1,"DD MM YY":!1,"D MM YY":!1,"DD M YY":!1,"D M YY":!1,YYYY:!0,MMMM:!0,MMM:!0,"DD MM":!1,"DD M":!1,"D MM":!1,"D M":!1,DD:!1,D:!1},time:{"HHmmss a":!1,"HHmm a":!1,"HH a":!1,HHmmss:!1,HHmm:!1,"HH:mm:ss a":!1,"HH:mm:ss":!1,"HH:mm a":!1,"HH:mm":!1,HH:!1}};if("string"==typeof t&&""!==t)for(const n in i[e]){const o=s(t,n,i[e][n]);if(!0===o.isValid())return o}return null}}),N.extend((t,e,s)=>{const i=t=>"date"===t?"YYYY-MM-DD":"time"===t?"HH:mm:ss":"YYYY-MM-DD HH:mm:ss";e.prototype.toISO=function(t="datetime"){return this.format(i(t))},s.iso=function(t,e){e&&(e=i(e)),e??=[i("datetime"),i("date"),i("time")];const n=s(t,e);return n&&n.isValid()?n:null}}),N.extend((t,e)=>{e.prototype.merge=function(t,e="date"){let s=this.clone();if(!t||!t.isValid())return this;if("string"==typeof e){const t={date:["year","month","date"],time:["hour","minute","second"]};if(!1===Object.hasOwn(t,e))throw new Error("Invalid merge unit alias");e=t[e]}for(const i of e)s=s.set(i,t.get(i));return s}}),N.extend((t,e,s)=>{s.pattern=t=>new class{constructor(t,e){this.dayjs=t,this.pattern=e;const s={year:["YY","YYYY"],month:["M","MM","MMM","MMMM"],day:["D","DD"],hour:["h","hh","H","HH"],minute:["m","mm"],second:["s","ss"],meridiem:["a"]};this.parts=this.pattern.split(/\W/).map((t,e)=>{const i=this.pattern.indexOf(t);return{index:e,unit:Object.keys(s)[Object.values(s).findIndex(e=>e.includes(t))],start:i,end:i+(t.length-1)}})}at(t,e=t){const s=this.parts.filter(s=>s.start<=t&&s.end>=e-1);return s[0]?s[0]:this.parts.filter(e=>e.start<=t).pop()}format(t){return t&&t.isValid()?t.format(this.pattern):null}}(s,t)}),N.extend((t,e)=>{e.prototype.round=function(t="date",e=1){const s=["second","minute","hour","date","month","year"];if("day"===t&&(t="date"),!1===s.includes(t))throw new Error("Invalid rounding unit");if(["date","month","year"].includes(t)&&1!==e||"hour"===t&&24%e!=0||["second","minute"].includes(t)&&60%e!=0)throw"Invalid rounding size for "+t;let i=this.clone();const n=s.indexOf(t),o=s.slice(0,n),r=o.pop();for(const a of o)i=i.startOf(a);if(r){const e={month:12,date:i.daysInMonth(),hour:24,minute:60,second:60}[r];Math.round(i.get(r)/e)*e===e&&(i=i.add(1,"date"===t?"day":t)),i=i.startOf(t)}return i=i.set(t,Math.round(i.get(t)/e)*e),i}}),N.extend((t,e,s)=>{e.prototype.validate=function(t,e,i="day"){if(!this.isValid())return!1;if(!t)return!0;t=s.iso(t);const n={min:"isAfter",max:"isBefore"}[e];return this.isSame(t,i)||this[n](t,i)}});const Oc={install(t){t.prototype.$library={autosize:z,colors:Cc,dayjs:N}}},Ac=(t,e={})=>n({...e,key:()=>t,defaults:()=>e,reset(){return this.set(this.defaults())},set(t){this.validateState(t);for(const e in this.defaults())this[e]=t[e]??this.defaults()[e];return this.state()},state(){const t={};for(const e in this.defaults())t[e]=this[e]??this.defaults()[e];return t},validateState(t){if(!1===yt(t))throw new Error(`Invalid ${this.key()} state`);return!0}}),Mc=()=>{const t=Ac("activation",{isOpen:"true"!==sessionStorage.getItem("kirby$activation$card")});return n({...t,close(){sessionStorage.setItem("kirby$activation$card","true"),this.isOpen=!1},open(){sessionStorage.removeItem("kirby$activation$card"),this.isOpen=!0}})},Dc=t=>({async changeName(e,s,i){return t.patch(this.url(e,s,"name"),{name:i})},async delete(e,s){return t.delete(this.url(e,s))},async get(e,s,i){let n=await t.get(this.url(e,s),i);return!0===Array.isArray(n.content)&&(n.content={}),n},id:t=>!0===t.startsWith("/@/file/")?t.replace("/@/file/","@"):!0===t.startsWith("file://")?t.replace("file://","@"):t,link(t,e,s){return"/"+this.url(t,e,s)},async update(e,s,i){return t.patch(this.url(e,s),i)},url(t,e,s){let i="files/"+this.id(e);return t&&(i=t+"/"+i),s&&(i+="/"+s),i}}),Ec=t=>({async blueprint(e){return t.get("pages/"+this.id(e)+"/blueprint")},async blueprints(e,s){return t.get("pages/"+this.id(e)+"/blueprints",{section:s})},async changeSlug(e,s){return t.patch("pages/"+this.id(e)+"/slug",{slug:s})},async changeStatus(e,s,i){return t.patch("pages/"+this.id(e)+"/status",{status:s,position:i})},async changeTemplate(e,s){return t.patch("pages/"+this.id(e)+"/template",{template:s})},async changeTitle(e,s){return t.patch("pages/"+this.id(e)+"/title",{title:s})},async children(e,s){return t.post("pages/"+this.id(e)+"/children/search",s)},async create(e,s){return null===e||"/"===e?t.post("site/children",s):t.post("pages/"+this.id(e)+"/children",s)},async delete(e,s){return t.delete("pages/"+this.id(e),s)},async duplicate(e,s,i){return t.post("pages/"+this.id(e)+"/duplicate",{slug:s,children:i.children??!1,files:i.files??!1})},async get(e,s){let i=await t.get("pages/"+this.id(e),s);return!0===Array.isArray(i.content)&&(i.content={}),i},id:t=>!0===t.match(/^\/(.*\/)?@\/page\//)?t.replace(/^\/(.*\/)?@\/page\//,"@"):!0===t.startsWith("page://")?t.replace("page://","@"):t.replace(/\//g,"+"),async files(e,s){return t.post("pages/"+this.id(e)+"/files/search",s)},link(t){return"/"+this.url(t)},async preview(t){return(await this.get(this.id(t),{select:"previewUrl"})).previewUrl},async search(e,s){return e?t.post("pages/"+this.id(e)+"/children/search?select=id,title,hasChildren",s):t.post("site/children/search?select=id,title,hasChildren",s)},async update(e,s){return t.patch("pages/"+this.id(e),s)},url(t,e){let s=null===t?"pages":"pages/"+String(t).replace(/\//g,"+");return e&&(s+="/"+e),s}});class jc extends Error{constructor(t,{request:e,response:s,cause:i}){super(s.json.message??s.json.error??t,{cause:i}),this.request=e,this.response=s,this.details=s.json.details}state(){return this.response.json}}class Ic extends jc{}class Bc extends jc{state(){return{message:this.message,text:this.response.text}}}const Lc=t=>(window.location.href=sc(t),!1),Tc=async(t,e={})=>{var s;(e={cache:"no-store",credentials:"same-origin",mode:"same-origin",...e}).body=((s=e.body)instanceof HTMLFormElement&&(s=new FormData(s)),s instanceof FormData&&(s=Object.fromEntries(s)),"object"==typeof s?JSON.stringify(s):s),e.headers=((t={},e={})=>{return{"content-type":"application/json","x-csrf":e.csrf??!1,"x-fiber":!0,"x-fiber-globals":(s=e.globals,!!s&&(!1===Array.isArray(s)?String(s):s.join(","))),"x-fiber-referrer":e.referrer??!1,...$t(t)};var s})(e.headers,e),e.url=Zl(t,e.query);const i=new Request(e.url,e);return!1===tc(i.url)?Lc(i.url):await Pc(i,await fetch(i))},Pc=async(t,e)=>{if(!1===e.headers.get("Content-Type").includes("application/json"))return Lc(e.url);try{e.text=await e.text(),e.json=JSON.parse(e.text)}catch(s){throw new Bc("Invalid JSON response",{cause:s,request:t,response:e})}if(401===e.status)throw new Ic("Unauthenticated",{request:t,response:e});if(!1===e.ok)throw new jc(`The request to ${e.url} failed`,{request:t,response:e});return{request:t,response:e}},qc=t=>({blueprint:async e=>t.get("users/"+e+"/blueprint"),blueprints:async(e,s)=>t.get("users/"+e+"/blueprints",{section:s}),changeEmail:async(e,s)=>t.patch("users/"+e+"/email",{email:s}),changeLanguage:async(e,s)=>t.patch("users/"+e+"/language",{language:s}),changeName:async(e,s)=>t.patch("users/"+e+"/name",{name:s}),changePassword:async(e,s,i)=>t.patch("users/"+e+"/password",{password:s,currentPassword:i}),changeRole:async(e,s)=>t.patch("users/"+e+"/role",{role:s}),create:async e=>t.post("users",e),delete:async e=>t.delete("users/"+e),deleteAvatar:async e=>t.delete("users/"+e+"/avatar"),link(t,e){return"/"+this.url(t,e)},async list(e){return t.post(this.url(null,"search"),e)},get:async(e,s)=>t.get("users/"+e,s),async roles(e){return(await t.get(this.url(e,"roles"))).data.map(t=>({info:t.description??`(${window.panel.$t("role.description.placeholder")})`,text:t.title,value:t.name}))},search:async e=>t.post("users/search",e),update:async(e,s)=>t.patch("users/"+e,s),url(t,e){let s=t?"users/"+t:"users";return e&&(s+="/"+e),s}}),Nc=t=>{const e={csrf:t.system.csrf,endpoint:Rl(t.urls.api,"/"),methodOverride:t.config.api?.methodOverride??!1,ping:null,requests:[],running:0},s=()=>{clearInterval(e.ping),e.ping=setInterval(()=>{!1===t.isOffline&&e.auth.ping()},3e5)};return e.request=async(i,n={},o=!1)=>{const r=i+"/"+JSON.stringify(n);e.requests.push(r),!1===o&&!0!==n.silent&&(t.isLoading=!0),e.language=t.language.code;try{return await(t=>async(e,s={})=>{(s={cache:"no-store",credentials:"same-origin",mode:"same-origin",...s}).headers={"content-type":"application/json","x-csrf":t.csrf,"x-language":t.language,...$t(s.headers??{})},t.methodOverride&&"GET"!==s.method&&"POST"!==s.method&&(s.headers["x-http-method-override"]=s.method,s.method="POST");for(const t in s.headers)null===s.headers[t]&&delete s.headers[t];s.url=Rl(t.endpoint,"/")+"/"+zl(e,"/");const i=new Request(s.url,s),{response:n}=await Pc(i,await fetch(i));let o=n.json;return o.data&&"model"===o.type&&(o=o.data),o})(e)(i,n)}finally{s(),e.requests=e.requests.filter(t=>t!==r),0===e.requests.length&&(t.isLoading=!1)}},e.auth=(t=>({async login(e){const s={long:e.remember??!1,email:e.email,password:e.password};return t.post("auth/login",s)},logout:async()=>t.post("auth/logout"),ping:async()=>t.post("auth/ping"),user:async e=>t.get("auth",e),verifyCode:async e=>t.post("auth/code",{code:e})}))(e),e.delete=(t=>async(e,s,i,n=!1)=>t.post(e,s,i,"DELETE",n))(e),e.files=Dc(e),e.get=(t=>async(e,s,i,n=!1)=>(s&&(e+="?"+Object.keys(s).filter(t=>void 0!==s[t]&&null!==s[t]).map(t=>t+"="+s[t]).join("&")),t.request(e,Object.assign(i??{},{method:"GET"}),n)))(e),e.languages=(t=>({create:async e=>t.post("languages",e),delete:async e=>t.delete("languages/"+e),get:async e=>t.get("languages/"+e),list:async()=>t.get("languages"),update:async(e,s)=>t.patch("languages/"+e,s)}))(e),e.pages=Ec(e),e.patch=(t=>async(e,s,i,n=!1)=>t.post(e,s,i,"PATCH",n))(e),e.post=(t=>async(e,s,i,n="POST",o=!1)=>t.request(e,Object.assign(i??{},{method:n,body:JSON.stringify(s)}),o))(e),e.roles=(t=>({list:async e=>t.get("roles",e),get:async e=>t.get("roles/"+e)}))(e),e.system=(t=>({get:async(e={view:"panel"})=>t.get("system",e),install:async e=>(await t.post("system/install",e)).user,register:async e=>t.post("system/register",e)}))(e),e.site=(t=>({blueprint:async()=>t.get("site/blueprint"),blueprints:async()=>t.get("site/blueprints"),changeTitle:async e=>t.patch("site/title",{title:e}),children:async e=>t.post("site/children/search",e),get:async(e={view:"panel"})=>t.get("site",e),update:async e=>t.post("site",e)}))(e),e.translations=(t=>({list:async()=>t.get("translations"),get:async e=>t.get("translations/"+e)}))(e),e.users=qc(e),s(),e},Fc=t=>{const e=n({cancelSaving(){this.saveLazy.cancel(),this.saveAbortController?.abort()},dialog:null,diff(t={}){if(!1===this.isCurrent(t))throw new Error("Cannot get changes for another view");const e=this.versions(),s={};for(const i in e.changes){JSON.stringify(e.changes[i])!==JSON.stringify(e.latest[i])&&(s[i]=e.changes[i])}for(const i in e.latest)void 0===e.changes[i]&&(s[i]=null);return s},async discard(e={}){if(!0!==this.isProcessing){if(!1===this.isCurrent(e))throw new Error("Cannot discard content from another view");if(!0===this.isLocked(e))throw new Error("Cannot discard locked changes");this.cancelSaving(),this.isProcessing=!0;try{await this.request("discard",{},e),t.view.props.versions.changes=this.version("latest"),this.emit("discard",{},e)}catch(s){if(s.key?.startsWith("error.content.lock"))return this.lockDialog(s.details);throw s}finally{this.isProcessing=!1}}},emit(e,s={},i={}){t.events.emit("content."+e,{...s,...this.env(i)})},env:(e={})=>({api:t.view.props.api,language:t.language.code,...e}),hasDiff(t={}){return vt(this.diff(t))>0},isCurrent(t={}){const e=this.env(t),s=this.env();return s.api===e.api&&s.language===e.language},isLocked(t={}){return this.lock(t)?.isLocked??!1},isProcessing:!1,lock(e={}){if(!1===this.isCurrent(e))throw new Error("The lock state cannot be detected for content from another view");return t.view.props.lock},lockDialog(e){this.dialog=t.dialog,this.dialog.open({component:"k-lock-alert-dialog",props:{lock:e},on:{close:()=>{this.dialog=null,t.view.reload()}}})},merge(e={},s={}){if(!1===this.isCurrent(s))throw new Error("The content in another view cannot be merged");return!1===yt(e)&&(e={}),t.view.props.versions.changes={...this.version("changes"),...e},t.view.props.versions.changes},async publish(e={},s={}){if(!0!==this.isProcessing){if(!1===this.isCurrent(s))throw new Error("Cannot publish content from another view");this.cancelSaving(),this.isProcessing=!0;try{await this.request("publish",this.merge(e,s),s),this.dialog?.close(),t.view.props.versions.latest=this.version("changes"),this.emit("publish",{values:e},s)}catch(i){if(i.key?.startsWith("error.content.lock"))return this.lockDialog(i.details);throw i}finally{this.isProcessing=!1}}},async request(e="save",s={},i={}){const{api:n,language:o}=this.env(i),r={headers:{"x-language":o}};return"save"===e&&(r.signal=this.saveAbortController.signal,r.silent=!0),t.api.post(n+"/changes/"+e,s,r)},async save(t={},e={}){this.cancelSaving(),this.saveAbortController=new AbortController;try{await this.request("save",t,e),this.dialog?.close(),!0===this.isCurrent(e)&&(this.lock(e).modified=new Date),this.emit("save",{values:t},e)}catch(s){if("AbortError"===s.name)return;if(this.isProcessing=!1,s.key?.startsWith("error.content.lock"))return this.lockDialog(s.details);throw s}},saveAbortController:null,async update(t={},e={}){return await this.save(this.merge(t,e),e)},updateLazy(t={},e={}){this.saveLazy(this.merge(t,e),e)},version(t){return this.versions()[t]},versions:()=>t.view.props.versions});return e.saveLazy=Wl(e.save,1e3,{leading:!0,trailing:!0,timer:e.timer}),e},zc=()=>({addEventListener(t,e){"function"==typeof e&&(this.on[t]=e)},addEventListeners(t){if(!1!==yt(t))for(const e in t)this.addEventListener(e,t[e])},emit(t,...e){return this.hasEventListener(t)?this.on[t](...e):()=>{}},hasEventListener(t){return"function"==typeof this.on[t]},listeners(){return this.on},on:{}}),Yc=(t,e,s)=>{const i=Ac(e,s);return n({...i,...zc(),async get(e,s={}){this.isLoading=!0;try{return await t.get(e,s)}catch(i){t.error(i)}finally{this.isLoading=!1}return!1},async load(e,s={}){return!0!==s.silent&&(this.isLoading=!0),this.abortController=new AbortController,s.signal=this.abortController.signal,await t.open(e,s),this.isLoading=!1,this.addEventListeners(s.on),this.state()},async open(t,e={}){return"function"==typeof e&&(e={on:{submit:e}}),!0===ec(t)?this.load(t,e):(this.set(t),this.addEventListeners(e.on),this.emit("open",t,e),this.state())},async post(e,s={}){if(!this.path)throw new Error(`The ${this.key()} cannot be posted`);this.isLoading=!0,e??=this.props?.value??{};try{return await t.post(this.path,e,s)}catch(i){t.error(i)}finally{this.isLoading=!1}return!1},async refresh(t={}){t.url??=this.url();const e=(await this.get(t.url,t))["$"+this.key()];if(e&&e.component===this.component)return this.props=e.props,this.state()},async reload(t={}){if(!this.path)return!1;this.open(this.url(),t)},set(t){return i.set.call(this,t),this.on={},this.addEventListeners(t.on??{}),this.state()},url(){return t.url(this.path,this.query)}})},Rc=()=>n({add(t,e=!1){if(!t.id)throw new Error("The state needs an ID");if(!0===e)return this.replace(-1,t);!0!==this.has(t.id)&&this.milestones.push(t)},at(t){return this.milestones.at(t)},clear(){this.milestones=[]},get(t=null){return null===t?this.milestones:this.milestones.find(e=>e.id===t)},goto(t){const e=this.index(t);if(-1!==e)return this.milestones=this.milestones.slice(0,e+1),this.milestones[e]},has(t){return void 0!==this.get(t)},index(t){return this.milestones.findIndex(e=>e.id===t)},isEmpty(){return 0===this.milestones.length},last(){return this.milestones.at(-1)},milestones:[],remove(t=null){return null===t?this.removeLast():this.milestones=this.milestones.filter(e=>e.id!==t)},removeLast(){return this.milestones=this.milestones.slice(0,-1)},replace(t,e){-1===t&&(t=this.milestones.length-1),s(this.milestones,t,e)}}),Hc=(t,e,i)=>{const o=Yc(t,e,i);return n({...o,async cancel(){this.isOpen&&this.emit("cancel"),this.close()},async close(e){if(!1===this.isOpen)return;if(void 0!==e&&!0!==e&&e!==this.id)return;!0===e?this.history.clear():this.history.removeLast();const s=this.on.closed??(()=>{});if(!1===this.history.isEmpty()){const t=this.open(this.history.last());return s(),t}this.isOpen=!1,this.emit("close"),this.reset(),s(),0===t.overlays().length&&(document.documentElement.removeAttribute("data-overlay"),document.documentElement.style.removeProperty("--scroll-top"))},focus(t){Cl(`.k-${this.key()}-portal`,t)},goTo(t){const e=this.history.goto(t);void 0!==e&&this.open(e)},history:Rc(),input(t){!1!==this.isOpen&&(s(this.props,"value",t),this.emit("input",t))},isOpen:!1,listeners(){return{...this.on,cancel:this.cancel.bind(this),close:this.close.bind(this),input:this.input.bind(this),submit:this.submit.bind(this),success:this.success.bind(this)}},async open(e,s){return!1===this.isOpen&&t.notification.close(),await o.open.call(this,e,s),this.component&&(document.documentElement.setAttribute("data-overlay","true"),document.documentElement.style.setProperty("--scroll-top",window.scrollY+"px"),this.isOpen=!0),this.state()},async reload(t={}){if(!this.path)return!1;const e=this.url();await this.close(),this.open(e,t)},set(t){return o.set.call(this,t),this.id??=Vl(),this.state()},async submit(t,e={}){if(!0===this.isLoading)return;if(t??=this.props.value,this.hasEventListener("submit"))return this.emit("submit",t,e);if(!this.path)return this.close();const s=await this.post(t,e);return!1===yt(s)?s:this.success(s["$"+this.key()]??{})},success(e){return this.hasEventListener("success")?this.emit("success",e):("string"==typeof e&&t.notification.success(e),this.close(),this.successNotification(e),this.successEvents(e),e.route||e.redirect?this.successRedirect(e):t.view.reload(e.reload),e)},successEvents(e){if(e.event){const s=hl(e.event);for(const i of s)"string"==typeof i&&t.events.emit(i,e)}!1!==e.emit&&t.events.emit("success",e)},successNotification(e){e.message&&t.notification.success(e.message)},successRedirect(e){const s=e.route??e.redirect;return!!s&&("string"==typeof s?t.open(s):t.open(s.url,s.options))},get value(){return this.props?.value}})},Uc=t=>{t.events.on("dialog.save",e=>{e?.preventDefault?.(),t.dialog.submit()});const e=Hc(t,"dialog",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null,id:null,legacy:!1,ref:null});return n({...e,async close(){this.ref&&(this.ref.visible=!1),e.close.call(this)},async open(t,s={}){if(t instanceof window.Vue)return this.openComponent(t);yt(t)&&t.url&&(s=t,t=t.url,delete s.url),"string"==typeof t&&(t=`/dialogs/${t}`);const i=await e.open.call(this,t,s);return this.history.add(i,t.replace),i},async openComponent(s){t.deprecated("Dialog components should no longer be used in your templates");const i=await e.open.call(this,{component:s.$options._componentTag,legacy:!0,props:{...s.$attrs,...s.$props},ref:s}),n=this.listeners();for(const t in n)s.$on(t,n[t]);return s.visible=!0,i}})},Vc=()=>{const t=Ac("drag",{type:null,data:{}});return n({...t,get isDragging(){return null!==this.type},start(t,e){this.type=t,this.data=e},stop(){this.type=null,this.data={}}})},Kc=t=>{const e=Hc(t,"drawer",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null,id:null});return t.events.on("drawer.save",e=>{e.preventDefault(),t.drawer.submit()}),n({...e,get breadcrumb(){return this.history.milestones},get icon(){return this.props.icon??"box"},listeners(){return{...e.listeners.call(this),crumb:this.goTo.bind(this),tab:this.tab.bind(this)}},async open(t,s={}){yt(t)&&t.url&&(s=t,t=t.url,delete s.url),"string"==typeof t&&(t=`/drawers/${t}`),await e.open.call(this,t,s),this.tab(t.tab);const i=this.state();return this.history.add(i,t.replace),this.focus(),i},tab(t){const e=this.props.tabs??{};if(t??=Object.keys(e??{})[0],!t)return!1;s(this.props,"fields",e[t].fields),s(this.props,"tab",t),this.emit("tab",t),setTimeout(()=>{this.focus()})}})},Wc=t=>{const e=Yc(t,"dropdown",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null});return n({...e,close(){this.emit("close"),this.reset()},open(t,s={}){return"string"==typeof t&&(t=`/dropdowns/${t}`),e.open.call(this,t,s)},openAsync(t,e={}){return async s=>{await this.open(t,e);const i=this.options();if(0===i.length)throw Error("The dropdown is empty");s(i)}},options(){return!1===Array.isArray(this.props.options)?[]:this.props.options},set(t){return t.options&&(t.props={options:t.options}),e.set.call(this,t)}})},Jc=t=>{const e=Y();e.on("online",()=>{t.isOffline=!1}),e.on("offline",()=>{t.isOffline=!0}),e.on("keydown.cmd.s",s=>{e.emit(t.context+".save",s)}),e.on("keydown.cmd.shift.f",()=>t.search()),e.on("keydown.cmd./",()=>t.search()),e.on("clipboard.write",async e=>{fl.write(e),t.notification.success(t.t("copy.success")+"!")});const s={document:{blur:!0,click:!1,copy:!0,focus:!0,paste:!0},window:{beforeunload:!1,dragenter:!1,dragexit:!1,dragleave:!1,dragover:!1,drop:!1,keydown:!1,keyup:!1,offline:!1,online:!1,popstate:!1}};return{beforeunload(t){this.emit("beforeunload",t)},blur(t){this.emit("blur",t)},click(t){this.emit("click",t)},copy(t){this.emit("copy",t)},dragenter(t){this.entered=t.target,this.prevent(t),this.emit("dragenter",t)},dragexit(t){this.prevent(t),this.entered=null,this.emit("dragexit",t)},dragleave(t){this.prevent(t),this.entered===t.target&&(this.entered=null,this.emit("dragleave",t))},dragover(t){this.prevent(t),this.emit("dragover",t)},drop(t){this.prevent(t),this.entered=null,this.emit("drop",t)},emit:e.emit,entered:null,focus(t){this.emit("focus",t)},keychain(t,e){let s=[t];(e.metaKey||e.ctrlKey)&&s.push("cmd"),!0===e.altKey&&s.push("alt"),!0===e.shiftKey&&s.push("shift");let i=e.key?Fl(e.key):null;const n={escape:"esc",arrowUp:"up",arrowDown:"down",arrowLeft:"left",arrowRight:"right"};return n[i]&&(i=n[i]),i&&!1===["alt","control","shift","meta"].includes(i)&&s.push(i),s.join(".")},keydown(t){this.emit(this.keychain("keydown",t),t),this.emit("keydown",t)},keyup(t){this.emit(this.keychain("keyup",t),t),this.emit("keyup",t)},off:e.off,offline(t){this.emit("offline",t)},on:e.on,online(t){this.emit("online",t)},paste(t){this.emit("paste",t)},popstate(t){this.emit("popstate",t)},prevent(t){t.stopPropagation(),t.preventDefault()},subscribe(){for(const t in s.document)document.addEventListener(t,this[t].bind(this),s.document[t]);for(const t in s.window)window.addEventListener(t,this[t].bind(this),s.window[t])},unsubscribe(){for(const t in s.document)document.removeEventListener(t,this[t]);for(const t in s.window)window.removeEventListener(t,this[t])}}},Gc={interval:null,start(t,e){this.stop(),t&&(this.interval=setInterval(e,t))},stop(){clearInterval(this.interval),this.interval=null}},Xc=(t={})=>{const e=Ac("notification",{context:null,details:null,icon:null,isOpen:!1,message:null,theme:null,timeout:null,type:null});return n({...e,close(){return this.timer.stop(),this.reset(),this.state()},deprecated(t){console.warn("Deprecated: "+t)},error(e){if(e instanceof Ic&&t.user.id)return t.redirect("logout");if(e instanceof Bc)return this.fatal(e);if(e instanceof jc){const t=Object.values(e.response.json).find(t=>"string"==typeof t?.error);t&&(e.message=t.error,e.details=t.details)}return"string"==typeof e&&(e={message:e}),e={message:e.message??"Something went wrong",details:e.details??{}},"view"===t.context&&t.dialog.open({component:"k-error-dialog",props:e}),this.open({message:e.message,icon:"alert",theme:"negative",type:"error"})},info(t={}){return"string"==typeof t&&(t={message:t}),this.open({icon:"info",theme:"info",...t})},get isFatal(){return"fatal"===this.type},fatal(t){return"string"==typeof t?this.open({message:t,type:"fatal"}):t instanceof Bc?this.open({message:t.response.text,type:"fatal"}):this.open({message:t.message??"Something went wrong",type:"fatal"})},open(e){return this.timer.stop(),"string"==typeof e?this.success(e):("error"!==e.type&&"fatal"!==e.type&&(e.timeout??=4e3),this.set({context:t.context,...e}),this.isOpen=!0,this.timer.start(this.timeout,()=>this.close()),this.state())},success(t={}){return"string"==typeof t&&(t={message:t}),this.open({icon:"check",theme:"positive",...t})},timer:Gc})},Zc=()=>{const t=Ac("language",{code:null,default:!1,direction:"ltr",name:null,rules:null});return n({...t,get isDefault(){return this.default}})},Qc=(t,e,s)=>{if(!s.template&&!s.render&&!s.extends)throw new Error(`Plugin component "${e}" is not providing any template or render method, neither is it extending a component. The component has not been registered.`);return s=tu(t,e,s),s=su(s),s=eu(s),!0===Al(e)&&window.console.warn(`Plugin is replacing "${e}"`),t.component(e,s),s},tu=(t,e,s)=>"string"!=typeof s?.extends?s:!1===Al(s.extends)?(window.console.warn(`Problem with plugin trying to register component "${e}": cannot extend non-existent component "${s.extends}"`),s.extends=null,s):(s.extends=t.options.components[s.extends].extend({options:s,components:{...t.options.components,...s.components??{}}}),s),eu=e=>{if(!1===Array.isArray(e.mixins))return e;const s={dialog:It,drawer:ge,section:zr};return e.mixins=e.mixins.map(i=>{if("string"==typeof i&&void 0!==s[i]){if(e.extends){if(!0===((new(t.extend(e.extends))).$options.mixins??[]).includes(s[i]))return}return s[i]}return i}).filter(t=>void 0!==t),e},su=t=>(t.template&&(t.render=null),t),iu=(t,e={})=>((e={resolveComponentExtension:tu,resolveComponentMixins:eu,resolveComponentRender:su,components:{},created:[],icons:{},login:null,textareaButtons:{},thirdParty:{},use:[],viewButtons:{},writerMarks:{},writerNodes:{},...e}).use=((t,e)=>{if(!1===Array.isArray(e))return[];for(const s of e)t.use(s);return e})(t,e.use),e.components=((t,e)=>{if(!1===yt(e))return;const s={};for(const[n,o]of Object.entries(e))try{s[n]=Qc(t,n,o)}catch(i){window.console.warn(i.message)}return s})(t,e.components),e),nu=t=>{const e=Ac("menu",{entries:[],hover:!1,isOpen:!1}),s=window.matchMedia?.("(max-width: 60rem)"),i=n({...e,blur(t){const e=document.querySelector(".k-panel-menu");if(!e||!1===s.matches)return!1;!1===document.querySelector(".k-panel-menu-proxy").contains(t.target)&&!1===e.contains(t.target)&&this.close()},close(){this.isOpen=!1,!1===s.matches&&localStorage.setItem("kirby$menu",!0)},escape(){if(!1===s.matches)return!1;this.close()},open(){this.isOpen=!0,!1===s.matches&&localStorage.removeItem("kirby$menu")},resize(){if(s.matches)return this.close();null!==localStorage.getItem("kirby$menu")?this.isOpen=!1:this.isOpen=!0},set(t){return this.entries=t,this.resize(),this.state()},toggle(){this.isOpen?this.close():this.open()}});return t.events.on("keydown.esc",i.escape.bind(i)),t.events.on("click",i.blur.bind(i)),s?.addEventListener("change",i.resize.bind(i)),i},ou=t=>({controller:null,requests:0,get isLoading(){return this.requests>0},open(e){t.menu.escape(),t.dialog.open({component:"k-search-dialog",props:{type:e}})},async query(e,s,i){if(this.controller?.abort(),this.controller=new AbortController,s.length<2)return{results:null,pagination:{}};this.requests++;try{const{$search:n}=await t.get(`/search/${e}`,{query:{query:s,...i},signal:this.controller.signal});return n}catch(n){if("AbortError"!==n.name)return{results:[],pagination:{}}}finally{this.requests--}}}),ru=window.matchMedia?.("(prefers-color-scheme: dark)"),au=t=>{const e=Ac("theme",{setting:localStorage.getItem("kirby$theme"),system:ru?.matches?"dark":"light"}),s=n({...e,get config(){return t.config.theme},get current(){const t=this.setting??this.config;return"system"===t?this.system:t??this.system},reset(){this.setting=null,localStorage.removeItem("kirby$theme")},set(t){this.setting=t,localStorage.setItem("kirby$theme",t)}});return ru?.addEventListener("change",t=>{s.system=t.matches?"dark":"light"}),s},lu=()=>{const t=Ac("translation",{code:null,data:{},direction:"ltr",name:null,weekday:1});return n({...t,set(e){return t.set.call(this,e),document.documentElement.lang=this.code,document.body.dir=this.direction,this.state()},translate(t,e,s=null){if("string"!=typeof t)return;const i=this.data[t]??s;return"string"!=typeof i?i:Hl(i,e)}})};const cu=t=>{const e=Ac("upload",{abort:null,accept:"*",attributes:{},files:[],max:null,multiple:!0,preview:{},replacing:null,url:null});return n({...e,...zc(),input:null,announce(){t.notification.success({context:"view"}),t.events.emit("model.update")},async cancel(){await this.emit("cancel"),this.abort?.abort(),this.completed.length>0&&(await this.emit("complete",this.completed),this.announce()),this.reset()},get completed(){return this.files.filter(t=>t.completed).map(t=>t.model)},async done(){t.dialog.close(),this.completed.length>0&&(await this.emit("complete",this.completed),await this.emit("done",this.completed),this.announce()),this.reset()},findDuplicate(t){return this.files.findLastIndex(e=>e.src.name===t.src.name&&e.src.type===t.src.type&&e.src.size===t.src.size&&e.src.lastModified===t.src.lastModified)},hasUniqueName(t){return this.files.filter(e=>e.name===t.name&&e.extension===t.extension).length<2},file(t){const e=URL.createObjectURL(t);return{...this.preview,completed:!1,error:null,extension:xl(t.name),filename:t.name,id:Vl(),model:null,name:wl(t.name),niceSize:_l(t.size),progress:0,size:t.size,src:t,type:t.type,url:e}},open(e,s){e instanceof FileList?(this.set(s),this.select(e)):this.set(e);const i={component:"k-upload-dialog",props:{preview:this.preview},on:{open:t=>this.emit("open",t),cancel:()=>this.cancel(),submit:async()=>{t.dialog.isLoading=!0,await this.submit(),t.dialog.isLoading=!1}}};this.replacing&&(i.component="k-upload-replace-dialog",i.props.original=this.replacing),t.dialog.open(i)},pick(t){this.set(t),this.input=document.createElement("input"),this.input.type="file",this.input.classList.add("sr-only"),this.input.value=null,this.input.accept=this.accept,this.input.multiple=this.multiple,this.input.click(),this.input.addEventListener("change",e=>{!0===t?.immediate?(this.set(t),this.select(e.target.files),this.submit()):this.open(e.target.files,t),this.input.remove()})},remove(t){this.files=this.files.filter(e=>e.id!==t)},replace(e,s){this.pick({...s,url:t.urls.api+"/"+e.link,accept:"."+e.extension+","+e.mime,multiple:!1,replacing:e})},reset(){e.reset.call(this),this.files.splice(0)},select(t,e){if(this.set(e),t instanceof Event&&(t=t.target.files),t instanceof FileList==!1)throw new Error("Please provide a FileList");t=(t=[...t]).map(t=>this.file(t)),this.files=[...this.files,...t],this.files=this.files.filter((t,e)=>this.findDuplicate(t)===e),null!==this.max&&(this.files=this.files.slice(-1*this.max)),this.emit("select",this.files)},set(t){if(t)return e.set.call(this,t),this.on={},this.addEventListeners(t.on??{}),1===this.max&&(this.multiple=!1),!1===this.multiple&&(this.max=1),this.state()},async submit(){if(!this.url)throw new Error("The upload URL is missing");this.abort=new AbortController;const e=[];for(const s of this.files){if(!0===s.completed)continue;if(!1===this.hasUniqueName(s)){s.error=t.t("error.file.name.unique");continue}s.error=null,s.progress=0;const i={...this.attributes};e.push(async()=>await this.upload(s,i));const n=this.attributes?.sort;null!=n&&this.attributes.sort++}if(await async function(t,e=20){let s=0,i=0;return new Promise(n=>{const o=e=>i=>{t[e]=i,s--,r()},r=()=>{if(s1?t.slice(a,l,t.type):t;i>1&&(e.headers={...e.headers,"Upload-Length":t.size,"Upload-Offset":a,"Upload-Id":n}),o=await Jl(c,{...e,progress:(s,i,n)=>{const o=i.size*(n/100),r=(a+o)/t.size;e.progress(s,t,Math.round(100*r))}})}return o}(e.src,{abort:this.abort.signal,attributes:s,filename:e.name+"."+e.extension,headers:{"x-csrf":t.system.csrf},url:this.url,progress:(t,s,i)=>{e.progress=i}},t.config.upload);e.completed=!0,e.model=i.data,t.events.emit("file.upload",e)}catch(i){t.error(i,!1),e.error=i.message,e.progress=0,t.events.emit("file.upload.error",e)}}})},uu=t=>{const e=Yc(t,"view",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null,breadcrumb:[],breadcrumbLabel:null,icon:null,id:null,link:null,search:"pages",title:null});return n({...e,async load(t,s={}){return this.abortController?.abort(),e.load.call(this,t,s)},set(s){e.set.call(this,s),t.title=this.title;const i=this.url().toString();window.location.toString()!==i&&(window.history.pushState(null,null,i),window.scrollTo(0,0))},async submit(){throw new Error("Not yet implemented")}})},pu={config:{},languages:[],license:"missing",multilang:!1,permissions:{},searches:{},urls:{}},du=["dialog","drawer"],hu=["dropdown","language","menu","notification","system","translation","user"],mu={create(t={}){return this.isLoading=!1,this.isOffline=!1,this.activation=Mc(),this.drag=Vc(),this.events=Jc(this),this.searcher=ou(this),this.theme=au(this),this.upload=cu(this),this.language=Zc(),this.menu=nu(this),this.notification=Xc(this),this.system=Ac("system",{ascii:{},csrf:null,isLocal:null,locales:{},slugs:[],title:null}),this.translation=lu(),this.user=Ac("user",{email:null,id:null,language:null,role:null,username:null}),this.dropdown=Wc(this),this.view=uu(this),this.content=Fc(this),this.drawer=Kc(this),this.dialog=Uc(this),this.redirect=Lc,this.reload=this.view.reload.bind(this.view),this.t=this.translation.translate.bind(this.translation),this.plugins=iu(window.Vue,t),this.set(window.fiber),this.api=Nc(this),n(this)},get context(){return this.dialog.isOpen?"dialog":this.drawer.isOpen?"drawer":"view"},get debug(){return!0===this.config.debug},deprecated(t){this.notification.deprecated(t)},get direction(){return this.translation.direction},error(t,e=!0){if("AbortError"!==t.name)return!0===this.debug&&console.error(t),!0===e?this.notification.error(t):void 0},async get(t,e={}){const{response:s}=await this.request(t,{method:"GET",...e});return s?.json??{}},async open(t,e={}){try{if(!1===ec(t))this.set(t);else{this.isLoading=!0;const s=await this.get(t,e);this.set(s)}return this.state()}catch(s){return this.error(s)}finally{this.isLoading=!1}},overlays(){const t=[];return!0===this.drawer.isOpen&&t.push("drawer"),!0===this.dialog.isOpen&&t.push("dialog"),t},async post(t,e={},s={}){const{response:i}=await this.request(t,{method:"POST",body:e,...s});return i.json},async request(t,e={}){return Tc(t,{referrer:this.view.path,csrf:this.system.csrf,...e})},async search(t,e,s){return void 0===e?this.searcher.open(t):this.searcher.query(t,e,s)},set(t={}){t=Object.fromEntries(Object.entries(t).map(([t,e])=>[t.replace("$",""),e]));for(const e in pu){const s=t[e]??this[e]??pu[e];typeof s==typeof pu[e]&&(this[e]=s)}for(const e of hu)(yt(t[e])||Array.isArray(t[e]))&&this[e].set(t[e]);for(const e of du)if(!0===yt(t[e])){if(t[e].redirect)return this.open(t[e].redirect);this[e].open(t[e])}else void 0!==t[e]&&this[e].close(!0);!0===yt(t.dropdown)?this.dropdown.open(t.dropdown):void 0!==t.dropdown&&this.dropdown.close(),!0===yt(t.view)&&this.view.open(t.view)},state(){const t={};for(const e in pu)t[e]=this[e]??pu[e];for(const e of hu)t[e]=this[e].state();for(const e of du)t[e]=this[e].state();return t.dropdown=this.dropdown.state(),t.view=this.view.state(),t},get title(){return document.title},set title(t){!1===Nl(this.system.title)&&(t+=" | "+this.system.title),document.title=t},url:(t="",e={},s)=>Zl(t,e,s)};t.config.productionTip=!1,t.config.devtools=!0,t.use(oc),t.use(Oc),t.use(ul),window.panel=t.prototype.$panel=mu.create(window.panel.plugins),window.panel.app=new t({render:()=>i(R)}),t.use(rc),t.use(pl),t.use(ac),window.panel.app.$mount("#app");export{lt as n}; +import t,{del as e,set as s,h as i,reactive as n}from"vue";import{I as o,P as r,S as a,F as l,N as c,s as u,l as p,w as d,a as h,b as m,c as f,d as g,e as k,t as b,f as y,g as v,h as $,i as x,k as w,D as _,j as S,E as C,m as O,n as A,o as M,T as D,u as E,p as j,r as I,q as L,v as B,x as T,y as P,z as q,A as N,B as F,C as z,G as Y}from"./vendor.min.js";const R={created(){this.$panel.events.subscribe();for(const t of this.$panel.plugins.created)t(this);this.$panel.events.on("popstate",()=>{this.$panel.open(window.location.href)}),this.$panel.events.on("drop",()=>{this.$panel.drag.stop()})},destroyed(){this.$panel.events.unsubscribe()},render(t){if(this.$panel.view.component)return t(this.$panel.view.component,{key:this.$panel.view.component,props:this.$panel.view.props})}},H={props:{after:String}},U={props:{autocomplete:String}},V={props:{autofocus:Boolean}},K={props:{before:String}},W={props:{disabled:Boolean}},J={props:{font:String}},G={props:{help:String}},X={props:{id:{type:[Number,String],default(){return this._uid}}}},Z={props:{label:[String,Boolean]}},Q={props:{layout:{type:String,default:"list"}}},tt={props:{maxlength:Number}},et={props:{minlength:Number}},st={props:{name:[Number,String]}},it={props:{options:{default:()=>[],type:Array}}},nt={props:{pattern:String}},ot={props:{placeholder:[Number,String]}},rt={props:{required:Boolean}},at={props:{spellcheck:{type:Boolean,default:!0}}};function lt(t,e,s,i,n,o,r,a){var l="function"==typeof t?t.options:t;return e&&(l.render=e,l.staticRenderFns=s,l._compiled=!0),{exports:t,options:l}}const ct={mixins:[Q],inheritAttrs:!1,props:{columns:{type:[Object,Array],default:()=>({})},fields:{type:Object,default:()=>({})},items:{type:Array,default:()=>[]},link:{type:Boolean,default:!0},selecting:Boolean,sortable:Boolean,size:{type:String,default:"medium"},theme:String}};const ut=lt({mixins:[ct],props:{image:{type:[Object,Boolean],default:()=>({})}},emits:["change","hover","item","option","sort"],computed:{dragOptions(){return{sort:this.sortable,disabled:!1===this.sortable,draggable:".k-draggable-item"}},itemsWithIds(){return this.items.map(t=>({...t,id:t.id??t.uuid??this.$helper.uuid()}))},table(){return{columns:this.columns,fields:this.fields,rows:this.items,selecting:this.selecting,sortable:this.sortable}}},methods:{onDragStart(t,e){this.$panel.drag.start("text",e)},onOption(t,e,s){this.$emit("option",t,e,s)},onSelect(t,e,s){this.$emit("select",t,e,s)},imageOptions(t){let e=this.image,s=t.image;return!1!==e&&!1!==s&&("object"!=typeof e&&(e={}),"object"!=typeof s&&(s={}),{...s,...e})}}},function(){var t=this,e=t._self._c;return"table"===t.layout?e("k-table",t._b({class:t.$attrs.class,style:t.$attrs.style,on:{change:function(e){return t.$emit("change",e)},select:t.onSelect,sort:function(e){return t.$emit("sort",e)},option:t.onOption},scopedSlots:t._u([t.$scopedSlots.options?{key:"options",fn:function({row:e,rowIndex:s}){return[t._t("options",null,null,{item:e,index:s})]}}:null],null,!0)},"k-table",t.table,!1)):e("k-draggable",{class:["k-items","k-"+t.layout+"-items",t.$attrs.class],style:t.$attrs.style,attrs:{"data-layout":t.layout,"data-size":t.size,handle:!0,list:t.items,options:t.dragOptions},on:{change:function(e){return t.$emit("change",e)},end:function(e){return t.$emit("sort",t.items,e)}}},[t._l(t.itemsWithIds,function(s,i){return[t._t("default",function(){return[e("k-item",t._b({key:s.id,class:{"k-draggable-item":t.sortable&&!1!==s.sortable},attrs:{image:t.imageOptions(s),layout:t.layout,link:!!t.link&&s.link,selecting:t.selecting,selectable:s.selectable,sortable:t.sortable&&!1!==s.sortable,theme:s.theme??t.theme,width:s.column},on:{click:function(e){return t.$emit("item",s,i)},drag:function(e){return t.onDragStart(e,s.dragText)},option:function(e){return t.onOption(e,s,i)},select:function(e){return t.onSelect(s,i)}},nativeOn:{mouseover:function(e){return t.$emit("hover",e,s,i)}},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options",null,null,{item:s,index:i})]},proxy:!0}],null,!0)},"k-item",s,!1))]},null,{item:s,itemIndex:i})]})],2)},[]).exports;const pt=lt({mixins:[ct],props:{empty:{type:Object,default:()=>({})},help:String,pagination:{type:[Boolean,Object],default:!1}},emits:["action","change","empty","item","option","paginate","sort"],computed:{hasPagination(){return!1!==this.pagination&&(!0!==this.paginationOptions.hide&&!(this.pagination.total<=this.pagination.limit))},listeners(){return this.$listeners.empty?{click:this.onEmpty}:{}},paginationOptions(){return{limit:10,details:!0,keys:!1,total:0,hide:!1,..."object"!=typeof this.pagination?{}:this.pagination}}},watch:{$props(){this.$forceUpdate()}},methods:{onEmpty(t){t.stopPropagation(),this.$emit("empty")},onOption(...t){this.$emit("action",...t),this.$emit("option",...t)},onSelect(...t){this.$emit("select",...t)}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-collection"},[0===t.items.length?e("k-empty",t._g(t._b({attrs:{layout:t.layout}},"k-empty",t.empty,!1),t.listeners)):e("k-items",t._b({on:{change:function(e){return t.$emit("change",e)},item:function(e){return t.$emit("item",e)},option:t.onOption,select:t.onSelect,sort:function(e){return t.$emit("sort",e)}},scopedSlots:t._u([{key:"options",fn:function({item:e,index:s}){return[t._t("options",null,null,{item:e,index:s})]}}],null,!0)},"k-items",{columns:t.columns,fields:t.fields,items:t.items,layout:t.layout,link:t.link,selecting:t.selecting,size:t.size,sortable:t.sortable,theme:t.theme},!1)),t.help||t.hasPagination?e("footer",{staticClass:"k-collection-footer"},[e("k-text",{staticClass:"k-help k-collection-help",attrs:{html:t.help}}),t.hasPagination?e("k-pagination",t._b({on:{paginate:function(e){return t.$emit("paginate",e)}}},"k-pagination",t.paginationOptions,!1)):t._e()],1):t._e()],1)},[]).exports;const dt=lt({mixins:[Q],props:{text:String,icon:String},emits:["click"],computed:{attrs(){const t={button:void 0!==this.$listeners.click,icon:this.icon,theme:"empty"};return"cardlets"!==this.layout&&"cards"!==this.layout||(t.align="center",t.height="var(--item-height-cardlet)"),t}}},function(){var t=this;return(0,t._self._c)("k-box",t._b({staticClass:"k-empty",nativeOn:{click:function(e){return t.$emit("click",e)}}},"k-box",t.attrs,!1),[t._t("default",function(){return[t._v(" "+t._s(t.text)+" ")]})],2)},[]).exports,ht={mixins:[Q],props:{image:[Object,Boolean],width:{type:String,default:"1/1"}}};const mt=lt({mixins:[ht],inheritAttrs:!1,computed:{attrs(){return{back:this.image.back,cover:!0,...this.image,ratio:"list"===this.layout?"auto":this.image.ratio,size:this.sizes}},component(){return this.image.src?"k-image-frame":"k-icon-frame"},sizes(){switch(this.width){case"1/2":case"2/4":return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 44em, 27em";case"1/3":return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 29.333em, 27em";case"1/4":return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 22em, 27em";case"2/3":return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 27em, 27em";case"3/4":return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 66em, 27em";default:return"(min-width: 30em) and (max-width: 65em) 59em, (min-width: 65em) 88em, 27em"}}}},function(){var t=this;return(0,t._self._c)(t.component,t._b({tag:"component",class:["k-item-image",t.$attrs.class],style:t.$attrs.style},"component",t.attrs,!1))},[]).exports;const ft=lt({mixins:[ht,Q],inheritAttrs:!1,props:{buttons:{type:Array,default:()=>[]},data:Object,info:String,link:{type:[Boolean,String,Function]},options:{type:[Array,Function,String]},selecting:Boolean,selectable:Boolean,sortable:Boolean,target:String,text:String,theme:String},emits:["action","click","drag","option"],computed:{hasFigure(){return!1!==this.image&&this.$helper.object.length(this.image)>0}},methods:{onClick(t){if(this.selecting&&this.selectable)return this.$refs.selector.click();this.$emit("click",t)},onOption(t){this.$emit("action",t),this.$emit("option",t)},title(t){return this.$helper.string.stripHTML(this.$helper.string.unescapeHTML(t)).trim()}}},function(){var t=this,e=t._self._c;return e("div",t._b({class:["k-item",`k-${t.layout}-item`,t.$attrs.class],style:t.$attrs.style,attrs:{"data-has-image":t.hasFigure,"data-layout":t.layout,"data-selecting":t.selecting,"data-selectable":t.selectable,"data-theme":t.theme},on:{click:t.onClick,dragstart:function(e){return t.$emit("drag",e)}}},"div",t.data,!1),[t._t("image",function(){return[t.hasFigure?e("k-item-image",{attrs:{image:t.image,layout:t.layout,width:t.width}}):t._e()]}),t.sortable?e("k-sort-handle",{staticClass:"k-item-sort-handle",attrs:{tabindex:"-1"}}):t._e(),e("div",{staticClass:"k-item-content"},[e("h3",{staticClass:"k-item-title",attrs:{title:t.title(t.text)}},[!1!==t.link&&!0!==t.selecting?e("k-link",{attrs:{target:t.target,to:t.link}},[e("span",{domProps:{innerHTML:t._s(t.text??" ")}})]):e("span",{domProps:{innerHTML:t._s(t.text??" ")}})],1),t.info?e("p",{staticClass:"k-item-info",attrs:{title:t.title(t.info)},domProps:{innerHTML:t._s(t.info)}}):t._e()]),t.buttons?.length||t.options||t.$slots.options||t.selecting?e("div",{staticClass:"k-item-options"},[t._l(t.buttons,function(s,i){return e("k-button",t._b({key:"button-"+i},"k-button",s,!1))}),t.selecting?e("label",{staticClass:"k-item-options-checkbox",on:{click:function(t){t.stopPropagation()}}},[e("input",{ref:"selector",attrs:{type:"checkbox",disabled:!t.selectable},on:{change:function(e){return t.$emit("select",e)}}})]):t._t("options",function(){return[t.options?e("k-options-dropdown",{staticClass:"k-item-options-dropdown",attrs:{options:t.options},on:{option:t.onOption}}):t._e()]})],2):t._e()],2)},[]).exports,gt={install(t){t.component("k-collection",pt),t.component("k-empty",dt),t.component("k-item",ft),t.component("k-item-image",mt),t.component("k-items",ut)}};const kt=lt({},function(){return(0,this._self._c)("div",{staticClass:"k-dialog-body"},[this._t("default")],2)},[]).exports;function bt(t){if(void 0!==t)return structuredClone(t)}function yt(t){return"object"==typeof t&&t?.constructor===Object}function vt(t){return Object.keys(t??{}).length}function $t(t){return Object.keys(t).reduce((e,s)=>(e[s.toLowerCase()]=t[s],e),{})}const xt={clone:bt,filter:function(t,e){return Object.fromEntries(Object.entries(t).filter(([t,s])=>e(s,t)))},isEmpty:function(t){return null==t||""===t||(!(!yt(t)||0!==vt(t))||0===t.length)},isObject:yt,length:vt,merge:function t(e,s={}){for(const i in s)s[i]instanceof Object&&Object.assign(s[i],t(e[i]??{},s[i]));return Object.assign(e??{},s),e},same:function(t,e){return JSON.stringify(t)===JSON.stringify(e)},toLowerKeys:$t},wt={props:{cancelButton:{default:!0,type:[Boolean,String,Object]},disabled:{default:!1,type:Boolean},icon:{default:"check",type:String},submitButton:{type:[Boolean,String,Object],default:!0},theme:{default:"positive",type:String}}};const _t=lt({mixins:[wt],emits:["cancel"],computed:{cancel(){return this.button(this.cancelButton,{click:()=>this.$emit("cancel"),class:"k-dialog-button-cancel",icon:"cancel",text:this.$t("cancel"),variant:"filled"})},submit(){return this.button(this.submitButton,{class:"k-dialog-button-submit",disabled:this.disabled||this.$panel.dialog.isLoading,icon:this.$panel.dialog.isLoading?"loader":this.icon,text:this.$t("confirm"),theme:this.theme,type:"submit",variant:"filled"})}},methods:{button:(t,e)=>"string"==typeof t?{...e,text:t}:!1!==t&&(!1===yt(t)?e:{...e,...t})}},function(){var t=this,e=t._self._c;return e("k-button-group",{staticClass:"k-dialog-buttons"},[t.cancel?e("k-button",t._b({},"k-button",t.cancel,!1)):t._e(),t.submit?e("k-button",t._b({},"k-button",t.submit,!1)):t._e()],1)},[]).exports,St={props:{empty:{default:()=>window.panel.t("dialog.fields.empty"),type:String},fields:{default:()=>[],type:[Array,Object]},value:{default:()=>({}),type:Object}}};const Ct=lt({mixins:[St],emits:["input","submit"],computed:{hasFields(){return this.$helper.object.length(this.fields)>0}}},function(){var t=this,e=t._self._c;return t.hasFields?e("k-fieldset",{staticClass:"k-dialog-fields",attrs:{fields:t.fields,value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}}):e("k-box",{attrs:{theme:"info"}},[t._v(t._s(t.empty))])},[]).exports;const Ot=lt({},function(){return(0,this._self._c)("footer",{staticClass:"k-dialog-footer"},[this._t("default")],2)},[]).exports;const At=lt({},function(){var t=this,e=t._self._c;return"dialog"===t.$panel.notification.context?e("k-notification",{staticClass:"k-dialog-notification"}):t._e()},[]).exports;const Mt=lt({props:{autofocus:{default:!0,type:Boolean},placeholder:{type:String},value:{type:String}},emits:["search"],computed:{icon(){return this.value?"cancel-small":"search"}},methods:{onIconClick(){this.value?this.$emit("search",null):this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-input",{ref:"input",staticClass:"k-dialog-search",attrs:{autofocus:t.autofocus,placeholder:t.placeholder,value:t.value,type:"search"},on:{input:function(e){return t.$emit("search",e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("k-button",{attrs:{icon:t.icon,tabindex:"-1"},on:{click:t.onIconClick}})]},proxy:!0}])})},[]).exports,Dt={props:{empty:{type:String,default:()=>window.panel.t("dialog.text.empty")},text:{type:String}}};const Et=lt({mixins:[Dt]},function(){var t=this,e=t._self._c;return t.text?e("k-text",{attrs:{html:t.text}}):e("k-box",{attrs:{theme:"info"}},[t._v(t._s(t.empty))])},[]).exports,jt={install(t){t.component("k-dialog-body",kt),t.component("k-dialog-buttons",_t),t.component("k-dialog-fields",Ct),t.component("k-dialog-footer",Ot),t.component("k-dialog-notification",At),t.component("k-dialog-search",Mt),t.component("k-dialog-text",Et)}},It={mixins:[wt],props:{size:{default:"default",type:String},visible:{default:!1,type:Boolean}},emits:["cancel","close","input","submit","success"],methods:{cancel(){this.$emit("cancel")},close(){this.$emit("close")},error(t){this.$panel.notification.error(t)},focus(t){this.$panel.dialog.focus(t)},input(t){this.$emit("input",t)},open(){this.$panel.dialog.open(this)},submit(){this.$emit("submit",this.value)},success(t){this.$emit("success",t)}}};const Lt=lt({mixins:[It]},function(){var t=this,e=t._self._c;return t.visible?e("portal",{attrs:{to:"dialog"}},[e("form",{class:["k-dialog",t.$vnode.data.class,t.$vnode.data.staticClass,t.$attrs.class],attrs:{"data-size":t.size,method:"dialog"},on:{click:function(t){t.stopPropagation()},submit:function(e){return e.preventDefault(),t.$emit("submit")}}},[t._t("header",function(){return[e("k-dialog-notification")]}),t.$slots.default?e("k-dialog-body",[t._t("default")],2):t._e(),t._t("footer",function(){return[t.cancelButton||t.submitButton?e("k-dialog-footer",[e("k-dialog-buttons",{attrs:{"cancel-button":t.cancelButton,disabled:t.disabled,icon:t.icon,"submit-button":t.submitButton,theme:t.theme},on:{cancel:function(e){return t.$emit("cancel")}}})],1):t._e()]})],2)]):t._e()},[]).exports;const Bt=lt({mixins:[It],props:{cancelButton:{default:!1},files:{type:Array,default:()=>[]},pages:{type:Array,default:()=>[]},size:{default:"medium"},submitButton:{default:!1},users:{type:Array,default:()=>[]}}},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({staticClass:"k-changes-dialog"},"k-dialog",t.$props,!1),[t.pages.length?e("section",[e("k-headline",[t._v(t._s(t.$t("lock.unsaved.pages")))]),e("k-items",{attrs:{items:t.pages,layout:"list"}})],1):t._e(),t.files.length?e("section",[e("k-headline",[t._v(t._s(t.$t("lock.unsaved.files")))]),e("k-items",{attrs:{items:t.files,layout:"list"}})],1):t._e(),t.users.length?e("section",[e("k-headline",[t._v(t._s(t.$t("lock.unsaved.users")))]),e("k-items",{attrs:{items:t.users,layout:"list"}})],1):t._e(),t.pages.length||t.files.length||t.users.length?t._e():e("section",[e("k-headline",[t._v(t._s(t.$t("lock.unsaved")))]),e("k-empty",{attrs:{icon:"edit-line"}},[t._v(t._s(t.$t("lock.unsaved.empty")))])],1)])},[]).exports;const Tt=lt({mixins:[It,St],props:{fields:{default:()=>({href:{label:window.panel.t("email"),type:"email",icon:"email"},title:{label:window.panel.t("title"),type:"text",icon:"title"}})},size:{default:"medium"},submitButton:{default:()=>window.panel.t("insert")}},data(){return{values:{href:"",title:null,...this.value}}},methods:{submit(){this.$emit("submit",this.values)}}},function(){var t=this;return(0,t._self._c)("k-form-dialog",t._b({attrs:{value:t.values},on:{cancel:function(e){return t.$emit("cancel")},input:function(e){t.values=e},submit:t.submit}},"k-form-dialog",t.$props,!1))},[]).exports;const Pt=lt({mixins:[It],props:{details:[Object,Array],message:String,size:{default:"medium",type:String}},emits:["cancel"],computed:{detailsList(){return this.$helper.array.fromObject(this.details)}}},function(){var t=this,e=t._self._c;return e("k-dialog",{ref:"dialog",staticClass:"k-error-dialog",attrs:{"cancel-button":!1,"submit-button":!1,size:t.size,visible:t.visible},on:{cancel:function(e){return t.$emit("cancel")}}},[e("k-text",[t._v(t._s(t.message))]),t.detailsList.length?e("dl",{staticClass:"k-error-details"},[t._l(t.detailsList,function(s,i){return[e("dt",{key:"detail-label-"+i},[t._v(" "+t._s(s.label)+" ")]),e("dd",{key:"detail-message-"+i},["object"==typeof s.message?[e("ul",t._l(s.message,function(s,i){return e("li",{key:i},[t._v(" "+t._s(s)+" ")])}),0)]:[t._v(" "+t._s(s.message)+" ")]],2)]})],2):t._e()],1)},[]).exports;const qt=lt({},function(){var t=this;return(0,t._self._c)(t.$panel.dialog.component,t._g(t._b({key:t.$panel.dialog.timestamp,tag:"component",attrs:{visible:!0}},"component",t.$panel.dialog.props,!1),t.$panel.dialog.listeners()))},[]).exports,Nt=(t,e,s={leading:!1,trailing:!0})=>{let i=null,n=null;return!1===s.leading&&!1===s.trailing?()=>null:function(...o){!i&&s.leading?t.apply(this,o):n=o,clearTimeout(i),i=setTimeout(()=>{s.trailing&&n&&t.apply(this,n),i=null,n=null},e)}},Ft={props:{delay:{default:200,type:Number},hasSearch:{default:!0,type:Boolean}},data:()=>({query:""}),watch:{query(){!1!==this.hasSearch&&this.search()}},created(){this.search=Nt(this.search,this.delay)},methods:{async search(){console.warn("Search mixin: Please implement a `search` method.")}}},zt={props:{endpoint:String,empty:Object,fetchParams:Object,item:{type:Function,default:t=>t},max:Number,multiple:{type:Boolean,default:!0},size:{type:String,default:"medium"},value:{type:Array,default:()=>[]}}};const Yt=lt({mixins:[It,Ft,zt],emits:["cancel","fetched","submit"],data(){return{models:[],selected:this.value.reduce((t,e)=>({...t,[e]:{id:e}}),{}),pagination:{limit:20,page:1,total:0}}},computed:{items(){return this.models.map(this.item)}},watch:{fetchParams(t,e){!1===this.$helper.object.same(t,e)&&(this.pagination.page=1,this.fetch())}},mounted(){this.fetch()},methods:{async fetch(){const t={page:this.pagination.page,search:this.query,...this.fetchParams};try{this.$panel.dialog.isLoading=!0;const e=await this.$api.get(this.endpoint,t);this.models=e.data,this.pagination=e.pagination,this.$emit("fetched",e)}catch(e){this.$panel.error(e),this.models=[]}finally{this.$panel.dialog.isLoading=!1}},isSelected(t){return void 0!==this.selected[t.id]},paginate(t){this.pagination.page=t.page,this.pagination.limit=t.limit,this.fetch()},submit(){this.$emit("submit",Object.values(this.selected))},async search(){this.pagination.page=0,await this.fetch()},toggle(t){if(!1!==this.multiple&&1!==this.max||(this.selected={}),this.isSelected(t))return e(this.selected,t.id);this.max&&this.max<=this.$helper.object.length(this.selected)||s(this.selected,t.id,t)}}},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({staticClass:"k-models-dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:t.submit}},"k-dialog",t.$props,!1),[t._t("header"),t.hasSearch?e("k-dialog-search",{attrs:{value:t.query},on:{search:function(e){t.query=e}}}):t._e(),e("k-collection",{attrs:{empty:{...t.empty,text:t.$panel.dialog.isLoading?t.$t("loading"):t.empty.text},items:t.items,link:!1,pagination:{details:!0,dropdown:!1,align:"center",...t.pagination},sortable:!1,layout:"list"},on:{item:t.toggle,paginate:t.paginate},scopedSlots:t._u([{key:"options",fn:function({item:s}){return[e("k-choice-input",{attrs:{checked:t.isSelected(s),type:t.multiple&&1!==t.max?"checkbox":"radio",title:t.isSelected(s)?t.$t("remove"):t.$t("select")},on:{click:function(e){return e.stopPropagation(),t.toggle(s)}}}),t._t("options",null,null,{item:s})]}}],null,!0)})],2)},[]).exports;const Rt=lt({mixins:[It,zt],props:{empty:{type:Object,default:()=>({icon:"image",text:window.panel.t("dialog.files.empty")})}}},function(){var t=this;return(0,t._self._c)("k-models-dialog",t._b({on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",e)}}},"k-models-dialog",t.$props,!1))},[]).exports;const Ht=lt({mixins:[It,St],props:{size:{default:"medium"},submitButton:{default:()=>window.panel.t("save")},text:{type:String}},emits:["cancel","input","submit"]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",t.value)}}},"k-dialog",t.$props,!1),[t._t("default",function(){return[t.text?e("k-dialog-text",{attrs:{text:t.text}}):t._e(),e("k-dialog-fields",{attrs:{fields:t.fields,value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})]})],2)},[]).exports;const Ut=lt({extends:Ht,watch:{"value.name"(t){this.fields.code.disabled||this.onNameChanges(t)},"value.code"(t){this.fields.code.disabled||(this.value.code=this.$helper.slug(t,[this.$panel.system.ascii]),this.onCodeChanges(this.value.code))}},methods:{onCodeChanges(t){if(!t)return this.value.locale=null;if(t.length>=2)if(-1!==t.indexOf("-")){let e=t.split("-"),s=[e[0],e[1].toUpperCase()];this.value.locale=s.join("_")}else{let e=this.$panel.system.locales??[];this.value.locale=e?.[t]}},onNameChanges(t){this.value.code=this.$helper.slug(t,[this.value.rules,this.$panel.system.ascii]).substr(0,2)}}},null,null).exports;const Vt=lt({mixins:[{mixins:[It],props:{license:Object,size:{default:"large"}}}]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",staticClass:"k-license-dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[e("k-bar",{staticStyle:{"margin-bottom":"var(--spacing-2)"}},[e("h2",{staticClass:"k-headline"},[t._v(" "+t._s(t.$t("license"))+" ")]),e("k-button",{attrs:{text:t.$t("remove"),icon:"trash",size:"xs",variant:"filled",dialog:"license/remove"}})],1),e("div",{staticClass:"k-table"},[e("table",{staticStyle:{"table-layout":"auto"}},[e("tbody",[e("tr",[e("th",{attrs:{"data-mobile":"true"}},[t._v(t._s(t.$t("type")))]),e("td",{attrs:{"data-mobile":"true"}},[t._v(t._s(t.license.type))])]),t.license.code?e("tr",[e("th",{attrs:{"data-mobile":"true"}},[t._v(t._s(t.$t("license.code")))]),e("td",{staticClass:"k-text",attrs:{"data-mobile":"true"}},[e("code",[t._v(t._s(t.license.code))])])]):t._e(),t.license.info?e("tr",[e("th",{attrs:{"data-mobile":"true"}},[t._v(t._s(t.$t("status")))]),e("td",{attrs:{"data-mobile":"true","data-theme":t.license.theme}},[e("p",{staticClass:"k-license-dialog-status"},[e("k-icon",{attrs:{type:t.license.icon}}),t._v(" "+t._s(t.license.info)+" ")],1)])]):t._e()])])])],1)},[]).exports;const Kt=lt({mixins:[{mixins:[It],props:{cancelButton:null,submitButton:null,lock:Object,preview:String}}]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",staticClass:"k-lock-alert-dialog",attrs:{"cancel-button":!1,"submit-button":{theme:"passive"}},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[e("k-dialog-text",{attrs:{text:t.$t("form.locked")}}),e("dl",[e("div",[e("dt",[e("k-icon",{attrs:{type:"user"}})],1),e("dd",[t._v(t._s(t.lock.user.email))])]),e("div",[e("dt",[e("k-icon",{attrs:{type:"clock"}})],1),e("dd",[t._v(" "+t._s(t.$library.dayjs(t.lock.modified).format("YYYY-MM-DD HH:mm:ss"))+" ")])])])],1)},[]).exports;const Wt=lt({mixins:[It,St],props:{fields:{default:()=>({href:{label:window.panel.t("link"),type:"link",placeholder:window.panel.t("url.placeholder"),icon:"url"},title:{label:window.panel.t("title"),type:"text",icon:"title"},target:{label:window.panel.t("open.newWindow"),type:"toggle",text:[window.panel.t("no"),window.panel.t("yes")]}})},size:{default:"medium"},submitButton:{default:()=>window.panel.t("insert")}},data(){return{values:{href:"",title:null,...this.value,target:Boolean(this.value.target??!1)}}},methods:{submit(){let t="/@/$1/";this.values.href.startsWith("page://")&&window.panel.language.code&&!1===window.panel.language.default&&!1===window.panel.language.hasCustomDomain&&(t="/"+window.panel.language.code+t);const e=this.values.href.replace(/(file|page):\/\//,t);this.$emit("submit",{...this.values,href:e,target:this.values.target?"_blank":null})}}},function(){var t=this;return(0,t._self._c)("k-form-dialog",t._b({attrs:{value:t.values},on:{cancel:function(e){return t.$emit("cancel")},input:function(e){t.values=e},submit:t.submit}},"k-form-dialog",t.$props,!1))},[]).exports;const Jt=lt({mixins:[Ht],props:{blueprints:{type:Array},size:{default:"medium",type:String},submitButton:{type:[String,Boolean],default:()=>window.panel.t("save")},template:{type:String}},computed:{templates(){return this.blueprints.map(t=>({text:t.title,value:t.name}))}},methods:{pick(t){this.$panel.dialog.refresh({query:{...this.$panel.dialog.query,slug:this.value.slug,template:t,title:this.value.title}})}}},function(){var t=this,e=t._self._c;return e("k-form-dialog",t._b({ref:"dialog",staticClass:"k-page-create-dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",t.value)}}},"k-form-dialog",t.$props,!1),[t.templates.length>1?e("k-select-field",{staticClass:"k-page-template-switch",attrs:{empty:!1,label:t.$t("template"),options:t.templates,required:!0,value:t.template},on:{input:function(e){return t.pick(e)}}}):t._e(),e("k-dialog-fields",{attrs:{fields:t.fields,value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})],1)},[]).exports;const Gt=lt({mixins:[It],props:{value:{default:()=>({}),type:Object}},emits:["cancel","input","submit"],methods:{select(t){this.$emit("input",{...this.value,parent:t.value})}}},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",staticClass:"k-page-move-dialog",attrs:{"submit-button":{icon:"parent",text:t.$t("move")},size:"medium"},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",t.value)}}},"k-dialog",t.$props,!1),[e("k-headline",[t._v(t._s(t.$t("page.move")))]),e("div",{staticClass:"k-page-move-parent",attrs:{tabindex:"0","data-autofocus":""}},[e("k-page-tree",{attrs:{current:t.value.parent,move:t.value.move,identifier:"id"},on:{select:t.select}})],1)],1)},[]).exports;const Xt=lt({mixins:[It,zt],props:{empty:{type:Object,default:()=>({icon:"page",text:window.panel.t("dialog.pages.empty")})}},data:()=>({model:null,parent:null})},function(){var t=this,e=t._self._c;return e("k-models-dialog",t._b({attrs:{"fetch-params":{parent:t.parent}},on:{cancel:function(e){return t.$emit("cancel")},fetched:function(e){t.model=e.model},submit:function(e){return t.$emit("submit",e)}},scopedSlots:t._u([t.model?{key:"header",fn:function(){return[e("header",{staticClass:"k-pages-dialog-navbar"},[e("k-button",{attrs:{disabled:!t.model.id,title:t.$t("back"),icon:"angle-left"},on:{click:function(e){t.parent=t.model.parent}}}),e("k-headline",[t._v(t._s(t.model.title))])],1)]},proxy:!0}:null,t.model?{key:"options",fn:function({item:s}){return[e("k-button",{staticClass:"k-pages-dialog-option",attrs:{disabled:!s.hasChildren,title:t.$t("open"),icon:"angle-right"},on:{click:function(e){e.stopPropagation(),t.parent=s.id}}})]}}:null],null,!0)},"k-models-dialog",t.$props,!1))},[]).exports;const Zt=lt({mixins:[{mixins:[It,Dt]}]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[t._t("default",function(){return[e("k-dialog-text",{attrs:{text:t.text}})]})],2)},[]).exports;const Qt=lt({mixins:[Zt],props:{icon:{default:"trash"},submitButton:{default:()=>window.panel.t("delete")},theme:{default:"negative"}}},function(){var t=this;return(0,t._self._c)("k-text-dialog",t._b({ref:"dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-text-dialog",t.$props,!1),[t._t("default")],2)},[]).exports;const te=lt({mixins:[It],props:{type:String},emits:["cancel"],data:()=>({results:null,pagination:{}}),methods:{focus(){this.$refs.search?.focus()},navigate(t){t&&(this.$go(t.link),this.close())},async search({type:t,query:e}){const s=await this.$panel.search(t,e);s&&(this.results=s.results,this.pagination=s.pagination)}}},function(){var t=this,e=t._self._c;return e("k-dialog",{staticClass:"k-search-dialog",attrs:{"cancel-button":!1,"submit-button":!1,visible:!0,role:"search",size:"medium"},on:{cancel:function(e){return t.$emit("cancel")},submit:t.submit}},[e("k-search-bar",{ref:"search",attrs:{"default-type":t.type??t.$panel.view.search,"is-loading":t.$panel.searcher.isLoading,pagination:t.pagination,results:t.results,types:t.$panel.searches},on:{close:t.close,more:function(e){return t.$go("search",{query:e})},navigate:t.navigate,search:t.search}})],1)},[]).exports;const ee=lt({mixins:[{mixins:[It,St]}],props:{fields:null,qr:{type:String,required:!0},size:{default:"large"},submitButton:{default:()=>({text:window.panel.t("activate"),icon:"lock",theme:"notice"})}},emits:["cancel","input","submit"]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[e("k-dialog-text",{staticClass:"k-totp-dialog-intro",attrs:{text:t.$t("login.totp.enable.intro")}}),e("div",{staticClass:"k-totp-dialog-grid"},[e("div",{staticClass:"k-totp-qrcode"},[e("k-info-field",{attrs:{label:t.$t("login.totp.enable.qr.label"),text:t.qr,help:t.$t("login.totp.enable.qr.help",{secret:t.value.secret}),theme:"passive"}})],1),e("k-dialog-fields",{staticClass:"k-totp-dialog-fields",attrs:{fields:{info:{label:t.$t("login.totp.enable.confirm.headline"),type:"info",text:t.$t("login.totp.enable.confirm.text"),theme:"none"},confirm:{label:t.$t("login.totp.enable.confirm.label"),type:"text",counter:!1,font:"monospace",required:!0,placeholder:t.$t("login.code.placeholder.totp"),help:t.$t("login.totp.enable.confirm.help")},secret:{type:"hidden"}},value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})],1)],1)},[]).exports;const se=lt({mixins:[It],props:{submitButton:{type:[String,Boolean,Object],default:()=>({icon:"upload",text:window.panel.t("upload")})}}},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",staticClass:"k-upload-dialog",attrs:{disabled:t.disabled||0===t.$panel.upload.files.length},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[e("k-dropzone",{on:{drop:function(e){return t.$panel.upload.select(e)}}},[0===t.$panel.upload.files.length?e("k-empty",{attrs:{icon:"upload",layout:"cards"},on:{click:function(e){return t.$panel.upload.pick()}}},[t._v(" "+t._s(t.$t("files.empty"))+" ")]):e("k-upload-items",{attrs:{items:t.$panel.upload.files},on:{remove:e=>{t.$panel.upload.remove(e.id)},rename:(t,e)=>{t.name=e}}})],1)],1)},[]).exports;const ie=lt({extends:se,props:{original:Object,submitButton:{type:[String,Boolean,Object],default:()=>({icon:"upload",text:window.panel.t("replace")})}},computed:{file(){return this.$panel.upload.files[0]}}},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",staticClass:"k-upload-dialog k-upload-replace-dialog",on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},"k-dialog",t.$props,!1),[e("ul",{staticClass:"k-upload-items"},[e("li",{staticClass:"k-upload-original"},[e("k-upload-item-preview",{attrs:{color:t.original.image?.color,icon:t.original.image?.icon,url:t.original.url,type:t.original.mime}})],1),e("li",[t._v("←")]),e("k-upload-item",t._b({attrs:{color:t.original.image?.color,editable:!1,icon:t.original.image?.icon,name:t.$helper.file.name(t.original.filename),removable:!1}},"k-upload-item",t.file,!1))],1)])},[]).exports;const ne=lt({mixins:[It,zt],props:{empty:{type:Object,default:()=>({icon:"users",text:window.panel.t("dialog.users.empty")})},item:{type:Function,default:t=>({...t,key:t.email,info:t.info!==t.text?t.info:null})}}},function(){var t=this;return(0,t._self._c)("k-models-dialog",t._b({on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",e)}}},"k-models-dialog",t.$props,!1))},[]).exports,oe={install(t){t.use(jt),t.component("k-dialog",Lt),t.component("k-changes-dialog",Bt),t.component("k-email-dialog",Tt),t.component("k-error-dialog",Pt),t.component("k-fiber-dialog",qt),t.component("k-files-dialog",Rt),t.component("k-form-dialog",Ht),t.component("k-license-dialog",Vt),t.component("k-link-dialog",Wt),t.component("k-lock-alert-dialog",Kt),t.component("k-language-dialog",Ut),t.component("k-models-dialog",Yt),t.component("k-page-create-dialog",Jt),t.component("k-page-move-dialog",Gt),t.component("k-pages-dialog",Xt),t.component("k-remove-dialog",Qt),t.component("k-search-dialog",te),t.component("k-text-dialog",Zt),t.component("k-totp-dialog",ee),t.component("k-upload-dialog",se),t.component("k-upload-replace-dialog",ie),t.component("k-users-dialog",ne)}};const re=lt({},function(){return(0,this._self._c)("div",{staticClass:"k-drawer-body scroll-y-auto"},[this._t("default")],2)},[]).exports,ae={props:{disabled:Boolean,empty:{type:String,default:()=>window.panel.t("drawer.fields.empty")},fields:Object,value:Object}};const le=lt({mixins:[ae],emits:["input","submit"],computed:{hasFields(){return this.$helper.object.length(this.fields)>0}}},function(){var t=this,e=t._self._c;return t.hasFields?e("k-fieldset",{staticClass:"k-drawer-fields",attrs:{disabled:t.disabled,fields:t.fields,value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}}):e("k-box",{attrs:{theme:"info"}},[t._v(t._s(t.empty))])},[]).exports,ce={props:{breadcrumb:{default:()=>[],type:Array},tab:{type:String},tabs:{default:()=>({}),type:Object}}};const ue=lt({mixins:[ce],emits:["crumb","tab"]},function(){var t=this,e=t._self._c;return e("header",{staticClass:"k-drawer-header"},[e("nav",{staticClass:"k-breadcrumb k-drawer-breadcrumb"},[e("ol",t._l(t.breadcrumb,function(s,i){return e("li",{key:s.id},[e("k-button",{staticClass:"k-breadcrumb-link",attrs:{icon:s.props.icon,text:s.props.title,current:i===t.breadcrumb.length-1,variant:"dimmed"},on:{click:function(e){return t.$emit("crumb",s.id)}}})],1)}),0)]),e("k-drawer-tabs",{attrs:{tab:t.tab,tabs:t.tabs},on:{open:function(e){return t.$emit("tab",e)}}}),e("nav",{staticClass:"k-drawer-options"},[t._t("default"),e("k-button",{staticClass:"k-drawer-option",attrs:{icon:"check",type:"submit"}})],2)],1)},[]).exports;const pe=lt({},function(){var t=this,e=t._self._c;return"drawer"===t.$panel.notification.context?e("k-notification",{staticClass:"k-drawer-notification"}):t._e()},[]).exports;const de=lt({mixins:[{props:{tab:{type:String},tabs:{default:()=>({}),type:[Array,Object]}}}],emits:["open"],computed:{hasTabs(){return this.$helper.object.length(this.tabs)>1},tabsWithClickHandler(){let t=this.tabs;return!1===Array.isArray(t)&&(t=Object.values(t)),t.map(t=>({...t,click:()=>this.$emit("open",t.name)}))}}},function(){var t=this,e=t._self._c;return t.hasTabs?e("k-tabs",{staticClass:"k-drawer-tabs",attrs:{tab:t.tab,tabs:t.tabsWithClickHandler}}):t._e()},[]).exports,he={props:{empty:{type:String,default:()=>window.panel.t("drawer.text.empty")},text:{type:String}}};const me=lt({mixins:[he]},function(){var t=this,e=t._self._c;return t.text?e("k-text",{attrs:{html:t.text}}):e("k-box",{attrs:{theme:"info"}},[t._v(t._s(t.empty))])},[]).exports,fe={install(t){t.component("k-drawer-body",re),t.component("k-drawer-fields",le),t.component("k-drawer-header",ue),t.component("k-drawer-notification",pe),t.component("k-drawer-tabs",de),t.component("k-drawer-text",me)}},ge={mixins:[ce],props:{current:{default:!0,type:Boolean},icon:String,size:{default:"default",type:String},id:String,options:{type:Array},title:String,visible:{default:!1,type:Boolean}}};const ke=lt({mixins:[ge],emits:["cancel","crumb","submit","tab"]},function(){var t=this,e=t._self._c;return t.visible?e("portal",{attrs:{to:"drawer"}},[e("form",{staticClass:"k-drawer",class:t.$vnode.data.staticClass,attrs:{"aria-current":t.current,"data-size":t.size,method:"dialog"},on:{submit:function(e){return e.preventDefault(),t.$emit("submit")}}},[e("k-drawer-notification"),e("k-drawer-header",{attrs:{breadcrumb:t.breadcrumb,tab:t.tab,tabs:t.tabs},on:{crumb:function(e){return t.$emit("crumb",e)},tab:function(e){return t.$emit("tab",e)}}},[t._t("options",function(){return[t._l(t.options,function(s,i){return[s.dropdown?[e("k-button",t._b({key:"btn-"+i,staticClass:"k-drawer-option",on:{click:function(e){t.$refs["dropdown-"+i][0].toggle()}}},"k-button",s,!1)),e("k-dropdown-content",{key:"dropdown-"+i,ref:"dropdown-"+i,refInFor:!0,attrs:{options:s.dropdown,"align-x":"end",theme:"light"}})]:e("k-button",t._b({key:i,staticClass:"k-drawer-option"},"k-button",s,!1))]})]})],2),e("k-drawer-body",[t._t("default")],2)],1)]):t._e()},[]).exports,be={props:{hidden:{type:Boolean},next:{type:Object},prev:{type:Object}}};const ye=lt({mixins:[ge,ae,be],emits:["cancel","crumb","input","next","prev","remove","show","submit","tab"]},function(){var t=this,e=t._self._c;return e("k-form-drawer",t._b({ref:"drawer",staticClass:"k-block-drawer",on:{cancel:function(e){return t.$emit("cancel",e)},crumb:function(e){return t.$emit("crumb",e)},input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)},tab:function(e){return t.$emit("tab",e)}},scopedSlots:t._u([{key:"options",fn:function(){return[t.hidden?e("k-button",{staticClass:"k-drawer-option",attrs:{icon:"hidden"},on:{click:function(e){return t.$emit("show")}}}):t._e(),e("k-button",{staticClass:"k-drawer-option",attrs:{disabled:!t.prev,icon:"angle-left"},on:{click:function(e){return t.$emit("prev")}}}),e("k-button",{staticClass:"k-drawer-option",attrs:{disabled:!t.next,icon:"angle-right"},on:{click:function(e){return t.$emit("next")}}}),e("k-button",{staticClass:"k-drawer-option",attrs:{icon:"trash"},on:{click:function(e){return t.$emit("remove")}}})]},proxy:!0}])},"k-form-drawer",t.$props,!1))},[]).exports;const ve=lt({methods:{isCurrent(t){return this.$panel.drawer.id===t}}},function(){var t=this,e=t._self._c;return e("div",t._l(t.$panel.drawer.history.milestones,function(s){return e(s.component,t._g(t._b({key:s.id,tag:"component",attrs:{breadcrumb:t.$panel.drawer.breadcrumb,current:!0===t.isCurrent(s.id),visible:!0}},"component",t.isCurrent(s.id)?t.$panel.drawer.props:s.props,!1),t.isCurrent(s.id)?t.$panel.drawer.listeners():s.on))}),1)},[]).exports;const $e=lt({mixins:[ge,ae],emits:["cancel","crumb","input","submit","tab"]},function(){var t=this,e=t._self._c;return e("k-drawer",t._b({ref:"drawer",staticClass:"k-form-drawer",on:{cancel:function(e){return t.$emit("cancel")},crumb:function(e){return t.$emit("crumb",e)},submit:function(e){return t.$emit("submit",t.value)},tab:function(e){return t.$emit("tab",e)}},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0}],null,!0)},"k-drawer",t.$props,!1),[e("k-drawer-fields",{attrs:{disabled:t.disabled,fields:t.fields,value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})],1)},[]).exports;const xe=lt({mixins:[ge,ae,{props:{next:{type:Object},prev:{type:Object}}}],emits:["cancel","crumb","input","next","prev","remove","submit","tab"]},function(){var t=this,e=t._self._c;return e("k-form-drawer",t._b({ref:"drawer",staticClass:"k-structure-drawer",on:{cancel:function(e){return t.$emit("cancel",e)},crumb:function(e){return t.$emit("crumb",e)},input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)},tab:function(e){return t.$emit("tab",e)}},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function(){return[e("k-button",{staticClass:"k-drawer-option",attrs:{disabled:!t.prev,icon:"angle-left"},on:{click:function(e){return t.$emit("prev")}}}),e("k-button",{staticClass:"k-drawer-option",attrs:{disabled:!t.next,icon:"angle-right"},on:{click:function(e){return t.$emit("next")}}}),e("k-button",{staticClass:"k-drawer-option",attrs:{icon:"trash"},on:{click:function(e){return t.$emit("remove")}}})]},proxy:!0}],null,!0)},"k-form-drawer",t.$props,!1))},[]).exports;const we=lt({mixins:[ge,he],emits:["cancel","crumb","input","submit","tab"]},function(){var t=this,e=t._self._c;return e("k-drawer",t._b({ref:"drawer",staticClass:"k-text-drawer",on:{cancel:function(e){return t.$emit("cancel")},crumb:function(e){return t.$emit("crumb",e)},submit:function(e){return t.$emit("submit",t.value)},tab:function(e){return t.$emit("tab",e)}},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0}],null,!0)},"k-drawer",t.$props,!1),[e("k-dialog-text",{attrs:{text:t.text}})],1)},[]).exports,_e={install(t){t.use(fe),t.component("k-drawer",ke),t.component("k-block-drawer",ye),t.component("k-fiber-drawer",ve),t.component("k-form-drawer",$e),t.component("k-structure-drawer",xe),t.component("k-text-drawer",we)}};let Se=null;const Ce=lt({props:{align:{type:String},alignX:{type:String,default:"start"},alignY:{type:String,default:"bottom"},disabled:{type:Boolean,default:!1},navigate:{default:!0,type:Boolean},options:[Array,Function,String],theme:{type:String,default:"dark"}},emits:["action","close","open"],data(){return{axis:{x:this.alignX,y:this.alignY},position:{x:0,y:0},isOpen:!1,items:[],opener:null}},mounted(){this.align&&window.panel.deprecated(": `align` prop will be removed in a future version. Use the `alignX` prop instead.")},methods:{close(){this.$refs.dropdown?.close()},async fetchOptions(t){return this.options?"string"==typeof this.options?this.$dropdown(this.options)(t):"function"==typeof this.options?this.options(t):Array.isArray(this.options)?t(this.options):void 0:t(this.items)},focus(t=0){this.$refs.navigate.focus(t)},onClick(){this.close()},onClose(){this.resetPosition(),this.isOpen=Se=!1,this.$emit("close"),window.removeEventListener("resize",this.setPosition)},async onOpen(){this.isOpen=!0;const t=window.scrollY;Se=this,await this.$nextTick(),this.$el&&this.opener&&(window.addEventListener("resize",this.setPosition),await this.setPosition(),window.scrollTo(0,t),this.$emit("open"))},onOptionClick(t){return this.close(),"function"==typeof t.click?t.click.call(this):"string"==typeof t.click?this.$emit("action",t.click):void(t.click&&(t.click.name&&this.$emit(t.click.name,t.click.payload),t.click.global&&this.$events.emit(t.click.global,t.click.payload)))},open(t){if(!0===this.disabled)return!1;Se&&Se!==this&&Se.close(),this.opener=t??window.event?.target.closest("button")??window.event?.target,this.fetchOptions(t=>{this.items=t,this.onOpen()})},async setPosition(){this.axis={x:this.alignX??this.align,y:this.alignY},"right"===this.axis.x?this.axis.x="end":"left"===this.axis.x&&(this.axis.x="start"),"rtl"===this.$panel.direction&&("start"===this.axis.x?this.axis.x="end":"end"===this.axis.x&&(this.axis.x="start")),this.opener.$el&&(this.opener=this.opener.$el);const t=this.opener.getBoundingClientRect();this.position.x=t.left+window.scrollX+t.width,this.position.y=t.top+window.scrollY+t.height,!0!==this.$el.open&&this.$el.showModal(),await this.$nextTick();const e=this.$el.getBoundingClientRect(),s=10;"end"===this.axis.x?t.left-e.widthwindow.innerWidth-s&&e.width+se.top&&(this.axis.y="bottom"):t.top+e.height>window.innerHeight-s&&e.height+st.onOptionClick(s)}},"k-dropdown-item",s,!1),[t._v(" "+t._s(s.label??s.text)+" ")])]},null,{item:s,index:i}):t._e()]})]},null,{items:t.items})],2)],1):t._e()},[]).exports,Oe={props:{disabled:Boolean,download:Boolean,rel:String,tabindex:[String,Number],target:String,title:String}};const Ae=lt({mixins:[Oe],props:{to:[String,Function]},emits:["click"],computed:{downloadAttr(){return this.download?this.href.split("/").pop():void 0},href(){return"function"==typeof this.to?"":"/"!==this.to[0]||this.target?!0===this.to.includes("@")&&!1===this.to.includes("/")&&!1===this.to.startsWith("mailto:")?"mailto:"+this.to:this.to:this.$url(this.to)},relAttr(){return"_blank"===this.target?"noreferrer noopener":this.rel}},methods:{isRoutable(t){if(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)return!1;if(t.defaultPrevented)return!1;if(void 0!==t.button&&0!==t.button)return!1;if(this.target)return!1;if("string"==typeof this.href){if(this.href.includes("://")||this.href.startsWith("//"))return!1;if(this.href.includes("mailto:"))return!1}return!0},onClick(t){if(!0===this.disabled)return t.preventDefault(),!1;"function"==typeof this.to&&(t.preventDefault(),this.to()),this.isRoutable(t)&&(t.preventDefault(),this.$go(this.to)),this.$emit("click",t)}}},function(){var t=this,e=t._self._c;return t.to&&!t.disabled?e("a",{ref:"link",staticClass:"k-link",attrs:{download:t.downloadAttr,href:t.href,rel:t.relAttr,tabindex:t.tabindex,target:t.target,title:t.title},on:{click:t.onClick}},[t._t("default")],2):e("span",{staticClass:"k-link",attrs:{title:t.title,"aria-disabled":""}},[t._t("default")],2)},[]).exports,Me={mixins:[Oe],props:{autofocus:Boolean,badge:Object,click:{type:Function,default:()=>{}},current:[String,Boolean],dialog:[String,Object],drawer:[String,Object],dropdown:Boolean,element:String,icon:String,id:[String,Number],link:String,responsive:[Boolean,String],role:String,selected:[String,Boolean],size:String,text:[String,Number],theme:String,type:{type:String,default:"button"},variant:String}};const De=lt({mixins:[Me],inheritAttrs:!1,emits:["click"],computed:{attrs(){const t={"aria-current":this.current,"aria-disabled":this.disabled,"aria-label":this.text??this.title,"aria-selected":this.selected,"data-responsive":this.responsive,"data-size":this.size,"data-theme":this.theme,"data-variant":this.variant,id:this.id,tabindex:this.tabindex,title:this.title};return"k-link"===this.component?(t.disabled=this.disabled,t.download=this.download,t.to=this.link,t.rel=this.rel,t.target=this.target):"button"===this.component&&(t.autofocus=this.autofocus,t.role=this.role,t.type=this.type),this.dropdown&&(t["aria-haspopup"]="menu",t["data-dropdown"]=this.dropdown),t},component(){return this.element?this.element:this.link?"k-link":"button"}},methods:{focus(){this.$el.focus?.()},onClick(t){return this.disabled?(t.preventDefault(),!1):this.dialog?this.$panel.dialog.open(this.dialog):this.drawer?this.$panel.drawer.open(this.drawer):(this.click?.(t),void this.$emit("click",t))}}},function(){var t=this,e=t._self._c;return e(t.component,t._b({tag:"component",class:["k-button",t.$attrs.class],style:t.$attrs.style,attrs:{"data-has-icon":Boolean(t.icon),"data-has-text":Boolean(t.text||t.$slots.default)},on:{click:t.onClick}},"component",t.attrs,!1),[t.icon?e("span",{staticClass:"k-button-icon"},[e("k-icon",{attrs:{type:t.icon}})],1):t._e(),t.text||t.$slots.default?e("span",{staticClass:"k-button-text"},[t._t("default",function(){return[t._v(" "+t._s(t.text)+" ")]})],2):t._e(),t.dropdown&&(t.text||t.$slots.default)?e("span",{staticClass:"k-button-arrow"},[e("k-icon",{attrs:{type:"angle-dropdown"}})],1):t._e(),t.badge?e("span",{staticClass:"k-button-badge",attrs:{"data-theme":t.badge.theme??t.theme}},[t._v(" "+t._s(t.badge.text)+" ")]):t._e()])},[]).exports;const Ee=lt({mixins:[Me],inheritAttrs:!1,emit:["click"],methods:{focus(){this.$refs.button.focus()},tab(){this.$refs.button.tab()}}},function(){var t=this;return(0,t._self._c)("k-button",t._b({ref:"button",class:["k-dropdown-item",t.$attrs.class],style:t.$attrs.style,on:{click:function(e){return t.$emit("click",e)}}},"k-button",t.$props,!1),[t._t("default")],2)},[]).exports;const je=lt({props:{align:{type:String,default:"right"},disabled:{type:Boolean},icon:{type:String,default:"dots"},options:{type:[Array,Function,String],default:()=>[]},text:{type:[Boolean,String],default:!0},theme:{type:String,default:"dark"},size:String,variant:String},emits:["action","option"],computed:{hasSingleOption(){return Array.isArray(this.options)&&1===this.options.length}},methods:{onAction(t,e,s){"function"==typeof t?t.call(this):(this.$emit("action",t,e,s),this.$emit("option",t,e,s))},toggle(t=this.$el){this.$refs.options.toggle(t)}}},function(){var t=this,e=t._self._c;return t.hasSingleOption?e("k-button",{staticClass:"k-options-dropdown-toggle",attrs:{disabled:t.disabled,icon:t.options[0].icon??t.icon,size:t.options[0].size??t.size,title:t.options[0].title??t.options[0].tooltip??t.options[0].text,variant:t.options[0].variant??t.variant},on:{click:function(e){return t.onAction(t.options[0].option??t.options[0].click,t.options[0],0)}}},[!0===t.text?[t._v(" "+t._s(t.options[0].text)+" ")]:!1!==t.text?[t._v(" "+t._s(t.text)+" ")]:t._e()],2):t.options.length?e("div",{staticClass:"k-options-dropdown"},[e("k-button",{staticClass:"k-options-dropdown-toggle",attrs:{disabled:t.disabled,dropdown:!0,icon:t.icon,size:t.size,text:!0!==t.text&&!1!==t.text?t.text:null,title:t.$t("options"),variant:t.variant},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",staticClass:"k-options-dropdown-content",attrs:{"align-x":t.align,options:t.options},on:{action:t.onAction}})],1):t._e()},[]).exports,Ie={mixins:[V,W,X,st,rt]},Le={mixins:[Ie],inheritAttrs:!1,emits:["input"],methods:{focus(){this.$el.focus()}}},Be={mixins:[V,W,it,rt],props:{ignore:{default:()=>[],type:Array},max:Number,min:Number,search:{default:!0,type:[Object,Boolean]}}},Te={mixins:[Ie,Be],props:{create:{type:[Boolean,Object],default:!1},multiple:{type:Boolean,default:!0},value:{type:[Array,String],default:()=>[]}},emits:["create","escape","input"]};const Pe=lt({mixins:[Le,Te],data(){return{display:this.search.display??!0,query:""}},computed:{choices(){let t=this.filteredOptions;return!0!==this.display&&(t=t.slice(0,this.display)),t.map(t=>({...t,disabled:t.disabled||this.isFull&&!1===this.value.includes(t.value),text:this.highlight(t.text),...this.search.info&&t.info?{info:this.highlight(t.info)}:{}}))},filteredOptions(){if(!(this.query.length<(this.search.min??0))){if(this.search.info){let t=this.$helper.array.search(this.options,this.query,{field:"text"});return t=t.concat(this.$helper.array.search(this.options,this.query,{field:"info"})),t=t.filter((t,e,s)=>e===s.findIndex(e=>e===t)),t}return this.$helper.array.search(this.options,this.query,{field:"text"})}},isFull(){return this.max&&this.value.length>=this.max},placeholder(){return this.search.placeholder?this.search.placeholder:this.options.length>0?this.$t("filter")+"…":this.$t("enter")+"…"},showCreate(){if(!1===this.create)return!1;if(this.isFull)return!1;if(0===this.query.trim().length)return!1;if(!0===this.ignore.includes(this.query))return!1;if(!0===this.create.ignore?.includes(this.query))return!1;return 0===this.options.filter(t=>t.text===this.query||t.value===this.query).length},showEmpty(){return!1===this.create&&0===this.filteredOptions.length}},methods:{add(){this.showCreate&&this.$emit("create",this.query)},enter(t){t.target?.click()},escape(){0===this.query.length?this.$emit("escape"):this.query=""},focus(){this.$refs.search?this.$refs.search.focus():this.$refs.options?.focus()},highlight(t){if(t=this.$helper.string.stripHTML(t),this.query.length>0){const e=new RegExp(`(${RegExp.escape(this.query)})`,"ig");return t.replace(e,"$1")}return t},input(t){this.$emit("input",t)}}},function(){var t=this,e=t._self._c;return e("k-navigate",{class:["k-picklist-input",t.$attrs.class],style:t.$attrs.style,attrs:{element:"nav",axis:"y",select:"input[type=search], label, .k-picklist-input-body button"},on:{prev:function(e){return t.$emit("escape")}}},[t.search?e("header",{staticClass:"k-picklist-input-header"},[e("div",{staticClass:"k-picklist-input-search"},[e("k-search-input",{ref:"search",attrs:{autofocus:t.autofocus,disabled:t.disabled,placeholder:t.placeholder,value:t.query},on:{input:function(e){t.query=e}},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"escape",void 0,e.key,void 0)?null:(e.preventDefault(),t.escape.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.add.apply(null,arguments))}]}}),t.showCreate?e("k-button",{staticClass:"k-picklist-input-create",attrs:{icon:"add",size:"xs"},on:{click:t.add}}):t._e()],1)]):t._e(),t.filteredOptions.length?[e("div",{staticClass:"k-picklist-input-body"},[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e(t.multiple?"k-checkboxes-input":"k-radio-input",{ref:"options",tag:"component",staticClass:"k-picklist-input-options",attrs:{disabled:t.disabled,options:t.choices,value:t.value},on:{input:t.input},nativeOn:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.enter.apply(null,arguments))}}})],1),!0!==t.display&&t.filteredOptions.length>t.display?e("k-button",{staticClass:"k-picklist-input-more",attrs:{icon:"angle-down"},on:{click:function(e){t.display=!0}}},[t._v(" "+t._s(t.$t("options.all",{count:t.filteredOptions.length}))+" ")]):t._e()],1)]:t.showEmpty?[e("div",{staticClass:"k-picklist-input-body"},[e("p",{staticClass:"k-picklist-input-empty"},[t._v(" "+t._s(t.$t("options.none"))+" ")])])]:t._e()],2)},[]).exports;const qe=lt({mixins:[Te],emits:["create","input"],methods:{close(){this.$refs.dropdown.close()},add(t){this.$emit("create",t)},input(t){this.$emit("input",t)},open(t){this.$refs.dropdown.open(t)},toggle(){this.$refs.dropdown.toggle()}}},function(){var t=this,e=t._self._c;return e("k-dropdown-content",{ref:"dropdown",staticClass:"k-picklist-dropdown",attrs:{"align-x":"start",disabled:t.disabled,navigate:!1},nativeOn:{click:function(t){t.stopPropagation()}}},[e("k-picklist-input",t._b({on:{create:t.add,input:t.input,escape:function(e){return t.$refs.dropdown.close()}},nativeOn:{click:function(t){t.stopPropagation()}}},"k-picklist-input",t.$props,!1))],1)},[]).exports,Ne={install(t){t.component("k-dropdown-content",Ce),t.component("k-dropdown-item",Ee),t.component("k-options-dropdown",je),t.component("k-picklist-dropdown",qe)}};const Fe=lt({props:{count:Number,min:Number,max:Number,required:{type:Boolean,default:!1}},computed:{valid(){return!1===this.required&&0===this.count||(!0!==this.required||0!==this.count)&&(!(this.min&&this.countthis.max))}}},function(){var t=this,e=t._self._c;return e("span",{staticClass:"k-counter",attrs:{"data-invalid":!t.valid,"data-theme":t.valid?"positive":"negative"}},[e("span",[t._v(t._s(t.count))]),t.min||t.max?e("span",{staticClass:"k-counter-rules"},[t.min&&t.max?[t._v(t._s(t.min)+"–"+t._s(t.max))]:t.min?[t._v("≥ "+t._s(t.min))]:t.max?[t._v("≤ "+t._s(t.max))]:t._e()],2):t._e()])},[]).exports,ze={mixins:[W,G,X,Z,st,rt],props:{counter:[Boolean,Object],endpoints:Object,input:{type:[String,Number,Boolean],default:null},translate:Boolean,type:String}};const Ye=lt({mixins:[ze],inheritAttrs:!1,emits:["blur","focus"]},function(){var t=this,e=t._self._c;return e("div",{class:["k-field",`k-field-name-${t.name}`,`k-field-type-${t.type}`,t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-translate":t.translate},on:{focusin:function(e){return t.$emit("focus",e)},focusout:function(e){return t.$emit("blur",e)}}},[t._t("header",function(){return[t.label||t.$slots.label||t.$slots.options||t.$slots.counter?e("header",{staticClass:"k-field-header"},[t._t("label",function(){return[e("k-label",{attrs:{input:t.input,required:t.required,title:t.label,type:"field"}},[t._v(" "+t._s(t.label)+" ")])]}),t._t("options"),t._t("counter",function(){return[t.counter?e("k-counter",t._b({staticClass:"k-field-counter",attrs:{required:t.required}},"k-counter",t.counter,!1)):t._e()]})],2):t._e()]}),t._t("default"),t._t("footer",function(){return[t.help||t.$slots.help?e("footer",{staticClass:"k-field-footer"},[t._t("help",function(){return[t.help?e("k-text",{staticClass:"k-help k-field-help",attrs:{html:t.help}}):t._e()]})],2):t._e()]})],2)},[]).exports;const Re=lt({props:{config:Object,disabled:Boolean,fields:{type:[Array,Object],default:()=>({})},value:{type:Object,default:()=>({})}},emits:["focus","input","submit"],methods:{focus(t){if(t)return void(this.hasField(t)&&"function"==typeof this.$refs[t][0].focus&&this.$refs[t][0].focus());const e=Object.keys(this.$refs)[0];this.focus(e)},hasFieldType(t){return this.$helper.isComponent(`k-${t}-field`)},hasField(t){return this.$refs[t]?.[0]},onInput(t,e,s){const i=this.value;this.$set(i,s,t),this.$emit("input",i,e,s)}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-fieldset"},[e("k-grid",{attrs:{variant:"fields"}},[t._l(t.fields,function(s,i){return[t.$helper.field.isVisible(s,t.value)?e("k-column",{key:i,attrs:{width:s.width}},[t.hasFieldType(s.type)?e("k-"+s.type+"-field",t._b({ref:i,refInFor:!0,tag:"component",attrs:{disabled:t.disabled||s.disabled,"form-data":t.value,name:i,value:t.value[i]},on:{input:function(e){return t.onInput(e,s,i)},focus:function(e){return t.$emit("focus",e,s,i)},submit:function(e){return t.$emit("submit",e,s,i)}}},"component",s,!1)):e("k-box",{attrs:{theme:"negative"}},[e("k-text",{attrs:{size:"small"}},[t._v(" "+t._s(t.$t("error.field.type.missing",{name:i,type:s.type}))+" ")])],1)],1):t._e()]})],2)],1)},[]).exports;const He=lt({props:{disabled:Boolean,config:Object,fields:{type:[Array,Object],default:()=>[]},novalidate:{type:Boolean,default:!1},value:{type:Object,default:()=>({})}},emits:["focus","input","submit"],data:()=>({errors:{}}),methods:{focus(t){this.$refs.fields?.focus?.(t)},onFocus(t,e,s){this.$emit("focus",t,e,s)},onInput(t,e,s){this.$emit("input",t,e,s)},onSubmit(){this.$emit("submit",this.value)},submit(){this.$refs.submitter.click()}}},function(){var t=this,e=t._self._c;return e("form",{ref:"form",staticClass:"k-form",attrs:{novalidate:t.novalidate,method:"POST",autocomplete:"off"},on:{submit:function(e){return e.preventDefault(),t.onSubmit.apply(null,arguments)}}},[t._t("header"),t._t("default",function(){return[e("k-fieldset",{ref:"fields",attrs:{disabled:t.disabled,fields:t.fields,value:t.value},on:{focus:t.onFocus,input:t.onInput,submit:t.onSubmit}})]}),t._t("footer"),e("input",{ref:"submitter",staticClass:"k-form-submitter",attrs:{type:"submit"}})],2)},[]).exports,Ue={props:{editor:String,hasDiff:Boolean,isLocked:Boolean,isProcessing:Boolean,modified:[String,Date],preview:[String,Boolean],size:{type:String,default:"sm"}}};const Ve=lt({mixins:[Ue],emits:["discard","submit"],computed:{buttons(){return!0===this.isLocked?[{theme:"negative",dropdown:!0,text:this.editor,icon:"lock",responsive:!0,click:()=>this.$refs.dropdown.toggle()}]:!0===this.hasDiff?[{theme:"notice",text:this.$t("discard"),icon:"undo",responsive:!0,click:()=>this.discard()},{theme:"notice",text:this.$t("save"),icon:this.isProcessing?"loader":"check",click:()=>this.$emit("submit")},{theme:"notice",icon:"dots",click:()=>this.$refs.dropdown.toggle()}]:[]}},methods:{discard(){this.$panel.dialog.open({component:"k-remove-dialog",props:{size:"medium",submitButton:{theme:"notice",icon:"undo",text:this.$t("form.discard")},text:this.$t("form.discard.confirm")},on:{submit:()=>{this.$emit("discard")}}})}}},function(){var t=this,e=t._self._c;return t.buttons.length?e("div",{staticClass:"k-form-controls"},[e("k-button-group",{attrs:{layout:"collapsed"}},t._l(t.buttons,function(s){return e("k-button",t._b({key:s.text,staticClass:"k-form-controls-button",attrs:{disabled:t.isProcessing,variant:"filled",size:t.size}},"k-button",s,!1))}),1),e("k-dropdown-content",{ref:"dropdown",staticClass:"k-form-controls-dropdown",attrs:{"align-x":"end"}},[t.isLocked?[e("p",[t._v(" "+t._s(t.$t("form.locked"))+" ")])]:[e("p",[t._v(" "+t._s(t.$t("form.unsaved"))+" ")])],t.editor||t.modified?[e("hr"),e("dl",[t.editor?e("div",[e("dt",[e("k-icon",{attrs:{type:"user"}})],1),e("dd",[t._v(t._s(t.editor))])]):t._e(),t.modified?e("div",[e("dt",[e("k-icon",{attrs:{type:"clock"}})],1),e("dd",[t._v(" "+t._s(t.$library.dayjs(t.modified).format("YYYY-MM-DD HH:mm:ss"))+" ")])]):t._e()])]:t._e(),t.preview?[e("hr"),e("k-dropdown-item",{attrs:{link:t.preview,icon:"window"}},[t._v(" "+t._s(t.$t("form.preview"))+" ")])]:t._e()],2)],1):t._e()},[]).exports,Ke={mixins:[H,K,W],inheritAttrs:!1,props:{autofocus:Boolean,type:String,icon:[String,Boolean],value:{type:[String,Boolean,Number,Object,Array],default:null}},emits:["input","submit"]};const We=lt({mixins:[Ke],computed:{inputProps(){return{...this.$props,...this.$attrs}}},methods:{blur(t){t?.relatedTarget&&!1===this.$el.contains(t.relatedTarget)&&this.trigger(null,"blur")},focus(t){this.trigger(t,"focus")},select(t){this.trigger(t,"select")},trigger(t,e){if("INPUT"===t?.target?.tagName&&"function"==typeof t?.target?.[e])return void t.target[e]();if("function"==typeof this.$refs.input?.[e])return void this.$refs.input[e]();const s=this.$el.querySelector("input, select, textarea");"function"==typeof s?.[e]&&s[e]()}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-type":t.type}},[t.$slots.before||t.before?e("span",{staticClass:"k-input-description k-input-before",on:{click:t.focus}},[t._t("before",function(){return[t._v(t._s(t.before))]})],2):t._e(),e("span",{staticClass:"k-input-element",on:{click:function(e){return e.stopPropagation(),t.focus.apply(null,arguments)}}},[t._t("default",function(){return[e("k-"+t.type+"-input",t._b({ref:"input",tag:"component",attrs:{value:t.value},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}},"component",t.inputProps,!1))]})],2),t.$slots.after||t.after?e("span",{staticClass:"k-input-description k-input-after",on:{click:t.focus}},[t._t("after",function(){return[t._v(t._s(t.after))]})],2):t._e(),t.$slots.icon||t.icon?e("span",{staticClass:"k-input-icon",on:{click:t.focus}},[t._t("icon",function(){return[e("k-icon",{attrs:{type:t.icon}})]})],2):t._e()])},[]).exports,Je={props:{content:{default:()=>({}),type:[Array,Object]},fieldset:{default:()=>({}),type:Object}}};const Ge=lt({mixins:[Je],inheritAttrs:!1,computed:{icon(){return this.fieldset.icon??"box"},label(){if(!this.fieldset.label||0===this.fieldset.label.length)return!1;if(this.fieldset.label===this.name)return!1;let t=this.$helper.string.template(this.fieldset.label,this.content);return"…"!==t&&(t=this.$helper.string.stripHTML(t),this.$helper.string.unescapeHTML(t))},name(){return this.fieldset.name??this.fieldset.label}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-block-title",t.$attrs.class],style:t.$attrs.style},[e("k-icon",{staticClass:"k-block-icon",attrs:{type:t.icon}}),e("span",{staticClass:"k-block-title-text"},[t.name?e("span",{staticClass:"k-block-name"},[t._v(" "+t._s(t.name)+" ")]):t._e(),t.label?e("span",{staticClass:"k-block-label"},[t._v(" "+t._s(t.label)+" ")]):t._e()])],1)},[]).exports,Xe={mixins:[Je,W],props:{endpoints:{default:()=>({}),type:[Array,Object]},id:String}};const Ze=lt({mixins:[Xe],inheritAttrs:!1,methods:{field(t,e=null){let s=null;for(const i of Object.values(this.fieldset.tabs??{}))i.fields[t]&&(s=i.fields[t]);return s??e},open(){this.$emit("open")},update(t){this.$emit("update",{...this.content,...t})}}},function(){var t=this;return(0,t._self._c)("k-block-title",{class:t.$attrs.class,style:t.$attrs.style,attrs:{content:t.content,fieldset:t.fieldset},nativeOn:{dblclick:function(e){return t.$emit("open")}}})},[]).exports,Qe={props:{isBatched:Boolean,isFull:Boolean,isHidden:Boolean,isMergable:Boolean}};const ts=lt({mixins:[Qe],props:{isEditable:Boolean,isSplitable:Boolean},emits:["chooseToAppend","chooseToConvert","chooseToPrepend","copy","duplicate","hide","merge","open","paste","remove","removeSelected","show","split","sortDown","sortUp"],computed:{buttons(){return this.isBatched?[{icon:"template",title:this.$t("copy"),click:()=>this.$emit("copy")},{when:this.isMergable,icon:"merge",title:this.$t("merge"),click:()=>this.$emit("merge")},{icon:"trash",title:this.$t("remove"),click:()=>this.$emit("removeSelected")}]:[{when:this.isEditable,icon:"edit",title:this.$t("edit"),click:()=>this.$emit("open")},{icon:"add",title:this.$t("insert.after"),disabled:this.isFull,click:()=>this.$emit("chooseToAppend")},{icon:"trash",title:this.$t("delete"),click:()=>this.$emit("remove")},{icon:"sort",title:this.$t("sort.drag"),class:"k-sort-handle",key:t=>this.sort(t)},{icon:"dots",title:this.$t("more"),dropdown:[{icon:"angle-up",label:this.$t("insert.before"),disabled:this.isFull,click:()=>this.$emit("chooseToPrepend")},{icon:"angle-down",label:this.$t("insert.after"),disabled:this.isFull,click:()=>this.$emit("chooseToAppend")},"-",{when:this.isEditable,icon:"edit",label:this.$t("edit"),click:()=>this.$emit("open")},{icon:"refresh",label:this.$t("field.blocks.changeType"),click:()=>this.$emit("chooseToConvert")},{when:this.isSplitable,icon:"split",label:this.$t("split"),click:()=>this.$emit("split")},"-",{icon:"template",label:this.$t("copy"),click:()=>this.$emit("copy")},{icon:"download",label:this.$t("paste.after"),disabled:this.isFull,click:()=>this.$emit("paste")},"-",{icon:this.isHidden?"preview":"hidden",label:this.isHidden?this.$t("show"):this.$t("hide"),click:()=>this.$emit(this.isHidden?"show":"hide")},{icon:"copy",label:this.$t("duplicate"),click:()=>this.$emit("duplicate")},"-",{icon:"trash",label:this.$t("delete"),click:()=>this.$emit("remove")}]}]}},methods:{open(){this.$refs.options.open()},sort(t){switch(t.key){case"ArrowUp":t.preventDefault(),this.$emit("sortUp");break;case"ArrowDown":t.preventDefault(),this.$emit("sortDown")}}}},function(){return(0,this._self._c)("k-toolbar",{staticClass:"k-block-options",attrs:{buttons:this.buttons,"data-inline":"true"},nativeOn:{mousedown:function(t){t.preventDefault()}}})},[]).exports;const es=lt({mixins:[Xe,Qe],inheritAttrs:!1,props:{attrs:{default:()=>({}),type:[Array,Object]},isLastSelected:Boolean,isSelected:Boolean,name:String,next:Object,prev:Object,type:String},emits:["append","chooseToAppend","chooseToConvert","chooseToPrepend","close","copy","duplicate","focus","hide","merge","open","paste","prepend","remove","removeSelected","selectDown","selectUp","show","sortDown","sortUp","split","submit","update"],computed:{className(){let t=["k-block-type-"+this.type];return this.fieldset.preview&&this.fieldset.preview!==this.type&&t.push("k-block-type-"+this.fieldset.preview),!1===this.wysiwyg&&t.push("k-block-type-default"),t},containerType(){const t=this.fieldset.preview;return!1!==t&&(t&&this.$helper.isComponent("k-block-type-"+t)?t:!!this.$helper.isComponent("k-block-type-"+this.type)&&this.type)},customComponent(){return this.wysiwyg?this.wysiwygComponent:"k-block-type-default"},isDisabled(){return!0===this.disabled||!0===this.fieldset.disabled},isEditable(){return!1!==this.fieldset.editable},listeners(){return{append:t=>this.$emit("append",t),chooseToAppend:t=>this.$emit("chooseToAppend",t),chooseToConvert:t=>this.$emit("chooseToConvert",t),chooseToPrepend:t=>this.$emit("chooseToPrepend",t),close:()=>this.$emit("close"),copy:()=>this.$emit("copy"),duplicate:()=>this.$emit("duplicate"),focus:()=>this.$emit("focus"),hide:()=>this.$emit("hide"),merge:()=>this.$emit("merge"),open:t=>this.open(t),paste:()=>this.$emit("paste"),prepend:t=>this.$emit("prepend",t),remove:()=>this.remove(),removeSelected:()=>this.$emit("removeSelected"),show:()=>this.$emit("show"),sortDown:()=>this.$emit("sortDown"),sortUp:()=>this.$emit("sortUp"),split:t=>this.$emit("split",t),update:t=>this.$emit("update",t)}},listenersForOptions(){return{...this.listeners,split:()=>this.$refs.editor.split(),open:()=>{"function"==typeof this.$refs.editor.open?this.$refs.editor.open():this.open()}}},tabs(){const t=this.fieldset.tabs??{};for(const[e,s]of Object.entries(t))for(const[i]of Object.entries(s.fields??{}))t[e].fields[i].section=this.name,t[e].fields[i].endpoints={field:this.endpoints.field+"/fieldsets/"+this.type+"/fields/"+i,section:this.endpoints.section,model:this.endpoints.model};return t},wysiwyg(){return!1!==this.wysiwygComponent},wysiwygComponent(){return!!this.containerType&&"k-block-type-"+this.containerType}},methods:{backspace(t){if(t.target.matches("[contenteditable], input, textarea"))return!1;t.preventDefault(),this.remove()},close(){this.$panel.drawer.close(this.id)},collapse(){this.$refs.editor?.collapse?.()},expand(){this.$refs.editor?.expand?.()},focus(){"function"==typeof this.$refs.editor?.focus?this.$refs.editor.focus():this.$refs.container?.focus()},goTo(t){t&&(t.$refs.container?.focus(),t.open(null,!0))},isCollapsed(){return!0===(this.$refs.editor?.collapsed??!1)},isCollapsible(){return"function"==typeof this.$refs.editor?.collapse},isExpandable(){return"function"==typeof this.$refs.editor?.expand},isSplitable(){return!0!==this.isFull&&(!!this.$refs.editor&&((this.$refs.editor.isSplitable??!0)&&"function"==typeof this.$refs.editor?.split))},onClose(){this.$emit("close"),this.focus()},onFocus(t){this.disabled||this.$emit("focus",t)},onFocusIn(t){this.disabled||this.$refs.options?.$el?.contains(t.target)||this.$emit("focus",t)},onInput(t){this.$emit("update",t)},open(t,e=!1){!this.isEditable||this.isBatched||this.isDisabled||(this.$panel.drawer.open({component:"k-block-drawer",id:this.id,tab:t,on:{close:this.onClose,input:this.onInput,next:()=>this.goTo(this.next),prev:()=>this.goTo(this.prev),remove:this.remove,show:this.show,submit:this.submit},props:{hidden:this.isHidden,icon:this.fieldset.icon??"box",next:this.next,prev:this.prev,tabs:this.tabs,title:this.fieldset.name,value:this.content},replace:e}),this.$emit("open"))},remove(){if(this.isBatched)return this.$emit("removeSelected");this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.blocks.delete.confirm")},on:{submit:()=>{this.$panel.dialog.close(),this.close(),this.$emit("remove",this.id)}}})},show(){this.$emit("show")},submit(){this.close(),this.$emit("submit")}}},function(){var t=this,e=t._self._c;return e("div",{ref:"container",class:["k-block-container","k-block-container-fieldset-"+t.type,t.containerType?"k-block-container-type-"+t.containerType:"",t.$attrs.class],style:t.$attrs.style,attrs:{"data-batched":t.isBatched,"data-disabled":t.isDisabled,"data-hidden":t.isHidden,"data-id":t.id,"data-last-selected":t.isLastSelected,"data-selected":t.isSelected,"data-translate":t.fieldset.translate,tabindex:t.isDisabled?null:0},on:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"j",void 0,e.key,void 0)?null:e.ctrlKey?(e.preventDefault(),e.stopPropagation(),t.$emit("merge")):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:e.ctrlKey&&e.altKey?(e.preventDefault(),e.stopPropagation(),t.$emit("selectDown")):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:e.ctrlKey&&e.altKey?(e.preventDefault(),e.stopPropagation(),t.$emit("selectUp")):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:e.ctrlKey&&e.shiftKey?(e.preventDefault(),e.stopPropagation(),t.$emit("sortDown")):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:e.ctrlKey&&e.shiftKey?(e.preventDefault(),e.stopPropagation(),t.$emit("sortUp")):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"backspace",void 0,e.key,void 0)?null:e.ctrlKey?(e.stopPropagation(),t.backspace.apply(null,arguments)):null}],focus:function(e){return e.stopPropagation(),t.onFocus.apply(null,arguments)},focusin:function(e){return e.stopPropagation(),t.onFocusIn.apply(null,arguments)}}},[e("div",{staticClass:"k-block",class:t.className,attrs:{"data-disabled":t.isDisabled}},[e(t.customComponent,t._g(t._b({ref:"editor",tag:"component",attrs:{tabs:t.tabs}},"component",t.$props,!1),t.listeners))],1),t.isDisabled?t._e():e("k-block-options",t._g(t._b({ref:"options"},"k-block-options",{isBatched:t.isBatched,isEditable:t.isEditable,isFull:t.isFull,isHidden:t.isHidden,isMergable:t.isMergable,isSplitable:t.isSplitable()},!1),t.listenersForOptions))],1)},[]).exports;function ss(t,e){if("string"==typeof t&&(t=document.querySelector(t)),!t)return!1;if(!e&&t.contains(document.activeElement)&&t!==document.activeElement)return!1;const s=[":where([autofocus], [data-autofocus])",":where(input, textarea, select, [contenteditable=true], .input-focus)","[type=submit]","button"];e&&s.unshift(`[name="${e}"]`);const i=function(t,e){for(const s of e){const e=t.querySelector(s);if(!0===ns(e))return e}return null}(t,s);return i?(i.focus(),i):!0===ns(t)&&(t.focus(),t)}function is(t){return t.closest?.(".k-dialog")||t.closest?.(".k-drawer")}function ns(t){return!!t&&(!t.matches("[disabled], [aria-disabled], input[type=hidden]")&&(!t.closest("[aria-disabled]")&&!t.closest("[disabled]")&&"function"==typeof t.focus))}const os={mixins:[V,W,X],props:{empty:String,endpoints:Object,fieldsets:Object,fieldsetGroups:Object,group:String,min:{type:Number,default:null},max:{type:Number,default:null},value:{type:Array,default:()=>[]}},emits:["input"]};const rs=lt({mixins:[os],inheritAttrs:!1,data(){return{blocks:this.value??[],isEditing:!1,isMultiSelectKey:!1,selected:[]}},computed:{draggableOptions(){return{handle:".k-sort-handle",list:this.blocks,group:this.group,move:this.move,data:{fieldsets:this.fieldsets,isFull:this.isFull}}},hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0},isEmpty(){return 0===this.blocks.length},isFull(){return null!==this.max&&this.blocks.length>=this.max},isMergable(){if(this.selected.length<2)return!1;const t=this.selected.map(t=>this.find(t));return!(new Set(t.map(t=>t.type)).size>1)&&"function"==typeof this.ref(t[0]).$refs.editor.merge}},watch:{value(){this.blocks=this.value}},mounted(){!0===this.$props.autofocus&&setTimeout(this.focus,100),this.$events.on("blur",this.onBlur),this.$events.on("click",this.onClickGlobal),this.$events.on("focus",this.onFocusGlobal),this.$events.on("copy",this.onCopy),this.$events.on("keydown",this.onKey),this.$events.on("keyup",this.onKey),this.$events.on("paste",this.onPaste)},destroyed(){this.$events.off("blur",this.onBlur),this.$events.off("click",this.onClickGlobal),this.$events.off("focus",this.onFocusGlobal),this.$events.off("copy",this.onCopy),this.$events.off("keydown",this.onKey),this.$events.off("keyup",this.onKey),this.$events.off("paste",this.onPaste)},methods:{async add(t="text",e){const s=await this.$api.get(this.endpoints.field+"/fieldsets/"+t);this.blocks.splice(e,0,s),this.save(),await this.$nextTick(),this.focusOrOpen(s)},choose(t){if(1===this.$helper.object.length(this.fieldsets))return this.add(Object.values(this.fieldsets)[0].type,t);this.$panel.dialog.open({component:"k-block-selector",props:{fieldsetGroups:this.fieldsetGroups,fieldsets:this.fieldsets},on:{submit:e=>{this.add(e,t),this.$panel.dialog.close()},paste:e=>{this.paste(e,t)}}})},chooseToConvert(t){this.$panel.dialog.open({component:"k-block-selector",props:{disabledFieldsets:[t.type],fieldsetGroups:this.fieldsetGroups,fieldsets:this.fieldsets,headline:this.$t("field.blocks.changeType")},on:{submit:e=>{this.convert(e,t),this.$panel.dialog.close()},paste:this.paste}})},collapse(t){this.ref(t)?.collapse?.()},collapseAll(){for(const t of this.blocks)this.collapse(t)},copy(t){if(0===this.blocks.length)return!1;if(0===this.selected.length)return!1;let e=[];for(const s of this.blocks)this.selected.includes(s.id)&&e.push(s);if(0===e.length)return!1;this.$helper.clipboard.write(e,t),this.selected=e.map(t=>t.id),this.$panel.notification.success({message:this.$t("copy.success.multiple",{count:e.length}),icon:"template"})},copyAll(){this.selectAll(),this.copy(),this.deselectAll()},async convert(t,e){const s=this.findIndex(e.id);if(-1===s)return!1;const i=t=>{let e={};for(const s of Object.values(t?.tabs??{}))e={...e,...s.fields};return e},n=this.blocks[s],o=await this.$api.get(this.endpoints.field+"/fieldsets/"+t),r=this.fieldsets[n.type],a=this.fieldsets[t];if(!a)return!1;let l=o.content;const c=i(a),u=i(r);for(const[p,d]of Object.entries(c)){const t=u[p];t?.type===d.type&&n?.content?.[p]&&(l[p]=n.content[p])}this.blocks[s]={...o,id:n.id,content:l},this.save()},deselect(t){const e=this.selected.findIndex(e=>e===t.id);-1!==e&&this.selected.splice(e,1)},deselectAll(){this.selected=[]},async duplicate(t,e){const s={...this.$helper.object.clone(t),id:this.$helper.uuid()};this.blocks.splice(e+1,0,s),this.save()},expand(t){this.ref(t)?.expand?.()},expandAll(){for(const t of this.blocks)this.expand(t)},fieldset(t){return this.fieldsets[t.type]??{icon:"box",name:t.type,tabs:{content:{fields:{}}},type:t.type}},find(t){return this.blocks.find(e=>e.id===t)},findIndex(t){return this.blocks.findIndex(e=>e.id===t)},focus(t){const e=this.ref(t);this.selected=[t?.id??this.blocks[0]],e?.focus(),e?.$el.scrollIntoView({block:"nearest"})},focusOrOpen(t){this.fieldsets[t.type].wysiwyg?this.focus(t):this.open(t)},hide(t){s(t,"isHidden",!0),this.save()},isEventTarget(t){return t.target.closest(".k-blocks")===this.$el},isFullyCollapsed(){return this.blocks.every(t=>!1===(t=this.ref(t)).isCollapsible()||!0===t.isCollapsed())},isCollapsible(){return this.blocks.some(t=>this.ref(t).isCollapsible())},isFullyExpanded(){return this.blocks.every(t=>!1===(t=this.ref(t)).isCollapsible()||!1===t.isCollapsed())},isExpandable(){return this.blocks.some(t=>this.ref(t).isExpandable())},isInputEvent(){const t=document.querySelector(":focus");return t?.matches("input, textarea, [contenteditable], .k-writer-input")},isLastSelected(t){const[e]=this.selected.slice(-1);return e&&t.id===e},isOnlyInstance:()=>1===document.querySelectorAll(".k-blocks").length,isSelected(t){return this.selected.includes(t.id)},async merge(){if(this.isMergable){const t=this.selected.map(t=>this.find(t)).sort((t,e)=>this.findIndex(t.id)-this.findIndex(e.id));this.ref(t[0]).$refs.editor.merge(t);for(const e of t.slice(1))this.remove(e);await this.$nextTick(),this.focus(t[0])}},move(t){if(t.from!==t.to){const e=t.draggedData,s=t.toData;if(!1===Object.keys(s.fieldsets).includes(e.type))return!1;if(!0===s.isFull)return!1}return!0},onBlur(t){!t.relatedTarget&&this.selected.length<=1&&(this.isMultiSelectKey=!1)},onClickBlock(t,e){e&&this.isMultiSelectKey&&this.onKey(e),this.isMultiSelectKey&&(e.preventDefault(),e.stopPropagation(),this.isSelected(t)?this.deselect(t):this.select(t))},onClickGlobal(t){if(!0===is(t.target))return;const e=document.querySelector(".k-overlay:last-of-type");!1!==this.$el.contains(t.target)||!1!==e?.contains(t.target)?e&&!1===this.$el.closest(".k-layout-column")?.contains(t.target)&&this.deselectAll():this.deselectAll()},onCopy(t){return!1!==this.$el.contains(t.target)&&!0!==this.isEditing&&!0!==this.$panel.dialog.isOpen&&!0!==this.isInputEvent(t)&&this.copy(t)},onFocus(t){!1===this.isMultiSelectKey&&(this.selected=[t.id])},onFocusGlobal(t){!0!==is(t.target)&&!1===this.$el.contains(t.target)&&this.deselectAll()},async onKey(t){if(this.isMultiSelectKey=t.metaKey||t.ctrlKey||t.altKey,"Escape"===t.code&&this.selected.length>1){const t=this.find(this.selected[0]);await this.$nextTick(),this.focus(t)}},onPaste(t){return!0!==this.isInputEvent(t)&&(!1!==this.isEventTarget(t)&&(!0!==this.isEditing&&!0!==this.$panel.dialog.isOpen&&this.paste(t)))},open(t){this.$refs["block-"+t.id]?.[0].open()},async paste(t,e){const s=this.$helper.clipboard.read(t);let i=await this.$api.post(this.endpoints.field+"/paste",{html:s});if(void 0===e){let t=this.selected[this.selected.length-1];-1===(e=this.findIndex(t))&&(e=this.blocks.length),e++}if(this.max){const t=this.max-this.blocks.length;i=i.slice(0,t)}this.blocks.splice(e,0,...i),this.save(),this.$panel.notification.success({message:this.$t("paste.success",{count:i.length}),icon:"download"})},pasteboard(){this.$panel.dialog.open({component:"k-block-pasteboard",on:{paste:this.paste}})},prevNext(t){if(this.blocks[t])return this.$refs["block-"+this.blocks[t].id]?.[0]},ref(t){return this.$refs["block-"+(t?.id??this.blocks[0]?.id)]?.[0]},remove(t){const e=this.findIndex(t.id);-1!==e&&(this.deselect(t),this.$delete(this.blocks,e),this.save())},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.blocks.delete.confirm.all"),submitButton:this.$t("delete.all")},on:{submit:()=>{this.selected=[],this.blocks=[],this.save(),this.$panel.dialog.close()}}})},removeSelected(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.blocks.delete.confirm.selected")},on:{submit:()=>{for(const t of this.selected){const e=this.findIndex(t);-1!==e&&this.$delete(this.blocks,e)}this.deselectAll(),this.save(),this.$panel.dialog.close()}}})},save(){this.$emit("input",this.blocks)},select(t){!1===this.isSelected(t)&&this.selected.push(t.id)},selectDown(){const t=this.selected[this.selected.length-1],e=this.findIndex(t)+1;e=0&&this.select(this.blocks[e])},selectAll(){this.selected=Object.values(this.blocks).map(t=>t.id)},show(t){s(t,"isHidden",!1),this.save()},async sort(t,e,s){if(s<0)return;let i=this.$helper.object.clone(this.blocks);i.splice(e,1),i.splice(s,0,t),this.blocks=i,this.save(),await this.$nextTick(),this.focus(t)},async split(t,e,s){const i=this.$helper.object.clone(t);i.content={...i.content,...s[0]};const n=await this.$api.get(this.endpoints.field+"/fieldsets/"+t.type);n.content={...n.content,...i.content,...s[1]},this.blocks.splice(e,1,i,n),this.save(),await this.$nextTick(),this.focus(n)},update(t,e){const i=this.findIndex(t.id);if(-1!==i)for(const n in e)s(this.blocks[i].content,n,e[n]);this.save()}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-blocks",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-empty":0===t.blocks.length}},[t.hasFieldsets?[e("k-draggable",t._b({staticClass:"k-blocks-list",attrs:{"data-multi-select-key":t.isMultiSelectKey},on:{sort:t.save}},"k-draggable",t.draggableOptions,!1),t._l(t.blocks,function(s,i){return e("k-block",t._b({key:s.id,ref:"block-"+s.id,refInFor:!0,on:{append:function(e){return t.add(e,i+1)},chooseToAppend:function(e){return t.choose(i+1)},chooseToConvert:function(e){return t.chooseToConvert(s)},chooseToPrepend:function(e){return t.choose(i)},close:function(e){t.isEditing=!1},copy:function(e){return t.copy()},duplicate:function(e){return t.duplicate(s,i)},focus:function(e){return t.onFocus(s)},hide:function(e){return t.hide(s)},merge:function(e){return t.merge()},open:function(e){t.isEditing=!0},paste:function(e){return t.pasteboard()},prepend:function(e){return t.add(e,i)},remove:function(e){return t.remove(s)},removeSelected:t.removeSelected,show:function(e){return t.show(s)},selectDown:t.selectDown,selectUp:t.selectUp,sortDown:function(e){return t.sort(s,i,i+1)},sortUp:function(e){return t.sort(s,i,i-1)},split:function(e){return t.split(s,i,e)},update:function(e){return t.update(s,e)}},nativeOn:{click:function(e){return t.onClickBlock(s,e)}}},"k-block",{...s,disabled:t.disabled,endpoints:t.endpoints,fieldset:t.fieldset(s),isBatched:t.isSelected(s)&&t.selected.length>1,isFull:t.isFull,isHidden:!0===s.isHidden,isLastSelected:t.isLastSelected(s),isMergable:t.isMergable,isSelected:t.isSelected(s),next:t.prevNext(i+1),prev:t.prevNext(i-1)},!1))}),1),e("k-empty",{staticClass:"k-blocks-empty",attrs:{icon:"box"},on:{click:function(e){return t.choose(t.blocks.length)}}},[t._v(" "+t._s(t.empty??t.$t("field.blocks.empty"))+" ")])]:e("k-empty",{attrs:{icon:"box"}},[t._v(" "+t._s(t.$t("field.blocks.fieldsets.empty"))+" ")])],2)},[]).exports;const as=lt({inheritAttrs:!1,emits:["close","paste","submit"],computed:{shortcut(){return this.$helper.keyboard.metaKey()+"+v"}},methods:{paste(t){this.$emit("close"),this.$emit("paste",t)}}},function(){var t=this,e=t._self._c;return e("k-dialog",{ref:"dialog",class:["k-block-importer",t.$attrs.class],style:t.$attrs.style,attrs:{"cancel-button":!1,"submit-button":!1,visible:!0,size:"large"},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit")}}},[e("label",{attrs:{for:"pasteboard"},domProps:{innerHTML:t._s(t.$t("field.blocks.fieldsets.paste",{shortcut:t.shortcut}))}}),e("textarea",{attrs:{id:"pasteboard"},on:{paste:function(e){return e.preventDefault(),t.paste.apply(null,arguments)}}})])},[]).exports;const ls=lt({inheritAttrs:!1,props:{disabledFieldsets:{default:()=>[],type:Array},fieldsets:{type:Object},fieldsetGroups:{type:Object},headline:{type:String},size:{type:String,default:"medium"},value:{default:null,type:String}},emits:["cancel","close","input","paste","submit"],data:()=>({selected:null}),computed:{groups(){const t={};let e=0;const s=this.fieldsetGroups??{blocks:{label:this.$t("field.blocks.fieldsets.label"),sets:Object.keys(this.fieldsets)}};for(const i in s){const n=s[i];n.open=!1!==n.open,n.fieldsets=n.sets.filter(t=>this.fieldsets[t]).map(t=>(e++,{...this.fieldsets[t],index:e})),0!==n.fieldsets.length&&(t[i]=n)}return t},shortcut(){return this.$helper.keyboard.metaKey()+"+v"}},mounted(){this.$events.on("paste",this.paste)},destroyed(){this.$events.off("paste",this.paste)},methods:{paste(t){this.$emit("paste",t),this.$emit("close")}}},function(){var t=this,e=t._self._c;return e("k-dialog",{class:["k-block-selector",t.$attrs.class],style:t.$attrs.style,attrs:{"cancel-button":!1,size:t.size,"submit-button":!1,visible:!0},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",t.value)}}},[t.headline?e("k-headline",[t._v(" "+t._s(t.headline)+" ")]):t._e(),t._l(t.groups,function(s,i){return e("details",{key:i,attrs:{open:s.open}},[e("summary",[t._v(t._s(s.label))]),e("k-navigate",{staticClass:"k-block-types"},t._l(s.fieldsets,function(s){return e("k-button",{key:s.name,attrs:{disabled:t.disabledFieldsets.includes(s.type),icon:s.icon??"box",text:s.name,size:"lg"},on:{click:function(e){return t.$emit("submit",s.type)}},nativeOn:{focus:function(e){return t.$emit("input",s.type)}}})}),1)],1)}),e("p",{staticClass:"k-clipboard-hint",domProps:{innerHTML:t._s(t.$t("field.blocks.fieldsets.paste",{shortcut:t.shortcut}))}})],2)},[]).exports;const cs=lt({props:{value:String},computed:{valueAdapted(){return"transparent"===this.value?"var(--block-color-back)":this.value}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-block-background-dropdown"},[e("k-button",{attrs:{dropdown:!0,size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.dropdown.toggle()}}},[e("k-color-frame",{attrs:{color:t.valueAdapted,ratio:"1/1"}})],1),e("k-dropdown-content",{ref:"dropdown",attrs:{"align-x":"end",options:[{text:t.$t("field.blocks.figure.back.plain"),click:"var(--block-color-back)"},{text:t.$t("field.blocks.figure.back.pattern.light"),click:"var(--pattern-light)"},{text:t.$t("field.blocks.figure.back.pattern.dark"),click:"var(--pattern)"}]},on:{action:function(e){return t.$emit("input",e)}}})],1)},[]).exports;const us=lt({inheritAttrs:!1,props:{back:String,caption:String,captionMarks:{default:!0,type:[Boolean,Array]},disabled:Boolean,isEmpty:Boolean,emptyIcon:String,emptyText:String},emits:["open","update"]},function(){var t=this,e=t._self._c;return e("figure",{class:["k-block-figure",t.$attrs.class],style:{"--block-figure-back":t.back,...t.$attrs.style},attrs:{"data-empty":t.isEmpty}},[t.isEmpty?e("k-button",{staticClass:"k-block-figure-empty",attrs:{disabled:t.disabled,icon:t.emptyIcon,text:t.emptyText},on:{click:function(e){return t.$emit("open")}}}):e("span",{staticClass:"k-block-figure-container",attrs:{"data-disabled":t.disabled},on:{dblclick:function(e){return t.$emit("open")}}},[t._t("default")],2),t.caption?e("k-block-figure-caption",{attrs:{disabled:t.disabled,marks:t.captionMarks,value:t.caption},on:{input:function(e){return t.$emit("update",{caption:e})}}}):t._e()],1)},[]).exports;const ps=lt({props:{disabled:Boolean,marks:[Array,Boolean],value:String}},function(){var t=this,e=t._self._c;return e("figcaption",{staticClass:"k-block-figure-caption"},[e("k-writer-input",{attrs:{disabled:t.disabled,inline:!0,marks:t.marks,spellcheck:!1,value:t.value},on:{input:function(e){return t.$emit("input",e)}}})],1)},[]).exports;const ds=lt({extends:Ze,computed:{placeholder(){return this.field("code",{}).placeholder},languages(){return this.field("language",{options:[]}).options}},methods:{focus(){this.$refs.code.focus()}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-block-type-code-editor"},[e("k-input",{ref:"code",attrs:{buttons:!1,disabled:t.disabled,placeholder:t.placeholder,spellcheck:!1,value:t.content.code,font:"monospace",type:"textarea"},on:{input:function(e){return t.update({code:e})}}}),t.languages.length?e("div",{staticClass:"k-block-type-code-editor-language"},[e("k-input",{ref:"language",attrs:{disabled:t.disabled,empty:!1,options:t.languages,value:t.content.language,icon:"code",type:"select"},on:{input:function(e){return t.update({language:e})}}})],1):t._e()],1)},[]).exports;const hs=lt({extends:Ze,props:{tabs:Object},data(){return{collapsed:this.state(),tab:Object.keys(this.tabs)[0]}},computed:{fields(){return this.tabs[this.tab]?.fields},values(){return Object.assign({},this.content)}},methods:{open(){this.$emit("open",this.tab)},state(t){const e=`kirby.fieldsBlock.${this.endpoints.field}.${this.id}`;if(void 0===t)return JSON.parse(sessionStorage.getItem(e));sessionStorage.setItem(e,t)},toggle(){this.state(this.collapsed=!this.collapsed)},collapse(){this.state(this.collapsed=!0)},expand(){this.state(this.collapsed=!1)}}},function(){var t=this,e=t._self._c;return e("div",{attrs:{"data-collapsed":t.collapsed},on:{dblclick:function(e){!t.fieldset.wysiwyg&&t.$emit("open")}}},[e("header",{staticClass:"k-block-type-fields-header"},[e("k-block-title",{attrs:{content:t.values,fieldset:t.fieldset},nativeOn:{click:function(e){return t.toggle.apply(null,arguments)}}}),t.collapsed?t._e():e("k-drawer-tabs",{attrs:{tab:t.tab,tabs:t.fieldset.tabs},on:{open:function(e){t.tab=e}}})],1),t.collapsed?t._e():e("k-form",{ref:"form",staticClass:"k-block-type-fields-form",attrs:{autofocus:!0,disabled:t.disabled||!t.fieldset.wysiwyg,fields:t.fields,value:t.values},on:{input:function(e){return t.$emit("update",e)}}})],1)},[]).exports;const ms=lt({extends:Ze,data(){return{back:this.onBack()??"var(--block-color-back)"}},computed:{captionMarks(){return this.field("caption",{marks:!0}).marks},crop(){return this.content.crop},isEmpty(){return!this.content.images?.length},ratio(){return this.content.ratio}},methods:{onBack(t){const e=`kirby.galleryBlock.${this.endpoints.field}.${this.id}`;if(void 0===t)return sessionStorage.getItem(e);this.back=t,sessionStorage.setItem(e,t)}}},function(){var t=this,e=t._self._c;return e("figure",{staticClass:"k-block-type-gallery-figure",style:{"--block-back":t.back},attrs:{"data-empty":t.isEmpty}},[e("ul",{on:{dblclick:t.open}},[t.isEmpty?t._l(3,function(s){return e("li",{key:s,staticClass:"k-block-type-gallery-placeholder"},[e("k-image-frame",{staticClass:"k-block-type-gallery-frame",attrs:{ratio:t.ratio}})],1)}):[t._l(t.content.images,function(s){return e("li",{key:s.id},[e("k-image-frame",{staticClass:"k-block-type-gallery-frame",attrs:{ratio:t.ratio,cover:t.crop,src:s.url,srcset:s.image.srcset,alt:s.alt}})],1)}),e("k-block-background-dropdown",{attrs:{value:t.back},on:{input:t.onBack}})]],2),t.content.caption?e("k-block-figure-caption",{attrs:{disabled:t.disabled,marks:t.captionMarks,value:t.content.caption},on:{input:function(e){return t.$emit("update",{caption:e})}}}):t._e()],1)},[]).exports;const fs=lt({extends:Ze,inheritAttrs:!1,emits:["append","open","split","update"],computed:{isSplitable(){return this.content.text.length>0&&!1===this.$refs.input.isCursorAtStart&&!1===this.$refs.input.isCursorAtEnd},keys(){return{Enter:()=>!0===this.$refs.input.isCursorAtEnd?this.$emit("append","text"):this.split(),"Mod-Enter":this.split}},levels(){return this.field("level",{options:[]}).options},textField(){return this.field("text",{marks:!0})}},methods:{focus(){this.$refs.input.focus()},merge(t){this.update({text:t.map(t=>t.content.text).join(" ")})},split(){const t=this.$refs.input.getSplitContent?.();t&&this.$emit("split",[{text:t[0]},{level:"h"+Math.min(parseInt(this.content.level.slice(1))+1,6),text:t[1]}])}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-block-type-heading-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-level":t.content.level}},[e("k-writer-input",t._b({ref:"input",attrs:{disabled:t.disabled,inline:!0,keys:t.keys,value:t.content.text},on:{input:function(e){return t.update({text:e})}}},"k-writer-input",t.textField,!1)),t.levels.length>1?e("k-input",{ref:"level",staticClass:"k-block-type-heading-level",attrs:{disabled:t.disabled,empty:!1,options:t.levels,value:t.content.level,type:"select"},on:{input:function(e){return t.update({level:e})}}}):t._e()],1)},[]).exports;const gs=lt({extends:Ze,data(){return{back:this.onBack()??"transparent"}},computed:{captionMarks(){return this.field("caption",{marks:!0}).marks},crop(){return this.content.crop??!1},src(){return"web"===this.content.location?this.content.src:!!this.content.image?.[0]?.url&&this.content.image[0].url},ratio(){return this.content.ratio??!1}},methods:{onBack(t){const e=`kirby.imageBlock.${this.endpoints.field}.${this.id}`;if(void 0===t)return sessionStorage.getItem(e);this.back=t,sessionStorage.setItem(e,t)}}},function(){var t=this,e=t._self._c;return e("k-block-figure",{attrs:{back:t.back,caption:t.content.caption,"caption-marks":t.captionMarks,"empty-text":t.$t("field.blocks.image.placeholder")+" …",disabled:t.disabled,"is-empty":!t.src,"empty-icon":"image"},on:{open:t.open,update:t.update}},[t.src?[t.ratio?e("k-image-frame",{attrs:{ratio:t.ratio,cover:t.crop,alt:t.content.alt,src:t.src}}):e("img",{staticClass:"k-block-type-image-auto",attrs:{alt:t.content.alt,src:t.src}}),e("k-block-background-dropdown",{attrs:{value:t.back},on:{input:t.onBack}})]:t._e()],2)},[]).exports;const ks=lt({},function(){return this._self._c,this._m(0)},[function(){var t=this._self._c;return t("div",[t("hr")])}]).exports;const bs=lt({extends:Ze,emits:["open","split","update"],computed:{isSplitable(){return this.content.text.length>0&&!1===this.input().isCursorAtStart&&!1===this.input().isCursorAtEnd},keys(){return{"Mod-Enter":this.split}},marks(){return this.field("text",{}).marks}},methods:{focus(){this.$refs.input.focus()},input(){return this.$refs.input.$refs.input.$refs.input},merge(t){this.update({text:t.map(t=>t.content.text).join("").replaceAll("

      ","")})},split(){const t=this.input().getSplitContent?.();t&&this.$emit("split",[{text:t[0].replace(/(
    • <\/p><\/li><\/ul>)$/,"

    ")},{text:t[1].replace(/^(
    • <\/p><\/li>)/,"

        ")}])}}},function(){var t=this;return(0,t._self._c)("k-input",{ref:"input",staticClass:"k-block-type-list-input",attrs:{disabled:t.disabled,keys:t.keys,marks:t.marks,value:t.content.text,type:"list"},on:{input:function(e){return t.update({text:e})}}})},[]).exports;const ys=lt({extends:Ze,computed:{placeholder(){return this.field("text",{}).placeholder}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this;return(0,t._self._c)("k-input",{ref:"input",staticClass:"k-block-type-markdown-input",attrs:{buttons:!1,disabled:t.disabled,placeholder:t.placeholder,spellcheck:!1,value:t.content.text,font:"monospace",type:"textarea"},on:{input:function(e){return t.update({text:e})}}})},[]).exports;const vs=lt({extends:Ze,computed:{citationField(){return this.field("citation",{})},textField(){return this.field("text",{})}},methods:{focus(){this.$refs.text.focus()}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-block-type-quote-editor"},[e("k-writer-input",{ref:"text",staticClass:"k-block-type-quote-text",attrs:{disabled:t.disabled,inline:t.textField.inline??!1,marks:t.textField.marks,placeholder:t.textField.placeholder,value:t.content.text},on:{input:function(e){return t.update({text:e})}}}),e("k-writer-input",{ref:"citation",staticClass:"k-block-type-quote-citation",attrs:{disabled:t.disabled,inline:t.citationField.inline??!0,marks:t.citationField.marks,placeholder:t.citationField.placeholder,value:t.content.citation},on:{input:function(e){return t.update({citation:e})}}})],1)},[]).exports;const $s=lt({extends:Ze,inheritAttrs:!1,computed:{columns(){return this.table.columns??this.fields},fields(){return this.table.fields??{}},rows(){return this.content.rows??[]},table(){let t=null;for(const e of Object.values(this.fieldset.tabs??{}))e.fields.rows&&(t=e.fields.rows);return t??{}}}},function(){var t=this;return(0,t._self._c)("k-table",{class:["k-block-type-table-preview",t.$attrs.class],style:t.$attrs.style,attrs:{columns:t.columns,empty:t.$t("field.structure.empty"),rows:t.rows},nativeOn:{dblclick:function(e){return t.open.apply(null,arguments)}}})},[]).exports;const xs=lt({extends:Ze,emits:["open","split","update"],computed:{component(){const t="k-"+this.textField.type+"-input";return this.$helper.isComponent(t)?t:"k-writer-input"},isSplitable(){return this.content.text.length>0&&!1===this.$refs.input.isCursorAtStart&&!1===this.$refs.input.isCursorAtEnd},keys(){const t={"Mod-Enter":this.split};return!0===this.textField.inline&&(t.Enter=this.split),t},textField(){return this.field("text",{})}},methods:{focus(){this.$refs.input.focus()},merge(t){this.update({text:t.map(t=>t.content.text).join(this.textField.inline?" ":"")})},split(){const t=this.$refs.input.getSplitContent?.();t&&("writer"===this.textField.type&&(t[0]=t[0].replace(/(

        <\/p>)$/,""),t[1]=t[1].replace(/^(

        <\/p>)/,"")),this.$emit("split",t.map(t=>({text:t}))))}}},function(){var t=this;return(0,t._self._c)(t.component,t._b({ref:"input",tag:"component",staticClass:"k-block-type-text-input",attrs:{disabled:t.disabled,keys:t.keys,value:t.content.text},on:{input:function(e){return t.update({text:e})}}},"component",t.textField,!1))},[]).exports;const ws=lt({extends:Ze,computed:{captionMarks(){return this.field("caption",{marks:!0}).marks},location(){return this.content.location},poster(){return this.content.poster?.[0]?.url},video(){return"kirby"===this.content.location?this.content.video?.[0]?.url:this.$helper.embed.video(this.content.url??"",!0)}}},function(){var t=this,e=t._self._c;return e("k-block-figure",{staticClass:"k-block-type-video-figure",attrs:{caption:t.content.caption,"caption-marks":t.captionMarks,disabled:t.disabled,"empty-text":t.$t("field.blocks.video.placeholder")+" …","is-empty":!t.video,"empty-icon":"video"},on:{open:t.open,update:t.update}},[e("k-frame",{attrs:{ratio:"16/9"}},[t.video?["kirby"==t.location?e("video",{attrs:{src:t.video,poster:t.poster,controls:""}}):e("iframe",{attrs:{src:t.video,referrerpolicy:"strict-origin-when-cross-origin"}})]:t._e()],2)],1)},[]).exports,_s={install(t){t.component("k-block",es),t.component("k-blocks",rs),t.component("k-block-options",ts),t.component("k-block-pasteboard",as),t.component("k-block-selector",ls),t.component("k-block-background-dropdown",cs),t.component("k-block-figure",us),t.component("k-block-figure-caption",ps),t.component("k-block-title",Ge),t.component("k-block-type-code",ds),t.component("k-block-type-default",Ze),t.component("k-block-type-fields",hs),t.component("k-block-type-gallery",ms),t.component("k-block-type-heading",fs),t.component("k-block-type-image",gs),t.component("k-block-type-line",ks),t.component("k-block-type-list",bs),t.component("k-block-type-markdown",ys),t.component("k-block-type-quote",vs),t.component("k-block-type-table",$s),t.component("k-block-type-text",xs),t.component("k-block-type-video",ws)}};const Ss=lt({mixins:[ze,os],inheritAttrs:!1,data:()=>({opened:[]}),computed:{hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0},isEmpty(){return 0===this.value.length},isFull(){return this.max&&this.value.length>=this.max}},methods:{focus(){this.$refs.blocks.focus()},options(t){const e=[{click:()=>this.$refs.blocks.copyAll(),disabled:this.isEmpty,icon:"template",text:this.$t("copy.all")},{click:()=>this.$refs.blocks.pasteboard(),disabled:this.isFull,icon:"download",text:this.$t("paste")}];return!0!==this.$refs.blocks.isCollapsible()&&!0!==this.$refs.blocks.isExpandable()||e.push("-"),!0===this.$refs.blocks.isCollapsible()&&e.push({click:()=>this.$refs.blocks.collapseAll(),disabled:this.isEmpty||this.$refs.blocks.isFullyCollapsed(),icon:"collapse",text:this.$t("collapse.all")}),!0===this.$refs.blocks.isExpandable()&&e.push({click:()=>this.$refs.blocks.expandAll(),disabled:this.isEmpty||this.$refs.blocks.isFullyExpanded(),icon:"expand",text:this.$t("expand.all")}),e.push("-"),e.push({click:()=>this.$refs.blocks.removeAll(),disabled:this.isEmpty,icon:"trash",text:this.$t("delete.all")}),t(e)}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-blocks-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},scopedSlots:t._u([!t.disabled&&t.hasFieldsets?{key:"options",fn:function(){return[e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{staticClass:"input-focus",attrs:{autofocus:t.autofocus,disabled:t.isFull,responsive:!0,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.blocks.choose(t.value.length)}}}),e("k-button",{attrs:{icon:"dots",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}})],1)]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[e("k-blocks",t._b({ref:"blocks",on:{close:function(e){t.opened=e},open:function(e){t.opened=e},input:function(e){return t.$emit("input",e)}}},"k-blocks",t.$props,!1))],1),t.disabled||t.isEmpty||t.isFull||!t.hasFieldsets?t._e():e("footer",[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.blocks.choose(t.value.length)}}})],1)],1)},[]).exports,Cs={mixins:[Ie,it],props:{columns:{default:1,type:Number},max:Number,min:Number,theme:String,value:{type:Array,default:()=>[]}}};const Os=lt({mixins:[Le,Cs],data:()=>({selected:[]}),computed:{choices(){const t=this.options.some(t=>t.icon);return this.options.map((e,s)=>{const i=this.selected.includes(e.value);return{autofocus:this.autofocus&&0===s,checked:i,disabled:this.disabled||e.disabled||!i&&this.isFull,id:`${this.id}-${s}`,icon:e.icon??(t?"blank":null),info:e.info,label:e.text,name:this.name??this.id,type:"checkbox",value:e.value}})},isFull(){return this.max&&this.selected.length>=this.max}},watch:{value:{handler(t){this.selected=Array.isArray(t)?t:[]},immediate:!0}},methods:{deselectAll(){this.selected=[],this.$emit("input",this.selected)},focus(){this.$el.querySelector("input")?.focus()},input(t,e){if(!0===e)this.selected.push(t);else{const e=this.selected.indexOf(t);-1!==e&&this.selected.splice(e,1)}this.$emit("input",this.selected)},select(){this.focus()},selectAll(){this.selected=this.choices.map(t=>t.value),this.$emit("input",this.selected)}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-checkboxes-input",t.$attrs.class],style:t.$attrs.style,attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.selected)}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("ul",{staticClass:"k-grid",style:{"--columns":t.columns},attrs:{"data-variant":"choices"}},t._l(t.choices,function(s,i){return e("li",{key:i},[e("k-choice-input",t._b({on:{input:function(e){return t.input(s.value,e)}}},"k-choice-input",s,!1))],1)}),0)])],1)},[]).exports,As={props:{counter:{type:Boolean,default:!0}},computed:{counterOptions(){const t=this.counterValue??this.value;return!(!1===this.counter||this.disabled||!t)&&{count:Array.isArray(t)?t.length:String(t).length,min:this.$props.min??this.$props.minlength,max:this.$props.max??this.$props.maxlength}},counterValue:()=>null}};const Ms=lt({mixins:[ze,Ke,Cs,As],inheritAttrs:!1,props:{batch:Boolean},methods:{deselectAll(){this.$refs.input.deselectAll()},selectAll(){this.$refs.input.selectAll()},focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-checkboxes-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id+"-0"},scopedSlots:t._u([{key:"counter",fn:function(){return[t.counterOptions?e("k-counter",t._b({staticClass:"k-field-counter",attrs:{required:t.required}},"k-counter",t.counterOptions,!1)):t._e(),t.batch?e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{attrs:{disabled:0===t.value.length,responsive:!0,icon:"deselect-all",size:"xs",variant:"filled"},on:{click:t.deselectAll}},[t._v(" "+t._s(t.$t("deselect.all"))+" ")]),e("k-button",{attrs:{disabled:t.value.length>=t.options.length,responsive:!0,icon:"select-all",size:"xs",variant:"filled"},on:{click:t.selectAll}},[t._v(" "+t._s(t.$t("select.all"))+" ")])],1):t._e()]},proxy:!0}])},"k-field",t.$props,!1),[t.options?.length?e("k-checkboxes-input",t._b({ref:"input",on:{input:function(e){return t.$emit("input",e)}}},"k-checkboxes-input",t.$props,!1)):e("k-empty",{attrs:{text:t.$t("options.none"),icon:"checklist"}})],1)},[]).exports,Ds={mixins:[Ie,U,V,J,tt,et,nt,ot,at],props:{ariaLabel:String,preselect:Boolean,type:{default:"text",type:String},value:{type:String}}};const Es=lt({mixins:[Le,Ds],mounted(){this.$props.autofocus&&this.focus(),this.$props.preselect&&this.select()},methods:{select(){this.$el.select()}}},function(){var t=this;return(0,t._self._c)("input",t._b({directives:[{name:"direction",rawName:"v-direction"}],class:["k-string-input",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-label":t.ariaLabel,"data-font":t.font},on:{input:function(e){return t.$emit("input",e.target.value)}}},"input",{autocomplete:t.autocomplete,autofocus:t.autofocus,disabled:t.disabled,id:t.id,maxlength:t.maxlength,minlength:t.minlength,name:t.name,pattern:t.pattern,placeholder:t.placeholder,required:t.required,spellcheck:t.spellcheck,type:t.type,value:t.value},!1))},[]).exports,js={mixins:[Ds],props:{autocomplete:null,font:null,maxlength:null,minlength:null,pattern:null,spellcheck:null,alpha:{type:Boolean,default:!0},format:{type:String,default:"hex",validator:t=>["hex","rgb","hsl"].includes(t)}}};const Is=lt({mixins:[Es,js],watch:{value(){this.validate()}},mounted(){this.validate()},methods:{convert(t){if(!t)return t;try{return this.$library.colors.toString(t,this.format,this.alpha)}catch{const e=document.createElement("div");return e.style.color=t,document.body.append(e),t=window.getComputedStyle(e).color,e.remove(),this.$library.colors.toString(t,this.format,this.alpha)}},convertAndEmit(t){this.emit(this.convert(t))},emit(t){this.$emit("input",t)},onBlur(){this.convertAndEmit(this.value)},onPaste(t){t instanceof ClipboardEvent&&(t=this.$helper.clipboard.read(t,!0)),this.convertAndEmit(t)},async onSave(){this.convertAndEmit(this.value),await this.$nextTick(),this.$el.form?.requestSubmit()},validate(){let t="";null===this.$library.colors.parse(this.value)&&(t=this.$t("error.validation.color",{format:this.format})),this.$el.setCustomValidity(t)}}},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-colorname-input",attrs:{spellcheck:!1,autocomplete:"off",type:"text"},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{blur:function(e){return t.onBlur.apply(null,arguments)},paste:function(e){return t.onPaste.apply(null,arguments)},keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"s",void 0,e.key,void 0)?null:e.metaKey?(e.stopPropagation(),e.preventDefault(),t.onSave.apply(null,arguments)):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.onSave.apply(null,arguments)}]}},"k-string-input",t.$props,!1))},[]).exports;const Ls=lt({mixins:[ze,Ke,js],inheritAttrs:!1,props:{icon:{type:String,default:"pipette"},mode:{type:String,default:"picker",validator:t=>["picker","input","options"].includes(t)},options:{type:Array,default:()=>[]}},computed:{convertedOptions(){return this.options.map(t=>({...t,value:this.convert(t.value)}))},currentOption(){return this.convertedOptions.find(t=>t.value===this.value)}},methods:{convert(t){return this.$library.colors.toString(t,this.format,this.alpha)}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-color-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),["options"===t.mode?e("k-coloroptions-input",t._b({staticClass:"k-color-field-options",attrs:{options:t.convertedOptions},on:{input:function(e){return t.$emit("input",e)}}},"k-coloroptions-input",t.$props,!1)):e("k-input",t._b({attrs:{type:"color"},scopedSlots:t._u([{key:"before",fn:function(){return["picker"===t.mode?[e("button",{staticClass:"k-color-field-picker-toggle",attrs:{disabled:t.disabled,type:"button"},on:{click:function(e){return t.$refs.picker.toggle()}}},[e("k-color-frame",{attrs:{color:t.value}})],1),e("k-dropdown-content",{ref:"picker",staticClass:"k-color-field-picker"},[e("k-colorpicker-input",t._b({ref:"color",attrs:{options:t.convertedOptions},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{click:function(t){t.stopPropagation()}}},"k-colorpicker-input",t.$props,!1))],1)]:e("k-color-frame",{attrs:{color:t.value}})]},proxy:!0},{key:"default",fn:function(){return[e("k-colorname-input",t._b({on:{input:function(e){return t.$emit("input",e)}}},"k-colorname-input",t.$props,!1))]},proxy:!0},t.currentOption?.text?{key:"after",fn:function(){return[e("span",{domProps:{innerHTML:t._s(t.currentOption.text)}})]},proxy:!0}:null,"picker"===t.mode?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{icon:t.icon},on:{click:function(e){return e.stopPropagation(),t.$refs.picker.toggle()}}})]},proxy:!0}:null],null,!0)},"k-input",t.$props,!1))],1)},[]).exports,Bs={props:{max:String,min:String,value:String}},Ts={mixins:[Ie,Bs],props:{display:{type:String,default:"DD.MM.YYYY"},step:{type:Object,default:()=>({size:1,unit:"day"})},type:{type:String,default:"date"}}};const Ps=lt({mixins:[Le,Ts],emits:["input","focus","submit"],data:()=>({dt:null,formatted:null}),computed:{inputType:()=>"date",pattern(){return this.$library.dayjs.pattern(this.display)},rounding(){return{...this.$options.props.step.default(),...this.step}}},watch:{value:{handler(t,e){if(t!==e){const e=this.toDatetime(t);this.commit(e)}},immediate:!0}},methods:{async alter(t){let e=this.parse()??this.round(this.$library.dayjs()),s=this.rounding.unit,i=this.rounding.size;const n=this.selection();null!==n&&("meridiem"===n.unit?(t="pm"===e.format("a")?"subtract":"add",s="hour",i=12):(s=n.unit,s!==this.rounding.unit&&(i=1))),e=e[t](i,s).round(this.rounding.unit,this.rounding.size),this.commit(e),this.emit(e),await this.$nextTick(),this.select(n)},commit(t){this.dt=t,this.formatted=this.pattern.format(t),this.validate()},emit(t){this.$emit("input",this.toISO(t))},onArrowDown(){this.alter("subtract")},onArrowUp(){this.alter("add")},onBlur(){const t=this.parse();this.commit(t),this.emit(t)},async onEnter(){this.onBlur(),await this.$nextTick(),this.$emit("submit")},onInput(t){const e=this.parse(),s=this.pattern.format(e);if(!t||s==t)return this.commit(e),this.emit(e)},async onTab(t){if(""==this.$el.value)return;this.onBlur(),await this.$nextTick();const e=this.selection();if(this.$el&&e.start===this.$el.selectionStart&&e.end===this.$el.selectionEnd-1)if(t.shiftKey){if(0===e.index)return;this.selectPrev(e.index)}else{if(e.index===this.pattern.parts.length-1)return;this.selectNext(e.index)}else{if(this.$el&&this.$el.selectionStart==e.end+1&&e.index==this.pattern.parts.length-1)return;if(this.$el&&this.$el.selectionEnd-1>e.end){const t=this.pattern.at(this.$el.selectionEnd,this.$el.selectionEnd);this.select(this.pattern.parts[t.index])}else this.select(this.pattern.parts[e.index])}t.preventDefault()},parse(){const t=this.$library.dayjs.interpret(this.$el.value,this.inputType);return this.round(t)},round(t){return t?.round(this.rounding.unit,this.rounding.size)},select(t){t??=this.selection(),this.$el?.setSelectionRange(t.start,t.end+1)},selectFirst(){this.select(this.pattern.parts[0])},selectLast(){this.select(this.pattern.parts[this.pattern.parts.length-1])},selectNext(t){this.select(this.pattern.parts[t+1])},selectPrev(t){this.select(this.pattern.parts[t-1])},selection(){return this.pattern.at(this.$el.selectionStart,this.$el.selectionEnd)},toDatetime(t){return this.round(this.$library.dayjs.iso(t,this.inputType))},toISO(t){return t?.toISO(this.inputType)},validate(){const t=[];this.required&&!this.dt&&t.push(this.$t("error.validation.required")),this.min&&!1===this.dt?.validate(this.min,"min",this.rounding.unit)&&t.push(this.$t("error.validation.date.after",{date:this.min})),this.max&&!1===this.dt?.validate(this.max,"max",this.rounding.unit)&&t.push(this.$t("error.validation.date.before",{date:this.max})),this.$el?.setCustomValidity(t.join(", "))}}},function(){var t=this;return(0,t._self._c)("input",{directives:[{name:"direction",rawName:"v-direction"}],class:["k-string-input",`k-${t.type}-input`,t.$attrs.class],style:t.$attrs.style,attrs:{id:t.id,autofocus:t.autofocus,disabled:t.disabled,placeholder:t.display,required:t.required,autocomplete:"off",spellcheck:"false",type:"text"},domProps:{value:t.formatted},on:{blur:t.onBlur,focus:function(e){return t.$emit("focus")},input:function(e){return t.onInput(e.target.value)},keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:(e.stopPropagation(),e.preventDefault(),t.onArrowDown.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:(e.stopPropagation(),e.preventDefault(),t.onArrowUp.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.stopPropagation(),e.preventDefault(),t.onEnter.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"s",void 0,e.key,void 0)?null:e.metaKey?(e.stopPropagation(),e.preventDefault(),t.onEnter.apply(null,arguments)):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"s",void 0,e.key,void 0)?null:e.ctrlKey?(e.stopPropagation(),e.preventDefault(),t.onEnter.apply(null,arguments)):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"tab",9,e.key,"Tab")?null:t.onTab.apply(null,arguments)}]}})},[]).exports;const qs=lt({mixins:[ze,Ke,Ts],inheritAttrs:!1,props:{calendar:{type:Boolean,default:!0},icon:{type:String,default:"calendar"},time:{type:[Boolean,Object],default:()=>({})},times:{type:Boolean,default:!0}},emits:["input","submit"],data(){return{iso:this.toIso(this.value)}},computed:{isEmpty(){return this.time?!this.iso.date||!this.iso.time:!this.iso.date}},watch:{value(t,e){t!==e&&(this.iso=this.toIso(t))}},methods:{focus(){this.$refs.dateInput.focus()},now(){const t=this.$library.dayjs();return{date:t.toISO("date"),time:this.time?t.toISO("time"):"00:00:00"}},onInput(){if(this.isEmpty)return this.$emit("input","");const t=this.$library.dayjs.iso(this.iso.date+" "+this.iso.time);(t||null!==this.iso.date&&null!==this.iso.time)&&this.$emit("input",t?.toISO()??"")},onDateInput(t){t&&!this.iso.time&&(this.iso.time=this.now().time),this.iso.date=t,this.onInput()},onTimeInput(t){t&&!this.iso.date&&(this.iso.date=this.now().date),this.iso.time=t,this.onInput()},onTimesInput(t){this.$refs.times?.close(),this.onTimeInput(t+":00")},toIso(t){const e=this.$library.dayjs.iso(t);return{date:e?.toISO("date")??null,time:e?.toISO("time")??null}}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-date-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("div",{ref:"body",staticClass:"k-date-field-body",attrs:{"data-has-time":Boolean(t.time)}},[e("k-input",t._b({ref:"dateInput",attrs:{type:"date"},on:{input:t.onDateInput,submit:function(e){return t.$emit("submit")}},scopedSlots:t._u([t.calendar?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{disabled:t.disabled,icon:t.icon,title:t.$t("date.select")},on:{click:function(e){return t.$refs.calendar.toggle()}}}),e("k-dropdown-content",{ref:"calendar",attrs:{"align-x":"end"}},[e("k-calendar",{attrs:{value:t.iso.date,min:t.min,max:t.max},on:{input:t.onDateInput}})],1)]},proxy:!0}:null],null,!0)},"k-input",t.$props,!1)),t.time?e("k-input",{ref:"timeInput",attrs:{disabled:t.disabled,display:t.time.display,required:t.required,step:t.time.step,value:t.iso.time,icon:t.time.icon,type:"time"},on:{input:t.onTimeInput,submit:function(e){return t.$emit("submit")}},scopedSlots:t._u([t.times?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{disabled:t.disabled,icon:t.time.icon??"clock",title:t.$t("time.select")},on:{click:function(e){return t.$refs.times.toggle()}}}),e("k-dropdown-content",{ref:"times",attrs:{"align-x":"end"}},[e("k-timeoptions-input",{attrs:{display:t.time.display,value:t.value},on:{input:t.onTimesInput}})],1)]},proxy:!0}:null],null,!0)}):t._e()],1)])},[]).exports,Ns={mixins:[Ds],props:{autocomplete:{type:String,default:"email"},placeholder:{type:String,default:()=>window.panel.t("email.placeholder")}}};const Fs=lt({mixins:[Es,Ns]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-email-input",attrs:{type:"email"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const zs=lt({mixins:[ze,Ke,Ns],inheritAttrs:!1,props:{link:{type:Boolean,default:!0},icon:{type:String,default:"email"}},computed:{mailto(){return this.value?.length>0?"mailto:"+this.value:null}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-email-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"email"},on:{input:function(e){return t.$emit("input",e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.link?e("k-button",{staticClass:"k-input-icon-button",attrs:{icon:t.icon,link:t.mailto,title:t.$t("open"),tabindex:"-1",target:"_blank"}}):t._e()]},proxy:!0}])},"k-input",t.$props,!1))],1)},[]).exports;const Ys=lt({mixins:[ze,Ke],inheritAttrs:!1,props:{empty:String,field:{type:Object,default:()=>({})},max:Number,min:Number,sortable:{type:Boolean,default:!0},value:{type:Array,default:()=>[]}},emits:["input","sort"],data:()=>({entries:[]}),computed:{dragOptions(){return{disabled:!1===this.isSortable,handle:!0,list:this.entries,sort:this.isSortable}},isSortable(){return!0!==this.disabled&&(!(this.entries.length<=1)&&!1!==this.sortable)},more(){return!0!==this.disabled&&!(this.max&&this.entries.length>=this.max)},options(){return[{disabled:0===this.entries.length||this.disabled,icon:"template",text:this.$t("copy.all"),click:this.copyAll},"-",{disabled:0===this.entries.length||this.disabled,icon:"trash",text:this.$t("delete.all"),click:this.removeAll}]},values(){return this.entries.map(t=>t.value)}},watch:{value:{handler(t){t??=[],t!==this.values&&(this.entries=t.map(t=>({id:this.$helper.uuid(),value:t})))},immediate:!0}},methods:{async add(t=null,e=null){if(!1===this.more||!0===this.disabled)return;e??=this.$helper.field.form({field:this.field})?.field;const s={id:this.$helper.uuid(),value:e??""};t??=this.entries.length,this.entries.splice(t,0,s),this.save(),await this.$nextTick(),this.focus(t)},copyAll(){const t=this.values.map(t=>"- "+t).join("\n");this.$helper.clipboard.write(t),this.$panel.notification.success(this.$t("copy.success"))},async duplicate(t){if(!1===this.more||!0===this.disabled||void 0===this.entries[t])return;const e={...this.entries[t],id:this.$helper.uuid()};this.entries.splice(t+1,0,e),this.save(),await this.$nextTick(),this.focus(t+1)},focus(t,e="input"){this.$refs["entry-"+t+"-"+e]?.[0]?.focus?.()},onInput(t,e){this.entries[t].value=e,this.save()},remove(t){!0!==this.disabled&&(this.entries.splice(t,1),this.save(),this.focus(t-1))},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.entries.delete.confirm.all")},on:{submit:()=>{this.entries=[],this.save(),this.$panel.dialog.close()}}})},save(){this.$emit("input",this.values)},async sort(t,e){if(!1===this.isSortable)return;const s=this.entries[t];this.entries.splice(t,1),this.entries.splice(t+e,0,s),this.save(),await this.$nextTick(),this.focus(t+e,"sort-handle")},sortDown(t){t>=this.entries.length-1||this.sort(t,1)},sortUp(t){t<=0||this.sort(t,-1)}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-entries-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},nativeOn:{click:function(t){t.stopPropagation()}},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function(){return[e("k-button-group",{attrs:{layout:"collapsed"}},[t.more?e("k-button",{staticClass:"input-focus",attrs:{autofocus:t.autofocus,responsive:!0,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.add()}}}):t._e(),e("k-button",{attrs:{icon:"dots",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}})],1)]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.entries)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[0===t.entries.length?e("k-empty",{attrs:{icon:"list-bullet"},on:{click:function(e){return t.add()}}},[t._v(" "+t._s(t.empty??t.$t("field.entries.empty"))+" ")]):e("k-draggable",t._b({staticClass:"k-entries-field-items",on:{sort:t.save}},"k-draggable",t.dragOptions,!1),t._l(t.entries,function(s,i){return e("div",{key:s.id,staticClass:"k-entries-field-item"},[t.isSortable?e("k-button",{ref:"entry-"+i+"-sort-handle",refInFor:!0,staticClass:"k-sort-handle k-entries-field-item-sort-handle",attrs:{title:t.$t("sort.drag"),icon:"sort",size:"sm"},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:t.sortUp(i)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:t.sortDown(i)}]}}):t._e(),e(`k-${t.field.type}-field`,t._b({ref:"entry-"+i+"-input",refInFor:!0,tag:"component",staticClass:"k-entries-field-item-input",attrs:{disabled:t.disabled,value:s.value,counter:!1,label:!1},on:{input:function(e){return t.onInput(i,e)}}},"component",t.field,!1)),e("k-button-group",{staticClass:"k-entries-field-item-options",attrs:{layout:"collapsed"}},[t.more?e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"sm"},on:{click:function(e){return t.add(i+1)}}}):t._e(),t.more?e("k-button",{attrs:{title:t.$t("duplicate"),icon:"copy",size:"sm"},on:{click:function(e){return t.duplicate(i)}}}):t._e(),t.disabled?t._e():e("k-button",{attrs:{title:t.$t("remove"),icon:"trash",size:"sm"},on:{click:function(e){return t.remove(i)}}})],1)],1)}),0)],1),t.more?e("footer",{staticClass:"k-entries-field-footer"},[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.add()}}})],1):t._e()],1)},[]).exports;const Rs=lt({type:"model",mixins:[ze,V,Q],inheritAttrs:!1,props:{empty:String,info:String,link:Boolean,max:Number,min:Number,multiple:Boolean,parent:String,search:Boolean,size:String,text:String,value:{type:Array,default:()=>[]}},emits:["change","input"],data(){return{selected:this.value}},computed:{buttons(){return[{autofocus:this.autofocus,text:this.$t("select"),icon:"checklist",responsive:!0,click:()=>this.open()}]},collection(){return{empty:this.emptyProps,items:this.selected,layout:this.layout,link:this.link,size:this.size,sortable:!this.disabled&&this.selected.length>1,theme:this.disabled?"disabled":null}},hasDropzone:()=>!1,more(){return!this.max||this.max>this.selected.length}},watch:{value(t){this.selected=t}},methods:{drop(){},focus(){},onInput(){this.$emit("input",this.selected)},open(){if(this.disabled)return!1;this.$panel.dialog.open({component:`k-${this.$options.type}-dialog`,props:{endpoint:this.endpoints.field,hasSearch:this.search,max:this.max,multiple:this.multiple,value:this.selected.map(t=>t.id)},on:{submit:t=>{this.select(t),this.$panel.dialog.close()}}})},remove(t){this.selected.splice(t,1),this.onInput()},removeById(t){this.selected=this.selected.filter(e=>e.id!==t),this.onInput()},select(t){if(0===t.length)return this.selected=[],void this.onInput();this.selected=this.selected.filter(e=>t.find(t=>t.id===e.id));for(const e of t)this.selected.find(t=>e.id===t.id)||this.selected.push(e);this.onInput()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-models-field",`k-${t.$options.type}-field`,t.$attrs.class],style:t.$attrs.style,attrs:{input:!1},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function(){return[e("k-button-group",{ref:"buttons",staticClass:"k-field-options",attrs:{buttons:t.buttons,layout:"collapsed",size:"xs",variant:"filled"}})]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-dropzone",{attrs:{disabled:!t.hasDropzone},on:{drop:t.drop}},[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("k-collection",t._b({on:{empty:t.open,sort:t.onInput,sortChange:function(e){return t.$emit("change",e)}},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function({index:s}){return[e("k-button",{attrs:{title:t.$t("remove"),icon:"remove"},on:{click:function(e){return t.remove(s)}}})]}}],null,!0)},"k-collection",t.collection,!1))],1)],1)],1)},[]).exports;const Hs=lt({extends:Rs,type:"files",props:{uploads:[Boolean,Object,Array]},computed:{buttons(){const t=Rs.computed.buttons.call(this);return this.hasDropzone&&t.unshift({autofocus:this.autofocus,text:this.$t("upload"),responsive:!0,icon:"upload",click:()=>this.$panel.upload.pick(this.uploadOptions)}),t},emptyProps(){return{icon:"image",text:this.empty??(this.multiple&&1!==this.max?this.$t("field.files.empty"):this.$t("field.files.empty.single"))}},hasDropzone(){return!this.disabled&&this.more&&this.uploads},uploadOptions(){return{accept:this.uploads.accept,max:this.max,multiple:this.multiple,preview:this.uploads.preview,url:this.$panel.urls.api+"/"+this.endpoints.field+"/upload",on:{done:async t=>{!1===this.multiple&&(this.selected=[]);for(const e of t)void 0===this.selected.find(t=>t.id===e.id)&&this.selected.push(e);this.onInput(),await this.$panel.content.update()}}}}},mounted(){this.$events.on("file.delete",this.removeById)},destroyed(){this.$events.off("file.delete",this.removeById)},methods:{drop(t){return!1!==this.uploads&&this.$panel.upload.open(t,this.uploadOptions)}}},null,null).exports;const Us=lt({},function(){return(0,this._self._c)("div",{staticClass:"k-field k-gap-field"})},[]).exports;const Vs=lt({mixins:[G,Z],inheritAttrs:!1},function(){var t=this,e=t._self._c;return e("div",{class:["k-headline-field",t.$attrs.class],style:t.$attrs.style},[e("k-headline",{staticClass:"h2"},[t._v(" "+t._s(t.label)+" ")]),t.help?e("footer",{staticClass:"k-field-footer"},[e("k-text",{staticClass:"k-help k-field-help",attrs:{html:t.help}})],1):t._e()],1)},[]).exports;const Ks=lt({mixins:[G,Z],props:{icon:String,text:String,theme:{type:String,default:"info"}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-field k-info-field"},[t.label?e("k-headline",[t._v(t._s(t.label))]):t._e(),e("k-box",{attrs:{icon:t.icon,theme:t.theme}},[e("k-text",{attrs:{html:t.text}})],1),t.help?e("footer",{staticClass:"k-field-footer"},[e("k-text",{staticClass:"k-help k-field-help",attrs:{html:t.help}})],1):t._e()],1)},[]).exports,Ws={mixins:[W],props:{endpoints:Object,fieldsetGroups:Object,fieldsets:Object,id:String,isSelected:Boolean}};const Js=lt({mixins:[Ws],props:{blocks:Array,width:{type:String,default:"1/1"}},emits:["input"]},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-column k-layout-column",style:{"--width":t.width},attrs:{id:t.id,tabindex:"0"},on:{dblclick:function(e){return t.$refs.blocks.choose(t.blocks.length)}}},[e("k-blocks",t._b({ref:"blocks",on:{input:function(e){return t.$emit("input",e)}},nativeOn:{dblclick:function(t){t.stopPropagation()}}},"k-blocks",{disabled:t.disabled,endpoints:t.endpoints,fieldsets:t.fieldsets,fieldsetGroups:t.fieldsetGroups,group:"layout",value:t.blocks},!1))],1)},[]).exports,Gs={mixins:[Ws],props:{columns:Array,layouts:{type:Array,default:()=>[["1/1"]]},settings:Object}};const Xs=lt({mixins:[Gs],props:{attrs:[Array,Object]},emits:["append","change","copy","duplicate","prepend","remove","select","updateAttrs","updateColumn"],computed:{options(){return[{click:()=>this.$emit("prepend"),icon:"angle-up",text:this.$t("insert.before")},{click:()=>this.$emit("append"),icon:"angle-down",text:this.$t("insert.after")},"-",{click:()=>this.openSettings(),icon:"settings",text:this.$t("settings"),when:!1===this.$helper.object.isEmpty(this.settings)},{click:()=>this.$emit("duplicate"),icon:"copy",text:this.$t("duplicate")},{click:()=>this.$emit("change"),disabled:1===this.layouts.length,icon:"dashboard",text:this.$t("field.layout.change")},"-",{click:()=>this.$emit("copy"),icon:"template",text:this.$t("copy")},{click:()=>this.$emit("paste"),icon:"download",text:this.$t("paste.after")},"-",{click:()=>this.remove(),icon:"trash",text:this.$t("field.layout.delete")}]},tabs(){let t=this.settings.tabs;for(const[e,s]of Object.entries(t))for(const i in s.fields)t[e].fields[i].endpoints={field:this.endpoints.field+"/fields/"+i,section:this.endpoints.section,model:this.endpoints.model};return t}},methods:{openSettings(){this.$panel.drawer.open({component:"k-form-drawer",props:{icon:"settings",tabs:this.tabs,title:this.$t("settings"),value:this.attrs},on:{input:t=>this.$emit("updateAttrs",t)}})},remove(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.layout.delete.confirm")},on:{submit:()=>{this.$emit("remove"),this.$panel.dialog.close()}}})}}},function(){var t=this,e=t._self._c;return e("section",{staticClass:"k-layout",attrs:{"data-disabled":t.disabled,"data-selected":t.isSelected,tabindex:"0"},on:{click:function(e){return t.$emit("select")}}},[e("k-grid",{staticClass:"k-layout-columns"},t._l(t.columns,function(s,i){return e("k-layout-column",t._b({key:s.id,on:{input:function(e){return t.$emit("updateColumn",{column:s,columnIndex:i,blocks:e})}}},"k-layout-column",{...s,disabled:t.disabled,endpoints:t.endpoints,fieldsetGroups:t.fieldsetGroups,fieldsets:t.fieldsets},!1))}),1),t.disabled?t._e():e("nav",{staticClass:"k-layout-toolbar"},[e("k-sort-handle"),t.settings?e("k-button",{staticClass:"k-layout-toolbar-button",attrs:{title:t.$t("settings"),icon:"settings"},on:{click:t.openSettings}}):t._e(),e("k-button",{staticClass:"k-layout-toolbar-button",attrs:{icon:"angle-down"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}})],1)],1)},[]).exports,Zs={mixins:[Gs,X],props:{empty:String,min:Number,max:Number,selector:Object,value:{type:Array,default:()=>[]}}};const Qs=lt({mixins:[Zs],emits:["input"],data(){return{current:null,nextIndex:null,rows:this.value,selected:null}},computed:{draggableOptions(){return{handle:!0,list:this.rows}},hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0}},watch:{value(){this.rows=this.value}},methods:{copy(t,e){if(0===this.rows.length)return!1;const s=void 0!==e?this.rows[e]:this.rows;this.$helper.clipboard.write(JSON.stringify(s),t),this.$panel.notification.success({message:this.$t("copy.success.multiple",{count:s.length??1}),icon:"template"})},change(t,e){const s=e.columns.map(t=>t.width),i=this.layouts.findIndex(t=>t.toString()===s.toString());this.$panel.dialog.open({component:"k-layout-selector",props:{label:this.$t("field.layout.change"),layouts:this.layouts,selector:this.selector,value:this.layouts[i]},on:{submit:s=>{this.onChange(s,i,{rowIndex:t,layoutIndex:i,layout:e}),this.$panel.dialog.close()}}})},duplicate(t,e){const s=this.$helper.object.clone(e),i=this.updateIds(s);this.rows.splice(t+1,0,...i),this.save()},async onAdd(t){let e=await this.$api.post(this.endpoints.field+"/layout",{columns:t});this.rows.splice(this.nextIndex,0,e),this.save()},async onChange(t,e,s){if(e===this.layouts[s.layoutIndex])return;const i=s.layout,n=await this.$api.post(this.endpoints.field+"/layout",{attrs:i.attrs,columns:t}),o=i.columns.filter(t=>t?.blocks?.length>0),r=[];if(0===o.length)r.push(n);else{const t=Math.ceil(o.length/n.columns.length)*n.columns.length;for(let e=0;e(t.blocks=o[s+e]?.blocks??[],t)),t.columns.filter(t=>t?.blocks?.length).length&&r.push(t)}}this.rows.splice(s.rowIndex,1,...r),this.save()},async paste(t,e=this.rows.length){let s=await this.$api.post(this.endpoints.field+"/layout/paste",{json:this.$helper.clipboard.read(t)});s.length&&(this.rows.splice(e,0,...s),this.save()),this.$panel.notification.success({message:this.$t("paste.success",{count:s.length}),icon:"download"})},pasteboard(t){this.$panel.dialog.open({component:"k-block-pasteboard",on:{paste:e=>this.paste(e,t)}})},remove(t){const e=this.rows.findIndex(e=>e.id===t.id);-1!==e&&this.$delete(this.rows,e),this.save()},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.layout.delete.confirm.all")},on:{submit:()=>{this.rows=[],this.save(),this.$panel.dialog.close()}}})},save(){this.$emit("input",this.rows)},select(t){if(this.nextIndex=t,1===this.layouts.length)return this.onAdd(this.layouts[0]);this.$panel.dialog.open({component:"k-layout-selector",props:{layouts:this.layouts,selector:this.selector,value:null},on:{submit:t=>{this.onAdd(t),this.$panel.dialog.close()}}})},updateAttrs(t,e){this.rows[t].attrs=e,this.save()},updateColumn(t){this.rows[t.index].columns[t.columnIndex].blocks=t.blocks,this.save()},updateIds(t){return!1===Array.isArray(t)&&(t=[t]),t.map(t=>(t.id=this.$helper.uuid(),t.columns=t.columns.map(t=>(t.id=this.$helper.uuid(),t.blocks=t.blocks.map(t=>(t.id=this.$helper.uuid(),t)),t)),t))}}},function(){var t=this,e=t._self._c;return e("div",[t.hasFieldsets&&t.rows.length?[e("k-draggable",t._b({staticClass:"k-layouts",on:{sort:t.save}},"k-draggable",t.draggableOptions,!1),t._l(t.rows,function(s,i){return e("k-layout",t._b({key:s.id,on:{append:function(e){return t.select(i+1)},change:function(e){return t.change(i,s)},copy:function(e){return t.copy(e,i)},duplicate:function(e){return t.duplicate(i,s)},paste:function(e){return t.pasteboard(i+1)},prepend:function(e){return t.select(i)},remove:function(e){return t.remove(s)},select:function(e){t.selected=s.id},updateAttrs:function(e){return t.updateAttrs(i,e)},updateColumn:function(e){return t.updateColumn({layout:s,index:i,...e})}}},"k-layout",{...s,disabled:t.disabled,endpoints:t.endpoints,fieldsetGroups:t.fieldsetGroups,fieldsets:t.fieldsets,isSelected:t.selected===s.id,layouts:t.layouts,settings:t.settings},!1))}),1)]:!1===t.hasFieldsets?e("k-empty",{staticClass:"k-layout-empty",attrs:{icon:"dashboard"}},[t._v(" "+t._s(t.$t("field.blocks.fieldsets.empty"))+" ")]):e("k-empty",{staticClass:"k-layout-empty",attrs:{icon:"dashboard"},on:{click:function(e){return t.select(0)}}},[t._v(" "+t._s(t.empty??t.$t("field.layout.empty"))+" ")])],2)},[]).exports;const ti=lt({mixins:[ze,Zs,V],inheritAttrs:!1,computed:{hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0},isEmpty(){return 0===this.value.length},options(){return[{click:()=>this.$refs.layouts.copy(),disabled:this.isEmpty,icon:"template",text:this.$t("copy.all")},{click:()=>this.$refs.layouts.pasteboard(),icon:"download",text:this.$t("paste")},"-",{click:()=>this.$refs.layouts.removeAll(),disabled:this.isEmpty,icon:"trash",text:this.$t("delete.all")}]}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-layout-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},scopedSlots:t._u([!t.disabled&&t.hasFieldsets?{key:"options",fn:function(){return[e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{staticClass:"input-focus",attrs:{autofocus:t.autofocus,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.layouts.select(0)}}}),e("k-button",{attrs:{icon:"dots",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}})],1)]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[e("k-layouts",t._b({ref:"layouts",on:{input:function(e){return t.$emit("input",e)}}},"k-layouts",t.$props,!1))],1),!t.disabled&&t.hasFieldsets?e("footer",[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.layouts.select(t.value.length)}}})],1):t._e()],1)},[]).exports;const ei=lt({},function(){return(0,this._self._c)("hr",{staticClass:"k-line-field"})},[]).exports;const si=lt({mixins:[{mixins:[ze,Ke,Ie,it],props:{value:{default:"",type:String}}}],inheritAttrs:!1,data:()=>({linkType:null,linkValue:null,expanded:!1}),computed:{activeTypes(){return this.$helper.link.types(this.options)},activeTypesOptions(){const t=[];for(const e in this.activeTypes)t.push({click:()=>this.switchType(e),current:e===this.currentType.id,icon:this.activeTypes[e].icon,label:this.activeTypes[e].label});return t},currentType(){return this.activeTypes[this.linkType]??Object.values(this.activeTypes)[0]}},watch:{value:{async handler(t,e){if(t===e||t===this.linkValue)return;const s=this.$helper.link.detect(t,this.activeTypes);s&&(this.linkType=s.type,this.linkValue=s.link)},immediate:!0}},mounted(){this.$events.on("click",this.onOutsideClick)},destroyed(){this.$events.off("click",this.onOutsideClick)},methods:{clear(){this.linkValue="",this.$emit("input","")},focus(){this.$refs.input?.focus()},onInput(t){const e=t?.trim()??"";if(this.linkType??=this.currentType.id,this.linkValue=e,!e.length)return this.clear();this.$emit("input",this.currentType.value(e))},onOutsideClick(t){!1===this.$el.contains(t.target)&&(this.expanded=!1)},removeModel(){this.clear(),this.expanded=!1},selectModel(t){t.uuid?this.onInput(t.uuid):(this.switchType("url"),this.onInput(t.url))},async switchType(t){t!==this.currentType.id&&(this.linkType=t,this.clear(),"page"===this.currentType.id||"file"===this.currentType.id?this.expanded=!0:this.expanded=!1,await this.$nextTick(),this.focus())},toggle(){this.expanded=!this.expanded}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-link-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({attrs:{icon:!1}},"k-input",t.$props,!1),[e("div",{staticClass:"k-link-input-header"},[e("k-button",{staticClass:"k-link-input-toggle",attrs:{disabled:t.disabled,dropdown:!t.disabled&&t.activeTypesOptions.length>1,icon:t.currentType.icon,variant:"filled"},on:{click:function(e){t.activeTypesOptions.length>1?t.$refs.types.toggle():t.toggle()}}},[t._v(" "+t._s(t.currentType.label)+" ")]),e("k-dropdown-content",{ref:"types",attrs:{options:t.activeTypesOptions}}),"page"===t.currentType.id||"file"===t.currentType.id?e("div",{staticClass:"k-link-input-model",on:{click:t.toggle}},[e("k-link-field-preview",{attrs:{removable:!0,type:t.currentType.id,value:t.value},on:{remove:t.removeModel},scopedSlots:t._u([{key:"placeholder",fn:function(){return[e("k-button",{staticClass:"k-link-input-model-placeholder"},[t._v(" "+t._s(t.currentType.placeholder)+" ")])]},proxy:!0}],null,!1,3171606015)}),e("k-button",{staticClass:"k-link-input-model-toggle",attrs:{icon:"bars"}})],1):e("k-"+t.currentType.input+"-input",{ref:"input",tag:"component",attrs:{id:t.id,disabled:t.disabled,pattern:t.currentType.pattern??null,placeholder:t.currentType.placeholder,required:t.required,value:t.linkValue},on:{input:t.onInput}})],1),"page"===t.currentType.id?e("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}],staticClass:"k-link-input-body",attrs:{"data-type":"page"}},[e("div",{staticClass:"k-page-browser"},[e("k-page-tree",{attrs:{current:t.$helper.link.getPageUUID(t.value),root:!1},on:{select:function(e){return t.selectModel(e)}}})],1)]):"file"===t.currentType.id?e("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}],staticClass:"k-link-input-body",attrs:{"data-type":"file"}},[e("k-file-browser",{attrs:{opened:t.$panel.view.props.model.uuid??t.$panel.view.props.model.id,selected:t.$helper.link.getFileUUID(t.value)},on:{select:function(e){return t.selectModel(e)}}})],1):t._e()])],1)},[]).exports;const ii=t=>({$from:e})=>((t,e)=>{for(let s=t.depth;s>0;s--){const i=t.node(s);if(e(i))return{pos:s>0?t.before(s):0,start:t.start(s),depth:s,node:i}}})(e,t),ni=t=>e=>{if((t=>t instanceof c)(e)){const{node:s,$from:i}=e;if(((t,e)=>Array.isArray(t)&&t.indexOf(e.type)>-1||e.type===t)(t,s))return{node:s,pos:i.pos,depth:i.depth}}},oi=(t,e,s={})=>{const i=ni(e)(t.selection)||ii(t=>t.type===e)(t.selection);return 0!==vt(s)&&i?i.node.hasMarkup(e,{...i.node.attrs,...s}):!!i};function ri(t=null,e=null){if(!t||!e)return!1;const s=t.parent.childAfter(t.parentOffset);if(!s.node)return!1;const i=s.node.marks.find(t=>t.type===e);if(!i)return!1;let n=t.index(),o=t.start()+s.offset,r=n+1,a=o+s.node.nodeSize;for(;n>0&&i.isInSet(t.parent.child(n-1).marks);)n-=1,o-=t.parent.child(n).nodeSize;for(;r{n=[...n,...t.marks]});const o=n.find(t=>t.type.name===e.name);return o?o.attrs:{}},getNodeAttrs:function(t,e){const{from:s,to:i}=t.selection;let n=[];t.doc.nodesBetween(s,i,t=>{n=[...n,t]});const o=n.reverse().find(t=>t.type.name===e.name);return o?o.attrs:{}},insertNode:function(t,e,s,i){return(n,o)=>{o(n.tr.replaceSelectionWith(t.create(e,s,i)).scrollIntoView())}},markInputRule:function(t,e,s){return new o(t,(t,i,n,o)=>{const r=s instanceof Function?s(i):s,{tr:a}=t,l=i.length-1;let c=o,u=n;if(i[l]){const s=n+i[0].indexOf(i[l-1]),r=s+i[l-1].length-1,p=s+i[l-1].lastIndexOf(i[l]),d=p+i[l].length,h=function(t,e,s){let i=[];return s.doc.nodesBetween(t,e,(t,e)=>{i=[...i,...t.marks.map(s=>({start:e,end:e+t.nodeSize,mark:s}))]}),i}(n,o,t).filter(t=>{const{excluded:s}=t.mark.type;return s.find(t=>t.name===e.name)}).filter(t=>t.end>s);if(h.length)return!1;ds&&a.delete(s,p),u=s,c=u+i[l].length}return a.addMark(u,c,e.create(r)),a.removeStoredMark(e),a})},markIsActive:function(t,e){const{from:s,$from:i,to:n,empty:o}=t.selection;return o?!!e.isInSet(t.storedMarks||i.marks()):!!t.doc.rangeHasMark(s,n,e)},markPasteRule:function(t,e,s){const i=(n,o)=>{const r=[];return n.forEach(n=>{if(n.isText){const{text:i,marks:a}=n;let l,c=0;const u=!!a.filter(t=>"link"===t.type.name)[0];for(;!u&&null!==(l=t.exec(i));)if(o?.type?.allowsMarkType(e)&&l[1]){const t=l.index,i=t+l[0].length,o=t+l[0].indexOf(l[1]),a=o+l[1].length,u=s instanceof Function?s(l):s;t>0&&r.push(n.cut(c,t)),r.push(n.cut(o,a).mark(e.create(u).addToSet(n.marks))),c=i}cnew a(i(t.content),t.openStart,t.openEnd)}})},minMax:function(t=0,e=0,s=0){return Math.min(Math.max(parseInt(t,10),e),s)},nodeIsActive:oi,nodeInputRule:function(t,e,s){return new o(t,(t,i,n,o)=>{const r=s instanceof Function?s(i):s,{tr:a}=t;return i[0]&&a.replaceWith(n,o,e.create(r)),a})},pasteRule:function(t,e,s){const i=n=>{const o=[];return n.forEach(n=>{if(n.isText){const{text:i}=n;let r,a=0;do{if(r=t.exec(i),r){const t=r.index,i=t+r[0].length,l=s instanceof Function?s(r[0]):s;t>0&&o.push(n.cut(a,t)),o.push(n.cut(t,i).mark(e.create(l).addToSet(n.marks))),a=i}}while(r);anew a(i(t.content),t.openStart,t.openEnd)}})},removeMark:function(t){return(e,s)=>{const{tr:i,selection:n}=e;let{from:o,to:r}=n;const{$from:a,empty:l}=n;if(l){const e=ri(a,t);o=e.from,r=e.to}return i.removeMark(o,r,t),s(i)}},toggleBlockType:function(t,e,s={}){return(i,n,o)=>oi(i,t,s)?u(e)(i,n,o):u(t,s)(i,n,o)},toggleList:function(t,e){return(s,i,n)=>{const{schema:o,selection:r}=s,{$from:a,$to:l}=r,c=a.blockRange(l);if(!c)return!1;const u=ii(t=>ai(t,o))(r);if(c.depth>=1&&u&&c.depth-u.depth<=1){if(u.node.type===t)return p(e)(s,i,n);if(ai(u.node,o)&&t.validContent(u.node.content)){const{tr:e}=s;return e.setNodeMarkup(u.pos,t),i&&i(e),!1}}return d(t)(s,i,n)}},toggleWrap:function(t,e={}){return(s,i,n)=>oi(s,t,e)?h(s,i):m(t,e)(s,i,n)},updateMark:function(t,e){return(s,i)=>{const{tr:n,selection:o,doc:r}=s,{ranges:a,empty:l}=o;if(l){const{from:s,to:i}=ri(o.$from,t);r.rangeHasMark(s,i,t)&&n.removeMark(s,i,t),n.addMark(s,i,t.create(e))}else a.forEach(s=>{const{$to:i,$from:o}=s;r.rangeHasMark(o.pos,i.pos,t)&&n.removeMark(o.pos,i.pos,t),n.addMark(o.pos,i.pos,t.create(e))});return i(n)}}};class ci{emit(t,...e){this._callbacks??={};const s=this._callbacks[t]??[];for(const i of s)i.apply(this,e);return this}off(t,e){if(arguments.length){const s=this._callbacks?this._callbacks[t]:null;s&&(e?this._callbacks[t]=s.filter(t=>t!==e):delete this._callbacks[t])}else this._callbacks={};return this}on(t,e){return this._callbacks??={},this._callbacks[t]??=[],this._callbacks[t].push(e),this}}class ui{constructor(t=[],e){for(const s of t)s.bindEditor(e),s.init();this.extensions=t}commands({schema:t,view:e}){return this.extensions.filter(t=>t.commands).reduce((s,i)=>{const{name:n,type:o}=i,r={},a=i.commands({schema:t,utils:li,...["node","mark"].includes(o)?{type:t[`${o}s`][n]}:{}}),l=(t,s)=>{r[t]=t=>{if("function"!=typeof s||!e.editable)return!1;e.focus();const i=s(t);return"function"==typeof i?i(e.state,e.dispatch,e):i}};if("object"==typeof a)for(const[t,e]of Object.entries(a))l(t,e);else l(n,a);return{...s,...r}},{})}buttons(t="mark"){const e={};for(const s of this.extensions)if(s.type===t&&s.button)if(Array.isArray(s.button))for(const t of s.button)e[t.id??t.name]=t;else e[s.name]={name:s.name,...s.button};return e}getAllowedExtensions(t){return t instanceof Array||!t?t instanceof Array?this.extensions.filter(e=>!t.includes(e.name)):this.extensions:[]}getFromExtensions(t,e,s=this.extensions){return s.filter(t=>["extension"].includes(t.type)).filter(e=>e[t]).map(s=>s[t]({...e,utils:li}))}getFromNodesAndMarks(t,e,s=this.extensions){return s.filter(t=>["node","mark"].includes(t.type)).filter(e=>e[t]).map(s=>s[t]({...e,type:e.schema[`${s.type}s`][s.name],utils:li}))}inputRules({schema:t,excludedExtensions:e}){const s=this.getAllowedExtensions(e);return[...this.getFromExtensions("inputRules",{schema:t},s),...this.getFromNodesAndMarks("inputRules",{schema:t},s)].reduce((t,e)=>[...t,...e],[])}keymaps({schema:t}){return[...this.getFromExtensions("keys",{schema:t}),...this.getFromNodesAndMarks("keys",{schema:t})].map(t=>w(t))}get marks(){return this.extensions.filter(t=>"mark"===t.type).reduce((t,{name:e,schema:s})=>({...t,[e]:s}),{})}get markViews(){return this.extensions.filter(t=>["mark"].includes(t.type)).filter(t=>t.view).reduce((t,{name:e,view:s})=>({...t,[e]:s}),{})}get nodes(){return this.extensions.filter(t=>"node"===t.type).reduce((t,{name:e,schema:s})=>({...t,[e]:s}),{})}get nodeViews(){return this.extensions.filter(t=>["node"].includes(t.type)).filter(t=>t.view).reduce((t,{name:e,view:s})=>({...t,[e]:s}),{})}get options(){const{view:t}=this;return this.extensions.reduce((e,s)=>({...e,[s.name]:new Proxy(s.options,{set(e,s,i){const n=e[s]!==i;return Object.assign(e,{[s]:i}),n&&t.updateState(t.state),!0}})}),{})}pasteRules({schema:t,excludedExtensions:e}){const s=this.getAllowedExtensions(e);return[...this.getFromExtensions("pasteRules",{schema:t},s),...this.getFromNodesAndMarks("pasteRules",{schema:t},s)].reduce((t,e)=>[...t,...e],[])}plugins({schema:t}){return[...this.getFromExtensions("plugins",{schema:t}),...this.getFromNodesAndMarks("plugins",{schema:t})].reduce((t,e)=>[...t,...e],[]).map(t=>t instanceof r?t:new r(t))}}class pi{constructor(t={}){this.options={...this.defaults,...t}}init(){return null}bindEditor(t=null){this.editor=t}get name(){return null}get type(){return"extension"}get defaults(){return{}}plugins(){return[]}inputRules(){return[]}pasteRules(){return[]}keys(){return{}}}class di extends pi{constructor(t={}){super(t)}get type(){return"node"}get schema(){return{}}commands(){return{}}}class hi extends di{get defaults(){return{inline:!1}}get name(){return"doc"}get schema(){return{content:this.options.inline?"inline*":"block+"}}}class mi extends di{get button(){return{id:this.name,icon:"paragraph",label:window.panel.$t("toolbar.button.paragraph"),name:this.name,separator:!0}}commands({utils:t,schema:e,type:s}){return{paragraph:()=>this.editor.activeNodes.includes("bulletList")?t.toggleList(e.nodes.bulletList,e.nodes.listItem):this.editor.activeNodes.includes("orderedList")?t.toggleList(e.nodes.orderedList,e.nodes.listItem):this.editor.activeNodes.includes("quote")?t.toggleWrap(e.nodes.quote):t.setBlockType(s)}}get schema(){return{content:"inline*",group:"block",draggable:!1,parseDOM:[{tag:"p"}],toDOM:()=>["p",0]}}get name(){return"paragraph"}}let fi=class extends di{get name(){return"text"}get schema(){return{group:"inline"}}};class gi extends ci{constructor(t={}){super(),this.defaults={autofocus:!1,content:"",disableInputRules:!1,disablePasteRules:!1,editable:!0,element:null,extensions:[],emptyDocument:{type:"doc",content:[]},events:{},inline:!1,parseOptions:{},topNode:"doc",useBuiltInExtensions:!0},this.init(t)}blur(){this.view.dom.blur()}get builtInExtensions(){return!0!==this.options.useBuiltInExtensions?[]:[new hi({inline:this.options.inline}),new fi,new mi]}buttons(t){return this.extensions.buttons(t)}clearContent(t=!1){this.setContent(this.options.emptyDocument,t)}command(t,...e){this.commands[t]?.(...e)}createCommands(){return this.extensions.commands({schema:this.schema,view:this.view})}createDocument(t,e=this.options.parseOptions){if(null===t)return this.schema.nodeFromJSON(this.options.emptyDocument);if("object"==typeof t)try{return this.schema.nodeFromJSON(t)}catch(s){return window.console.warn("Invalid content.","Passed value:",t,"Error:",s),this.schema.nodeFromJSON(this.options.emptyDocument)}if("string"==typeof t){const s=`

        ${t}
        `,i=(new window.DOMParser).parseFromString(s,"text/html").body.firstElementChild;return _.fromSchema(this.schema).parse(i,e)}return!1}createEvents(){const t=this.options.events??{};for(const[e,s]of Object.entries(t))this.on(e,s);return t}createExtensions(){return new ui([...this.builtInExtensions,...this.options.extensions],this)}createFocusEvents(){const t=(t,e,s=!0)=>{this.focused=s,this.emit(s?"focus":"blur",{event:e,state:t.state,view:t});const i=this.state.tr.setMeta("focused",s);this.view.dispatch(i)};return new r({props:{attributes:{tabindex:0},handleDOMEvents:{focus:(e,s)=>t(e,s,!0),blur:(e,s)=>t(e,s,!1)}}})}createInputRules(){return this.extensions.inputRules({schema:this.schema,excludedExtensions:this.options.disableInputRules})}createKeymaps(){return this.extensions.keymaps({schema:this.schema})}createMarks(){return this.extensions.marks}createMarkViews(){return this.extensions.markViews}createNodes(){return this.extensions.nodes}createNodeViews(){return this.extensions.nodeViews}createPasteRules(){return this.extensions.pasteRules({schema:this.schema,excludedExtensions:this.options.disablePasteRules})}createPlugins(){return this.extensions.plugins({schema:this.schema})}createSchema(){return new S({topNode:this.options.topNode,nodes:this.nodes,marks:this.marks})}createState(){return C.create({schema:this.schema,doc:this.createDocument(this.options.content),plugins:[...this.plugins,O({rules:this.inputRules}),...this.pasteRules,...this.keymaps,w({Backspace:E}),w(j),this.createFocusEvents()]})}createView(){return new A(this.element,{dispatchTransaction:this.dispatchTransaction.bind(this),attributes:{class:"k-text"},editable:()=>this.options.editable,handlePaste:(t,e)=>{if("function"==typeof this.events.paste){const t=e.clipboardData.getData("text/html"),s=e.clipboardData.getData("text/plain");if(!0===this.events.paste(e,t,s))return!0}},handleDrop:(...t)=>{this.emit("drop",...t)},markViews:this.createMarkViews(),nodeViews:this.createNodeViews(),state:this.createState()})}destroy(){this.view&&this.view.destroy()}dispatchTransaction(t){const e=this.state,s=this.state.apply(t);this.view.updateState(s),this.setActiveNodesAndMarks();const i={editor:this,getHTML:this.getHTML.bind(this),getJSON:this.getJSON.bind(this),state:this.state,transaction:t};this.emit("transaction",i),t.docChanged&&!t.getMeta("preventUpdate")&&t.steps.length>0&&this.emit("update",i);const{from:n,to:o}=this.state.selection,r=!e||!e.selection.eq(s.selection);this.emit(s.selection.empty?"deselect":"select",{...i,from:n,hasChanged:r,to:o})}focus(t=null){if(this.view.focused&&null===t||!1===t)return;const{from:e,to:s}=this.selectionAtPosition(t);this.setSelection(e,s),setTimeout(()=>this.view.focus(),10)}getHTML(t=this.state.doc.content){const e=document.createElement("div"),s=M.fromSchema(this.schema).serializeFragment(t);return e.appendChild(s),this.options.inline&&e.querySelector("p")?e.querySelector("p").innerHTML:e.innerHTML}getHTMLStartToSelection(){const t=this.state.doc.slice(0,this.selection.head).content;return this.getHTML(t)}getHTMLSelectionToEnd(){const t=this.state.doc.slice(this.selection.head).content;return this.getHTML(t)}getHTMLStartToSelectionToEnd(){return[this.getHTMLStartToSelection(),this.getHTMLSelectionToEnd()]}getJSON(){return this.state.doc.toJSON()}getMarkAttrs(t=null){return this.activeMarkAttrs[t]}getSchemaJSON(){return JSON.parse(JSON.stringify({nodes:this.nodes,marks:this.marks}))}init(t={}){this.options={...this.defaults,...t},this.element=this.options.element,this.focused=!1,this.events=this.createEvents(),this.extensions=this.createExtensions(),this.nodes=this.createNodes(),this.marks=this.createMarks(),this.schema=this.createSchema(),this.keymaps=this.createKeymaps(),this.inputRules=this.createInputRules(),this.pasteRules=this.createPasteRules(),this.plugins=this.createPlugins(),this.view=this.createView(),this.commands=this.createCommands(),this.setActiveNodesAndMarks(),!1!==this.options.autofocus&&this.focus(this.options.autofocus),this.emit("init",{view:this.view,state:this.state}),this.extensions.view=this.view,this.setContent(this.options.content)}insertText(t,e=!1){const{tr:s}=this.state,i=s.insertText(t);if(this.view.dispatch(i),e){const e=s.selection.from,i=e-t.length;this.setSelection(i,e)}}get isActive(){return Object.entries({...this.activeMarks,...this.activeNodes}).reduce((t,[e,s])=>({...t,[e]:(t={})=>s(t)}),{})}isEditable(){return this.options.editable}isEmpty(){if(this.state)return 0===this.state.doc.textContent.length}removeMark(t){if(this.schema.marks[t])return li.removeMark(this.schema.marks[t])(this.state,this.view.dispatch)}get selection(){return this.state.selection}get selectionAtEnd(){return D.atEnd(this.state.doc)}get selectionIsAtEnd(){return this.selection.head===this.selectionAtEnd.head}get selectionAtStart(){return D.atStart(this.state.doc)}get selectionIsAtStart(){return this.selection.head===this.selectionAtStart.head}selectionAtPosition(t=null){return null===t?this.selection:"start"===t||!0===t?this.selectionAtStart:"end"===t?this.selectionAtEnd:{from:t,to:t}}setActiveNodesAndMarks(){this.activeMarks=Object.values(this.schema.marks).filter(t=>li.markIsActive(this.state,t)).map(t=>t.name),this.activeMarkAttrs=Object.entries(this.schema.marks).reduce((t,[e,s])=>({...t,[e]:li.getMarkAttrs(this.state,s)}),{}),this.activeNodes=Object.values(this.schema.nodes).filter(t=>li.nodeIsActive(this.state,t)).map(t=>t.name),this.activeNodeAttrs=Object.entries(this.schema.nodes).reduce((t,[e,s])=>({...t,[e]:li.getNodeAttrs(this.state,s)}),{})}setContent(t={},e=!1,s){const{doc:i,tr:n}=this.state,o=this.createDocument(t,s),r=n.replaceWith(0,i.content.size,o).setMeta("preventUpdate",!e);this.view.dispatch(r)}setSelection(t=0,e=0){const{doc:s,tr:i}=this.state,n=li.minMax(t,0,s.content.size),o=li.minMax(e,0,s.content.size),r=D.create(s,n,o),a=i.setSelection(r);this.view.dispatch(a)}get state(){return this.view?.state}toggleMark(t){if(this.schema.marks[t])return li.toggleMark(this.schema.marks[t])(this.state,this.view.dispatch)}updateMark(t,e){if(this.schema.marks[t])return li.updateMark(this.schema.marks[t],e)(this.state,this.view.dispatch)}}class ki extends pi{command(){return()=>{}}remove(){this.editor.removeMark(this.name)}get schema(){return{}}get type(){return"mark"}toggle(){return this.editor.toggleMark(this.name)}update(t){this.editor.updateMark(this.name,t)}}class bi extends ki{get button(){return{icon:"bold",label:window.panel.$t("toolbar.button.bold")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,t),e.markInputRule(/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,t)]}keys(){return{"Mod-b":()=>this.toggle()}}get name(){return"bold"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,t),e.markPasteRule(/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,t)]}get schema(){return{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:t=>"normal"!==t.style.fontWeight&&null},{style:"font-weight",getAttrs:t=>/^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null}],toDOM:()=>["strong",0]}}}class yi extends ki{get button(){return{icon:"clear",label:window.panel.$t("toolbar.button.clear")}}commands(){return()=>this.clear()}clear(){const{state:t}=this.editor,{from:e,to:s}=t.tr.selection;for(const i of this.editor.activeMarks){const n=t.schema.marks[i],o=this.editor.state.tr.removeMark(e,s,n);this.editor.view.dispatch(o)}}get name(){return"clear"}}let vi=class extends ki{get button(){return{icon:"code",label:window.panel.$t("toolbar.button.code")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/(?:`)([^`]+)(?:`)$/,t)]}keys(){return{"Mod-`":()=>this.toggle()}}get name(){return"code"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/(?:`)([^`]+)(?:`)/g,t)]}get schema(){return{excludes:"_",parseDOM:[{tag:"code"}],toDOM:()=>["code",0]}}};class $i extends ki{get button(){return{icon:"email",label:window.panel.$t("toolbar.button.email")}}commands(){return{email:t=>{if(t.altKey||t.metaKey)return this.remove();this.editor.emit("email",this.editor)},insertEmail:(t={})=>{const{selection:e}=this.editor.state;if(e.empty&&this.editor.insertText(t.href,!0),t.href)return this.update(t)},removeEmail:()=>this.remove(),toggleEmail:(t={})=>{t.href?.length>0?this.editor.command("insertEmail",t):this.editor.command("removeEmail")}}}get defaults(){return{target:null}}get name(){return"email"}pasteRules({type:t,utils:e}){return[e.pasteRule(/^[\w-.]+@([\w-]+\.)+[\w-]{2,4}$/gi,t,t=>({href:t}))]}plugins(){return[{props:{handleClick:(t,e,s)=>{const i=this.editor.getMarkAttrs("email");i.href&&!0===s.altKey&&s.target instanceof HTMLAnchorElement&&(s.stopPropagation(),window.open(i.href))}}}]}get schema(){return{attrs:{href:{default:null},title:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href^='mailto:']",getAttrs:t=>({href:t.getAttribute("href").replace("mailto:",""),title:t.getAttribute("title")})}],toDOM:t=>["a",{...t.attrs,href:"mailto:"+t.attrs.href},0]}}}class xi extends ki{get button(){return{icon:"italic",label:window.panel.$t("toolbar.button.italic")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,t),e.markInputRule(/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,t)]}keys(){return{"Mod-i":()=>this.toggle()}}get name(){return"italic"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,t),e.markPasteRule(/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,t)]}get schema(){return{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"}],toDOM:()=>["em",0]}}}class wi extends ki{get button(){return{icon:"url",label:window.panel.$t("toolbar.button.link")}}commands(){return{link:t=>{if(t.altKey||t.metaKey)return this.remove();this.editor.emit("link",this.editor)},insertLink:(t={})=>{const{selection:e}=this.editor.state;if(e.empty&&!1===this.editor.activeMarks.includes("link")&&this.editor.insertText(t.href,!0),t.href)return this.update(t)},removeLink:()=>this.remove(),toggleLink:(t={})=>{t.href?.length>0?this.editor.command("insertLink",t):this.editor.command("removeLink")}}}get defaults(){return{target:null}}get name(){return"link"}pasteRules({type:t,utils:e}){return[e.pasteRule(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z]{2,}\b([-a-zA-Z0-9@:%_+.~#?&//=,]*)/gi,t,t=>({href:t}))]}plugins(){return[{props:{handleClick:(t,e,s)=>{const i=this.editor.getMarkAttrs("link");i.href&&!0===s.altKey&&s.target instanceof HTMLAnchorElement&&(s.stopPropagation(),window.open(i.href,i.target))}}}]}get schema(){return{attrs:{href:{default:null},target:{default:null},title:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href]:not([href^='mailto:'])",getAttrs:t=>({href:t.getAttribute("href"),target:t.getAttribute("target"),title:t.getAttribute("title")})}],toDOM:t=>["a",{...t.attrs},0]}}}class _i extends ki{get button(){return{icon:"strikethrough",label:window.panel.$t("toolbar.button.strike")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/~([^~]+)~$/,t)]}keys(){return{"Mod-d":()=>this.toggle()}}get name(){return"strike"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/~([^~]+)~/g,t)]}get schema(){return{parseDOM:[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",getAttrs:t=>"line-through"===t}],toDOM:()=>["s",0]}}}let Si=class extends ki{get button(){return{icon:"superscript",label:window.panel.$t("toolbar.button.sup")}}commands(){return()=>this.toggle()}get name(){return"sup"}get schema(){return{parseDOM:[{tag:"sup"}],toDOM:()=>["sup",0]}}};class Ci extends ki{get button(){return{icon:"subscript",label:window.panel.$t("toolbar.button.sub")}}commands(){return()=>this.toggle()}get name(){return"sub"}get schema(){return{parseDOM:[{tag:"sub"}],toDOM:()=>["sub",0]}}}class Oi extends ki{get button(){return{icon:"underline",label:window.panel.$t("toolbar.button.underline")}}commands(){return()=>this.toggle()}keys(){return{"Mod-u":()=>this.toggle()}}get name(){return"underline"}get schema(){return{parseDOM:[{tag:"u"},{style:"text-decoration",getAttrs:t=>"underline"===t}],toDOM:()=>["u",0]}}}class Ai extends di{get button(){return{id:this.name,icon:"list-bullet",label:window.panel.$t("toolbar.button.ul"),name:this.name,when:["listItem","bulletList","orderedList","paragraph"]}}commands({type:t,schema:e,utils:s}){return()=>s.toggleList(t,e.nodes.listItem)}inputRules({type:t,utils:e}){return[e.wrappingInputRule(/^\s*([-+*])\s$/,t)]}keys({type:t,schema:e,utils:s}){return{"Shift-Ctrl-8":s.toggleList(t,e.nodes.listItem)}}get name(){return"bulletList"}get schema(){return{content:"listItem+",group:"block",parseDOM:[{tag:"ul"}],toDOM:()=>["ul",0]}}}class Mi extends di{commands({utils:t,type:e}){return()=>this.createHardBreak(t,e)}createHardBreak(t,e){return t.chainCommands(t.exitCode,t.insertNode(e))}get defaults(){return{enter:!1,text:!1}}keys({utils:t,type:e}){const s=this.createHardBreak(t,e);let i={"Mod-Enter":s,"Shift-Enter":s};return this.options.enter&&(i.Enter=s),i}get name(){return"hardBreak"}get schema(){return{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM:()=>["br"]}}}class Di extends di{get button(){const t=this.options.levels.map(t=>({id:`h${t}`,command:`h${t}`,icon:`h${t}`,label:window.panel.$t("toolbar.button.heading."+t),attrs:{level:t},name:this.name,when:["heading","paragraph"]}));return t[t.length-1].separator=!0,t}commands({type:t,schema:e,utils:s}){let i={toggleHeading:i=>s.toggleBlockType(t,e.nodes.paragraph,i)};for(const n of this.options.levels)i[`h${n}`]=()=>s.toggleBlockType(t,e.nodes.paragraph,{level:n});return i}get defaults(){return{levels:[1,2,3,4,5,6]}}inputRules({type:t,utils:e}){return this.options.levels.map(s=>e.textblockTypeInputRule(new RegExp(`^(#{1,${s}})\\s$`),t,()=>({level:s})))}keys({type:t,utils:e}){return this.options.levels.reduce((s,i)=>({...s,[`Shift-Ctrl-${i}`]:e.setBlockType(t,{level:i})}),{})}get name(){return"heading"}get schema(){return{attrs:{level:{default:1}},content:"inline*",group:"block",defining:!0,draggable:!1,parseDOM:this.options.levels.map(t=>({tag:`h${t}`,attrs:{level:t}})),toDOM:t=>[`h${t.attrs.level}`,0]}}}class Ei extends di{commands({type:t,utils:e}){return()=>e.insertNode(t)}inputRules({type:t,utils:e}){const s=e.nodeInputRule(/^(?:---|___\s|\*\*\*\s)$/,t),i=s.handler;return s.handler=(t,e,s,n)=>i(t,e,s,n).replaceWith(s-1,s,""),[s]}get name(){return"horizontalRule"}get schema(){return{group:"block",parseDOM:[{tag:"hr"}],toDOM:()=>["hr"]}}}class ji extends di{keys({type:t,utils:e}){return{Enter:e.splitListItem(t),"Shift-Tab":e.liftListItem(t),Tab:e.sinkListItem(t)}}get name(){return"listItem"}get schema(){return{content:"paragraph block*",defining:!0,draggable:!1,parseDOM:[{tag:"li"}],toDOM:()=>["li",0]}}}class Ii extends di{get button(){return{id:this.name,icon:"list-numbers",label:window.panel.$t("toolbar.button.ol"),name:this.name,when:["listItem","bulletList","orderedList","paragraph"],separator:!0}}commands({type:t,schema:e,utils:s}){return()=>s.toggleList(t,e.nodes.listItem)}inputRules({type:t,utils:e}){return[e.wrappingInputRule(/^(\d+)\.\s$/,t,t=>({order:+t[1]}),(t,e)=>e.childCount+e.attrs.order===+t[1])]}keys({type:t,schema:e,utils:s}){return{"Shift-Ctrl-9":s.toggleList(t,e.nodes.listItem)}}get name(){return"orderedList"}get schema(){return{attrs:{order:{default:1}},content:"listItem+",group:"block",parseDOM:[{tag:"ol",getAttrs:t=>({order:t.hasAttribute("start")?+t.getAttribute("start"):1})}],toDOM:t=>1===t.attrs.order?["ol",0]:["ol",{start:t.attrs.order},0]}}}class Li extends di{get button(){return{id:this.name,icon:"quote",label:window.panel.$t("field.blocks.quote.name"),name:this.name}}commands({type:t,utils:e}){return()=>e.toggleWrap(t)}inputRules({type:t,utils:e}){return[e.wrappingInputRule(/^\s*>\s$/,t)]}keys({utils:t}){return{"Shift-Tab":(e,s)=>t.lift(e,s)}}get name(){return"quote"}get schema(){return{content:"block+",group:"block",defining:!0,draggable:!1,parseDOM:[{tag:"blockquote"}],toDOM:()=>["blockquote",0]}}}let Bi=class extends pi{commands(){return{undo:()=>T,redo:()=>B,undoDepth:()=>L,redoDepth:()=>I}}get defaults(){return{depth:"",newGroupDelay:""}}keys(){return{"Mod-z":T,"Mod-y":B,"Shift-Mod-z":B,"Mod-я":T,"Shift-Mod-я":B}}get name(){return"history"}plugins(){return[P({depth:this.options.depth,newGroupDelay:this.options.newGroupDelay})]}};class Ti extends pi{commands(){return{insertHtml:t=>(e,s)=>{let i=document.createElement("div");i.innerHTML=t.trim();const n=_.fromSchema(e.schema).parse(i);s(e.tr.replaceSelectionWith(n).scrollIntoView())}}}}class Pi extends pi{keys(){const t={};for(const e in this.options)t[e]=()=>(this.options[e](),!0);return t}}let qi=class extends pi{constructor(t){super(),this.writer=t}get component(){return this.writer.$refs.toolbar}init(){this.editor.on("deselect",({event:t})=>this.component?.close(t)),this.editor.on("select",({hasChanged:t})=>{!1!==t&&this.component?.open()})}get type(){return"toolbar"}};const Ni={mixins:[Ie,tt,et,ot,at],props:{breaks:Boolean,code:Boolean,emptyDocument:{type:Object,default:()=>({type:"doc",content:[]})},extensions:Array,headings:{default:()=>[1,2,3,4,5,6],type:[Array,Boolean]},inline:Boolean,keys:Object,marks:{type:[Array,Boolean],default:!0},nodes:{type:[Array,Boolean],default:()=>["heading","bulletList","orderedList"]},paste:{type:Function,default:()=>()=>!1},toolbar:{type:Object,default:()=>({inline:!0})},value:{type:String,default:""}}};const Fi=lt({mixins:[Le,Ni],emits:["input"],data(){return{editor:null,json:{},html:this.value,isEmpty:!0}},computed:{characters(){const t=this.$helper.string.stripHTML(this.value??"");return this.$helper.string.unescapeHTML(t).length},isCursorAtEnd(){return this.editor.selectionIsAtEnd},isCursorAtStart(){return this.editor.selectionIsAtStart},toolbarOptions(){return{marks:Array.isArray(this.marks)||!1===this.marks?this.marks:void 0,...this.toolbar,editor:this.editor}}},watch:{value(t,e){t!==e&&t!==this.html&&(this.html=t,this.editor.setContent(this.html),this.isEmpty=this.editor.isEmpty())}},mounted(){this.editor=new gi({autofocus:this.autofocus,content:this.value,editable:!this.disabled,element:this.$el,emptyDocument:this.emptyDocument,parseOptions:{preserveWhitespace:!0},events:{link:t=>{this.$panel.dialog.open({component:"k-link-dialog",props:{value:t.getMarkAttrs("link")},on:{cancel:()=>t.focus(),submit:e=>{this.$panel.dialog.close(),t.command("toggleLink",e)}}})},email:t=>{this.$panel.dialog.open({component:"k-email-dialog",props:{value:this.editor.getMarkAttrs("email")},on:{cancel:()=>t.focus(),submit:e=>{this.$panel.dialog.close(),t.command("toggleEmail",e)}}})},paste:this.paste,update:t=>{if(!this.editor)return;const e=JSON.stringify(this.editor.getJSON());e!==JSON.stringify(this.json)&&(this.json=e,this.isEmpty=t.editor.isEmpty(),this.html=t.editor.getHTML(),this.isEmpty&&(0===t.editor.activeNodes.length||t.editor.activeNodes.includes("paragraph"))&&(this.html=""),this.$emit("input",this.html),this.validate())}},extensions:[...this.createMarks(),...this.createNodes(),new Pi(this.keys),new Bi,new Ti,new qi(this),...this.extensions||[]],inline:this.inline}),this.isEmpty=this.editor.isEmpty(),this.json=this.editor.getJSON(),this.$panel.events.on("click",this.onBlur),this.$panel.events.on("focus",this.onBlur),this.validate(),this.$props.autofocus&&this.focus()},beforeDestroy(){this.editor.destroy(),this.$panel.events.off("click",this.onBlur),this.$panel.events.off("focus",this.onBlur)},methods:{command(t,...e){this.editor.command(t,...e)},createMarks(){return this.filterExtensions({clear:new yi,code:new vi,underline:new Oi,strike:new _i,link:new wi,email:new $i,bold:new bi,italic:new xi,sup:new Si,sub:new Ci,...this.createMarksFromPanelPlugins()},this.marks)},createMarksFromPanelPlugins(){const t=window.panel.plugins.writerMarks??{},e={};for(const s in t)e[s]=Object.create(ki.prototype,Object.getOwnPropertyDescriptors({name:s,...t[s]}));return e},createNodes(){const t=new Mi({text:!0,enter:this.inline});return this.filterExtensions({bulletList:new Ai,orderedList:new Ii,heading:new Di({levels:this.headings}),horizontalRule:new Ei,listItem:new ji,quote:new Li,...this.createNodesFromPanelPlugins()},this.nodes,(e,s)=>((e.includes("bulletList")||e.includes("orderedList"))&&s.push(new ji),!0===this.inline&&(s=s.filter(t=>!0===t.schema.inline)),s.push(t),s))},createNodesFromPanelPlugins(){const t=window.panel.plugins.writerNodes??{},e={};for(const s in t)e[s]=Object.create(di.prototype,Object.getOwnPropertyDescriptors({name:s,...t[s]}));return e},getHTML(){return this.editor.getHTML()},filterExtensions(t,e,s){!1===e?e=[]:!0!==e&&!1!==Array.isArray(e)||(e=Object.keys(t));let i=[];for(const n in t)e.includes(n)&&i.push(t[n]);return"function"==typeof s&&(i=s(e,i)),i},focus(){this.editor.focus()},getSplitContent(){return this.editor.getHTMLStartToSelectionToEnd()},onBlur(t){!1===this.$el.contains(t.target)&&this.$refs.toolbar?.close()},onCommand(t,...e){this.editor.command(t,...e)},async validate(){await new Promise(t=>setTimeout(()=>t(""),50));let t="";!1===this.isEmpty&&this.minlength&&this.charactersthis.maxlength&&(t=this.$t("error.validation.maxlength",{max:this.maxlength})),this.$refs.output?.setCustomValidity(t)}}},function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"direction",rawName:"v-direction"}],ref:"editor",class:["k-writer","k-writer-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-empty":t.isEmpty,"data-placeholder":t.placeholder,spellcheck:t.spellcheck}},[t.editor&&!t.disabled?e("k-writer-toolbar",t._b({ref:"toolbar",on:{command:t.onCommand}},"k-writer-toolbar",t.toolbarOptions,!1)):t._e(),e("textarea",{ref:"output",staticClass:"input-hidden",attrs:{name:t.name,required:t.required,tabindex:"-1"},domProps:{value:t.value}})],1)},[]).exports;class zi extends hi{get schema(){return{content:this.options.nodes.join("|")}}}const Yi={mixins:[Ni],inheritAttrs:!1,props:{nodes:{type:Array,default:()=>["bulletList","orderedList"]}}};const Ri=lt({mixins:[Le,Yi],data(){return{list:this.value,html:this.value}},computed:{listExtensions(){return[new zi({inline:!0,nodes:this.nodes})]}},watch:{value(t){t!==this.html&&(this.list=t,this.html=t)}},methods:{focus(){this.$refs.input.focus()},onInput(t){let e=(new DOMParser).parseFromString(t,"text/html").querySelector("ul, ol");e&&0!==e.textContent.trim().length?(this.list=t,this.html=t.replace(/(

        |<\/p>)/gi,""),this.$emit("input",this.html)):this.$emit("input",this.list="")}}},function(){var t=this;return(0,t._self._c)("k-writer-input",t._b({ref:"input",class:["k-list-input",t.$attrs.class],style:t.$attrs.style,attrs:{extensions:t.listExtensions,value:t.list},on:{input:t.onInput}},"k-writer-input",t.$props,!1))},[]).exports;const Hi=lt({mixins:[ze,Ke,Yi],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-list-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:!1,input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"list"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Ui={props:{disabled:Boolean,html:{type:Boolean},removable:Boolean,theme:{type:String,default:"dark"}}};const Vi=lt({mixins:[Ui],props:{element:String,icon:String,image:{type:Object},link:String,text:String},emits:["remove"],computed:{isRemovable(){return this.removable&&!this.disabled}},methods:{remove(){this.isRemovable&&this.$emit("remove")},focus(){this.$el.focus()}}},function(){var t=this,e=t._self._c;return e(t.element??(t.link?"k-link":"button"),{tag:"component",staticClass:"k-tag",attrs:{"aria-disabled":t.disabled,"data-theme":t.theme,to:t.link,type:"button"},on:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete","Del"])?null:(e.preventDefault(),t.remove.apply(null,arguments))}}},[t._t("image",function(){return[t.image?.src?e("k-image-frame",t._b({staticClass:"k-tag-image"},"k-image-frame",t.image,!1)):t.image||t.icon?e("k-icon-frame",t._b({staticClass:"k-tag-image"},"k-icon-frame",t.image??{icon:t.icon},!1)):t._e()]}),t.text?[t.html?e("span",{staticClass:"k-tag-text",domProps:{innerHTML:t._s(t.text)}}):e("span",{staticClass:"k-tag-text"},[t._v(t._s(t.text))])]:t.$slots.default?[e("span",{staticClass:"k-tag-text"},[t._t("default")],2)]:t._e(),t.isRemovable?e("k-icon-frame",{staticClass:"k-tag-toggle",attrs:{icon:"cancel-small"},nativeOn:{click:function(e){return e.stopPropagation(),t.remove.apply(null,arguments)}}}):t._e()],2)},[]).exports,Ki={mixins:[Ui,X,it],inheritAttrs:!1,props:{element:{type:String,default:"div"},layout:String,sort:{default:!1,type:Boolean},value:{default:()=>[],type:Array}}};const Wi=lt({mixins:[Ki],props:{draggable:{default:!0,type:Boolean}},emits:["edit","input"],data:()=>({tags:[]}),computed:{dragOptions(){return{delay:1,disabled:!this.isDraggable,draggable:".k-tag",handle:".k-tag-text"}},isDraggable(){return!0!==this.sort&&!1!==this.draggable&&0!==this.tags.length&&!0!==this.disabled}},watch:{value:{handler(){let t=this.$helper.object.clone(this.value);if(!0===this.sort){const e=[];for(const s of this.options){const i=t.indexOf(s.value);-1!==i&&(e.push(s),t.splice(i,1))}e.push(...t),t=e}this.tags=t.map(this.tag).filter(t=>t)},immediate:!0}},methods:{edit(t,e,s){!1===this.disabled&&this.$emit("edit",t,e,s)},focus(t="last"){this.$refs.navigate.move(t)},index(t){return this.tags.findIndex(e=>e.value===t.value)},input(){this.$emit("input",this.tags.map(t=>t.value))},navigate(t){this.focus(t)},remove(t){this.tags.length<=1?this.navigate("last"):this.navigate("prev"),this.tags.splice(t,1),this.input()},option(t){return this.options.find(e=>e.value===t.value)},select(){this.focus()},tag(t){"object"!=typeof t&&(t={value:t});const e=this.option(t);return e||{text:this.$helper.string.escapeHTML(t.text??t.value),...t}}}},function(){var t=this,e=t._self._c;return e("k-navigate",{ref:"navigate",attrs:{axis:"list"===t.layout?"y":"x",select:":where(.k-tag, .k-tags-navigatable):not(:disabled)"}},[e("k-draggable",{class:["k-tags",t.$attrs.class],style:t.$attrs.style,attrs:{"data-layout":t.layout,element:t.element,list:t.tags,options:t.dragOptions},on:{end:t.input},scopedSlots:t._u([{key:"footer",fn:function(){return[t._t("default")]},proxy:!0}],null,!0)},t._l(t.tags,function(s,i){return e("k-tag",{key:s.id??s.value??s.text,attrs:{disabled:t.disabled,element:t.element,html:t.html,icon:s.icon,image:s.image,link:s.link,removable:t.removable&&!t.disabled,theme:t.theme,name:"tag"},on:{remove:function(e){return t.remove(i,s)}},nativeOn:{click:function(t){t.stopPropagation()},keypress:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.edit(i,s,e)},dblclick:function(e){return t.edit(i,s,e)}}},[e("span",{domProps:{innerHTML:t._s(s.text)}})])}),1)],1)},[]).exports,Ji={mixins:[st,rt,Ki,Be],props:{value:{default:()=>[],type:Array}},methods:{open(){this.$refs.dropdown.open(this.$el)}}};const Gi=lt({mixins:[Le,Ji]},function(){var t=this,e=t._self._c;return e("div",{class:["k-multiselect-input",t.$attrs.class],style:t.$attrs.style},[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value),anchor:".k-multiselect-input-toggle"}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("k-tags",t._b({ref:"tags",attrs:{removable:!0},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{click:function(e){return e.stopPropagation(),t.open.apply(null,arguments)}}},"k-tags",t.$props,!1),[!t.max||t.value.length({editing:null}),computed:{canAdd(){return!this.max||this.value.length!1===this.value.includes(t.value))},picklist(){return{disabled:this.disabled,create:this.showCreate,ignore:this.ignore,min:this.min,max:this.max,search:this.showSearch}},replacableOptions(){return this.options.filter(t=>!1===this.value.includes(t.value)||t.value===this.editing?.tag.value)},showCreate(){return"options"!==this.accept&&(!this.editing||{submit:this.$t("replace.with")})},showSearch(){return!1!==this.search&&(this.editing?{placeholder:this.$t("replace.with"),...this.search}:"options"===this.accept?{placeholder:this.$t("filter"),...this.search}:this.search)}},methods:{create(t){const e=t.split(this.separator).map(t=>t.trim()),s=this.$helper.object.clone(this.value);for(let i of e)i=this.$refs.tags.tag(i,this.separator),!0===this.isAllowed(i)&&s.push(i.value);this.$emit("input",s),this.$refs.create.close()},async edit(t,e){this.editing={index:t,tag:e},this.$refs.replace.open()},focus(){this.canAdd&&this.$refs.create.open()},isAllowed(t){return"object"==typeof t&&0!==t.value.trim().length&&(!("options"===this.accept&&!this.$refs.tags.option(t))&&!0!==this.value.includes(t.value))},pick(t){this.$emit("input",t),this.$refs.create.close()},replace(t){const{index:e}=this.editing,s=this.$refs.tags.tag(t);if(this.$refs.replace.close(),this.editing=null,!1===this.isAllowed(s))return!1;const i=this.$helper.object.clone(this.value);i.splice(e,1,s.value),this.$emit("input",i),this.$refs.tags.navigate(e)},toggle(t){return!(t.metaKey||t.altKey||t.ctrlKey)&&("ArrowDown"===t.key?(this.$refs.create.open(),void t.preventDefault()):void(String.fromCharCode(t.keyCode).match(/(\w)/g)&&this.$refs.create.open()))}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-tags-input",attrs:{"data-can-add":t.canAdd}},[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("k-tags",t._b({ref:"tags",attrs:{removable:!0},on:{edit:t.edit,input:function(e){return t.$emit("input",e)}},nativeOn:{click:function(e){e.stopPropagation(),t.$refs.toggle?.$el?.click()}}},"k-tags",t.$props,!1),[!t.max||t.value.length({object:{}}),computed:{hasFields(){return this.$helper.object.length(this.fields)>0},isEmpty(){return null===this.object||0===this.$helper.object.length(this.object)}},watch:{value:{handler(t){this.object=this.valueToObject(t)},immediate:!0}},methods:{add(){this.object=this.$helper.field.form(this.fields),this.save(),this.open()},cell(t,e){this.$set(this.object,t,e),this.save()},form(t){const e=this.$helper.field.subfields(this,this.fields);if(t)for(const s in e)e[s].autofocus=s===t;return e},remove(){this.object={},this.save()},open(t){if(this.disabled)return!1;this.$panel.drawer.open({component:"k-form-drawer",props:{breadcrumb:[],icon:"box",tab:"object",tabs:{object:{fields:this.form(t)}},title:this.label,value:this.object},on:{input:t=>{for(const e in t)this.$set(this.object,e,t[e]);this.save()}}})},save(){this.$emit("input",this.object)},valueToObject:t=>"object"!=typeof t?{}:t}},function(){var t=this,e=t._self._c;return e("k-field",t._b({staticClass:"k-object-field",attrs:{input:t.id},scopedSlots:t._u([!t.disabled&&t.hasFields?{key:"options",fn:function(){return[t.isEmpty?e("k-button",{attrs:{id:t.id,icon:"add",size:"xs",variant:"filled"},on:{click:t.add}}):e("k-button",{attrs:{icon:"remove",size:"xs",variant:"filled"},on:{click:t.remove}})]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[t.hasFields?[t.isEmpty?e("k-empty",{attrs:{icon:"box"},on:{click:t.add}},[t._v(" "+t._s(t.empty??t.$t("field.object.empty"))+" ")]):e("table",{staticClass:"k-table k-object-field-table",attrs:{"aria-disabled":t.disabled}},[e("tbody",[t._l(t.fields,function(s){return[s.saveable&&t.$helper.field.isVisible(s,t.value)?e("tr",{key:s.name,on:{click:function(e){return t.open(s.name)}}},[e("th",{attrs:{"data-has-button":"","data-mobile":"true"}},[e("button",{attrs:{type:"button"}},[t._v(t._s(s.label))])]),e("k-table-cell",{attrs:{column:s,field:s,mobile:!0,value:t.object[s.name]},on:{input:function(e){return t.cell(s.name,e)}}})],1):t._e()]})],2)])]:[e("k-empty",{attrs:{icon:"box"}},[t._v(t._s(t.$t("fields.empty")))])],e("input",{staticClass:"input-hidden",attrs:{type:"checkbox",required:t.required},domProps:{checked:!t.isEmpty}})],2)},[]).exports;const rn=lt({extends:Rs,type:"pages",computed:{emptyProps(){return{icon:"page",text:this.empty??(this.multiple&&1!==this.max?this.$t("field.pages.empty"):this.$t("field.pages.empty.single"))}}}},null,null).exports,an={mixins:[Ds],props:{autocomplete:{type:String,default:"new-password"}}};const ln=lt({mixins:[Es,an]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-password-input",attrs:{type:"password"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const cn=lt({mixins:[ze,Ke,an,As],inheritAttrs:!1,props:{minlength:{type:Number,default:8},icon:{type:String,default:"key"}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-password-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"password"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,un={mixins:[Ie,it],props:{columns:{default:1,type:Number},reset:{default:!0,type:Boolean},theme:String,value:[String,Number,Boolean]}};const pn=lt({mixins:[Le,un],computed:{choices(){const t=this.options.some(t=>t.icon);return this.options.map((e,s)=>({autofocus:this.autofocus&&0===s,checked:this.value===e.value,disabled:this.disabled||e.disabled,id:`${this.id}-${s}`,icon:e.icon??(t?"blank":null),info:e.info,label:e.text,name:this.name??this.id,type:"radio",value:e.value}))}},methods:{focus(){this.$el.querySelector("input")?.focus()},select(){this.focus()},toggle(t){t===this.value&&this.reset&&!this.required&&this.$emit("input","")}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-radio-input",t.$attrs.class],style:t.$attrs.style,attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("k-input-validator",{attrs:{required:t.required,value:JSON.stringify(t.value)}},[e("ul",{staticClass:"k-grid",style:{"--columns":t.columns},attrs:{"data-variant":"choices"}},t._l(t.choices,function(s,i){return e("li",{key:i},[e("k-choice-input",t._b({on:{click:function(e){return t.toggle(s.value)},input:function(e){return t.$emit("input",s.value)}}},"k-choice-input",s,!1))],1)}),0)])],1)},[]).exports;const dn=lt({mixins:[ze,Ke,un],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-radio-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id+"-0"}},"k-field",t.$props,!1),[t.options?.length?e("k-radio-input",t._b({ref:"input",on:{input:function(e){return t.$emit("input",e)}}},"k-radio-input",t.$props,!1)):e("k-empty",{attrs:{text:t.$t("options.none"),icon:"checklist"}})],1)},[]).exports,hn={mixins:[Ie],props:{default:[Number,String],max:{type:Number,default:100},min:{type:Number,default:0},step:{type:[Number,String],default:1},tooltip:{type:[Boolean,Object],default:()=>({before:null,after:null})},value:[Number,String]}};const mn=lt({mixins:[Le,hn],computed:{baseline(){return this.min<0?0:this.min},isEmpty(){return""===this.value||void 0===this.value||null===this.value},label(){return this.required||this.value||0===this.value?this.format(this.position):"–"},maxLength(){return Math.max(this.format(this.min).length,this.format(this.max).length)},position(){return this.value||0===this.value?this.value:this.default??this.baseline}},watch:{value:{handler(){this.validate()},immediate:!0}},mounted(){this.$props.autofocus&&this.focus()},methods:{focus(){this.$el.querySelector("input")?.focus()},format(t){const e=document.lang?document.lang.replace("_","-"):"en",s=this.step.toString().split("."),i=s.length>1?s[1].length:0;return new Intl.NumberFormat(e,{minimumFractionDigits:i}).format(t)},onInput(t){this.$emit("input",t)},validate(){const t=[];this.required&&!0===this.isEmpty&&t.push(this.$t("error.validation.required")),!1===this.isEmpty&&this.min&&this.valuethis.max&&t.push(this.$t("error.validation.max",{max:this.max})),this.$refs.range?.setCustomValidity(t.join(", "))}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-range-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled}},[e("input",t._b({ref:"range",attrs:{type:"range"},domProps:{value:t.position},on:{input:function(e){return t.$emit("input",e.target.valueAsNumber)}}},"input",{autofocus:t.autofocus,disabled:t.disabled,id:t.id,max:t.max,min:t.min,name:t.name,required:t.required,step:t.step},!1)),t.tooltip?e("output",{staticClass:"k-range-input-tooltip",attrs:{for:t.id}},[t.tooltip.before?e("span",{staticClass:"k-range-input-tooltip-before"},[t._v(t._s(t.tooltip.before))]):t._e(),e("span",{staticClass:"k-range-input-tooltip-text",style:`--digits: ${t.maxLength}ch`},[t._v(" "+t._s(t.label)+" ")]),t.tooltip.after?e("span",{staticClass:"k-range-input-tooltip-after"},[t._v(t._s(t.tooltip.after))]):t._e()]):t._e()])},[]).exports;const fn=lt({mixins:[Ke,ze,hn],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-range-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"range"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,gn={mixins:[Ie,it,ot],props:{ariaLabel:String,value:{type:[String,Number,Boolean],default:""}}};const kn=lt({mixins:[Le,gn],emits:["click","input"],computed:{empty(){return this.placeholder??"—"},hasEmptyOption(){return!this.required||this.isEmpty},isEmpty(){return null===this.value||void 0===this.value||""===this.value},label(){const t=this.text(this.value);return this.isEmpty||null===t?this.empty:t}},mounted(){this.$props.autofocus&&this.focus()},methods:{focus(){this.$refs.input.focus()},onClick(t){t.stopPropagation(),this.$emit("click",t)},select(){this.focus()},text(t){let e=null;for(const s of this.options)s.value==t&&(e=s.text);return e}}},function(){var t=this,e=t._self._c;return e("span",{class:["k-select-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-empty":t.isEmpty}},[e("select",{ref:"input",staticClass:"k-select-input-native",attrs:{id:t.id,autofocus:t.autofocus,"aria-label":t.ariaLabel,disabled:t.disabled,name:t.name,required:t.required},domProps:{value:t.value},on:{change:function(e){return t.$emit("input",e.target.value)},click:t.onClick}},[t.hasEmptyOption?e("option",{attrs:{disabled:t.required,value:""}},[t._v(" "+t._s(t.empty)+" ")]):t._e(),t._l(t.options,function(s){return e("option",{key:s.value,attrs:{disabled:s.disabled},domProps:{value:s.value}},[t._v(" "+t._s(s.text)+" ")])})],2),t._v(" "+t._s(t.label)+" ")])},[]).exports;const bn=lt({mixins:[ze,Ke,gn],inheritAttrs:!1,props:{icon:{type:String,default:"angle-down"}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-select-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"select"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,yn={mixins:[Ds],props:{autocomplete:null,spellcheck:null,allow:{type:String,default:""},formData:{type:Object,default:()=>({})},sync:{type:String}}};const vn=lt({extends:Es,mixins:[yn],data(){return{slug:this.sluggify(this.value),slugs:this.$panel.language.rules??this.$panel.system.slugs,syncValue:null}},watch:{formData:{handler(t){return!this.disabled&&(!(!this.sync||void 0===t[this.sync])&&(t[this.sync]!=this.syncValue&&(this.syncValue=t[this.sync],void this.onInput(this.sluggify(this.syncValue)))))},deep:!0,immediate:!0},value:{handler(t){(t=this.sluggify(t))!==this.slug&&(this.slug=t,this.$emit("input",this.slug))},immediate:!0}},methods:{sluggify(t){return this.$helper.slug(t,[this.slugs,this.$panel.system.ascii],this.allow)},onInput(t){this.slug=this.sluggify(t),this.$emit("input",this.slug)}}},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-slug-input",attrs:{spellcheck:!1,value:t.slug,autocomplete:"off"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const $n=lt({mixins:[ze,Ke,yn],inheritAttrs:!1,props:{icon:{type:String,default:"url"},path:{type:String},wizard:{type:[Boolean,Object],default:!1}},data(){return{slug:this.value}},computed:{preview(){return void 0!==this.help?this.help:void 0!==this.path?this.path+this.value:null}},watch:{value(){this.slug=this.value}},methods:{focus(){this.$refs.input.focus()},onWizard(){let t=this.wizard?.field;if(t){const e=this.formData[t.toLowerCase()];e&&(this.slug=e)}}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-slug-field",t.$attrs.class],style:t.$attrs.style,attrs:{help:t.preview,input:t.id},scopedSlots:t._u([t.wizard&&t.wizard.text?{key:"options",fn:function(){return[e("k-button",{attrs:{text:t.wizard.text,icon:"sparkling",size:"xs",variant:"filled"},on:{click:t.onWizard}})]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{value:t.slug,type:"slug"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,xn={props:{reports:{type:Array,default:()=>[]},size:{type:String,default:"large"}}};const wn=lt({mixins:[xn]},function(){var t=this,e=t._self._c;return t.reports.length>0?e("dl",{staticClass:"k-stats",attrs:{"data-size":t.size}},t._l(t.reports,function(s,i){return e("k-stat",t._b({key:i},"k-stat",s,!1))}),1):e("k-empty",{attrs:{icon:"chart"}},[t._v(t._s(t.$t("stats.empty")))])},[]).exports;const _n=lt({mixins:[G,X,Z,st,xn]},function(){var t=this,e=t._self._c;return e("k-field",{attrs:{id:t.id,help:t.help,input:!1,label:t.label,name:t.name,type:"stats"}},[e("k-stats",{attrs:{reports:t.reports,size:t.size}})],1)},[]).exports,Sn={data:()=>({isSelecting:!1,selected:[]}),created(){this.$events.on(this.batchEditingEvent,this.stopSelectingCollision)},destroyed(){this.$events.off(this.batchEditingEvent,this.stopSelectingCollision)},computed:{batchDeleteConfirmMessage(){return this.$t(`${this.type}.delete.confirm.selected`,{count:this.selected.length})},batchEditingButtons(){const t=[];return t.push({disabled:0===this.selected.length,icon:"trash",text:this.$t("delete")+` (${this.selected.length})`,theme:"negative",click:()=>{this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.batchDeleteConfirmMessage},on:{submit:async()=>{this.$panel.dialog.close(),0!==this.selected.length&&(await this.onBatchDelete(),this.stopSelecting())}}})},responsive:!0}),t.push({icon:"cancel",text:this.$t("cancel"),click:this.onSelectToggle,responsive:!0}),t},batchEditingEvent:()=>"selecting",batchEditingIdentifier:()=>"id",batchEditingToggle(){return{icon:"checklist",click:this.onSelectToggle,title:this.$t("select"),responsive:!0}},canSelect:()=>!0},methods:{onBatchDelete(){throw new Error("Not implemented")},onSelect(t){this.selected.includes(t)?this.selected=this.selected.filter(e=>e[this.batchEditingIdentifier]!==t[this.batchEditingIdentifier]):this.selected.push(t)},onSelectToggle(){this.isSelecting?this.stopSelecting():this.startSelecting()},startSelecting(){this.isSelecting=!0,this.selected=[],this.$events.emit(this.batchEditingEvent,this.name)},stopSelecting(){this.isSelecting=!1,this.selected=[]},stopSelectingCollision(t){t!==this.name&&this.stopSelecting()}}};const Cn=lt({mixins:[ze,Sn],inheritAttrs:!1,props:{autofocus:Boolean,batch:{type:Boolean,default:!1},columns:Object,duplicate:{type:Boolean,default:!0},empty:String,fields:[Array,Object],limit:Number,max:Number,min:Number,prepend:{type:Boolean,default:!1},sortable:{type:Boolean,default:!0},sortBy:String,value:{type:Array,default:()=>[]}},data:()=>({items:[],page:1}),computed:{batchDeleteConfirmMessage(){return this.$t("field.structure.delete.confirm.selected",{count:this.selected.length})},batchEditingEvent:()=>"structure.selecting",batchEditingIdentifier:()=>"_id",canSelect(){return!0===this.batch&&this.items.length>0},index(){return this.limit?(this.page-1)*this.limit+1:1},hasFields(){return this.$helper.object.length(this.fields)>0},isSortable(){return!this.sortBy&&(!this.limit&&(!0!==this.disabled&&(!(this.items.length<=1)&&!1!==this.sortable)))},more(){return!0!==this.disabled&&!(this.max&&this.items.length>=this.max)},options(){return this.disabled?[]:[{icon:"edit",text:this.$t("edit"),click:"edit"},{disabled:!this.duplicate||!this.more,icon:"copy",text:this.$t("duplicate"),click:"duplicate"},"-",{icon:"trash",text:this.$t("delete"),click:"remove"}]},paginatedItems(){return this.limit?this.items.slice(this.pagination.offset,this.pagination.offset+this.limit):this.items},pagination(){let t=0;return this.limit&&(t=(this.page-1)*this.limit),{page:this.page,offset:t,limit:this.limit,total:this.items.length,align:"center",details:!0}}},watch:{value:{handler(t){this.stopSelecting(),t!==this.items&&(this.items=this.toItems(t))},immediate:!0}},methods:{add(t=null){if(!1===this.more)return!1;t??=this.$helper.field.form(this.fields),t._id??=this.$helper.uuid(),!0===this.prepend?this.items.unshift(t):this.items.push(t),this.save(),this.open(t)},close(){this.$panel.drawer.close(this.id)},focus(){this.$refs.add?.focus?.()},form(t){const e=this.$helper.field.subfields(this,this.fields);if(t)for(const s in e)e[s].autofocus=s===t;return e},findIndex(t){return this.items.findIndex(e=>e._id===t._id)},navigate(t,e){const s=this.findIndex(t);-1!==s&&this.open(this.items[s+e],null,!0)},open(t,e,s=!1){const i=this.findIndex(t);if(-1===i)return!1;this.stopSelecting(),this.$panel.drawer.open({component:"k-structure-drawer",id:this.id,props:{disabled:this.disabled,icon:this.icon??"list-bullet",next:this.items[i+1],prev:this.items[i-1],tabs:{content:{fields:this.form(e)}},title:this.label,value:t},replace:s,on:{input:e=>{const s=this.findIndex(t);this.$panel.drawer.props.next=this.items[s+1],this.$panel.drawer.props.prev=this.items[s-1],this.$set(this.items,s,e),this.save()},next:()=>{this.navigate(t,1)},prev:()=>{this.navigate(t,-1)},remove:()=>{this.remove(t)}}})},option(t,e){switch(t){case"remove":this.remove(e);break;case"duplicate":this.add({...this.$helper.object.clone(e),_id:this.$helper.uuid()});break;case"edit":this.open(e)}},onBatchDelete(){this.removeSelected()},onTableInput(t){this.limit&&(t=this.items.toSpliced(this.pagination.offset,this.limit,...t)),this.save(t)},paginate({page:t}){this.page=t,this.stopSelecting()},remove(t){const e=this.findIndex(t);this.disabled||-1===e||this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.structure.delete.confirm")},on:{submit:()=>{this.items.splice(e,1),this.save(),this.$panel.dialog.close(),this.close(),0===this.paginatedItems.length&&this.page>1&&this.page--}}})},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.structure.delete.confirm.all")},on:{submit:()=>{this.page=1,this.items=[],this.save(),this.$panel.dialog.close()}}})},removeSelected(){this.items=this.items.filter(t=>!this.selected.includes(t)),this.save()},save(t=this.items){this.$emit("input",t)},sort(t){return this.sortBy?this.$helper.array.sortBy(t,this.sortBy):t},toItems(t){return!1===Array.isArray(t)?[]:(t=t.map(t=>({_id:t._id??this.$helper.uuid(),...t})),this.sort(t))}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-structure-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},nativeOn:{click:function(t){t.stopPropagation()}},scopedSlots:t._u([t.hasFields&&!t.disabled?{key:"options",fn:function(){return[t.isSelecting?e("k-button-group",{attrs:{buttons:t.batchEditingButtons,size:"xs",variant:"filled"}}):e("k-button-group",[t.canSelect?[e("k-button",t._b({attrs:{size:"xs",variant:"filled"}},"k-button",t.batchEditingToggle,!1))]:t._e(),e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{attrs:{autofocus:t.autofocus,disabled:!t.more,responsive:!0,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.add()}}}),e("k-button",{attrs:{icon:"dots",size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:[{click:()=>t.add(),disabled:!t.more,icon:"add",text:t.$t("add")},{click:()=>t.removeAll(),disabled:0===t.items.length||t.disabled,icon:"trash",text:t.$t("delete.all")}],"align-x":"end"}})],1)],2)]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.items)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[t.hasFields?[0===t.items.length?e("k-empty",{attrs:{icon:"list-bullet"},on:{click:function(e){return t.add()}}},[t._v(" "+t._s(t.empty??t.$t("field.structure.empty"))+" ")]):[e("k-table",{attrs:{columns:t.columns,disabled:t.disabled,fields:t.fields,empty:t.$t("field.structure.empty"),index:t.index,options:t.options,pagination:!(!t.limit||t.isSelecting)&&t.pagination,rows:t.paginatedItems,selecting:t.isSelecting,sortable:t.isSortable},on:{cell:function(e){return t.open(e.row,e.columnIndex)},input:t.onTableInput,option:t.option,paginate:t.paginate,select:t.onSelect}}),t.more?e("footer",[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.add()}}})],1):t._e()]]:[e("k-empty",{attrs:{icon:"list-bullet"}},[t._v(t._s(t.$t("fields.empty")))])]],2)],1)},[]).exports,On={mixins:[Ds],props:{autocomplete:{default:"tel"},placeholder:{default:()=>window.panel.t("tel.placeholder")}}};const An=lt({mixins:[Es,On]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-tel-input",attrs:{type:"tel"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const Mn=lt({mixins:[ze,Ke,On],inheritAttrs:!1,props:{icon:{type:String,default:"phone"}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-tel-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"tel"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Dn={mixins:[Ds]};const En=lt({mixins:[Es,Dn]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({class:["k-text-input",t.$attrs.class],attrs:{type:"text"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const jn=lt({mixins:[ze,Ke,Dn,As],inheritAttrs:!1,computed:{inputType(){return this.$helper.isComponent(`k-${this.type}-input`)?this.type:"text"}},methods:{focus(){this.$refs.input.focus()},select(){this.$refs.input.select()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-text-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:t.inputType},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,In={props:{buttons:{type:[Array,Boolean],default:!0},uploads:[Boolean,Object,Array]}};const Ln=lt({mixins:[In],emits:["command"],computed:{commands(){return{headlines:{label:this.$t("toolbar.button.headings"),icon:"title",dropdown:[{label:this.$t("toolbar.button.heading.1"),icon:"h1",click:()=>this.command("prepend","#")},{label:this.$t("toolbar.button.heading.2"),icon:"h2",click:()=>this.command("prepend","##")},{label:this.$t("toolbar.button.heading.3"),icon:"h3",click:()=>this.command("prepend","###")}]},bold:{label:this.$t("toolbar.button.bold"),icon:"bold",click:()=>this.command("toggle","**"),shortcut:"b"},italic:{label:this.$t("toolbar.button.italic"),icon:"italic",click:()=>this.command("toggle","*"),shortcut:"i"},link:{label:this.$t("toolbar.button.link"),icon:"url",click:()=>this.command("dialog","link"),shortcut:"k"},email:{label:this.$t("toolbar.button.email"),icon:"email",click:()=>this.command("dialog","email"),shortcut:"e"},file:{label:this.$t("toolbar.button.file"),icon:"attachment",click:()=>this.command("file"),dropdown:this.uploads?[{label:this.$t("toolbar.button.file.select"),icon:"check",click:()=>this.command("file")},{label:this.$t("toolbar.button.file.upload"),icon:"upload",click:()=>this.command("upload")}]:void 0},code:{label:this.$t("toolbar.button.code"),icon:"code",click:()=>this.command("toggle","`")},ul:{label:this.$t("toolbar.button.ul"),icon:"list-bullet",click:()=>this.command("insert",(t,e)=>e.split("\n").map(t=>"- "+t).join("\n"))},ol:{label:this.$t("toolbar.button.ol"),icon:"list-numbers",click:()=>this.command("insert",(t,e)=>e.split("\n").map((t,e)=>e+1+". "+t).join("\n"))}}},default:()=>["headlines","|","bold","italic","code","|","link","email","file","|","ul","ol"],layout(){if(!1===this.buttons)return[];const t=[],e=Array.isArray(this.buttons)?this.buttons:this.default,s={...this.commands,...window.panel.plugins.textareaButtons??{}};for(const i of e)if("|"===i)t.push("|");else if(s[i]){const e={...s[i],click:()=>{s[i].click?.call(this)}};t.push(e)}return t}},methods:{close(){this.$refs.toolbar.close()},command(t,...e){this.$emit("command",t,...e)},shortcut(t,e){const s=this.layout.find(e=>e.shortcut===t);s&&(e.preventDefault(),s.click?.())}}},function(){return(0,this._self._c)("k-toolbar",{ref:"toolbar",staticClass:"k-textarea-toolbar",attrs:{buttons:this.layout}})},[]).exports,Bn={mixins:[In,Ie,J,tt,et,ot,at],props:{endpoints:Object,preselect:Boolean,size:String,value:String}};const Tn=lt({mixins:[Le,Bn],emits:["focus","input","submit"],data:()=>({over:!1,selectionRange:null}),computed:{uploadOptions(){return{url:this.$panel.urls.api+"/"+this.endpoints.field+"/upload",multiple:!1,on:{cancel:async()=>await this.restoreSelection(),done:async t=>{await this.restoreSelection(),await this.insertUpload(t)}}}}},watch:{async value(){await this.$nextTick(),this.$library.autosize.update(this.$refs.input)}},async mounted(){await this.$nextTick(),this.$library.autosize(this.$refs.input),this.$props.autofocus&&this.focus(),this.$props.preselect&&this.select()},methods:{dialog(t){this.$panel.dialog.open({component:"k-toolbar-"+t+"-dialog",props:{value:this.parseSelection()},on:{cancel:async()=>await this.restoreSelection(),submit:async t=>{this.$panel.dialog.close(),await this.restoreSelection(),await this.insert(t)}}})},file(){this.$panel.dialog.open({component:"k-files-dialog",props:{endpoint:this.endpoints.field+"/files",multiple:!1},on:{cancel:async()=>await this.restoreSelection(),submit:async t=>{this.$panel.dialog.close(),await this.restoreSelection(),await this.insertFile(t)}}})},focus(){this.$refs.input.focus()},async insert(t){const e=this.$refs.input,s=e.value;if("function"==typeof t&&(t=t(e,this.selection())),this.focus(),document.execCommand("insertText",!1,t),e.value===s&&this.selectionRange){const{start:s,end:i}=this.selectionRange,n=s===i?"end":"select";e.setRangeText(t,s,i,n)}return this.$emit("input",e.value),e.value},async insertFile(t){t?.length>0&&await this.insert(t.map(t=>t.dragText).join("\n\n"))},async insertUpload(t){await this.insertFile(t),await this.$panel.content.update()},onCommand(t,...e){if("function"!=typeof this[t])return console.warn(t+" is not a valid command");this[t](...e)},onDrop(t){if(this.uploads&&this.$helper.isUploadEvent(t))return this.$panel.upload.open(t.dataTransfer.files,this.uploadOptions);"text"===this.$panel.drag.type&&(this.focus(),this.insert(this.$panel.drag.data))},onFocus(t){this.$emit("focus",t)},onInput(t){this.$emit("input",t.target.value)},onOut(){this.$refs.input.blur(),this.over=!1},onOver(t){if(this.uploads&&this.$helper.isUploadEvent(t))return t.dataTransfer.dropEffect="copy",this.focus(),void(this.over=!0);"text"===this.$panel.drag.type&&(t.dataTransfer.dropEffect="copy",this.focus(),this.over=!0)},onSelectionChange(){this.selectionRange={start:this.$refs.input.selectionStart,end:this.$refs.input.selectionEnd}},onShortcut(t){!1!==this.buttons&&"Meta"!==t.key&&"Control"!==t.key&&this.$refs.toolbar?.shortcut(t.key,t)},onSubmit(t){return this.$emit("submit",t)},parseSelection(){const t=this.selection();if(0===t?.length)return{href:null,title:null};let e;e=this.$panel.config.kirbytext?/^\(link:\s*(?.*?)(?:\s*text:\s*(?.*?))?\)$/is:/^(\[(?.*?)\]\((?.*?)\))|(<(?.*?)>)$/is;const s=e.exec(t);return null!==s?{href:s.groups.url??s.groups.link,title:s.groups.text??null}:{href:null,title:t}},async prepend(t){return this.insert(t+" "+this.selection())},async restoreSelection(){this.selectionRange&&this.$refs.input.setSelectionRange(this.selectionRange.start,this.selectionRange.end),await this.$nextTick()},restoreSelectionCallback(){return async t=>{await this.restoreSelection(),t&&t()}},select(){this.$refs.select()},selection(){if(!this.selectionRange)return"";const{start:t,end:e}=this.selectionRange;return this.$refs.input.value.substring(t,e)},async toggle(t,e){e??=t;const s=this.selection();return s.startsWith(t)&&s.endsWith(e)?this.insert(s.slice(t.length).slice(0,s.length-t.length-e.length)):this.wrap(t,e)},upload(){this.$panel.upload.pick(this.uploadOptions)},async wrap(t,e){e??=t,await this.insert(t+this.selection()+e)}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-textarea-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-over":t.over,"data-size":t.size}},[e("div",{staticClass:"k-textarea-input-wrapper"},[t.buttons&&!t.disabled?e("k-textarea-toolbar",{ref:"toolbar",attrs:{buttons:t.buttons,disabled:t.disabled,uploads:t.uploads},on:{command:t.onCommand},nativeOn:{mousedown:function(t){t.preventDefault()}}}):t._e(),e("textarea",t._b({directives:[{name:"direction",rawName:"v-direction"}],ref:"input",staticClass:"k-textarea-input-native",attrs:{"data-font":t.font},on:{click:function(e){t.$refs.toolbar?.close()},focus:t.onFocus,input:t.onInput,keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:e.metaKey?t.onSubmit.apply(null,arguments):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:e.ctrlKey?t.onSubmit.apply(null,arguments):null},function(e){return e.metaKey?e.ctrlKey||e.shiftKey||e.altKey?null:t.onShortcut.apply(null,arguments):null},function(e){return e.ctrlKey?e.shiftKey||e.altKey||e.metaKey?null:t.onShortcut.apply(null,arguments):null}],dragover:t.onOver,dragleave:t.onOut,drop:t.onDrop,selectionchange:t.onSelectionChange}},"textarea",{autofocus:t.autofocus,disabled:t.disabled,id:t.id,minlength:t.minlength,name:t.name,placeholder:t.placeholder,required:t.required,spellcheck:t.spellcheck,value:t.value},!1))],1)])},[]).exports;const Pn=lt({mixins:[ze,Ke,Bn,As],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-textarea-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"textarea"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,qn={props:{max:String,min:String,value:String}},Nn={mixins:[qn],props:{display:{type:String,default:"HH:mm"},step:{type:Object,default:()=>({size:5,unit:"minute"})},type:{type:String,default:"time"}}};const Fn=lt({mixins:[Ps,Nn],computed:{inputType:()=>"time"}},null,null).exports;const zn=lt({mixins:[ze,Ke,Nn],inheritAttrs:!1,props:{icon:{type:String,default:"clock"},times:{type:Boolean,default:!0}},methods:{focus(){this.$refs.input.focus()},select(t){this.$emit("input",t),this.$refs.times?.close()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-time-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"time"},on:{input:function(e){return t.$emit("input",e??"")},submit:function(e){return t.$emit("submit")}},scopedSlots:t._u([t.times?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{disabled:t.disabled,icon:t.icon??"clock",title:t.$t("time.select")},on:{click:function(e){return t.$refs.times.toggle()}}}),e("k-dropdown-content",{ref:"times",attrs:{"align-x":"end"}},[e("k-timeoptions-input",{attrs:{display:t.display,value:t.value},on:{input:t.select}})],1)]},proxy:!0}:null],null,!0)},"k-input",t.$props,!1))],1)},[]).exports,Yn={mixins:[Ie],props:{checked:{type:Boolean},info:{type:String},icon:{type:String},label:{type:String},type:{default:"checkbox",type:String},value:{type:[Boolean,Number,String]},variant:{type:String}}};const Rn=lt({mixins:[Le,Yn],emits:["click","input"]},function(){var t=this,e=t._self._c;return e("label",{class:["k-choice-input",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-disabled":t.disabled}},[e("input",t._b({class:["invisible"===t.variant?"sr-only":null,t.$attrs.class],attrs:{"data-variant":t.variant},on:{click:function(e){return t.$emit("click",e)},input:function(e){return t.$emit("input",e.target.checked)}}},"input",{autofocus:t.autofocus,id:t.id,checked:t.checked,disabled:t.disabled,name:t.name,required:t.required,type:t.type,value:t.value},!1)),t.icon?e("k-icon",{staticClass:"k-choice-input-icon",attrs:{type:t.icon}}):t._e(),t.label||t.info?e("span",{staticClass:"k-choice-input-label"},[e("span",{staticClass:"k-choice-input-label-text",domProps:{innerHTML:t._s(t.label)}}),t.info?e("span",{staticClass:"k-choice-input-label-info",domProps:{innerHTML:t._s(t.info)}}):t._e()]):t._e()],1)},[]).exports,Hn={mixins:[Yn],props:{text:{type:[Array,String]},value:Boolean}};const Un=lt({mixins:[Le,Hn],computed:{labelText(){const t=this.text??[this.$t("off"),this.$t("on")];return Array.isArray(t)?this.value?t[1]:t[0]:t}},mounted(){this.$props.autofocus&&this.focus()},methods:{onEnter(t){"Enter"===t.key&&this.$el.click()},onInput(t){this.$emit("input",t)},select(){this.$el.focus()}}},function(){var t=this;return(0,t._self._c)("k-choice-input",t._b({class:["k-toggle-input",t.$attrs.class],style:t.$attrs.style,attrs:{checked:t.value,disabled:t.disabled,icon:void 0,label:t.labelText,type:"checkbox",variant:"toggle"},on:{input:function(e){return t.$emit("input",e)}}},"k-choice-input",t.$props,!1))},[]).exports;const Vn=lt({mixins:[ze,Ke,Hn],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-toggle-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"toggle"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Kn={mixins:[Ie],props:{columns:Number,grow:Boolean,labels:Boolean,options:Array,reset:Boolean,value:[String,Number,Boolean]}};const Wn=lt({mixins:[Le,Kn],mounted(){this.$props.autofocus&&this.focus()},methods:{focus(){(this.$el.querySelector("input[checked]")||this.$el.querySelector("input"))?.focus()},onClick(t){t===this.value&&this.reset&&!this.required&&this.$emit("input","")},onInput(t){this.$emit("input",t)},select(){this.focus()}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-toggles-input",t.$attrs.class],style:t.$attrs.style,attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("k-input-validator",{attrs:{required:t.required,value:JSON.stringify(t.value)}},[e("ul",{style:{"--options":t.columns??t.options.length},attrs:{"data-labels":t.labels}},t._l(t.options,function(s,i){return e("li",{key:i},[e("input",{staticClass:"input-hidden",attrs:{id:t.id+"-"+i,"aria-label":s.text,disabled:t.disabled,name:t.id,type:"radio"},domProps:{value:s.value,checked:t.value===s.value},on:{click:function(e){return t.onClick(s.value)},change:function(e){return t.onInput(s.value)}}}),e("label",{attrs:{for:t.id+"-"+i,title:s.text}},[s.icon?e("k-icon",{attrs:{type:s.icon}}):t._e(),t.labels||!s.icon?e("span",{staticClass:"k-toggles-text",domProps:{innerHTML:t._s(s.text)}}):t._e()],1)])}),0)])],1)},[]).exports;const Jn=lt({mixins:[ze,Ke,Kn],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()},onInput(t){this.$emit("input",t)}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-toggles-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[t.options?.length?e("k-input",t._b({ref:"input",class:{grow:t.grow},attrs:{type:"toggles"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1)):e("k-empty",{attrs:{text:t.$t("options.none"),icon:"checklist"}})],1)},[]).exports,Gn={mixins:[Ds],props:{autocomplete:{type:String,default:"url"},placeholder:{type:String,default:()=>window.panel.t("url.placeholder")}}};const Xn=lt({mixins:[Es,Gn],watch:{value:{handler(){this.validate()},immediate:!0}},methods:{validate(){const t=[];this.value&&!1===this.$helper.url.isUrl(this.value,!0)&&t.push(this.$t("error.validation.url")),this.$el?.setCustomValidity(t.join(", "))}}},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-url-input",attrs:{type:"url"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const Zn=lt({mixins:[ze,Ke,Gn],inheritAttrs:!1,props:{link:{type:Boolean,default:!0},icon:{type:String,default:"url"}},computed:{isValidUrl(){return""!==this.value&&!0===this.$helper.url.isUrl(this.value,!0)}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-url-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"url"},on:{input:function(e){return t.$emit("input",e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.link&&t.isValidUrl?e("k-button",{staticClass:"k-input-icon-button",attrs:{icon:t.icon,link:t.value,title:t.$t("open"),tabindex:"-1",target:"_blank"}}):t._e()]},proxy:!0}])},"k-input",t.$props,!1))],1)},[]).exports;const Qn=lt({extends:Rs,type:"users",computed:{emptyProps(){return{icon:"users",text:this.empty??(this.multiple&&1!==this.max?this.$t("field.users.empty"):this.$t("field.users.empty.single"))}}}},null,null).exports;const to=lt({mixins:[ze,Ke,Ni,As],inheritAttrs:!1,computed:{counterValue(){const t=this.$helper.string.stripHTML(this.value??"");return this.$helper.string.unescapeHTML(t)}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-writer-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{after:t.after,before:t.before,icon:t.icon,type:"writer"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,eo={install(t){t.component("k-blocks-field",Ss),t.component("k-checkboxes-field",Ms),t.component("k-color-field",Ls),t.component("k-date-field",qs),t.component("k-email-field",zs),t.component("k-entries-field",Ys),t.component("k-files-field",Hs),t.component("k-gap-field",Us),t.component("k-headline-field",Vs),t.component("k-info-field",Ks),t.component("k-layout-field",ti),t.component("k-line-field",ei),t.component("k-link-field",si),t.component("k-list-field",Hi),t.component("k-multiselect-field",tn),t.component("k-number-field",nn),t.component("k-object-field",on),t.component("k-pages-field",rn),t.component("k-password-field",cn),t.component("k-radio-field",dn),t.component("k-range-field",fn),t.component("k-select-field",bn),t.component("k-slug-field",$n),t.component("k-stats-field",_n),t.component("k-structure-field",Cn),t.component("k-tags-field",Qi),t.component("k-text-field",jn),t.component("k-textarea-field",Pn),t.component("k-tel-field",Mn),t.component("k-time-field",zn),t.component("k-toggle-field",Vn),t.component("k-toggles-field",Jn),t.component("k-url-field",Zn),t.component("k-users-field",Qn),t.component("k-writer-field",to)}},so={mixins:[hn],props:{max:null,min:null,step:{default:.01,type:Number},tooltip:{default:!1,type:[Boolean,Object]}}};const io=lt({mixins:[mn,so]},function(){var t=this;return(0,t._self._c)("k-range-input",t._b({staticClass:"k-alpha-input",attrs:{min:0,max:1},on:{input:function(e){return t.$emit("input",e)}}},"k-range-input",t.$props,!1))},[]).exports,no=["sun","mon","tue","wed","thu","fri","sat"];const oo=lt({mixins:[Ie,Bs],data(){const t=this.$library.dayjs();return{maxdate:null,mindate:null,month:t.month(),selected:null,today:t,year:t.year()}},computed:{numberOfDays(){return this.toDate().daysInMonth()},firstWeekday(){const t=no[this.toDate().day()];return this.weekdays.indexOf(t)},weekdays(){const t=this.$panel.translation.weekday;return[...no.slice(t),...no.slice(0,t)]},weeks(){return Math.ceil((this.numberOfDays+this.firstWeekday)/7)},monthnames(){return["january","february","march","april","may","june","july","august","september","october","november","december"].map(t=>this.$t("months."+t))},months(){var t=[];return this.monthnames.forEach((e,s)=>{t.push({value:s,text:e})}),t},years(){const t=this.year-20,e=this.year+20;return this.toOptions(t,e)}},watch:{max:{handler(t,e){t!==e&&(this.maxdate=this.$library.dayjs.interpret(t,"date"))},immediate:!0},min:{handler(t,e){t!==e&&(this.mindate=this.$library.dayjs.interpret(t,"date"))},immediate:!0},value:{handler(t,e){t!==e&&(this.selected=this.$library.dayjs.interpret(t,"date"),this.show(this.selected))},immediate:!0}},methods:{days(t){let e=[];const s=7*(t-1)+1,i=s+7;for(let n=s;nthis.numberOfDays;e.push(s?"":t)}return e},isDisabled(t){const e=this.toDate(t);return this.disabled||e.isBefore(this.mindate,"day")||e.isAfter(this.maxdate,"day")},isSelected(t){return this.toDate(t).isSame(this.selected,"day")},isToday(t){return this.toDate(t).isSame(this.today,"day")},onNext(){const t=this.toDate().add(1,"month");this.show(t)},onPrev(){const t=this.toDate().subtract(1,"month");this.show(t)},select(t){this.$emit("input",t?.toISO("date")??null)},show(t){this.month=(t??this.today).month(),this.year=(t??this.today).year()},toDate(t=1,e){return this.$library.dayjs(`${this.year}-${(e??this.month)+1}-${t}`)},toOptions(t,e){for(var s=[],i=t;i<=e;i++)s.push({value:i,text:this.$helper.pad(i)});return s}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-calendar-input",t.$attrs.class],style:t.$attrs.style,on:{click:function(t){t.stopPropagation()}}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("date.select")))]),e("nav",[e("k-button",{attrs:{title:t.$t("prev"),icon:"angle-left"},on:{click:t.onPrev}}),e("span",{staticClass:"k-calendar-selects"},[e("k-select-input",{attrs:{"aria-label":t.$t("month"),autofocus:t.autofocus,options:t.months,empty:!1,required:!0,value:t.month},on:{input:function(e){t.month=Number(e)}}}),e("k-select-input",{attrs:{"aria-label":t.$t("year"),options:t.years,empty:!1,required:!0,value:t.year},on:{input:function(e){t.year=Number(e)}}})],1),e("k-button",{attrs:{title:t.$t("next"),icon:"angle-right"},on:{click:t.onNext}})],1),e("table",{key:t.year+"-"+t.month,staticClass:"k-calendar-table"},[e("thead",[e("tr",t._l(t.weekdays,function(s){return e("th",{key:"weekday_"+s},[t._v(" "+t._s(t.$t("days."+s))+" ")])}),0)]),e("tbody",t._l(t.weeks,function(s){return e("tr",{key:"week_"+s},t._l(t.days(s),function(s,i){return e("td",{key:"day_"+i,staticClass:"k-calendar-day",attrs:{"aria-current":!!t.isToday(s)&&"date","aria-selected":!!t.isSelected(s)&&"date"}},[s?e("k-button",{attrs:{disabled:t.isDisabled(s),text:s},on:{click:function(e){t.select(t.toDate(s))}}}):t._e()],1)}),0)}),0),e("tfoot",[e("tr",[e("td",{staticClass:"k-calendar-today",attrs:{colspan:"7"}},[e("k-button",{attrs:{disabled:t.disabled,text:t.$t("today")},on:{click:function(e){t.show(t.today),t.select(t.today)}}})],1)])])]),e("input",{staticClass:"input-hidden",attrs:{id:t.id,disabled:t.disabled,min:t.min,max:t.max,name:t.name,required:t.required,tabindex:"-1",type:"date"},domProps:{value:t.value}})])},[]).exports;const ro=lt({extends:Rn},null,null).exports;const ao=lt({mixins:[pn,{mixins:[un],props:{format:{type:String,default:"hex",validator:t=>["hex","rgb","hsl"].includes(t)},value:{type:String}}}],computed:{choices(){return this.options.map(t=>({...t,title:t.text??t.value,value:this.colorToString(t.value)}))}},methods:{colorToString(t){try{return this.$library.colors.toString(t,this.format)}catch{return t}}}},function(){var t=this,e=t._self._c;return t.choices.length?e("fieldset",{staticClass:"k-coloroptions-input",attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("ul",t._l(t.choices,function(s,i){return e("li",{key:i},[e("label",{attrs:{title:s.title}},[e("input",{staticClass:"input-hidden",attrs:{autofocus:t.autofocus&&0===i,disabled:t.disabled,name:t.name??t.id,required:t.required,type:"radio"},domProps:{checked:s.value===t.value,value:s.value},on:{click:function(e){return t.toggle(s.value)},input:function(e){return t.$emit("input",s.value)}}}),e("k-color-frame",{attrs:{color:s.value}})],1)])}),0)]):t._e()},[]).exports;const lo=lt({mixins:[Le,{mixins:[Ie,it],props:{alpha:{default:!0,type:Boolean},format:{default:"hex",type:String,validator:t=>["hex","rgb","hsl"].includes(t)},value:{type:[Object,String]}}}],data:()=>({color:{h:0,s:0,v:1,a:1},formatted:null}),computed:{coords(){return this.value?{x:100*this.color.s,y:100*(1-this.color.v)}:null},hsl(){try{const t=this.$library.colors.convert(this.color,"hsl");return{h:t.h,s:(100*t.s).toFixed()+"%",l:(100*t.l).toFixed()+"%",a:t.a}}catch{return{h:0,s:"0%",l:"0%",a:1}}}},watch:{value:{handler(t,e){if(t===e||t===this.formatted)return;const s=this.$library.colors.parseAs(t??"","hsv");s?(this.formatted=this.$library.colors.toString(s,this.format),this.color=s):(this.formatted=null,this.color={h:0,s:0,v:1,a:1})},immediate:!0}},methods:{between:(t,e,s)=>Math.min(Math.max(t,e),s),emit(){return this.formatted=this.$library.colors.toString(this.color,this.format),this.$emit("input",this.formatted)},focus(){this.$refs.coords.focus()},setAlpha(t){this.color.a=this.alpha?this.between(Number(t),0,1):1,this.emit()},setCoords(t){if(!t)return this.$emit("input","");const e=Math.round(t.x),s=Math.round(t.y);this.color.s=this.between(e/100,0,1),this.color.v=this.between(1-s/100,0,1),this.emit()},setHue(t){this.color.h=this.between(Number(t),0,360),this.emit()}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-colorpicker-input",t.$attrs.class],style:{"--h":t.hsl.h,"--s":t.hsl.s,"--l":t.hsl.l,"--a":t.hsl.a,...t.$attrs.style}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("color")))]),e("k-coords-input",{ref:"coords",attrs:{autofocus:t.autofocus,disabled:t.disabled,required:t.required,value:t.coords},on:{input:function(e){return t.setCoords(e)}}}),e("label",{attrs:{"aria-label":t.$t("hue")}},[e("k-hue-input",{attrs:{disabled:t.disabled,required:t.required,value:t.color.h},on:{input:function(e){return t.setHue(e)}}})],1),t.alpha?e("label",{attrs:{"aria-label":t.$t("alpha")}},[e("k-alpha-input",{attrs:{disabled:t.disabled,required:t.required,value:t.color.a},on:{input:function(e){return t.setAlpha(e)}}})],1):t._e(),e("k-coloroptions-input",{attrs:{disabled:t.disabled,format:t.format,options:t.options,required:t.required,value:t.value},on:{input:function(e){return t.$emit("input",e)}}}),e("input",{staticClass:"input-hidden",attrs:{name:t.name,required:t.required,tabindex:"-1",type:"text"},domProps:{value:t.formatted}})],1)},[]).exports;const co=lt({mixins:[Le,{mixins:[Ie],props:{reset:{default:!0,type:Boolean},value:{default:()=>({x:0,y:0}),type:Object}}}],data:()=>({x:0,y:0}),watch:{value:{handler(t){const e=this.parse(t);this.x=e?.x??0,this.y=e?.y??0},immediate:!0}},methods:{focus(){this.$el.querySelector("button")?.focus()},getCoords:(t,e)=>({x:Math.min(Math.max(t.clientX-e.left,0),e.width),y:Math.min(Math.max(t.clientY-e.top,0),e.height)}),onDelete(){this.reset&&!this.required&&this.$emit("input",null)},onDrag(t){if(0!==t.button)return;const e=t=>this.onMove(t),s=()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",e),window.addEventListener("mouseup",s)},onEnter(){this.$el.form?.requestSubmit()},onInput(t,e){if(t.preventDefault(),t.stopPropagation(),this.disabled)return!1;this.x=Math.min(Math.max(parseFloat(e.x??this.x??0),0),100),this.y=Math.min(Math.max(parseFloat(e.y??this.y??0),0),100),this.$emit("input",{x:this.x,y:this.y})},onKeys(t){const e=t.shiftKey?10:1,s={ArrowUp:{y:this.y-e},ArrowDown:{y:this.y+e},ArrowLeft:{x:this.x-e},ArrowRight:{x:this.x+e}};s[t.key]&&this.onInput(t,s[t.key])},async onMove(t){const e=this.$el.getBoundingClientRect(),s=this.getCoords(t,e),i=s.x/e.width*100,n=s.y/e.height*100;this.onInput(t,{x:i,y:n}),await this.$nextTick(),this.focus()},parse(t){if("object"==typeof t)return t;const e={"top left":{x:0,y:0},"top center":{x:50,y:0},"top right":{x:100,y:0},"center left":{x:0,y:50},center:{x:50,y:50},"center center":{x:50,y:50},"center right":{x:100,y:50},"bottom left":{x:0,y:100},"bottom center":{x:50,y:100},"bottom right":{x:100,y:100}};if(e[t])return e[t];const s=t.split(",").map(t=>t.trim());return{x:s[0],y:s[1]??0}}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-coords-input",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-disabled":t.disabled,"data-empty":!t.value},on:{mousedown:t.onDrag,click:t.onMove,keydown:t.onKeys}},[t._t("default"),e("button",{staticClass:"k-coords-input-thumb",style:{left:`${t.x}%`,top:`${t.y}%`},attrs:{id:t.id,autofocus:t.autofocus,disabled:t.disabled},on:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.onEnter.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete","Del"])?null:t.onDelete.apply(null,arguments)}]}}),e("input",{staticClass:"input-hidden",attrs:{name:t.name,required:t.required,tabindex:"-1",type:"text"},domProps:{value:t.value?[t.value.x,t.value.y]:null}})],2)},[]).exports,uo={mixins:[hn],props:{max:null,min:null,step:{default:1,type:Number},tooltip:{default:!1,type:[Boolean,Object]}}};const po=lt({mixins:[mn,uo]},function(){var t=this;return(0,t._self._c)("k-range-input",t._b({staticClass:"k-hue-input",attrs:{min:0,max:360},on:{input:function(e){return t.$emit("input",e)}}},"k-range-input",t.$props,!1))},[]).exports;const ho=lt({mixins:[Es,{mixins:[Ds],props:{autocomplete:null,pattern:null,spellcheck:null,placeholder:{default:()=>window.panel.t("search")+" …",type:String}}}]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-search-input",attrs:{spellcheck:!1,autocomplete:"off",type:"search"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const mo=lt({mixins:[Le,{mixins:[Ie,qn]}],props:{display:{type:String,default:"HH:mm"},value:String},computed:{day(){return this.formatTimes([6,7,8,9,10,11,"-",12,13,14,15,16,17])},night(){return this.formatTimes([18,19,20,21,22,23,"-",0,1,2,3,4,5])}},methods:{focus(){this.$el.querySelector("button").focus()},formatTimes(t){return t.map(t=>{if("-"===t)return t;const e=this.$library.dayjs(t+":00","H:mm");return{display:e.format(this.display),select:e.toISO("time")}})},select(t){this.$emit("input",t)}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-timeoptions-input",t.$attrs.class],style:t.$attrs.style},[e("div",[e("h3",[e("k-icon",{attrs:{type:"sun"}}),t._v(" "),e("span",{staticClass:"sr-only"},[t._v(t._s(t.$t("day")))])],1),e("ul",t._l(t.day,function(s,i){return e("li",{key:s.select},["-"===s?e("hr"):e("k-button",{attrs:{autofocus:t.autofocus&&0===i,disabled:t.disabled,selected:s.select===t.value&&"time"},on:{click:function(e){return t.select(s.select)}}},[t._v(" "+t._s(s.display)+" ")])],1)}),0)]),e("div",[e("h3",[e("k-icon",{attrs:{type:"moon"}}),t._v(" "),e("span",{staticClass:"sr-only"},[t._v(t._s(t.$t("night")))])],1),e("ul",t._l(t.night,function(s){return e("li",{key:s.select},["-"===s?e("hr"):e("k-button",{attrs:{disabled:t.disabled,selected:s.select===t.value&&"time"},on:{click:function(e){return t.select(s.select)}}},[t._v(" "+t._s(s.display)+" ")])],1)}),0)]),e("input",{staticClass:"input-hidden",attrs:{id:t.id,disabled:t.disabled,min:t.min,max:t.max,name:t.name,required:t.required,tabindex:"-1",type:"time"},domProps:{value:t.value}})])},[]).exports;class fo extends HTMLElement{static formAssociated=!0;static get observedAttributes(){return["min","max","required","value"]}attributeChangedCallback(t,e,s){this[t]=s}constructor(){super(),this.internals=this.attachInternals(),this.entries=[],this.max=null,this.min=null,this.required=!1}connectedCallback(){this.tabIndex=0;const t=this.getAttribute("id");t&&(this.input.setAttribute("id",t),this.removeAttribute("id")),this.validate()}checkValidity(){return this.internals.checkValidity()}get form(){return this.internals.form}has(t){return this.entries.includes(t)}get input(){return this.querySelector(this.getAttribute("anchor"))??this.querySelector("input, textarea, select, button")??this.querySelector(":scope > *")}get isEmpty(){return 0===this.selected.length}get name(){return this.getAttribute("name")}reportValidity(){return this.internals.reportValidity()}get type(){return this.localName}validate(){const t=parseInt(this.getAttribute("max")),e=parseInt(this.getAttribute("min"));this.hasAttribute("required")&&"false"!==this.getAttribute("required")&&0===this.entries.length?this.internals.setValidity({valueMissing:!0},window.panel.$t("error.validation.required"),this.input):this.hasAttribute("min")&&this.entries.lengtht?this.internals.setValidity({rangeOverflow:!0},window.panel.$t("error.validation.max",{max:t}),this.input):this.internals.setValidity({})}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get value(){return JSON.stringify(this.entries??[])}set value(t){this.entries=("string"==typeof t?JSON.parse(t):[])??[],this.validate()}get willValidate(){return this.internals.willValidate}}const go=lt({extends:"k-writer-input",created(){window.panel.deprecated("`k-writer` will be removed in a future version. Use `k-writer-input` instead.")}},null,null).exports,ko={install(t){customElements.define("k-input-validator",fo),t.component("k-alpha-input",io),t.component("k-calendar-input",oo),t.component("k-checkbox-input",ro),t.component("k-checkboxes-input",Os),t.component("k-choice-input",Rn),t.component("k-colorname-input",Is),t.component("k-coloroptions-input",ao),t.component("k-colorpicker-input",lo),t.component("k-coords-input",co),t.component("k-date-input",Ps),t.component("k-email-input",Fs),t.component("k-hue-input",po),t.component("k-list-input",Ri),t.component("k-multiselect-input",Gi),t.component("k-number-input",sn),t.component("k-password-input",ln),t.component("k-picklist-input",Pe),t.component("k-radio-input",pn),t.component("k-range-input",mn),t.component("k-search-input",ho),t.component("k-select-input",kn),t.component("k-slug-input",vn),t.component("k-string-input",Es),t.component("k-tags-input",Zi),t.component("k-tel-input",An),t.component("k-text-input",En),t.component("k-textarea-input",Tn),t.component("k-time-input",Fn),t.component("k-timeoptions-input",mo),t.component("k-toggle-input",Un),t.component("k-toggles-input",Wn),t.component("k-url-input",Xn),t.component("k-writer-input",Fi),t.component("k-calendar",oo),t.component("k-times",mo),t.component("k-writer",go)}};const bo=lt({mixins:[It],inheritAttrs:!1,props:{cancelButton:{default:!1},label:{default(){return this.$t("field.layout.select")},type:String},layouts:{type:Array},selector:Object,submitButton:{default:!1},value:{type:Array}},emits:["cancel","input","submit"]},function(){var t=this,e=t._self._c;return e("k-dialog",t._b({class:["k-layout-selector",t.$attrs.class],style:t.$attrs.style,attrs:{size:t.selector?.size??"medium"},on:{cancel:function(e){return t.$emit("cancel")},submit:function(e){return t.$emit("submit",t.value)}}},"k-dialog",t.$props,!1),[e("h3",{staticClass:"k-label"},[t._v(t._s(t.label))]),e("k-navigate",{staticClass:"k-layout-selector-options",style:{"--columns":Number(t.selector?.columns??3)},attrs:{axis:"x"}},t._l(t.layouts,function(s,i){return e("button",{key:i,staticClass:"k-layout-selector-option",attrs:{"aria-current":t.value===s,"aria-label":s.join(","),value:s},on:{click:function(e){return t.$emit("input",s)}}},[e("k-grid",{attrs:{"aria-hidden":""}},t._l(s,function(t,s){return e("k-column",{key:s,attrs:{width:t}})}),1)],1)}),0)],1)},[]).exports,yo={install(t){t.component("k-layout",Xs),t.component("k-layout-column",Js),t.component("k-layouts",Qs),t.component("k-layout-selector",bo)}},vo={inheritAttrs:!1,props:{column:{default:()=>({}),type:Object},field:{default:()=>({}),type:Object},value:{}}};const $o=lt({mixins:[vo],props:{html:{type:Boolean},value:{default:()=>[],type:[Array,String]}},computed:{tags(){let t=this.value;const e=this.column.options??this.field.options??[];return"string"==typeof t&&(t=t.split(",")),(t??[]).map(t=>{"string"==typeof t&&(t={value:t,text:t});for(const s of e)s.value===t.value&&(t.text=s.text);return t})}}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-tags-field-preview","k-tags",t.$options.class,t.$attrs.class],style:t.$attrs.style},t._l(t.tags,function(s,i){return e("li",{key:s.id??s.value??s.text??i},[e("k-tag",{attrs:{html:t.html,image:s.image,link:s.link,text:s.text,element:"div",theme:"light"}})],1)}),0)},[]).exports;const xo=lt({extends:$o,inheritAttrs:!1,class:"k-array-field-preview",computed:{tags(){return[{text:1===this.value.length?`1 ${this.$t("entry")}`:`${this.value.length} ${this.$t("entries")}`}]}}},null,null).exports,wo={props:{html:{type:Boolean}}};const _o=lt({mixins:[wo],inheritAttrs:!1,props:{bubbles:[Array,String]},computed:{items(){let t=this.bubbles;return"string"==typeof t&&(t=t.split(",")),t.map(t=>"string"===t?{text:t}:t)}},mounted(){window.panel.deprecated(" will be removed in a future version. Use instead.")}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-bubbles",t.$attrs.class],style:t.$attrs.style},t._l(t.items,function(s,i){return e("li",{key:i},[e("k-bubble",t._b({attrs:{html:t.html}},"k-bubble",s,!1))],1)}),0)},[]).exports;const So=lt({mixins:[vo,wo],props:{value:{default:()=>[],type:[Array,String]}},computed:{bubbles(){let t=this.value;const e=this.column.options??this.field.options??[];return"string"==typeof t&&(t=t.split(",")),(t??[]).map(t=>{"string"==typeof t&&(t={value:t,text:t});for(const s of e)s.value===t.value&&(t.text=s.text);return t})}},mounted(){window.panel.deprecated(" will be removed in a future version. Use instead.")}},function(){var t=this,e=t._self._c;return e("div",{class:["k-bubbles-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style},[e("k-bubbles",{attrs:{bubbles:t.bubbles,html:t.html}})],1)},[]).exports;const Co=lt({mixins:[vo],props:{value:String},computed:{text(){if(!this.value)return;const t=this.$library.colors.toString(this.value,this.field.format,this.field.alpha),e=this.field.options?.find(e=>this.$library.colors.toString(e.value,this.field.format,this.field.alpha)===t);return e?e.text:null}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-color-field-preview",t.$attrs.class],style:t.$attrs.style},[e("k-color-frame",{attrs:{color:t.value}}),t.text?[t._v(" "+t._s(t.text)+" ")]:t._e()],2)},[]).exports;const Oo=lt({mixins:[vo],computed:{text(){return this.value}}},function(){var t=this;return(0,t._self._c)("p",{class:["k-text-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style},[t._v(" "+t._s(t.column.before)+" "),t._t("default",function(){return[t._v(t._s(t.text))]}),t._v(" "+t._s(t.column.after)+" ")],2)},[]).exports;const Ao=lt({extends:Oo,props:{value:String},class:"k-date-field-preview",computed:{display(){return this.column.display??this.field.display},format(){let t=this.display??"YYYY-MM-DD";return this.time?.display&&(t+=" "+this.time.display),t},parsed(){return this.$library.dayjs(this.value)},text(){return!1===this.parsed.isValid()?this.value:this.parsed?.format(this.format)},time(){return this.column.time??this.field.time}}},null,null).exports;const Mo=lt({mixins:[vo],props:{value:[String,Object]},computed:{link(){return"object"==typeof this.value?this.value.href:this.value},text(){return"object"==typeof this.value?this.value.text:this.link}}},function(){var t=this,e=t._self._c;return e("p",{class:["k-url-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style,attrs:{"data-link":Boolean(t.link)}},[t._v(" "+t._s(t.column.before)+" "),e("k-link",{attrs:{to:t.link},nativeOn:{click:function(t){t.stopPropagation()}}},[e("span",[t._v(t._s(t.text))])]),t._v(" "+t._s(t.column.after)+" ")],1)},[]).exports;const Do=lt({extends:Mo,class:"k-email-field-preview"},null,null).exports;const Eo=lt({extends:$o,class:"k-files-field-preview",props:{html:{type:Boolean,default:!0}},computed:{tags(){return this.value.map(t=>({text:t.filename,link:t.link,image:t.image}))}}},null,null).exports;const jo=lt({mixins:[vo],props:{value:Object},computed:{status(){return{...this.$helper.page.status(this.value?.status),...this.value}}}},function(){var t=this,e=t._self._c;return t.value?e("k-button",t._b({class:["k-flag-field-preview",t.$attrs.class],style:t.$attrs.style,attrs:{size:"md"}},"k-button",t.status,!1)):t._e()},[]).exports;const Io=lt({mixins:[vo],props:{value:String},computed:{html(){return this.value}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-html-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style},[t._v(" "+t._s(t.column.before)+" "),e("k-text",{attrs:{html:t.html}}),t._v(" "+t._s(t.column.after)+" ")],1)},[]).exports;const Lo=lt({mixins:[vo],props:{value:[Object]}},function(){var t=this,e=t._self._c;return t.value?e("k-item-image",{class:["k-image-field-preview",t.$attrs.class],style:t.$attrs.style,attrs:{image:t.value}}):t._e()},[]).exports;const Bo=lt({mixins:[vo],props:{removable:Boolean,type:String},emits:["remove"],data:()=>({model:null}),computed:{currentType(){return this.type??this.detected.type},detected(){return this.$helper.link.detect(this.value)},isLink(){return["url","email","tel"].includes(this.currentType)}},watch:{detected:{async handler(t,e){t!==e&&(this.model=await this.$helper.link.preview(this.detected))},immediate:!0},type(){this.model=null}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-link-field-preview",{"k-url-field-preview":t.isLink},t.$attrs.class],style:t.$attrs.style},["page"===t.currentType||"file"===t.currentType?[t.model?[e("k-tag",{attrs:{image:{...t.model.image,cover:!0},removable:t.removable,text:t.model.label},on:{remove:function(e){return t.$emit("remove",e)}}})]:t._t("placeholder")]:t.isLink?[e("p",{staticClass:"k-text"},[e("a",{attrs:{href:t.value,target:"_blank"}},[e("span",[t._v(t._s(t.detected.link))])])])]:[t._v(" "+t._s(t.detected.link)+" ")]],2)},[]).exports;const To=lt({extends:$o,class:"k-object-field-preview",props:{value:[Array,Object]},computed:{tags(){return this.value?[{text:"{ ... }"}]:[]}}},null,null).exports;const Po=lt({extends:$o,inheritAttrs:!1,class:"k-pages-field-preview",props:{html:{type:Boolean,default:!0}}},null,null).exports;const qo=lt({mixins:[vo],props:{html:{type:Boolean},value:String}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-tag-field-preview","k-tags-field-preview","k-tags",t.$options.class,t.$attrs.class],style:t.$attrs.style},[e("li",[e("k-tag",{attrs:{html:t.html,text:t.value,theme:"light"},nativeOn:{click:function(t){t.stopPropagation()}}})],1)])},[]).exports;const No=lt({extends:Ao,class:"k-time-field-preview",computed:{format(){return this.display??"HH:mm"},parsed(){return this.$library.dayjs.iso(this.value,"time")},text(){return this.parsed?.format(this.format)}}},null,null).exports;const Fo=lt({mixins:[vo],props:{value:Boolean},emits:["input"],computed:{isEditable(){return!0!==this.field.disabled},text(){return!1!==this.column.text?this.field.text:null}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-toggle-field-preview",t.$attrs.class],style:t.$attrs.style},[e("k-toggle-input",{attrs:{disabled:!t.isEditable,text:t.text,value:t.value},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{click:function(e){t.isEditable&&e.stopPropagation()}}})],1)},[]).exports;const zo=lt({extends:$o,class:"k-users-field-preview",props:{html:{type:Boolean,default:!0}},computed:{tags(){return this.value.map(t=>({text:t.username??t.email,link:t.link,image:t.image}))}}},null,null).exports,Yo={install(t){t.component("k-array-field-preview",xo),t.component("k-bubbles-field-preview",So),t.component("k-color-field-preview",Co),t.component("k-date-field-preview",Ao),t.component("k-email-field-preview",Do),t.component("k-files-field-preview",Eo),t.component("k-flag-field-preview",jo),t.component("k-html-field-preview",Io),t.component("k-image-field-preview",Lo),t.component("k-link-field-preview",Bo),t.component("k-object-field-preview",To),t.component("k-pages-field-preview",Po),t.component("k-tag-field-preview",qo),t.component("k-tags-field-preview",$o),t.component("k-text-field-preview",Oo),t.component("k-toggle-field-preview",Fo),t.component("k-time-field-preview",No),t.component("k-url-field-preview",Mo),t.component("k-users-field-preview",zo),t.component("k-list-field-preview",Io),t.component("k-writer-field-preview",Io),t.component("k-checkboxes-field-preview",$o),t.component("k-multiselect-field-preview",$o),t.component("k-radio-field-preview",$o),t.component("k-select-field-preview",$o),t.component("k-toggles-field-preview",$o)}};const Ro=lt({mixins:[{props:{buttons:{type:Array,default:()=>[]},theme:{type:String,default:"light"}}}],methods:{close(){for(const t in this.$refs){const e=this.$refs[t][0];"function"==typeof e?.close&&e.close()}}}},function(){var t=this,e=t._self._c;return t.buttons.length?e("nav",{staticClass:"k-toolbar",attrs:{"data-theme":t.theme}},[t._l(t.buttons,function(s,i){return["|"===s?e("hr",{key:"separator-"+i}):s.when??1?e("k-button",{key:i,class:["k-toolbar-button",s.class],attrs:{current:s.current,disabled:s.disabled,icon:s.icon,title:s.label??s.title,tabindex:"0"},on:{click:function(e){s.dropdown?.length?t.$refs[i+"-dropdown"][0].toggle():s.click?.(e)}},nativeOn:{keydown:function(t){s.key?.(t)}}}):t._e(),(s.when??1)&&s.dropdown?.length?e("k-dropdown-content",{key:i+"-dropdown",ref:i+"-dropdown",refInFor:!0,attrs:{options:s.dropdown,theme:"dark"===t.theme?"light":"dark"}}):t._e()]})],2):t._e()},[]).exports;const Ho=lt({props:{editor:{required:!0,type:Object},inline:{default:!0,type:Boolean},marks:{default:()=>["bold","italic","underline","strike","code","|","link","email","|","clear"],type:[Array,Boolean]},nodes:{default:!0,type:[Array,Boolean]}},emits:["command"],data:()=>({isOpen:!1,position:{x:0,y:0}}),computed:{activeDropdownEntry(){return Object.values(this.dropdownEntries).findLast(this.isNodeActive)},buttons(){const t=[];this.hasDropdownEntries&&t.push(this.dropdownInlineButton),this.hasDropdownEntries&&this.hasInlineEntries&&t.push("|");for(const[e,s]of Object.entries(this.inlineEntries))t.push(this.inlineButton(s,e));return t},dropdown(){const t=[],e=Object.entries(this.dropdownEntries);let s=0;for(const[i,n]of e)t.push(this.dropdownButton(n,i)),!0===n.separator&&s!==e.length-1&&t.push("-"),s++;return t},dropdownInlineButton(){return{current:Boolean(this.activeDropdownEntry),dropdown:this.dropdown,icon:this.activeDropdownEntry?.icon??"title"}},dropdownEntries(){if(!1===this.nodes)return{};const t=this.nodesForBlock;return"block+"!==this.editor.nodes.doc.content&&t.paragraph&&delete t.paragraph,!0===this.nodes?t:Object.fromEntries(this.nodes.filter(e=>t[e]).map(e=>[e,t[e]]))},hasDropdownEntries(){return this.$helper.object.length(this.dropdownEntries)>1},hasInlineEntries(){return this.$helper.object.length(this.inlineEntries)>0},inlineEntries(){let t={};if(!0===this.nodes)t=this.nodesForInline;else if(!1!==this.nodes)for(const s of this.nodes)this.nodesForInline[s]&&(t[s]=this.nodesForInline[s]);this.$helper.object.length(t)>0&&(t["divider-inline-nodes"]="|");const e=this.editor.buttons("mark");if(!0===this.marks)return{...t,...e};if(!1!==this.marks)for(const[s,i]of this.marks.entries())"|"===i?t["divider"+s]="|":e[i]&&(t[i]=e[i]);return t},nodesForBlock(){return this.$helper.object.filter(this.editor.buttons("node"),t=>!0!==t.inline)},nodesForInline(){return this.$helper.object.filter(this.editor.buttons("node"),t=>!0===t.inline)},positions(){return!1===this.inline?null:{top:this.position.y+"px",left:this.position.x+"px"}},theme(){return this.inline?"dark":"light"}},methods:{close(t){t&&!1!==this.$el.contains(t.relatedTarget)||(this.isOpen=!1)},command(t,...e){this.$emit("command",t,...e)},dropdownButton(t,e){return{current:this.activeDropdownEntry?.id===t.id,disabled:!1===this.activeDropdownEntry?.when?.includes(t.name),icon:t.icon,label:t.label,click:()=>this.command(t.command??e)}},inlineButton(t,e){return"|"===t?"|":{current:this.isMarkActive({...t,name:e}),icon:t.icon,label:t.label,click:s=>this.command(t.command??e,s)}},isMarkActive(t){return this.editor.activeMarks.includes(t.name)},isNodeActive(t){if(!1===this.editor.activeNodes.includes(t.name))return!1;if(t.attrs){if(void 0===Object.values(this.editor.activeNodeAttrs).find(e=>JSON.stringify(e)===JSON.stringify(t.attrs)))return!1}return!0},open(){0!==this.buttons.length&&(this.isOpen=!0,this.inline&&this.$nextTick(this.setPosition))},setPosition(){const t=this.$el.getBoundingClientRect(),e=this.editor.element.getBoundingClientRect(),{from:s,to:i}=this.editor.selection,n=this.editor.view.coordsAtPos(s),o=this.editor.view.coordsAtPos(i,!0),r=new DOMRect(n.left,n.top,o.right-n.left,o.bottom-n.top);let a=r.x-e.x+r.width/2-t.width/2,l=r.y-e.y-t.height-5;if(t.widthe.width&&(a=e.width-t.width);else{const s=document.querySelector(".k-panel-menu")?.getBoundingClientRect(),i=e.x+a,n=i+t.width,o=s?.width+20,r=20;iwindow.innerWidth-r&&(a-=n-(window.innerWidth-r))}this.position={x:a,y:l}}}},function(){var t=this,e=t._self._c;return t.isOpen||!t.inline?e("k-toolbar",{ref:"toolbar",staticClass:"k-writer-toolbar",style:t.positions,attrs:{buttons:t.buttons,"data-inline":t.inline,theme:t.theme}}):t._e()},[]).exports;const Uo=lt({extends:Tt,props:{fields:{default:()=>{const t=Tt.props.fields.default();return t.title.label=window.panel.t("link.text"),t}}},methods:{submit(){const t=this.values.href??"",e=this.values.title??"";return this.$panel.config.kirbytext?e?.length>0?this.$emit("submit",`(email: ${t} text: ${e})`):this.$emit("submit",`(email: ${t})`):e?.length>0?this.$emit("submit",`[${e}](mailto:${t})`):this.$emit("submit",`<${t}>`)}}},null,null).exports;const Vo=lt({extends:Wt,props:{fields:{default:()=>({href:{label:window.panel.t("link"),type:"link",placeholder:window.panel.t("url.placeholder"),icon:"url"},title:{label:window.panel.t("link.text"),type:"text",icon:"title"}})}},methods:{submit(){const t=this.values.href??"",e=this.values.title??"";return this.$panel.config.kirbytext?e?.length>0?this.$emit("submit",`(link: ${t} text: ${e})`):this.$emit("submit",`(link: ${t})`):e?.length>0?this.$emit("submit",`[${e}](${t})`):this.$emit("submit",`<${t}>`)}}},null,null).exports,Ko={install(t){t.component("k-toolbar",Ro),t.component("k-textarea-toolbar",Ln),t.component("k-writer-toolbar",Ho),t.component("k-toolbar-email-dialog",Uo),t.component("k-toolbar-link-dialog",Vo)}},Wo={install(t){t.component("k-counter",Fe),t.component("k-field",Ye),t.component("k-fieldset",Re),t.component("k-form",He),t.component("k-form-controls",Ve),t.component("k-input",We),t.use(_s),t.use(ko),t.use(eo),t.use(yo),t.use(Yo),t.use(Ko)}},Jo={},Go=function(t,e,s){let i=Promise.resolve();if(e&&e.length>0){let t=function(t){return Promise.all(t.map(t=>Promise.resolve(t).then(t=>({status:"fulfilled",value:t}),t=>({status:"rejected",reason:t}))))};const n=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),r=o?.nonce||o?.getAttribute("nonce");i=t(e.map(t=>{if(t=function(t,e){return new URL(t,e).href}(t,s),t in Jo)return;Jo[t]=!0;const e=t.endsWith(".css"),i=e?'[rel="stylesheet"]':"";if(s)for(let s=n.length-1;s>=0;s--){const i=n[s];if(i.href===t&&(!e||"stylesheet"===i.rel))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;const o=document.createElement("link");return o.rel=e?"stylesheet":"modulepreload",e||(o.as="script"),o.crossOrigin="",o.href=t,r&&o.setAttribute("nonce",r),document.head.appendChild(o),e?new Promise((e,s)=>{o.addEventListener("load",e),o.addEventListener("error",()=>s(new Error(`Unable to preload CSS for ${t}`)))}):void 0}))}function n(t){const e=new Event("vite:preloadError",{cancelable:!0});if(e.payload=t,window.dispatchEvent(e),!e.defaultPrevented)throw t}return i.then(e=>{for(const t of e||[])"rejected"===t.status&&n(t.reason);return t().catch(n)})},Xo=()=>Go(()=>import("./IndexView.min.js"),__vite__mapDeps([0,1]),import.meta.url),Zo=()=>Go(()=>import("./DocsView.min.js"),__vite__mapDeps([2,3,1]),import.meta.url),Qo=()=>Go(()=>import("./PlaygroundView.min.js"),__vite__mapDeps([4,3,1]),import.meta.url),tr={install(t){t.component("k-lab-index-view",Xo),t.component("k-lab-docs-view",Zo),t.component("k-lab-playground-view",Qo)}};const er=lt({props:{align:{type:String,default:"start"}}},function(){var t=this;return(0,t._self._c)("div",{staticClass:"k-bar",attrs:{"data-align":t.align}},[t._t("default")],2)},[]).exports;const sr=lt({props:{align:{type:String,default:"start"},button:Boolean,height:String,icon:String,theme:{type:String},text:String,html:{type:Boolean}},computed:{element(){return this.button?"button":"div"},type(){return this.button?"button":null}}},function(){var t=this,e=t._self._c;return e(t.element,{tag:"component",staticClass:"k-box",style:t.height?{"--box-height":t.height}:null,attrs:{"data-align":t.align,"data-theme":t.theme,type:t.type}},[t.icon?e("k-icon",{attrs:{type:t.icon}}):t._e(),t._t("default",function(){return[t.html?e("k-text",{attrs:{html:t.text}}):e("k-text",[t._v(" "+t._s(t.text)+" ")])]},null,{html:t.html,text:t.text})],2)},[]).exports;const ir=lt({inheritAttrs:!1,props:{back:String,color:String,element:{type:String,default:"li"},html:{type:Boolean},image:Object,link:String,text:String},mounted(){window.panel.deprecated(" will be removed in a future version. Use instead.")}},function(){var t=this,e=t._self._c;return e(t.link?"k-link":"p",{tag:"component",class:["k-bubble",t.$attrs.class],style:{color:t.$helper.color(t.color),background:t.$helper.color(t.back),...t.$attrs.style},attrs:{to:t.link},nativeOn:{click:function(t){t.stopPropagation()}}},[t._t("image",function(){return[t.image?.src?e("k-image-frame",t._b({},"k-image-frame",t.image,!1)):t.image?e("k-icon-frame",t._b({},"k-icon-frame",t.image,!1)):e("span")]}),t.text?[t.html?e("span",{staticClass:"k-bubble-text",domProps:{innerHTML:t._s(t.text)}}):e("span",{staticClass:"k-bubble-text"},[t._v(t._s(t.text))])]:t._e()],2)},[]).exports;const nr=lt({props:{width:{type:String,default:"1/1"},sticky:Boolean}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-column",style:{"--width":t.width},attrs:{"data-sticky":t.sticky}},[t.sticky?e("div",[t._t("default")],2):t._t("default")],2)},[]).exports,or={props:{element:{type:String,default:"div"},fit:String,ratio:String,cover:Boolean,back:String,theme:String}};const rr=lt({mixins:[or],inheritAttrs:!1,computed:{background(){return this.$helper.color(this.back)}}},function(){var t=this;return(0,t._self._c)(t.element,{tag:"component",class:["k-frame",t.$attrs.class],style:{"--fit":t.fit??(t.cover?"cover":"contain"),"--ratio":t.ratio,"--back":t.background,...t.$attrs.style},attrs:{"data-theme":t.theme}},[t._t("default")],2)},[]).exports;const ar=lt({mixins:[{mixins:[or],props:{color:String}}],inheritAttrs:!1},function(){var t=this;return(0,t._self._c)("k-frame",t._b({class:["k-color-frame",t.$attrs.class],style:{"--color-frame-back":t.color,...t.$attrs.style}},"k-frame",t.$props,!1),[t._t("default")],2)},[]).exports;const lr=lt({props:{description:String,term:String}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-definition"},[e("dt",[t._t("term",function(){return[t._v(t._s(t.term))]})],2),e("dd",[t._t("default",function(){return[t._v(t._s(t.description))]})],2)])},[]).exports;const cr=lt({},function(){return(0,this._self._c)("dl",{staticClass:"k-definitions"},[this._t("default")],2)},[]).exports;const ur=lt({props:{disabled:{type:Boolean}},emits:["drop"],data:()=>({files:[],dragging:!1,over:!1}),methods:{cancel(){this.reset()},reset(){this.dragging=!1,this.over=!1},onDrop(t){return!0===this.disabled||!1===this.$helper.isUploadEvent(t)?this.reset():(this.$events.emit("dropzone.drop"),this.files=t.dataTransfer.files,this.$emit("drop",this.files),void this.reset())},onEnter(t){!1===this.disabled&&this.$helper.isUploadEvent(t)&&(this.dragging=!0)},onLeave(){this.reset()},onOver(t){!1===this.disabled&&this.$helper.isUploadEvent(t)&&(t.dataTransfer.dropEffect="copy",this.over=!0)}}},function(){var t=this;return(0,t._self._c)("div",{staticClass:"k-dropzone",attrs:{"data-dragging":t.dragging,"data-over":t.over},on:{dragenter:t.onEnter,dragleave:t.onLeave,dragover:t.onOver,drop:t.onDrop}},[t._t("default")],2)},[]).exports;const pr=lt({props:{variant:String}},function(){var t=this;return(0,t._self._c)("div",{staticClass:"k-grid",attrs:{"data-variant":t.variant}},[t._t("default")],2)},[]).exports;const dr=lt({props:{editable:Boolean},emits:["edit"]},function(){var t=this,e=t._self._c;return e("header",{staticClass:"k-header",attrs:{"data-editable":t.editable}},[e("h1",{staticClass:"k-header-title"},[t.editable?e("button",{staticClass:"k-header-title-button",attrs:{type:"button"},on:{click:function(e){return t.$emit("edit")}}},[e("span",{staticClass:"k-header-title-text"},[t._t("default")],2),e("span",{staticClass:"k-header-title-icon"},[e("k-icon",{attrs:{type:"edit"}})],1)]):e("span",{staticClass:"k-header-title-text"},[t._t("default")],2)]),t.$slots.buttons?e("div",{staticClass:"k-header-buttons"},[t._t("buttons")],2):t._e()])},[]).exports,hr={props:{alt:String,color:String,type:String}};const mr=lt({mixins:[hr],computed:{isEmoji(){return this.$helper.string.hasEmoji(this.type)}}},function(){var t=this,e=t._self._c;return t.isEmoji?e("span",{attrs:{"data-type":"emoji"}},[t._v(t._s(t.type))]):e("svg",{staticClass:"k-icon",style:{color:t.$helper.color(t.color)},attrs:{"aria-label":t.alt,role:t.alt?"img":null,"aria-hidden":!t.alt,"data-type":t.type}},[e("use",{attrs:{"xlink:href":"#icon-"+t.type}})])},[]).exports;const fr=lt({mixins:[{mixins:[or,hr],props:{type:null,icon:String}}],inheritAttrs:!1},function(){var t=this,e=t._self._c;return e("k-frame",t._b({class:["k-icon-frame",t.$attrs.class],style:t.$attrs.style,attrs:{element:"figure"}},"k-frame",t.$props,!1),[e("k-icon",t._b({},"k-icon",{color:t.color,type:t.icon,alt:t.alt},!1))],1)},[]).exports;const gr=lt({mixins:[{mixins:[or],props:{alt:String,sizes:String,src:String,srcset:String}}],inheritAttrs:!1},function(){var t=this,e=t._self._c;return e("k-frame",t._b({class:["k-image-frame","k-image",t.$attrs.class],style:t.$attrs.style,attrs:{element:"figure"}},"k-frame",t.$props,!1),[t.src?e("img",{key:t.src,attrs:{alt:t.alt??"",src:t.src,srcset:t.srcset,sizes:t.sizes},on:{dragstart:function(t){t.preventDefault()}}}):t._e()])},[]).exports;const kr=lt({mixins:[{props:{autofocus:{default:!0,type:Boolean},nested:{default:!1,type:Boolean},type:{default:"overlay",type:String},visible:{default:!1,type:Boolean}}}],inheritAttrs:!0,emits:["cancel","close","open"],watch:{visible(t,e){t!==e&&this.toggle()}},mounted(){this.toggle()},methods:{cancel(){this.$emit("cancel"),this.close()},close(){if(!1!==this.$refs.overlay.open)return this.nested?this.onClose():void this.$refs.overlay.close()},focus(){this.$helper.focus(this.$refs.overlay)},onCancel(t){this.nested&&(t.preventDefault(),this.cancel())},onClick(t){t.target.matches(".k-portal")&&this.cancel()},onClose(){this.$emit("close")},open(){!0!==this.$refs.overlay.open&&this.$refs.overlay.showModal(),setTimeout(()=>{!0===this.autofocus&&this.focus(),this.$emit("open")})},toggle(){!0===this.visible?this.open():this.close()}}},function(){var t=this;return(0,t._self._c)("dialog",{ref:"overlay",staticClass:"k-overlay",attrs:{"data-type":t.type},on:{cancel:t.onCancel,mousedown:t.onClick,touchdown:t.onClick,close:t.onClose}},[t._t("default")],2)},[]).exports;const br=lt({props:{align:String,direction:String,gap:String,justify:String}},function(){var t=this;return(0,t._self._c)("div",{staticClass:"k-stack",style:{alignItems:t.align,flexDirection:t.direction,gap:t.gap,justifyContent:t.justify}},[t._t("default")],2)},[]).exports;const yr=lt({props:{click:Function,dialog:{type:[String,Object]},drawer:{type:[String,Object]},icon:String,info:String,label:String,link:String,theme:String,value:String},computed:{component(){return null!==this.target?"k-link":"div"},target(){return this.link?this.link:this.click?this.click:this.dialog?()=>this.$panel.dialog.open(this.dialog):this.drawer?()=>this.$panel.drawer.open(this.drawer):null}}},function(){var t=this,e=t._self._c;return e(t.component,{tag:"component",staticClass:"k-stat",attrs:{"data-theme":t.theme,to:t.target}},[t.label?e("dt",{staticClass:"k-stat-label"},[t.icon?e("k-icon",{attrs:{type:t.icon}}):t._e(),t._v(" "+t._s(t.label)+" ")],1):t._e(),t.value?e("dd",{staticClass:"k-stat-value"},[t._v(t._s(t.value))]):t._e(),t.info?e("dd",{staticClass:"k-stat-info"},[t._v(t._s(t.info))]):t._e()])},[]).exports;const vr=lt({inheritAttrs:!1,props:{columns:{type:Object,default:()=>({})},disabled:Boolean,fields:{type:Object,default:()=>({})},empty:String,index:{type:[Number,Boolean],default:1},rows:Array,options:{default:()=>[],type:[Array,Function]},pagination:[Object,Boolean],selecting:Boolean,sortable:Boolean},emits:["cell","change","header","input","option","paginate","sort"],data(){return{values:this.rows}},computed:{colspan(){let t=this.columnsCount;return this.hasIndexColumn&&t++,this.hasOptions&&t++,t},columnsCount(){return this.$helper.object.length(this.columns)},dragOptions(){return{disabled:!this.sortable||0===this.rows.length,draggable:".k-table-sortable-row",fallbackClass:"k-table-row-fallback",ghostClass:"k-table-row-ghost"}},hasIndexColumn(){return this.sortable||!1!==this.index},hasOptions(){return this.selecting||this.$scopedSlots.options||this.options?.length>0||Object.values(this.values).filter(t=>t?.options).length>0},indexWidth(){if(!1===this.hasIndexColumn)return null;const t=Math.max(this.values?.length??0,1),e=this.index,s=e+t-1;return`${String(Math.max(e,s)).length}ch`}},watch:{rows(){this.values=this.rows}},methods:{isColumnEmpty(t){return 0===this.rows.filter(e=>!1===this.$helper.object.isEmpty(e[t])).length},label(t,e){return t.label??this.$helper.string.ucfirst(e)},onChange(t){this.$emit("change",t)},onCell(t){this.$emit("cell",t)},onCellUpdate({columnIndex:t,rowIndex:e,value:s}){this.values[e][t]=s,this.$emit("input",this.values)},onHeader(t){this.$emit("header",t)},onOption(t,e,s){this.$emit("option",t,e,s)},onSort(){this.$emit("input",this.values),this.$emit("sort",this.values)},rowIsSelectable(t){return!0===this.selecting&&!1!==t.selectable},rowIsSortable(t){return!0===this.sortable&&!1===this.selecting&&!1!==t.sortable},width(t){return"string"!=typeof t?"auto":!1===t.includes("/")?t:this.$helper.ratio(t,"auto",!1)}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-table",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-disabled":t.disabled}},[e("table",{style:{"--table-index-width":t.indexWidth},attrs:{"data-disabled":t.disabled,"data-indexed":t.hasIndexColumn,"data-selecting":t.selecting}},[e("thead",[e("tr",[t.hasIndexColumn?e("th",{staticClass:"k-table-index-column",attrs:{"data-mobile":"true"}},[t._v(" # ")]):t._e(),t._l(t.columns,function(s,i){return e("th",{key:i+"-header",staticClass:"k-table-column",style:{width:t.width(s.width)},attrs:{"data-align":s.align,"data-column-id":i,"data-mobile":s.mobile},on:{click:function(e){return t.onHeader({column:s,columnIndex:i})}}},[t._t("header",function(){return[t._v(" "+t._s(t.label(s,i))+" ")]},null,{column:s,columnIndex:i,label:t.label(s,i)})],2)}),t.hasOptions?e("th",{staticClass:"k-table-options-column",attrs:{"data-mobile":"true"}}):t._e()],2)]),e("k-draggable",{attrs:{list:t.values,options:t.dragOptions,handle:!0,element:"tbody"},on:{change:t.onChange,end:t.onSort}},[0===t.rows.length?e("tr",[e("td",{staticClass:"k-table-empty",attrs:{colspan:t.colspan}},[t._v(" "+t._s(t.empty)+" ")])]):t._l(t.values,function(s,i){return e("tr",{key:s.id??s._id??s.value??JSON.stringify(s),class:{"k-table-sortable-row":t.rowIsSortable(s)},attrs:{"data-selecting":t.selecting,"data-selectable":t.rowIsSelectable(s),"data-sortable":t.rowIsSortable(s)}},[t.hasIndexColumn?e("td",{staticClass:"k-table-index-column",attrs:{"data-mobile":"true"}},[t._t("index",function(){return[e("div",{staticClass:"k-table-index",domProps:{textContent:t._s(t.index+i)}})]},null,{row:s,rowIndex:i}),t.rowIsSortable(s)?e("k-sort-handle",{staticClass:"k-table-sort-handle"}):t._e()],2):t._e(),t._l(t.columns,function(n,o){return e("k-table-cell",{key:o,staticClass:"k-table-column",style:{width:t.width(n.width)},attrs:{id:o,column:n,field:t.fields[o],row:s,mobile:n.mobile,value:s[o]},on:{input:function(e){return t.onCellUpdate({columnIndex:o,rowIndex:i,value:e})}},nativeOn:{click:function(e){return t.onCell({row:s,rowIndex:i,column:n,columnIndex:o})}}})}),t.hasOptions?e("td",{staticClass:"k-table-options-column",attrs:{"data-mobile":"true"}},[t.selecting?[e("label",{staticClass:"k-table-select-checkbox"},[e("input",{attrs:{disabled:!1===s.selectable,type:"checkbox"},on:{change:function(e){return t.$emit("select",s,i)}}})])]:[t._t("options",function(){return[e("k-options-dropdown",{attrs:{options:s.options??t.options,text:(s.options??t.options).length>1},on:{option:function(e){return t.onOption(e,s,i)}}})]},null,{row:s,rowIndex:i})]],2):t._e()],2)})],2)],1),t.pagination?e("k-pagination",t._b({staticClass:"k-table-pagination",on:{paginate:function(e){return t.$emit("paginate",e)}}},"k-pagination",t.pagination,!1)):t._e()],1)},[]).exports;const $r=lt({inheritAttrs:!1,props:{column:Object,field:Object,id:String,mobile:{type:Boolean,default:!1},row:Object,value:{default:""}},emits:["input"],computed:{component(){return this.$helper.isComponent(`k-${this.type}-field-preview`)?`k-${this.type}-field-preview`:this.$helper.isComponent(`k-table-${this.type}-cell`)?`k-table-${this.type}-cell`:Array.isArray(this.value)?"k-array-field-preview":"object"==typeof this.value?"k-object-field-preview":"k-text-field-preview"},type(){return this.column.type??this.field?.type}}},function(){var t=this,e=t._self._c;return e("td",{class:["k-table-cell",t.$attrs.class],style:t.$attrs.style,attrs:{"data-align":t.column.align,"data-column-id":t.id,"data-mobile":t.mobile}},[!1===t.$helper.object.isEmpty(t.value)?e(t.component,{tag:"component",attrs:{column:t.column,field:t.field,row:t.row,value:t.value},on:{input:function(e){return t.$emit("input",e)}}}):t._e()],1)},[]).exports;const xr=lt({props:{tab:String,tabs:{type:Array,default:()=>[]},theme:{type:String,default:"passive"}},data(){return{observer:null,visible:this.tabs,invisible:[]}},computed:{buttons(){return this.visible.map(this.button)},current(){const t=this.tabs.find(t=>t.name===this.tab)??this.tabs[0];return t?.name},dropdown(){return this.invisible.map(this.button)}},watch:{tabs:{async handler(){this.observer?.disconnect(),await this.$nextTick(),this.$el instanceof Element&&(this.observer=new ResizeObserver(this.resize),this.observer.observe(this.$el))},immediate:!0}},destroyed(){this.observer?.disconnect()},methods:{button(t){const e={...t,current:t.name===this.current,title:t.label,text:t.label??t.text??t.name};return t.badge?e.badge={theme:this.theme,text:t.badge}:delete e.badge,e},async resize(){const t=this.$el.offsetWidth;this.visible=this.tabs,this.invisible=[],await this.$nextTick();const e=[...this.$refs.visible].map(t=>t.$el.offsetWidth);let s=32;for(let i=0;it)return this.visible=this.tabs.slice(0,i),void(this.invisible=this.tabs.slice(i))}}},function(){var t=this,e=t._self._c;return t.tabs.length>1?e("nav",{staticClass:"k-tabs"},[t._l(t.buttons,function(s){return e("k-button",t._b({key:s.name,ref:"visible",refInFor:!0,staticClass:"k-tabs-button",attrs:{variant:"dimmed"}},"k-button",s,!1),[t._v(" "+t._s(s.text)+" ")])}),t.invisible.length?[e("k-button",{staticClass:"k-tabs-button k-tabs-dropdown-button",attrs:{current:!!t.invisible.find(e=>t.tab===e.name),title:t.$t("more"),icon:"dots",variant:"dimmed"},on:{click:function(e){return e.stopPropagation(),t.$refs.more.toggle()}}}),e("k-dropdown-content",{ref:"more",staticClass:"k-tabs-dropdown",attrs:{options:t.dropdown,"align-x":"end"}})]:t._e()],2):t._e()},[]).exports,wr={install(t){t.component("k-bar",er),t.component("k-box",sr),t.component("k-bubble",ir),t.component("k-bubbles",_o),t.component("k-color-frame",ar),t.component("k-column",nr),t.component("k-definition",lr),t.component("k-definitions",cr),t.component("k-dropzone",ur),t.component("k-frame",rr),t.component("k-grid",pr),t.component("k-header",dr),t.component("k-icon-frame",fr),t.component("k-image-frame",gr),t.component("k-image",gr),t.component("k-overlay",kr),t.component("k-stack",br),t.component("k-stat",yr),t.component("k-stats",wn),t.component("k-table",vr),t.component("k-table-cell",$r),t.component("k-tabs",xr)}};const _r=lt({props:{data:Object,disabled:Boolean,element:{type:String,default:"div"},group:String,handle:[String,Boolean],list:Array,move:Function,options:{type:Object,default:()=>({})}},emits:["change","end","sort","start"],data:()=>({sortable:null}),computed:{dragOptions(){return{group:this.group,disabled:this.disabled,handle:!0===this.handle?".k-sort-handle":this.handle,draggable:">*",filter:".k-draggable-footer",ghostClass:"k-sortable-ghost",fallbackClass:"k-sortable-fallback",forceFallback:!0,fallbackOnBody:!0,scroll:document.querySelector(".k-panel-main"),...this.options}}},watch:{dragOptions:{handler(t,e){for(const s in t)t[s]!==e[s]&&this.sortable.option(s,t[s])},deep:!0}},mounted(){this.disableFooter(),this.create()},methods:{async create(){const t=(await Go(async()=>{const{default:t}=await import("./sortable.min.js");return{default:t}},[],import.meta.url)).default;this.sortable=t.create(this.$el,{...this.dragOptions,onStart:t=>{this.$panel.drag.start("data",{}),this.$emit("start",t)},onEnd:t=>{this.$panel.drag.stop(),this.$emit("end",t)},onAdd:t=>{if(this.list){const e=this.getInstance(t.from),s=t.oldDraggableIndex,i=t.newDraggableIndex,n=e.list[s];this.list.splice(i,0,n),this.$emit("change",{added:{element:n,newIndex:i}})}},onUpdate:t=>{if(this.list){const e=t.oldDraggableIndex,s=t.newDraggableIndex,i=this.list[e];this.list.splice(e,1),this.list.splice(s,0,i),this.$emit("change",{moved:{element:i,newIndex:s,oldIndex:e}})}},onRemove:t=>{if(this.list){const e=t.oldDraggableIndex,s=this.list[e];this.list.splice(e,1),this.$emit("change",{removed:{element:s,oldIndex:e}})}},onSort:t=>{this.$emit("sort",t)},onMove:t=>{if(t.dragged.classList.contains("k-draggable-footer"))return!1;if(this.move){const e=t.dragged.__vue__;t.draggedData=e.$props;const s=this.getInstance(t.from);t.fromData=s.$props.data;const i=this.getInstance(t.to);return t.toData=i.$props.data,this.move(t)}return!0}})},disableFooter(){if(this.$slots.footer){const t=[...this.$el.childNodes].slice(-1*this.$slots.footer.length);for(const e of t)e.classList?.add("k-draggable-footer")}},getInstance:t=>"list"in(t=t.__vue__)?t:1===t.$children.length&&"list"in t.$children[0]?t.$children[0]:"k-draggable"===t.$parent.$options._componentTag?t.$parent:void 0}},function(){var t=this;return(0,t._self._c)(t.element,{tag:"component",class:{"k-draggable":!t.dragOptions.disabled}},[t._t("default"),t.$slots.footer?[t._t("footer")]:t._e()],2)},[]).exports;const Sr=lt({data:()=>({error:null}),errorCaptured(t){return this.$panel.debug&&window.console.warn(t),this.error=t,!1},render(){return this.error?this.$slots.error?this.$slots.error[0]:this.$scopedSlots.error?this.$scopedSlots.error({error:this.error}):i("k-box",{attrs:{theme:"negative"}},this.error.message??this.error):this.$slots.default[0]}},null,null).exports;const Cr=lt({props:{html:String},mounted(){try{let t=this.$refs.iframe.contentWindow.document;t.open(),t.write(this.html),t.close()}catch(t){console.error(t)}}},function(){var t=this,e=t._self._c;return e("k-overlay",{staticClass:"k-fatal",attrs:{visible:!0}},[e("div",{staticClass:"k-fatal-box"},[e("div",{staticClass:"k-notification",attrs:{"data-theme":"negative"}},[e("p",[t._v("The JSON response could not be parsed")]),e("k-button",{attrs:{icon:"cancel"},on:{click:function(e){return e.stopPropagation(),t.$panel.notification.close()}}})],1),e("iframe",{ref:"iframe",staticClass:"k-fatal-iframe"})])])},[]).exports;const Or=lt({icons:window.panel.plugins.icons},function(){var t=this,e=t._self._c;return e("svg",{staticClass:"k-icons",attrs:{"aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",overflow:"hidden"}},[e("defs",t._l(t.$options.icons,function(s,i){return e("symbol",{key:i,attrs:{id:"icon-"+i,viewBox:"0 0 24 24"},domProps:{innerHTML:t._s(s)}})}),0)])},[]).exports;const Ar=lt({},function(){var t=this,e=t._self._c;return t.$panel.notification.isOpen?e("div",{staticClass:"k-notification",attrs:{"data-theme":t.$panel.notification.theme}},[e("p",[t._v(t._s(t.$panel.notification.message))]),e("k-button",{attrs:{icon:"cancel"},on:{click:function(e){return t.$panel.notification.close()}}})],1):t._e()},[]).exports;const Mr=lt({},function(){var t=this,e=t._self._c;return!t.$panel.system.isLocal&&t.$panel.isOffline?e("div",{staticClass:"k-offline-warning"},[e("p",[e("k-icon",{attrs:{type:"bolt"}}),t._v(" "+t._s(t.$t("error.offline")))],1)]):t._e()},[]).exports;const Dr=lt({props:{value:{type:Number,default:0,validator:t=>t>=0&&t<=100}}},function(){var t=this;return(0,t._self._c)("progress",{staticClass:"k-progress",attrs:{max:"100"},domProps:{value:t.value}},[t._v(t._s(t.value)+"%")])},[]).exports;const Er=lt({},function(){return(0,this._self._c)("k-button",{staticClass:"k-sort-handle k-sort-button",attrs:{title:this.$t("sort.drag"),icon:"sort","aria-hidden":"true"}})},[]).exports,jr={install(t){t.component("k-draggable",_r),t.component("k-error-boundary",Sr),t.component("k-fatal",Cr),t.component("k-icon",mr),t.component("k-icons",Or),t.component("k-notification",Ar),t.component("k-offline-warning",Mr),t.component("k-progress",Dr),t.component("k-sort-handle",Er)}};const Ir=lt({props:{crumbs:{type:Array,default:()=>[]},label:{type:String,default:"Breadcrumb"}},computed:{dropdown(){return this.crumbs.map(t=>({...t,text:t.label,icon:"angle-right"}))}}},function(){var t=this,e=t._self._c;return e("nav",{staticClass:"k-breadcrumb",attrs:{"aria-label":t.label}},[t.crumbs.length>1?e("div",{staticClass:"k-breadcrumb-dropdown"},[e("k-button",{attrs:{icon:"home"},on:{click:function(e){return t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",attrs:{options:t.dropdown}})],1):t._e(),e("ol",t._l(t.crumbs,function(s,i){return e("li",{key:i},[e("k-button",{staticClass:"k-breadcrumb-link",attrs:{icon:s.loading?"loader":s.icon,link:s.link,disabled:!s.link,text:s.text??s.label,title:s.text??s.label,current:i===t.crumbs.length-1&&"page",variant:"dimmed",size:"sm"}})],1)}),0)])},[]).exports;const Lr=lt({props:{items:{type:Array},name:{default:"items",type:String},selected:{type:String},type:{default:"radio",type:String}},emits:["select"]},function(){var t=this,e=t._self._c;return e("nav",{staticClass:"k-browser"},[e("div",{staticClass:"k-browser-items"},t._l(t.items,function(s){return e("label",{key:s.value,staticClass:"k-browser-item",attrs:{"aria-selected":t.selected===s.value}},[e("input",{attrs:{name:t.name,type:t.type},domProps:{checked:t.selected===s.value},on:{change:function(e){return t.$emit("select",s)}}}),s.image?e("k-item-image",{staticClass:"k-browser-item-image",attrs:{image:{...s.image,cover:!0,back:"black"}}}):t._e(),e("span",{staticClass:"k-browser-item-info"},[t._v(" "+t._s(s.label)+" ")])],1)}),0)])},[]).exports;const Br=lt({props:{buttons:Array,layout:String,variant:String,theme:String,size:String,responsive:Boolean}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-button-group",attrs:{"data-layout":t.layout}},[t.$slots.default?t._t("default"):t._l(t.buttons,function(s,i){return e("k-button",t._b({key:i},"k-button",{variant:t.variant,theme:t.theme,size:t.size,responsive:t.responsive,...s},!1))})],2)},[]).exports;const Tr=lt({props:{limit:{default:50,type:Number},opened:{type:String},selected:{type:String}},emits:["select"],data(){return{files:[],page:null,pagination:null,view:this.opened?"files":"tree"}},methods:{paginate(t){this.selectPage(this.page,t.page)},selectFile(t){this.$emit("select",t)},async selectPage(t,e=1){this.page=t;const s="/"===t.id?"/site/files":"/pages/"+this.$api.pages.id(t.id)+"/files",{data:i,pagination:n}=await this.$api.get(s,{select:"filename,id,panelImage,url,uuid",limit:this.limit,page:e});this.pagination=n,this.files=i.map(t=>({label:t.filename,image:t.panelImage,id:t.id,url:t.url,uuid:t.uuid,value:t.uuid??t.url})),this.view="files"},async togglePage(){await this.$nextTick(),this.$refs.tree.scrollIntoView({behaviour:"smooth",block:"nearest",inline:"nearest"})}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-file-browser",attrs:{"data-view":t.view}},[e("div",{staticClass:"k-file-browser-layout"},[e("aside",{ref:"tree",staticClass:"k-file-browser-tree"},[e("k-page-tree",{attrs:{current:t.page?.value??t.opened},on:{select:t.selectPage,toggleBranch:t.togglePage}})],1),e("div",{ref:"items",staticClass:"k-file-browser-items"},[e("k-button",{staticClass:"k-file-browser-back-button",attrs:{icon:"angle-left",text:t.page?.label},on:{click:function(e){t.view="tree"}}}),t.files.length?e("k-browser",{attrs:{items:t.files,selected:t.selected},on:{select:t.selectFile}}):t._e()],1),e("div",{staticClass:"k-file-browser-pagination",on:{click:function(t){t.stopPropagation()}}},[t.pagination?e("k-pagination",t._b({attrs:{details:!0},on:{paginate:t.paginate}},"k-pagination",t.pagination,!1)):t._e()],1)])])},[]).exports;const Pr=lt({props:{diff:Object,tab:String,tabs:{type:Array,default:()=>[]}},computed:{withBadges(){const t=Object.keys(this.diff);return this.tabs.map(e=>{const s=[];for(const t in e.columns)for(const i in e.columns[t].sections)if("fields"===e.columns[t].sections[i].type)for(const n in e.columns[t].sections[i].fields)s.push(n);return e.badge=s.filter(e=>t.includes(e.toLowerCase())).length,e})}}},function(){var t=this;return(0,t._self._c)("k-tabs",{staticClass:"k-model-tabs",attrs:{tab:t.tab,tabs:t.withBadges,theme:"notice"}})},[]).exports;const qr=lt({props:{axis:String,disabled:Boolean,element:{type:String,default:"div"},select:{type:String,default:":where(button, a):not(:disabled)"}},emits:["next","prev"],computed:{keys(){switch(this.axis){case"x":return{ArrowLeft:this.prev,ArrowRight:this.next};case"y":return{ArrowUp:this.prev,ArrowDown:this.next};default:return{ArrowLeft:this.prev,ArrowRight:this.next,ArrowUp:this.prev,ArrowDown:this.next}}}},mounted(){this.$el.addEventListener("keydown",this.keydown)},destroyed(){this.$el.removeEventListener("keydown",this.keydown)},methods:{focus(t=0,e){this.move(t,e)},keydown(t){if(this.disabled)return!1;this.keys[t.key]?.apply(this,[t])},move(t=0,e){const s=[...this.$el.querySelectorAll(this.select)];let i=s.findIndex(t=>t===document.activeElement||t.contains(document.activeElement));switch(-1===i&&(i=0),t){case"first":t=0;break;case"next":t=i+1;break;case"last":t=s.length-1;break;case"prev":t=i-1}t<0?this.$emit("prev"):t>=s.length?this.$emit("next"):s[t]?.focus(),e?.preventDefault()},next(t){this.move("next",t)},prev(t){this.move("prev",t)}}},function(){var t=this;return(0,t._self._c)(t.element,{tag:"component",staticClass:"k-navigate"},[t._t("default")],2)},[]).exports;const Nr=lt({name:"k-tree",inheritAttrs:!1,props:{element:{type:String,default:"k-tree"},current:{type:String},items:{type:[Array,Object]},level:{default:0,type:Number}},emits:["close","open","select","toggle"],data(){return{state:this.items}},methods:{arrow:t=>!0===t.loading?"loader":t.open?"angle-down":"angle-right",close(t){this.$set(t,"open",!1),this.$emit("close",t)},isItem:(t,e)=>t.value===e,open(t){this.$set(t,"open",!0),this.$emit("open",t)},select(t){this.$emit("select",t)},toggle(t){this.$emit("toggle",t),!0===t.open?this.close(t):this.open(t)}}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-tree",t.$options.name,t.$attrs.class],style:{"--tree-level":t.level,...t.$attrs.style}},t._l(t.state,function(s){return e("li",{key:s.value,attrs:{"aria-expanded":s.open,"aria-current":t.isItem(s,t.current)}},[e("p",{staticClass:"k-tree-branch"},[e("button",{staticClass:"k-tree-toggle",attrs:{disabled:!s.hasChildren,type:"button"},on:{click:function(e){return t.toggle(s)}}},[e("k-icon",{attrs:{type:t.arrow(s)}})],1),e("button",{staticClass:"k-tree-folder",attrs:{disabled:s.disabled,type:"button"},on:{click:function(e){return t.select(s)},dblclick:function(e){return t.toggle(s)}}},[e("k-icon-frame",{attrs:{icon:s.icon??"folder"}}),e("span",{staticClass:"k-tree-folder-label"},[t._v(t._s(s.label))])],1)]),s.hasChildren&&s.open?[e(t.$options.name,t._b({ref:s.value,refInFor:!0,tag:"component",attrs:{items:s.children,level:t.level+1},on:{close:function(e){return t.$emit("close",e)},open:function(e){return t.$emit("open",e)},select:function(e){return t.$emit("select",e)},toggle:function(e){return t.$emit("toggle",e)}}},"component",t.$props,!1))]:t._e()],2)}),0)},[]).exports;const Fr=lt({name:"k-page-tree",extends:Nr,inheritAttrs:!1,props:{current:{type:String},move:{type:String},root:{default:!0,type:Boolean}},data:()=>({state:[]}),async mounted(){if(this.items)this.state=this.items;else{this.state=[{icon:"loader"}];const t=await this.load(null);await this.open(t[0]),this.state=this.root?t:t[0].children,this.current&&this.preselect(this.current)}},methods:{findItem(t){return this.state.find(e=>this.isItem(e,t))},isItem:(t,e)=>t.value===e||t.uuid===e||t.id===e,async load(t){return await this.$panel.get("site/tree",{query:{move:this.move??null,parent:t}})},async open(t){if(t){if(!1===t.hasChildren)return!1;this.$set(t,"loading",!0),"string"==typeof t.children&&(t.children=await this.load(t.children)),this.$set(t,"open",!0),this.$set(t,"loading",!1)}},async preselect(t){const e=(await this.$panel.get("site/tree/parents",{query:{page:t,root:this.root}})).data;let s=this;for(let n=0;nPromise.resolve()}},emits:["paginate"],computed:{detailsText(){return 1===this.limit?this.start:this.start+"-"+this.end},end(){return Math.min(this.start-1+this.limit,this.total)},offset(){return this.start-1},pages(){return Math.ceil(this.total/this.limit)},start(){return(this.page-1)*this.limit+1}},methods:{async goTo(t){try{await this.validate(t),this.$refs.dropdown?.close();const e=((t=Math.max(1,Math.min(t,this.pages)))-1)*this.limit+1;this.$emit("paginate",{page:t,start:e,end:Math.min(e-1+this.limit,this.total),limit:this.limit,offset:e-1,total:this.total})}catch{}},prev(){this.goTo(this.page-1)},next(){this.goTo(this.page+1)}}},function(){var t=this,e=t._self._c;return t.pages>1?e("k-button-group",{staticClass:"k-pagination",attrs:{layout:"collapsed"},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"left",37,e.key,["Left","ArrowLeft"])||"button"in e&&0!==e.button?null:t.prev.apply(null,arguments)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"right",39,e.key,["Right","ArrowRight"])||"button"in e&&2!==e.button?null:t.next.apply(null,arguments)}]}},[e("k-button",{staticClass:"k-pagination-button",attrs:{disabled:t.start<=1,title:t.$t("prev"),icon:"angle-left",size:"xs",variant:"filled"},on:{click:t.prev}}),t.details?[e("k-button",{staticClass:"k-pagination-details",attrs:{disabled:t.total<=t.limit,text:t.total>1?`${t.detailsText} / ${t.total}`:t.total,size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",staticClass:"k-pagination-selector",attrs:{"align-x":"end"},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"left",37,e.key,["Left","ArrowLeft"])||"button"in e&&0!==e.button?null:void e.stopPropagation()},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"right",39,e.key,["Right","ArrowRight"])||"button"in e&&2!==e.button?null:void e.stopPropagation()}]}},[e("form",{attrs:{method:"dialog"},on:{click:function(t){t.stopPropagation()},submit:function(e){return t.goTo(t.$refs.page.value)}}},[e("label",[t._v(" "+t._s(t.$t("pagination.page"))+": "),e("select",{ref:"page",attrs:{autofocus:!0}},t._l(t.pages,function(s){return e("option",{key:s,domProps:{selected:t.page===s,value:s}},[t._v(" "+t._s(s)+" ")])}),0)]),e("k-button",{attrs:{type:"submit",icon:"check"}})],1)])]:t._e(),e("k-button",{staticClass:"k-pagination-button",attrs:{disabled:t.end>=t.total,title:t.$t("next"),icon:"angle-right",size:"xs",variant:"filled"},on:{click:t.next}})],2):t._e()},[]).exports;const Yr=lt({props:{prev:{type:[Boolean,Object],default:!1},next:{type:[Boolean,Object],default:!1}},computed:{buttons(){return[{...this.button(this.prev),icon:"angle-left"},{...this.button(this.next),icon:"angle-right"}]},isFullyDisabled(){return 0===this.buttons.filter(t=>!t.disabled).length}},methods:{button:t=>t||{disabled:!0,link:"#"}}},function(){var t=this,e=t._self._c;return t.isFullyDisabled?t._e():e("k-button-group",{staticClass:"k-prev-next",attrs:{buttons:t.buttons,layout:"collapsed",size:"xs"}})},[]).exports;const Rr=lt({mixins:[Ft],props:{defaultType:String,isLoading:Boolean,pagination:{type:Object,default:()=>({})},results:Array,types:{type:Object,default:()=>({})}},emits:["close","more","navigate","search"],data(){return{selected:-1,type:this.types[this.defaultType]?this.defaultType:Object.keys(this.types)[0]}},computed:{typesDropdown(){return Object.values(this.types).map(t=>({...t,current:this.type===t.id,click:()=>{this.type=t.id,this.focus()}}))}},watch:{type(){this.search()}},methods:{focus(){this.$refs.input?.focus()},onDown(){this.select(Math.min(this.selected+1,this.results.length-1))},onEnter(){this.$emit("navigate",this.results[this.selected]??this.results[0])},onUp(){this.select(Math.max(this.selected-1,-1))},async search(){this.$refs.types?.close(),this.select?.(-1),this.$emit("search",{type:this.type,query:this.query})},select(t){this.selected=t;const e=this.$refs.results?.$el.querySelectorAll(".k-item")??[];for(const s of e)delete s.dataset.selected;t>=0&&(e[t].dataset.selected=!0)}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-search-bar"},[e("div",{staticClass:"k-search-bar-input"},[t.typesDropdown.length>1?[e("k-button",{staticClass:"k-search-bar-types",attrs:{dropdown:!0,icon:t.types[t.type].icon,text:t.types[t.type].label,variant:"dimmed"},on:{click:function(e){return t.$refs.types.toggle()}}}),e("k-dropdown-content",{ref:"types",attrs:{options:t.typesDropdown}})]:t._e(),e("k-search-input",{ref:"input",attrs:{"aria-label":t.$t("search"),autofocus:!0,value:t.query},on:{input:function(e){t.query=e}},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:(e.preventDefault(),t.onDown.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:(e.preventDefault(),t.onUp.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.onEnter.apply(null,arguments)}]}}),e("k-button",{staticClass:"k-search-bar-close",attrs:{icon:t.isLoading?"loader":"cancel",title:t.$t("close")},on:{click:function(e){return t.$emit("close")}}})],2),t.results?e("div",{staticClass:"k-search-bar-results"},[t.results.length?e("k-collection",{ref:"results",attrs:{items:t.results},nativeOn:{mouseout:function(e){return t.select(-1)}}}):t._e(),e("footer",{staticClass:"k-search-bar-footer"},[0===t.results.length?e("p",[t._v(" "+t._s(t.$t("search.results.none"))+" ")]):t._e(),t.results.length({fields:{},isLoading:!0,issue:null}),watch:{timestamp(){this.fetch()}},mounted(){this.fetch()},methods:{async fetch(){try{const t=await this.load();this.fields=t.fields;for(const e in this.fields)this.fields[e].section=this.name,this.fields[e].endpoints={field:this.parent+"/fields/"+e,section:this.parent+"/sections/"+this.name,model:this.parent}}catch(t){this.issue=t}finally{this.isLoading=!1}}}},function(){var t=this,e=t._self._c;return t.isLoading?t._e():e("k-section",{class:["k-fields-section",t.$attrs.class],style:t.$attrs.style,attrs:{headline:t.issue?t.$t("error"):null}},[t.issue?e("k-box",{attrs:{text:t.issue.message,html:!1,icon:"alert",theme:"negative"}}):t._e(),e("k-form",{attrs:{fields:t.fields,validate:!0,value:t.content,disabled:t.lock&&"lock"===t.lock.state},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})],1)},[]).exports;const Jr=lt({mixins:[Kr,Sn],inheritAttrs:!1,props:{column:String},data:()=>({data:[],error:null,isLoading:!1,isProcessing:!1,options:{batch:!1,columns:{},empty:null,fields:{},headline:null,help:null,layout:"list",link:null,max:null,min:null,size:null,sortable:null},pagination:{page:null},searchterm:null,searching:!1}),computed:{addIcon:()=>"add",batchDeleteConfirmMessage(){return this.$t(`${this.type}.delete.confirm.selected`,{count:this.selected.length})},batchEditingEvent:()=>"section.selecting",buttons(){let t=[];return this.isSelecting?this.batchEditingButtons:(this.canSearch&&t.push({icon:"filter",text:this.$t("filter"),click:this.onSearchToggle,responsive:!0}),this.canSelect&&t.push(this.batchEditingToggle),this.canAdd&&t.push({icon:this.addIcon,text:this.$t("add"),click:this.onAdd,responsive:!0}),t)},canAdd:()=>!0,canDrop:()=>!1,canSearch(){return this.options.search},canSelect(){return this.options.batch&&this.items.length>0},collection(){return{columns:this.options.columns,empty:this.emptyPropsWithSearch,fields:this.fields,layout:this.options.layout,help:this.options.help,items:this.items,pagination:this.pagination,selecting:!this.isProcessing&&this.isSelecting,sortable:!this.isProcessing&&this.options.sortable,size:this.options.size}},emptyProps(){return{icon:"page",text:this.$t("pages.empty")}},emptyPropsWithSearch(){return{...this.emptyProps,text:this.searching?this.$t("search.results.none"):this.options.empty??this.emptyProps.text}},fields(){const t={};for(const e in this.options.columns??{})t[e]={...this.options.fields?.[e]??this.options.columns[e],disabled:!0};return t},items(){return this.data},isInvalid(){return!(this.searchterm?.length>0)&&(!!(this.options.min&&this.data.lengththis.options.max))},paginationId(){return"kirby$pagination$"+this.parent+"/"+this.name},type:()=>"models"},watch:{searchterm(){this.search()},timestamp(){this.reload()}},created(){this.$events.on("model.update",this.reload)},destroyed(){this.$events.off("model.update",this.reload)},mounted(){this.search=Nt(this.search,200),this.load()},methods:{async deleteSelected(){if(0!==this.selected.length){this.isProcessing=!0;try{await this.$api.delete(this.parent+"/sections/"+this.name+"/delete",{ids:this.selected.map(t=>t.id)})}catch(t){this.$panel.notification.error(t)}finally{this.$panel.events.emit("model.update"),this.isProcessing=!1}}},async load(t){this.isProcessing=!0,t||(this.isLoading=!0);const e=this.pagination.page??sessionStorage.getItem(this.paginationId)??null;try{const t=await this.$api.get(this.parent+"/sections/"+this.name,{page:e,searchterm:this.searchterm});this.options=t.options,this.pagination=t.pagination,this.data=t.data}catch(s){this.error=s.message}finally{this.isProcessing=!1,this.isLoading=!1}},onAction(){},onAdd(){},onBatchDelete(){this.deleteSelected()},onChange(){},onDrop(){},onPaginate(t){sessionStorage.setItem(this.paginationId,t.page),this.pagination=t,this.reload()},onSearchToggle(){this.searching=!this.searching,this.searchterm=null},onSort(){},async reload(){this.stopSelecting(),await this.load(!0)},async search(){this.pagination.page=0,await this.reload()},update(){this.reload(),this.$events.emit("model.update")}}},function(){var t=this,e=t._self._c;return!1===t.isLoading?e("k-section",{class:["k-models-section",`k-${t.type}-section`,t.$attrs.class],style:t.$attrs.style,attrs:{buttons:t.buttons,"data-processing":t.isProcessing,headline:t.options.headline??" ",invalid:t.isInvalid,link:t.options.link,required:Boolean(t.options.min)}},[t.error?e("k-box",{attrs:{icon:"alert",theme:"negative"}},[e("k-text",{attrs:{size:"small"}},[e("strong",[t._v(" "+t._s(t.$t("error.section.notLoaded",{name:t.name}))+": ")]),t._v(" "+t._s(t.error)+" ")])],1):[e("k-dropzone",{attrs:{disabled:!t.canDrop},on:{drop:t.onDrop}},[t.searching&&t.options.search?e("k-input",{staticClass:"k-models-section-search",attrs:{autofocus:!0,placeholder:t.$t("filter")+" …",value:t.searchterm,icon:"search",type:"text"},on:{input:function(e){t.searchterm=e}},nativeOn:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:t.onSearchToggle.apply(null,arguments)}}}):t._e(),e("k-collection",t._g(t._b({on:{action:t.onAction,change:t.onChange,select:t.onSelect,sort:t.onSort,paginate:t.onPaginate}},"k-collection",t.collection,!1),t.canAdd?{empty:t.onAdd}:{}))],1)]],2):t._e()},[]).exports;const Gr=lt({extends:Jr,computed:{addIcon:()=>"upload",canAdd(){return this.$panel.permissions.files.create&&!1!==this.options.upload},canDrop(){return!1!==this.canAdd},emptyProps(){return{icon:"image",text:this.$t("files.empty")}},items(){return this.data.map(t=>{const e=t.permissions.sort&&this.options.sortable&&!this.isSelecting,s=t.permissions.delete&&this.data.length>this.options.min;return{...t,column:this.column,data:{"data-id":t.id,"data-template":t.template},options:this.$dropdown(t.link,{query:{delete:s,sort:e,view:"list"}}),selectable:this.isSelecting&&s,sortable:e}})},type:()=>"files",uploadOptions(){return{...this.options.upload,url:this.$panel.urls.api+"/"+this.options.upload.api}}},mounted(){this.$events.on("file.sort",this.reload)},destroyed(){this.$events.off("file.sort",this.reload)},methods:{onAction(t,e){"replace"===t&&this.replace(e)},onAdd(){this.canAdd&&this.$panel.upload.pick(this.uploadOptions)},onDrop(t){this.canAdd&&this.$panel.upload.open(t,this.uploadOptions)},async onSort(t){if(!1===this.options.sortable)return!1;this.isProcessing=!0;try{await this.$api.patch(this.options.apiUrl+"/sort",{files:t.map(t=>t.id),index:this.pagination.offset}),this.$panel.notification.success(),this.$events.emit("file.sort")}catch(e){this.$panel.error(e),this.reload()}finally{this.isProcessing=!1}},replace(t){this.$panel.upload.replace(t,this.uploadOptions)}}},null,null).exports;const Xr=lt({mixins:[Kr],inheritAttrs:!1,data:()=>({icon:null,label:null,text:null,theme:null}),async mounted(){const t=await this.load();this.icon=t.icon,this.label=t.label,this.text=t.text,this.theme=t.theme??"info"}},function(){var t=this,e=t._self._c;return e("k-section",{class:["k-info-section",t.$attrs.class],style:t.$attrs.style,attrs:{headline:t.label}},[e("k-box",{attrs:{html:!0,icon:t.icon,text:t.text,theme:t.theme}})],1)},[]).exports;const Zr=lt({extends:Jr,computed:{canAdd(){return this.options.add&&this.$panel.permissions.pages.create},items(){return this.data.map(t=>{const e=t.permissions.sort&&this.options.sortable&&!this.isSelecting,s=t.permissions.delete&&this.data.length>this.options.min,i={...this.$helper.page.status(t.status,!1===t.permissions.changeStatus),class:"k-page-status-icon-option",dialog:t.link+"/changeStatus"};return{...t,buttons:[i,...t.buttons??[]],column:this.column,data:{"data-id":t.id,"data-status":t.status,"data-template":t.template},flag:i,deletable:s,options:this.$dropdown(t.link,{query:{view:"list",delete:s,sort:e}}),selectable:this.isSelecting&&s,sortable:e}})},type:()=>"pages"},mounted(){this.$events.on("page.changeStatus",this.reload),this.$events.on("page.sort",this.reload)},destroyed(){this.$events.off("page.changeStatus",this.reload),this.$events.off("page.sort",this.reload)},methods:{onAdd(){this.canAdd&&this.$dialog("pages/create",{query:{parent:this.options.link??this.parent,view:this.parent,section:this.name}})},async onChange(t){let e=null;if(t.added&&(e="added"),t.moved&&(e="moved"),e){this.isProcessing=!0;const i=t[e].element,n=t[e].newIndex+1+this.pagination.offset;try{await this.$api.pages.changeStatus(i.id,"listed",n),this.$panel.notification.success(),this.$events.emit("page.sort",i)}catch(s){this.$panel.error({message:s.message,details:s.details}),await this.reload()}finally{this.isProcessing=!1}}}}},null,null).exports;const Qr=lt({mixins:[Kr],data:()=>({headline:null,isLoading:!0,reports:null,size:null}),async mounted(){const t=await this.load();this.isLoading=!1,this.headline=t.headline,this.reports=t.reports,this.size=t.size},methods:{}},function(){var t=this,e=t._self._c;return!1===t.isLoading?e("k-section",{staticClass:"k-stats-section",attrs:{headline:t.headline}},[e("k-stats",{attrs:{reports:t.reports,size:t.size}})],1):t._e()},[]).exports,ta={install(t){t.component("k-section",Ur),t.component("k-sections",Vr),t.component("k-fields-section",Wr),t.component("k-files-section",Gr),t.component("k-info-section",Xr),t.component("k-pages-section",Zr),t.component("k-stats-section",Qr)}};const ea=lt({props:{theme:{type:String,default:"positive"}}},function(){var t=this;return(0,t._self._c)("ul",{staticClass:"k-checklist k-stack",attrs:{"data-theme":t.theme}},[t._t("default")],2)},[]).exports;const sa=lt({components:{"k-highlight":()=>Go(()=>import("./Highlight.min.js"),__vite__mapDeps([5,1]),import.meta.url)},props:{language:{type:String}}},function(){var t=this,e=t._self._c;return e("k-highlight",[e("div",[e("pre",{staticClass:"k-code",attrs:{"data-language":t.language}},[e("code",{key:t.$slots.default[0].text+"-"+t.language,class:t.language?`language-${t.language}`:null},[t._t("default")],2)])])])},[]).exports;const ia=lt({props:{type:String}},function(){var t=this;return(0,t._self._c)("code",{attrs:{"data-type":(t.type??"true").toLowerCase()}},[t._t("default")],2)},[]).exports;const na=lt({props:{link:String,tag:{type:String,default:"h2"}},emits:["click"]},function(){var t=this,e=t._self._c;return e(t.tag,{tag:"component",staticClass:"k-headline",on:{click:function(e){return t.$emit("click",e)}}},[t.link?e("k-link",{attrs:{to:t.link}},[t._t("default")],2):t._t("default")],2)},[]).exports;const oa=lt({props:{input:{type:[String,Number,Boolean]},invalid:{type:Boolean},link:{type:String},required:{default:!1,type:Boolean},type:{default:"field",type:String}},computed:{element(){return"section"===this.type||!1===this.input?"h2":"label"}}},function(){var t=this,e=t._self._c;return e(t.element,{tag:"component",staticClass:"k-label",class:"k-"+t.type+"-label",attrs:{for:t.input}},[t.link?e("k-link",{attrs:{to:t.link}},[e("span",{staticClass:"k-label-text"},[t._t("default")],2)]):e("span",{staticClass:"k-label-text"},[t._t("default")],2),t.required?e("abbr",{attrs:{title:t.$t(t.type+".required")}},[t._v("✶")]):t._e(),e("abbr",{staticClass:"k-label-invalid",attrs:{title:t.$t(t.type+".invalid"),"data-theme":"negative"}},[t._v(" × ")])],1)},[]).exports;const ra=lt({props:{align:String,html:String,size:String},computed:{attrs(){return{class:"k-text","data-align":this.align,"data-size":this.size}}}},function(){var t=this,e=t._self._c;return t.html?e("div",t._b({domProps:{innerHTML:t._s(t.html)}},"div",t.attrs,!1)):e("div",t._b({},"div",t.attrs,!1),[t._t("default")],2)},[]).exports,aa={install(t){t.component("k-checklist",ea),t.component("k-code",sa),t.component("k-code-token",ia),t.component("k-headline",na),t.component("k-label",oa),t.component("k-text",ra)}},la={props:{back:String,color:String,cover:{type:Boolean,default:!0},icon:String,type:String,url:String}};const ca=lt({mixins:[la],computed:{fallbackColor(){return this.type?.startsWith("image/")?"orange-500":this.type?.startsWith("audio/")?"aqua-500":this.type?.startsWith("video/")?"yellow-500":"white"},fallbackIcon(){return this.type?.startsWith("image/")?"image":this.type?.startsWith("audio/")?"audio":this.type?.startsWith("video/")?"video":"file"},isPreviewable(){return["image/jpeg","image/jpg","image/gif","image/png","image/webp","image/avif","image/svg+xml"].includes(this.type)}}},function(){var t=this,e=t._self._c;return e("a",{staticClass:"k-upload-item-preview",attrs:{href:t.url,target:"_blank"}},[t.isPreviewable?e("k-image",{attrs:{cover:t.cover,src:t.url,back:t.back??"pattern"}}):e("k-icon-frame",{attrs:{color:t.color??t.fallbackColor,icon:t.icon??t.fallbackIcon,back:t.back??"black",ratio:"1/1"}})],1)},[]).exports;const ua=lt({mixins:[la],props:{completed:Boolean,editable:{type:Boolean,default:!0},error:[String,Boolean],extension:String,id:String,name:String,niceSize:String,progress:Number,removable:{type:Boolean,default:!0}},emits:["remove","rename"]},function(){var t=this,e=t._self._c;return e("li",{staticClass:"k-upload-item",attrs:{"data-completed":t.completed}},[e("k-upload-item-preview",{attrs:{back:t.back,color:t.color,cover:t.cover,icon:t.icon,type:t.type,url:t.url}}),e("k-input",{staticClass:"k-upload-item-input",attrs:{disabled:t.completed||!t.editable,after:"."+t.extension,required:!0,value:t.name,allow:"a-z0-9@._-",type:"slug"},on:{input:function(e){return t.$emit("rename",e)}}}),e("div",{staticClass:"k-upload-item-body"},[e("p",{staticClass:"k-upload-item-meta"},[t._v(" "+t._s(t.niceSize)+" "),t.progress?[t._v(" - "+t._s(t.progress)+"% ")]:t._e()],2),t.error?e("p",{staticClass:"k-upload-item-error",attrs:{"data-theme":"negative"}},[t._v(" "+t._s(t.error)+" ")]):t.progress?e("k-progress",{staticClass:"k-upload-item-progress",attrs:{value:t.progress}}):t._e()],1),e("div",{staticClass:"k-upload-item-toggle"},[t.completed||t.progress||!t.removable?!t.completed&&t.progress?e("k-button",{attrs:{disabled:!0,icon:"loader"}}):t.completed?e("k-button",{attrs:{icon:"check",theme:"positive"},on:{click:function(e){return t.$emit("remove")}}}):t._e():e("k-button",{attrs:{icon:"remove"},on:{click:function(e){return t.$emit("remove")}}})],1)],1)},[]).exports;const pa=lt({props:{items:Array},emits:["remove","rename"]},function(){var t=this,e=t._self._c;return e("ul",{staticClass:"k-upload-items"},t._l(t.items,function(s){return e("k-upload-item",t._b({key:s.id,on:{rename:function(e){return t.$emit("rename",s,e)},remove:function(e){return t.$emit("remove",s)}}},"k-upload-item",s,!1))}),1)},[]).exports,da={install(t){t.component("k-upload-item",ua),t.component("k-upload-item-preview",ca),t.component("k-upload-items",pa)}};const ha=lt({props:{status:{default:"missing",type:String}}},function(){var t=this,e=t._self._c;return t.$panel.activation.isOpen?e("div",{staticClass:"k-activation"},[e("p",[e("strong",[t._v(t._s(t.$t(`license.status.${t.status}.bubble`)))]),"missing"===t.status?[e("a",{attrs:{href:"https://getkirby.com/buy",target:"_blank"}},[t._v(t._s(t.$t("license.buy")))]),t._v(" & "),e("button",{attrs:{type:"button"},on:{click:function(e){return t.$dialog("registration")}}},[t._v(" "+t._s(t.$t("license.activate"))+" ")])]:t._e()],2),e("k-button",{staticClass:"k-activation-toggle",attrs:{icon:"cancel-small"},on:{click:function(e){return t.$panel.activation.close()}}})],1):t._e()},[]).exports;const ma=lt({mixins:[Me],props:{hasDiff:Boolean,options:String},computed:{changesBadge(){return this.hasDiff||this.$panel.content.hasDiff()?{theme:this.$panel.content.isLocked()?"red":"orange"}:null}},methods:{change(t){this.$reload({query:{language:t.code}})}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-view-button k-languages-dropdown"},[e("k-button",t._b({attrs:{badge:t.changesBadge,dropdown:!0},on:{click:function(e){return t.$refs.dropdown.toggle()}}},"k-button",t.$props,!1)),e("k-dropdown-content",{ref:"dropdown",attrs:{options:t.$dropdown(t.options),"align-x":"end"},scopedSlots:t._u([{key:"item",fn:function({item:s,index:i}){return[e("k-button",t._b({key:"item-"+i,staticClass:"k-dropdown-item k-languages-dropdown-item",on:{click:function(e){return t.change(s)}}},"k-button",s,!1),[t._v(" "+t._s(s.text)+" "),e("span",{staticClass:"k-languages-dropdown-item-info",attrs:{"data-lock":s.lock}},[s.changes?e("k-icon",{staticClass:"k-languages-dropdown-item-icon",attrs:{alt:t.$t("lock.unsaved"),type:s.lock?"lock":"edit-line"}}):t._e(),e("span",{staticClass:"k-languages-dropdown-item-code"},[t._v(" "+t._s(s.code.toUpperCase())+" ")])],1)])]}}])})],1)},[]).exports;const fa=lt({extends:De,props:{options:[Array,String],size:{default:"sm"},variant:{default:"filled"}},emits:["action","click"],computed:{hasDropdown(){return!0===Array.isArray(this.options)?this.options.length>0:Boolean(this.options)}},methods:{onClick(){if(this.hasDropdown)return this.$refs.dropdown.toggle();this.$emit("click")}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-view-button"},[e("k-button",t._b({attrs:{dropdown:t.dropdown||t.hasDropdown},on:{click:t.onClick}},"k-button",t.$props,!1)),t.hasDropdown?e("k-dropdown-content",{ref:"dropdown",attrs:{options:Array.isArray(t.options)?t.options:t.$dropdown(t.options),"align-x":"end"},on:{action:function(e){return t.$emit("action",e)}}}):t._e()],1)},[]).exports;const ga=lt({extends:fa,emits:["action"]},function(){var t=this;return(0,t._self._c)("k-view-button",t._b({attrs:{disabled:t.$panel.content.isLocked()},on:{action:function(e){return t.$emit("action",e)}}},"k-view-button",t.$props,!1))},[]).exports;const ka=lt({extends:fa},function(){var t=this;return(0,t._self._c)("k-view-button",t._b({attrs:{disabled:t.disabled||t.$panel.content.isLocked()}},"k-view-button",t.$props,!1))},[]).exports;const ba=lt({props:{size:String,text:{type:String,default:()=>window.panel.t("theme")},variant:String},computed:{current(){return this.$panel.theme.current},options(){return[{text:this.$t("theme.light"),icon:"sun",disabled:"light"===this.setting,click:()=>this.$panel.theme.set("light")},{text:this.$t("theme.dark"),icon:"moon",disabled:"dark"===this.setting,click:()=>this.$panel.theme.set("dark")},{text:this.$t("theme.automatic"),icon:"wand",disabled:"system"===this.setting,click:()=>this.$panel.theme.set("system")}]},setting(){return this.$panel.theme.setting??this.$panel.theme.config}}},function(){var t=this;return(0,t._self._c)("k-view-button",t._b({attrs:{icon:"light"===t.current?"sun":"moon",options:t.options}},"k-view-button",t.$props,!1))},[]).exports;const ya=lt({props:{buttons:{type:Array,default:()=>[]}},emits:["action"],computed:{groups(){return this.$helper.array.split(this.buttons,"-")}},methods:{component(t){return this.$helper.isComponent(t.component)?t.component:"k-view-button"}}},function(){var t=this,e=t._self._c;return t.buttons.length?e("nav",{staticClass:"k-view-buttons"},[t._t("before"),t._l(t.groups,function(s,i){return e("k-button-group",{key:i},t._l(s,function(s){return e(t.component(s),t._b({key:s.key,tag:"component",on:{action:function(e){return t.$emit("action",e)}}},"component",s.props,!1))}),1)}),t._t("after")],2):t._e()},[]).exports,va={install(t){t.component("k-languages-dropdown",ma),t.component("k-settings-view-button",ga),t.component("k-status-view-button",ka),t.component("k-theme-view-button",ba),t.component("k-view-button",fa),t.component("k-view-buttons",ya)}};const $a=lt({computed:{notification(){return"view"!==this.$panel.notification.context||this.$panel.notification.isFatal?null:this.$panel.notification}}},function(){var t=this,e=t._self._c;return e("k-panel",{staticClass:"k-panel-inside"},[e("k-panel-menu"),e("main",{staticClass:"k-panel-main"},[e("k-topbar",{attrs:{breadcrumb:t.$panel.view.breadcrumb,view:t.$panel.view}},[t._t("topbar")],2),t._t("default")],2),t.notification&&"error"!==t.notification.type?e("k-button",{staticClass:"k-panel-notification",attrs:{icon:t.notification.icon,text:t.notification.message,theme:t.notification.theme,variant:"filled"},on:{click:function(e){return t.notification.close()}}}):t._e()],1)},[]).exports;const xa=lt({data:()=>({over:!1}),computed:{activationButton(){return"missing"===this.$panel.license?{dialog:"registration",text:this.$t("activate")}:"legacy"===this.$panel.license&&{dialog:"license",text:this.$t("renew")}},hasSearch(){return this.$helper.object.length(this.$panel.searches)>0},menus(){return this.$helper.array.split(this.$panel.menu.entries,"-")}}},function(){var t=this,e=t._self._c;return e("nav",{staticClass:"k-panel-menu",attrs:{"aria-label":t.$t("menu"),"data-hover":t.$panel.menu.hover},on:{mouseenter:function(e){t.$panel.menu.hover=!0},mouseleave:function(e){t.$panel.menu.hover=!1}}},[e("div",{staticClass:"k-panel-menu-body"},[t.hasSearch?e("k-button",{staticClass:"k-panel-menu-search k-panel-menu-button",attrs:{text:t.$t("search"),icon:"search"},on:{click:function(e){return t.$panel.search()}}}):t._e(),t._l(t.menus,function(s,i){return e("menu",{key:i,staticClass:"k-panel-menu-buttons",attrs:{"data-second-last":i===t.menus.length-2}},t._l(s,function(s){return e("k-button",t._b({key:s.id,staticClass:"k-panel-menu-button",attrs:{title:s.title??s.text}},"k-button",s,!1))}),1)}),t.activationButton?e("menu",[e("k-button",t._b({staticClass:"k-activation-button k-panel-menu-button",attrs:{icon:"key",theme:"love",variant:"filled"}},"k-button",t.activationButton,!1)),e("k-activation",{attrs:{status:t.$panel.license}})],1):t._e()],2),e("k-button",{staticClass:"k-panel-menu-toggle",attrs:{icon:t.$panel.menu.isOpen?"angle-left":"angle-right",title:t.$panel.menu.isOpen?t.$t("collapse"):t.$t("expand"),size:"xs"},on:{click:function(e){return t.$panel.menu.toggle()}}})],1)},[]).exports;const wa=lt({},function(){return(0,this._self._c)("k-panel",{staticClass:"k-panel-outside",attrs:{tabindex:"0"}},[this._t("default")],2)},[]).exports;const _a=lt({},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-panel",attrs:{"data-dragging":t.$panel.drag.isDragging,"data-loading":t.$panel.isLoading,"data-language":t.$panel.language.code,"data-language-default":t.$panel.language.isDefault,"data-menu":t.$panel.menu.isOpen?"true":"false","data-role":t.$panel.user.role,"data-theme":t.$panel.theme.current,"data-translation":t.$panel.translation.code,"data-user":t.$panel.user.id,dir:t.$panel.direction}},[t._t("default"),t.$panel.dialog.isOpen&&!t.$panel.dialog.legacy?e("k-fiber-dialog"):t._e(),t.$panel.drawer.isOpen&&!t.$panel.drawer.legacy?e("k-fiber-drawer"):t._e(),t.$panel.notification.isFatal&&t.$panel.notification.isOpen?e("k-fatal",{attrs:{html:t.$panel.notification.message}}):t._e(),e("k-offline-warning"),e("k-icons"),e("k-overlay",{attrs:{nested:t.$panel.drawer.history.milestones.length>1,visible:t.$panel.drawer.isOpen,type:"drawer"},on:{close:function(e){return t.$panel.drawer.close()}}},[e("portal-target",{staticClass:"k-drawer-portal k-portal",attrs:{name:"drawer",multiple:""}})],1),e("k-overlay",{attrs:{nested:t.$panel.dialog.history.milestones.length>1,visible:t.$panel.dialog.isOpen,type:"dialog"},on:{close:function(e){return t.$panel.dialog.close()}}},[e("portal-target",{staticClass:"k-dialog-portal k-portal",attrs:{name:"dialog",multiple:""}})],1),e("portal-target",{staticClass:"k-overlay-portal k-portal",attrs:{name:"overlay",multiple:""}})],2)},[]).exports;const Sa=lt({props:{breadcrumb:Array,view:Object},computed:{crumbs(){return[{link:this.view.link,label:this.view.label??this.view.breadcrumbLabel,icon:this.view.icon,loading:this.$panel.isLoading},...this.breadcrumb]}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-topbar"},[e("k-button",{staticClass:"k-panel-menu-proxy",attrs:{icon:"bars"},on:{click:function(e){return t.$panel.menu.toggle()}}}),e("k-breadcrumb",{staticClass:"k-topbar-breadcrumb",attrs:{crumbs:t.crumbs}}),e("div",{staticClass:"k-topbar-spacer"}),e("div",{staticClass:"k-topbar-signals"},[t._t("default")],2)],1)},[]).exports,Ca={install(t){t.use(va),t.component("k-activation",ha),t.component("k-panel",_a),t.component("k-panel-inside",$a),t.component("k-panel-menu",xa),t.component("k-panel-outside",wa),t.component("k-topbar",Sa)}};const Oa=lt({props:{error:String,layout:String}},function(){var t=this,e=t._self._c;return e(`k-panel-${t.layout}`,{tag:"component",staticClass:"k-error-view"},["outside"===t.layout?[e("div",[e("k-box",{attrs:{icon:"alert",theme:"negative"}},[t._v(t._s(t.error))])],1)]:[e("k-header",[t._v(t._s(t.$t("error")))]),e("k-box",{attrs:{icon:"alert",theme:"negative"}},[t._v(t._s(t.error))])]],2)},[]).exports;const Aa=lt({mixins:[Ft],props:{type:{default:"pages",type:String}},data:()=>({query:new URLSearchParams(window.location.search).get("query"),pagination:{},results:[]}),computed:{currentType(){return this.$panel.searches[this.type]??Object.values(this.$panel.searches)[0]},empty(){return this.isLoading?this.$t("searching")+"…":this.query.length<2?this.$t("search.min",{min:2}):this.$t("search.results.none")},isLoading(){return this.$panel.searcher.isLoading},tabs(){const t=[];for(const e in this.$panel.searches){const s=this.$panel.searches[e];t.push({label:s.label,link:"/search/?type="+e+"&query="+this.query,name:e})}return t}},watch:{isLoading(t){this.$panel.isLoading=t},query:{handler(){this.search(1)},immediate:!0},type(){this.search()}},methods:{focus(){this.$refs.input?.focus()},onPaginate(t){this.search(t.page)},async search(t){t||(t=new URLSearchParams(window.location.search).get("page")??1);const e=this.$panel.url(window.location,{type:this.currentType.id,query:this.query,page:t});window.history.pushState("","",e.toString());const s=await this.$panel.search(this.currentType.id,this.query,{page:t,limit:15});s&&(this.results=s.results??[],this.pagination=s.pagination)}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-search-view"},[e("k-header",[t._v(" "+t._s(t.$t("search"))+" "),e("k-input",{ref:"input",staticClass:"k-search-view-input",attrs:{slot:"buttons","aria-label":t.$t("search"),autofocus:!0,icon:t.isLoading?"loader":"search",placeholder:t.$t("search")+" …",spellcheck:!1,value:t.query,type:"text"},on:{input:function(e){t.query=e}},slot:"buttons"})],1),e("k-tabs",{attrs:{tab:t.currentType.id,tabs:t.tabs}}),e("div",{staticClass:"k-search-view-results"},[e("k-collection",{attrs:{items:t.results,empty:{icon:t.isLoading?"loader":"search",text:t.empty},pagination:t.pagination},on:{paginate:t.onPaginate}})],1)],1)},[]).exports;const Ma=lt({props:{api:String,blueprint:String,buttons:Array,id:String,link:String,lock:{type:[Boolean,Object]},model:Object,next:Object,prev:Object,permissions:{type:Object,default:()=>({})},tab:{type:Object,default:()=>({columns:[]})},tabs:{type:Array,default:()=>[]},uuid:String,versions:Object},data:()=>({isSaved:!0}),computed:{content(){return this.versions.changes},diff(){return this.$panel.content.diff()},editor(){return this.lock.user.email},hasDiff(){return this.$panel.content.hasDiff()},isLocked(){return this.lock.isLocked},isSaving(){return this.$panel.content.isProcessing},modified(){return this.lock.modified}},mounted(){this.$events.on("beforeunload",this.onBeforeUnload),this.$events.on("content.save",this.onContentSave),this.$events.on("keydown.left",this.toPrev),this.$events.on("keydown.right",this.toNext),this.$events.on("model.reload",this.$reload),this.$events.on("view.save",this.onViewSave)},destroyed(){this.$events.off("beforeunload",this.onBeforeUnload),this.$events.off("content.save",this.onContentSave),this.$events.off("keydown.left",this.toPrev),this.$events.off("keydown.right",this.toNext),this.$events.off("model.reload",this.$reload),this.$events.off("view.save",this.onViewSave)},methods:{onBeforeUnload(t){!0!==this.$panel.content.isProcessing&&!1!==this.isSaved||(t.preventDefault(),t.returnValue="")},onContentSave({api:t,language:e}){t===this.api&&e===this.$panel.language.code&&(this.isSaved=!0)},async onDiscard(){try{await this.$panel.content.discard({api:this.api,language:this.$panel.language.code}),this.$panel.dialog.close(),this.$panel.view.refresh()}catch(t){this.$panel.error(t)}},onInput(t){this.$panel.content.updateLazy(t,{api:this.api,language:this.$panel.language.code})},async onSubmit(){try{await this.$panel.content.publish(this.content,{api:this.api,language:this.$panel.language.code}),this.$panel.notification.success(),this.$events.emit("model.update"),await this.$panel.view.refresh()}catch(t){this.$panel.notification.error(t)}},onViewSave(t){t?.preventDefault?.(),this.onSubmit()},toNext(t){this.next&&"body"===t.target.localName&&this.$go(this.next.link)},toPrev(t){this.prev&&"body"===t.target.localName&&this.$go(this.prev.link)}}},null,null).exports;const Da=lt({extends:Ma,props:{extension:String,filename:String,mime:String,preview:Object,type:String,url:String},methods:{onAction(t){if("replace"===t)return this.$panel.upload.replace({extension:this.extension,filename:this.filename,image:this.preview.image,link:this.link,mime:this.mime,url:this.url})}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-file-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint},scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{staticClass:"k-file-view-header",attrs:{editable:t.permissions.changeName&&!t.isLocked},on:{edit:function(e){return t.$dialog(t.api+"/changeName")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons},on:{action:t.onAction},scopedSlots:t._u([{key:"after",fn:function(){return[e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])})]},proxy:!0}])},[t._v(" "+t._s(t.filename)+" ")]),e("k-file-preview",t._b({attrs:{content:t.content,"is-locked":t.isLocked},on:{input:t.onInput,submit:t.onSubmit}},"k-file-preview",t.preview,!1)),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("file.blueprint",{blueprint:t.$esc(t.blueprint)}),lock:t.lock,parent:t.api,tab:t.tab},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports;const Ea=lt({props:{component:String,content:Object,isLocked:Boolean,props:Object},emits:["input","submit"],computed:{preview(){return this.$helper.isComponent(this.component)?this.component:"k-default-file-preview"}}},function(){var t=this;return(0,t._self._c)(t.preview,t._b({tag:"component",staticClass:"k-file-preview",attrs:{content:t.content,"is-locked":t.isLocked},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}},"component",t.props,!1))},[]).exports;const ja=lt({props:{details:{default:()=>[],type:Array}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-file-preview-details"},[e("dl",[t._l(t.details,function(s){return e("div",{key:s.title},[e("dt",[t._v(t._s(s.title))]),e("dd",[s.link?e("k-link",{attrs:{to:s.link,tabindex:"-1",target:"_blank"}},[t._v(" "+t._s(s.text)+" ")]):[t._v(" "+t._s(s.text)+" ")]],2)])}),t._t("default")],2)])},[]).exports;const Ia=lt({props:{options:{default:()=>[],type:Array}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-file-preview-frame-column"},[e("div",{staticClass:"k-file-preview-frame"},[t._t("default"),t.options.length?[e("k-button",{staticClass:"k-file-preview-frame-dropdown-toggle",attrs:{icon:"dots",size:"xs"},on:{click:function(e){return t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",attrs:{options:t.options,theme:"light"},on:{action:function(e){return t.$emit("action",e)}}})]:t._e()],2)])},[]).exports;const La=lt({props:{details:Array,image:{default:()=>({}),type:Object}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-default-file-preview"},[e("k-file-preview-frame",[e("k-icon",{staticClass:"k-item-icon",attrs:{color:t.$helper.color(t.image.color),type:t.image.icon}})],1),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports;const Ba=lt({props:{details:Array,url:String}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-audio-file-preview"},[e("audio",{attrs:{controls:"",preload:"metadata",src:t.url}}),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports;const Ta=lt({props:{content:{default:()=>({}),type:Object},details:Array,focusable:Boolean,image:{default:()=>({}),type:Object},isLocked:Boolean,url:String},emits:["focus","input"],computed:{focus(){const t=this.content.focus;if(!t)return;const[e,s]=t.replaceAll("%","").split(" ");return{x:parseFloat(e),y:parseFloat(s)}},hasFocus(){return Boolean(this.focus)},isFocusable(){return!0===this.focusable&&!0!==this.isLocked},options(){return[{icon:"open",text:this.$t("open"),link:this.url,target:"_blank"},{icon:"cancel",text:this.$t("file.focus.reset"),click:()=>this.setFocus(void 0),when:this.isFocusable&&this.hasFocus},{icon:"preview",text:this.$t("file.focus.placeholder"),click:()=>this.setFocus({x:50,y:50}),when:this.isFocusable&&!this.hasFocus}]}},methods:{setFocus(t){if(!1===this.isFocusable)return!1;t?!0===this.$helper.object.isObject(t)&&(t=`${t.x.toFixed(1)}% ${t.y.toFixed(1)}%`):t=null,this.$emit("input",{focus:t})}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-default-file-preview k-image-file-preview",attrs:{"data-has-focus":t.hasFocus}},[e("k-file-preview-frame",{attrs:{options:t.options}},[e("k-coords-input",{attrs:{disabled:!t.isFocusable,value:t.focus},on:{input:function(e){return t.setFocus(e)}}},[e("img",t._b({on:{dragstart:function(t){t.preventDefault()}}},"img",t.image,!1))])],1),e("k-file-preview-details",{attrs:{details:t.details}},[t.image.src?e("div",{staticClass:"k-image-file-preview-focus"},[e("dt",[t._v(t._s(t.$t("file.focus.title")))]),e("dd",[t.isFocusable?e("k-button",{ref:"focus",attrs:{icon:t.focus?"cancel-small":"preview",title:t.focus?t.$t("file.focus.reset"):void 0,size:"xs",variant:"filled"},on:{click:function(e){t.focus?t.setFocus(void 0):t.setFocus({x:50,y:50})}}},[t.hasFocus?[t._v(t._s(t.focus.x)+"% "+t._s(t.focus.y)+"%")]:[t._v(t._s(t.$t("file.focus.placeholder")))]],2):t.hasFocus?[t._v(" "+t._s(t.focus.x)+"% "+t._s(t.focus.y)+"% ")]:[t._v("–")]],2)]):t._e()])],1)},[]).exports;const Pa=lt({props:{details:Array,image:{default:()=>({}),type:Object},url:String},computed:{supported:()=>window.navigator.pdfViewerEnabled}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-default-file-preview k-pdf-file-preview",attrs:{"data-supported":t.supported}},[e("object",{staticClass:"k-pdf-file-preview-object",attrs:{data:t.url,type:"application/pdf"}},[e("k-file-preview-frame",[e("a",{attrs:{href:t.url}},[e("k-icon",{staticClass:"k-item-icon",attrs:{color:t.$helper.color(t.image.color),type:t.image.icon}})],1)])],1),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports;const qa=lt({props:{details:Array,url:String},computed:{options(){return[{icon:"download",text:this.$t("download"),link:this.url,download:!0}]}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-video-file-preview"},[e("k-file-preview-frame",{attrs:{options:t.options}},[e("video",{attrs:{controls:"",preload:"metadata",src:t.url}})]),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports,Na={install(t){t.component("k-file-view",Da),t.component("k-file-preview",Ea),t.component("k-file-preview-details",ja),t.component("k-file-preview-frame",Ia),t.component("k-default-file-preview",La),t.component("k-audio-file-preview",Ba),t.component("k-image-file-preview",Ta),t.component("k-pdf-file-preview",Pa),t.component("k-video-file-preview",qa)}};const Fa=lt({props:{isInstallable:Boolean,isInstalled:Boolean,isOk:Boolean,requirements:Object,translations:Array},data(){return{user:{name:"",email:"",language:this.$panel.translation.code,password:"",role:"admin"}}},computed:{fields(){return{email:{label:this.$t("email"),type:"email",link:!1,autofocus:!0,required:!0},password:{label:this.$t("password"),type:"password",placeholder:this.$t("password")+" …",required:!0},language:{label:this.$t("language"),type:"select",options:this.translations,icon:"translate",empty:!1,required:!0}}},isReady(){return this.isOk&&this.isInstallable},isComplete(){return this.isOk&&this.isInstalled}},methods:{async install(){try{await this.$api.system.install(this.user),await this.$reload({globals:["$system","$translation"]}),this.$panel.notification.success({message:this.$t("welcome")+"!",icon:"smile"})}catch(t){this.$panel.error(t)}}}},function(){var t=this,e=t._self._c;return e("k-panel-outside",{staticClass:"k-installation-view"},[e("div",{staticClass:"k-dialog k-installation-dialog"},[e("k-dialog-body",[t.isComplete?e("k-text",[e("k-headline",[t._v(t._s(t.$t("installation.completed")))]),e("k-link",{attrs:{to:"/login"}},[t._v(" "+t._s(t.$t("login"))+" ")])],1):t.isReady?e("form",{on:{submit:function(e){return e.preventDefault(),t.install.apply(null,arguments)}}},[e("h1",{staticClass:"sr-only"},[t._v(" "+t._s(t.$t("installation"))+" ")]),e("k-fieldset",{attrs:{fields:t.fields,value:t.user},on:{input:function(e){t.user=e}}}),e("k-button",{attrs:{text:t.$t("install"),icon:"check",size:"lg",theme:"positive",type:"submit",variant:"filled"}})],1):e("div",[e("k-headline",[t._v(" "+t._s(t.$t("installation.issues.headline"))+" ")]),e("ul",{staticClass:"k-installation-issues",attrs:{"data-theme":"negative"}},[!1===t.isInstallable?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.disabled"))}})],1):t._e(),!1===t.requirements.php?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.php"))}})],1):t._e(),!1===t.requirements.server?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.server"))}})],1):t._e(),!1===t.requirements.mbstring?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.mbstring"))}})],1):t._e(),!1===t.requirements.curl?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.curl"))}})],1):t._e(),!1===t.requirements.accounts?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.accounts"))}})],1):t._e(),!1===t.requirements.content?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.content"))}})],1):t._e(),!1===t.requirements.media?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.media"))}})],1):t._e(),!1===t.requirements.sessions?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.sessions"))}})],1):t._e()]),e("k-button",{attrs:{text:t.$t("retry"),icon:"refresh",size:"lg",theme:"positive",variant:"filled"},on:{click:t.$reload}})],1)],1)],1)])},[]).exports,za={install(t){t.component("k-installation-view",Fa)}};const Ya=lt({props:{buttons:Array,languages:{type:Array,default:()=>[]},variables:{type:Boolean,default:!0}},computed:{languagesCollection(){return this.languages.map(t=>({...t,image:{back:"black",color:"gray",icon:"translate"},link:()=>{if(!1===this.variables)return null;this.$go(`languages/${t.id}`)},options:[{icon:"edit",text:this.$t("edit"),disabled:!1===this.variables,click:()=>this.$go(`languages/${t.id}`)},{icon:"cog",text:this.$t("settings"),dialog:`languages/${t.id}/update`,disabled:!this.$panel.permissions.languages.update},{when:t.deletable,icon:"trash",text:this.$t("delete"),dialog:`languages/${t.id}/delete`,disabled:!this.$panel.permissions.languages.delete}]}))},primaryLanguage(){return this.languagesCollection.filter(t=>t.default)},secondaryLanguages(){return this.languagesCollection.filter(t=>!1===t.default)}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-languages-view"},[e("k-header",{scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.languages"))+" ")]),t.languages.length>0?[e("k-section",{attrs:{headline:t.$t("languages.default")}},[e("k-collection",{attrs:{items:t.primaryLanguage}})],1),e("k-section",{attrs:{headline:t.$t("languages.secondary")}},[t.secondaryLanguages.length?e("k-collection",{attrs:{items:t.secondaryLanguages}}):e("k-empty",{attrs:{icon:"translate",disabled:!t.$panel.permissions.languages.create},on:{click:function(e){return t.$dialog("languages/create")}}},[t._v(" "+t._s(t.$t("languages.secondary.empty"))+" ")])],1)]:0===t.languages.length?[e("k-empty",{attrs:{icon:"translate",disabled:!t.$panel.permissions.languages.create},on:{click:function(e){return t.$dialog("languages/create")}}},[t._v(" "+t._s(t.$t("languages.empty"))+" ")])]:t._e()],2)},[]).exports;const Ra=lt({props:{buttons:Array,code:String,deletable:Boolean,direction:String,id:String,info:Array,next:Object,name:String,prev:Object,translations:Array,url:String},computed:{canUpdate(){return this.$panel.permissions.languages.update}},methods:{createTranslation(){this.canUpdate&&this.$dialog(`languages/${this.id}/translations/create`)},option(t,e){this.canUpdate&&this.$dialog(`languages/${this.id}/translations/${window.btoa(encodeURIComponent(e.key))}/${t}`)},updateTranslation({row:t}){this.canUpdate&&this.$dialog(`languages/${this.id}/translations/${window.btoa(encodeURIComponent(t.key))}/update`)}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-language-view",scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{attrs:{editable:t.canUpdate},on:{edit:function(e){return t.$dialog(`languages/${t.id}/update`)}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.name)+" ")]),e("k-section",{attrs:{headline:t.$t("language.settings")}},[e("k-stats",{attrs:{reports:t.info,size:"small"}})],1),e("k-section",{attrs:{buttons:[{click:t.createTranslation,disabled:!t.canUpdate,icon:"add",text:t.$t("add")}],headline:t.$t("language.variables")}},[t.translations.length?[e("k-table",{attrs:{columns:{key:{label:t.$t("language.variable.key"),mobile:!0,width:"1/4"},value:{label:t.$t("language.variable.value"),mobile:!0}},disabled:!t.canUpdate,rows:t.translations},on:{cell:t.updateTranslation,option:t.option}})]:[e("k-empty",{attrs:{disabled:!t.canUpdate,icon:"translate"},on:{click:t.createTranslation}},[t._v(" "+t._s(t.$t("language.variables.empty"))+" ")])]],2)],1)},[]).exports,Ha={install(t){t.component("k-languages-view",Ya),t.component("k-language-view",Ra)}};const Ua=lt({emits:["click"]},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-notification k-login-alert",attrs:{"data-theme":"error"}},[e("p",[t._t("default")],2),e("k-button",{attrs:{icon:"cancel"},on:{click:function(e){return t.$emit("click")}}})],1)},[]).exports,Va={props:{methods:{type:Array,default:()=>[]},pending:{type:Object,default:()=>({challenge:"email"})},value:String}};const Ka=lt({mixins:[Va],emits:["error"],data(){return{code:this.value??"",isLoading:!1}},computed:{mode(){return this.methods.includes("password-reset")?"password-reset":"login"},submitText(){const t=this.isLoading?" …":"";return"password-reset"===this.mode?this.$t("login.reset")+t:this.$t("login")+t}},methods:{async login(){this.$emit("error",null),this.isLoading=!0;try{await this.$api.auth.verifyCode(this.code),this.$panel.notification.success({message:this.$t("welcome")+"!",icon:"smile"}),"password-reset"===this.mode?this.$go("reset-password"):this.$reload()}catch(t){this.$emit("error",t)}finally{this.isLoading=!1}}}},function(){var t=this,e=t._self._c;return e("form",{staticClass:"k-login-form k-login-code-form",on:{submit:function(e){return e.preventDefault(),t.login.apply(null,arguments)}}},[t.pending.email?e("k-user-info",{attrs:{user:t.pending.email}}):t._e(),e("k-text-field",{attrs:{autofocus:!0,counter:!1,help:t.$t("login.code.text."+t.pending.challenge),label:t.$t("login.code.label."+t.mode),placeholder:t.$t("login.code.placeholder."+t.pending.challenge),required:!0,value:t.code,autocomplete:"one-time-code",icon:"unlock",name:"code"},on:{input:function(e){t.code=e}}}),e("footer",{staticClass:"k-login-buttons"},[e("k-button",{staticClass:"k-login-button k-login-back-button",attrs:{text:t.$t("back"),icon:"angle-left",link:"/logout",size:"lg",variant:"filled"}}),e("k-button",{staticClass:"k-login-button",attrs:{text:t.submitText,icon:"check",size:"lg",type:"submit",theme:"positive",variant:"filled"}})],1)],1)},[]).exports,Wa={props:{methods:{type:Array,default:()=>[]},value:{type:Object,default:()=>({})}}};const Ja=lt({mixins:[Wa],emits:["error"],data(){return{mode:null,isLoading:!1,user:{email:"",password:"",remember:!1,...this.value}}},computed:{alternateMode(){return"email-password"===this.form?"email":"email-password"},canToggle(){return null!==this.codeMode&&(!1!==this.methods.includes("password")&&(!0===this.methods.includes("password-reset")||!0===this.methods.includes("code")))},codeMode(){return!0===this.methods.includes("password-reset")?"password-reset":!0===this.methods.includes("code")?"code":null},fields(){const t={email:{autofocus:!0,label:this.$t("email"),type:"email",required:!0,link:!1}};return"email-password"===this.form&&(t.password={label:this.$t("password"),type:"password",minLength:8,required:!0,autocomplete:"current-password",counter:!1}),t},form(){return this.mode?this.mode:"password"===this.methods[0]?"email-password":"email"},isResetForm(){return"password-reset"===this.codeMode&&"email"===this.form},submitText(){const t=this.isLoading?" …":"";return this.isResetForm?this.$t("login.reset")+t:this.$t("login")+t},toggleText(){return this.$t("login.toggleText."+this.codeMode+"."+this.alternateMode)}},methods:{async login(){this.$emit("error",null),this.isLoading=!0;const t={...this.user};"email"===this.mode&&(t.password=null),!0===this.isResetForm&&(t.remember=!1);try{await this.$api.auth.login(t),this.$reload({globals:["$system","$translation"]}),this.$panel.notification.success({message:this.$t("welcome")+"!",icon:"smile"})}catch(e){this.$emit("error",e)}finally{this.isLoading=!1}},toggle(){this.mode=this.alternateMode,this.$refs.fieldset.focus("email")}}},function(){var t=this,e=t._self._c;return e("form",{staticClass:"k-login-form",on:{submit:function(e){return e.preventDefault(),t.login.apply(null,arguments)}}},[e("div",{staticClass:"k-login-fields"},[!0===t.canToggle?e("button",{staticClass:"k-login-toggler",attrs:{type:"button"},on:{click:t.toggle}},[t._v(" "+t._s(t.toggleText)+" ")]):t._e(),e("k-fieldset",{ref:"fieldset",attrs:{fields:t.fields,value:t.user},on:{input:function(e){t.user=e}}})],1),e("footer",{staticClass:"k-login-buttons"},[!1===t.isResetForm?e("k-checkbox-input",{attrs:{label:t.$t("login.remember"),checked:t.user.remember,value:t.user.remember},on:{input:function(e){t.user.remember=e}}}):t._e(),e("k-button",{staticClass:"k-login-button",attrs:{icon:"check",size:"lg",theme:"positive",type:"submit",variant:"filled"}},[t._v(" "+t._s(t.submitText)+" ")])],1)])},[]).exports;const Ga=lt({components:{"k-login-plugin-form":window.panel.plugins.login},mixins:[Va,Wa],props:{value:{type:Object,default:()=>({code:"",email:"",password:""})}},data:()=>({issue:""}),computed:{component:()=>window.panel.plugins.login?"k-login-plugin-form":"k-login-form",form(){return this.pending.email?"code":"login"}},methods:{async onError(t){null!==t?(!0===t.details.challengeDestroyed&&await this.$reload({globals:["$system"]}),this.issue=t.message):this.issue=null}}},function(){var t=this,e=t._self._c;return e("k-panel-outside",{class:"code"===t.form?"k-login-code-view":"k-login-view"},[e("div",{staticClass:"k-dialog k-login k-login-dialog"},[e("h1",{staticClass:"sr-only"},[t._v(" "+t._s(t.$t("login"))+" ")]),t.issue?e("k-login-alert",{nativeOn:{click:function(e){t.issue=null}}},[t._v(" "+t._s(t.issue)+" ")]):t._e(),e("k-dialog-body",["code"===t.form?e("k-login-code-form",t._b({on:{error:t.onError}},"k-login-code-form",{methods:t.methods,pending:t.pending,value:t.value.code},!1)):e(t.component,t._b({tag:"component",on:{error:t.onError}},"component",{methods:t.methods,value:t.value},!1))],1)],1)])},[]).exports,Xa={install(t){t.component("k-login-alert",Ua),t.component("k-login-code-form",Ka),t.component("k-login-form",Ja),t.component("k-login-view",Ga),t.component("k-login",Ja),t.component("k-login-code",Ka)}};const Za=lt({extends:Ma,props:{title:String}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-page-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint},scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{staticClass:"k-page-view-header",attrs:{editable:t.permissions.changeTitle&&!t.isLocked},on:{edit:function(e){return t.$dialog(t.api+"/changeTitle")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons},scopedSlots:t._u([{key:"after",fn:function(){return[e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified,preview:!!t.permissions.preview&&t.api+"/preview/changes"},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])})]},proxy:!0}])},[t._v(" "+t._s(t.title)+" ")]),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("page.blueprint",{blueprint:t.$esc(t.blueprint)}),lock:t.lock,parent:t.api,tab:t.tab},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports;const Qa=lt({extends:Ma,props:{title:String}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-site-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint}},[e("k-header",{staticClass:"k-site-view-header",attrs:{editable:t.permissions.changeTitle&&!t.isLocked},on:{edit:function(e){return t.$dialog(t.api+"/changeTitle")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons},scopedSlots:t._u([{key:"after",fn:function(){return[e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified,preview:!!t.permissions.preview&&t.api+"/preview/changes"},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])})]},proxy:!0}])},[t.title&&0!==t.title.length?[t._v(" "+t._s(t.title)+" ")]:e("span",{staticClass:"k-header-title-placeholder"},[t._v(" "+t._s(t.$t("view.site"))+" … ")])],2),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("site.blueprint"),lock:t.lock,tab:t.tab,parent:"site"},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports,tl={install(t){t.component("k-page-view",Za),t.component("k-site-view",Qa)}};const el=lt({mixins:[Ue],props:{label:String,src:String,versionId:String},emits:["discard","scroll","submit"],computed:{srcWithPreviewParam(){const t=new URL(this.src,this.$panel.urls.site);return t.searchParams.append("_preview",!0),t.toString()}},mounted(){this.$events.on("content.discard",this.reload),this.$events.on("content.publish",this.reload)},destroyed(){this.$events.off("content.discard",this.reload),this.$events.off("content.publish",this.reload)},methods:{onLoad(){this.$refs.browser.contentDocument.addEventListener("scroll",t=>this.$emit("scroll",t))},reload(){this.$refs.browser.contentWindow.location.reload()}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-preview-browser"},[e("header",{staticClass:"k-preview-browser-header"},[e("k-headline",[e("k-icon",{attrs:{type:"git-branch"}}),t._v(" "+t._s(t.label)+" ")],1),e("k-button-group",["changes"===t.versionId?[!1===t.hasDiff?e("p",{staticClass:"k-preview-browser-message"},[t._v(" "+t._s(t.$t("lock.unsaved.empty"))+" ")]):e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified,size:"xs"},on:{discard:function(e){return t.$emit("discard",e)},submit:function(e){return t.$emit("submit",e)}}})]:t._e(),e("k-button",{attrs:{link:t.src,icon:"open",size:"xs",target:"_blank"}})],2)],1),e("iframe",{ref:"browser",attrs:{src:t.srcWithPreviewParam},on:{load:t.onLoad}})])},[]).exports;const sl=lt({extends:Ma,props:{back:String,versionId:String,src:Object,title:String},data:()=>({isScrollSyncing:"true"===localStorage.getItem("kirby$preview$scroll","true")}),computed:{buttonsWithScrollButton(){const t=[];return"compare"===this.versionId&&t.unshift({props:{ariaChecked:this.isScrollSyncing,icon:"scroll-to-bottom",theme:this.isScrollSyncing?"info-icon":"passive",title:this.$t("preview.browser.scroll"),role:"switch",class:"k-preview-scroll-sync",click:()=>this.onScrollSyncing()}}),[...t,...this.buttons]}},mounted(){this.$events.on("keydown.esc",this.exit)},destroyed(){this.$events.off("keydown.esc",this.exit)},methods:{browserProps(t){return{editor:this.editor,hasDiff:this.hasDiff,isLocked:this.isLocked,modified:this.modified,label:this.$t("version."+t),src:this.src[t],versionId:t}},exit(){this.$panel.overlays().length>0||this.$panel.view.open(this.link)},navigate(t){if(t.id===this.id)return;if(this.$refs.tree.close(),"/"===t.id)return this.$panel.view.open("site/preview/"+this.versionId);const e=this.$api.pages.url(t.id,"preview/"+this.versionId);this.$panel.view.open(e)},onScroll(t,e){this.isScrollSyncing&&this.$refs[e].$refs.browser.contentWindow.scrollTo(0,this.$refs[t].$refs.browser.contentWindow.scrollY)},onScrollSyncing(){this.isScrollSyncing=!this.isScrollSyncing,localStorage.setItem("kirby$preview$scroll",this.isScrollSyncing)}}},function(){var t=this,e=t._self._c;return e("k-panel",{staticClass:"k-panel-inside k-preview-view",attrs:{"data-version-id":t.versionId}},[e("header",{staticClass:"k-preview-view-header"},[e("k-button-group",[e("k-button",{attrs:{link:t.back,responsive:!0,title:t.$t("back"),icon:"angle-left",size:"sm",variant:"filled"}}),e("k-button",{staticClass:"k-preview-view-title",attrs:{icon:t.$panel.isLoading?"loader":"title",dropdown:!0},on:{click:function(e){return t.$refs.tree.toggle()}}},[t._v(" "+t._s(t.title)+" ")]),e("k-dropdown-content",{ref:"tree",staticClass:"k-preview-view-tree",attrs:{theme:"dark"}},[e("k-page-tree",{attrs:{current:t.id},on:{select:t.navigate},nativeOn:{click:function(t){t.stopPropagation()}}})],1)],1),e("k-view-buttons",{attrs:{buttons:t.buttonsWithScrollButton}})],1),e("main",{staticClass:"k-preview-view-grid"},["compare"===t.versionId?[e("k-preview-browser",t._b({ref:"latest",on:{discard:t.onDiscard,scroll:function(e){return t.onScroll("latest","changes")},submit:t.onSubmit}},"k-preview-browser",t.browserProps("latest"),!1)),e("k-preview-browser",t._b({ref:"changes",on:{discard:t.onDiscard,scroll:function(e){return t.onScroll("changes","latest")},submit:t.onSubmit}},"k-preview-browser",t.browserProps("changes"),!1))]:[e("k-preview-browser",t._b({on:{discard:t.onDiscard,submit:t.onSubmit}},"k-preview-browser",t.browserProps(t.versionId),!1))]],2)])},[]).exports,il={install(t){t.component("k-preview-browser",el),t.component("k-preview-view",sl)}};const nl=lt({extends:Ma,props:{avatar:String,canChangeEmail:Boolean,canChangeLanguage:Boolean,canChangeName:Boolean,canChangeRole:Boolean,email:String,language:String,name:String,role:String}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-user-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint},scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{staticClass:"k-user-view-header",attrs:{editable:t.canChangeName},on:{edit:function(e){return t.$dialog(t.api+"/changeName")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons},scopedSlots:t._u([{key:"after",fn:function(){return[e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])})]},proxy:!0}])},[t.name&&0!==t.name.length?[t._v(" "+t._s(t.name)+" ")]:e("span",{staticClass:"k-header-title-placeholder k-user-name-placeholder"},[t._v(" "+t._s(t.$t("name"))+" … ")])],2),e("k-user-profile",{attrs:{id:t.id,api:t.api,avatar:t.avatar,email:t.email,"can-change-email":t.canChangeEmail,"can-change-language":t.canChangeLanguage,"can-change-name":t.canChangeName,"can-change-role":t.canChangeRole,"is-locked":t.isLocked,language:t.language,role:t.role}}),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("user.blueprint",{blueprint:t.$esc(t.blueprint)}),lock:t.lock,parent:t.api,tab:t.tab},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports;const ol=lt({extends:nl,prevnext:!1},null,null).exports;const rl=lt({props:{requirePassword:{type:Boolean,default:!1}},data:()=>({isLoading:!1,values:{currentPassword:null,password:null,passwordConfirmation:null}}),computed:{fields(){let t={};return!0===this.requirePassword&&(t={currentPassword:{autofocus:!0,label:this.$t("user.changePassword.current"),icon:"key",type:"password",width:"1/2"},gap:{type:"gap",width:"1/2"}}),{...t,password:{autofocus:!1===this.requirePassword,label:this.$t("user.changePassword.new"),icon:"key",type:"password",width:"1/2"},passwordConfirmation:{label:this.$t("user.changePassword.new.confirm"),icon:"key",type:"password",width:"1/2"}}}},mounted(){this.$panel.title=this.$t("view.resetPassword")},methods:{async submit(){if(!this.values.password||this.values.password.length<8)return this.$panel.notification.error(this.$t("error.user.password.invalid"));if(this.values.password!==this.values.passwordConfirmation)return this.$panel.notification.error(this.$t("error.user.password.notSame"));this.isLoading=!0;try{await this.$api.users.changePassword(this.$panel.user.id,this.values.password,this.values.currentPassword),this.$panel.notification.success(),this.$go("/")}catch(t){this.$panel.notification.error(t)}finally{this.isLoading=!1}}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-password-reset-view"},[e("form",{on:{submit:function(e){return e.preventDefault(),t.submit.apply(null,arguments)}}},[e("k-header",{scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-button",{attrs:{icon:"check",theme:"notice",type:"submit",variant:"filled",size:"sm"}},[t._v(" "+t._s(t.$t("change"))+" "),t.isLoading?[t._v(" … ")]:t._e()],2)]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.resetPassword"))+" ")]),e("k-user-info",{attrs:{user:t.$panel.user}}),e("k-fieldset",{attrs:{fields:t.fields,value:t.values}})],1)])},[]).exports;const al=lt({props:{api:String,avatar:String,id:String,isLocked:Boolean},methods:{open(){this.avatar?this.$refs.dropdown.toggle():this.upload()},async remove(){await this.$api.users.deleteAvatar(this.id),this.$panel.notification.success(),this.$reload()},upload(){this.$panel.upload.pick({url:this.$panel.urls.api+"/"+this.api+"/avatar",accept:"image/*",immediate:!0,multiple:!1,on:{done:()=>{this.$panel.view.reload()}}})}}},function(){var t=this,e=t._self._c;return e("k-button",{staticClass:"k-user-view-image",attrs:{disabled:t.isLocked,title:t.$t("avatar")},on:{click:t.open}},[t.avatar?[e("k-image-frame",{attrs:{cover:!0,src:t.avatar}}),e("k-dropdown-content",{ref:"dropdown",attrs:{options:[{icon:"upload",text:t.$t("change"),click:t.upload},{icon:"trash",text:t.$t("delete"),click:t.remove}]}})]:e("k-icon-frame",{attrs:{icon:"user"}})],2)},[]).exports;const ll=lt({props:{user:[Object,String]}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-user-info"},[t.user.avatar?e("k-image-frame",{attrs:{cover:!0,src:t.user.avatar.url,ratio:"1/1"}}):e("k-icon-frame",{attrs:{color:"white",back:"black",icon:"user"}}),t._v(" "+t._s(t.user.name??t.user.email??t.user)+" ")],1)},[]).exports;const cl=lt({props:{api:String,avatar:String,canChangeEmail:Boolean,canChangeLanguage:Boolean,canChangeRole:Boolean,email:String,id:String,isLocked:Boolean,language:String,role:String}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-user-profile"},[e("k-user-avatar",{attrs:{id:t.id,api:t.api,avatar:t.avatar,"is-locked":t.isLocked}}),e("k-button-group",{attrs:{buttons:[{icon:"email",text:t.email,title:`${t.$t("email")}: ${t.email}`,disabled:!t.canChangeEmail,click:()=>t.$dialog(t.api+"/changeEmail")},{icon:"bolt",text:t.role,title:`${t.$t("role")}: ${t.role}`,disabled:!t.canChangeRole,click:()=>t.$dialog(t.api+"/changeRole")},{icon:"translate",text:t.language,title:`${t.$t("language")}: ${t.language}`,disabled:!t.canChangeLanguage,click:()=>t.$dialog(t.api+"/changeLanguage")}]}})],1)},[]).exports;const ul=lt({props:{buttons:Array,role:Object,roles:Array,search:String,title:String,users:Object},computed:{empty(){return{icon:"users",text:this.$t("role.empty")}},items(){return this.users.data.map(t=>(t.options=this.$dropdown(t.link),t))},tabs(){const t=[{name:"all",label:this.$t("role.all"),link:"/users"}];for(const e of this.roles)t.push({name:e.id,label:e.title,link:"/users?role="+e.id});return t}},methods:{create(){this.$dialog("users/create",{query:{role:this.role?.id}})},paginate(t){this.$reload({query:{page:t.page}})}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-users-view"},[e("k-header",{staticClass:"k-users-view-header",scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.users"))+" ")]),e("k-tabs",{attrs:{tab:t.role?.id??"all",tabs:t.tabs}}),e("k-collection",{attrs:{empty:t.empty,items:t.items,pagination:t.users.pagination},on:{paginate:t.paginate}})],1)},[]).exports,pl={install(t){t.component("k-account-view",ol),t.component("k-reset-password-view",rl),t.component("k-user-avatar",al),t.component("k-user-info",ll),t.component("k-user-profile",cl),t.component("k-user-view",nl),t.component("k-users-view",ul)}};const dl=lt({components:{Plugins:lt({props:{plugins:Array}},function(){var t=this,e=t._self._c;return t.plugins.length?e("k-section",{attrs:{headline:t.$t("plugins"),link:"https://getkirby.com/plugins"}},[e("k-table",{attrs:{index:!1,columns:{name:{label:t.$t("name"),type:"url",mobile:!0},author:{label:t.$t("author")},license:{label:t.$t("license"),type:"license"},status:{label:t.$t("license.status"),type:"license-status"},version:{label:t.$t("version"),type:"update-status",mobile:!0,width:"10rem"}},rows:t.plugins}})],1):t._e()},[]).exports,Security:lt({props:{exceptions:{type:Array,default:()=>[]},security:{type:Array,default:()=>[]},urls:{type:[Object,Array],default:()=>({})}},data(){return{issues:this.$helper.object.clone(this.security)}},async mounted(){console.info("Running system health checks for the Panel system view; failed requests in the following console output are expected behavior.");const t=(Promise.allSettled??Promise.all).bind(Promise),e=Object.entries(this.urls??{}).map(this.check);await t(e),console.info(`System health checks ended. ${this.issues.length-this.security.length} issues with accessible files/folders found (see the security list in the system view).`)},methods:{async check([t,e]){if(!e)return;const{status:s}=await fetch(e,{cache:"no-store"});s<400&&this.issues.push({id:t,text:this.$t("system.issues."+t),link:"https://getkirby.com/security/"+t,icon:"folder"})},retry(){this.$go(window.location.href)}}},function(){var t=this,e=t._self._c;return t.issues.length?e("k-section",{attrs:{headline:t.$t("security"),buttons:[{title:t.$t("retry"),icon:"refresh",click:t.retry}]}},[e("k-items",{attrs:{items:t.issues.map(t=>({theme:"negative",image:{back:"light-dark(var(--theme-color-200), var(--theme-color-900))",icon:t.icon??"alert",color:"var(--theme-color-icon)"},target:"_blank",...t}))}})],1):t._e()},[]).exports},props:{buttons:Array,environment:Array,exceptions:Array,info:Object,plugins:Array,security:Array,urls:[Object,Array]},mounted(){this.exceptions.length>0&&(console.info("The following errors occurred during the update check of Kirby and/or plugins:"),this.exceptions.map(t=>console.warn(t)),console.info("End of errors from the update check."))},methods:{copy(){const t=JSON.stringify({info:this.info,security:this.security.map(t=>t.text),plugins:this.plugins.map(t=>({name:t.name.text,version:t.version.currentVersion}))},null,2);this.$helper.clipboard.write(t),this.$panel.notification.success({message:this.$t("system.info.copied")})}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-system-view"},[e("k-header",{scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.system"))+" ")]),e("k-section",{attrs:{headline:t.$t("environment"),buttons:[{text:t.$t("system.info.copy"),icon:"copy",responsive:!0,click:t.copy}]}},[e("k-stats",{staticClass:"k-system-info",attrs:{reports:t.environment,size:"medium"}})],1),e("security",{attrs:{security:t.security,urls:t.urls}}),e("plugins",{attrs:{plugins:t.plugins}})],1)},[]).exports;const hl=lt({inheritAttrs:!1,props:{value:Object}},function(){var t=this,e=t._self._c;return t.value.link?e("k-url-field-preview",{attrs:{value:{href:t.value.link,text:t.value.name}}}):e("k-text-field-preview",{attrs:{value:t.value.name}})},[]).exports;const ml=lt({inheritAttrs:!1,props:{value:Object},computed:{element(){return this.value.dialog||this.value.drawer||this.value.link?null:"span"}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-table-license-status-cell"},[e("k-button",{attrs:{dialog:t.value.dialog,drawer:t.value.drawer,element:t.element,icon:t.value.icon,link:t.value.link,theme:t.value.theme,size:"xs",target:"_blank"}},[t._v(" "+t._s(t.value.label)+" ")])],1)},[]).exports;const fl=lt({props:{value:[String,Object]}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-table-update-status-cell"},["string"==typeof t.value?e("span",{staticClass:"k-table-update-status-cell-version"},[t._v(" "+t._s(t.value)+" ")]):[e("k-button",{staticClass:"k-table-update-status-cell-button",attrs:{dropdown:!0,icon:t.value.icon,href:t.value.url,text:t.value.currentVersion,theme:t.value.theme,size:"xs",variant:"filled"},on:{click:function(e){return e.stopPropagation(),t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",attrs:{"align-x":"end"}},[e("dl",{staticClass:"k-plugin-info"},[e("dt",[t._v(t._s(t.$t("plugin")))]),e("dd",[t._v(t._s(t.value.pluginName))]),e("dt",[t._v(t._s(t.$t("version.current")))]),e("dd",[t._v(t._s(t.value.currentVersion))]),e("dt",[t._v(t._s(t.$t("version.latest")))]),e("dd",[t._v(t._s(t.value.latestVersion))]),e("dt",[t._v(t._s(t.$t("system.updateStatus")))]),e("dd",{attrs:{"data-theme":t.value.theme}},[t._v(t._s(t.value.label))])]),t.value.url?[e("hr"),e("k-button",{attrs:{icon:"open",link:t.value.url}},[t._v(" "+t._s(t.$t("versionInformation"))+" ")])]:t._e()],2)]],2)},[]).exports,gl={install(t){t.component("k-system-view",dl),t.component("k-table-license-cell",hl),t.component("k-table-license-status-cell",ml),t.component("k-table-update-status-cell",fl)}},kl={install(t){t.component("k-error-view",Oa),t.component("k-search-view",Aa),t.use(Na),t.use(za),t.use(Ha),t.use(Xa),t.use(tl),t.use(il),t.use(gl),t.use(pl)}},bl={install(t){t.use(gt),t.use(oe),t.use(_e),t.use(Ne),t.use(Wo),t.use(tr),t.use(wr),t.use(jr),t.use(Hr),t.use(ta),t.use(aa),t.use(da),t.use(Ca),t.use(kl),t.use(q)}},yl={install(t){window.onunhandledrejection=t=>{t.preventDefault(),window.panel.error(t.reason)},t.config.errorHandler=window.panel.error.bind(window.panel)}},vl=(t={})=>{var e=t.desc?-1:1,s=-e,i=/^0/,n=/\s+/g,o=/^\s+|\s+$/g,r=/[^\x00-\x80]/,a=/^0x[0-9a-f]+$/i,l=/(0x[\da-fA-F]+|(^[\+\-]?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?(?=\D|\s|$))|\d+)/g,c=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,u=t.insensitive?function(t){return function(t){if(t.toLocaleLowerCase)return t.toLocaleLowerCase();return t.toLowerCase()}(""+t).replace(o,"")}:function(t){return(""+t).replace(o,"")};function p(t){return t.replace(l,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0")}function d(t,e){return(!t.match(i)||1===e)&&parseFloat(t)||t.replace(n," ").replace(o,"")||0}return function(t,i){var n=u(t),o=u(i);if(!n&&!o)return 0;if(!n&&o)return s;if(n&&!o)return e;var l=p(n),h=p(o),m=parseInt(n.match(a),16)||1!==l.length&&Date.parse(n),f=parseInt(o.match(a),16)||m&&o.match(c)&&Date.parse(o)||null;if(f){if(mf)return e}for(var g=l.length,k=h.length,b=0,y=Math.max(g,k);b0)return e;if(x<0)return s;if(b===y-1)return 0}else{if(v<$)return s;if(v>$)return e}}return 0}};RegExp.escape=function(t){return t.replace(new RegExp("[-/\\\\^$*+?.()[\\]{}]","gu"),"\\$&")};function $l(t){return Array.isArray(t)?t:[t]}const xl={fromObject:function(t){return Array.isArray(t)?t:Object.values(t??{})},search:(t,e,s={})=>{if((e??"").length<=(s.min??0))return t;const i=new RegExp(RegExp.escape(e),"ig"),n=s.field??"text",o=t.filter(t=>!!t[n]&&null!==t[n].match(i));return s.limit?o.slice(0,s.limit):o},sortBy:function(t,e){const s=e.split(" "),i=s[0],n=s[1]??"asc",o=vl({desc:"desc"===n,insensitive:!0});return t.sort((t,e)=>{const s=String(t[i]??""),n=String(e[i]??"");return o(s,n)})},split:function(t,e){return t.reduce((t,s)=>(s===e?t.push([]):t[t.length-1].push(s),t),[[]])},wrap:$l};const wl={read:function(t,e=!1){if(!t)return null;if("string"==typeof t)return t;if(t instanceof ClipboardEvent){if(t.preventDefault(),!0===e)return t.clipboardData.getData("text/plain");const s=t.clipboardData.getData("text/html")||t.clipboardData.getData("text/plain")||null;if(s)return s.replace(/\u00a0/g," ")}return null},write:function(t,e){if("string"!=typeof t&&(t=JSON.stringify(t,null,2)),e&&e instanceof ClipboardEvent)return e.preventDefault(),e.clipboardData.setData("text/plain",t),!0;const s=document.createElement("textarea");if(s.value=t,document.body.append(s),navigator.userAgent.match(/ipad|ipod|iphone/i)){s.contentEditable=!0,s.readOnly=!0;const t=document.createRange();t.selectNodeContents(s);const e=window.getSelection();e.removeAllRanges(),e.addRange(t),s.setSelectionRange(0,999999)}else s.select();return document.execCommand("copy"),s.remove(),!0}};function _l(t){if("string"==typeof t){if("pattern"===(t=t.toLowerCase()))return"var(--pattern)";if(!1===t.startsWith("#")&&!1===t.startsWith("var(")){const e="--color-"+t;if(window.getComputedStyle(document.documentElement).getPropertyValue(e))return`var(${e})`}return t}}function Sl(t,e=!1){if(!t.match("youtu"))return!1;let s=null;try{s=new URL(t)}catch{return!1}const i=s.pathname.split("/").filter(t=>""!==t),n=i[0],o=i[1],r="https://"+(!0===e?"www.youtube-nocookie.com":s.host)+"/embed",a=t=>!!t&&null!==t.match(/^[a-zA-Z0-9_-]+$/);let l=s.searchParams,c=null;switch(i.join("/")){case"embed/videoseries":case"playlist":a(l.get("list"))&&(c=r+"/videoseries");break;case"watch":a(l.get("v"))&&(c=r+"/"+l.get("v"),l.has("t")&&l.set("start",l.get("t")),l.delete("v"),l.delete("t"));break;default:s.host.includes("youtu.be")&&a(n)?(c=!0===e?"https://www.youtube-nocookie.com/embed/"+n:"https://www.youtube.com/embed/"+n,l.has("t")&&l.set("start",l.get("t")),l.delete("t")):["embed","shorts"].includes(n)&&a(o)&&(c=r+"/"+o)}if(!c)return!1;const u=l.toString();return u.length&&(c+="?"+u),c}function Cl(t,e=!1){let s=null;try{s=new URL(t)}catch{return!1}const i=s.pathname.split("/").filter(t=>""!==t);let n=s.searchParams,o=null;switch(!0===e&&n.append("dnt",1),s.host){case"vimeo.com":case"www.vimeo.com":o=i[0];break;case"player.vimeo.com":o=i[1]}if(!o||!o.match(/^[0-9]*$/))return!1;let r="https://player.vimeo.com/video/"+o;const a=n.toString();return a.length&&(r+="?"+a),r}const Ol={youtube:Sl,vimeo:Cl,video:function(t,e=!1){return!0===t.includes("youtu")?Sl(t,e):!0===t.includes("vimeo")&&Cl(t,e)}};function Al(t){if(void 0!==t.default)return bt(t.default);const e=window.panel.app.$options.components[`k-${t.type}-field`],s=e?.options.props?.value;if(void 0===s)return;const i=s?.default;return"function"==typeof i?i():void 0!==i?i:null}const Ml={defaultValue:Al,form:function(t){const e={};for(const s in t){const i=Al(t[s]);void 0!==i&&(e[s]=i)}return e},isVisible:function(t,e){if("hidden"===t.type||!0===t.hidden)return!1;if(!t.when)return!0;for(const s in t.when){const i=e[s.toLowerCase()],n=t.when[s];if((void 0!==i||!(""===n||Array.isArray(n)&&0===n.length))&&i!==n)return!1}return!0},subfields:function(t,e){let s={};for(const i in e){const n=e[i];n.section=t.name,t.endpoints&&(n.endpoints={field:t.endpoints.field+"+"+i,section:t.endpoints.section,model:t.endpoints.model}),s[i]=n}return s}},Dl=t=>t.split(".").slice(-1).join(""),El=t=>t.split(".").slice(0,-1).join("."),jl=t=>Intl.NumberFormat("en",{notation:"compact",style:"unit",unit:"byte",unitDisplay:"narrow"}).format(t),Il={extension:Dl,name:El,niceSize:jl},Ll=t=>"function"==typeof window.Vue.options.components[t],Bl=t=>!!t.dataTransfer&&(!!t.dataTransfer.types&&(!0===t.dataTransfer.types.includes("Files")&&!1===t.dataTransfer.types.includes("text/plain")));const Tl={metaKey:function(){return window.navigator.userAgent.indexOf("Mac")>-1?"cmd":"ctrl"}};function Pl(t){return!0===t.startsWith("file://")||!0===t.startsWith("/@/file/")}function ql(t){return"site://"===t||!0===t.startsWith("page://")||null!==t.match(/^\/(.*\/)?@\/page\//)}function Nl(t=[]){const e={url:{detect:t=>/^(http|https):\/\//.test(t),icon:"url",id:"url",label:window.panel.$t("url"),link:t=>t,placeholder:window.panel.$t("url.placeholder"),input:"url",value:t=>t},page:{detect:t=>!0===ql(t),icon:"page",id:"page",label:window.panel.$t("page"),link:t=>t,placeholder:window.panel.$t("select")+" …",input:"text",value:t=>t},file:{detect:t=>!0===Pl(t),icon:"file",id:"file",label:window.panel.$t("file"),link:t=>t,placeholder:window.panel.$t("select")+" …",value:t=>t},email:{detect:t=>t.startsWith("mailto:"),icon:"email",id:"email",label:window.panel.$t("email"),link:t=>t.replace(/^mailto:/,""),placeholder:window.panel.$t("email.placeholder"),input:"email",value:t=>"mailto:"+t},tel:{detect:t=>t.startsWith("tel:"),icon:"phone",id:"tel",label:window.panel.$t("tel"),link:t=>t.replace(/^tel:/,""),pattern:"[+]{0,1}[0-9]+",placeholder:window.panel.$t("tel.placeholder"),input:"tel",value:t=>"tel:"+t},anchor:{detect:t=>t.startsWith("#"),icon:"anchor",id:"anchor",label:"Anchor",link:t=>t,pattern:"^#.+",placeholder:"#element",input:"text",value:t=>t},custom:{detect:()=>!0,icon:"title",id:"custom",label:window.panel.$t("custom"),link:t=>t,input:"text",value:t=>t}};if(!t.length)return e;const s={};for(const i of t)e[i]&&(s[i]=e[i]);return s}const Fl={detect:function(t,e){if(t??="",e??=Nl(),0===t.length)return{type:Object.keys(e)[0]??"url",link:""};for(const s in e)if(!0===e[s].detect(t))return{type:s,link:e[s].link(t)}},getFileUUID:function(t){return t.replace("/@/file/","file://")},getPageUUID:function(t){return t.replace(/^\/(.*\/)?@\/page\//,"page://")},isFileUUID:Pl,isPageUUID:ql,preview:async function({type:t,link:e},s){return"page"===t&&e?await async function(t,e=["title","panelImage"]){if("site://"===t)return{label:window.panel.$t("view.site")};try{const s=await window.panel.api.pages.get(t,{select:e.join(",")});return{label:s.title,image:s.panelImage}}catch{return null}}(e,s):"file"===t&&e?await async function(t,e=["filename","panelImage"]){try{const s=await window.panel.api.files.get(null,t,{select:e.join(",")});return{label:s.filename,image:s.panelImage}}catch{return null}}(e,s):e?{label:e}:null},types:Nl};const zl={status:function(t,e=!1){const s={icon:"status-"+t,title:window.panel.$t("page.status")+": "+window.panel.$t("page.status."+t),disabled:e,size:"xs",style:"--icon-size: 15px"};return e&&(s.title+=` (${window.panel.$t("disabled")})`),s.theme="draft"===t?"negative-icon":"unlisted"===t?"info-icon":"positive-icon",s}},Yl=(t="3/2",e="100%",s=!0)=>{const i=String(t).split("/");if(2!==i.length)return e;const n=Number(i[0]),o=Number(i[1]);let r=100;return 0!==n&&0!==o&&(r=s?r/n*o:r/o*n,r=parseFloat(String(r)).toFixed(2)),r+"%"},Rl={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function Hl(t){return String(t).replace(/[&<>"'`=/]/g,t=>Rl[t])}function Ul(t){return!t||0===String(t).length}function Vl(t){const e=String(t);return e.charAt(0).toLowerCase()+e.slice(1)}function Kl(t="",e=""){const s=new RegExp(`^(${RegExp.escape(e)})+`,"g");return t.replace(s,"")}function Wl(t){let e="";const s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(var i=0;i{const i=e[Hl(t.shift())]??"…";return"…"===i||0===t.length?i:s(t,i)},i="[{]{1,2}[\\s]?",n="[\\s]?[}]{1,2}";return(t=t.replace(new RegExp(`${i}(.*?)${n}`,"gi"),(t,i)=>s(i.split("."),e))).replace(new RegExp(`${i}.*${n}`,"gi"),"…")}function Xl(t){const e=String(t);return e.charAt(0).toUpperCase()+e.slice(1)}function Zl(){let t,e,s="";for(t=0;t<32;t++)e=16*Math.random()|0,8!=t&&12!=t&&16!=t&&20!=t||(s+="-"),s+=(12==t?4:16==t?3&e|8:e).toString(16);return s}const Ql={camelToKebab:function(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()},escapeHTML:Hl,hasEmoji:function(t){if("string"!=typeof t)return!1;if(!0===/^[a-z0-9_-]+$/.test(t))return!1;const e=t.match(/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c\ude32-\ude3a]|[\ud83c\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/i);return null!==e&&null!==e.length},isEmpty:Ul,lcfirst:Vl,ltrim:Kl,pad:function(t,e=2){t=String(t);let s="";for(;s.length]+)>)/gi,"")},template:Gl,ucfirst:Xl,ucwords:function(t){return String(t).split(/ /g).map(t=>Xl(t)).join(" ")},unescapeHTML:function(t){for(const e in Rl)t=String(t).replaceAll(Rl[e],e);return t},uuid:Zl},tc=(t,e,s={leading:!0,trailing:!1})=>{let i=null,n=null,o=null;function r(...r){if(i)return n=this,void(o=r);s.leading?t.call(this,...r):(n=this,o=r);const a=()=>{s.trailing&&o?(t.call(n,...o),n=null,o=null,i=setTimeout(a,e)):i=null};i=setTimeout(a,e)}return r.cancel=()=>{i&&(clearTimeout(i),i=null,n=null,o=null)},r};async function ec(t,e){return new Promise((s,i)=>{const n={url:"/",field:"file",method:"POST",filename:t.name,headers:{},attributes:{},complete:()=>{},error:()=>{},success:()=>{},progress:()=>{}},o=Object.assign(n,e),r=new XMLHttpRequest,a=new FormData;a.append(o.field,t,o.filename);for(const t in o.attributes){const e=o.attributes[t];null!=e&&a.append(t,e)}const l=e=>{if(e.lengthComputable&&o.progress){const s=Math.max(0,Math.min(100,Math.ceil(e.loaded/e.total*100)));o.progress(r,t,s)}};r.upload.addEventListener("loadstart",l),r.upload.addEventListener("progress",l),r.addEventListener("load",e=>{let n=null;try{n=JSON.parse(e.target.response)}catch{n={status:"error",message:"The file could not be uploaded"}}"error"===n.status?(o.error(r,t,n),i(n)):(o.progress(r,t,100),o.success(r,t,n),s(n))}),r.addEventListener("error",e=>{const s=JSON.parse(e.target.response);o.progress(r,t,100),o.error(r,t,s),i(s)}),r.open(o.method,o.url,!0);for(const t in o.headers)r.setRequestHeader(t,o.headers[t]);o.abort?.addEventListener("abort",()=>{r.abort()}),r.send(a)})}function sc(){return new URL(document.querySelector("base")?.href??window.location.origin)}function ic(t={},e={}){e instanceof URL&&(e=e.search);const s=new URLSearchParams(e);for(const[i,n]of Object.entries(t))null!==n&&s.set(i,n);return s}function nc(t="",e={},s){return(t=cc(t,s)).search=ic(e,t.search),t}function oc(t){return null!==String(t).match(/^https?:\/\//)}function rc(t){return cc(t).origin===window.location.origin}function ac(t,e){if((t instanceof URL||t instanceof Location)&&(t=t.toString()),"string"!=typeof t)return!1;try{new URL(t,window.location)}catch{return!1}if(!0===e){return/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:localhost)|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)}return!0}function lc(t,e){return!0===oc(t)?t:(e??=sc(),(e=String(e).replaceAll(/\/$/g,""))+"/"+(t=String(t).replaceAll(/^\//g,"")))}function cc(t,e){return t instanceof URL?t:new URL(lc(t,e))}const uc={base:sc,buildQuery:ic,buildUrl:nc,isAbsolute:oc,isSameOrigin:rc,isUrl:ac,makeAbsolute:lc,toObject:cc},pc={install(t){t.prototype.$helper={array:xl,clipboard:wl,clone:xt.clone,color:_l,embed:Ol,focus:ss,isComponent:Ll,isUploadEvent:Bl,debounce:Nt,field:Ml,file:Il,keyboard:Tl,link:Fl,object:xt,page:zl,pad:Ql.pad,ratio:Yl,slug:Ql.slug,sort:vl,string:Ql,throttle:tc,upload:ec,url:uc,uuid:Ql.uuid},t.prototype.$esc=Ql.escapeHTML}},dc={install(t){const e=(t,e,s)=>{!0!==s.context.disabled?t.dir=window.panel.language.direction:t.dir=null};t.directive("direction",{bind:e,update:e})}},hc={install(t){const e=window.panel;t.prototype.$api=e.api,t.prototype.$dialog=e.dialog.open.bind(e.dialog),t.prototype.$drawer=e.drawer.open.bind(e.drawer),t.prototype.$dropdown=e.dropdown.openAsync.bind(e.dropdown),t.prototype.$events=e.events,t.prototype.$go=e.view.open.bind(e.view),t.prototype.$reload=e.reload,t.prototype.$t=e.$t=e.t,t.prototype.$url=e.url}},mc=/^#?([\da-f]{3}){1,2}$/i,fc=/^#?([\da-f]{4}){1,2}$/i,gc=/^rgba?\(\s*(\d{1,3})(%?)(?:,|\s)+(\d{1,3})(%?)(?:,|\s)+(\d{1,3})(%?)(?:,|\s|\/)*(\d*(?:\.\d+)?)(%?)\s*\)?$/i,kc=/^hsla?\(\s*(\d{1,3}\.?\d*)(deg|rad|grad|turn)?(?:,|\s)+(\d{1,3})%(?:,|\s)+(\d{1,3})%(?:,|\s|\/)*(\d*(?:\.\d+)?)(%?)\s*\)?$/i;function bc(t){return"string"==typeof t&&(mc.test(t)||fc.test(t))}function yc(t){return yt(t)&&"r"in t&&"g"in t&&"b"in t}function vc(t){return yt(t)&&"h"in t&&"s"in t&&"l"in t}function $c({h:t,s:e,v:s,a:i}){if(0===s)return{h:t,s:0,l:0,a:i};if(0===e&&1===s)return{h:t,s:1,l:1,a:i};const n=s*(2-e)/2;return{h:t,s:e=s*e/(1-Math.abs(2*n-1)),l:n,a:i}}function xc({h:t,s:e,l:s,a:i}){const n=e*(s<.5?s:1-s);return{h:t,s:e=0===n?0:2*n/(s+n),v:s+n,a:i}}function wc(t){if(!0===mc.test(t)||!0===fc.test(t)){"#"===t[0]&&(t=t.slice(1)),3===t.length&&(t=t.split("").reduce((t,e)=>t+e+e,""));const e=parseInt(t,16);return!0===mc.test(t)?{r:e>>16,g:e>>8&255,b:255&e,a:1}:{r:e>>24&255,g:e>>16&255,b:e>>8&255,a:Math.round((255&e)/255*100)/100}}throw new Error(`unknown hex color: ${t}`)}function _c({r:t,g:e,b:s,a:i=1}){let n="#"+(1<<24|t<<16|e<<8|s).toString(16).slice(1);return i<1&&(n+=(256|Math.round(255*i)).toString(16).slice(1)),n}function Sc({h:t,s:e,l:s,a:i}){const n=e*Math.min(s,1-s),o=(e,i=(e+t/30)%12)=>s-n*Math.max(Math.min(i-3,9-i,1),-1);return{r:255*o(0),g:255*o(8),b:255*o(4),a:i}}function Cc({r:t,g:e,b:s,a:i}){t/=255,e/=255,s/=255;const n=Math.max(t,e,s),o=n-Math.min(t,e,s),r=1-Math.abs(n+n-o-1);let a=o&&(n==t?(e-s)/o:n==e?2+(s-t)/o:4+(t-e)/o);return a=60*(a<0?a+6:a),{h:a,s:r?o/r:0,l:(n+n-o)/2,a:i}}function Oc(t){return _c(Sc(t))}function Ac(t){return Cc(wc(t))}function Mc(t,e){return t=Number(t),"grad"===e?t*=.9:"rad"===e?t*=180/Math.PI:"turn"===e&&(t*=360),parseInt(t%360)}function Dc(t,e){if(!0===bc(t))switch("#"!==t[0]&&(t="#"+t),e){case"hex":return t;case"rgb":return wc(t);case"hsl":return Ac(t);case"hsv":return xc(Ac(t))}if(!0===yc(t))switch(e){case"hex":return _c(t);case"rgb":return t;case"hsl":return Cc(t);case"hsv":return function({r:t,g:e,b:s,a:i}){t/=255,e/=255,s/=255;const n=Math.max(t,e,s),o=n-Math.min(t,e,s);let r=o&&(n==t?(e-s)/o:n==e?2+(s-t)/o:4+(t-e)/o);return r=60*(r<0?r+6:r),{h:r,s:n&&o/n,v:n,a:i}}(t)}if(!0===vc(t))switch(e){case"hex":return Oc(t);case"rgb":return Sc(t);case"hsl":return t;case"hsv":return xc(t)}if(!0===function(t){return yt(t)&&"h"in t&&"s"in t&&"v"in t}(t))switch(e){case"hex":return Oc($c(t));case"rgb":return function({h:t,s:e,v:s,a:i}){const n=(i,n=(i+t/60)%6)=>s-s*e*Math.max(Math.min(n,4-n,1),0);return{r:255*n(5),g:255*n(3),b:255*n(1),a:i}}(t);case"hsl":return $c(t);case"hsv":return t}throw new Error(`Invalid color conversion: ${JSON.stringify(t)} -> ${e}`)}function Ec(t){let e;if(!t||"string"!=typeof t)return!1;if(!0===bc(t))return"#"!==t[0]&&(t="#"+t),t;if(e=t.match(gc)){const t={r:Number(e[1]),g:Number(e[3]),b:Number(e[5]),a:Number(e[7]||1)};return"%"===e[2]&&(t.r=Math.ceil(2.55*t.r)),"%"===e[4]&&(t.g=Math.ceil(2.55*t.g)),"%"===e[6]&&(t.b=Math.ceil(2.55*t.b)),"%"===e[8]&&(t.a=t.a/100),t}if(e=t.match(kc)){let[t,s,i,n,o]=e.slice(1);const r={h:Mc(t,s),s:Number(i)/100,l:Number(n)/100,a:Number(o||1)};return"%"===e[6]&&(r.a=r.a/100),r}return null}const jc={convert:Dc,parse:Ec,parseAs:function(t,e){const s=Ec(t);return s&&e?Dc(s,e):s},toString:function(t,e,s=!0){let i=t;if("string"==typeof i&&(i=Ec(t)),i&&e&&(i=Dc(i,e)),!0===bc(i))return!0!==s&&(5===i.length?i=i.slice(0,4):i.length>7&&(i=i.slice(0,7))),i.toLowerCase();if(!0===yc(i)){const t=i.r.toFixed(),e=i.g.toFixed(),n=i.b.toFixed(),o=i.a?.toFixed(2);return s&&o&&o<1?`rgb(${t} ${e} ${n} / ${o})`:`rgb(${t} ${e} ${n})`}if(!0===vc(i)){const t=i.h.toFixed(),e=(100*i.s).toFixed(),n=(100*i.l).toFixed(),o=i.a?.toFixed(2);return s&&o&&o<1?`hsl(${t} ${e}% ${n}% / ${o})`:`hsl(${t} ${e}% ${n}%)`}throw new Error(`Unsupported color: ${JSON.stringify(t)}`)}};N.extend(F),N.extend((t,e,s)=>{s.interpret=(t,e="date")=>{const i={date:{"YYYY-MM-DD":!0,"YYYY-MM-D":!0,"YYYY-MM-":!0,"YYYY-MM":!0,"YYYY-M-DD":!0,"YYYY-M-D":!0,"YYYY-M-":!0,"YYYY-M":!0,"YYYY-":!0,YYYYMMDD:!0,"MMM DD YYYY":!1,"MMM D YYYY":!1,"MMM DD YY":!1,"MMM D YY":!1,"MMM YYYY":!0,"MMM DD":!1,"MMM D":!1,"MM YYYY":!0,"M YYYY":!0,"MMMM DD YYYY":!0,"MMMM D YYYY":!0,"MMMM DD YY":!0,"MMMM D YY":!0,"MMMM DD, YYYY":!0,"MMMM D, YYYY":!0,"MMMM DD, YY":!0,"MMMM D, YY":!0,"MMMM DD. YYYY":!0,"MMMM D. YYYY":!0,"MMMM DD. YY":!0,"MMMM D. YY":!0,DDMMYYYY:!0,DDMMYY:!0,"DD MMMM YYYY":!1,"DD MMMM YY":!1,"DD MMMM":!1,"D MMMM YYYY":!1,"D MMMM YY":!1,"D MMMM":!1,"DD MMM YYYY":!1,"D MMM YYYY":!1,"DD MMM YY":!1,"D MMM YY":!1,"DD MMM":!1,"D MMM":!1,"DD MM YYYY":!1,"DD M YYYY":!1,"D MM YYYY":!1,"D M YYYY":!1,"DD MM YY":!1,"D MM YY":!1,"DD M YY":!1,"D M YY":!1,YYYY:!0,MMMM:!0,MMM:!0,"DD MM":!1,"DD M":!1,"D MM":!1,"D M":!1,DD:!1,D:!1},time:{"HHmmss a":!1,"HHmm a":!1,"HH a":!1,HHmmss:!1,HHmm:!1,"HH:mm:ss a":!1,"HH:mm:ss":!1,"HH:mm a":!1,"HH:mm":!1,HH:!1}};if("string"==typeof t&&""!==t)for(const n in i[e]){const o=s(t,n,i[e][n]);if(!0===o.isValid())return o}return null}}),N.extend((t,e,s)=>{const i=t=>"date"===t?"YYYY-MM-DD":"time"===t?"HH:mm:ss":"YYYY-MM-DD HH:mm:ss";e.prototype.toISO=function(t="datetime"){return this.format(i(t))},s.iso=function(t,e){e&&(e=i(e)),e??=[i("datetime"),i("date"),i("time")];const n=s(t,e);return n&&n.isValid()?n:null}}),N.extend((t,e)=>{e.prototype.merge=function(t,e="date"){let s=this.clone();if(!t||!t.isValid())return this;if("string"==typeof e){const t={date:["year","month","date"],time:["hour","minute","second"]};if(!1===Object.hasOwn(t,e))throw new Error("Invalid merge unit alias");e=t[e]}for(const i of e)s=s.set(i,t.get(i));return s}}),N.extend((t,e,s)=>{s.pattern=t=>new class{constructor(t,e){this.dayjs=t,this.pattern=e;const s={year:["YY","YYYY"],month:["M","MM","MMM","MMMM"],day:["D","DD"],hour:["h","hh","H","HH"],minute:["m","mm"],second:["s","ss"],meridiem:["a"]};this.parts=this.pattern.split(/\W/).map((t,e)=>{const i=this.pattern.indexOf(t);return{index:e,unit:Object.keys(s)[Object.values(s).findIndex(e=>e.includes(t))],start:i,end:i+(t.length-1)}})}at(t,e=t){const s=this.parts.filter(s=>s.start<=t&&s.end>=e-1);return s[0]?s[0]:this.parts.filter(e=>e.start<=t).pop()}format(t){return t&&t.isValid()?t.format(this.pattern):null}}(s,t)}),N.extend((t,e)=>{e.prototype.round=function(t="date",e=1){const s=["second","minute","hour","date","month","year"];if("day"===t&&(t="date"),!1===s.includes(t))throw new Error("Invalid rounding unit");if(["date","month","year"].includes(t)&&1!==e||"hour"===t&&24%e!=0||["second","minute"].includes(t)&&60%e!=0)throw"Invalid rounding size for "+t;let i=this.clone();const n=s.indexOf(t),o=s.slice(0,n),r=o.pop();for(const a of o)i=i.startOf(a);if(r){const e={month:12,date:i.daysInMonth(),hour:24,minute:60,second:60}[r];Math.round(i.get(r)/e)*e===e&&(i=i.add(1,"date"===t?"day":t)),i=i.startOf(t)}return i=i.set(t,Math.round(i.get(t)/e)*e),i}}),N.extend((t,e,s)=>{e.prototype.validate=function(t,e,i="day"){if(!this.isValid())return!1;if(!t)return!0;t=s.iso(t);const n={min:"isAfter",max:"isBefore"}[e];return this.isSame(t,i)||this[n](t,i)}});const Ic={install(t){t.prototype.$library={autosize:z,colors:jc,dayjs:N}}},Lc=(t,e={})=>n({...e,key:()=>t,defaults:()=>e,reset(){return this.set(this.defaults())},set(t){this.validateState(t);for(const e in this.defaults())this[e]=t[e]??this.defaults()[e];return this.state()},state(){const t={};for(const e in this.defaults())t[e]=this[e]??this.defaults()[e];return t},validateState(t){if(!1===yt(t))throw new Error(`Invalid ${this.key()} state`);return!0}}),Bc=()=>{const t=Lc("activation",{isOpen:"true"!==sessionStorage.getItem("kirby$activation$card")});return n({...t,close(){sessionStorage.setItem("kirby$activation$card","true"),this.isOpen=!1},open(){sessionStorage.removeItem("kirby$activation$card"),this.isOpen=!0}})},Tc=t=>({async changeName(e,s,i){return t.patch(this.url(e,s,"name"),{name:i})},async delete(e,s){return t.delete(this.url(e,s))},async get(e,s,i){let n=await t.get(this.url(e,s),i);return!0===Array.isArray(n.content)&&(n.content={}),n},id:t=>!0===t.startsWith("/@/file/")?t.replace("/@/file/","@"):!0===t.startsWith("file://")?t.replace("file://","@"):t,link(t,e,s){return"/"+this.url(t,e,s)},async update(e,s,i){return t.patch(this.url(e,s),i)},url(t,e,s){let i="files/"+this.id(e);return t&&(i=t+"/"+i),s&&(i+="/"+s),i}}),Pc=t=>({async blueprint(e){return t.get("pages/"+this.id(e)+"/blueprint")},async blueprints(e,s){return t.get("pages/"+this.id(e)+"/blueprints",{section:s})},async changeSlug(e,s){return t.patch("pages/"+this.id(e)+"/slug",{slug:s})},async changeStatus(e,s,i){return t.patch("pages/"+this.id(e)+"/status",{status:s,position:i})},async changeTemplate(e,s){return t.patch("pages/"+this.id(e)+"/template",{template:s})},async changeTitle(e,s){return t.patch("pages/"+this.id(e)+"/title",{title:s})},async children(e,s){return t.post("pages/"+this.id(e)+"/children/search",s)},async create(e,s){return null===e||"/"===e?t.post("site/children",s):t.post("pages/"+this.id(e)+"/children",s)},async delete(e,s){return t.delete("pages/"+this.id(e),s)},async duplicate(e,s,i){return t.post("pages/"+this.id(e)+"/duplicate",{slug:s,children:i.children??!1,files:i.files??!1})},async get(e,s){let i=await t.get("pages/"+this.id(e),s);return!0===Array.isArray(i.content)&&(i.content={}),i},id:t=>!0===t.match(/^\/(.*\/)?@\/page\//)?t.replace(/^\/(.*\/)?@\/page\//,"@"):!0===t.startsWith("page://")?t.replace("page://","@"):t.replace(/\//g,"+"),async files(e,s){return t.post("pages/"+this.id(e)+"/files/search",s)},link(t){return"/"+this.url(t)},async preview(t){return(await this.get(this.id(t),{select:"previewUrl"})).previewUrl},async search(e,s){return e?t.post("pages/"+this.id(e)+"/children/search?select=id,title,hasChildren",s):t.post("site/children/search?select=id,title,hasChildren",s)},async update(e,s){return t.patch("pages/"+this.id(e),s)},url(t,e){let s=null===t?"pages":"pages/"+String(t).replace(/\//g,"+");return e&&(s+="/"+e),s}});class qc extends Error{constructor(t,{request:e,response:s,cause:i}){super(s.json.message??s.json.error??t,{cause:i}),this.request=e,this.response=s,this.details=s.json.details}state(){return this.response.json}}class Nc extends qc{}class Fc extends qc{state(){return{message:this.message,text:this.response.text}}}class zc extends Error{constructor(t,{request:e,cause:s}={}){super(t,{cause:s}),this.request=e}}const Yc=t=>(window.location.href=lc(t),!1),Rc=async(t,e={})=>{var s;(e={cache:"no-store",credentials:"same-origin",mode:"same-origin",...e}).body=((s=e.body)instanceof HTMLFormElement&&(s=new FormData(s)),s instanceof FormData&&(s=Object.fromEntries(s)),"object"==typeof s?JSON.stringify(s):s),e.headers=((t={},e={})=>{return{"content-type":"application/json","x-csrf":e.csrf??!1,"x-fiber":!0,"x-fiber-globals":(s=e.globals,!!s&&(!1===Array.isArray(s)?String(s):s.join(","))),"x-fiber-referrer":e.referrer??!1,...$t(t)};var s})(e.headers,e),e.url=nc(t,e.query);const i=new Request(e.url,e);return!1===rc(i.url)?Yc(i.url):await Hc(i,await Uc(i))},Hc=async(t,e)=>{if(!1===e.headers.get("Content-Type").includes("application/json"))return Yc(e.url);try{e.text=await e.text(),e.json=JSON.parse(e.text)}catch(s){throw new Fc("Invalid JSON response",{cause:s,request:t,response:e})}if(401===e.status)throw new Nc("Unauthenticated",{request:t,response:e});if(!1===e.ok)throw new qc(`The request to ${e.url} failed`,{request:t,response:e});return{request:t,response:e}},Uc=async t=>{try{return await fetch(t)}catch(e){if("AbortError"===e?.name)throw e;throw window?.panel?.events?.emit("offline",e),new zc("Panel is offline",{cause:e,request:t})}},Vc=t=>({blueprint:async e=>t.get("users/"+e+"/blueprint"),blueprints:async(e,s)=>t.get("users/"+e+"/blueprints",{section:s}),changeEmail:async(e,s)=>t.patch("users/"+e+"/email",{email:s}),changeLanguage:async(e,s)=>t.patch("users/"+e+"/language",{language:s}),changeName:async(e,s)=>t.patch("users/"+e+"/name",{name:s}),changePassword:async(e,s,i)=>t.patch("users/"+e+"/password",{password:s,currentPassword:i}),changeRole:async(e,s)=>t.patch("users/"+e+"/role",{role:s}),create:async e=>t.post("users",e),delete:async e=>t.delete("users/"+e),deleteAvatar:async e=>t.delete("users/"+e+"/avatar"),link(t,e){return"/"+this.url(t,e)},async list(e){return t.post(this.url(null,"search"),e)},get:async(e,s)=>t.get("users/"+e,s),async roles(e){return(await t.get(this.url(e,"roles"))).data.map(t=>({info:t.description??`(${window.panel.$t("role.description.placeholder")})`,text:t.title,value:t.name}))},search:async e=>t.post("users/search",e),update:async(e,s)=>t.patch("users/"+e,s),url(t,e){let s=t?"users/"+t:"users";return e&&(s+="/"+e),s}}),Kc=t=>{const e={csrf:t.system.csrf,endpoint:Jl(t.urls.api,"/"),methodOverride:t.config.api?.methodOverride??!1,ping:null,requests:[],running:0},s=()=>{clearInterval(e.ping),e.ping=setInterval(()=>{!1===t.isOffline&&e.auth.ping()},3e5)};return e.request=async(i,n={},o=!1)=>{const r=i+"/"+JSON.stringify(n);e.requests.push(r),!1===o&&!0!==n.silent&&(t.isLoading=!0),e.language=t.language.code;try{return await(t=>async(e,s={})=>{(s={cache:"no-store",credentials:"same-origin",mode:"same-origin",...s}).headers={"content-type":"application/json","x-csrf":t.csrf,"x-language":t.language,...$t(s.headers??{})},t.methodOverride&&"GET"!==s.method&&"POST"!==s.method&&(s.headers["x-http-method-override"]=s.method,s.method="POST");for(const t in s.headers)null===s.headers[t]&&delete s.headers[t];s.url=Jl(t.endpoint,"/")+"/"+Kl(e,"/");const i=new Request(s.url,s),{response:n}=await Hc(i,await Uc(i));let o=n.json;return o.data&&"model"===o.type&&(o=o.data),o})(e)(i,n)}finally{s(),e.requests=e.requests.filter(t=>t!==r),0===e.requests.length&&(t.isLoading=!1)}},e.auth=(t=>({async login(e){const s={long:e.remember??!1,email:e.email,password:e.password};return t.post("auth/login",s)},logout:async()=>t.post("auth/logout"),ping:async()=>t.post("auth/ping"),user:async e=>t.get("auth",e),verifyCode:async e=>t.post("auth/code",{code:e})}))(e),e.delete=(t=>async(e,s,i,n=!1)=>t.post(e,s,i,"DELETE",n))(e),e.files=Tc(e),e.get=(t=>async(e,s,i,n=!1)=>(s&&(e+="?"+Object.keys(s).filter(t=>void 0!==s[t]&&null!==s[t]).map(t=>t+"="+s[t]).join("&")),t.request(e,Object.assign(i??{},{method:"GET"}),n)))(e),e.languages=(t=>({create:async e=>t.post("languages",e),delete:async e=>t.delete("languages/"+e),get:async e=>t.get("languages/"+e),list:async()=>t.get("languages"),update:async(e,s)=>t.patch("languages/"+e,s)}))(e),e.pages=Pc(e),e.patch=(t=>async(e,s,i,n=!1)=>t.post(e,s,i,"PATCH",n))(e),e.post=(t=>async(e,s,i,n="POST",o=!1)=>t.request(e,Object.assign(i??{},{method:n,body:JSON.stringify(s)}),o))(e),e.roles=(t=>({list:async e=>t.get("roles",e),get:async e=>t.get("roles/"+e)}))(e),e.system=(t=>({get:async(e={view:"panel"})=>t.get("system",e),install:async e=>(await t.post("system/install",e)).user,register:async e=>t.post("system/register",e)}))(e),e.site=(t=>({blueprint:async()=>t.get("site/blueprint"),blueprints:async()=>t.get("site/blueprints"),changeTitle:async e=>t.patch("site/title",{title:e}),children:async e=>t.post("site/children/search",e),get:async(e={view:"panel"})=>t.get("site",e),update:async e=>t.post("site",e)}))(e),e.translations=(t=>({list:async()=>t.get("translations"),get:async e=>t.get("translations/"+e)}))(e),e.users=Vc(e),s(),e},Wc=t=>{const e=n({cancelSaving(){this.saveLazy.cancel(),this.saveAbortController?.abort()},dialog:null,diff(t={}){if(!1===this.isCurrent(t))throw new Error("Cannot get changes for another view");const e=this.versions(),s={};for(const i in e.changes){JSON.stringify(e.changes[i])!==JSON.stringify(e.latest[i])&&(s[i]=e.changes[i])}for(const i in e.latest)void 0===e.changes[i]&&(s[i]=null);return s},async discard(e={}){if(!0!==this.isProcessing){if(!1===this.isCurrent(e))throw new Error("Cannot discard content from another view");if(!0===this.isLocked(e))throw new Error("Cannot discard locked changes");this.cancelSaving(),this.isProcessing=!0;try{await this.request("discard",{},e),t.view.props.versions.changes=this.version("latest"),this.emit("discard",{},e)}catch(s){if(s.key?.startsWith("error.content.lock"))return this.lockDialog(s.details);throw s}finally{this.isProcessing=!1}}},emit(e,s={},i={}){t.events.emit("content."+e,{...s,...this.env(i)})},env:(e={})=>({api:t.view.props.api,language:t.language.code,...e}),hasDiff(t={}){return vt(this.diff(t))>0},isCurrent(t={}){const e=this.env(t),s=this.env();return s.api===e.api&&s.language===e.language},isLocked(t={}){return this.lock(t)?.isLocked??!1},isProcessing:!1,lock(e={}){if(!1===this.isCurrent(e))throw new Error("The lock state cannot be detected for content from another view");return t.view.props.lock},lockDialog(e){this.dialog=t.dialog,this.dialog.open({component:"k-lock-alert-dialog",props:{lock:e},on:{close:()=>{this.dialog=null,t.view.reload()}}})},merge(e={},s={}){if(!1===this.isCurrent(s))throw new Error("The content in another view cannot be merged");return!1===yt(e)&&(e={}),t.view.props.versions.changes={...this.version("changes"),...e},t.view.props.versions.changes},async publish(e={},s={}){if(!0!==this.isProcessing){if(!1===this.isCurrent(s))throw new Error("Cannot publish content from another view");this.cancelSaving(),this.isProcessing=!0;try{await this.request("publish",this.merge(e,s),s),this.dialog?.close(),t.view.props.versions.latest=this.version("changes"),this.emit("publish",{values:e},s)}catch(i){if(i.key?.startsWith("error.content.lock"))return this.lockDialog(i.details);throw i}finally{this.isProcessing=!1}}},async request(e="save",s={},i={}){const{api:n,language:o}=this.env(i),r={headers:{"x-language":o}};return"save"===e&&(r.signal=this.saveAbortController.signal,r.silent=!0),t.api.post(n+"/changes/"+e,s,r)},async save(t={},e={}){this.cancelSaving(),this.saveAbortController=new AbortController;try{await this.request("save",t,e),this.dialog?.close(),!0===this.isCurrent(e)&&(this.lock(e).modified=new Date),this.emit("save",{values:t},e)}catch(s){if("AbortError"===s.name)return;if(this.isProcessing=!1,s.key?.startsWith("error.content.lock"))return this.lockDialog(s.details);throw s}},saveAbortController:null,async update(t={},e={}){return await this.save(this.merge(t,e),e)},updateLazy(t={},e={}){this.saveLazy(this.merge(t,e),e)},version(t){return this.versions()[t]},versions:()=>t.view.props.versions});return e.saveLazy=tc(e.save,1e3,{leading:!0,trailing:!0,timer:e.timer}),e},Jc=()=>({addEventListener(t,e){"function"==typeof e&&(this.on[t]=e)},addEventListeners(t){if(!1!==yt(t))for(const e in t)this.addEventListener(e,t[e])},emit(t,...e){return this.hasEventListener(t)?this.on[t](...e):()=>{}},hasEventListener(t){return"function"==typeof this.on[t]},listeners(){return this.on},on:{}}),Gc=(t,e,s)=>{const i=Lc(e,s);return n({...i,...Jc(),async get(e,s={}){this.isLoading=!0;try{return await t.get(e,s)}catch(i){t.error(i)}finally{this.isLoading=!1}return!1},async load(e,s={}){return!0!==s.silent&&(this.isLoading=!0),this.abortController=new AbortController,s.signal=this.abortController.signal,await t.open(e,s),this.isLoading=!1,this.addEventListeners(s.on),this.state()},async open(t,e={}){return"function"==typeof e&&(e={on:{submit:e}}),!0===ac(t)?this.load(t,e):(this.set(t),this.addEventListeners(e.on),this.emit("open",t,e),this.state())},async post(e,s={}){if(!this.path)throw new Error(`The ${this.key()} cannot be posted`);this.isLoading=!0,e??=this.props?.value??{};try{return await t.post(this.path,e,s)}catch(i){t.error(i)}finally{this.isLoading=!1}return!1},async refresh(t={}){if(t.url??=this.url(),!t.url)return;const e=(await this.get(t.url,t))["$"+this.key()];return e&&e.component===this.component?(this.props=e.props,this.state()):void 0},async reload(t={}){if(!this.path)return!1;this.open(this.url(),t)},set(t){return i.set.call(this,t),this.on={},this.addEventListeners(t.on??{}),this.state()},url(){return t.url(this.path,this.query)}})},Xc=()=>n({add(t,e=!1){if(!t.id)throw new Error("The state needs an ID");if(!0===e)return this.replace(-1,t);!0!==this.has(t.id)&&this.milestones.push(t)},at(t){return this.milestones.at(t)},clear(){this.milestones=[]},get(t=null){return null===t?this.milestones:this.milestones.find(e=>e.id===t)},goto(t){const e=this.index(t);if(-1!==e)return this.milestones=this.milestones.slice(0,e+1),this.milestones[e]},has(t){return void 0!==this.get(t)},index(t){return this.milestones.findIndex(e=>e.id===t)},isEmpty(){return 0===this.milestones.length},last(){return this.milestones.at(-1)},milestones:[],remove(t=null){return null===t?this.removeLast():this.milestones=this.milestones.filter(e=>e.id!==t)},removeLast(){return this.milestones=this.milestones.slice(0,-1)},replace(t,e){-1===t&&(t=this.milestones.length-1),s(this.milestones,t,e)}}),Zc=(t,e,i)=>{const o=Gc(t,e,i);return n({...o,async cancel(){this.isOpen&&this.emit("cancel"),this.close()},async close(e){if(!1===this.isOpen)return;if(void 0!==e&&!0!==e&&e!==this.id)return;!0===e?this.history.clear():this.history.removeLast();const s=this.on.closed??(()=>{});if(!1===this.history.isEmpty()){const t=this.open(this.history.last());return s(),t}this.isOpen=!1,this.emit("close"),this.reset(),s(),0===t.overlays().length&&(document.documentElement.removeAttribute("data-overlay"),document.documentElement.style.removeProperty("--scroll-top"))},focus(t){ss(`.k-${this.key()}-portal`,t)},goTo(t){const e=this.history.goto(t);void 0!==e&&this.open(e)},history:Xc(),input(t){!1!==this.isOpen&&(s(this.props,"value",t),this.emit("input",t))},isOpen:!1,listeners(){return{...this.on,cancel:this.cancel.bind(this),close:this.close.bind(this),input:this.input.bind(this),submit:this.submit.bind(this),success:this.success.bind(this)}},async open(e,s){return!1===this.isOpen&&t.notification.close(),await o.open.call(this,e,s),this.component&&(document.documentElement.setAttribute("data-overlay","true"),document.documentElement.style.setProperty("--scroll-top",window.scrollY+"px"),this.isOpen=!0),this.state()},async reload(t={}){if(!this.path)return!1;const e=this.url();await this.close(),this.open(e,t)},set(t){return o.set.call(this,t),this.id??=Zl(),this.state()},async submit(t,e={}){if(!0===this.isLoading)return;if(t??=this.props.value,this.hasEventListener("submit"))return this.emit("submit",t,e);if(!this.path)return this.close();const s=await this.post(t,e);return!1===yt(s)?s:this.success(s["$"+this.key()]??{})},success(e){return this.hasEventListener("success")?this.emit("success",e):("string"==typeof e&&t.notification.success(e),this.close(),this.successNotification(e),this.successEvents(e),e.route||e.redirect?this.successRedirect(e):t.view.reload(e.reload),e)},successEvents(e){if(e.event){const s=$l(e.event);for(const i of s)"string"==typeof i&&t.events.emit(i,e)}!1!==e.emit&&t.events.emit("success",e)},successNotification(e){e.message&&t.notification.success(e.message)},successRedirect(e){const s=e.route??e.redirect;return!!s&&("string"==typeof s?t.open(s):t.open(s.url,s.options))},get value(){return this.props?.value}})},Qc=t=>{t.events.on("dialog.save",e=>{e?.preventDefault?.(),t.dialog.submit()});const e=Zc(t,"dialog",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null,id:null,legacy:!1,ref:null});return n({...e,async close(){this.ref&&(this.ref.visible=!1),e.close.call(this)},async open(t,s={}){if(t instanceof window.Vue)return this.openComponent(t);yt(t)&&t.url&&(s=t,t=t.url,delete s.url),"string"==typeof t&&(t=`/dialogs/${t}`);const i=await e.open.call(this,t,s);return i?.id&&this.history.add(i,t.replace),i},async openComponent(s){t.deprecated("Dialog components should no longer be used in your templates");const i=await e.open.call(this,{component:s.$options._componentTag,legacy:!0,props:{...s.$attrs,...s.$props},ref:s}),n=this.listeners();for(const t in n)s.$on(t,n[t]);return s.visible=!0,i}})},tu=()=>{const t=Lc("drag",{type:null,data:{}});return n({...t,get isDragging(){return null!==this.type},start(t,e){this.type=t,this.data=e},stop(){this.type=null,this.data={}}})},eu=t=>{const e=Zc(t,"drawer",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null,id:null});return t.events.on("drawer.save",e=>{e.preventDefault(),t.drawer.submit()}),n({...e,get breadcrumb(){return this.history.milestones},get icon(){return this.props.icon??"box"},listeners(){return{...e.listeners.call(this),crumb:this.goTo.bind(this),tab:this.tab.bind(this)}},async open(t,s={}){yt(t)&&t.url&&(s=t,t=t.url,delete s.url),"string"==typeof t&&(t=`/drawers/${t}`),await e.open.call(this,t,s),this.tab(t.tab);const i=this.state();return i?.id&&this.history.add(i,t.replace),this.focus(),i},tab(t){const e=this.props.tabs??{};if(t??=Object.keys(e??{})[0],!t)return!1;s(this.props,"fields",e[t].fields),s(this.props,"tab",t),this.emit("tab",t),setTimeout(()=>{this.focus()})}})},su=t=>{const e=Gc(t,"dropdown",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null});return n({...e,close(){this.emit("close"),this.reset()},open(t,s={}){return"string"==typeof t&&(t=`/dropdowns/${t}`),e.open.call(this,t,s)},openAsync(t,e={}){return async s=>{await this.open(t,e);const i=this.options();if(0===i.length)throw Error("The dropdown is empty");s(i)}},options(){return!1===Array.isArray(this.props.options)?[]:this.props.options},set(t){return t.options&&(t.props={options:t.options}),e.set.call(this,t)}})},iu=t=>{const e=Y();e.on("online",()=>{t.isOffline=!1}),e.on("offline",()=>{t.isOffline=!0}),e.on("keydown.cmd.s",s=>{e.emit(t.context+".save",s)}),e.on("keydown.cmd.shift.f",()=>t.search()),e.on("keydown.cmd./",()=>t.search()),e.on("clipboard.write",async e=>{wl.write(e),t.notification.success(t.t("copy.success")+"!")});const s={document:{blur:!0,click:!1,copy:!0,focus:!0,paste:!0},window:{beforeunload:!1,dragenter:!1,dragexit:!1,dragleave:!1,dragover:!1,drop:!1,keydown:!1,keyup:!1,offline:!1,online:!1,popstate:!1}};return{beforeunload(t){this.emit("beforeunload",t)},blur(t){this.emit("blur",t)},click(t){this.emit("click",t)},copy(t){this.emit("copy",t)},dragenter(t){this.entered=t.target,this.prevent(t),this.emit("dragenter",t)},dragexit(t){this.prevent(t),this.entered=null,this.emit("dragexit",t)},dragleave(t){this.prevent(t),this.entered===t.target&&(this.entered=null,this.emit("dragleave",t))},dragover(t){this.prevent(t),this.emit("dragover",t)},drop(t){this.prevent(t),this.entered=null,this.emit("drop",t)},emit:e.emit,entered:null,focus(t){this.emit("focus",t)},keychain(t,e){let s=[t];(e.metaKey||e.ctrlKey)&&s.push("cmd"),!0===e.altKey&&s.push("alt"),!0===e.shiftKey&&s.push("shift");let i=e.key?Vl(e.key):null;const n={escape:"esc",arrowUp:"up",arrowDown:"down",arrowLeft:"left",arrowRight:"right"};return n[i]&&(i=n[i]),i&&!1===["alt","control","shift","meta"].includes(i)&&s.push(i),s.join(".")},keydown(t){this.emit(this.keychain("keydown",t),t),this.emit("keydown",t)},keyup(t){this.emit(this.keychain("keyup",t),t),this.emit("keyup",t)},off:e.off,offline(t){this.emit("offline",t)},on:e.on,online(t){this.emit("online",t)},paste(t){this.emit("paste",t)},popstate(t){this.emit("popstate",t)},prevent(t){t.stopPropagation(),t.preventDefault()},subscribe(){for(const t in s.document)document.addEventListener(t,this[t].bind(this),s.document[t]);for(const t in s.window)window.addEventListener(t,this[t].bind(this),s.window[t])},unsubscribe(){for(const t in s.document)document.removeEventListener(t,this[t]);for(const t in s.window)window.removeEventListener(t,this[t])}}},nu={interval:null,start(t,e){this.stop(),t&&(this.interval=setInterval(e,t))},stop(){clearInterval(this.interval),this.interval=null}},ou=(t={})=>{const e=Lc("notification",{context:null,details:null,icon:null,isOpen:!1,message:null,theme:null,timeout:null,type:null});return n({...e,close(){return this.timer.stop(),this.reset(),this.state()},deprecated(t){console.warn("Deprecated: "+t)},error(e){if(e instanceof Nc&&t.user.id)return t.redirect("logout");if(e instanceof Fc)return this.fatal(e);if(e instanceof qc){const t=Object.values(e.response.json).find(t=>"string"==typeof t?.error);t&&(e.message=t.error,e.details=t.details)}return"string"==typeof e&&(e={message:e}),e={message:e.message??"Something went wrong",details:e.details??{}},"view"===t.context&&t.dialog.open({component:"k-error-dialog",props:e}),this.open({message:e.message,icon:"alert",theme:"negative",type:"error"})},info(t={}){return"string"==typeof t&&(t={message:t}),this.open({icon:"info",theme:"info",...t})},get isFatal(){return"fatal"===this.type},fatal(t){return"string"==typeof t?this.open({message:t,type:"fatal"}):t instanceof Fc?this.open({message:t.response.text,type:"fatal"}):this.open({message:t.message??"Something went wrong",type:"fatal"})},open(e){return this.timer.stop(),"string"==typeof e?this.success(e):("error"!==e.type&&"fatal"!==e.type&&(e.timeout??=4e3),this.set({context:t.context,...e}),this.isOpen=!0,this.timer.start(this.timeout,()=>this.close()),this.state())},success(t={}){return"string"==typeof t&&(t={message:t}),this.open({icon:"check",theme:"positive",...t})},timer:nu})},ru=()=>{const t=Lc("language",{code:null,default:!1,direction:"ltr",hasCustomDomain:!1,name:null,rules:null});return n({...t,get isDefault(){return this.default}})},au=(t,e,s)=>{if(!s.template&&!s.render&&!s.extends)throw new Error(`Plugin component "${e}" is not providing any template or render method, neither is it extending a component. The component has not been registered.`);return s=lu(t,e,s),s=uu(s),s=cu(s),!0===Ll(e)&&window.console.warn(`Plugin is replacing "${e}"`),t.component(e,s),s},lu=(t,e,s)=>"string"!=typeof s?.extends?s:!1===Ll(s.extends)?(window.console.warn(`Problem with plugin trying to register component "${e}": cannot extend non-existent component "${s.extends}"`),s.extends=null,s):(s.extends=t.options.components[s.extends].extend({options:s,components:{...t.options.components,...s.components??{}}}),s),cu=e=>{if(!1===Array.isArray(e.mixins))return e;const s={dialog:It,drawer:ge,section:Kr};return e.mixins=e.mixins.map(i=>{if("string"==typeof i&&void 0!==s[i]){if(e.extends){if(!0===((new(t.extend(e.extends))).$options.mixins??[]).includes(s[i]))return}return s[i]}return i}).filter(t=>void 0!==t),e},uu=t=>(t.template&&(t.render=null),t),pu=(t,e={})=>((e={resolveComponentExtension:lu,resolveComponentMixins:cu,resolveComponentRender:uu,components:{},created:[],icons:{},login:null,textareaButtons:{},thirdParty:{},use:[],viewButtons:{},writerMarks:{},writerNodes:{},...e}).use=((t,e)=>{if(!1===Array.isArray(e))return[];for(const s of e)t.use(s);return e})(t,e.use),e.components=((t,e)=>{if(!1===yt(e))return;const s={};for(const[n,o]of Object.entries(e))try{s[n]=au(t,n,o)}catch(i){window.console.warn(i.message)}return s})(t,e.components),e),du=t=>{const e=Lc("menu",{entries:[],hover:!1,isOpen:!1}),s=window.matchMedia?.("(max-width: 60rem)"),i=n({...e,blur(t){const e=document.querySelector(".k-panel-menu");if(!e||!1===s.matches)return!1;!1===document.querySelector(".k-panel-menu-proxy").contains(t.target)&&!1===e.contains(t.target)&&this.close()},close(){this.isOpen=!1,!1===s.matches&&localStorage.setItem("kirby$menu",!0)},escape(){if(!1===s.matches)return!1;this.close()},open(){this.isOpen=!0,!1===s.matches&&localStorage.removeItem("kirby$menu")},resize(){if(s.matches)return this.close();null!==localStorage.getItem("kirby$menu")?this.isOpen=!1:this.isOpen=!0},set(t){return this.entries=t,this.resize(),this.state()},toggle(){this.isOpen?this.close():this.open()}});return t.events.on("keydown.esc",i.escape.bind(i)),t.events.on("click",i.blur.bind(i)),s?.addEventListener("change",i.resize.bind(i)),i},hu=t=>({controller:null,requests:0,get isLoading(){return this.requests>0},open(e){t.menu.escape(),t.dialog.open({component:"k-search-dialog",props:{type:e}})},async query(e,s,i){if(this.controller?.abort(),this.controller=new AbortController,s.length<2)return{results:null,pagination:{}};this.requests++;try{const{$search:n}=await t.get(`/search/${e}`,{query:{query:s,...i},signal:this.controller.signal});return n}catch(n){if("AbortError"!==n.name)return{results:[],pagination:{}}}finally{this.requests--}}}),mu=window.matchMedia?.("(prefers-color-scheme: dark)"),fu=t=>{const e=Lc("theme",{setting:localStorage.getItem("kirby$theme"),system:mu?.matches?"dark":"light"}),s=n({...e,get config(){return t.config.theme},get current(){const t=this.setting??this.config;return"system"===t?this.system:t??this.system},reset(){this.setting=null,localStorage.removeItem("kirby$theme")},set(t){this.setting=t,localStorage.setItem("kirby$theme",t)}});return mu?.addEventListener("change",t=>{s.system=t.matches?"dark":"light"}),s},gu=()=>{const t=Lc("translation",{code:null,data:{},direction:"ltr",name:null,weekday:1});return n({...t,set(e){return t.set.call(this,e),document.documentElement.lang=this.code,document.body.dir=this.direction,this.state()},translate(t,e,s=null){if("string"!=typeof t)return;const i=this.data[t]??s;return"string"!=typeof i?i:Gl(i,e)}})};const ku=t=>{const e=Lc("upload",{abort:null,accept:"*",attributes:{},files:[],max:null,multiple:!0,preview:{},replacing:null,url:null});return n({...e,...Jc(),input:null,announce(){t.notification.success({context:"view"}),t.events.emit("model.update")},async cancel(){await this.emit("cancel"),this.abort?.abort(),this.completed.length>0&&(await this.emit("complete",this.completed),this.announce()),this.reset()},get completed(){return this.files.filter(t=>t.completed).map(t=>t.model)},async done(){t.dialog.close(),this.completed.length>0&&(await this.emit("complete",this.completed),await this.emit("done",this.completed),this.announce()),this.reset()},findDuplicate(t){return this.files.findLastIndex(e=>e.src.name===t.src.name&&e.src.type===t.src.type&&e.src.size===t.src.size&&e.src.lastModified===t.src.lastModified)},hasUniqueName(t){return this.files.filter(e=>e.name===t.name&&e.extension===t.extension).length<2},file(t){const e=URL.createObjectURL(t);return{...this.preview,completed:!1,error:null,extension:Dl(t.name),filename:t.name,id:Zl(),model:null,name:El(t.name),niceSize:jl(t.size),progress:0,size:t.size,src:t,type:t.type,url:e}},open(e,s){e instanceof FileList?(this.set(s),this.select(e)):this.set(e);const i={component:"k-upload-dialog",props:{preview:this.preview},on:{open:t=>this.emit("open",t),cancel:()=>this.cancel(),submit:async()=>{t.dialog.isLoading=!0,await this.submit(),t.dialog.isLoading=!1}}};this.replacing&&(i.component="k-upload-replace-dialog",i.props.original=this.replacing),t.dialog.open(i)},pick(t){this.set(t),this.input=document.createElement("input"),this.input.type="file",this.input.classList.add("sr-only"),this.input.value=null,this.input.accept=this.accept,this.input.multiple=this.multiple,this.input.click(),this.input.addEventListener("change",e=>{!0===t?.immediate?(this.set(t),this.select(e.target.files),this.submit()):this.open(e.target.files,t),this.input.remove()})},remove(t){this.files=this.files.filter(e=>e.id!==t)},replace(e,s){this.pick({...s,url:t.urls.api+"/"+e.link,accept:"."+e.extension+","+e.mime,multiple:!1,replacing:e})},reset(){e.reset.call(this),this.files.splice(0)},select(t,e){if(this.set(e),t instanceof Event&&(t=t.target.files),t instanceof FileList==!1)throw new Error("Please provide a FileList");t=(t=[...t]).map(t=>this.file(t)),this.files=[...this.files,...t],this.files=this.files.filter((t,e)=>this.findDuplicate(t)===e),null!==this.max&&(this.files=this.files.slice(-1*this.max)),this.emit("select",this.files)},set(t){if(t)return e.set.call(this,t),this.on={},this.addEventListeners(t.on??{}),1===this.max&&(this.multiple=!1),!1===this.multiple&&(this.max=1),this.state()},async submit(){if(!this.url)throw new Error("The upload URL is missing");this.abort=new AbortController;const e=[];for(const s of this.files){if(!0===s.completed)continue;if(!1===this.hasUniqueName(s)){s.error=t.t("error.file.name.unique");continue}s.error=null,s.progress=0;const i={...this.attributes};e.push(async()=>await this.upload(s,i));const n=this.attributes?.sort;null!=n&&this.attributes.sort++}if(await async function(t,e=20){let s=0,i=0;return new Promise(n=>{const o=e=>i=>{t[e]=i,s--,r()},r=()=>{if(s1?t.slice(a,l,t.type):t;i>1&&(e.headers={...e.headers,"Upload-Length":t.size,"Upload-Offset":a,"Upload-Id":n}),o=await ec(c,{...e,progress:(s,i,n)=>{const o=i.size*(n/100),r=(a+o)/t.size;e.progress(s,t,Math.round(100*r))}})}return o}(e.src,{abort:this.abort.signal,attributes:s,filename:e.name+"."+e.extension,headers:{"x-csrf":t.system.csrf},url:this.url,progress:(t,s,i)=>{e.progress=i}},t.config.upload);e.completed=!0,e.model=i.data,t.events.emit("file.upload",e)}catch(i){t.error(i,!1),e.error=i.message,e.progress=0,t.events.emit("file.upload.error",e)}}})},bu=t=>{const e=Gc(t,"view",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null,breadcrumb:[],breadcrumbLabel:null,icon:null,id:null,link:null,search:"pages",title:null});return n({...e,async load(t,s={}){return this.abortController?.abort(),e.load.call(this,t,s)},set(s){e.set.call(this,s),t.title=this.title;const i=this.url().toString();window.location.toString()!==i&&(window.history.pushState(null,null,i),window.scrollTo(0,0))},async submit(){throw new Error("Not yet implemented")}})},yu={config:{},languages:[],license:"missing",multilang:!1,permissions:{},searches:{},urls:{}},vu=["dialog","drawer"],$u=["dropdown","language","menu","notification","system","translation","user"],xu={create(t={}){return this.isLoading=!1,this.isOffline=!1,this.activation=Bc(),this.drag=tu(),this.events=iu(this),this.searcher=hu(this),this.theme=fu(this),this.upload=ku(this),this.language=ru(),this.menu=du(this),this.notification=ou(this),this.system=Lc("system",{ascii:{},csrf:null,isLocal:null,locales:{},slugs:[],title:null}),this.translation=gu(),this.user=Lc("user",{email:null,id:null,language:null,role:null,username:null}),this.dropdown=su(this),this.view=bu(this),this.content=Wc(this),this.drawer=eu(this),this.dialog=Qc(this),this.redirect=Yc,this.reload=this.view.reload.bind(this.view),this.t=this.translation.translate.bind(this.translation),this.plugins=pu(window.Vue,t),this.set(window.fiber),this.api=Kc(this),n(this)},get context(){return this.dialog.isOpen?"dialog":this.drawer.isOpen?"drawer":"view"},get debug(){return!0===this.config.debug},deprecated(t){this.notification.deprecated(t)},get direction(){return this.translation.direction},error(t,e=!0){if("AbortError"!==t.name){if(!(t instanceof zc))return!0===this.debug&&console.error(t),!0===e?this.notification.error(t):void 0;this.isOffline=!0}},async get(t,e={}){const{response:s}=await this.request(t,{method:"GET",...e});return s?.json??{}},async open(t,e={}){try{if(!1===ac(t))this.set(t);else{this.isLoading=!0;const s=await this.get(t,e);this.set(s)}return this.state()}catch(s){return this.error(s)}finally{this.isLoading=!1}},overlays(){const t=[];return!0===this.drawer.isOpen&&t.push("drawer"),!0===this.dialog.isOpen&&t.push("dialog"),t},async post(t,e={},s={}){const{response:i}=await this.request(t,{method:"POST",body:e,...s});return i.json},async request(t,e={}){return Rc(t,{referrer:this.view.path,csrf:this.system.csrf,...e})},async search(t,e,s){return void 0===e?this.searcher.open(t):this.searcher.query(t,e,s)},set(t={}){t=Object.fromEntries(Object.entries(t).map(([t,e])=>[t.replace("$",""),e]));for(const e in yu){const s=t[e]??this[e]??yu[e];typeof s==typeof yu[e]&&(this[e]=s)}for(const e of $u)(yt(t[e])||Array.isArray(t[e]))&&this[e].set(t[e]);for(const e of vu)if(!0===yt(t[e])){if(t[e].redirect)return this.open(t[e].redirect);this[e].open(t[e])}else void 0!==t[e]&&this[e].close(!0);!0===yt(t.dropdown)?this.dropdown.open(t.dropdown):void 0!==t.dropdown&&this.dropdown.close(),!0===yt(t.view)&&this.view.open(t.view)},state(){const t={};for(const e in yu)t[e]=this[e]??yu[e];for(const e of $u)t[e]=this[e].state();for(const e of vu)t[e]=this[e].state();return t.dropdown=this.dropdown.state(),t.view=this.view.state(),t},get title(){return document.title},set title(t){!1===Ul(this.system.title)&&(t+=" | "+this.system.title),document.title=t},url:(t="",e={},s)=>nc(t,e,s)};t.config.productionTip=!1,t.config.devtools=!0,t.use(pc),t.use(Ic),t.use(bl),window.panel=t.prototype.$panel=xu.create(window.panel.plugins),window.panel.app=new t({render:()=>i(R)}),t.use(dc),t.use(yl),t.use(hc),window.panel.app.$mount("#app");export{lt as n}; diff --git a/kirby/panel/dist/js/vendor.min.js b/kirby/panel/dist/js/vendor.min.js index ae5e1b3..706bfb7 100644 --- a/kirby/panel/dist/js/vendor.min.js +++ b/kirby/panel/dist/js/vendor.min.js @@ -1 +1 @@ -import e from"vue";function t(e){this.content=e}function n(e,t,r){for(let i=0;;i++){if(i==e.childCount||i==t.childCount)return e.childCount==t.childCount?null:r;let o=e.child(i),s=t.child(i);if(o!=s){if(!o.sameMarkup(s))return r;if(o.isText&&o.text!=s.text){for(let e=0;o.text[e]==s.text[e];e++)r++;return r}if(o.content.size||s.content.size){let e=n(o.content,s.content,r+1);if(null!=e)return e}r+=o.nodeSize}else r+=o.nodeSize}}function r(e,t,n,i){for(let o=e.childCount,s=t.childCount;;){if(0==o||0==s)return o==s?null:{a:n,b:i};let l=e.child(--o),a=t.child(--s),h=l.nodeSize;if(l!=a){if(!l.sameMarkup(a))return{a:n,b:i};if(l.isText&&l.text!=a.text){let e=0,t=Math.min(l.text.length,a.text.length);for(;e>1}},t.from=function(e){if(e instanceof t)return e;var n=[];if(e)for(var r in e)n.push(r,e[r]);return new t(n)};class i{constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;ne&&!1!==n(l,r+s,i||null,o)&&l.content.size){let i=s+1;l.nodesBetween(Math.max(0,e-i),Math.min(l.content.size,t-i),n,r+i)}s=a}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i="",o=!0;return this.nodesBetween(e,t,(s,l)=>{let a=s.isText?s.text.slice(Math.max(e,l)-l,t-l):s.isLeaf?r?"function"==typeof r?r(s):r:s.type.spec.leafText?s.type.spec.leafText(s):"":"";s.isBlock&&(s.isLeaf&&a||s.isTextblock)&&n&&(o?o=!1:i+=n),i+=a},0),i}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,n=e.firstChild,r=this.content.slice(),o=0;for(t.isText&&t.sameMarkup(n)&&(r[r.length-1]=t.withText(t.text+n.text),o=1);oe)for(let i=0,o=0;oe&&((ot)&&(s=s.isText?s.cut(Math.max(0,e-o),Math.min(s.text.length,t-o)):s.cut(Math.max(0,e-o-1),Math.min(s.content.size,t-o-1))),n.push(s),r+=s.nodeSize),o=l}return new i(n,r)}cutByIndex(e,t){return e==t?i.empty:0==e&&t==this.content.length?this:new i(this.content.slice(e,t))}replaceChild(e,t){let n=this.content[e];if(n==t)return this;let r=this.content.slice(),o=this.size+t.nodeSize-n.nodeSize;return r[e]=t,new i(r,o)}addToStart(e){return new i([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new i(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=n+this.child(t).nodeSize;if(r>=e)return r==e?s(t+1,r):s(t,n);n=r}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return i.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new i(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return i.empty;let t,n=0;for(let r=0;rthis.type.rank&&(t||(t=e.slice(0,r)),t.push(this),n=!0),t&&t.push(i)}}return t||(t=e.slice()),n||t.push(this),t}removeFromSet(e){for(let t=0;te.type.rank-t.type.rank),t}}a.none=[];class h extends Error{}class c{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let n=p(this.content,e+this.openStart,t);return n&&new c(n,this.openStart,this.openEnd)}removeBetween(e,t){return new c(d(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return c.empty;let n=t.openStart||0,r=t.openEnd||0;if("number"!=typeof n||"number"!=typeof r)throw new RangeError("Invalid input for Slice.fromJSON");return new c(i.fromJSON(e,t.content),n,r)}static maxOpen(e,t=!0){let n=0,r=0;for(let i=e.firstChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.firstChild)n++;for(let i=e.lastChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.lastChild)r++;return new c(e,n,r)}}function d(e,t,n){let{index:r,offset:i}=e.findIndex(t),o=e.maybeChild(r),{index:s,offset:l}=e.findIndex(n);if(i==t||o.isText){if(l!=n&&!e.child(s).isText)throw new RangeError("Removing non-flat range");return e.cut(0,t).append(e.cut(n))}if(r!=s)throw new RangeError("Removing non-flat range");return e.replaceChild(r,o.copy(d(o.content,t-i-1,n-i-1)))}function p(e,t,n,r){let{index:i,offset:o}=e.findIndex(t),s=e.maybeChild(i);if(o==t||s.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=p(s.content,t-o-1,n,s);return l&&e.replaceChild(i,s.copy(l))}function u(e,t,n){if(n.openStart>e.depth)throw new h("Inserted content deeper than insertion position");if(e.depth-n.openStart!=t.depth-n.openEnd)throw new h("Inconsistent open depths");return f(e,t,n,0)}function f(e,t,n,r){let o=e.index(r),s=e.node(r);if(o==t.index(r)&&r=0;o--)r=t.node(o).copy(i.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}(n,e);return v(s,x(e,o,l,t,r))}{let r=e.parent,i=r.content;return v(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}}return v(s,b(e,t,r))}function m(e,t){if(!t.type.compatibleContent(e.type))throw new h("Cannot join "+t.type.name+" onto "+e.type.name)}function g(e,t,n){let r=e.node(n);return m(r,t.node(n)),r}function y(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function w(e,t,n,r){let i=(t||e).node(n),o=0,s=t?t.index(n):i.childCount;e&&(o=e.index(n),e.depth>n?o++:e.textOffset&&(y(e.nodeAfter,r),o++));for(let l=o;lo&&g(e,t,o+1),l=r.depth>o&&g(n,r,o+1),a=[];return w(null,e,o,a),s&&l&&t.index(o)==n.index(o)?(m(s,l),y(v(s,x(e,t,n,r,o+1)),a)):(s&&y(v(s,b(e,t,o+1)),a),w(t,n,o,a),l&&y(v(l,b(n,r,o+1)),a)),w(r,null,o,a),new i(a)}function b(e,t,n){let r=[];if(w(null,e,n,r),e.depth>n){y(v(g(e,t,n+1),b(e,t,n+1)),r)}return w(t,null,n,r),new i(r)}c.empty=new c(i.empty,0,0);class S{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return null==e?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[3*this.resolveDepth(e)]}index(e){return this.path[3*this.resolveDepth(e)+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e!=this.depth||this.textOffset?1:0)}start(e){return 0==(e=this.resolveDepth(e))?0:this.path[3*e-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(!(e=this.resolveDepth(e)))throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[3*e-1]}after(e){if(!(e=this.resolveDepth(e)))throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[3*e-1]+this.path[3*e].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):0==e?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[3*t],r=0==t?0:this.path[3*t-1]+1;for(let i=0;i0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new O(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let n=[],r=0,i=t;for(let o=e;;){let{index:e,offset:t}=o.content.findIndex(i),s=i-t;if(n.push(o,e,r+t),!s)break;if(o=o.child(e),o.isText)break;i=s-1,r+=t+1}return new S(t,n,i)}static resolveCached(e,t){let n=C.get(e);if(n)for(let i=0;ie&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),E(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,n=i.empty,r=0,o=n.childCount){let s=this.contentMatchAt(e).matchFragment(n,r,o),l=s&&s.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let i=r;ie.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let n;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");n=t.marks.map(e.markFromJSON)}if("text"==t.type){if("string"!=typeof t.text)throw new RangeError("Invalid text node in JSON");return e.text(t.text,n)}let r=i.fromJSON(e,t.content),o=e.nodeType(t.type).create(t.attrs,r,n);return o.type.checkAttrs(o.attrs),o}}D.prototype.text=void 0;class T extends D{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw new RangeError("Empty text nodes are not allowed");this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):E(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new T(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new T(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return 0==e&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function E(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+"("+t+")";return t}class A{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let n=new $(e,t);if(null==n.next)return A.empty;let r=R(n);n.next&&n.err("Unexpected trailing text");let i=function(e){let t=Object.create(null);return n(F(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e{r||i.push([t,r=[]]),-1==r.indexOf(e)&&r.push(e)})})});let o=t[r.join(",")]=new A(r.indexOf(e.length-1)>-1);for(let e=0;ee.to=t)}function o(e,t){if("choice"==e.type)return e.exprs.reduce((e,n)=>e.concat(o(n,t)),[]);if("seq"!=e.type){if("star"==e.type){let s=n();return r(t,s),i(o(e.expr,s),s),[r(s)]}if("plus"==e.type){let s=n();return i(o(e.expr,t),s),i(o(e.expr,s),s),[r(s)]}if("opt"==e.type)return[r(t)].concat(o(e.expr,t));if("range"==e.type){let s=t;for(let t=0;te.createAndFill()));for(let e=0;e=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];return function t(n){e.push(n);for(let r=0;r{let r=n+(t.validEnd?"*":" ")+" ";for(let i=0;i"+e.indexOf(t.next[i].next);return r}).join("\n")}}A.empty=new A(!0);class ${constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),""==this.tokens[this.tokens.length-1]&&this.tokens.pop(),""==this.tokens[0]&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function R(e){let t=[];do{t.push(I(e))}while(e.eat("|"));return 1==t.length?t[0]:{type:"choice",exprs:t}}function I(e){let t=[];do{t.push(z(e))}while(e.next&&")"!=e.next&&"|"!=e.next);return 1==t.length?t[0]:{type:"seq",exprs:t}}function z(e){let t=function(e){if(e.eat("(")){let t=R(e);return e.eat(")")||e.err("Missing closing paren"),t}if(!/\W/.test(e.next)){let t=function(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let o in n){let e=n[o];e.isInGroup(t)&&i.push(e)}0==i.length&&e.err("No node type or group '"+t+"' found");return i}(e,e.next).map(t=>(null==e.inline?e.inline=t.isInline:e.inline!=t.isInline&&e.err("Mixing inline and block content"),{type:"name",value:t}));return e.pos++,1==t.length?t[0]:{type:"choice",exprs:t}}e.err("Unexpected token '"+e.next+"'")}(e);for(;;)if(e.eat("+"))t={type:"plus",expr:t};else if(e.eat("*"))t={type:"star",expr:t};else if(e.eat("?"))t={type:"opt",expr:t};else{if(!e.eat("{"))break;t=B(e,t)}return t}function P(e){/\D/.test(e.next)&&e.err("Expected number, got '"+e.next+"'");let t=Number(e.next);return e.pos++,t}function B(e,t){let n=P(e),r=n;return e.eat(",")&&(r="}"!=e.next?P(e):-1),e.eat("}")||e.err("Unclosed braced range"),{type:"range",min:n,max:r,expr:t}}function V(e,t){return t-e}function F(e,t){let n=[];return function t(r){let i=e[r];if(1==i.length&&!i[0].term)return t(i[0].to);n.push(r);for(let e=0;e-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:W(this.attrs,e)}create(e=null,t,n){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new D(this,this.computeAttrs(e),i.from(t),a.setFrom(n))}createChecked(e=null,t,n){return t=i.from(t),this.checkContent(t),new D(this,this.computeAttrs(e),t,a.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),(t=i.from(t)).size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),o=r&&r.fillBefore(i.empty,!0);return o?new D(this,e,t.append(o),a.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let n=0;n-1}allowsMarks(e){if(null==this.markSet)return!0;for(let t=0;tr[t]=new e(t,n,i));let i=n.spec.topNode||"doc";if(!r[i])throw new RangeError("Schema is missing its top node type ('"+i+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let e in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};class _{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,"default"),this.default=n.default,this.validate="string"==typeof n.validate?function(e,t,n){let r=n.split("|");return n=>{let i=null===n?"null":typeof n;if(r.indexOf(i)<0)throw new RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}}class K{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=q(e,r.attrs),this.excluded=null;let i=L(this.attrs);this.instance=i?new a(this,i):null}create(e=null){return!e&&this.instance?this.instance:new a(this,W(this.attrs,e))}static compile(e,t){let n=Object.create(null),r=0;return e.forEach((e,i)=>n[e]=new K(e,r++,t,i)),n}removeFromSet(e){for(var t=0;t-1}}class H{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let n=this.spec={};for(let t in e)n[t]=e[t];n.nodes=t.from(e.nodes),n.marks=t.from(e.marks||{}),this.nodes=j.compile(this.spec.nodes,this),this.marks=K.compile(this.spec.marks,this);let r=Object.create(null);for(let t in this.nodes){if(t in this.marks)throw new RangeError(t+" can not be both a node and a mark");let e=this.nodes[t],n=e.spec.content||"",i=e.spec.marks;if(e.contentMatch=r[n]||(r[n]=A.parse(n,this.nodes)),e.inlineContent=e.contentMatch.inlineContent,e.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!e.isInline||!e.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=e}e.markSet="_"==i?null:i?Y(this,i.split(" ")):""!=i&&e.inlineContent?null:[]}for(let t in this.marks){let e=this.marks[t],n=e.spec.excludes;e.excluded=null==n?[e]:""==n?[]:Y(this,n.split(" "))}this.nodeFromJSON=e=>D.fromJSON(this,e),this.markFromJSON=e=>a.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if("string"==typeof e)e=this.nodeType(e);else{if(!(e instanceof j))throw new RangeError("Invalid node type: "+e);if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new T(n,n.defaultAttrs,e,a.setFrom(t))}mark(e,t){return"string"==typeof e&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError("Unknown node type: "+e);return t}}function Y(e,t){let n=[];for(let r=0;r-1)&&n.push(s=r)}if(!s)throw new SyntaxError("Unknown mark type: '"+t[r]+"'")}return n}class U{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(function(e){return null!=e.tag}(e))this.tags.push(e);else if(function(e){return null!=e.style}(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new te(this,t,!1);return n.addAll(e,a.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new te(this,t,!0);return n.addAll(e,a.none,t.from,t.to),c.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;re.length&&(61!=o.charCodeAt(e.length)||o.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(!1===e)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=null==e.priority?50:e.priority,r=0;for(;r{n(e=re(e)),e.mark||e.ignore||e.clearMark||(e.mark=r)})}for(let r in e.nodes){let t=e.nodes[r].spec.parseDOM;t&&t.forEach(e=>{n(e=re(e)),e.node||e.ignore||e.mark||(e.node=r)})}return t}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new U(e,U.schemaRules(e)))}}const G={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},Z={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},X={ol:!0,ul:!0};function Q(e,t,n){return null!=t?(t?1:0)|("full"===t?2:0):e&&"pre"==e.whitespace?3:-5&n}class ee{constructor(e,t,n,r,i,o){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=o,this.content=[],this.activeMarks=a.none,this.match=i||(4&o?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(i.from(e));if(!t){let t,n=this.type.contentMatch;return(t=n.findWrapping(e.type))?(this.match=n,t):null}this.match=this.type.contentMatch.matchFragment(t)}return this.match.findWrapping(e.type)}finish(e){if(!(1&this.options)){let e,t=this.content[this.content.length-1];if(t&&t.isText&&(e=/[ \t\r\n\u000c]+$/.exec(t.text))){let n=t;t.text.length==e[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-e[0].length))}}let t=i.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(i.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!G.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class te{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r,i=t.topNode,o=Q(null,t.preserveWhitespace,0)|(n?4:0);r=i?new ee(i.type,i.attrs,a.none,!0,t.topMatch||i.type.contentMatch,o):new ee(n?null:e.schema.topNodeType,null,a.none,!0,null,o),this.nodes=[r],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){3==e.nodeType?this.addTextNode(e,t):1==e.nodeType&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=2&r.options?"full":this.localPreserveWS||(1&r.options)>0,{schema:o}=this.parser;if("full"===i||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(i)if("full"===i)n=n.replace(/\r\n?/g,"\n");else if(o.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(o.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n!r.clearMark(e)):t.concat(this.parser.schema.marks[r.mark].create(r.attrs)),!1!==r.consuming)break;n=r}}return t}addElementByRule(e,t,n,r){let i,o;if(t.node)if(o=this.parser.schema.nodes[t.node],o.isLeaf)this.insertNode(o.create(t.attrs),n,"BR"==e.nodeName)||this.leafFallback(e,n);else{let e=this.enter(o,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let s=this.top;if(o&&o.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;"string"==typeof t.contentElement?r=e.querySelector(t.contentElement):"function"==typeof t.contentElement?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(s)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let o=n?e.childNodes[n]:e.firstChild,s=null==r?null:e.childNodes[r];o!=s;o=o.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(o,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let o=this.open,s=0;o>=0;o--){let t=this.nodes[o],l=t.findWrapping(e);if(l&&(!r||r.length>l.length+s)&&(r=l,i=t,!l.length))break;if(t.solid){if(n)break;s+=2}}if(!r)return null;this.sync(i);for(let o=0;o!(o.type?o.type.allowsMarkType(t.type):ie(t.type,e))||(l=t.addToSet(l),!1)),this.nodes.push(new ee(e,t,l,r,null,s)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!(!this.isOpen&&!this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--){if(this.nodes[t]==e)return this.open=t,!0;this.localPreserveWS&&(this.nodes[t].options|=1)}return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split("/"),n=this.options.context,r=!(this.isOpen||n&&n.parent.type!=this.nodes[0].type),i=-(n?n.depth+1:0)+(r?0:1),o=(e,s)=>{for(;e>=0;e--){let l=t[e];if(""==l){if(e==t.length-1||0==e)continue;for(;s>=i;s--)if(o(e-1,s))return!0;return!1}{let e=s>0||0==s&&r?this.nodes[s].type:n&&s>=i?n.node(s-i).type:null;if(!e||e.name!=l&&!e.isInGroup(l))return!1;s--}}return!0};return o(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let t in this.parser.schema.nodes){let e=this.parser.schema.nodes[t];if(e.isTextblock&&e.defaultAttrs)return e}}}function ne(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function re(e){let t={};for(let n in e)t[n]=e[n];return t}function ie(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let o=[],s=e=>{o.push(e);for(let n=0;n{if(i.length||e.marks.length){let n=0,o=0;for(;n=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&ce(le(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return ce(e,t,n,r)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new oe(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let t=se(e.nodes);return t.text||(t.text=e=>e.text),t}static marksFromSchema(e){return se(e.marks)}}function se(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function le(e){return e.document||window.document}const ae=new WeakMap;function he(e){let t=ae.get(e);return void 0===t&&ae.set(e,t=function(e){let t=null;function n(e){if(e&&"object"==typeof e)if(Array.isArray(e))if("string"==typeof e[0])t||(t=[]),t.push(e);else for(let t=0;t-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let s,l=o.indexOf(" ");l>0&&(n=o.slice(0,l),o=o.slice(l+1));let a=n?e.createElementNS(n,o):e.createElement(o),h=t[1],c=1;if(h&&"object"==typeof h&&null==h.nodeType&&!Array.isArray(h)){c=2;for(let e in h)if(null!=h[e]){let t=e.indexOf(" ");t>0?a.setAttributeNS(e.slice(0,t),e.slice(t+1),h[e]):"style"==e&&a.style?a.style.cssText=h[e]:a.setAttribute(e,h[e])}}for(let d=c;dc)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}{let{dom:t,contentDOM:o}=ce(e,i,n,r);if(a.appendChild(t),o){if(s)throw new RangeError("Multiple content holes");s=o}}}return{dom:a,contentDOM:s}}const de=Math.pow(2,16);function pe(e,t){return e+t*de}function ue(e){return 65535&e}class fe{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(8&this.delInfo)>0}get deletedBefore(){return(5&this.delInfo)>0}get deletedAfter(){return(6&this.delInfo)>0}get deletedAcross(){return(4&this.delInfo)>0}}class me{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&me.empty)return me.empty}recover(e){let t=0,n=ue(e);if(!this.inverted)for(let r=0;re)break;let a=this.ranges[s+i],h=this.ranges[s+o],c=l+a;if(e<=c){let i=l+r+((a?e==l?-1:e==c?1:t:t)<0?0:h);if(n)return i;let o=e==(t<0?l:c)?null:pe(s/3,e-l),d=e==l?2:e==c?1:4;return(t<0?e!=l:e!=c)&&(d|=8),new fe(i,d,o)}r+=h-a}return n?e+r:new fe(e+r,0,null)}touches(e,t){let n=0,r=ue(t),i=this.inverted?2:1,o=this.inverted?1:2;for(let s=0;se)break;let l=this.ranges[s+i];if(e<=t+l&&s==3*r)return!0;n+=this.ranges[s+o]-l}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r=0;t--){let r=e.getMirror(t);this.appendMap(e.maps[t].invert(),null!=r&&r>t?n-r-1:void 0)}}invert(){let e=new ge;return e.appendMappingInverted(this),e}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;ni&&te.isAtom&&t.type.allowsMarkType(this.mark.type)?e.mark(this.mark.addToSet(e.marks)):e,r),t.openStart,t.openEnd);return ve.fromReplace(e,this.from,this.to,i)}invert(){return new Se(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return t.deleted&&n.deleted||t.pos>=n.pos?null:new be(t.pos,n.pos,this.mark)}merge(e){return e instanceof be&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new be(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to)throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new be(t.from,t.to,e.markFromJSON(t.mark))}}we.jsonID("addMark",be);class Se extends we{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new c(xe(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return ve.fromReplace(e,this.from,this.to,n)}invert(){return new be(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return t.deleted&&n.deleted||t.pos>=n.pos?null:new Se(t.pos,n.pos,this.mark)}merge(e){return e instanceof Se&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Se(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to)throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new Se(t.from,t.to,e.markFromJSON(t.mark))}}we.jsonID("removeMark",Se);class ke extends we{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return ve.fail("No node at mark step's position");let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return ve.fromReplace(e,this.pos,this.pos+1,new c(i.from(n),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);if(t){let e=this.mark.addToSet(t.marks);if(e.length==t.marks.length){for(let n=0;nn.pos?null:new Oe(t.pos,n.pos,r,i,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to||"number"!=typeof t.gapFrom||"number"!=typeof t.gapTo||"number"!=typeof t.insert)throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new Oe(t.from,t.to,t.gapFrom,t.gapTo,c.fromJSON(e,t.slice),t.insert,!!t.structure)}}function Ne(e,t,n){let r=e.resolve(t),i=n-t,o=r.depth;for(;i>0&&o>0&&r.indexAfter(o)==r.node(o).childCount;)o--,i--;if(i>0){let e=r.node(o).maybeChild(r.indexAfter(o));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function De(e,t,n,r=n.contentMatch,o=!0){let s=e.doc.nodeAt(t),l=[],a=t+1;for(let h=0;h=0;i--)e.step(l[i])}function Te(e,t,n){return(0==t||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function Ee(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth;;--n){let r=e.$from.node(n),i=e.$from.index(n),o=e.$to.indexAfter(n);if(n{if(i.isText){let s,l=/\r?\n|\r/g;for(;s=l.exec(i.text);){let i=e.mapping.slice(r).map(n+1+o+s.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function Ie(e,t,n,r){t.forEach((i,o)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+o);e.replaceWith(i,i+1,t.type.schema.text("\n"))}})}function ze(e,t,n=1,r){let i=e.resolve(t),o=i.depth-n,s=r&&r[r.length-1]||i.parent;if(o<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!s.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let h=i.depth-1,c=n-2;h>o;h--,c--){let e=i.node(h),t=i.index(h);if(e.type.spec.isolating)return!1;let n=e.content.cutByIndex(t,e.childCount),o=r&&r[c+1];o&&(n=n.replaceChild(0,o.type.create(o.attrs)));let s=r&&r[c]||e;if(!e.canReplace(t+1,e.childCount)||!s.type.validContent(n))return!1}let l=i.indexAfter(o),a=r&&r[0];return i.node(o).canReplaceWith(l,l,a?a.type:i.node(o+1).type)}function Pe(e,t){let n=e.resolve(t),r=n.index();return i=n.nodeBefore,o=n.nodeAfter,!(!i||!o||i.isLeaf||!function(e,t){t.content.size||e.type.compatibleContent(t.type);let n=e.contentMatchAt(e.childCount),{linebreakReplacement:r}=e.type.schema;for(let i=0;i0;r--)this.placed=i.from(e.node(r).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let e=this.findFittable();e?this.placeNodes(e):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),t=this.placed.size-this.depth-this.$from.depth,n=this.$from,r=this.close(e<0?this.$to:n.doc.resolve(e));if(!r)return null;let i=this.placed,o=n.depth,s=r.depth;for(;o&&s&&1==i.childCount;)i=i.firstChild.content,o--,s--;let l=new c(i,o,s);return e>-1?new Oe(n.pos,e,this.$to.pos,this.$to.end(),l,t):l.size||n.pos!=this.$to.pos?new Ce(n.pos,r.pos,l):null}findFittable(){let e=this.unplaced.openStart;for(let t=this.unplaced.content,n=0,r=this.unplaced.openEnd;n1&&(r=0),i.type.spec.isolating&&r<=n){e=n;break}t=i.content}for(let t=1;t<=2;t++)for(let n=1==t?e:this.unplaced.openStart;n>=0;n--){let e,r=null;n?(r=Je(this.unplaced.content,n-1).firstChild,e=r.content):e=this.unplaced.content;let o=e.firstChild;for(let s=this.depth;s>=0;s--){let e,{type:l,match:a}=this.frontier[s],h=null;if(1==t&&(o?a.matchType(o.type)||(h=a.fillBefore(i.from(o),!1)):r&&l.compatibleContent(r.type)))return{sliceDepth:n,frontierDepth:s,parent:r,inject:h};if(2==t&&o&&(e=a.findWrapping(o.type)))return{sliceDepth:n,frontierDepth:s,parent:r,wrap:e};if(r&&a.matchType(r.type))break}}}openMore(){let{content:e,openStart:t,openEnd:n}=this.unplaced,r=Je(e,t);return!(!r.childCount||r.firstChild.isLeaf)&&(this.unplaced=new c(e,t+1,Math.max(n,r.size+t>=e.size-n?t+1:0)),!0)}dropNode(){let{content:e,openStart:t,openEnd:n}=this.unplaced,r=Je(e,t);if(r.childCount<=1&&t>0){let i=e.size-t<=t+r.size;this.unplaced=new c(Le(e,t-1,1),t-1,i?t-1:n)}else this.unplaced=new c(Le(e,t,1),t,n)}placeNodes({sliceDepth:e,frontierDepth:t,parent:n,inject:r,wrap:o}){for(;this.depth>t;)this.closeFrontierNode();if(o)for(let i=0;i1||0==a||e.content.size)&&(p=t,d.push(qe(e.mark(u.allowedMarks(e.marks)),1==h?a:0,h==l.childCount?f:-1)))}let m=h==l.childCount;m||(f=-1),this.placed=We(this.placed,t,i.from(d)),this.frontier[t].match=p,m&&f<0&&n&&n.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let i=0,c=l;i1&&r==this.$to.end(--n);)++r;return r}findCloseLevel(e){e:for(let t=Math.min(this.depth,e.depth);t>=0;t--){let{match:n,type:r}=this.frontier[t],i=t=0;n--){let{match:t,type:r}=this.frontier[n],i=je(e,n,r,t,!0);if(!i||i.childCount)continue e}return{depth:t,fit:o,move:i?e.doc.resolve(e.after(t+1)):e}}}}close(e){let t=this.findCloseLevel(e);if(!t)return null;for(;this.depth>t.depth;)this.closeFrontierNode();t.fit.childCount&&(this.placed=We(this.placed,t.depth,t.fit)),e=t.move;for(let n=t.depth+1;n<=e.depth;n++){let t=e.node(n),r=t.type.contentMatch.fillBefore(t.content,!0,e.index(n));this.openFrontierNode(t.type,t.attrs,r)}return e}openFrontierNode(e,t=null,n){let r=this.frontier[this.depth];r.match=r.match.matchType(e),this.placed=We(this.placed,this.depth,i.from(e.create(t,n))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let e=this.frontier.pop().match.fillBefore(i.empty,!0);e.childCount&&(this.placed=We(this.placed,this.frontier.length,e))}}function Le(e,t,n){return 0==t?e.cutByIndex(n,e.childCount):e.replaceChild(0,e.firstChild.copy(Le(e.firstChild.content,t-1,n)))}function We(e,t,n){return 0==t?e.append(n):e.replaceChild(e.childCount-1,e.lastChild.copy(We(e.lastChild.content,t-1,n)))}function Je(e,t){for(let n=0;n1&&(r=r.replaceChild(0,qe(r.firstChild,t-1,1==r.childCount?n-1:0))),t>0&&(r=e.type.contentMatch.fillBefore(r).append(r),n<=0&&(r=r.append(e.type.contentMatch.matchFragment(r).fillBefore(i.empty,!0)))),e.copy(r)}function je(e,t,n,r,i){let o=e.node(t),s=i?e.indexAfter(t):e.index(t);if(s==o.childCount&&!n.compatibleContent(o.type))return null;let l=r.fillBefore(o.content,!0,s);return l&&!function(e,t,n){for(let r=n;rr){let t=o.contentMatchAt(0),n=t.fillBefore(e).append(e);e=n.append(t.matchFragment(n).fillBefore(i.empty,!0))}return e}function He(e,t){let n=[];for(let r=Math.min(e.depth,t.depth);r>=0;r--){let i=e.start(r);if(it.pos+(t.depth-r)||e.node(r).type.spec.isolating||t.node(r).type.spec.isolating)break;(i==t.start(r)||r==e.depth&&r==t.depth&&e.parent.inlineContent&&t.parent.inlineContent&&r&&t.start(r-1)==i-1)&&n.push(r)}return n}class Ye extends we{constructor(e,t,n){super(),this.pos=e,this.attr=t,this.value=n}apply(e){let t=e.nodeAt(this.pos);if(!t)return ve.fail("No node at attribute step's position");let n=Object.create(null);for(let i in t.attrs)n[i]=t.attrs[i];n[this.attr]=this.value;let r=t.type.create(n,null,t.marks);return ve.fromReplace(e,this.pos,this.pos+1,new c(i.from(r),0,t.isLeaf?0:1))}getMap(){return me.empty}invert(e){return new Ye(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new Ye(t.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,t){if("number"!=typeof t.pos||"string"!=typeof t.attr)throw new RangeError("Invalid input for AttrStep.fromJSON");return new Ye(t.pos,t.attr,t.value)}}we.jsonID("attr",Ye);class Ue extends we{constructor(e,t){super(),this.attr=e,this.value=t}apply(e){let t=Object.create(null);for(let r in e.attrs)t[r]=e.attrs[r];t[this.attr]=this.value;let n=e.type.create(t,e.content,e.marks);return ve.ok(n)}getMap(){return me.empty}invert(e){return new Ue(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,t){if("string"!=typeof t.attr)throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new Ue(t.attr,t.value)}}we.jsonID("docAttr",Ue);let Ge=class extends Error{};Ge=function e(t){let n=Error.call(this,t);return n.__proto__=e.prototype,n},(Ge.prototype=Object.create(Error.prototype)).constructor=Ge,Ge.prototype.name="TransformError";class Ze{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new ge}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let t=this.maybeStep(e);if(t.failed)throw new Ge(t.failed);return this}maybeStep(e){let t=e.apply(this.doc);return t.failed||this.addStep(e,t.doc),t}get docChanged(){return this.steps.length>0}addStep(e,t){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=t}replace(e,t=e,n=c.empty){let r=Be(this.doc,e,t,n);return r&&this.step(r),this}replaceWith(e,t,n){return this.replace(e,t,new c(i.from(n),0,0))}delete(e,t){return this.replace(e,t,c.empty)}insert(e,t){return this.replaceWith(e,e,t)}replaceRange(e,t,n){return function(e,t,n,r){if(!r.size)return e.deleteRange(t,n);let i=e.doc.resolve(t),o=e.doc.resolve(n);if(Ve(i,o,r))return e.step(new Ce(t,n,r));let s=He(i,e.doc.resolve(n));0==s[s.length-1]&&s.pop();let l=-(i.depth+1);s.unshift(l);for(let c=i.depth,u=i.pos-1;c>0;c--,u--){let e=i.node(c).type.spec;if(e.defining||e.definingAsContext||e.isolating)break;s.indexOf(c)>-1?l=c:i.before(c)==u&&s.splice(1,0,-c)}let a=s.indexOf(l),h=[],d=r.openStart;for(let c=r.content,u=0;;u++){let e=c.firstChild;if(h.push(e),u==r.openStart)break;c=e.content}for(let c=d-1;c>=0;c--){let e=h[c],t=_e(e.type);if(t&&!e.sameMarkup(i.node(Math.abs(l)-1)))d=c;else if(t||!e.type.isTextblock)break}for(let u=r.openStart;u>=0;u--){let t=(u+d+1)%(r.openStart+1),l=h[t];if(l)for(let h=0;h=0&&(e.replace(t,n,r),!(e.steps.length>p));c--){let e=s[c];e<0||(t=i.before(e),n=o.after(e))}}(this,e,t,n),this}replaceRangeWith(e,t,n){return function(e,t,n,r){if(!r.isInline&&t==n&&e.doc.resolve(t).parent.content.size){let i=function(e,t,n){let r=e.resolve(t);if(r.parent.canReplaceWith(r.index(),r.index(),n))return t;if(0==r.parentOffset)for(let i=r.depth-1;i>=0;i--){let e=r.index(i);if(r.node(i).canReplaceWith(e,e,n))return r.before(i+1);if(e>0)return null}if(r.parentOffset==r.parent.content.size)for(let i=r.depth-1;i>=0;i--){let e=r.indexAfter(i);if(r.node(i).canReplaceWith(e,e,n))return r.after(i+1);if(e0&&(n||r.node(t-1).canReplace(r.index(t-1),i.indexAfter(t-1))))return e.delete(r.before(t),i.after(t))}for(let s=1;s<=r.depth&&s<=i.depth;s++)if(t-r.start(s)==r.depth-s&&n>r.end(s)&&i.end(s)-n!=i.depth-s&&r.start(s-1)==i.start(s-1)&&r.node(s-1).canReplace(r.index(s-1),i.index(s-1)))return e.delete(r.before(s),n);e.delete(t,n)}(this,e,t),this}lift(e,t){return function(e,t,n){let{$from:r,$to:o,depth:s}=t,l=r.before(s+1),a=o.after(s+1),h=l,d=a,p=i.empty,u=0;for(let c=s,g=!1;c>n;c--)g||r.index(c)>0?(g=!0,p=i.from(r.node(c).copy(p)),u++):h--;let f=i.empty,m=0;for(let c=s,g=!1;c>n;c--)g||o.after(c+1)=0;l--){if(r.size){let e=n[l].type.contentMatch.matchFragment(r);if(!e||!e.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=i.from(n[l].type.create(n[l].attrs,r))}let o=t.start,s=t.end;e.step(new Oe(o,s,o,s,new c(r,0,0),n.length,!0))}(this,e,t),this}setBlockType(e,t=e,n,r=null){return function(e,t,n,r,o){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let l="function"==typeof o?o(t):o;if(t.isTextblock&&!t.hasMarkup(r,l)&&function(e,t,n){let r=e.resolve(t),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}(e.doc,e.mapping.slice(s).map(n),r)){let o=null;if(r.schema.linebreakReplacement){let e="pre"==r.whitespace,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?o=!1:!e&&t&&(o=!0)}!1===o&&Ie(e,t,n,s),De(e,e.mapping.slice(s).map(n,1),r,void 0,null===o);let a=e.mapping.slice(s),h=a.map(n,1),d=a.map(n+t.nodeSize,1);return e.step(new Oe(h,d,h+1,d-1,new c(i.from(r.create(l,null,t.marks)),0,0),1,!0)),!0===o&&Re(e,t,n,s),!1}})}(this,e,t,n,r),this}setNodeMarkup(e,t,n=null,r){return function(e,t,n,r,o){let s=e.doc.nodeAt(t);if(!s)throw new RangeError("No node at given position");n||(n=s.type);let l=n.create(r,null,o||s.marks);if(s.isLeaf)return e.replaceWith(t,t+s.nodeSize,l);if(!n.validContent(s.content))throw new RangeError("Invalid content for node type "+n.name);e.step(new Oe(t,t+s.nodeSize,t+1,t+s.nodeSize-1,new c(i.from(l),0,0),1,!0))}(this,e,t,n,r),this}setNodeAttribute(e,t,n){return this.step(new Ye(e,t,n)),this}setDocAttribute(e,t){return this.step(new Ue(e,t)),this}addNodeMark(e,t){return this.step(new ke(e,t)),this}removeNodeMark(e,t){if(!(t instanceof a)){let n=this.doc.nodeAt(e);if(!n)throw new RangeError("No node at position "+e);if(!(t=t.isInSet(n.marks)))return this}return this.step(new Me(e,t)),this}split(e,t=1,n){return function(e,t,n=1,r){let o=e.doc.resolve(t),s=i.empty,l=i.empty;for(let a=o.depth,h=o.depth-n,c=n-1;a>h;a--,c--){s=i.from(o.node(a).copy(s));let e=r&&r[c];l=i.from(e?e.type.create(e.attrs,l):o.node(a).copy(l))}e.step(new Ce(t,t,new c(s.append(l),n,n),!0))}(this,e,t,n),this}addMark(e,t,n){return function(e,t,n,r){let i,o,s=[],l=[];e.doc.nodesBetween(t,n,(e,a,h)=>{if(!e.isInline)return;let c=e.marks;if(!r.isInSet(c)&&h.type.allowsMarkType(r.type)){let h=Math.max(a,t),d=Math.min(a+e.nodeSize,n),p=r.addToSet(c);for(let e=0;ee.step(t)),l.forEach(t=>e.step(t))}(this,e,t,n),this}removeMark(e,t,n){return function(e,t,n,r){let i=[],o=0;e.doc.nodesBetween(t,n,(e,s)=>{if(!e.isInline)return;o++;let l=null;if(r instanceof K){let t,n=e.marks;for(;t=r.isInSet(n);)(l||(l=[])).push(t),n=t.removeFromSet(n)}else r?r.isInSet(e.marks)&&(l=[r]):l=e.marks;if(l&&l.length){let r=Math.min(s+e.nodeSize,n);for(let e=0;ee.step(new Se(t.from,t.to,t.style)))}(this,e,t,n),this}clearIncompatible(e,t,n){return De(this,e,t,n),this}}const Xe=Object.create(null);class Qe{constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new et(e.min(t),e.max(t))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let t=0;t=0;i--){let r=t<0?ht(e.node(0),e.node(i),e.before(i+1),e.index(i),t,n):ht(e.node(0),e.node(i),e.after(i+1),e.index(i)+1,t,n);if(r)return r}return null}static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new lt(e.node(0))}static atStart(e){return ht(e,e,0,0,1)||new lt(e)}static atEnd(e){return ht(e,e,e.content.size,e.childCount,-1)||new lt(e)}static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid input for Selection.fromJSON");let n=Xe[t.type];if(!n)throw new RangeError(`No selection type ${t.type} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in Xe)throw new RangeError("Duplicate use of selection JSON ID "+e);return Xe[e]=t,t.prototype.jsonID=e,t}getBookmark(){return rt.between(this.$anchor,this.$head).getBookmark()}}Qe.prototype.visible=!0;class et{constructor(e,t){this.$from=e,this.$to=t}}let tt=!1;function nt(e){tt||e.parent.inlineContent||(tt=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+e.parent.type.name+")"))}class rt extends Qe{constructor(e,t=e){nt(e),nt(t),super(e,t)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)return Qe.near(n);let r=e.resolve(t.map(this.anchor));return new rt(r.parent.inlineContent?r:n,n)}replace(e,t=c.empty){if(super.replace(e,t),t==c.empty){let t=this.$from.marksAcross(this.$to);t&&e.ensureMarks(t)}}eq(e){return e instanceof rt&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new it(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,t){if("number"!=typeof t.anchor||"number"!=typeof t.head)throw new RangeError("Invalid input for TextSelection.fromJSON");return new rt(e.resolve(t.anchor),e.resolve(t.head))}static create(e,t,n=t){let r=e.resolve(t);return new this(r,n==t?r:e.resolve(n))}static between(e,t,n){let r=e.pos-t.pos;if(n&&!r||(n=r>=0?1:-1),!t.parent.inlineContent){let e=Qe.findFrom(t,n,!0)||Qe.findFrom(t,-n,!0);if(!e)return Qe.near(t,n);t=e.$head}return e.parent.inlineContent||(0==r||(e=(Qe.findFrom(e,-n,!0)||Qe.findFrom(e,n,!0)).$anchor).posnew lt(e)};function ht(e,t,n,r,i,o=!1){if(t.inlineContent)return rt.create(e,n);for(let s=r-(i>0?0:1);i>0?s=0;s+=i){let r=t.child(s);if(r.isAtom){if(!o&&ot.isSelectable(r))return ot.create(e,n-(i<0?r.nodeSize:0))}else{let t=ht(e,r,n+i,i<0?r.childCount:0,i,o);if(t)return t}n+=r.nodeSize*i}return null}function ct(e,t,n){let r=e.steps.length-1;if(r{null==i&&(i=r)}),e.setSelection(Qe.near(e.doc.resolve(i),n)))}class dt extends Ze{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(e){return this.storedMarks=e,this.updated|=2,this}ensureMarks(e){return a.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(2&this.updated)>0}addStep(e,t){super.addStep(e,t),this.updated=-3&this.updated,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(this.storedMarks||(n.empty?n.$from.marks():n.$from.marksAcross(n.$to)||a.none))),n.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,t,n){let r=this.doc.type.schema;if(null==t)return e?this.replaceSelectionWith(r.text(e),!0):this.deleteSelection();{if(null==n&&(n=t),n=null==n?t:n,!e)return this.deleteRange(t,n);let i=this.storedMarks;if(!i){let e=this.doc.resolve(t);i=n==t?e.marks():e.marksAcross(this.doc.resolve(n))}return this.replaceRangeWith(t,n,r.text(e,i)),this.selection.empty||this.setSelection(Qe.near(this.selection.$to)),this}}setMeta(e,t){return this.meta["string"==typeof e?e:e.key]=t,this}getMeta(e){return this.meta["string"==typeof e?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=4,this}get scrolledIntoView(){return(4&this.updated)>0}}function pt(e,t){return t&&e?e.bind(t):e}class ut{constructor(e,t,n){this.name=e,this.init=pt(t.init,n),this.apply=pt(t.apply,n)}}const ft=[new ut("doc",{init:e=>e.doc||e.schema.topNodeType.createAndFill(),apply:e=>e.doc}),new ut("selection",{init:(e,t)=>e.selection||Qe.atStart(t.doc),apply:e=>e.selection}),new ut("storedMarks",{init:e=>e.storedMarks||null,apply:(e,t,n,r)=>r.selection.$cursor?e.storedMarks:null}),new ut("scrollToSelection",{init:()=>0,apply:(e,t)=>e.scrolledIntoView?t+1:t})];class mt{constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=ft.slice(),t&&t.forEach(e=>{if(this.pluginsByKey[e.key])throw new RangeError("Adding different instances of a keyed plugin ("+e.key+")");this.plugins.push(e),this.pluginsByKey[e.key]=e,e.spec.state&&this.fields.push(new ut(e.key,e.spec.state,e))})}}class gt{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,t=-1){for(let n=0;ne.toJSON())),e&&"object"==typeof e)for(let n in e){if("doc"==n||"selection"==n)throw new RangeError("The JSON fields `doc` and `selection` are reserved");let r=e[n],i=r.spec.state;i&&i.toJSON&&(t[n]=i.toJSON.call(r,this[r.key]))}return t}static fromJSON(e,t,n){if(!t)throw new RangeError("Invalid input for EditorState.fromJSON");if(!e.schema)throw new RangeError("Required config field 'schema' missing");let r=new mt(e.schema,e.plugins),i=new gt(r);return r.fields.forEach(r=>{if("doc"==r.name)i.doc=D.fromJSON(e.schema,t.doc);else if("selection"==r.name)i.selection=Qe.fromJSON(i.doc,t.selection);else if("storedMarks"==r.name)t.storedMarks&&(i.storedMarks=t.storedMarks.map(e.schema.markFromJSON));else{if(n)for(let o in n){let s=n[o],l=s.spec.state;if(s.key==r.name&&l&&l.fromJSON&&Object.prototype.hasOwnProperty.call(t,o))return void(i[r.name]=l.fromJSON.call(s,e,t[o],i))}i[r.name]=r.init(e,i)}}),i}}function yt(e,t,n){for(let r in e){let i=e[r];i instanceof Function?i=i.bind(t):"handleDOMEvents"==r&&(i=yt(i,t,{})),n[r]=i}return n}class wt{constructor(e){this.spec=e,this.props={},e.props&&yt(e.props,this,this.props),this.key=e.key?e.key.key:xt("plugin")}getState(e){return e[this.key]}}const vt=Object.create(null);function xt(e){return e in vt?e+"$"+ ++vt[e]:(vt[e]=0,e+"$")}class bt{constructor(e="key"){this.key=xt(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}}const St=function(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t},kt=function(e){let t=e.assignedSlot||e.parentNode;return t&&11==t.nodeType?t.host:t};let Mt=null;const Ct=function(e,t,n){let r=Mt||(Mt=document.createRange());return r.setEnd(e,null==n?e.nodeValue.length:n),r.setStart(e,t||0),r},Ot=function(e,t,n,r){return n&&(Dt(e,t,n,r,-1)||Dt(e,t,n,r,1))},Nt=/^(img|br|input|textarea|hr)$/i;function Dt(e,t,n,r,i){for(var o;;){if(e==n&&t==r)return!0;if(t==(i<0?0:Tt(e))){let n=e.parentNode;if(!n||1!=n.nodeType||Et(e)||Nt.test(e.nodeName)||"false"==e.contentEditable)return!1;t=St(e)+(i<0?0:1),e=n}else{if(1!=e.nodeType)return!1;{let n=e.childNodes[t+(i<0?-1:0)];if(1==n.nodeType&&"false"==n.contentEditable){if(!(null===(o=n.pmViewDesc)||void 0===o?void 0:o.ignoreForSelection))return!1;t+=i}else e=n,t=i<0?Tt(e):0}}}}function Tt(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function Et(e){let t;for(let n=e;n&&!(t=n.pmViewDesc);n=n.parentNode);return t&&t.node&&t.node.isBlock&&(t.dom==e||t.contentDOM==e)}const At=function(e){return e.focusNode&&Ot(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)};function $t(e,t){let n=document.createEvent("Event");return n.initEvent("keydown",!0,!0),n.keyCode=e,n.key=n.code=t,n}const Rt="undefined"!=typeof navigator?navigator:null,It="undefined"!=typeof document?document:null,zt=Rt&&Rt.userAgent||"",Pt=/Edge\/(\d+)/.exec(zt),Bt=/MSIE \d/.exec(zt),Vt=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(zt),Ft=!!(Bt||Vt||Pt),Lt=Bt?document.documentMode:Vt?+Vt[1]:Pt?+Pt[1]:0,Wt=!Ft&&/gecko\/(\d+)/i.test(zt);Wt&&(/Firefox\/(\d+)/.exec(zt)||[0,0])[1];const Jt=!Ft&&/Chrome\/(\d+)/.exec(zt),qt=!!Jt,jt=Jt?+Jt[1]:0,_t=!Ft&&!!Rt&&/Apple Computer/.test(Rt.vendor),Kt=_t&&(/Mobile\/\w+/.test(zt)||!!Rt&&Rt.maxTouchPoints>2),Ht=Kt||!!Rt&&/Mac/.test(Rt.platform),Yt=!!Rt&&/Win/.test(Rt.platform),Ut=/Android \d/.test(zt),Gt=!!It&&"webkitFontSmoothing"in It.documentElement.style,Zt=Gt?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function Xt(e){let t=e.defaultView&&e.defaultView.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.documentElement.clientWidth,top:0,bottom:e.documentElement.clientHeight}}function Qt(e,t){return"number"==typeof e?e:e[t]}function en(e){let t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,r=t.height/e.offsetHeight||1;return{left:t.left,right:t.left+e.clientWidth*n,top:t.top,bottom:t.top+e.clientHeight*r}}function tn(e,t,n){let r=e.someProp("scrollThreshold")||0,i=e.someProp("scrollMargin")||5,o=e.dom.ownerDocument;for(let s=n||e.dom;s;){if(1!=s.nodeType){s=kt(s);continue}let e=s,n=e==o.body,l=n?Xt(o):en(e),a=0,h=0;if(t.topl.bottom-Qt(r,"bottom")&&(h=t.bottom-t.top>l.bottom-l.top?t.top+Qt(i,"top")-l.top:t.bottom-l.bottom+Qt(i,"bottom")),t.leftl.right-Qt(r,"right")&&(a=t.right-l.right+Qt(i,"right")),a||h)if(n)o.defaultView.scrollBy(a,h);else{let n=e.scrollLeft,r=e.scrollTop;h&&(e.scrollTop+=h),a&&(e.scrollLeft+=a);let i=e.scrollLeft-n,o=e.scrollTop-r;t={left:t.left-i,top:t.top-o,right:t.right-i,bottom:t.bottom-o}}let c=n?"fixed":getComputedStyle(s).position;if(/^(fixed|sticky)$/.test(c))break;s="absolute"==c?s.offsetParent:kt(s)}}function nn(e){let t=[],n=e.ownerDocument;for(let r=e;r&&(t.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),e!=n);r=kt(r));return t}function rn(e,t){for(let n=0;n=h){a=Math.max(u.bottom,a),h=Math.min(u.top,h);let e=u.left>t.left?u.left-t.left:u.right=(u.left+u.right)/2?1:0));continue}}else u.top>t.top&&!i&&u.left<=t.left&&u.right>=t.left&&(i=c,o={left:Math.max(u.left,Math.min(u.right,t.left)),top:u.top});!n&&(t.left>=u.right&&t.top>=u.top||t.left>=u.left&&t.top>=u.bottom)&&(l=d+1)}}return!n&&i&&(n=i,r=o,s=0),n&&3==n.nodeType?function(e,t){let n,r=e.nodeValue.length,i=document.createRange();for(let o=0;o=(r.left+r.right)/2?1:0)};break}}return i.detach(),n||{node:e,offset:0}}(n,r):!n||s&&1==n.nodeType?{node:e,offset:l}:sn(n,r)}function ln(e,t){return e.left>=t.left-1&&e.left<=t.right+1&&e.top>=t.top-1&&e.top<=t.bottom+1}function an(e,t,n){let r=e.childNodes.length;if(r&&n.topt.top&&i++}let r;Gt&&i&&1==n.nodeType&&1==(r=n.childNodes[i-1]).nodeType&&"false"==r.contentEditable&&r.getBoundingClientRect().top>=t.top&&i--,n==e.dom&&i==n.childNodes.length-1&&1==n.lastChild.nodeType&&t.top>n.lastChild.getBoundingClientRect().bottom?s=e.state.doc.content.size:0!=i&&1==n.nodeType&&"BR"==n.childNodes[i-1].nodeName||(s=function(e,t,n,r){let i=-1;for(let o=t,s=!1;o!=e.dom;){let t,n=e.docView.nearestDesc(o,!0);if(!n)return null;if(1==n.dom.nodeType&&(n.node.isBlock&&n.parent||!n.contentDOM)&&((t=n.dom.getBoundingClientRect()).width||t.height)&&(n.node.isBlock&&n.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(n.dom.nodeName)&&(!s&&t.left>r.left||t.top>r.top?i=n.posBefore:(!s&&t.right-1?i:e.docView.posFromDOM(t,n,-1)}(e,n,i,t))}null==s&&(s=function(e,t,n){let{node:r,offset:i}=sn(t,n),o=-1;if(1==r.nodeType&&!r.firstChild){let e=r.getBoundingClientRect();o=e.left!=e.right&&n.left>(e.left+e.right)/2?1:-1}return e.docView.posFromDOM(r,i,o)}(e,l,t));let a=e.docView.nearestDesc(l,!0);return{pos:s,inside:a?a.posAtStart-a.border:-1}}function cn(e){return e.top=0&&i==r.nodeValue.length?(e--,o=1):n<0?e--:t++,fn(dn(Ct(r,e,t),o),o<0)}{let e=dn(Ct(r,i,i),n);if(Wt&&i&&/\s/.test(r.nodeValue[i-1])&&i=0)}if(null==o&&i&&(n<0||i==Tt(r))){let e=r.childNodes[i-1],t=3==e.nodeType?Ct(e,Tt(e)-(s?0:1)):1!=e.nodeType||"BR"==e.nodeName&&e.nextSibling?null:e;if(t)return fn(dn(t,1),!1)}if(null==o&&i=0)}function fn(e,t){if(0==e.width)return e;let n=t?e.left:e.right;return{top:e.top,bottom:e.bottom,left:n,right:n}}function mn(e,t){if(0==e.height)return e;let n=t?e.top:e.bottom;return{top:n,bottom:n,left:e.left,right:e.right}}function gn(e,t,n){let r=e.state,i=e.root.activeElement;r!=t&&e.updateState(t),i!=e.dom&&e.focus();try{return n()}finally{r!=t&&e.updateState(r),i!=e.dom&&i&&i.focus()}}const yn=/[\u0590-\u08ac]/;let wn=null,vn=null,xn=!1;function bn(e,t,n){return wn==t&&vn==n?xn:(wn=t,vn=n,xn="up"==n||"down"==n?function(e,t,n){let r=t.selection,i="up"==n?r.$from:r.$to;return gn(e,t,()=>{let{node:t}=e.docView.domFromPos(i.pos,"up"==n?-1:1);for(;;){let n=e.docView.nearestDesc(t,!0);if(!n)break;if(n.node.isBlock){t=n.contentDOM||n.dom;break}t=n.dom.parentNode}let r=un(e,i.pos,1);for(let e=t.firstChild;e;e=e.nextSibling){let t;if(1==e.nodeType)t=e.getClientRects();else{if(3!=e.nodeType)continue;t=Ct(e,0,e.nodeValue.length).getClientRects()}for(let e=0;ei.top+1&&("up"==n?r.top-i.top>2*(i.bottom-r.top):i.bottom-r.bottom>2*(r.bottom-i.top)))return!1}}return!0})}(e,t,n):function(e,t,n){let{$head:r}=t.selection;if(!r.parent.isTextblock)return!1;let i=r.parentOffset,o=!i,s=i==r.parent.content.size,l=e.domSelection();return l?yn.test(r.parent.textContent)&&l.modify?gn(e,t,()=>{let{focusNode:t,focusOffset:i,anchorNode:o,anchorOffset:s}=e.domSelectionRange(),a=l.caretBidiLevel;l.modify("move",n,"character");let h=r.depth?e.docView.domAfterPos(r.before()):e.dom,{focusNode:c,focusOffset:d}=e.domSelectionRange(),p=c&&!h.contains(1==c.nodeType?c:c.parentNode)||t==c&&i==d;try{l.collapse(o,s),t&&(t!=o||i!=s)&&l.extend&&l.extend(t,i)}catch(u){}return null!=a&&(l.caretBidiLevel=a),p}):"left"==n||"backward"==n?o:s:r.pos==r.start()||r.pos==r.end()}(e,t,n))}class Sn{constructor(e,t,n,r){this.parent=e,this.children=t,this.dom=n,this.contentDOM=r,this.dirty=0,n.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,t,n){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let t=0;tSt(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))r=2&e.compareDocumentPosition(this.contentDOM);else if(this.dom.firstChild){if(0==t)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!1;break}if(t.previousSibling)break}if(null==r&&t==e.childNodes.length)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!0;break}if(t.nextSibling)break}}return(null==r?n>0:r)?this.posAtEnd:this.posAtStart}nearestDesc(e,t=!1){for(let n=!0,r=e;r;r=r.parentNode){let i,o=this.getDesc(r);if(o&&(!t||o.node)){if(!n||!(i=o.nodeDOM)||(1==i.nodeType?i.contains(1==e.nodeType?e:e.parentNode):i==e))return o;n=!1}}}getDesc(e){let t=e.pmViewDesc;for(let n=t;n;n=n.parent)if(n==this)return t}posFromDOM(e,t,n){for(let r=e;r;r=r.parentNode){let i=this.getDesc(r);if(i)return i.localPosFromDOM(e,t,n)}return-1}descAt(e){for(let t=0,n=0;te||t instanceof Tn){r=e-i;break}i=o}if(r)return this.children[n].domFromPos(r-this.children[n].border,t);for(let i;n&&!(i=this.children[n-1]).size&&i instanceof kn&&i.side>=0;n--);if(t<=0){let e,r=!0;for(;e=n?this.children[n-1]:null,e&&e.dom.parentNode!=this.contentDOM;n--,r=!1);return e&&t&&r&&!e.border&&!e.domAtom?e.domFromPos(e.size,t):{node:this.contentDOM,offset:e?St(e.dom)+1:0}}{let e,r=!0;for(;e=n=i&&t<=l-n.border&&n.node&&n.contentDOM&&this.contentDOM.contains(n.contentDOM))return n.parseRange(e,t,i);e=o;for(let t=s;t>0;t--){let n=this.children[t-1];if(n.size&&n.dom.parentNode==this.contentDOM&&!n.emptyChildAt(1)){r=St(n.dom)+1;break}e-=n.size}-1==r&&(r=0)}if(r>-1&&(l>t||s==this.children.length-1)){t=l;for(let e=s+1;ef&&ot){let e=s;s=l,l=e}let n=document.createRange();n.setEnd(l.node,l.offset),n.setStart(s.node,s.offset),a.removeAllRanges(),a.addRange(n)}}ignoreMutation(e){return!this.contentDOM&&"selection"!=e.type}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,t){for(let n=0,r=0;r=n:en){let r=n+i.border,s=o-i.border;if(e>=r&&t<=s)return this.dirty=e==n||t==o?2:1,void(e!=r||t!=s||!i.contentLost&&i.dom.parentNode==this.contentDOM?i.markDirty(e-r,t-r):i.dirty=3);i.dirty=i.dom!=i.contentDOM||i.dom.parentNode!=this.contentDOM||i.children.length?3:2}n=o}this.dirty=2}markParentsDirty(){let e=1;for(let t=this.parent;t;t=t.parent,e++){let n=1==e?2:1;t.dirtyi?i.parent?i.parent.posBeforeChild(i):void 0:r)),!t.type.spec.raw){if(1!=o.nodeType){let e=document.createElement("span");e.appendChild(o),o=e}o.contentEditable="false",o.classList.add("ProseMirror-widget")}super(e,[],o,null),this.widget=t,this.widget=t,i=this}matchesWidget(e){return 0==this.dirty&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let t=this.widget.spec.stopEvent;return!!t&&t(e)}ignoreMutation(e){return"selection"!=e.type||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}}class Mn extends Sn{constructor(e,t,n,r){super(e,[],t,null),this.textDOM=n,this.text=r}get size(){return this.text.length}localPosFromDOM(e,t){return e!=this.textDOM?this.posAtStart+(t?this.size:0):this.posAtStart+t}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return"characterData"===e.type&&e.target.nodeValue==e.oldValue}}class Cn extends Sn{constructor(e,t,n,r,i){super(e,[],n,r),this.mark=t,this.spec=i}static create(e,t,n,r){let i=r.nodeViews[t.type.name],o=i&&i(t,r,n);return o&&o.dom||(o=oe.renderSpec(document,t.type.spec.toDOM(t,n),null,t.attrs)),new Cn(e,t,o.dom,o.contentDOM||o.dom,o)}parseRule(){return 3&this.dirty||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return 3!=this.dirty&&this.mark.eq(e)}markDirty(e,t){if(super.markDirty(e,t),0!=this.dirty){let e=this.parent;for(;!e.node;)e=e.parent;e.dirty0&&(i=Jn(i,0,e,n));for(let s=0;ss?s.parent?s.parent.posBeforeChild(s):void 0:o,n,r),h=a&&a.dom,c=a&&a.contentDOM;if(t.isText)if(h){if(3!=h.nodeType)throw new RangeError("Text must be rendered as a DOM text node")}else h=document.createTextNode(t.text);else if(!h){let e=oe.renderSpec(document,t.type.spec.toDOM(t),null,t.attrs);({dom:h,contentDOM:c}=e)}c||t.isText||"BR"==h.nodeName||(h.hasAttribute("contenteditable")||(h.contentEditable="false"),t.type.spec.draggable&&(h.draggable=!0));let d=h;return h=Bn(h,n,t),a?s=new En(e,t,n,r,h,c||null,d,a,i,o+1):t.isText?new Dn(e,t,n,r,h,d,i):new On(e,t,n,r,h,c||null,d,i,o+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let e={node:this.node.type.name,attrs:this.node.attrs};if("pre"==this.node.type.whitespace&&(e.preserveWhitespace="full"),this.contentDOM)if(this.contentLost){for(let t=this.children.length-1;t>=0;t--){let n=this.children[t];if(this.dom.contains(n.dom.parentNode)){e.contentElement=n.dom.parentNode;break}}e.contentElement||(e.getContent=()=>i.empty)}else e.contentElement=this.contentDOM;else e.getContent=()=>this.node.content;return e}matchesNode(e,t,n){return 0==this.dirty&&e.eq(this.node)&&Vn(t,this.outerDeco)&&n.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(e,t){let n=this.node.inlineContent,r=t,i=e.composing?this.localCompositionInfo(e,t):null,o=i&&i.pos>-1?i:null,s=i&&i.pos<0,l=new Ln(this,o&&o.node,e);!function(e,t,n,r){let i=t.locals(e),o=0;if(0==i.length){for(let n=0;no;)l.push(i[s++]);let f=o+p.nodeSize;if(p.isText){let e=f;s!e.inline):l.slice(),t.forChild(o,p),u),o=f}}(this.node,this.innerDeco,(t,i,o)=>{t.spec.marks?l.syncToMarks(t.spec.marks,n,e):t.type.side>=0&&!o&&l.syncToMarks(i==this.node.childCount?a.none:this.node.child(i).marks,n,e),l.placeWidget(t,e,r)},(t,o,a,h)=>{let c;l.syncToMarks(t.marks,n,e),l.findNodeMatch(t,o,a,h)||s&&e.state.selection.from>r&&e.state.selection.to-1&&l.updateNodeAt(t,o,a,c,e)||l.updateNextNode(t,o,a,e,h,r)||l.addNode(t,o,a,e,r),r+=t.nodeSize}),l.syncToMarks([],n,e),this.node.isTextblock&&l.addTextblockHacks(),l.destroyRest(),(l.changed||2==this.dirty)&&(o&&this.protectLocalComposition(e,o),An(this.contentDOM,this.children,e),Kt&&function(e){if("UL"==e.nodeName||"OL"==e.nodeName){let t=e.style.cssText;e.style.cssText=t+"; list-style: square !important",window.getComputedStyle(e).listStyle,e.style.cssText=t}}(this.dom))}localCompositionInfo(e,t){let{from:n,to:r}=e.state.selection;if(!(e.state.selection instanceof rt)||nt+this.node.content.size)return null;let i=e.input.compositionNode;if(!i||!this.dom.contains(i.parentNode))return null;if(this.node.inlineContent){let e=i.nodeValue,o=function(e,t,n,r){for(let i=0,o=0;i=n){if(o>=r&&a.slice(r-t.length-l,r-l)==t)return r-t.length;let e=l=0&&e+t.length+l>=n)return l+e;if(n==r&&a.length>=r+t.length-l&&a.slice(r-l,r-l+t.length)==t)return r}}return-1}(this.node.content,e,n-t,r-t);return o<0?null:{node:i,pos:o,text:e}}return{node:i,pos:-1,text:""}}protectLocalComposition(e,{node:t,pos:n,text:r}){if(this.getDesc(t))return;let i=t;for(;i.parentNode!=this.contentDOM;i=i.parentNode){for(;i.previousSibling;)i.parentNode.removeChild(i.previousSibling);for(;i.nextSibling;)i.parentNode.removeChild(i.nextSibling);i.pmViewDesc&&(i.pmViewDesc=void 0)}let o=new Mn(this,i,t,r);e.input.compositionNodes.push(o),this.children=Jn(this.children,n,n+r.length,e,o)}update(e,t,n,r){return!(3==this.dirty||!e.sameMarkup(this.node))&&(this.updateInner(e,t,n,r),!0)}updateInner(e,t,n,r){this.updateOuterDeco(t),this.node=e,this.innerDeco=n,this.contentDOM&&this.updateChildren(r,this.posAtStart),this.dirty=0}updateOuterDeco(e){if(Vn(e,this.outerDeco))return;let t=1!=this.nodeDOM.nodeType,n=this.dom;this.dom=zn(this.dom,this.nodeDOM,In(this.outerDeco,this.node,t),In(e,this.node,t)),this.dom!=n&&(n.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){1==this.nodeDOM.nodeType&&(this.nodeDOM.classList.add("ProseMirror-selectednode"),!this.contentDOM&&this.node.type.spec.draggable||(this.nodeDOM.draggable=!0))}deselectNode(){1==this.nodeDOM.nodeType&&(this.nodeDOM.classList.remove("ProseMirror-selectednode"),!this.contentDOM&&this.node.type.spec.draggable||this.nodeDOM.removeAttribute("draggable"))}get domAtom(){return this.node.isAtom}}function Nn(e,t,n,r,i){Bn(r,t,e);let o=new On(void 0,e,t,n,r,r,r,i,0);return o.contentDOM&&o.updateChildren(i,0),o}class Dn extends On{constructor(e,t,n,r,i,o,s){super(e,t,n,r,i,null,o,s,0)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,t,n,r){return!(3==this.dirty||0!=this.dirty&&!this.inParent()||!e.sameMarkup(this.node))&&(this.updateOuterDeco(t),0==this.dirty&&e.text==this.node.text||e.text==this.nodeDOM.nodeValue||(this.nodeDOM.nodeValue=e.text,r.trackWrites==this.nodeDOM&&(r.trackWrites=null)),this.node=e,this.dirty=0,!0)}inParent(){let e=this.parent.contentDOM;for(let t=this.nodeDOM;t;t=t.parentNode)if(t==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,t,n){return e==this.nodeDOM?this.posAtStart+Math.min(t,this.node.text.length):super.localPosFromDOM(e,t,n)}ignoreMutation(e){return"characterData"!=e.type&&"selection"!=e.type}slice(e,t,n){let r=this.node.cut(e,t),i=document.createTextNode(r.text);return new Dn(this.parent,r,this.outerDeco,this.innerDeco,i,i,n)}markDirty(e,t){super.markDirty(e,t),this.dom==this.nodeDOM||0!=e&&t!=this.nodeDOM.nodeValue.length||(this.dirty=3)}get domAtom(){return!1}isText(e){return this.node.text==e}}class Tn extends Sn{parseRule(){return{ignore:!0}}matchesHack(e){return 0==this.dirty&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return"IMG"==this.dom.nodeName}}class En extends On{constructor(e,t,n,r,i,o,s,l,a,h){super(e,t,n,r,i,o,s,a,h),this.spec=l}update(e,t,n,r){if(3==this.dirty)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let i=this.spec.update(e,t,n);return i&&this.updateInner(e,t,n,r),i}return!(!this.contentDOM&&!e.isLeaf)&&super.update(e,t,n,r)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,t,n,r){this.spec.setSelection?this.spec.setSelection(e,t,n.root):super.setSelection(e,t,n,r)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return!!this.spec.stopEvent&&this.spec.stopEvent(e)}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}}function An(e,t,n){let r=e.firstChild,i=!1;for(let o=0;o0;){let l;for(;;)if(r){let e=n.children[r-1];if(!(e instanceof Cn)){l=e,r--;break}n=e,r=e.children.length}else{if(n==t)break e;r=n.parent.children.indexOf(n),n=n.parent}let a=l.node;if(a){if(a!=e.child(i-1))break;--i,o.set(l,i),s.push(l)}}return{index:i,matched:o,matches:s.reverse()}}(e.node.content,e)}destroyBetween(e,t){if(e!=t){for(let n=e;n>1,o=Math.min(i,e.length);for(;r-1)r>this.index&&(this.changed=!0,this.destroyBetween(this.index,r)),this.top=this.top.children[this.index];else{let r=Cn.create(this.top,e[i],t,n);this.top.children.splice(this.index,0,r),this.top=r,this.changed=!0}this.index=0,i++}}findNodeMatch(e,t,n,r){let i,o=-1;if(r>=this.preMatch.index&&(i=this.preMatch.matches[r-this.preMatch.index]).parent==this.top&&i.matchesNode(e,t,n))o=this.top.children.indexOf(i,this.index);else for(let s=this.index,l=Math.min(this.top.children.length,s+5);s=n||c<=t?o.push(a):(hn&&o.push(a.slice(n-h,a.size,r)))}return o}function qn(e,t=null){let n=e.domSelectionRange(),r=e.state.doc;if(!n.focusNode)return null;let i=e.docView.nearestDesc(n.focusNode),o=i&&0==i.size,s=e.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(s<0)return null;let l,a,h=r.resolve(s);if(At(n)){for(l=s;i&&!i.node;)i=i.parent;let e=i.node;if(i&&e.isAtom&&ot.isSelectable(e)&&i.parent&&(!e.isInline||!function(e,t,n){for(let r=0==t,i=t==Tt(e);r||i;){if(e==n)return!0;let t=St(e);if(!(e=e.parentNode))return!1;r=r&&0==t,i=i&&t==Tt(e)}}(n.focusNode,n.focusOffset,i.dom))){let e=i.posBefore;a=new ot(s==e?h:r.resolve(e))}}else{if(n instanceof e.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let t=s,i=s;for(let r=0;r{n.anchorNode==r&&n.anchorOffset==i||(t.removeEventListener("selectionchange",e.input.hideSelectionGuard),setTimeout(()=>{jn(e)&&!e.state.selection.visible||e.dom.classList.remove("ProseMirror-hideselection")},20))})}(e))}e.domObserver.setCurSelection(),e.domObserver.connectSelection()}}const Kn=_t||qt&&jt<63;function Hn(e,t){let{node:n,offset:r}=e.docView.domFromPos(t,0),i=rr(e,t,n))||rt.between(t,n,r)}function Qn(e){return!(e.editable&&!e.hasFocus())&&er(e)}function er(e){let t=e.domSelectionRange();if(!t.anchorNode)return!1;try{return e.dom.contains(3==t.anchorNode.nodeType?t.anchorNode.parentNode:t.anchorNode)&&(e.editable||e.dom.contains(3==t.focusNode.nodeType?t.focusNode.parentNode:t.focusNode))}catch(n){return!1}}function tr(e,t){let{$anchor:n,$head:r}=e.selection,i=t>0?n.max(r):n.min(r),o=i.parent.inlineContent?i.depth?e.doc.resolve(t>0?i.after():i.before()):null:i;return o&&Qe.findFrom(o,t)}function nr(e,t){return e.dispatch(e.state.tr.setSelection(t).scrollIntoView()),!0}function rr(e,t,n){let r=e.state.selection;if(!(r instanceof rt)){if(r instanceof ot&&r.node.isInline)return nr(e,new rt(t>0?r.$to:r.$from));{let n=tr(e.state,t);return!!n&&nr(e,n)}}if(n.indexOf("s")>-1){let{$head:n}=r,i=n.textOffset?null:t<0?n.nodeBefore:n.nodeAfter;if(!i||i.isText||!i.isLeaf)return!1;let o=e.state.doc.resolve(n.pos+i.nodeSize*(t<0?-1:1));return nr(e,new rt(r.$anchor,o))}if(!r.empty)return!1;if(e.endOfTextblock(t>0?"forward":"backward")){let n=tr(e.state,t);return!!(n&&n instanceof ot)&&nr(e,n)}if(!(Ht&&n.indexOf("m")>-1)){let n,i=r.$head,o=i.textOffset?null:t<0?i.nodeBefore:i.nodeAfter;if(!o||o.isText)return!1;let s=t<0?i.pos-o.nodeSize:i.pos;return!!(o.isAtom||(n=e.docView.descAt(s))&&!n.contentDOM)&&(ot.isSelectable(o)?nr(e,new ot(t<0?e.state.doc.resolve(i.pos-o.nodeSize):i)):!!Gt&&nr(e,new rt(e.state.doc.resolve(t<0?s:s+o.nodeSize))))}}function ir(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function or(e,t){let n=e.pmViewDesc;return n&&0==n.size&&(t<0||e.nextSibling||"BR"!=e.nodeName)}function sr(e,t){return t<0?function(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i,o,s=!1;Wt&&1==n.nodeType&&r0){if(1!=n.nodeType)break;{let e=n.childNodes[r-1];if(or(e,-1))i=n,o=--r;else{if(3!=e.nodeType)break;n=e,r=n.nodeValue.length}}}else{if(lr(n))break;{let t=n.previousSibling;for(;t&&or(t,-1);)i=n.parentNode,o=St(t),t=t.previousSibling;if(t)n=t,r=ir(n);else{if(n=n.parentNode,n==e.dom)break;r=0}}}s?ar(e,n,r):i&&ar(e,i,o)}(e):function(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i,o,s=ir(n);for(;;)if(r{e.state==i&&_n(e)},50)}function hr(e,t){let n=e.state.doc.resolve(t);if(!qt&&!Yt&&n.parent.inlineContent){let r=e.coordsAtPos(t);if(t>n.start()){let n=e.coordsAtPos(t-1),i=(n.top+n.bottom)/2;if(i>r.top&&i1)return n.leftr.top&&i1)return n.left>r.left?"ltr":"rtl"}}return"rtl"==getComputedStyle(e.dom).direction?"rtl":"ltr"}function cr(e,t,n){let r=e.state.selection;if(r instanceof rt&&!r.empty||n.indexOf("s")>-1)return!1;if(Ht&&n.indexOf("m")>-1)return!1;let{$from:i,$to:o}=r;if(!i.parent.inlineContent||e.endOfTextblock(t<0?"up":"down")){let n=tr(e.state,t);if(n&&n instanceof ot)return nr(e,n)}if(!i.parent.inlineContent){let n=t<0?i:o,s=r instanceof lt?Qe.near(n,t):Qe.findFrom(n,t);return!!s&&nr(e,s)}return!1}function dr(e,t){if(!(e.state.selection instanceof rt))return!0;let{$head:n,$anchor:r,empty:i}=e.state.selection;if(!n.sameParent(r))return!0;if(!i)return!1;if(e.endOfTextblock(t>0?"forward":"backward"))return!0;let o=!n.textOffset&&(t<0?n.nodeBefore:n.nodeAfter);if(o&&!o.isText){let r=e.state.tr;return t<0?r.delete(n.pos-o.nodeSize,n.pos):r.delete(n.pos,n.pos+o.nodeSize),e.dispatch(r),!0}return!1}function pr(e,t,n){e.domObserver.stop(),t.contentEditable=n,e.domObserver.start()}function ur(e,t){let n=t.keyCode,r=function(e){let t="";return e.ctrlKey&&(t+="c"),e.metaKey&&(t+="m"),e.altKey&&(t+="a"),e.shiftKey&&(t+="s"),t}(t);if(8==n||Ht&&72==n&&"c"==r)return dr(e,-1)||sr(e,-1);if(46==n&&!t.shiftKey||Ht&&68==n&&"c"==r)return dr(e,1)||sr(e,1);if(13==n||27==n)return!0;if(37==n||Ht&&66==n&&"c"==r){let t=37==n?"ltr"==hr(e,e.state.selection.from)?-1:1:-1;return rr(e,t,r)||sr(e,t)}if(39==n||Ht&&70==n&&"c"==r){let t=39==n?"ltr"==hr(e,e.state.selection.from)?1:-1:1;return rr(e,t,r)||sr(e,t)}return 38==n||Ht&&80==n&&"c"==r?cr(e,-1,r)||sr(e,-1):40==n||Ht&&78==n&&"c"==r?function(e){if(!_t||e.state.selection.$head.parentOffset>0)return!1;let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(t&&1==t.nodeType&&0==n&&t.firstChild&&"false"==t.firstChild.contentEditable){let n=t.firstChild;pr(e,n,"true"),setTimeout(()=>pr(e,n,"false"),20)}return!1}(e)||cr(e,1,r)||sr(e,1):r==(Ht?"m":"c")&&(66==n||73==n||89==n||90==n)}function fr(e,t){e.someProp("transformCopied",n=>{t=n(t,e)});let n=[],{content:r,openStart:i,openEnd:o}=t;for(;i>1&&o>1&&1==r.childCount&&1==r.firstChild.childCount;){i--,o--;let e=r.firstChild;n.push(e.type.name,e.attrs!=e.type.defaultAttrs?e.attrs:null),r=e.content}let s=e.someProp("clipboardSerializer")||oe.fromSchema(e.state.schema),l=Mr(),a=l.createElement("div");a.appendChild(s.serializeFragment(r,{document:l}));let h,c=a.firstChild,d=0;for(;c&&1==c.nodeType&&(h=Sr[c.nodeName.toLowerCase()]);){for(let e=h.length-1;e>=0;e--){let t=l.createElement(h[e]);for(;a.firstChild;)t.appendChild(a.firstChild);a.appendChild(t),d++}c=a.firstChild}return c&&1==c.nodeType&&c.setAttribute("data-pm-slice",`${i} ${o}${d?` -${d}`:""} ${JSON.stringify(n)}`),{dom:a,text:e.someProp("clipboardTextSerializer",n=>n(t,e))||t.content.textBetween(0,t.content.size,"\n\n"),slice:t}}function mr(e,t,n,r,o){let s,l,a=o.parent.type.spec.code;if(!n&&!t)return null;let h=!!t&&(r||a||!n);if(h){if(e.someProp("transformPastedText",n=>{t=n(t,a||r,e)}),a)return l=new c(i.from(e.state.schema.text(t.replace(/\r\n?/g,"\n"))),0,0),e.someProp("transformPasted",t=>{l=t(l,e,!0)}),l;let n=e.someProp("clipboardTextParser",n=>n(t,o,r,e));if(n)l=n;else{let n=o.marks(),{schema:r}=e.state,i=oe.fromSchema(r);s=document.createElement("div"),t.split(/(?:\r\n?|\n)+/).forEach(e=>{let t=s.appendChild(document.createElement("p"));e&&t.appendChild(i.serializeNode(r.text(e,n)))})}}else e.someProp("transformPastedHTML",t=>{n=t(n,e)}),s=function(e){let t=/^(\s*]*>)*/.exec(e);t&&(e=e.slice(t[0].length));let n,r=Mr().createElement("div"),i=/<([a-z][^>\s]+)/i.exec(e);(n=i&&Sr[i[1].toLowerCase()])&&(e=n.map(e=>"<"+e+">").join("")+e+n.map(e=>"").reverse().join(""));if(r.innerHTML=function(e){let t=window.trustedTypes;if(!t)return e;Cr||(Cr=t.defaultPolicy||t.createPolicy("ProseMirrorClipboard",{createHTML:e=>e}));return Cr.createHTML(e)}(e),n)for(let o=0;o0;i--){let e=s.firstChild;for(;e&&1!=e.nodeType;)e=e.nextSibling;if(!e)break;s=e}if(!l){let t=e.someProp("clipboardParser")||e.someProp("domParser")||U.fromSchema(e.state.schema);l=t.parseSlice(s,{preserveWhitespace:!(!h&&!p),context:o,ruleFromNode:e=>"BR"!=e.nodeName||e.nextSibling||!e.parentNode||gr.test(e.parentNode.nodeName)?null:{ignore:!0}})}if(p)l=function(e,t){if(!e.size)return e;let n,r=e.content.firstChild.type.schema;try{n=JSON.parse(t)}catch(a){return e}let{content:o,openStart:s,openEnd:l}=e;for(let h=n.length-2;h>=0;h-=2){let e=r.nodes[n[h]];if(!e||e.hasRequiredAttrs())break;o=i.from(e.create(n[h+1],o)),s++,l++}return new c(o,s,l)}(br(l,+p[1],+p[2]),p[4]);else if(l=c.maxOpen(function(e,t){if(e.childCount<2)return e;for(let n=t.depth;n>=0;n--){let r,o=t.node(n).contentMatchAt(t.index(n)),s=[];if(e.forEach(e=>{if(!s)return;let t,n=o.findWrapping(e.type);if(!n)return s=null;if(t=s.length&&r.length&&wr(n,r,e,s[s.length-1],0))s[s.length-1]=t;else{s.length&&(s[s.length-1]=vr(s[s.length-1],r.length));let t=yr(e,n);s.push(t),o=o.matchType(t.type),r=n}}),s)return i.from(s)}return e}(l.content,o),!0),l.openStart||l.openEnd){let e=0,t=0;for(let n=l.content.firstChild;e{l=t(l,e,h)}),l}const gr=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function yr(e,t,n=0){for(let r=t.length-1;r>=n;r--)e=t[r].create(null,i.from(e));return e}function wr(e,t,n,r,o){if(o1&&(s=0),o=n&&(a=t<0?l.contentMatchAt(0).fillBefore(a,s<=o).append(a):a.append(l.contentMatchAt(l.childCount).fillBefore(i.empty,!0))),e.replaceChild(t<0?0:e.childCount-1,l.copy(a))}function br(e,t,n){return t{for(let n in t)e.input.eventHandlers[n]||e.dom.addEventListener(n,e.input.eventHandlers[n]=t=>$r(e,t))})}function $r(e,t){return e.someProp("handleDOMEvents",n=>{let r=n[t.type];return!!r&&(r(e,t)||t.defaultPrevented)})}function Rr(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n=t.target;n!=e.dom;n=n.parentNode)if(!n||11==n.nodeType||n.pmViewDesc&&n.pmViewDesc.stopEvent(t))return!1;return!0}function Ir(e){return{left:e.clientX,top:e.clientY}}function zr(e,t,n,r,i){if(-1==r)return!1;let o=e.state.doc.resolve(r);for(let s=o.depth+1;s>0;s--)if(e.someProp(t,t=>s>o.depth?t(e,n,o.nodeAfter,o.before(s),i,!0):t(e,n,o.node(s),o.before(s),i,!1)))return!0;return!1}function Pr(e,t,n){if(e.focused||e.focus(),e.state.selection.eq(t))return;let r=e.state.tr.setSelection(t);r.setMeta("pointer",!0),e.dispatch(r)}function Br(e,t,n,r,i){return zr(e,"handleClickOn",t,n,r)||e.someProp("handleClick",n=>n(e,t,r))||(i?function(e,t){if(-1==t)return!1;let n,r,i=e.state.selection;i instanceof ot&&(n=i.node);let o=e.state.doc.resolve(t);for(let s=o.depth+1;s>0;s--){let e=s>o.depth?o.nodeAfter:o.node(s);if(ot.isSelectable(e)){r=n&&i.$from.depth>0&&s>=i.$from.depth&&o.before(i.$from.depth+1)==i.$from.pos?o.before(i.$from.depth):o.before(s);break}}return null!=r&&(Pr(e,ot.create(e.state.doc,r)),!0)}(e,n):function(e,t){if(-1==t)return!1;let n=e.state.doc.resolve(t),r=n.nodeAfter;return!!(r&&r.isAtom&&ot.isSelectable(r))&&(Pr(e,new ot(n)),!0)}(e,n))}function Vr(e,t,n,r){return zr(e,"handleDoubleClickOn",t,n,r)||e.someProp("handleDoubleClick",n=>n(e,t,r))}function Fr(e,t,n,r){return zr(e,"handleTripleClickOn",t,n,r)||e.someProp("handleTripleClick",n=>n(e,t,r))||function(e,t,n){if(0!=n.button)return!1;let r=e.state.doc;if(-1==t)return!!r.inlineContent&&(Pr(e,rt.create(r,0,r.content.size)),!0);let i=r.resolve(t);for(let o=i.depth+1;o>0;o--){let t=o>i.depth?i.nodeAfter:i.node(o),n=i.before(o);if(t.inlineContent)Pr(e,rt.create(r,n+1,n+1+t.content.size));else{if(!ot.isSelectable(t))continue;Pr(e,ot.create(r,n))}return!0}}(e,n,r)}function Lr(e){return Yr(e)}Nr.keydown=(e,t)=>{let n=t;if(e.input.shiftKey=16==n.keyCode||n.shiftKey,!qr(e,n)&&(e.input.lastKeyCode=n.keyCode,e.input.lastKeyCodeTime=Date.now(),!Ut||!qt||13!=n.keyCode))if(229!=n.keyCode&&e.domObserver.forceFlush(),!Kt||13!=n.keyCode||n.ctrlKey||n.altKey||n.metaKey)e.someProp("handleKeyDown",t=>t(e,n))||ur(e,n)?n.preventDefault():Er(e,"key");else{let t=Date.now();e.input.lastIOSEnter=t,e.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{e.input.lastIOSEnter==t&&(e.someProp("handleKeyDown",t=>t(e,$t(13,"Enter"))),e.input.lastIOSEnter=0)},200)}},Nr.keyup=(e,t)=>{16==t.keyCode&&(e.input.shiftKey=!1)},Nr.keypress=(e,t)=>{let n=t;if(qr(e,n)||!n.charCode||n.ctrlKey&&!n.altKey||Ht&&n.metaKey)return;if(e.someProp("handleKeyPress",t=>t(e,n)))return void n.preventDefault();let r=e.state.selection;if(!(r instanceof rt&&r.$from.sameParent(r.$to))){let t=String.fromCharCode(n.charCode),i=()=>e.state.tr.insertText(t).scrollIntoView();/[\r\n]/.test(t)||e.someProp("handleTextInput",n=>n(e,r.$from.pos,r.$to.pos,t,i))||e.dispatch(i()),n.preventDefault()}};const Wr=Ht?"metaKey":"ctrlKey";Or.mousedown=(e,t)=>{let n=t;e.input.shiftKey=n.shiftKey;let r=Lr(e),i=Date.now(),o="singleClick";i-e.input.lastClick.time<500&&function(e,t){let n=t.x-e.clientX,r=t.y-e.clientY;return n*n+r*r<100}(n,e.input.lastClick)&&!n[Wr]&&e.input.lastClick.button==n.button&&("singleClick"==e.input.lastClick.type?o="doubleClick":"doubleClick"==e.input.lastClick.type&&(o="tripleClick")),e.input.lastClick={time:i,x:n.clientX,y:n.clientY,type:o,button:n.button};let s=e.posAtCoords(Ir(n));s&&("singleClick"==o?(e.input.mouseDown&&e.input.mouseDown.done(),e.input.mouseDown=new Jr(e,s,n,!!r)):("doubleClick"==o?Vr:Fr)(e,s.pos,s.inside,n)?n.preventDefault():Er(e,"pointer"))};class Jr{constructor(e,t,n,r){let i,o;if(this.view=e,this.pos=t,this.event=n,this.flushed=r,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!n[Wr],this.allowDefault=n.shiftKey,t.inside>-1)i=e.state.doc.nodeAt(t.inside),o=t.inside;else{let n=e.state.doc.resolve(t.pos);i=n.parent,o=n.depth?n.before():0}const s=r?null:n.target,l=s?e.docView.nearestDesc(s,!0):null;this.target=l&&1==l.nodeDOM.nodeType?l.nodeDOM:null;let{selection:a}=e.state;(0==n.button&&i.type.spec.draggable&&!1!==i.type.spec.selectable||a instanceof ot&&a.from<=o&&a.to>o)&&(this.mightDrag={node:i,pos:o,addAttr:!(!this.target||this.target.draggable),setUneditable:!(!this.target||!Wt||this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),Er(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>_n(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let t=this.pos;this.view.state.doc!=this.startDoc&&(t=this.view.posAtCoords(Ir(e))),this.updateAllowDefault(e),this.allowDefault||!t?Er(this.view,"pointer"):Br(this.view,t.pos,t.inside,e,this.selectNode)?e.preventDefault():0==e.button&&(this.flushed||_t&&this.mightDrag&&!this.mightDrag.node.isAtom||qt&&!this.view.state.selection.visible&&Math.min(Math.abs(t.pos-this.view.state.selection.from),Math.abs(t.pos-this.view.state.selection.to))<=2)?(Pr(this.view,Qe.near(this.view.state.doc.resolve(t.pos))),e.preventDefault()):Er(this.view,"pointer")}move(e){this.updateAllowDefault(e),Er(this.view,"pointer"),0==e.buttons&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}function qr(e,t){return!!e.composing||!!(_t&&Math.abs(t.timeStamp-e.input.compositionEndedAt)<500)&&(e.input.compositionEndedAt=-2e8,!0)}Or.touchstart=e=>{e.input.lastTouch=Date.now(),Lr(e),Er(e,"pointer")},Or.touchmove=e=>{e.input.lastTouch=Date.now(),Er(e,"pointer")},Or.contextmenu=e=>Lr(e);const jr=Ut?5e3:-1;function _r(e,t){clearTimeout(e.input.composingTimeout),t>-1&&(e.input.composingTimeout=setTimeout(()=>Yr(e),t))}function Kr(e){for(e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=function(){let e=document.createEvent("Event");return e.initEvent("event",!0,!0),e.timeStamp}());e.input.compositionNodes.length>0;)e.input.compositionNodes.pop().markParentsDirty()}function Hr(e){let t=e.domSelectionRange();if(!t.focusNode)return null;let n=function(e,t){for(;;){if(3==e.nodeType&&t)return e;if(1==e.nodeType&&t>0){if("false"==e.contentEditable)return null;t=Tt(e=e.childNodes[t-1])}else{if(!e.parentNode||Et(e))return null;t=St(e),e=e.parentNode}}}(t.focusNode,t.focusOffset),r=function(e,t){for(;;){if(3==e.nodeType&&t=0)){if(e.domObserver.forceFlush(),Kr(e),t||e.docView&&e.docView.dirty){let n=qn(e),r=e.state.selection;return n&&!n.eq(r)?e.dispatch(e.state.tr.setSelection(n)):!e.markCursor&&!t||r.$from.node(r.$from.sharedDepth(r.to)).inlineContent?e.updateState(e.state):e.dispatch(e.state.tr.deleteSelection()),!0}return!1}}Nr.compositionstart=Nr.compositionupdate=e=>{if(!e.composing){e.domObserver.flush();let{state:t}=e,n=t.selection.$to;if(t.selection instanceof rt&&(t.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(e=>!1===e.type.spec.inclusive)||qt&&Yt&&function(e){let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(!t||1!=t.nodeType||n>=t.childNodes.length)return!1;let r=t.childNodes[n];return 1==r.nodeType&&"false"==r.contentEditable}(e)))e.markCursor=e.state.storedMarks||n.marks(),Yr(e,!0),e.markCursor=null;else if(Yr(e,!t.selection.empty),Wt&&t.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let t=e.domSelectionRange();for(let n=t.focusNode,r=t.focusOffset;n&&1==n.nodeType&&0!=r;){let t=r<0?n.lastChild:n.childNodes[r-1];if(!t)break;if(3==t.nodeType){let n=e.domSelection();n&&n.collapse(t,t.nodeValue.length);break}n=t,r=-1}}e.input.composing=!0}_r(e,jr)},Nr.compositionend=(e,t)=>{e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=t.timeStamp,e.input.compositionPendingChanges=e.domObserver.pendingRecords().length?e.input.compositionID:0,e.input.compositionNode=null,e.input.compositionPendingChanges&&Promise.resolve().then(()=>e.domObserver.flush()),e.input.compositionID++,_r(e,20))};const Ur=Ft&&Lt<15||Kt&&Zt<604;function Gr(e,t,n,r,i){let o=mr(e,t,n,r,e.state.selection.$from);if(e.someProp("handlePaste",t=>t(e,i,o||c.empty)))return!0;if(!o)return!1;let s=function(e){return 0==e.openStart&&0==e.openEnd&&1==e.content.childCount?e.content.firstChild:null}(o),l=s?e.state.tr.replaceSelectionWith(s,r):e.state.tr.replaceSelection(o);return e.dispatch(l.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function Zr(e){let t=e.getData("text/plain")||e.getData("Text");if(t)return t;let n=e.getData("text/uri-list");return n?n.replace(/\r?\n/g," "):""}Or.copy=Nr.cut=(e,t)=>{let n=t,r=e.state.selection,i="cut"==n.type;if(r.empty)return;let o=Ur?null:n.clipboardData,s=r.content(),{dom:l,text:a}=fr(e,s);o?(n.preventDefault(),o.clearData(),o.setData("text/html",l.innerHTML),o.setData("text/plain",a)):function(e,t){if(!e.dom.parentNode)return;let n=e.dom.parentNode.appendChild(document.createElement("div"));n.appendChild(t),n.style.cssText="position: fixed; left: -10000px; top: 10px";let r=getSelection(),i=document.createRange();i.selectNodeContents(t),e.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),e.focus()},50)}(e,l),i&&e.dispatch(e.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))},Nr.paste=(e,t)=>{let n=t;if(e.composing&&!Ut)return;let r=Ur?null:n.clipboardData,i=e.input.shiftKey&&45!=e.input.lastKeyCode;r&&Gr(e,Zr(r),r.getData("text/html"),i,n)?n.preventDefault():function(e,t){if(!e.dom.parentNode)return;let n=e.input.shiftKey||e.state.selection.$from.parent.type.spec.code,r=e.dom.parentNode.appendChild(document.createElement(n?"textarea":"div"));n||(r.contentEditable="true"),r.style.cssText="position: fixed; left: -10000px; top: 10px",r.focus();let i=e.input.shiftKey&&45!=e.input.lastKeyCode;setTimeout(()=>{e.focus(),r.parentNode&&r.parentNode.removeChild(r),n?Gr(e,r.value,null,i,t):Gr(e,r.textContent,r.innerHTML,i,t)},50)}(e,n)};class Xr{constructor(e,t,n){this.slice=e,this.move=t,this.node=n}}const Qr=Ht?"altKey":"ctrlKey";function ei(e,t){let n=e.someProp("dragCopies",e=>!e(t));return null!=n?n:!t[Qr]}Or.dragstart=(e,t)=>{let n=t,r=e.input.mouseDown;if(r&&r.done(),!n.dataTransfer)return;let i,o=e.state.selection,s=o.empty?null:e.posAtCoords(Ir(n));if(s&&s.pos>=o.from&&s.pos<=(o instanceof ot?o.to-1:o.to));else if(r&&r.mightDrag)i=ot.create(e.state.doc,r.mightDrag.pos);else if(n.target&&1==n.target.nodeType){let t=e.docView.nearestDesc(n.target,!0);t&&t.node.type.spec.draggable&&t!=e.docView&&(i=ot.create(e.state.doc,t.posBefore))}let l=(i||e.state.selection).content(),{dom:a,text:h,slice:c}=fr(e,l);(!n.dataTransfer.files.length||!qt||jt>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(Ur?"Text":"text/html",a.innerHTML),n.dataTransfer.effectAllowed="copyMove",Ur||n.dataTransfer.setData("text/plain",h),e.dragging=new Xr(c,ei(e,n),i)},Or.dragend=e=>{let t=e.dragging;window.setTimeout(()=>{e.dragging==t&&(e.dragging=null)},50)},Nr.dragover=Nr.dragenter=(e,t)=>t.preventDefault(),Nr.drop=(e,t)=>{try{!function(e,t,n){if(!t.dataTransfer)return;let r=e.posAtCoords(Ir(t));if(!r)return;let i=e.state.doc.resolve(r.pos),o=n&&n.slice;o?e.someProp("transformPasted",t=>{o=t(o,e,!1)}):o=mr(e,Zr(t.dataTransfer),Ur?null:t.dataTransfer.getData("text/html"),!1,i);let s=!(!n||!ei(e,t));if(e.someProp("handleDrop",n=>n(e,t,o||c.empty,s)))return void t.preventDefault();if(!o)return;t.preventDefault();let l=o?function(e,t,n){let r=e.resolve(t);if(!n.content.size)return t;let i=n.content;for(let o=0;o=0;e--){let t=e==r.depth?0:r.pos<=(r.start(e+1)+r.end(e+1))/2?-1:1,n=r.index(e)+(t>0?1:0),s=r.node(e),l=!1;if(1==o)l=s.canReplace(n,n,i);else{let e=s.contentMatchAt(n).findWrapping(i.firstChild.type);l=e&&s.canReplaceWith(n,n,e[0])}if(l)return 0==t?r.pos:t<0?r.before(e+1):r.after(e+1)}return null}(e.state.doc,i.pos,o):i.pos;null==l&&(l=i.pos);let a=e.state.tr;if(s){let{node:e}=n;e?e.replace(a):a.deleteSelection()}let h=a.mapping.map(l),d=0==o.openStart&&0==o.openEnd&&1==o.content.childCount,p=a.doc;d?a.replaceRangeWith(h,h,o.content.firstChild):a.replaceRange(h,h,o);if(a.doc.eq(p))return;let u=a.doc.resolve(h);if(d&&ot.isSelectable(o.content.firstChild)&&u.nodeAfter&&u.nodeAfter.sameMarkup(o.content.firstChild))a.setSelection(new ot(u));else{let t=a.mapping.map(l);a.mapping.maps[a.mapping.maps.length-1].forEach((e,n,r,i)=>t=i),a.setSelection(Xn(e,u,a.doc.resolve(t)))}e.focus(),e.dispatch(a.setMeta("uiEvent","drop"))}(e,t,e.dragging)}finally{e.dragging=null}},Or.focus=e=>{e.input.lastFocus=Date.now(),e.focused||(e.domObserver.stop(),e.dom.classList.add("ProseMirror-focused"),e.domObserver.start(),e.focused=!0,setTimeout(()=>{e.docView&&e.hasFocus()&&!e.domObserver.currentSelection.eq(e.domSelectionRange())&&_n(e)},20))},Or.blur=(e,t)=>{let n=t;e.focused&&(e.domObserver.stop(),e.dom.classList.remove("ProseMirror-focused"),e.domObserver.start(),n.relatedTarget&&e.dom.contains(n.relatedTarget)&&e.domObserver.currentSelection.clear(),e.focused=!1)},Or.beforeinput=(e,t)=>{if(qt&&Ut&&"deleteContentBackward"==t.inputType){e.domObserver.flushSoon();let{domChangeCount:t}=e.input;setTimeout(()=>{if(e.input.domChangeCount!=t)return;if(e.dom.blur(),e.focus(),e.someProp("handleKeyDown",t=>t(e,$t(8,"Backspace"))))return;let{$cursor:n}=e.state.selection;n&&n.pos>0&&e.dispatch(e.state.tr.delete(n.pos-1,n.pos).scrollIntoView())},50)}};for(let os in Nr)Or[os]=Nr[os];function ti(e,t){if(e==t)return!0;for(let n in e)if(e[n]!==t[n])return!1;for(let n in t)if(!(n in e))return!1;return!0}class ni{constructor(e,t){this.toDOM=e,this.spec=t||li,this.side=this.spec.side||0}map(e,t,n,r){let{pos:i,deleted:o}=e.mapResult(t.from+r,this.side<0?-1:1);return o?null:new oi(i-n,i-n,this)}valid(){return!0}eq(e){return this==e||e instanceof ni&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&ti(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}}class ri{constructor(e,t){this.attrs=e,this.spec=t||li}map(e,t,n,r){let i=e.map(t.from+r,this.spec.inclusiveStart?-1:1)-n,o=e.map(t.to+r,this.spec.inclusiveEnd?1:-1)-n;return i>=o?null:new oi(i,o,this)}valid(e,t){return t.from=e&&(!i||i(s.spec))&&n.push(s.copy(s.from+r,s.to+r))}for(let o=0;oe){let s=this.children[o]+1;this.children[o+2].findInner(e-s,t-s,n,r+s,i)}}map(e,t,n){return this==hi||0==e.maps.length?this:this.mapInner(e,t,0,0,n||li)}mapInner(e,t,n,r,i){let o;for(let s=0;s{let o=i-r-(n-t);for(let s=0;sr+c-e)continue;let i=l[s]+c-e;n>=i?l[s+1]=t<=i?-2:-1:t>=c&&o&&(l[s]+=o,l[s+1]+=o)}e+=o}),c=n.maps[h].map(c,-1)}let a=!1;for(let h=0;h=r.content.size){a=!0;continue}let d=n.map(e[h+1]+o,-1)-i,{index:p,offset:u}=r.content.findIndex(c),f=r.maybeChild(p);if(f&&u==c&&u+f.nodeSize==d){let r=l[h+2].mapInner(n,f,t+1,e[h]+o+1,s);r!=hi?(l[h]=c,l[h+1]=d,l[h+2]=r):(l[h+1]=-2,a=!0)}else a=!0}if(a){let a=function(e,t,n,r,i,o,s){function l(e,t){for(let o=0;o{let s,l=o+n;if(s=pi(t,e,l)){for(r||(r=this.children.slice());io&&t.to=e){this.children[s]==e&&(n=this.children[s+2]);break}let i=e+1,o=i+t.content.size;for(let s=0;si&&e.type instanceof ri){let t=Math.max(i,e.from)-i,n=Math.min(o,e.to)-i;tn.map(e,t,li));return ci.from(n)}forChild(e,t){if(t.isLeaf)return ai.empty;let n=[];for(let r=0;re instanceof ai)?e:e.reduce((e,t)=>e.concat(t instanceof ai?t:t.members),[]))}}forEachSet(e){for(let t=0;tn&&o.to{let l=pi(e,t,s+n);if(l){o=!0;let e=fi(l,t,n+s+1,r);e!=hi&&i.push(s,s+t.nodeSize,e)}});let s=di(o?ui(e):e,-n).sort(mi);for(let l=0;l0;)t++;e.splice(t,0,n)}function wi(e){let t=[];return e.someProp("decorations",n=>{let r=n(e.state);r&&r!=hi&&t.push(r)}),e.cursorWrapper&&t.push(ai.create(e.state.doc,[e.cursorWrapper.deco])),ci.from(t)}const vi={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},xi=Ft&&Lt<=11;class bi{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}class Si{constructor(e,t){this.view=e,this.handleDOMChange=t,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new bi,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(e=>{for(let t=0;t"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length)?this.flushSoon():this.flush()}),xi&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,vi)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let t=0;tthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(Qn(this.view)){if(this.suppressingSelectionUpdates)return _n(this.view);if(Ft&&Lt<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&Ot(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let t,n=new Set;for(let i=e.focusNode;i;i=kt(i))n.add(i);for(let i=e.anchorNode;i;i=kt(i))if(n.has(i)){t=i;break}let r=t&&this.view.docView.nearestDesc(t);return r&&r.ignoreMutation({type:"selection",target:3==t.nodeType?t.parentNode:t})?(this.setCurSelection(),!0):void 0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let t=this.pendingRecords();t.length&&(this.queue=[]);let n=e.domSelectionRange(),r=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(n)&&Qn(e)&&!this.ignoreSelectionChange(n),i=-1,o=-1,s=!1,l=[];if(e.editable)for(let h=0;h"BR"==e.nodeName);if(2==t.length){let[e,n]=t;e.parentNode&&e.parentNode.parentNode==n.parentNode?n.remove():e.remove()}else{let{focusNode:n}=this.currentSelection;for(let r of t){let t=r.parentNode;!t||"LI"!=t.nodeName||n&&Oi(e,n)==t||r.remove()}}}else if((qt||_t)&&l.some(e=>"BR"==e.nodeName)&&(8==e.input.lastKeyCode||46==e.input.lastKeyCode))for(let h of l)if("BR"==h.nodeName&&h.parentNode){let e=h.nextSibling;e&&1==e.nodeType&&"false"==e.contentEditable&&h.parentNode.removeChild(h)}let a=null;i<0&&r&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)-1||r)&&(i>-1&&(e.docView.markDirty(i,o),function(e){if(ki.has(e))return;if(ki.set(e,null),-1!==["normal","nowrap","pre-line"].indexOf(getComputedStyle(e.dom).whiteSpace)){if(e.requiresGeckoHackNode=Wt,Mi)return;console.warn("ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package."),Mi=!0}}(e)),this.handleDOMChange(i,o,s,l),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(n)||_n(e),this.currentSelection.set(n))}registerMutation(e,t){if(t.indexOf(e.target)>-1)return null;let n=this.view.docView.nearestDesc(e.target);if("attributes"==e.type&&(n==this.view.docView||"contenteditable"==e.attributeName||"style"==e.attributeName&&!e.oldValue&&!e.target.getAttribute("style")))return null;if(!n||n.ignoreMutation(e))return null;if("childList"==e.type){for(let n=0;nDate.now()-50?e.input.lastSelectionOrigin:null,n=qn(e,t);if(n&&!e.state.selection.eq(n)){if(qt&&Ut&&13===e.input.lastKeyCode&&Date.now()-100t(e,$t(13,"Enter"))))return;let r=e.state.tr.setSelection(n);"pointer"==t?r.setMeta("pointer",!0):"key"==t&&r.scrollIntoView(),s&&r.setMeta("composition",s),e.dispatch(r)}return}let l=e.state.doc.resolve(t),a=l.sharedDepth(n);t=l.before(a+1),n=e.state.doc.resolve(n).after(a+1);let h,c,d=e.state.selection,p=function(e,t,n){let r,{node:i,fromOffset:o,toOffset:s,from:l,to:a}=e.docView.parseRange(t,n),h=e.domSelectionRange(),c=h.anchorNode;if(c&&e.dom.contains(1==c.nodeType?c:c.parentNode)&&(r=[{node:c,offset:h.anchorOffset}],At(h)||r.push({node:h.focusNode,offset:h.focusOffset})),qt&&8===e.input.lastKeyCode)for(let g=s;g>o;g--){let e=i.childNodes[g-1],t=e.pmViewDesc;if("BR"==e.nodeName&&!t){s=g;break}if(!t||t.size)break}let d=e.state.doc,p=e.someProp("domParser")||U.fromSchema(e.state.schema),u=d.resolve(l),f=null,m=p.parse(i,{topNode:u.parent,topMatch:u.parent.contentMatchAt(u.index()),topOpen:!0,from:o,to:s,preserveWhitespace:"pre"!=u.parent.type.whitespace||"full",findPositions:r,ruleFromNode:Ni,context:u});if(r&&null!=r[0].pos){let e=r[0].pos,t=r[1]&&r[1].pos;null==t&&(t=e),f={anchor:e+l,head:t+l}}return{doc:m,sel:f,from:l,to:a}}(e,t,n),u=e.state.doc,f=u.slice(p.from,p.to);8===e.input.lastKeyCode&&Date.now()-100=s?o-r:0;o-=e,o&&o=l?o-r:0;o-=t,o&&oDate.now()-225||Ut)&&o.some(e=>1==e.nodeType&&!Di.test(e.nodeName))&&(!m||m.endA>=m.endB)&&e.someProp("handleKeyDown",t=>t(e,$t(13,"Enter"))))return void(e.input.lastIOSEnter=0);if(!m){if(!(r&&d instanceof rt&&!d.empty&&d.$head.sameParent(d.$anchor))||e.composing||p.sel&&p.sel.anchor!=p.sel.head){if(p.sel){let t=Ei(e,e.state.doc,p.sel);if(t&&!t.eq(e.state.selection)){let n=e.state.tr.setSelection(t);s&&n.setMeta("composition",s),e.dispatch(n)}}return}m={start:d.from,endA:d.to,endB:d.to}}e.state.selection.frome.state.selection.from&&m.start<=e.state.selection.from+2&&e.state.selection.from>=p.from?m.start=e.state.selection.from:m.endA=e.state.selection.to-2&&e.state.selection.to<=p.to&&(m.endB+=e.state.selection.to-m.endA,m.endA=e.state.selection.to)),Ft&&Lt<=11&&m.endB==m.start+1&&m.endA==m.start&&m.start>p.from&&"  "==p.doc.textBetween(m.start-p.from-1,m.start-p.from+1)&&(m.start--,m.endA--,m.endB--);let g=p.doc.resolveNoCache(m.start-p.from),y=p.doc.resolveNoCache(m.endB-p.from),w=u.resolve(m.start),v=g.sameParent(y)&&g.parent.inlineContent&&w.end()>=m.endA;if((Kt&&e.input.lastIOSEnter>Date.now()-225&&(!v||o.some(e=>"DIV"==e.nodeName||"P"==e.nodeName))||!v&&g.post(e,$t(13,"Enter"))))return void(e.input.lastIOSEnter=0);if(e.state.selection.anchor>m.start&&function(e,t,n,r,i){if(n-t<=i.pos-r.pos||Ai(r,!0,!1)n||Ai(s,!0,!1)t(e,$t(8,"Backspace"))))return void(Ut&&qt&&e.domObserver.suppressSelectionUpdates());qt&&m.endB==m.start&&(e.input.lastChromeDelete=Date.now()),Ut&&!v&&g.start()!=y.start()&&0==y.parentOffset&&g.depth==y.depth&&p.sel&&p.sel.anchor==p.sel.head&&p.sel.head==m.endA&&(m.endB-=2,y=p.doc.resolveNoCache(m.endB-p.from),setTimeout(()=>{e.someProp("handleKeyDown",function(t){return t(e,$t(13,"Enter"))})},20));let x,b=m.start,S=m.endA,k=t=>{let n=t||e.state.tr.replace(b,S,p.doc.slice(m.start-p.from,m.endB-p.from));if(p.sel){let t=Ei(e,n.doc,p.sel);t&&!(qt&&e.composing&&t.empty&&(m.start!=m.endB||e.input.lastChromeDelete_n(e),20));let t=k(e.state.tr.delete(b,S)),n=u.resolve(m.start).marksAcross(u.resolve(m.endA));n&&t.ensureMarks(n),e.dispatch(t)}else if(m.endA==m.endB&&(x=function(e,t){let n,r,o,s=e.firstChild.marks,l=t.firstChild.marks,a=s,h=l;for(let i=0;ie.mark(r.addToSet(e.marks));else{if(0!=a.length||1!=h.length)return null;r=h[0],n="remove",o=e=>e.mark(r.removeFromSet(e.marks))}let c=[];for(let i=0;ik(e.state.tr.insertText(t,b,S));e.someProp("handleTextInput",r=>r(e,b,S,t,n))||e.dispatch(n())}else e.dispatch(k());else e.dispatch(k())}function Ei(e,t,n){return Math.max(n.anchor,n.head)>t.content.size?null:Xn(e,t.resolve(n.anchor),t.resolve(n.head))}function Ai(e,t,n){let r=e.depth,i=t?e.end():e.pos;for(;r>0&&(t||e.indexAfter(r)==e.node(r).childCount);)r--,i++,t=!1;if(n){let t=e.node(r).maybeChild(e.indexAfter(r));for(;t&&!t.isLeaf;)t=t.firstChild,i++}return i}function $i(e){if(2!=e.length)return!1;let t=e.charCodeAt(0),n=e.charCodeAt(1);return t>=56320&&t<=57343&&n>=55296&&n<=56319}class Ri{constructor(e,t){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new Tr,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=t,this.state=t.state,this.directPlugins=t.plugins||[],this.directPlugins.forEach(Vi),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):"function"==typeof e?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=Pi(this),zi(this),this.nodeViews=Bi(this),this.docView=Nn(this.state.doc,Ii(this),wi(this),this.dom,this),this.domObserver=new Si(this,(e,t,n,r)=>Ti(this,e,t,n,r)),this.domObserver.start(),function(e){for(let t in Or){let n=Or[t];e.dom.addEventListener(t,e.input.eventHandlers[t]=t=>{!Rr(e,t)||$r(e,t)||!e.editable&&t.type in Nr||n(e,t)},Dr[t]?{passive:!0}:void 0)}_t&&e.dom.addEventListener("input",()=>null),Ar(e)}(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let t in e)this._props[t]=e[t];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&Ar(this);let t=this._props;this._props=e,e.plugins&&(e.plugins.forEach(Vi),this.directPlugins=e.plugins),this.updateStateInner(e.state,t)}setProps(e){let t={};for(let n in this._props)t[n]=this._props[n];t.state=this.state;for(let n in e)t[n]=e[n];this.update(t)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,t){var n;let r=this.state,i=!1,o=!1;e.storedMarks&&this.composing&&(Kr(this),o=!0),this.state=e;let s=r.plugins!=e.plugins||this._props.plugins!=t.plugins;if(s||this._props.plugins!=t.plugins||this._props.nodeViews!=t.nodeViews){let e=Bi(this);(function(e,t){let n=0,r=0;for(let i in e){if(e[i]!=t[i])return!0;n++}for(let i in t)r++;return n!=r})(e,this.nodeViews)&&(this.nodeViews=e,i=!0)}(s||t.handleDOMEvents!=this._props.handleDOMEvents)&&Ar(this),this.editable=Pi(this),zi(this);let l=wi(this),a=Ii(this),h=r.plugins==e.plugins||r.doc.eq(e.doc)?e.scrollToSelection>r.scrollToSelection?"to selection":"preserve":"reset",c=i||!this.docView.matchesNode(e.doc,a,l);!c&&e.selection.eq(r.selection)||(o=!0);let d="preserve"==h&&o&&null==this.dom.style.overflowAnchor&&function(e){let t,n,r=e.dom.getBoundingClientRect(),i=Math.max(0,r.top);for(let o=(r.left+r.right)/2,s=i+1;s=i-20){t=r,n=l.top;break}}return{refDOM:t,refTop:n,stack:nn(e.dom)}}(this);if(o){this.domObserver.stop();let t=c&&(Ft||qt)&&!this.composing&&!r.selection.empty&&!e.selection.empty&&function(e,t){let n=Math.min(e.$anchor.sharedDepth(e.head),t.$anchor.sharedDepth(t.head));return e.$anchor.start(n)!=t.$anchor.start(n)}(r.selection,e.selection);if(c){let n=qt?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=Hr(this)),!i&&this.docView.update(e.doc,a,l,this)||(this.docView.updateOuterDeco(a),this.docView.destroy(),this.docView=Nn(e.doc,a,l,this.dom,this)),n&&!this.trackWrites&&(t=!0)}t||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&function(e){let t=e.docView.domFromPos(e.state.selection.anchor,0),n=e.domSelectionRange();return Ot(t.node,t.offset,n.anchorNode,n.anchorOffset)}(this))?_n(this,t):(Gn(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(r),(null===(n=this.dragging)||void 0===n?void 0:n.node)&&!r.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,r),"reset"==h?this.dom.scrollTop=0:"to selection"==h?this.scrollToSelection():d&&function({refDOM:e,refTop:t,stack:n}){let r=e?e.getBoundingClientRect().top:0;rn(n,0==r?0:r-t)}(d)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(e&&this.dom.contains(1==e.nodeType?e:e.parentNode))if(this.someProp("handleScrollToSelection",e=>e(this)));else if(this.state.selection instanceof ot){let t=this.docView.domAfterPos(this.state.selection.from);1==t.nodeType&&tn(this,t.getBoundingClientRect(),e)}else tn(this,this.coordsAtPos(this.state.selection.head,1),e);else;}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(e&&e.plugins==this.state.plugins&&this.directPlugins==this.prevDirectPlugins)for(let t=0;t0&&this.state.doc.nodeAt(e))==n.node&&(r=e)}this.dragging=new Xr(e.slice,e.move,r<0?void 0:ot.create(this.state.doc,r))}someProp(e,t){let n,r=this._props&&this._props[e];if(null!=r&&(n=t?t(r):r))return n;for(let o=0;ot.ownerDocument.getSelection()),this._root=t;return e||document}updateRoot(){this._root=null}posAtCoords(e){return hn(this,e)}coordsAtPos(e,t=1){return un(this,e,t)}domAtPos(e,t=0){return this.docView.domFromPos(e,t)}nodeDOM(e){let t=this.docView.descAt(e);return t?t.nodeDOM:null}posAtDOM(e,t,n=-1){let r=this.docView.posFromDOM(e,t,n);if(null==r)throw new RangeError("DOM position not inside the editor");return r}endOfTextblock(e,t){return bn(this,t||this.state,e)}pasteHTML(e,t){return Gr(this,"",e,!1,t||new ClipboardEvent("paste"))}pasteText(e,t){return Gr(this,e,null,!0,t||new ClipboardEvent("paste"))}serializeForClipboard(e){return fr(this,e)}destroy(){this.docView&&(!function(e){e.domObserver.stop();for(let t in e.input.eventHandlers)e.dom.removeEventListener(t,e.input.eventHandlers[t]);clearTimeout(e.input.composingTimeout),clearTimeout(e.input.lastIOSEnterFallbackTimeout)}(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],wi(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,Mt=null)}get isDestroyed(){return null==this.docView}dispatchEvent(e){return function(e,t){$r(e,t)||!Or[t.type]||!e.editable&&t.type in Nr||Or[t.type](e,t)}(this,e)}domSelectionRange(){let e=this.domSelection();return e?_t&&11===this.root.nodeType&&function(e){let t=e.activeElement;for(;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}(this.dom.ownerDocument)==this.dom&&function(e,t){if(t.getComposedRanges){let n=t.getComposedRanges(e.root)[0];if(n)return Ci(e,n)}let n;function r(e){e.preventDefault(),e.stopImmediatePropagation(),n=e.getTargetRanges()[0]}return e.dom.addEventListener("beforeinput",r,!0),document.execCommand("indent"),e.dom.removeEventListener("beforeinput",r,!0),n?Ci(e,n):null}(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}}function Ii(e){let t=Object.create(null);return t.class="ProseMirror",t.contenteditable=String(e.editable),e.someProp("attributes",n=>{if("function"==typeof n&&(n=n(e.state)),n)for(let e in n)"class"==e?t.class+=" "+n[e]:"style"==e?t.style=(t.style?t.style+";":"")+n[e]:t[e]||"contenteditable"==e||"nodeName"==e||(t[e]=String(n[e]))}),t.translate||(t.translate="no"),[oi.node(0,e.state.doc.content.size,t)]}function zi(e){if(e.markCursor){let t=document.createElement("img");t.className="ProseMirror-separator",t.setAttribute("mark-placeholder","true"),t.setAttribute("alt",""),e.cursorWrapper={dom:t,deco:oi.widget(e.state.selection.from,t,{raw:!0,marks:e.markCursor})}}else e.cursorWrapper=null}function Pi(e){return!e.someProp("editable",t=>!1===t(e.state))}function Bi(e){let t=Object.create(null);function n(e){for(let n in e)Object.prototype.hasOwnProperty.call(t,n)||(t[n]=e[n])}return e.someProp("nodeViews",n),e.someProp("markViews",n),t}function Vi(e){if(e.spec.state||e.spec.filterTransaction||e.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}Ri.prototype.dispatch=function(e){let t=this._props.dispatchTransaction;t?t.call(this,e):this.updateState(this.state.apply(e))};for(var Fi={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Li={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Wi="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),Ji="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),qi=0;qi<10;qi++)Fi[48+qi]=Fi[96+qi]=String(qi);for(qi=1;qi<=24;qi++)Fi[qi+111]="F"+qi;for(qi=65;qi<=90;qi++)Fi[qi]=String.fromCharCode(qi+32),Li[qi]=String.fromCharCode(qi);for(var ji in Fi)Li.hasOwnProperty(ji)||(Li[ji]=Fi[ji]);const _i="undefined"!=typeof navigator&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),Ki="undefined"!=typeof navigator&&/Win/.test(navigator.platform);function Hi(e){let t,n,r,i,o=e.split(/-(?!$)/),s=o[o.length-1];"Space"==s&&(s=" ");for(let l=0;l!e.selection.empty&&(t&&t(e.tr.deleteSelection().scrollIntoView()),!0);function Xi(e,t,n=!1){for(let r=e;r;r="start"==t?r.firstChild:r.lastChild){if(r.isTextblock)return!0;if(n&&1!=r.childCount)return!1}return!1}function Qi(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){if(e.index(t)>0)return e.doc.resolve(e.before(t+1));if(e.node(t).type.spec.isolating)break}return null}function eo(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){let n=e.node(t);if(e.index(t)+1{let{$from:n,$to:r}=e.selection,i=n.blockRange(r),o=i&&Ee(i);return null!=o&&(t&&t(e.tr.lift(i,o).scrollIntoView()),!0)};function no(e){for(let t=0;t{let{$head:n,$anchor:r}=e.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),o=n.indexAfter(-1),s=no(i.contentMatchAt(o));if(!s||!i.canReplaceWith(o,o,s))return!1;if(t){let r=n.after(),i=e.tr.replaceWith(r,r,s.createAndFill());i.setSelection(Qe.near(i.doc.resolve(r),1)),t(i.scrollIntoView())}return!0};const io=(e,t)=>{let{$from:n,$to:r}=e.selection;if(e.selection instanceof ot&&e.selection.node.isBlock)return!(!n.parentOffset||!ze(e.doc,n.pos)||(t&&t(e.tr.split(n.pos).scrollIntoView()),0));if(!n.depth)return!1;let i,o,s=[],l=!1,a=!1;for(let p=n.depth;;p--){if(n.node(p).isBlock){l=n.end(p)==n.pos+(n.depth-p),a=n.start(p)==n.pos-(n.depth-p),o=no(n.node(p-1).contentMatchAt(n.indexAfter(p-1))),s.unshift(l&&o?{type:o}:null),i=p;break}if(1==p)return!1;s.unshift(null)}let h=e.tr;(e.selection instanceof rt||e.selection instanceof lt)&&h.deleteSelection();let c=h.mapping.map(n.pos),d=ze(h.doc,c,s.length,s);if(d||(s[0]=o?{type:o}:null,d=ze(h.doc,c,s.length,s)),!d)return!1;if(h.split(c,s.length,s),!l&&a&&n.node(i).type!=o){let e=h.mapping.map(n.before(i)),t=h.doc.resolve(e);o&&n.node(i-1).canReplaceWith(t.index(),t.index()+1,o)&&h.setNodeMarkup(h.mapping.map(n.before(i)),o)}return t&&t(h.scrollIntoView()),!0};function oo(e,t,n,r){let o,s,l=t.nodeBefore,a=t.nodeAfter,h=l.type.spec.isolating||a.type.spec.isolating;if(!h&&function(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,o=t.index();return!(!(r&&i&&r.type.compatibleContent(i.type))||(!r.content.size&&t.parent.canReplace(o-1,o)?(n&&n(e.tr.delete(t.pos-r.nodeSize,t.pos).scrollIntoView()),0):!t.parent.canReplace(o,o+1)||!i.isTextblock&&!Pe(e.doc,t.pos)||(n&&n(e.tr.join(t.pos).scrollIntoView()),0)))}(e,t,n))return!0;let d=!h&&t.parent.canReplace(t.index(),t.index()+1);if(d&&(o=(s=l.contentMatchAt(l.childCount)).findWrapping(a.type))&&s.matchType(o[0]||a.type).validEnd){if(n){let r=t.pos+a.nodeSize,s=i.empty;for(let e=o.length-1;e>=0;e--)s=i.from(o[e].create(null,s));s=i.from(l.copy(s));let h=e.tr.step(new Oe(t.pos-1,r,t.pos,r,new c(s,1,0),o.length,!0)),d=h.doc.resolve(r+2*o.length);d.nodeAfter&&d.nodeAfter.type==l.type&&Pe(h.doc,d.pos)&&h.join(d.pos),n(h.scrollIntoView())}return!0}let p=a.type.spec.isolating||r>0&&h?null:Qe.findFrom(t,1),u=p&&p.$from.blockRange(p.$to),f=u&&Ee(u);if(null!=f&&f>=t.depth)return n&&n(e.tr.lift(u,f).scrollIntoView()),!0;if(d&&Xi(a,"start",!0)&&Xi(l,"end")){let r=l,o=[];for(;o.push(r),!r.isTextblock;)r=r.lastChild;let s=a,h=1;for(;!s.isTextblock;s=s.firstChild)h++;if(r.canReplace(r.childCount,r.childCount,s.content)){if(n){let r=i.empty;for(let e=o.length-1;e>=0;e--)r=i.from(o[e].copy(r));n(e.tr.step(new Oe(t.pos-o.length,t.pos+a.nodeSize,t.pos+h,t.pos+a.nodeSize-h,new c(r,o.length,0),0,!0)).scrollIntoView())}return!0}}return!1}function so(e){return function(t,n){let r=t.selection,i=e<0?r.$from:r.$to,o=i.depth;for(;i.node(o).isInline;){if(!o)return!1;o--}return!!i.node(o).isTextblock&&(n&&n(t.tr.setSelection(rt.create(t.doc,e<0?i.start(o):i.end(o)))),!0)}}const lo=so(-1),ao=so(1);function ho(e,t=null){return function(n,r){let{$from:i,$to:o}=n.selection,s=i.blockRange(o),l=s&&Ae(s,e,t);return!!l&&(r&&r(n.tr.wrap(s,l).scrollIntoView()),!0)}}function co(e,t=null){return function(n,r){let i=!1;for(let o=0;o{if(i)return!1;if(r.isTextblock&&!r.hasMarkup(e,t))if(r.type==e)i=!0;else{let t=n.doc.resolve(o),r=t.index();i=t.parent.canReplaceWith(r,r+1,e)}})}if(!i)return!1;if(r){let i=n.tr;for(let r=0;r{if(l||!r&&e.isAtom&&e.isInline&&t>=o.pos&&t+e.nodeSize<=s.pos)return!1;l=e.inlineContent&&e.type.allowsMarkType(n)}),l)return!0}return!1}(n.doc,h,e,i))return!1;if(s)if(a)e.isInSet(n.storedMarks||a.marks())?s(n.tr.removeStoredMark(e)):s(n.tr.addStoredMark(e.create(t)));else{let l,a=n.tr;i||(h=function(e){let t=[];for(let n=0;n{if(e.isAtom&&e.content.size&&e.isInline&&n>=r.pos&&n+e.nodeSize<=i.pos)return n+1>r.pos&&t.push(new et(r,r.doc.resolve(n+1))),r=r.doc.resolve(n+1+e.content.size),!1}),r.posn.doc.rangeHasMark(t.$from.pos,t.$to.pos,e)):!h.every(t=>{let n=!1;return a.doc.nodesBetween(t.$from.pos,t.$to.pos,(r,i,o)=>{if(n)return!1;n=!e.isInSet(r.marks)&&!!o&&o.type.allowsMarkType(e)&&!(r.isText&&/^\s*$/.test(r.textBetween(Math.max(0,t.$from.pos-i),Math.min(r.nodeSize,t.$to.pos-i))))}),!n});for(let n=0;n{let r=function(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock("backward",e):n.parentOffset>0)?null:n}(e,n);if(!r)return!1;let i=Qi(r);if(!i){let n=r.blockRange(),i=n&&Ee(n);return null!=i&&(t&&t(e.tr.lift(n,i).scrollIntoView()),!0)}let o=i.nodeBefore;if(oo(e,i,t,-1))return!0;if(0==r.parent.content.size&&(Xi(o,"end")||ot.isSelectable(o)))for(let s=r.depth;;s--){let n=Be(e.doc,r.before(s),r.after(s),c.empty);if(n&&n.slice.size1)break}return!(!o.isAtom||i.depth!=r.depth-1)&&(t&&t(e.tr.delete(i.pos-o.nodeSize,i.pos).scrollIntoView()),!0)},(e,t,n)=>{let{$head:r,empty:i}=e.selection,o=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("backward",e):r.parentOffset>0)return!1;o=Qi(r)}let s=o&&o.nodeBefore;return!(!s||!ot.isSelectable(s))&&(t&&t(e.tr.setSelection(ot.create(e.doc,o.pos-s.nodeSize)).scrollIntoView()),!0)}),mo=uo(Zi,(e,t,n)=>{let r=function(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock("forward",e):n.parentOffset{let{$head:r,empty:i}=e.selection,o=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("forward",e):r.parentOffset{let{$head:n,$anchor:r}=e.selection;return!(!n.parent.type.spec.code||!n.sameParent(r))&&(t&&t(e.tr.insertText("\n").scrollIntoView()),!0)},(e,t)=>{let n=e.selection,{$from:r,$to:i}=n;if(n instanceof lt||r.parent.inlineContent||i.parent.inlineContent)return!1;let o=no(i.parent.contentMatchAt(i.indexAfter()));if(!o||!o.isTextblock)return!1;if(t){let n=(!r.parentOffset&&i.index(){let{$cursor:n}=e.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let r=n.before();if(ze(e.doc,r))return t&&t(e.tr.split(r).scrollIntoView()),!0}let r=n.blockRange(),i=r&&Ee(r);return null!=i&&(t&&t(e.tr.lift(r,i).scrollIntoView()),!0)},io),"Mod-Enter":ro,Backspace:fo,"Mod-Backspace":fo,"Shift-Backspace":fo,Delete:mo,"Mod-Delete":mo,"Mod-a":(e,t)=>(t&&t(e.tr.setSelection(new lt(e.doc))),!0)},yo={"Ctrl-h":go.Backspace,"Alt-Backspace":go["Mod-Backspace"],"Ctrl-d":go.Delete,"Ctrl-Alt-Backspace":go["Mod-Delete"],"Alt-Delete":go["Mod-Delete"],"Alt-d":go["Mod-Delete"],"Ctrl-a":lo,"Ctrl-e":ao};for(let os in go)yo[os]=go[os];const wo=("undefined"!=typeof navigator?/Mac|iP(hone|[oa]d)/.test(navigator.platform):!("undefined"==typeof os||!os.platform)&&"darwin"==os.platform())?yo:go;class vo{constructor(e,t,n={}){var r;this.match=e,this.match=e,this.handler="string"==typeof t?(r=t,function(e,t,n,i){let o=r;if(t[1]){let e=t[0].lastIndexOf(t[1]);o+=t[0].slice(e+t[1].length);let r=(n+=e)-i;r>0&&(o=t[0].slice(e-r,e)+o,n=i)}return e.tr.insertText(o,n,i)}):t,this.undoable=!1!==n.undoable,this.inCode=n.inCode||!1,this.inCodeMark=!1!==n.inCodeMark}}function xo({rules:e}){let t=new wt({state:{init:()=>null,apply(e,t){let n=e.getMeta(this);return n||(e.selectionSet||e.docChanged?null:t)}},props:{handleTextInput:(n,r,i,o)=>bo(n,r,i,o,e,t),handleDOMEvents:{compositionend:n=>{setTimeout(()=>{let{$cursor:r}=n.state.selection;r&&bo(n,r.pos,r.pos,"",e,t)})}}},isInputRules:!0});return t}function bo(e,t,n,r,i,o){if(e.composing)return!1;let s=e.state,l=s.doc.resolve(t),a=l.parent.textBetween(Math.max(0,l.parentOffset-500),l.parentOffset,null,"")+r;for(let h=0;he.type.spec.code))continue;if(l.parent.type.spec.code){if(!c.inCode)continue}else if("only"===c.inCode)continue;let d=c.match.exec(a);if(!d||d[0].length{t.isInline&&t.marks.some(e=>e.type.spec.code)&&(e=!0)}),e)continue}let u=c.handler(s,d,p,n);if(u)return c.undoable&&u.setMeta(o,{transform:u,from:t,to:n,text:r}),e.dispatch(u),!0}return!1}const So=(e,t)=>{let n=e.plugins;for(let r=0;r=0;e--)n.step(r.steps[e].invert(r.docs[e]));if(i.text){let t=n.doc.resolve(i.from).marks();n.replaceWith(i.from,i.to,e.schema.text(i.text,t))}else n.delete(i.from,i.to);t(n)}return!0}}return!1};function ko(e,t,n=null,r){return new vo(e,(e,i,o,s)=>{let l=n instanceof Function?n(i):n,a=e.tr.delete(o,s),h=a.doc.resolve(o).blockRange(),c=h&&Ae(h,t,l);if(!c)return null;a.wrap(h,c);let d=a.doc.resolve(o-1).nodeBefore;return d&&d.type==t&&Pe(a.doc,o-1)&&(!r||r(i,d))&&a.join(o-1),a})}function Mo(e,t,n=null){return new vo(e,(e,r,i,o)=>{let s=e.doc.resolve(i),l=n instanceof Function?n(r):n;return s.node(-1).canReplaceWith(s.index(-1),s.indexAfter(-1),t)?e.tr.delete(i,o).setBlockType(i,i,t,l):null})}new vo(/--$/,"—",{inCodeMark:!1}),new vo(/\.\.\.$/,"…",{inCodeMark:!1}),new vo(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(")$/,"“",{inCodeMark:!1}),new vo(/"$/,"”",{inCodeMark:!1}),new vo(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(')$/,"‘",{inCodeMark:!1}),new vo(/'$/,"’",{inCodeMark:!1});const Co=["ol",0],Oo=["ul",0],No=["li",0],Do={attrs:{order:{default:1,validate:"number"}},parseDOM:[{tag:"ol",getAttrs:e=>({order:e.hasAttribute("start")?+e.getAttribute("start"):1})}],toDOM:e=>1==e.attrs.order?Co:["ol",{start:e.attrs.order},0]},To={parseDOM:[{tag:"ul"}],toDOM:()=>Oo},Eo={parseDOM:[{tag:"li"}],toDOM:()=>No,defining:!0};function Ao(e,t){let n={};for(let r in e)n[r]=e[r];for(let r in t)n[r]=t[r];return n}function $o(e,t,n){return e.append({ordered_list:Ao(Do,{content:"list_item+",group:n}),bullet_list:Ao(To,{content:"list_item+",group:n}),list_item:Ao(Eo,{content:t})})}function Ro(e,t=null){return function(n,r){let{$from:o,$to:s}=n.selection,l=o.blockRange(s);if(!l)return!1;let a=r?n.tr:null;return!!function(e,t,n,r=null){let o=!1,s=t,l=t.$from.doc;if(t.depth>=2&&t.$from.node(t.depth-1).type.compatibleContent(n)&&0==t.startIndex){if(0==t.$from.index(t.depth-1))return!1;let e=l.resolve(t.start-2);s=new O(e,e,t.depth),t.endIndex=0;c--)s=i.from(n[c].type.create(n[c].attrs,s));e.step(new Oe(t.start-(r?2:0),t.end,t.start,t.end,new c(s,0,0),n.length,!0));let l=0;for(let i=0;i=o.depth-3;e--)t=i.from(o.node(e).copy(t));let l=o.indexAfter(-1){if(d>-1)return!1;e.isTextblock&&0==e.content.size&&(d=t+1)}),d>-1&&h.setSelection(Qe.near(h.doc.resolve(d))),r(h.scrollIntoView())}return!0}let h=s.pos==o.end()?a.contentMatchAt(0).defaultType:null,d=n.tr.delete(o.pos,s.pos),p=h?[t?{type:e,attrs:t}:null,{type:h}]:void 0;return!!ze(d.doc,o.pos,2,p)&&(r&&r(d.split(o.pos,2,p).scrollIntoView()),!0)}}function zo(e){return function(t,n){let{$from:r,$to:o}=t.selection,s=r.blockRange(o,t=>t.childCount>0&&t.firstChild.type==e);return!!s&&(!n||(r.node(s.depth-1).type==e?function(e,t,n,r){let o=e.tr,s=r.end,l=r.$to.end(r.depth);sm;c--)i-=o.child(c).nodeSize,r.delete(i-1,i+1);let s=r.doc.resolve(n.start),l=s.nodeAfter;if(r.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let a=0==n.startIndex,h=n.endIndex==o.childCount,d=s.node(-1),p=s.index(-1);if(!d.canReplace(p+(a?0:1),p+1,l.content.append(h?i.empty:i.from(o))))return!1;let u=s.pos,f=u+l.nodeSize;return r.step(new Oe(u-(a?1:0),f+(h?1:0),u+1,f-1,new c((a?i.empty:i.from(o.copy(i.empty))).append(h?i.empty:i.from(o.copy(i.empty))),a?0:1,h?0:1),a?0:1)),t(r.scrollIntoView()),!0}(t,n,s)))}}function Po(e){return function(t,n){let{$from:r,$to:o}=t.selection,s=r.blockRange(o,t=>t.childCount>0&&t.firstChild.type==e);if(!s)return!1;let l=s.startIndex;if(0==l)return!1;let a=s.parent,h=a.child(l-1);if(h.type!=e)return!1;if(n){let r=h.lastChild&&h.lastChild.type==a.type,o=i.from(r?e.create():null),l=new c(i.from(e.create(null,i.from(a.type.create(null,o)))),r?3:1,0),d=s.start,p=s.end;n(t.tr.step(new Oe(d-(r?3:1),p,d,p,l,1,!0)).scrollIntoView())}return!0}}var Bo=200,Vo=function(){};Vo.prototype.append=function(e){return e.length?(e=Vo.from(e),!this.length&&e||e.length=t?Vo.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},Vo.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},Vo.prototype.forEach=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=this.length),t<=n?this.forEachInner(e,t,n,0):this.forEachInvertedInner(e,t,n,0)},Vo.prototype.map=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=this.length);var r=[];return this.forEach(function(t,n){return r.push(e(t,n))},t,n),r},Vo.from=function(e){return e instanceof Vo?e:e&&e.length?new Fo(e):Vo.empty};var Fo=function(e){function t(t){e.call(this),this.values=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(e,n){return 0==e&&n==this.length?this:new t(this.values.slice(e,n))},t.prototype.getInner=function(e){return this.values[e]},t.prototype.forEachInner=function(e,t,n,r){for(var i=t;i=n;i--)if(!1===e(this.values[i],r+i))return!1},t.prototype.leafAppend=function(e){if(this.length+e.length<=Bo)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=Bo)return new t(e.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(t.prototype,n),t}(Vo);Vo.empty=new Fo([]);var Lo=function(e){function t(t,n){e.call(this),this.left=t,this.right=n,this.length=t.length+n.length,this.depth=Math.max(t.depth,n.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(e){return ei&&!1===this.right.forEachInner(e,Math.max(t-i,0),Math.min(this.length,n)-i,r+i))&&void 0)},t.prototype.forEachInvertedInner=function(e,t,n,r){var i=this.left.length;return!(t>i&&!1===this.right.forEachInvertedInner(e,t-i,Math.max(n,i)-i,r+i))&&(!(n=n?this.right.slice(e-n,t-n):this.left.slice(e,n).append(this.right.slice(0,t-n))},t.prototype.leafAppend=function(e){var n=this.right.leafAppend(e);if(n)return new t(this.left,n)},t.prototype.leafPrepend=function(e){var n=this.left.leafPrepend(e);if(n)return new t(n,this.right)},t.prototype.appendInner=function(e){return this.left.depth>=Math.max(this.right.depth,e.depth)+1?new t(this.left,new t(this.right,e)):new t(this,e)},t}(Vo);class Wo{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(0==this.eventCount)return null;let n,r,i=this.items.length;for(;;i--){if(this.items.get(i-1).selection){--i;break}}t&&(n=this.remapping(i,this.items.length),r=n.maps.length);let o,s,l=e.tr,a=[],h=[];return this.items.forEach((e,t)=>{if(!e.step)return n||(n=this.remapping(i,t+1),r=n.maps.length),r--,void h.push(e);if(n){h.push(new Jo(e.map));let t,i=e.step.map(n.slice(r));i&&l.maybeStep(i).doc&&(t=l.mapping.maps[l.mapping.maps.length-1],a.push(new Jo(t,void 0,void 0,a.length+h.length))),r--,t&&n.appendMap(t,r)}else l.maybeStep(e.step);return e.selection?(o=n?e.selection.map(n.slice(r)):e.selection,s=new Wo(this.items.slice(0,i).append(h.reverse().concat(a)),this.eventCount-1),!1):void 0},this.items.length,0),{remaining:s,transform:l,selection:o}}addTransform(e,t,n,r){let i=[],o=this.eventCount,s=this.items,l=!r&&s.length?s.get(s.length-1):null;for(let h=0;hjo&&(s=function(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&0==t--)return n=r,!1}),e.slice(n)}(s,a),o-=a),new Wo(s.append(i),o)}remapping(e,t){let n=new ge;return this.items.forEach((t,r)=>{let i=null!=t.mirrorOffset&&r-t.mirrorOffset>=e?n.maps.length-t.mirrorOffset:void 0;n.appendMap(t.map,i)},e,t),n}addMaps(e){return 0==this.eventCount?this:new Wo(this.items.append(e.map(e=>new Jo(e))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;let n=[],r=Math.max(0,this.items.length-t),i=e.mapping,o=e.steps.length,s=this.eventCount;this.items.forEach(e=>{e.selection&&s--},r);let l=t;this.items.forEach(t=>{let r=i.getMirror(--l);if(null==r)return;o=Math.min(o,r);let a=i.maps[r];if(t.step){let o=e.steps[r].invert(e.docs[r]),h=t.selection&&t.selection.map(i.slice(l+1,r));h&&s++,n.push(new Jo(a,o,h))}else n.push(new Jo(a))},r);let a=[];for(let d=t;d500&&(c=c.compress(this.items.length-n.length)),c}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.length,r=[],i=0;return this.items.forEach((o,s)=>{if(s>=e)r.push(o),o.selection&&i++;else if(o.step){let e=o.step.map(t.slice(n)),s=e&&e.getMap();if(n--,s&&t.appendMap(s,n),e){let l=o.selection&&o.selection.map(t.slice(n));l&&i++;let a,h=new Jo(s.invert(),e,l),c=r.length-1;(a=r.length&&r[c].merge(h))?r[c]=a:r.push(h)}}else o.map&&n--},this.items.length,0),new Wo(Vo.from(r.reverse()),i)}}Wo.empty=new Wo(Vo.empty,0);class Jo{constructor(e,t,n,r){this.map=e,this.step=t,this.selection=n,this.mirrorOffset=r}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new Jo(t.getMap().invert(),t,this.selection)}}}class qo{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}}const jo=20;function _o(e){let t=[];for(let n=e.length-1;n>=0&&0==t.length;n--)e[n].forEach((e,n,r,i)=>t.push(r,i));return t}function Ko(e,t){if(!e)return null;let n=[];for(let r=0;rnew qo(Wo.empty,Wo.empty,null,0,-1),apply:(t,n,r)=>function(e,t,n,r){let i,o=n.getMeta(Go);if(o)return o.historyState;n.getMeta(Zo)&&(e=new qo(e.done,e.undone,null,0,-1));let s=n.getMeta("appendedTransaction");if(0==n.steps.length)return e;if(s&&s.getMeta(Go))return s.getMeta(Go).redo?new qo(e.done.addTransform(n,void 0,r,Uo(t)),e.undone,_o(n.mapping.maps),e.prevTime,e.prevComposition):new qo(e.done,e.undone.addTransform(n,void 0,r,Uo(t)),null,e.prevTime,e.prevComposition);if(!1===n.getMeta("addToHistory")||s&&!1===s.getMeta("addToHistory"))return(i=n.getMeta("rebased"))?new qo(e.done.rebased(n,i),e.undone.rebased(n,i),Ko(e.prevRanges,n.mapping),e.prevTime,e.prevComposition):new qo(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),Ko(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);{let i=n.getMeta("composition"),o=0==e.prevTime||!s&&e.prevComposition!=i&&(e.prevTime<(n.time||0)-r.newGroupDelay||!function(e,t){if(!t)return!1;if(!e.docChanged)return!0;let n=!1;return e.mapping.maps[0].forEach((e,r)=>{for(let i=0;i=t[i]&&(n=!0)}),n}(n,e.prevRanges)),l=s?Ko(e.prevRanges,n.mapping):_o(n.mapping.maps);return new qo(e.done.addTransform(n,o?t.selection.getBookmark():void 0,r,Uo(t)),Wo.empty,l,n.time,null==i?e.prevComposition:i)}}(n,r,t,e)},config:e,props:{handleDOMEvents:{beforeinput(e,t){let n=t.inputType,r="historyUndo"==n?es:"historyRedo"==n?ts:null;return!(!r||!e.editable)&&(t.preventDefault(),r(e.state,e.dispatch))}}}})}function Qo(e,t){return(n,r)=>{let i=Go.getState(n);if(!i||0==(e?i.undone:i.done).eventCount)return!1;if(r){let o=function(e,t,n){let r=Uo(t),i=Go.get(t).spec.config,o=(n?e.undone:e.done).popEvent(t,r);if(!o)return null;let s=o.selection.resolve(o.transform.doc),l=(n?e.done:e.undone).addTransform(o.transform,t.selection.getBookmark(),i,r),a=new qo(n?l:o.remaining,n?o.remaining:l,null,0,-1);return o.transform.setSelection(s).setMeta(Go,{redo:n,historyState:a})}(i,n,e);o&&r(t?o.scrollIntoView():o)}return!0}}const es=Qo(!1,!0),ts=Qo(!0,!0);function ns(e){let t=Go.getState(e);return t?t.done.eventCount:0}function rs(e){let t=Go.getState(e);return t?t.undone.eventCount:0}function is(e){return(is="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ss(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t1&&void 0!==arguments[1]&&arguments[1],n=e.to,r=e.from;if(n&&(r||!1!==t)&&this.transports[n])if(t)this.transports[n]=[];else{var i=this.$_getTransportIndex(e);if(i>=0){var o=this.transports[n].slice(0);o.splice(i,1),this.transports[n]=o}}},registerTarget:function(e,t,n){ls&&(this.trackInstances&&!n&&this.targets[e]&&console.warn("[portal-vue]: Target ".concat(e," already exists")),this.$set(this.targets,e,Object.freeze([t])))},unregisterTarget:function(e){this.$delete(this.targets,e)},registerSource:function(e,t,n){ls&&(this.trackInstances&&!n&&this.sources[e]&&console.warn("[portal-vue]: source ".concat(e," already exists")),this.$set(this.sources,e,Object.freeze([t])))},unregisterSource:function(e){this.$delete(this.sources,e)},hasTarget:function(e){return!(!this.targets[e]||!this.targets[e][0])},hasSource:function(e){return!(!this.sources[e]||!this.sources[e][0])},hasContentFor:function(e){return!!this.transports[e]&&!!this.transports[e].length},$_getTransportIndex:function(e){var t=e.to,n=e.from;for(var r in this.transports[t])if(this.transports[t][r].from===n)return+r;return-1}}}),us=new ps(hs),fs=1,ms=e.extend({name:"portal",props:{disabled:{type:Boolean},name:{type:String,default:function(){return String(fs++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}}},created:function(){var e=this;this.$nextTick(function(){us.registerSource(e.name,e)})},mounted:function(){this.disabled||this.sendUpdate()},updated:function(){this.disabled?this.clear():this.sendUpdate()},beforeDestroy:function(){us.unregisterSource(this.name),this.clear()},watch:{to:function(e,t){t&&t!==e&&this.clear(t),this.sendUpdate()}},methods:{clear:function(e){var t={from:this.name,to:e||this.to};us.close(t)},normalizeSlots:function(){return this.$scopedSlots.default?[this.$scopedSlots.default]:this.$slots.default},normalizeOwnChildren:function(e){return"function"==typeof e?e(this.slotProps):e},sendUpdate:function(){var e=this.normalizeSlots();if(e){var t={from:this.name,to:this.to,passengers:ss(e),order:this.order};us.open(t)}else this.clear()}},render:function(e){var t=this.$slots.default||this.$scopedSlots.default||[],n=this.tag;return t&&this.disabled?t.length<=1&&this.slim?this.normalizeOwnChildren(t)[0]:e(n,[this.normalizeOwnChildren(t)]):this.slim?e():e(n,{class:{"v-portal":!0},style:{display:"none"},key:"v-portal-placeholder"})}}),gs=e.extend({name:"portalTarget",props:{multiple:{type:Boolean,default:!1},name:{type:String,required:!0},slim:{type:Boolean,default:!1},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},data:function(){return{transports:us.transports,firstRender:!0}},created:function(){var e=this;this.$nextTick(function(){us.registerTarget(e.name,e)})},watch:{ownTransports:function(){this.$emit("change",this.children().length>0)},name:function(e,t){us.unregisterTarget(t),us.registerTarget(e,this)}},mounted:function(){var e=this;this.transition&&this.$nextTick(function(){e.firstRender=!1})},beforeDestroy:function(){us.unregisterTarget(this.name)},computed:{ownTransports:function(){var e=this.transports[this.name]||[];return this.multiple?e:0===e.length?[]:[e[e.length-1]]},passengers:function(){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.reduce(function(e,n){var r=n.passengers[0],i="function"==typeof r?r(t):n.passengers;return e.concat(i)},[])}(this.ownTransports,this.slotProps)}},methods:{children:function(){return 0!==this.passengers.length?this.passengers:this.$scopedSlots.default?this.$scopedSlots.default(this.slotProps):this.$slots.default||[]},noWrapper:function(){var e=this.slim&&!this.transition;return e&&this.children().length>1&&console.warn("[portal-vue]: PortalTarget with `slim` option received more than one child element."),e}},render:function(e){var t=this.noWrapper(),n=this.children(),r=this.transition||this.tag;return t?n[0]:this.slim&&!r?e():e(r,{props:{tag:this.transition&&this.tag?this.tag:void 0},class:{"vue-portal-target":!0}},n)}}),ys=0,ws=["disabled","name","order","slim","slotProps","tag","to"],vs=["multiple","transition"],xs=e.extend({name:"MountingPortal",inheritAttrs:!1,props:{append:{type:[Boolean,String]},bail:{type:Boolean},mountTo:{type:String,required:!0},disabled:{type:Boolean},name:{type:String,default:function(){return"mounted_"+String(ys++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}},multiple:{type:Boolean,default:!1},targetSlim:{type:Boolean},targetSlotProps:{type:Object,default:function(){return{}}},targetTag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},created:function(){if("undefined"!=typeof document){var e=document.querySelector(this.mountTo);if(e){var t=this.$props;if(us.targets[t.name])t.bail?console.warn("[portal-vue]: Target ".concat(t.name," is already mounted.\n Aborting because 'bail: true' is set")):this.portalTarget=us.targets[t.name];else{var n=t.append;if(n){var r="string"==typeof n?n:"DIV",i=document.createElement(r);e.appendChild(i),e=i}var o=as(this.$props,vs);o.slim=this.targetSlim,o.tag=this.targetTag,o.slotProps=this.targetSlotProps,o.name=this.to,this.portalTarget=new gs({el:e,parent:this.$parent||this,propsData:o})}}else console.error("[portal-vue]: Mount Point '".concat(this.mountTo,"' not found in document"))}},beforeDestroy:function(){var e=this.portalTarget;if(this.append){var t=e.$el;t.parentNode.removeChild(t)}e.$destroy()},render:function(e){if(!this.portalTarget)return console.warn("[portal-vue] Target wasn't mounted"),e();if(!this.$scopedSlots.manual){var t=as(this.$props,ws);return e(ms,{props:t,attrs:this.$attrs,on:this.$listeners,scopedSlots:this.$scopedSlots},this.$slots.default)}var n=this.$scopedSlots.manual({to:this.to});return Array.isArray(n)&&(n=n[0]),n||e()}});var bs={install:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.component(t.portalName||"Portal",ms),e.component(t.portalTargetName||"PortalTarget",gs),e.component(t.MountingPortalName||"MountingPortal",xs)}},Ss=new Map;function ks(e){var t=Ss.get(e);t&&t.destroy()}function Ms(e){var t=Ss.get(e);t&&t.update()}var Cs=null;"undefined"==typeof window?((Cs=function(e){return e}).destroy=function(e){return e},Cs.update=function(e){return e}):((Cs=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return function(e){if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!Ss.has(e)){var t,n=null,r=window.getComputedStyle(e),i=(t=e.value,function(){s({testForHeightReduction:""===t||!e.value.startsWith(t),restoreTextAlign:null}),t=e.value}),o=function(t){e.removeEventListener("autosize:destroy",o),e.removeEventListener("autosize:update",l),e.removeEventListener("input",i),window.removeEventListener("resize",l),Object.keys(t).forEach(function(n){return e.style[n]=t[n]}),Ss.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,textAlign:e.style.textAlign,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",o),e.addEventListener("autosize:update",l),e.addEventListener("input",i),window.addEventListener("resize",l),e.style.overflowX="hidden",e.style.wordWrap="break-word",Ss.set(e,{destroy:o,update:l}),l()}function s(t){var i,o,l=t.restoreTextAlign,a=void 0===l?null:l,h=t.testForHeightReduction,c=void 0===h||h,d=r.overflowY;if(0!==e.scrollHeight&&("vertical"===r.resize?e.style.resize="none":"both"===r.resize&&(e.style.resize="horizontal"),c&&(i=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push([e.parentNode,e.parentNode.scrollTop]),e=e.parentNode;return function(){return t.forEach(function(e){var t=e[0],n=e[1];t.style.scrollBehavior="auto",t.scrollTop=n,t.style.scrollBehavior=null})}}(e),e.style.height=""),o="content-box"===r.boxSizing?e.scrollHeight-(parseFloat(r.paddingTop)+parseFloat(r.paddingBottom)):e.scrollHeight+parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),"none"!==r.maxHeight&&o>parseFloat(r.maxHeight)?("hidden"===r.overflowY&&(e.style.overflow="scroll"),o=parseFloat(r.maxHeight)):"hidden"!==r.overflowY&&(e.style.overflow="hidden"),e.style.height=o+"px",a&&(e.style.textAlign=a),i&&i(),n!==o&&(e.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),n=o),d!==r.overflow&&!a)){var p=r.textAlign;"hidden"===r.overflow&&(e.style.textAlign="start"===p?"end":"start"),s({restoreTextAlign:p,testForHeightReduction:!0})}}function l(){s({testForHeightReduction:!0,restoreTextAlign:null})}}(e)}),e}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],ks),e},Cs.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],Ms),e});var Os=Cs;function Ns(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ds,Ts={exports:{}};var Es=(Ds||(Ds=1,Ts.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",i="second",o="minute",s="hour",l="day",a="week",h="month",c="quarter",d="year",p="date",u="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},y=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},w={s:y,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?"+":"-")+y(r,2,"0")+":"+y(i,2,"0")},m:function e(t,n){if(t.date()1)return e(s[0])}else{var l=t.name;x[l]=t,i=l}return!r&&i&&(v=i),i||!r&&v},M=function(e,t){if(S(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new O(n)},C=w;C.l=k,C.i=S,C.w=function(e,t){return M(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var O=function(){function g(e){this.$L=k(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[b]=!0}var y=g.prototype;return y.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(C.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(f);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(t)}(e),this.init()},y.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},y.$utils=function(){return C},y.isValid=function(){return!(this.$d.toString()===u)},y.isSame=function(e,t){var n=M(e);return this.startOf(t)<=n&&n<=this.endOf(t)},y.isAfter=function(e,t){return M(e)68?1900:2e3)},a=function(e){return function(t){this[e]=+t}},h=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],c=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?"pm":"PM");return n},p={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[i,a("seconds")],ss:[i,a("seconds")],m:[i,a("minutes")],mm:[i,a("minutes")],H:[i,a("hours")],h:[i,a("hours")],HH:[i,a("hours")],hh:[i,a("hours")],D:[i,a("day")],DD:[r,a("day")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],w:[i,a("week")],ww:[r,a("week")],M:[i,a("month")],MM:[r,a("month")],MMM:[o,function(e){var t=c("months"),n=(c("monthsShort")||t.map(function(e){return e.slice(0,3)})).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=c("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,a("year")],YY:[r,function(e){this.year=l(e)}],YYYY:[/\d{4}/,a("year")],Z:h,ZZ:h};function u(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(e,t,n){return t||n.slice(1)})})).match(t),l=o.length,a=0;a-1)return new Date(("X"===t?1e3:1)*e);var i=u(t)(e),o=i.year,s=i.month,l=i.day,a=i.hours,h=i.minutes,c=i.seconds,d=i.milliseconds,p=i.zone,f=i.week,m=new Date,g=l||(o||s?1:m.getDate()),y=o||m.getFullYear(),w=0;o&&!s||(w=s>0?s-1:m.getMonth());var v,x=a||0,b=h||0,S=c||0,k=d||0;return p?new Date(Date.UTC(y,w,g,x,b,S,k+60*p.offset*1e3)):n?new Date(Date.UTC(y,w,g,x,b,S,k)):(v=new Date(y,w,g,x,b,S,k),f&&(v=r(v).week(f).toDate()),v)}catch(M){return new Date("")}}(t,l,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),c&&t!=this.format(l)&&(this.$d=new Date("")),s={}}else if(l instanceof Array)for(var p=l.length,f=1;f<=p;f+=1){o[1]=l[f-1];var m=n.apply(this,o);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}f===p&&(this.$d=new Date(""))}else i.call(this,e)}}}()),Rs.exports);const zs=Ns(Is);function Ps(e){return{all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(e){e(n)}),(r=e.get("*"))&&r.slice().map(function(e){e(t,n)})}}}export{As as A,zs as B,Os as C,U as D,gt as E,i as F,Ps as G,vo as I,ot as N,wt as P,c as S,rt as T,to as a,ho as b,Po as c,Io as d,$o as e,ko as f,po as g,ro as h,uo as i,H as j,Ui as k,zo as l,xo as m,Ri as n,oe as o,wo as p,ns as q,rs as r,co as s,Mo as t,So as u,ts as v,Ro as w,es as x,Xo as y,bs as z}; +import e from"vue";function t(e){this.content=e}function n(e,t,r){for(let i=0;;i++){if(i==e.childCount||i==t.childCount)return e.childCount==t.childCount?null:r;let o=e.child(i),s=t.child(i);if(o!=s){if(!o.sameMarkup(s))return r;if(o.isText&&o.text!=s.text){for(let e=0;o.text[e]==s.text[e];e++)r++;return r}if(o.content.size||s.content.size){let e=n(o.content,s.content,r+1);if(null!=e)return e}r+=o.nodeSize}else r+=o.nodeSize}}function r(e,t,n,i){for(let o=e.childCount,s=t.childCount;;){if(0==o||0==s)return o==s?null:{a:n,b:i};let l=e.child(--o),a=t.child(--s),h=l.nodeSize;if(l!=a){if(!l.sameMarkup(a))return{a:n,b:i};if(l.isText&&l.text!=a.text){let e=0,t=Math.min(l.text.length,a.text.length);for(;e>1}},t.from=function(e){if(e instanceof t)return e;var n=[];if(e)for(var r in e)n.push(r,e[r]);return new t(n)};class i{constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;ne&&!1!==n(l,r+s,i||null,o)&&l.content.size){let i=s+1;l.nodesBetween(Math.max(0,e-i),Math.min(l.content.size,t-i),n,r+i)}s=a}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i="",o=!0;return this.nodesBetween(e,t,(s,l)=>{let a=s.isText?s.text.slice(Math.max(e,l)-l,t-l):s.isLeaf?r?"function"==typeof r?r(s):r:s.type.spec.leafText?s.type.spec.leafText(s):"":"";s.isBlock&&(s.isLeaf&&a||s.isTextblock)&&n&&(o?o=!1:i+=n),i+=a},0),i}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,n=e.firstChild,r=this.content.slice(),o=0;for(t.isText&&t.sameMarkup(n)&&(r[r.length-1]=t.withText(t.text+n.text),o=1);oe)for(let i=0,o=0;oe&&((ot)&&(s=s.isText?s.cut(Math.max(0,e-o),Math.min(s.text.length,t-o)):s.cut(Math.max(0,e-o-1),Math.min(s.content.size,t-o-1))),n.push(s),r+=s.nodeSize),o=l}return new i(n,r)}cutByIndex(e,t){return e==t?i.empty:0==e&&t==this.content.length?this:new i(this.content.slice(e,t))}replaceChild(e,t){let n=this.content[e];if(n==t)return this;let r=this.content.slice(),o=this.size+t.nodeSize-n.nodeSize;return r[e]=t,new i(r,o)}addToStart(e){return new i([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new i(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=n+this.child(t).nodeSize;if(r>=e)return r==e?s(t+1,r):s(t,n);n=r}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return i.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new i(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return i.empty;let t,n=0;for(let r=0;rthis.type.rank&&(t||(t=e.slice(0,r)),t.push(this),n=!0),t&&t.push(i)}}return t||(t=e.slice()),n||t.push(this),t}removeFromSet(e){for(let t=0;te.type.rank-t.type.rank),t}}a.none=[];class h extends Error{}class c{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let n=p(this.content,e+this.openStart,t);return n&&new c(n,this.openStart,this.openEnd)}removeBetween(e,t){return new c(d(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return c.empty;let n=t.openStart||0,r=t.openEnd||0;if("number"!=typeof n||"number"!=typeof r)throw new RangeError("Invalid input for Slice.fromJSON");return new c(i.fromJSON(e,t.content),n,r)}static maxOpen(e,t=!0){let n=0,r=0;for(let i=e.firstChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.firstChild)n++;for(let i=e.lastChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.lastChild)r++;return new c(e,n,r)}}function d(e,t,n){let{index:r,offset:i}=e.findIndex(t),o=e.maybeChild(r),{index:s,offset:l}=e.findIndex(n);if(i==t||o.isText){if(l!=n&&!e.child(s).isText)throw new RangeError("Removing non-flat range");return e.cut(0,t).append(e.cut(n))}if(r!=s)throw new RangeError("Removing non-flat range");return e.replaceChild(r,o.copy(d(o.content,t-i-1,n-i-1)))}function p(e,t,n,r){let{index:i,offset:o}=e.findIndex(t),s=e.maybeChild(i);if(o==t||s.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=p(s.content,t-o-1,n,s);return l&&e.replaceChild(i,s.copy(l))}function u(e,t,n){if(n.openStart>e.depth)throw new h("Inserted content deeper than insertion position");if(e.depth-n.openStart!=t.depth-n.openEnd)throw new h("Inconsistent open depths");return f(e,t,n,0)}function f(e,t,n,r){let o=e.index(r),s=e.node(r);if(o==t.index(r)&&r=0;o--)r=t.node(o).copy(i.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}(n,e);return v(s,x(e,o,l,t,r))}{let r=e.parent,i=r.content;return v(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}}return v(s,b(e,t,r))}function m(e,t){if(!t.type.compatibleContent(e.type))throw new h("Cannot join "+t.type.name+" onto "+e.type.name)}function g(e,t,n){let r=e.node(n);return m(r,t.node(n)),r}function y(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function w(e,t,n,r){let i=(t||e).node(n),o=0,s=t?t.index(n):i.childCount;e&&(o=e.index(n),e.depth>n?o++:e.textOffset&&(y(e.nodeAfter,r),o++));for(let l=o;lo&&g(e,t,o+1),l=r.depth>o&&g(n,r,o+1),a=[];return w(null,e,o,a),s&&l&&t.index(o)==n.index(o)?(m(s,l),y(v(s,x(e,t,n,r,o+1)),a)):(s&&y(v(s,b(e,t,o+1)),a),w(t,n,o,a),l&&y(v(l,b(n,r,o+1)),a)),w(r,null,o,a),new i(a)}function b(e,t,n){let r=[];if(w(null,e,n,r),e.depth>n){y(v(g(e,t,n+1),b(e,t,n+1)),r)}return w(t,null,n,r),new i(r)}c.empty=new c(i.empty,0,0);class S{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return null==e?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[3*this.resolveDepth(e)]}index(e){return this.path[3*this.resolveDepth(e)+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e!=this.depth||this.textOffset?1:0)}start(e){return 0==(e=this.resolveDepth(e))?0:this.path[3*e-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(!(e=this.resolveDepth(e)))throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[3*e-1]}after(e){if(!(e=this.resolveDepth(e)))throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[3*e-1]+this.path[3*e].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):0==e?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[3*t],r=0==t?0:this.path[3*t-1]+1;for(let i=0;i0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new O(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let n=[],r=0,i=t;for(let o=e;;){let{index:e,offset:t}=o.content.findIndex(i),s=i-t;if(n.push(o,e,r+t),!s)break;if(o=o.child(e),o.isText)break;i=s-1,r+=t+1}return new S(t,n,i)}static resolveCached(e,t){let n=C.get(e);if(n)for(let i=0;ie&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),E(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,n=i.empty,r=0,o=n.childCount){let s=this.contentMatchAt(e).matchFragment(n,r,o),l=s&&s.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let i=r;ie.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let n;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");n=t.marks.map(e.markFromJSON)}if("text"==t.type){if("string"!=typeof t.text)throw new RangeError("Invalid text node in JSON");return e.text(t.text,n)}let r=i.fromJSON(e,t.content),o=e.nodeType(t.type).create(t.attrs,r,n);return o.type.checkAttrs(o.attrs),o}}T.prototype.text=void 0;class D extends T{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw new RangeError("Empty text nodes are not allowed");this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):E(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new D(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new D(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return 0==e&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function E(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+"("+t+")";return t}class A{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let n=new $(e,t);if(null==n.next)return A.empty;let r=R(n);n.next&&n.err("Unexpected trailing text");let i=function(e){let t=Object.create(null);return n(F(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e{r||i.push([t,r=[]]),-1==r.indexOf(e)&&r.push(e)})})});let o=t[r.join(",")]=new A(r.indexOf(e.length-1)>-1);for(let e=0;ee.to=t)}function o(e,t){if("choice"==e.type)return e.exprs.reduce((e,n)=>e.concat(o(n,t)),[]);if("seq"!=e.type){if("star"==e.type){let s=n();return r(t,s),i(o(e.expr,s),s),[r(s)]}if("plus"==e.type){let s=n();return i(o(e.expr,t),s),i(o(e.expr,s),s),[r(s)]}if("opt"==e.type)return[r(t)].concat(o(e.expr,t));if("range"==e.type){let s=t;for(let t=0;te.createAndFill()));for(let e=0;e=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];return function t(n){e.push(n);for(let r=0;r{let r=n+(t.validEnd?"*":" ")+" ";for(let i=0;i"+e.indexOf(t.next[i].next);return r}).join("\n")}}A.empty=new A(!0);class ${constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),""==this.tokens[this.tokens.length-1]&&this.tokens.pop(),""==this.tokens[0]&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function R(e){let t=[];do{t.push(I(e))}while(e.eat("|"));return 1==t.length?t[0]:{type:"choice",exprs:t}}function I(e){let t=[];do{t.push(z(e))}while(e.next&&")"!=e.next&&"|"!=e.next);return 1==t.length?t[0]:{type:"seq",exprs:t}}function z(e){let t=function(e){if(e.eat("(")){let t=R(e);return e.eat(")")||e.err("Missing closing paren"),t}if(!/\W/.test(e.next)){let t=function(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let o in n){let e=n[o];e.isInGroup(t)&&i.push(e)}0==i.length&&e.err("No node type or group '"+t+"' found");return i}(e,e.next).map(t=>(null==e.inline?e.inline=t.isInline:e.inline!=t.isInline&&e.err("Mixing inline and block content"),{type:"name",value:t}));return e.pos++,1==t.length?t[0]:{type:"choice",exprs:t}}e.err("Unexpected token '"+e.next+"'")}(e);for(;;)if(e.eat("+"))t={type:"plus",expr:t};else if(e.eat("*"))t={type:"star",expr:t};else if(e.eat("?"))t={type:"opt",expr:t};else{if(!e.eat("{"))break;t=B(e,t)}return t}function P(e){/\D/.test(e.next)&&e.err("Expected number, got '"+e.next+"'");let t=Number(e.next);return e.pos++,t}function B(e,t){let n=P(e),r=n;return e.eat(",")&&(r="}"!=e.next?P(e):-1),e.eat("}")||e.err("Unclosed braced range"),{type:"range",min:n,max:r,expr:t}}function V(e,t){return t-e}function F(e,t){let n=[];return function t(r){let i=e[r];if(1==i.length&&!i[0].term)return t(i[0].to);n.push(r);for(let e=0;e-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:W(this.attrs,e)}create(e=null,t,n){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new T(this,this.computeAttrs(e),i.from(t),a.setFrom(n))}createChecked(e=null,t,n){return t=i.from(t),this.checkContent(t),new T(this,this.computeAttrs(e),t,a.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),(t=i.from(t)).size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),o=r&&r.fillBefore(i.empty,!0);return o?new T(this,e,t.append(o),a.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let n=0;n-1}allowsMarks(e){if(null==this.markSet)return!0;for(let t=0;tr[t]=new e(t,n,i));let i=n.spec.topNode||"doc";if(!r[i])throw new RangeError("Schema is missing its top node type ('"+i+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let e in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};class _{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,"default"),this.default=n.default,this.validate="string"==typeof n.validate?function(e,t,n){let r=n.split("|");return n=>{let i=null===n?"null":typeof n;if(r.indexOf(i)<0)throw new RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}}class K{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=q(e,r.attrs),this.excluded=null;let i=L(this.attrs);this.instance=i?new a(this,i):null}create(e=null){return!e&&this.instance?this.instance:new a(this,W(this.attrs,e))}static compile(e,t){let n=Object.create(null),r=0;return e.forEach((e,i)=>n[e]=new K(e,r++,t,i)),n}removeFromSet(e){for(var t=0;t-1}}class H{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let n=this.spec={};for(let t in e)n[t]=e[t];n.nodes=t.from(e.nodes),n.marks=t.from(e.marks||{}),this.nodes=j.compile(this.spec.nodes,this),this.marks=K.compile(this.spec.marks,this);let r=Object.create(null);for(let t in this.nodes){if(t in this.marks)throw new RangeError(t+" can not be both a node and a mark");let e=this.nodes[t],n=e.spec.content||"",i=e.spec.marks;if(e.contentMatch=r[n]||(r[n]=A.parse(n,this.nodes)),e.inlineContent=e.contentMatch.inlineContent,e.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!e.isInline||!e.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=e}e.markSet="_"==i?null:i?Y(this,i.split(" ")):""!=i&&e.inlineContent?null:[]}for(let t in this.marks){let e=this.marks[t],n=e.spec.excludes;e.excluded=null==n?[e]:""==n?[]:Y(this,n.split(" "))}this.nodeFromJSON=e=>T.fromJSON(this,e),this.markFromJSON=e=>a.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if("string"==typeof e)e=this.nodeType(e);else{if(!(e instanceof j))throw new RangeError("Invalid node type: "+e);if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new D(n,n.defaultAttrs,e,a.setFrom(t))}mark(e,t){return"string"==typeof e&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError("Unknown node type: "+e);return t}}function Y(e,t){let n=[];for(let r=0;r-1)&&n.push(s=r)}if(!s)throw new SyntaxError("Unknown mark type: '"+t[r]+"'")}return n}class U{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(function(e){return null!=e.tag}(e))this.tags.push(e);else if(function(e){return null!=e.style}(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new te(this,t,!1);return n.addAll(e,a.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new te(this,t,!0);return n.addAll(e,a.none,t.from,t.to),c.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;re.length&&(61!=o.charCodeAt(e.length)||o.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(!1===e)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=null==e.priority?50:e.priority,r=0;for(;r{n(e=re(e)),e.mark||e.ignore||e.clearMark||(e.mark=r)})}for(let r in e.nodes){let t=e.nodes[r].spec.parseDOM;t&&t.forEach(e=>{n(e=re(e)),e.node||e.ignore||e.mark||(e.node=r)})}return t}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new U(e,U.schemaRules(e)))}}const G={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},Z={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},X={ol:!0,ul:!0};function Q(e,t,n){return null!=t?(t?1:0)|("full"===t?2:0):e&&"pre"==e.whitespace?3:-5&n}class ee{constructor(e,t,n,r,i,o){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=o,this.content=[],this.activeMarks=a.none,this.match=i||(4&o?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(i.from(e));if(!t){let t,n=this.type.contentMatch;return(t=n.findWrapping(e.type))?(this.match=n,t):null}this.match=this.type.contentMatch.matchFragment(t)}return this.match.findWrapping(e.type)}finish(e){if(!(1&this.options)){let e,t=this.content[this.content.length-1];if(t&&t.isText&&(e=/[ \t\r\n\u000c]+$/.exec(t.text))){let n=t;t.text.length==e[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-e[0].length))}}let t=i.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(i.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!G.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class te{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r,i=t.topNode,o=Q(null,t.preserveWhitespace,0)|(n?4:0);r=i?new ee(i.type,i.attrs,a.none,!0,t.topMatch||i.type.contentMatch,o):new ee(n?null:e.schema.topNodeType,null,a.none,!0,null,o),this.nodes=[r],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){3==e.nodeType?this.addTextNode(e,t):1==e.nodeType&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=2&r.options?"full":this.localPreserveWS||(1&r.options)>0,{schema:o}=this.parser;if("full"===i||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(i)if("full"===i)n=n.replace(/\r\n?/g,"\n");else if(o.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(o.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n!r.clearMark(e)):t.concat(this.parser.schema.marks[r.mark].create(r.attrs)),!1!==r.consuming)break;n=r}}return t}addElementByRule(e,t,n,r){let i,o;if(t.node)if(o=this.parser.schema.nodes[t.node],o.isLeaf)this.insertNode(o.create(t.attrs),n,"BR"==e.nodeName)||this.leafFallback(e,n);else{let e=this.enter(o,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let s=this.top;if(o&&o.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;"string"==typeof t.contentElement?r=e.querySelector(t.contentElement):"function"==typeof t.contentElement?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(s)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let o=n?e.childNodes[n]:e.firstChild,s=null==r?null:e.childNodes[r];o!=s;o=o.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(o,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let o=this.open,s=0;o>=0;o--){let t=this.nodes[o],l=t.findWrapping(e);if(l&&(!r||r.length>l.length+s)&&(r=l,i=t,!l.length))break;if(t.solid){if(n)break;s+=2}}if(!r)return null;this.sync(i);for(let o=0;o!(o.type?o.type.allowsMarkType(t.type):ie(t.type,e))||(l=t.addToSet(l),!1)),this.nodes.push(new ee(e,t,l,r,null,s)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!(!this.isOpen&&!this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--){if(this.nodes[t]==e)return this.open=t,!0;this.localPreserveWS&&(this.nodes[t].options|=1)}return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split("/"),n=this.options.context,r=!(this.isOpen||n&&n.parent.type!=this.nodes[0].type),i=-(n?n.depth+1:0)+(r?0:1),o=(e,s)=>{for(;e>=0;e--){let l=t[e];if(""==l){if(e==t.length-1||0==e)continue;for(;s>=i;s--)if(o(e-1,s))return!0;return!1}{let e=s>0||0==s&&r?this.nodes[s].type:n&&s>=i?n.node(s-i).type:null;if(!e||e.name!=l&&!e.isInGroup(l))return!1;s--}}return!0};return o(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let t in this.parser.schema.nodes){let e=this.parser.schema.nodes[t];if(e.isTextblock&&e.defaultAttrs)return e}}}function ne(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function re(e){let t={};for(let n in e)t[n]=e[n];return t}function ie(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let o=[],s=e=>{o.push(e);for(let n=0;n{if(i.length||e.marks.length){let n=0,o=0;for(;n=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&ce(le(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return ce(e,t,n,r)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new oe(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let t=se(e.nodes);return t.text||(t.text=e=>e.text),t}static marksFromSchema(e){return se(e.marks)}}function se(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function le(e){return e.document||window.document}const ae=new WeakMap;function he(e){let t=ae.get(e);return void 0===t&&ae.set(e,t=function(e){let t=null;function n(e){if(e&&"object"==typeof e)if(Array.isArray(e))if("string"==typeof e[0])t||(t=[]),t.push(e);else for(let t=0;t-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let s,l=o.indexOf(" ");l>0&&(n=o.slice(0,l),o=o.slice(l+1));let a=n?e.createElementNS(n,o):e.createElement(o),h=t[1],c=1;if(h&&"object"==typeof h&&null==h.nodeType&&!Array.isArray(h)){c=2;for(let e in h)if(null!=h[e]){let t=e.indexOf(" ");t>0?a.setAttributeNS(e.slice(0,t),e.slice(t+1),h[e]):"style"==e&&a.style?a.style.cssText=h[e]:a.setAttribute(e,h[e])}}for(let d=c;dc)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}{let{dom:t,contentDOM:o}=ce(e,i,n,r);if(a.appendChild(t),o){if(s)throw new RangeError("Multiple content holes");s=o}}}return{dom:a,contentDOM:s}}const de=Math.pow(2,16);function pe(e,t){return e+t*de}function ue(e){return 65535&e}class fe{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(8&this.delInfo)>0}get deletedBefore(){return(5&this.delInfo)>0}get deletedAfter(){return(6&this.delInfo)>0}get deletedAcross(){return(4&this.delInfo)>0}}class me{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&me.empty)return me.empty}recover(e){let t=0,n=ue(e);if(!this.inverted)for(let r=0;re)break;let a=this.ranges[s+i],h=this.ranges[s+o],c=l+a;if(e<=c){let i=l+r+((a?e==l?-1:e==c?1:t:t)<0?0:h);if(n)return i;let o=e==(t<0?l:c)?null:pe(s/3,e-l),d=e==l?2:e==c?1:4;return(t<0?e!=l:e!=c)&&(d|=8),new fe(i,d,o)}r+=h-a}return n?e+r:new fe(e+r,0,null)}touches(e,t){let n=0,r=ue(t),i=this.inverted?2:1,o=this.inverted?1:2;for(let s=0;se)break;let l=this.ranges[s+i];if(e<=t+l&&s==3*r)return!0;n+=this.ranges[s+o]-l}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r=0;t--){let r=e.getMirror(t);this.appendMap(e.maps[t].invert(),null!=r&&r>t?n-r-1:void 0)}}invert(){let e=new ge;return e.appendMappingInverted(this),e}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;ni&&te.isAtom&&t.type.allowsMarkType(this.mark.type)?e.mark(this.mark.addToSet(e.marks)):e,r),t.openStart,t.openEnd);return ve.fromReplace(e,this.from,this.to,i)}invert(){return new Se(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return t.deleted&&n.deleted||t.pos>=n.pos?null:new be(t.pos,n.pos,this.mark)}merge(e){return e instanceof be&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new be(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to)throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new be(t.from,t.to,e.markFromJSON(t.mark))}}we.jsonID("addMark",be);class Se extends we{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new c(xe(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return ve.fromReplace(e,this.from,this.to,n)}invert(){return new be(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return t.deleted&&n.deleted||t.pos>=n.pos?null:new Se(t.pos,n.pos,this.mark)}merge(e){return e instanceof Se&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Se(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to)throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new Se(t.from,t.to,e.markFromJSON(t.mark))}}we.jsonID("removeMark",Se);class ke extends we{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return ve.fail("No node at mark step's position");let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return ve.fromReplace(e,this.pos,this.pos+1,new c(i.from(n),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);if(t){let e=this.mark.addToSet(t.marks);if(e.length==t.marks.length){for(let n=0;nn.pos?null:new Oe(t.pos,n.pos,r,i,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to||"number"!=typeof t.gapFrom||"number"!=typeof t.gapTo||"number"!=typeof t.insert)throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new Oe(t.from,t.to,t.gapFrom,t.gapTo,c.fromJSON(e,t.slice),t.insert,!!t.structure)}}function Ne(e,t,n){let r=e.resolve(t),i=n-t,o=r.depth;for(;i>0&&o>0&&r.indexAfter(o)==r.node(o).childCount;)o--,i--;if(i>0){let e=r.node(o).maybeChild(r.indexAfter(o));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function Te(e,t,n,r=n.contentMatch,o=!0){let s=e.doc.nodeAt(t),l=[],a=t+1;for(let h=0;h=0;i--)e.step(l[i])}function De(e,t,n){return(0==t||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function Ee(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth;;--n){let r=e.$from.node(n),i=e.$from.index(n),o=e.$to.indexAfter(n);if(n{if(i.isText){let s,l=/\r?\n|\r/g;for(;s=l.exec(i.text);){let i=e.mapping.slice(r).map(n+1+o+s.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function Ie(e,t,n,r){t.forEach((i,o)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+o);e.replaceWith(i,i+1,t.type.schema.text("\n"))}})}function ze(e,t,n=1,r){let i=e.resolve(t),o=i.depth-n,s=r&&r[r.length-1]||i.parent;if(o<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!s.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let h=i.depth-1,c=n-2;h>o;h--,c--){let e=i.node(h),t=i.index(h);if(e.type.spec.isolating)return!1;let n=e.content.cutByIndex(t,e.childCount),o=r&&r[c+1];o&&(n=n.replaceChild(0,o.type.create(o.attrs)));let s=r&&r[c]||e;if(!e.canReplace(t+1,e.childCount)||!s.type.validContent(n))return!1}let l=i.indexAfter(o),a=r&&r[0];return i.node(o).canReplaceWith(l,l,a?a.type:i.node(o+1).type)}function Pe(e,t){let n=e.resolve(t),r=n.index();return i=n.nodeBefore,o=n.nodeAfter,!(!i||!o||i.isLeaf||!function(e,t){t.content.size||e.type.compatibleContent(t.type);let n=e.contentMatchAt(e.childCount),{linebreakReplacement:r}=e.type.schema;for(let i=0;i0;r--)this.placed=i.from(e.node(r).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let e=this.findFittable();e?this.placeNodes(e):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),t=this.placed.size-this.depth-this.$from.depth,n=this.$from,r=this.close(e<0?this.$to:n.doc.resolve(e));if(!r)return null;let i=this.placed,o=n.depth,s=r.depth;for(;o&&s&&1==i.childCount;)i=i.firstChild.content,o--,s--;let l=new c(i,o,s);return e>-1?new Oe(n.pos,e,this.$to.pos,this.$to.end(),l,t):l.size||n.pos!=this.$to.pos?new Ce(n.pos,r.pos,l):null}findFittable(){let e=this.unplaced.openStart;for(let t=this.unplaced.content,n=0,r=this.unplaced.openEnd;n1&&(r=0),i.type.spec.isolating&&r<=n){e=n;break}t=i.content}for(let t=1;t<=2;t++)for(let n=1==t?e:this.unplaced.openStart;n>=0;n--){let e,r=null;n?(r=Je(this.unplaced.content,n-1).firstChild,e=r.content):e=this.unplaced.content;let o=e.firstChild;for(let s=this.depth;s>=0;s--){let e,{type:l,match:a}=this.frontier[s],h=null;if(1==t&&(o?a.matchType(o.type)||(h=a.fillBefore(i.from(o),!1)):r&&l.compatibleContent(r.type)))return{sliceDepth:n,frontierDepth:s,parent:r,inject:h};if(2==t&&o&&(e=a.findWrapping(o.type)))return{sliceDepth:n,frontierDepth:s,parent:r,wrap:e};if(r&&a.matchType(r.type))break}}}openMore(){let{content:e,openStart:t,openEnd:n}=this.unplaced,r=Je(e,t);return!(!r.childCount||r.firstChild.isLeaf)&&(this.unplaced=new c(e,t+1,Math.max(n,r.size+t>=e.size-n?t+1:0)),!0)}dropNode(){let{content:e,openStart:t,openEnd:n}=this.unplaced,r=Je(e,t);if(r.childCount<=1&&t>0){let i=e.size-t<=t+r.size;this.unplaced=new c(Le(e,t-1,1),t-1,i?t-1:n)}else this.unplaced=new c(Le(e,t,1),t,n)}placeNodes({sliceDepth:e,frontierDepth:t,parent:n,inject:r,wrap:o}){for(;this.depth>t;)this.closeFrontierNode();if(o)for(let i=0;i1||0==a||e.content.size)&&(p=t,d.push(qe(e.mark(u.allowedMarks(e.marks)),1==h?a:0,h==l.childCount?f:-1)))}let m=h==l.childCount;m||(f=-1),this.placed=We(this.placed,t,i.from(d)),this.frontier[t].match=p,m&&f<0&&n&&n.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let i=0,c=l;i1&&r==this.$to.end(--n);)++r;return r}findCloseLevel(e){e:for(let t=Math.min(this.depth,e.depth);t>=0;t--){let{match:n,type:r}=this.frontier[t],i=t=0;n--){let{match:t,type:r}=this.frontier[n],i=je(e,n,r,t,!0);if(!i||i.childCount)continue e}return{depth:t,fit:o,move:i?e.doc.resolve(e.after(t+1)):e}}}}close(e){let t=this.findCloseLevel(e);if(!t)return null;for(;this.depth>t.depth;)this.closeFrontierNode();t.fit.childCount&&(this.placed=We(this.placed,t.depth,t.fit)),e=t.move;for(let n=t.depth+1;n<=e.depth;n++){let t=e.node(n),r=t.type.contentMatch.fillBefore(t.content,!0,e.index(n));this.openFrontierNode(t.type,t.attrs,r)}return e}openFrontierNode(e,t=null,n){let r=this.frontier[this.depth];r.match=r.match.matchType(e),this.placed=We(this.placed,this.depth,i.from(e.create(t,n))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let e=this.frontier.pop().match.fillBefore(i.empty,!0);e.childCount&&(this.placed=We(this.placed,this.frontier.length,e))}}function Le(e,t,n){return 0==t?e.cutByIndex(n,e.childCount):e.replaceChild(0,e.firstChild.copy(Le(e.firstChild.content,t-1,n)))}function We(e,t,n){return 0==t?e.append(n):e.replaceChild(e.childCount-1,e.lastChild.copy(We(e.lastChild.content,t-1,n)))}function Je(e,t){for(let n=0;n1&&(r=r.replaceChild(0,qe(r.firstChild,t-1,1==r.childCount?n-1:0))),t>0&&(r=e.type.contentMatch.fillBefore(r).append(r),n<=0&&(r=r.append(e.type.contentMatch.matchFragment(r).fillBefore(i.empty,!0)))),e.copy(r)}function je(e,t,n,r,i){let o=e.node(t),s=i?e.indexAfter(t):e.index(t);if(s==o.childCount&&!n.compatibleContent(o.type))return null;let l=r.fillBefore(o.content,!0,s);return l&&!function(e,t,n){for(let r=n;rr){let t=o.contentMatchAt(0),n=t.fillBefore(e).append(e);e=n.append(t.matchFragment(n).fillBefore(i.empty,!0))}return e}function He(e,t){let n=[];for(let r=Math.min(e.depth,t.depth);r>=0;r--){let i=e.start(r);if(it.pos+(t.depth-r)||e.node(r).type.spec.isolating||t.node(r).type.spec.isolating)break;(i==t.start(r)||r==e.depth&&r==t.depth&&e.parent.inlineContent&&t.parent.inlineContent&&r&&t.start(r-1)==i-1)&&n.push(r)}return n}class Ye extends we{constructor(e,t,n){super(),this.pos=e,this.attr=t,this.value=n}apply(e){let t=e.nodeAt(this.pos);if(!t)return ve.fail("No node at attribute step's position");let n=Object.create(null);for(let i in t.attrs)n[i]=t.attrs[i];n[this.attr]=this.value;let r=t.type.create(n,null,t.marks);return ve.fromReplace(e,this.pos,this.pos+1,new c(i.from(r),0,t.isLeaf?0:1))}getMap(){return me.empty}invert(e){return new Ye(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new Ye(t.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,t){if("number"!=typeof t.pos||"string"!=typeof t.attr)throw new RangeError("Invalid input for AttrStep.fromJSON");return new Ye(t.pos,t.attr,t.value)}}we.jsonID("attr",Ye);class Ue extends we{constructor(e,t){super(),this.attr=e,this.value=t}apply(e){let t=Object.create(null);for(let r in e.attrs)t[r]=e.attrs[r];t[this.attr]=this.value;let n=e.type.create(t,e.content,e.marks);return ve.ok(n)}getMap(){return me.empty}invert(e){return new Ue(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,t){if("string"!=typeof t.attr)throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new Ue(t.attr,t.value)}}we.jsonID("docAttr",Ue);let Ge=class extends Error{};Ge=function e(t){let n=Error.call(this,t);return n.__proto__=e.prototype,n},(Ge.prototype=Object.create(Error.prototype)).constructor=Ge,Ge.prototype.name="TransformError";class Ze{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new ge}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let t=this.maybeStep(e);if(t.failed)throw new Ge(t.failed);return this}maybeStep(e){let t=e.apply(this.doc);return t.failed||this.addStep(e,t.doc),t}get docChanged(){return this.steps.length>0}addStep(e,t){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=t}replace(e,t=e,n=c.empty){let r=Be(this.doc,e,t,n);return r&&this.step(r),this}replaceWith(e,t,n){return this.replace(e,t,new c(i.from(n),0,0))}delete(e,t){return this.replace(e,t,c.empty)}insert(e,t){return this.replaceWith(e,e,t)}replaceRange(e,t,n){return function(e,t,n,r){if(!r.size)return e.deleteRange(t,n);let i=e.doc.resolve(t),o=e.doc.resolve(n);if(Ve(i,o,r))return e.step(new Ce(t,n,r));let s=He(i,e.doc.resolve(n));0==s[s.length-1]&&s.pop();let l=-(i.depth+1);s.unshift(l);for(let c=i.depth,u=i.pos-1;c>0;c--,u--){let e=i.node(c).type.spec;if(e.defining||e.definingAsContext||e.isolating)break;s.indexOf(c)>-1?l=c:i.before(c)==u&&s.splice(1,0,-c)}let a=s.indexOf(l),h=[],d=r.openStart;for(let c=r.content,u=0;;u++){let e=c.firstChild;if(h.push(e),u==r.openStart)break;c=e.content}for(let c=d-1;c>=0;c--){let e=h[c],t=_e(e.type);if(t&&!e.sameMarkup(i.node(Math.abs(l)-1)))d=c;else if(t||!e.type.isTextblock)break}for(let u=r.openStart;u>=0;u--){let t=(u+d+1)%(r.openStart+1),l=h[t];if(l)for(let h=0;h=0&&(e.replace(t,n,r),!(e.steps.length>p));c--){let e=s[c];e<0||(t=i.before(e),n=o.after(e))}}(this,e,t,n),this}replaceRangeWith(e,t,n){return function(e,t,n,r){if(!r.isInline&&t==n&&e.doc.resolve(t).parent.content.size){let i=function(e,t,n){let r=e.resolve(t);if(r.parent.canReplaceWith(r.index(),r.index(),n))return t;if(0==r.parentOffset)for(let i=r.depth-1;i>=0;i--){let e=r.index(i);if(r.node(i).canReplaceWith(e,e,n))return r.before(i+1);if(e>0)return null}if(r.parentOffset==r.parent.content.size)for(let i=r.depth-1;i>=0;i--){let e=r.indexAfter(i);if(r.node(i).canReplaceWith(e,e,n))return r.after(i+1);if(e0&&(n||r.node(t-1).canReplace(r.index(t-1),i.indexAfter(t-1))))return e.delete(r.before(t),i.after(t))}for(let s=1;s<=r.depth&&s<=i.depth;s++)if(t-r.start(s)==r.depth-s&&n>r.end(s)&&i.end(s)-n!=i.depth-s&&r.start(s-1)==i.start(s-1)&&r.node(s-1).canReplace(r.index(s-1),i.index(s-1)))return e.delete(r.before(s),n);e.delete(t,n)}(this,e,t),this}lift(e,t){return function(e,t,n){let{$from:r,$to:o,depth:s}=t,l=r.before(s+1),a=o.after(s+1),h=l,d=a,p=i.empty,u=0;for(let c=s,g=!1;c>n;c--)g||r.index(c)>0?(g=!0,p=i.from(r.node(c).copy(p)),u++):h--;let f=i.empty,m=0;for(let c=s,g=!1;c>n;c--)g||o.after(c+1)=0;l--){if(r.size){let e=n[l].type.contentMatch.matchFragment(r);if(!e||!e.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=i.from(n[l].type.create(n[l].attrs,r))}let o=t.start,s=t.end;e.step(new Oe(o,s,o,s,new c(r,0,0),n.length,!0))}(this,e,t),this}setBlockType(e,t=e,n,r=null){return function(e,t,n,r,o){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let l="function"==typeof o?o(t):o;if(t.isTextblock&&!t.hasMarkup(r,l)&&function(e,t,n){let r=e.resolve(t),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}(e.doc,e.mapping.slice(s).map(n),r)){let o=null;if(r.schema.linebreakReplacement){let e="pre"==r.whitespace,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?o=!1:!e&&t&&(o=!0)}!1===o&&Ie(e,t,n,s),Te(e,e.mapping.slice(s).map(n,1),r,void 0,null===o);let a=e.mapping.slice(s),h=a.map(n,1),d=a.map(n+t.nodeSize,1);return e.step(new Oe(h,d,h+1,d-1,new c(i.from(r.create(l,null,t.marks)),0,0),1,!0)),!0===o&&Re(e,t,n,s),!1}})}(this,e,t,n,r),this}setNodeMarkup(e,t,n=null,r){return function(e,t,n,r,o){let s=e.doc.nodeAt(t);if(!s)throw new RangeError("No node at given position");n||(n=s.type);let l=n.create(r,null,o||s.marks);if(s.isLeaf)return e.replaceWith(t,t+s.nodeSize,l);if(!n.validContent(s.content))throw new RangeError("Invalid content for node type "+n.name);e.step(new Oe(t,t+s.nodeSize,t+1,t+s.nodeSize-1,new c(i.from(l),0,0),1,!0))}(this,e,t,n,r),this}setNodeAttribute(e,t,n){return this.step(new Ye(e,t,n)),this}setDocAttribute(e,t){return this.step(new Ue(e,t)),this}addNodeMark(e,t){return this.step(new ke(e,t)),this}removeNodeMark(e,t){if(!(t instanceof a)){let n=this.doc.nodeAt(e);if(!n)throw new RangeError("No node at position "+e);if(!(t=t.isInSet(n.marks)))return this}return this.step(new Me(e,t)),this}split(e,t=1,n){return function(e,t,n=1,r){let o=e.doc.resolve(t),s=i.empty,l=i.empty;for(let a=o.depth,h=o.depth-n,c=n-1;a>h;a--,c--){s=i.from(o.node(a).copy(s));let e=r&&r[c];l=i.from(e?e.type.create(e.attrs,l):o.node(a).copy(l))}e.step(new Ce(t,t,new c(s.append(l),n,n),!0))}(this,e,t,n),this}addMark(e,t,n){return function(e,t,n,r){let i,o,s=[],l=[];e.doc.nodesBetween(t,n,(e,a,h)=>{if(!e.isInline)return;let c=e.marks;if(!r.isInSet(c)&&h.type.allowsMarkType(r.type)){let h=Math.max(a,t),d=Math.min(a+e.nodeSize,n),p=r.addToSet(c);for(let e=0;ee.step(t)),l.forEach(t=>e.step(t))}(this,e,t,n),this}removeMark(e,t,n){return function(e,t,n,r){let i=[],o=0;e.doc.nodesBetween(t,n,(e,s)=>{if(!e.isInline)return;o++;let l=null;if(r instanceof K){let t,n=e.marks;for(;t=r.isInSet(n);)(l||(l=[])).push(t),n=t.removeFromSet(n)}else r?r.isInSet(e.marks)&&(l=[r]):l=e.marks;if(l&&l.length){let r=Math.min(s+e.nodeSize,n);for(let e=0;ee.step(new Se(t.from,t.to,t.style)))}(this,e,t,n),this}clearIncompatible(e,t,n){return Te(this,e,t,n),this}}const Xe=Object.create(null);class Qe{constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new et(e.min(t),e.max(t))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let t=0;t=0;i--){let r=t<0?ht(e.node(0),e.node(i),e.before(i+1),e.index(i),t,n):ht(e.node(0),e.node(i),e.after(i+1),e.index(i)+1,t,n);if(r)return r}return null}static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new lt(e.node(0))}static atStart(e){return ht(e,e,0,0,1)||new lt(e)}static atEnd(e){return ht(e,e,e.content.size,e.childCount,-1)||new lt(e)}static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid input for Selection.fromJSON");let n=Xe[t.type];if(!n)throw new RangeError(`No selection type ${t.type} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in Xe)throw new RangeError("Duplicate use of selection JSON ID "+e);return Xe[e]=t,t.prototype.jsonID=e,t}getBookmark(){return rt.between(this.$anchor,this.$head).getBookmark()}}Qe.prototype.visible=!0;class et{constructor(e,t){this.$from=e,this.$to=t}}let tt=!1;function nt(e){tt||e.parent.inlineContent||(tt=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+e.parent.type.name+")"))}class rt extends Qe{constructor(e,t=e){nt(e),nt(t),super(e,t)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)return Qe.near(n);let r=e.resolve(t.map(this.anchor));return new rt(r.parent.inlineContent?r:n,n)}replace(e,t=c.empty){if(super.replace(e,t),t==c.empty){let t=this.$from.marksAcross(this.$to);t&&e.ensureMarks(t)}}eq(e){return e instanceof rt&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new it(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,t){if("number"!=typeof t.anchor||"number"!=typeof t.head)throw new RangeError("Invalid input for TextSelection.fromJSON");return new rt(e.resolve(t.anchor),e.resolve(t.head))}static create(e,t,n=t){let r=e.resolve(t);return new this(r,n==t?r:e.resolve(n))}static between(e,t,n){let r=e.pos-t.pos;if(n&&!r||(n=r>=0?1:-1),!t.parent.inlineContent){let e=Qe.findFrom(t,n,!0)||Qe.findFrom(t,-n,!0);if(!e)return Qe.near(t,n);t=e.$head}return e.parent.inlineContent||(0==r||(e=(Qe.findFrom(e,-n,!0)||Qe.findFrom(e,n,!0)).$anchor).posnew lt(e)};function ht(e,t,n,r,i,o=!1){if(t.inlineContent)return rt.create(e,n);for(let s=r-(i>0?0:1);i>0?s=0;s+=i){let r=t.child(s);if(r.isAtom){if(!o&&ot.isSelectable(r))return ot.create(e,n-(i<0?r.nodeSize:0))}else{let t=ht(e,r,n+i,i<0?r.childCount:0,i,o);if(t)return t}n+=r.nodeSize*i}return null}function ct(e,t,n){let r=e.steps.length-1;if(r{null==i&&(i=r)}),e.setSelection(Qe.near(e.doc.resolve(i),n)))}class dt extends Ze{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(e){return this.storedMarks=e,this.updated|=2,this}ensureMarks(e){return a.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(2&this.updated)>0}addStep(e,t){super.addStep(e,t),this.updated=-3&this.updated,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(this.storedMarks||(n.empty?n.$from.marks():n.$from.marksAcross(n.$to)||a.none))),n.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,t,n){let r=this.doc.type.schema;if(null==t)return e?this.replaceSelectionWith(r.text(e),!0):this.deleteSelection();{if(null==n&&(n=t),n=null==n?t:n,!e)return this.deleteRange(t,n);let i=this.storedMarks;if(!i){let e=this.doc.resolve(t);i=n==t?e.marks():e.marksAcross(this.doc.resolve(n))}return this.replaceRangeWith(t,n,r.text(e,i)),this.selection.empty||this.setSelection(Qe.near(this.selection.$to)),this}}setMeta(e,t){return this.meta["string"==typeof e?e:e.key]=t,this}getMeta(e){return this.meta["string"==typeof e?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=4,this}get scrolledIntoView(){return(4&this.updated)>0}}function pt(e,t){return t&&e?e.bind(t):e}class ut{constructor(e,t,n){this.name=e,this.init=pt(t.init,n),this.apply=pt(t.apply,n)}}const ft=[new ut("doc",{init:e=>e.doc||e.schema.topNodeType.createAndFill(),apply:e=>e.doc}),new ut("selection",{init:(e,t)=>e.selection||Qe.atStart(t.doc),apply:e=>e.selection}),new ut("storedMarks",{init:e=>e.storedMarks||null,apply:(e,t,n,r)=>r.selection.$cursor?e.storedMarks:null}),new ut("scrollToSelection",{init:()=>0,apply:(e,t)=>e.scrolledIntoView?t+1:t})];class mt{constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=ft.slice(),t&&t.forEach(e=>{if(this.pluginsByKey[e.key])throw new RangeError("Adding different instances of a keyed plugin ("+e.key+")");this.plugins.push(e),this.pluginsByKey[e.key]=e,e.spec.state&&this.fields.push(new ut(e.key,e.spec.state,e))})}}class gt{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,t=-1){for(let n=0;ne.toJSON())),e&&"object"==typeof e)for(let n in e){if("doc"==n||"selection"==n)throw new RangeError("The JSON fields `doc` and `selection` are reserved");let r=e[n],i=r.spec.state;i&&i.toJSON&&(t[n]=i.toJSON.call(r,this[r.key]))}return t}static fromJSON(e,t,n){if(!t)throw new RangeError("Invalid input for EditorState.fromJSON");if(!e.schema)throw new RangeError("Required config field 'schema' missing");let r=new mt(e.schema,e.plugins),i=new gt(r);return r.fields.forEach(r=>{if("doc"==r.name)i.doc=T.fromJSON(e.schema,t.doc);else if("selection"==r.name)i.selection=Qe.fromJSON(i.doc,t.selection);else if("storedMarks"==r.name)t.storedMarks&&(i.storedMarks=t.storedMarks.map(e.schema.markFromJSON));else{if(n)for(let o in n){let s=n[o],l=s.spec.state;if(s.key==r.name&&l&&l.fromJSON&&Object.prototype.hasOwnProperty.call(t,o))return void(i[r.name]=l.fromJSON.call(s,e,t[o],i))}i[r.name]=r.init(e,i)}}),i}}function yt(e,t,n){for(let r in e){let i=e[r];i instanceof Function?i=i.bind(t):"handleDOMEvents"==r&&(i=yt(i,t,{})),n[r]=i}return n}class wt{constructor(e){this.spec=e,this.props={},e.props&&yt(e.props,this,this.props),this.key=e.key?e.key.key:xt("plugin")}getState(e){return e[this.key]}}const vt=Object.create(null);function xt(e){return e in vt?e+"$"+ ++vt[e]:(vt[e]=0,e+"$")}class bt{constructor(e="key"){this.key=xt(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}}const St=function(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t},kt=function(e){let t=e.assignedSlot||e.parentNode;return t&&11==t.nodeType?t.host:t};let Mt=null;const Ct=function(e,t,n){let r=Mt||(Mt=document.createRange());return r.setEnd(e,null==n?e.nodeValue.length:n),r.setStart(e,t||0),r},Ot=function(e,t,n,r){return n&&(Tt(e,t,n,r,-1)||Tt(e,t,n,r,1))},Nt=/^(img|br|input|textarea|hr)$/i;function Tt(e,t,n,r,i){for(var o;;){if(e==n&&t==r)return!0;if(t==(i<0?0:Dt(e))){let n=e.parentNode;if(!n||1!=n.nodeType||Et(e)||Nt.test(e.nodeName)||"false"==e.contentEditable)return!1;t=St(e)+(i<0?0:1),e=n}else{if(1!=e.nodeType)return!1;{let n=e.childNodes[t+(i<0?-1:0)];if(1==n.nodeType&&"false"==n.contentEditable){if(!(null===(o=n.pmViewDesc)||void 0===o?void 0:o.ignoreForSelection))return!1;t+=i}else e=n,t=i<0?Dt(e):0}}}}function Dt(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function Et(e){let t;for(let n=e;n&&!(t=n.pmViewDesc);n=n.parentNode);return t&&t.node&&t.node.isBlock&&(t.dom==e||t.contentDOM==e)}const At=function(e){return e.focusNode&&Ot(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)};function $t(e,t){let n=document.createEvent("Event");return n.initEvent("keydown",!0,!0),n.keyCode=e,n.key=n.code=t,n}const Rt="undefined"!=typeof navigator?navigator:null,It="undefined"!=typeof document?document:null,zt=Rt&&Rt.userAgent||"",Pt=/Edge\/(\d+)/.exec(zt),Bt=/MSIE \d/.exec(zt),Vt=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(zt),Ft=!!(Bt||Vt||Pt),Lt=Bt?document.documentMode:Vt?+Vt[1]:Pt?+Pt[1]:0,Wt=!Ft&&/gecko\/(\d+)/i.test(zt);Wt&&(/Firefox\/(\d+)/.exec(zt)||[0,0])[1];const Jt=!Ft&&/Chrome\/(\d+)/.exec(zt),qt=!!Jt,jt=Jt?+Jt[1]:0,_t=!Ft&&!!Rt&&/Apple Computer/.test(Rt.vendor),Kt=_t&&(/Mobile\/\w+/.test(zt)||!!Rt&&Rt.maxTouchPoints>2),Ht=Kt||!!Rt&&/Mac/.test(Rt.platform),Yt=!!Rt&&/Win/.test(Rt.platform),Ut=/Android \d/.test(zt),Gt=!!It&&"webkitFontSmoothing"in It.documentElement.style,Zt=Gt?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function Xt(e){let t=e.defaultView&&e.defaultView.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.documentElement.clientWidth,top:0,bottom:e.documentElement.clientHeight}}function Qt(e,t){return"number"==typeof e?e:e[t]}function en(e){let t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,r=t.height/e.offsetHeight||1;return{left:t.left,right:t.left+e.clientWidth*n,top:t.top,bottom:t.top+e.clientHeight*r}}function tn(e,t,n){let r=e.someProp("scrollThreshold")||0,i=e.someProp("scrollMargin")||5,o=e.dom.ownerDocument;for(let s=n||e.dom;s;){if(1!=s.nodeType){s=kt(s);continue}let e=s,n=e==o.body,l=n?Xt(o):en(e),a=0,h=0;if(t.topl.bottom-Qt(r,"bottom")&&(h=t.bottom-t.top>l.bottom-l.top?t.top+Qt(i,"top")-l.top:t.bottom-l.bottom+Qt(i,"bottom")),t.leftl.right-Qt(r,"right")&&(a=t.right-l.right+Qt(i,"right")),a||h)if(n)o.defaultView.scrollBy(a,h);else{let n=e.scrollLeft,r=e.scrollTop;h&&(e.scrollTop+=h),a&&(e.scrollLeft+=a);let i=e.scrollLeft-n,o=e.scrollTop-r;t={left:t.left-i,top:t.top-o,right:t.right-i,bottom:t.bottom-o}}let c=n?"fixed":getComputedStyle(s).position;if(/^(fixed|sticky)$/.test(c))break;s="absolute"==c?s.offsetParent:kt(s)}}function nn(e){let t=[],n=e.ownerDocument;for(let r=e;r&&(t.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),e!=n);r=kt(r));return t}function rn(e,t){for(let n=0;n=h){a=Math.max(u.bottom,a),h=Math.min(u.top,h);let e=u.left>t.left?u.left-t.left:u.right=(u.left+u.right)/2?1:0));continue}}else u.top>t.top&&!i&&u.left<=t.left&&u.right>=t.left&&(i=c,o={left:Math.max(u.left,Math.min(u.right,t.left)),top:u.top});!n&&(t.left>=u.right&&t.top>=u.top||t.left>=u.left&&t.top>=u.bottom)&&(l=d+1)}}return!n&&i&&(n=i,r=o,s=0),n&&3==n.nodeType?function(e,t){let n,r=e.nodeValue.length,i=document.createRange();for(let o=0;o=(r.left+r.right)/2?1:0)};break}}return i.detach(),n||{node:e,offset:0}}(n,r):!n||s&&1==n.nodeType?{node:e,offset:l}:sn(n,r)}function ln(e,t){return e.left>=t.left-1&&e.left<=t.right+1&&e.top>=t.top-1&&e.top<=t.bottom+1}function an(e,t,n){let r=e.childNodes.length;if(r&&n.topt.top&&i++}let r;Gt&&i&&1==n.nodeType&&1==(r=n.childNodes[i-1]).nodeType&&"false"==r.contentEditable&&r.getBoundingClientRect().top>=t.top&&i--,n==e.dom&&i==n.childNodes.length-1&&1==n.lastChild.nodeType&&t.top>n.lastChild.getBoundingClientRect().bottom?s=e.state.doc.content.size:0!=i&&1==n.nodeType&&"BR"==n.childNodes[i-1].nodeName||(s=function(e,t,n,r){let i=-1;for(let o=t,s=!1;o!=e.dom;){let t,n=e.docView.nearestDesc(o,!0);if(!n)return null;if(1==n.dom.nodeType&&(n.node.isBlock&&n.parent||!n.contentDOM)&&((t=n.dom.getBoundingClientRect()).width||t.height)&&(n.node.isBlock&&n.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(n.dom.nodeName)&&(!s&&t.left>r.left||t.top>r.top?i=n.posBefore:(!s&&t.right-1?i:e.docView.posFromDOM(t,n,-1)}(e,n,i,t))}null==s&&(s=function(e,t,n){let{node:r,offset:i}=sn(t,n),o=-1;if(1==r.nodeType&&!r.firstChild){let e=r.getBoundingClientRect();o=e.left!=e.right&&n.left>(e.left+e.right)/2?1:-1}return e.docView.posFromDOM(r,i,o)}(e,l,t));let a=e.docView.nearestDesc(l,!0);return{pos:s,inside:a?a.posAtStart-a.border:-1}}function cn(e){return e.top=0&&i==r.nodeValue.length?(e--,o=1):n<0?e--:t++,fn(dn(Ct(r,e,t),o),o<0)}{let e=dn(Ct(r,i,i),n);if(Wt&&i&&/\s/.test(r.nodeValue[i-1])&&i=0)}if(null==o&&i&&(n<0||i==Dt(r))){let e=r.childNodes[i-1],t=3==e.nodeType?Ct(e,Dt(e)-(s?0:1)):1!=e.nodeType||"BR"==e.nodeName&&e.nextSibling?null:e;if(t)return fn(dn(t,1),!1)}if(null==o&&i=0)}function fn(e,t){if(0==e.width)return e;let n=t?e.left:e.right;return{top:e.top,bottom:e.bottom,left:n,right:n}}function mn(e,t){if(0==e.height)return e;let n=t?e.top:e.bottom;return{top:n,bottom:n,left:e.left,right:e.right}}function gn(e,t,n){let r=e.state,i=e.root.activeElement;r!=t&&e.updateState(t),i!=e.dom&&e.focus();try{return n()}finally{r!=t&&e.updateState(r),i!=e.dom&&i&&i.focus()}}const yn=/[\u0590-\u08ac]/;let wn=null,vn=null,xn=!1;function bn(e,t,n){return wn==t&&vn==n?xn:(wn=t,vn=n,xn="up"==n||"down"==n?function(e,t,n){let r=t.selection,i="up"==n?r.$from:r.$to;return gn(e,t,()=>{let{node:t}=e.docView.domFromPos(i.pos,"up"==n?-1:1);for(;;){let n=e.docView.nearestDesc(t,!0);if(!n)break;if(n.node.isBlock){t=n.contentDOM||n.dom;break}t=n.dom.parentNode}let r=un(e,i.pos,1);for(let e=t.firstChild;e;e=e.nextSibling){let t;if(1==e.nodeType)t=e.getClientRects();else{if(3!=e.nodeType)continue;t=Ct(e,0,e.nodeValue.length).getClientRects()}for(let e=0;ei.top+1&&("up"==n?r.top-i.top>2*(i.bottom-r.top):i.bottom-r.bottom>2*(r.bottom-i.top)))return!1}}return!0})}(e,t,n):function(e,t,n){let{$head:r}=t.selection;if(!r.parent.isTextblock)return!1;let i=r.parentOffset,o=!i,s=i==r.parent.content.size,l=e.domSelection();return l?yn.test(r.parent.textContent)&&l.modify?gn(e,t,()=>{let{focusNode:t,focusOffset:i,anchorNode:o,anchorOffset:s}=e.domSelectionRange(),a=l.caretBidiLevel;l.modify("move",n,"character");let h=r.depth?e.docView.domAfterPos(r.before()):e.dom,{focusNode:c,focusOffset:d}=e.domSelectionRange(),p=c&&!h.contains(1==c.nodeType?c:c.parentNode)||t==c&&i==d;try{l.collapse(o,s),t&&(t!=o||i!=s)&&l.extend&&l.extend(t,i)}catch(u){}return null!=a&&(l.caretBidiLevel=a),p}):"left"==n||"backward"==n?o:s:r.pos==r.start()||r.pos==r.end()}(e,t,n))}class Sn{constructor(e,t,n,r){this.parent=e,this.children=t,this.dom=n,this.contentDOM=r,this.dirty=0,n.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,t,n){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let t=0;tSt(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))r=2&e.compareDocumentPosition(this.contentDOM);else if(this.dom.firstChild){if(0==t)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!1;break}if(t.previousSibling)break}if(null==r&&t==e.childNodes.length)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!0;break}if(t.nextSibling)break}}return(null==r?n>0:r)?this.posAtEnd:this.posAtStart}nearestDesc(e,t=!1){for(let n=!0,r=e;r;r=r.parentNode){let i,o=this.getDesc(r);if(o&&(!t||o.node)){if(!n||!(i=o.nodeDOM)||(1==i.nodeType?i.contains(1==e.nodeType?e:e.parentNode):i==e))return o;n=!1}}}getDesc(e){let t=e.pmViewDesc;for(let n=t;n;n=n.parent)if(n==this)return t}posFromDOM(e,t,n){for(let r=e;r;r=r.parentNode){let i=this.getDesc(r);if(i)return i.localPosFromDOM(e,t,n)}return-1}descAt(e){for(let t=0,n=0;te||t instanceof Dn){r=e-i;break}i=o}if(r)return this.children[n].domFromPos(r-this.children[n].border,t);for(let i;n&&!(i=this.children[n-1]).size&&i instanceof kn&&i.side>=0;n--);if(t<=0){let e,r=!0;for(;e=n?this.children[n-1]:null,e&&e.dom.parentNode!=this.contentDOM;n--,r=!1);return e&&t&&r&&!e.border&&!e.domAtom?e.domFromPos(e.size,t):{node:this.contentDOM,offset:e?St(e.dom)+1:0}}{let e,r=!0;for(;e=n=i&&t<=l-n.border&&n.node&&n.contentDOM&&this.contentDOM.contains(n.contentDOM))return n.parseRange(e,t,i);e=o;for(let t=s;t>0;t--){let n=this.children[t-1];if(n.size&&n.dom.parentNode==this.contentDOM&&!n.emptyChildAt(1)){r=St(n.dom)+1;break}e-=n.size}-1==r&&(r=0)}if(r>-1&&(l>t||s==this.children.length-1)){t=l;for(let e=s+1;ef&&ot){let e=s;s=l,l=e}let n=document.createRange();n.setEnd(l.node,l.offset),n.setStart(s.node,s.offset),a.removeAllRanges(),a.addRange(n)}}ignoreMutation(e){return!this.contentDOM&&"selection"!=e.type}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,t){for(let n=0,r=0;r=n:en){let r=n+i.border,s=o-i.border;if(e>=r&&t<=s)return this.dirty=e==n||t==o?2:1,void(e!=r||t!=s||!i.contentLost&&i.dom.parentNode==this.contentDOM?i.markDirty(e-r,t-r):i.dirty=3);i.dirty=i.dom!=i.contentDOM||i.dom.parentNode!=this.contentDOM||i.children.length?3:2}n=o}this.dirty=2}markParentsDirty(){let e=1;for(let t=this.parent;t;t=t.parent,e++){let n=1==e?2:1;t.dirtyi?i.parent?i.parent.posBeforeChild(i):void 0:r)),!t.type.spec.raw){if(1!=o.nodeType){let e=document.createElement("span");e.appendChild(o),o=e}o.contentEditable="false",o.classList.add("ProseMirror-widget")}super(e,[],o,null),this.widget=t,this.widget=t,i=this}matchesWidget(e){return 0==this.dirty&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let t=this.widget.spec.stopEvent;return!!t&&t(e)}ignoreMutation(e){return"selection"!=e.type||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}}class Mn extends Sn{constructor(e,t,n,r){super(e,[],t,null),this.textDOM=n,this.text=r}get size(){return this.text.length}localPosFromDOM(e,t){return e!=this.textDOM?this.posAtStart+(t?this.size:0):this.posAtStart+t}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return"characterData"===e.type&&e.target.nodeValue==e.oldValue}}class Cn extends Sn{constructor(e,t,n,r,i){super(e,[],n,r),this.mark=t,this.spec=i}static create(e,t,n,r){let i=r.nodeViews[t.type.name],o=i&&i(t,r,n);return o&&o.dom||(o=oe.renderSpec(document,t.type.spec.toDOM(t,n),null,t.attrs)),new Cn(e,t,o.dom,o.contentDOM||o.dom,o)}parseRule(){return 3&this.dirty||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return 3!=this.dirty&&this.mark.eq(e)}markDirty(e,t){if(super.markDirty(e,t),0!=this.dirty){let e=this.parent;for(;!e.node;)e=e.parent;e.dirty0&&(i=Jn(i,0,e,n));for(let s=0;ss?s.parent?s.parent.posBeforeChild(s):void 0:o,n,r),h=a&&a.dom,c=a&&a.contentDOM;if(t.isText)if(h){if(3!=h.nodeType)throw new RangeError("Text must be rendered as a DOM text node")}else h=document.createTextNode(t.text);else if(!h){let e=oe.renderSpec(document,t.type.spec.toDOM(t),null,t.attrs);({dom:h,contentDOM:c}=e)}c||t.isText||"BR"==h.nodeName||(h.hasAttribute("contenteditable")||(h.contentEditable="false"),t.type.spec.draggable&&(h.draggable=!0));let d=h;return h=Bn(h,n,t),a?s=new En(e,t,n,r,h,c||null,d,a,i,o+1):t.isText?new Tn(e,t,n,r,h,d,i):new On(e,t,n,r,h,c||null,d,i,o+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let e={node:this.node.type.name,attrs:this.node.attrs};if("pre"==this.node.type.whitespace&&(e.preserveWhitespace="full"),this.contentDOM)if(this.contentLost){for(let t=this.children.length-1;t>=0;t--){let n=this.children[t];if(this.dom.contains(n.dom.parentNode)){e.contentElement=n.dom.parentNode;break}}e.contentElement||(e.getContent=()=>i.empty)}else e.contentElement=this.contentDOM;else e.getContent=()=>this.node.content;return e}matchesNode(e,t,n){return 0==this.dirty&&e.eq(this.node)&&Vn(t,this.outerDeco)&&n.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(e,t){let n=this.node.inlineContent,r=t,i=e.composing?this.localCompositionInfo(e,t):null,o=i&&i.pos>-1?i:null,s=i&&i.pos<0,l=new Ln(this,o&&o.node,e);!function(e,t,n,r){let i=t.locals(e),o=0;if(0==i.length){for(let n=0;no;)l.push(i[s++]);let f=o+p.nodeSize;if(p.isText){let e=f;s!e.inline):l.slice(),t.forChild(o,p),u),o=f}}(this.node,this.innerDeco,(t,i,o)=>{t.spec.marks?l.syncToMarks(t.spec.marks,n,e,i):t.type.side>=0&&!o&&l.syncToMarks(i==this.node.childCount?a.none:this.node.child(i).marks,n,e,i),l.placeWidget(t,e,r)},(t,o,a,h)=>{let c;l.syncToMarks(t.marks,n,e,h),l.findNodeMatch(t,o,a,h)||s&&e.state.selection.from>r&&e.state.selection.to-1&&l.updateNodeAt(t,o,a,c,e)||l.updateNextNode(t,o,a,e,h,r)||l.addNode(t,o,a,e,r),r+=t.nodeSize}),l.syncToMarks([],n,e,0),this.node.isTextblock&&l.addTextblockHacks(),l.destroyRest(),(l.changed||2==this.dirty)&&(o&&this.protectLocalComposition(e,o),An(this.contentDOM,this.children,e),Kt&&function(e){if("UL"==e.nodeName||"OL"==e.nodeName){let t=e.style.cssText;e.style.cssText=t+"; list-style: square !important",window.getComputedStyle(e).listStyle,e.style.cssText=t}}(this.dom))}localCompositionInfo(e,t){let{from:n,to:r}=e.state.selection;if(!(e.state.selection instanceof rt)||nt+this.node.content.size)return null;let i=e.input.compositionNode;if(!i||!this.dom.contains(i.parentNode))return null;if(this.node.inlineContent){let e=i.nodeValue,o=function(e,t,n,r){for(let i=0,o=0;i=n){if(o>=r&&a.slice(r-t.length-l,r-l)==t)return r-t.length;let e=l=0&&e+t.length+l>=n)return l+e;if(n==r&&a.length>=r+t.length-l&&a.slice(r-l,r-l+t.length)==t)return r}}return-1}(this.node.content,e,n-t,r-t);return o<0?null:{node:i,pos:o,text:e}}return{node:i,pos:-1,text:""}}protectLocalComposition(e,{node:t,pos:n,text:r}){if(this.getDesc(t))return;let i=t;for(;i.parentNode!=this.contentDOM;i=i.parentNode){for(;i.previousSibling;)i.parentNode.removeChild(i.previousSibling);for(;i.nextSibling;)i.parentNode.removeChild(i.nextSibling);i.pmViewDesc&&(i.pmViewDesc=void 0)}let o=new Mn(this,i,t,r);e.input.compositionNodes.push(o),this.children=Jn(this.children,n,n+r.length,e,o)}update(e,t,n,r){return!(3==this.dirty||!e.sameMarkup(this.node))&&(this.updateInner(e,t,n,r),!0)}updateInner(e,t,n,r){this.updateOuterDeco(t),this.node=e,this.innerDeco=n,this.contentDOM&&this.updateChildren(r,this.posAtStart),this.dirty=0}updateOuterDeco(e){if(Vn(e,this.outerDeco))return;let t=1!=this.nodeDOM.nodeType,n=this.dom;this.dom=zn(this.dom,this.nodeDOM,In(this.outerDeco,this.node,t),In(e,this.node,t)),this.dom!=n&&(n.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){1==this.nodeDOM.nodeType&&(this.nodeDOM.classList.add("ProseMirror-selectednode"),!this.contentDOM&&this.node.type.spec.draggable||(this.nodeDOM.draggable=!0))}deselectNode(){1==this.nodeDOM.nodeType&&(this.nodeDOM.classList.remove("ProseMirror-selectednode"),!this.contentDOM&&this.node.type.spec.draggable||this.nodeDOM.removeAttribute("draggable"))}get domAtom(){return this.node.isAtom}}function Nn(e,t,n,r,i){Bn(r,t,e);let o=new On(void 0,e,t,n,r,r,r,i,0);return o.contentDOM&&o.updateChildren(i,0),o}class Tn extends On{constructor(e,t,n,r,i,o,s){super(e,t,n,r,i,null,o,s,0)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,t,n,r){return!(3==this.dirty||0!=this.dirty&&!this.inParent()||!e.sameMarkup(this.node))&&(this.updateOuterDeco(t),0==this.dirty&&e.text==this.node.text||e.text==this.nodeDOM.nodeValue||(this.nodeDOM.nodeValue=e.text,r.trackWrites==this.nodeDOM&&(r.trackWrites=null)),this.node=e,this.dirty=0,!0)}inParent(){let e=this.parent.contentDOM;for(let t=this.nodeDOM;t;t=t.parentNode)if(t==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,t,n){return e==this.nodeDOM?this.posAtStart+Math.min(t,this.node.text.length):super.localPosFromDOM(e,t,n)}ignoreMutation(e){return"characterData"!=e.type&&"selection"!=e.type}slice(e,t,n){let r=this.node.cut(e,t),i=document.createTextNode(r.text);return new Tn(this.parent,r,this.outerDeco,this.innerDeco,i,i,n)}markDirty(e,t){super.markDirty(e,t),this.dom==this.nodeDOM||0!=e&&t!=this.nodeDOM.nodeValue.length||(this.dirty=3)}get domAtom(){return!1}isText(e){return this.node.text==e}}class Dn extends Sn{parseRule(){return{ignore:!0}}matchesHack(e){return 0==this.dirty&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return"IMG"==this.dom.nodeName}}class En extends On{constructor(e,t,n,r,i,o,s,l,a,h){super(e,t,n,r,i,o,s,a,h),this.spec=l}update(e,t,n,r){if(3==this.dirty)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let i=this.spec.update(e,t,n);return i&&this.updateInner(e,t,n,r),i}return!(!this.contentDOM&&!e.isLeaf)&&super.update(e,t,n,r)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,t,n,r){this.spec.setSelection?this.spec.setSelection(e,t,n.root):super.setSelection(e,t,n,r)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return!!this.spec.stopEvent&&this.spec.stopEvent(e)}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}}function An(e,t,n){let r=e.firstChild,i=!1;for(let o=0;o0;){let l;for(;;)if(r){let e=n.children[r-1];if(!(e instanceof Cn)){l=e,r--;break}n=e,r=e.children.length}else{if(n==t)break e;r=n.parent.children.indexOf(n),n=n.parent}let a=l.node;if(a){if(a!=e.child(i-1))break;--i,o.set(l,i),s.push(l)}}return{index:i,matched:o,matches:s.reverse()}}(e.node.content,e)}destroyBetween(e,t){if(e!=t){for(let n=e;n>1,s=Math.min(o,e.length);for(;i-1)i>this.index&&(this.changed=!0,this.destroyBetween(this.index,i)),this.top=this.top.children[this.index];else{let r=Cn.create(this.top,e[o],t,n);this.top.children.splice(this.index,0,r),this.top=r,this.changed=!0}this.index=0,o++}}findNodeMatch(e,t,n,r){let i,o=-1;if(r>=this.preMatch.index&&(i=this.preMatch.matches[r-this.preMatch.index]).parent==this.top&&i.matchesNode(e,t,n))o=this.top.children.indexOf(i,this.index);else for(let s=this.index,l=Math.min(this.top.children.length,s+5);s=n||c<=t?o.push(a):(hn&&o.push(a.slice(n-h,a.size,r)))}return o}function qn(e,t=null){let n=e.domSelectionRange(),r=e.state.doc;if(!n.focusNode)return null;let i=e.docView.nearestDesc(n.focusNode),o=i&&0==i.size,s=e.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(s<0)return null;let l,a,h=r.resolve(s);if(At(n)){for(l=s;i&&!i.node;)i=i.parent;let e=i.node;if(i&&e.isAtom&&ot.isSelectable(e)&&i.parent&&(!e.isInline||!function(e,t,n){for(let r=0==t,i=t==Dt(e);r||i;){if(e==n)return!0;let t=St(e);if(!(e=e.parentNode))return!1;r=r&&0==t,i=i&&t==Dt(e)}}(n.focusNode,n.focusOffset,i.dom))){let e=i.posBefore;a=new ot(s==e?h:r.resolve(e))}}else{if(n instanceof e.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let t=s,i=s;for(let r=0;r{n.anchorNode==r&&n.anchorOffset==i||(t.removeEventListener("selectionchange",e.input.hideSelectionGuard),setTimeout(()=>{jn(e)&&!e.state.selection.visible||e.dom.classList.remove("ProseMirror-hideselection")},20))})}(e))}e.domObserver.setCurSelection(),e.domObserver.connectSelection()}}const Kn=_t||qt&&jt<63;function Hn(e,t){let{node:n,offset:r}=e.docView.domFromPos(t,0),i=rr(e,t,n))||rt.between(t,n,r)}function Qn(e){return!(e.editable&&!e.hasFocus())&&er(e)}function er(e){let t=e.domSelectionRange();if(!t.anchorNode)return!1;try{return e.dom.contains(3==t.anchorNode.nodeType?t.anchorNode.parentNode:t.anchorNode)&&(e.editable||e.dom.contains(3==t.focusNode.nodeType?t.focusNode.parentNode:t.focusNode))}catch(n){return!1}}function tr(e,t){let{$anchor:n,$head:r}=e.selection,i=t>0?n.max(r):n.min(r),o=i.parent.inlineContent?i.depth?e.doc.resolve(t>0?i.after():i.before()):null:i;return o&&Qe.findFrom(o,t)}function nr(e,t){return e.dispatch(e.state.tr.setSelection(t).scrollIntoView()),!0}function rr(e,t,n){let r=e.state.selection;if(!(r instanceof rt)){if(r instanceof ot&&r.node.isInline)return nr(e,new rt(t>0?r.$to:r.$from));{let n=tr(e.state,t);return!!n&&nr(e,n)}}if(n.indexOf("s")>-1){let{$head:n}=r,i=n.textOffset?null:t<0?n.nodeBefore:n.nodeAfter;if(!i||i.isText||!i.isLeaf)return!1;let o=e.state.doc.resolve(n.pos+i.nodeSize*(t<0?-1:1));return nr(e,new rt(r.$anchor,o))}if(!r.empty)return!1;if(e.endOfTextblock(t>0?"forward":"backward")){let n=tr(e.state,t);return!!(n&&n instanceof ot)&&nr(e,n)}if(!(Ht&&n.indexOf("m")>-1)){let n,i=r.$head,o=i.textOffset?null:t<0?i.nodeBefore:i.nodeAfter;if(!o||o.isText)return!1;let s=t<0?i.pos-o.nodeSize:i.pos;return!!(o.isAtom||(n=e.docView.descAt(s))&&!n.contentDOM)&&(ot.isSelectable(o)?nr(e,new ot(t<0?e.state.doc.resolve(i.pos-o.nodeSize):i)):!!Gt&&nr(e,new rt(e.state.doc.resolve(t<0?s:s+o.nodeSize))))}}function ir(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function or(e,t){let n=e.pmViewDesc;return n&&0==n.size&&(t<0||e.nextSibling||"BR"!=e.nodeName)}function sr(e,t){return t<0?function(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i,o,s=!1;Wt&&1==n.nodeType&&r0){if(1!=n.nodeType)break;{let e=n.childNodes[r-1];if(or(e,-1))i=n,o=--r;else{if(3!=e.nodeType)break;n=e,r=n.nodeValue.length}}}else{if(lr(n))break;{let t=n.previousSibling;for(;t&&or(t,-1);)i=n.parentNode,o=St(t),t=t.previousSibling;if(t)n=t,r=ir(n);else{if(n=n.parentNode,n==e.dom)break;r=0}}}s?ar(e,n,r):i&&ar(e,i,o)}(e):function(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i,o,s=ir(n);for(;;)if(r{e.state==i&&_n(e)},50)}function hr(e,t){let n=e.state.doc.resolve(t);if(!qt&&!Yt&&n.parent.inlineContent){let r=e.coordsAtPos(t);if(t>n.start()){let n=e.coordsAtPos(t-1),i=(n.top+n.bottom)/2;if(i>r.top&&i1)return n.leftr.top&&i1)return n.left>r.left?"ltr":"rtl"}}return"rtl"==getComputedStyle(e.dom).direction?"rtl":"ltr"}function cr(e,t,n){let r=e.state.selection;if(r instanceof rt&&!r.empty||n.indexOf("s")>-1)return!1;if(Ht&&n.indexOf("m")>-1)return!1;let{$from:i,$to:o}=r;if(!i.parent.inlineContent||e.endOfTextblock(t<0?"up":"down")){let n=tr(e.state,t);if(n&&n instanceof ot)return nr(e,n)}if(!i.parent.inlineContent){let n=t<0?i:o,s=r instanceof lt?Qe.near(n,t):Qe.findFrom(n,t);return!!s&&nr(e,s)}return!1}function dr(e,t){if(!(e.state.selection instanceof rt))return!0;let{$head:n,$anchor:r,empty:i}=e.state.selection;if(!n.sameParent(r))return!0;if(!i)return!1;if(e.endOfTextblock(t>0?"forward":"backward"))return!0;let o=!n.textOffset&&(t<0?n.nodeBefore:n.nodeAfter);if(o&&!o.isText){let r=e.state.tr;return t<0?r.delete(n.pos-o.nodeSize,n.pos):r.delete(n.pos,n.pos+o.nodeSize),e.dispatch(r),!0}return!1}function pr(e,t,n){e.domObserver.stop(),t.contentEditable=n,e.domObserver.start()}function ur(e,t){let n=t.keyCode,r=function(e){let t="";return e.ctrlKey&&(t+="c"),e.metaKey&&(t+="m"),e.altKey&&(t+="a"),e.shiftKey&&(t+="s"),t}(t);if(8==n||Ht&&72==n&&"c"==r)return dr(e,-1)||sr(e,-1);if(46==n&&!t.shiftKey||Ht&&68==n&&"c"==r)return dr(e,1)||sr(e,1);if(13==n||27==n)return!0;if(37==n||Ht&&66==n&&"c"==r){let t=37==n?"ltr"==hr(e,e.state.selection.from)?-1:1:-1;return rr(e,t,r)||sr(e,t)}if(39==n||Ht&&70==n&&"c"==r){let t=39==n?"ltr"==hr(e,e.state.selection.from)?1:-1:1;return rr(e,t,r)||sr(e,t)}return 38==n||Ht&&80==n&&"c"==r?cr(e,-1,r)||sr(e,-1):40==n||Ht&&78==n&&"c"==r?function(e){if(!_t||e.state.selection.$head.parentOffset>0)return!1;let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(t&&1==t.nodeType&&0==n&&t.firstChild&&"false"==t.firstChild.contentEditable){let n=t.firstChild;pr(e,n,"true"),setTimeout(()=>pr(e,n,"false"),20)}return!1}(e)||cr(e,1,r)||sr(e,1):r==(Ht?"m":"c")&&(66==n||73==n||89==n||90==n)}function fr(e,t){e.someProp("transformCopied",n=>{t=n(t,e)});let n=[],{content:r,openStart:i,openEnd:o}=t;for(;i>1&&o>1&&1==r.childCount&&1==r.firstChild.childCount;){i--,o--;let e=r.firstChild;n.push(e.type.name,e.attrs!=e.type.defaultAttrs?e.attrs:null),r=e.content}let s=e.someProp("clipboardSerializer")||oe.fromSchema(e.state.schema),l=Mr(),a=l.createElement("div");a.appendChild(s.serializeFragment(r,{document:l}));let h,c=a.firstChild,d=0;for(;c&&1==c.nodeType&&(h=Sr[c.nodeName.toLowerCase()]);){for(let e=h.length-1;e>=0;e--){let t=l.createElement(h[e]);for(;a.firstChild;)t.appendChild(a.firstChild);a.appendChild(t),d++}c=a.firstChild}return c&&1==c.nodeType&&c.setAttribute("data-pm-slice",`${i} ${o}${d?` -${d}`:""} ${JSON.stringify(n)}`),{dom:a,text:e.someProp("clipboardTextSerializer",n=>n(t,e))||t.content.textBetween(0,t.content.size,"\n\n"),slice:t}}function mr(e,t,n,r,o){let s,l,a=o.parent.type.spec.code;if(!n&&!t)return null;let h=!!t&&(r||a||!n);if(h){if(e.someProp("transformPastedText",n=>{t=n(t,a||r,e)}),a)return l=new c(i.from(e.state.schema.text(t.replace(/\r\n?/g,"\n"))),0,0),e.someProp("transformPasted",t=>{l=t(l,e,!0)}),l;let n=e.someProp("clipboardTextParser",n=>n(t,o,r,e));if(n)l=n;else{let n=o.marks(),{schema:r}=e.state,i=oe.fromSchema(r);s=document.createElement("div"),t.split(/(?:\r\n?|\n)+/).forEach(e=>{let t=s.appendChild(document.createElement("p"));e&&t.appendChild(i.serializeNode(r.text(e,n)))})}}else e.someProp("transformPastedHTML",t=>{n=t(n,e)}),s=function(e){let t=/^(\s*]*>)*/.exec(e);t&&(e=e.slice(t[0].length));let n,r=Mr().createElement("div"),i=/<([a-z][^>\s]+)/i.exec(e);(n=i&&Sr[i[1].toLowerCase()])&&(e=n.map(e=>"<"+e+">").join("")+e+n.map(e=>"").reverse().join(""));if(r.innerHTML=function(e){let t=window.trustedTypes;if(!t)return e;Cr||(Cr=t.defaultPolicy||t.createPolicy("ProseMirrorClipboard",{createHTML:e=>e}));return Cr.createHTML(e)}(e),n)for(let o=0;o0;i--){let e=s.firstChild;for(;e&&1!=e.nodeType;)e=e.nextSibling;if(!e)break;s=e}if(!l){let t=e.someProp("clipboardParser")||e.someProp("domParser")||U.fromSchema(e.state.schema);l=t.parseSlice(s,{preserveWhitespace:!(!h&&!p),context:o,ruleFromNode:e=>"BR"!=e.nodeName||e.nextSibling||!e.parentNode||gr.test(e.parentNode.nodeName)?null:{ignore:!0}})}if(p)l=function(e,t){if(!e.size)return e;let n,r=e.content.firstChild.type.schema;try{n=JSON.parse(t)}catch(a){return e}let{content:o,openStart:s,openEnd:l}=e;for(let h=n.length-2;h>=0;h-=2){let e=r.nodes[n[h]];if(!e||e.hasRequiredAttrs())break;o=i.from(e.create(n[h+1],o)),s++,l++}return new c(o,s,l)}(br(l,+p[1],+p[2]),p[4]);else if(l=c.maxOpen(function(e,t){if(e.childCount<2)return e;for(let n=t.depth;n>=0;n--){let r,o=t.node(n).contentMatchAt(t.index(n)),s=[];if(e.forEach(e=>{if(!s)return;let t,n=o.findWrapping(e.type);if(!n)return s=null;if(t=s.length&&r.length&&wr(n,r,e,s[s.length-1],0))s[s.length-1]=t;else{s.length&&(s[s.length-1]=vr(s[s.length-1],r.length));let t=yr(e,n);s.push(t),o=o.matchType(t.type),r=n}}),s)return i.from(s)}return e}(l.content,o),!0),l.openStart||l.openEnd){let e=0,t=0;for(let n=l.content.firstChild;e{l=t(l,e,h)}),l}const gr=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function yr(e,t,n=0){for(let r=t.length-1;r>=n;r--)e=t[r].create(null,i.from(e));return e}function wr(e,t,n,r,o){if(o1&&(s=0),o=n&&(a=t<0?l.contentMatchAt(0).fillBefore(a,s<=o).append(a):a.append(l.contentMatchAt(l.childCount).fillBefore(i.empty,!0))),e.replaceChild(t<0?0:e.childCount-1,l.copy(a))}function br(e,t,n){return t{for(let n in t)e.input.eventHandlers[n]||e.dom.addEventListener(n,e.input.eventHandlers[n]=t=>$r(e,t))})}function $r(e,t){return e.someProp("handleDOMEvents",n=>{let r=n[t.type];return!!r&&(r(e,t)||t.defaultPrevented)})}function Rr(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n=t.target;n!=e.dom;n=n.parentNode)if(!n||11==n.nodeType||n.pmViewDesc&&n.pmViewDesc.stopEvent(t))return!1;return!0}function Ir(e){return{left:e.clientX,top:e.clientY}}function zr(e,t,n,r,i){if(-1==r)return!1;let o=e.state.doc.resolve(r);for(let s=o.depth+1;s>0;s--)if(e.someProp(t,t=>s>o.depth?t(e,n,o.nodeAfter,o.before(s),i,!0):t(e,n,o.node(s),o.before(s),i,!1)))return!0;return!1}function Pr(e,t,n){if(e.focused||e.focus(),e.state.selection.eq(t))return;let r=e.state.tr.setSelection(t);r.setMeta("pointer",!0),e.dispatch(r)}function Br(e,t,n,r,i){return zr(e,"handleClickOn",t,n,r)||e.someProp("handleClick",n=>n(e,t,r))||(i?function(e,t){if(-1==t)return!1;let n,r,i=e.state.selection;i instanceof ot&&(n=i.node);let o=e.state.doc.resolve(t);for(let s=o.depth+1;s>0;s--){let e=s>o.depth?o.nodeAfter:o.node(s);if(ot.isSelectable(e)){r=n&&i.$from.depth>0&&s>=i.$from.depth&&o.before(i.$from.depth+1)==i.$from.pos?o.before(i.$from.depth):o.before(s);break}}return null!=r&&(Pr(e,ot.create(e.state.doc,r)),!0)}(e,n):function(e,t){if(-1==t)return!1;let n=e.state.doc.resolve(t),r=n.nodeAfter;return!!(r&&r.isAtom&&ot.isSelectable(r))&&(Pr(e,new ot(n)),!0)}(e,n))}function Vr(e,t,n,r){return zr(e,"handleDoubleClickOn",t,n,r)||e.someProp("handleDoubleClick",n=>n(e,t,r))}function Fr(e,t,n,r){return zr(e,"handleTripleClickOn",t,n,r)||e.someProp("handleTripleClick",n=>n(e,t,r))||function(e,t,n){if(0!=n.button)return!1;let r=e.state.doc;if(-1==t)return!!r.inlineContent&&(Pr(e,rt.create(r,0,r.content.size)),!0);let i=r.resolve(t);for(let o=i.depth+1;o>0;o--){let t=o>i.depth?i.nodeAfter:i.node(o),n=i.before(o);if(t.inlineContent)Pr(e,rt.create(r,n+1,n+1+t.content.size));else{if(!ot.isSelectable(t))continue;Pr(e,ot.create(r,n))}return!0}}(e,n,r)}function Lr(e){return Yr(e)}Nr.keydown=(e,t)=>{let n=t;if(e.input.shiftKey=16==n.keyCode||n.shiftKey,!qr(e,n)&&(e.input.lastKeyCode=n.keyCode,e.input.lastKeyCodeTime=Date.now(),!Ut||!qt||13!=n.keyCode))if(229!=n.keyCode&&e.domObserver.forceFlush(),!Kt||13!=n.keyCode||n.ctrlKey||n.altKey||n.metaKey)e.someProp("handleKeyDown",t=>t(e,n))||ur(e,n)?n.preventDefault():Er(e,"key");else{let t=Date.now();e.input.lastIOSEnter=t,e.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{e.input.lastIOSEnter==t&&(e.someProp("handleKeyDown",t=>t(e,$t(13,"Enter"))),e.input.lastIOSEnter=0)},200)}},Nr.keyup=(e,t)=>{16==t.keyCode&&(e.input.shiftKey=!1)},Nr.keypress=(e,t)=>{let n=t;if(qr(e,n)||!n.charCode||n.ctrlKey&&!n.altKey||Ht&&n.metaKey)return;if(e.someProp("handleKeyPress",t=>t(e,n)))return void n.preventDefault();let r=e.state.selection;if(!(r instanceof rt&&r.$from.sameParent(r.$to))){let t=String.fromCharCode(n.charCode),i=()=>e.state.tr.insertText(t).scrollIntoView();/[\r\n]/.test(t)||e.someProp("handleTextInput",n=>n(e,r.$from.pos,r.$to.pos,t,i))||e.dispatch(i()),n.preventDefault()}};const Wr=Ht?"metaKey":"ctrlKey";Or.mousedown=(e,t)=>{let n=t;e.input.shiftKey=n.shiftKey;let r=Lr(e),i=Date.now(),o="singleClick";i-e.input.lastClick.time<500&&function(e,t){let n=t.x-e.clientX,r=t.y-e.clientY;return n*n+r*r<100}(n,e.input.lastClick)&&!n[Wr]&&e.input.lastClick.button==n.button&&("singleClick"==e.input.lastClick.type?o="doubleClick":"doubleClick"==e.input.lastClick.type&&(o="tripleClick")),e.input.lastClick={time:i,x:n.clientX,y:n.clientY,type:o,button:n.button};let s=e.posAtCoords(Ir(n));s&&("singleClick"==o?(e.input.mouseDown&&e.input.mouseDown.done(),e.input.mouseDown=new Jr(e,s,n,!!r)):("doubleClick"==o?Vr:Fr)(e,s.pos,s.inside,n)?n.preventDefault():Er(e,"pointer"))};class Jr{constructor(e,t,n,r){let i,o;if(this.view=e,this.pos=t,this.event=n,this.flushed=r,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!n[Wr],this.allowDefault=n.shiftKey,t.inside>-1)i=e.state.doc.nodeAt(t.inside),o=t.inside;else{let n=e.state.doc.resolve(t.pos);i=n.parent,o=n.depth?n.before():0}const s=r?null:n.target,l=s?e.docView.nearestDesc(s,!0):null;this.target=l&&1==l.nodeDOM.nodeType?l.nodeDOM:null;let{selection:a}=e.state;(0==n.button&&i.type.spec.draggable&&!1!==i.type.spec.selectable||a instanceof ot&&a.from<=o&&a.to>o)&&(this.mightDrag={node:i,pos:o,addAttr:!(!this.target||this.target.draggable),setUneditable:!(!this.target||!Wt||this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),Er(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>_n(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let t=this.pos;this.view.state.doc!=this.startDoc&&(t=this.view.posAtCoords(Ir(e))),this.updateAllowDefault(e),this.allowDefault||!t?Er(this.view,"pointer"):Br(this.view,t.pos,t.inside,e,this.selectNode)?e.preventDefault():0==e.button&&(this.flushed||_t&&this.mightDrag&&!this.mightDrag.node.isAtom||qt&&!this.view.state.selection.visible&&Math.min(Math.abs(t.pos-this.view.state.selection.from),Math.abs(t.pos-this.view.state.selection.to))<=2)?(Pr(this.view,Qe.near(this.view.state.doc.resolve(t.pos))),e.preventDefault()):Er(this.view,"pointer")}move(e){this.updateAllowDefault(e),Er(this.view,"pointer"),0==e.buttons&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}function qr(e,t){return!!e.composing||!!(_t&&Math.abs(t.timeStamp-e.input.compositionEndedAt)<500)&&(e.input.compositionEndedAt=-2e8,!0)}Or.touchstart=e=>{e.input.lastTouch=Date.now(),Lr(e),Er(e,"pointer")},Or.touchmove=e=>{e.input.lastTouch=Date.now(),Er(e,"pointer")},Or.contextmenu=e=>Lr(e);const jr=Ut?5e3:-1;function _r(e,t){clearTimeout(e.input.composingTimeout),t>-1&&(e.input.composingTimeout=setTimeout(()=>Yr(e),t))}function Kr(e){for(e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=function(){let e=document.createEvent("Event");return e.initEvent("event",!0,!0),e.timeStamp}());e.input.compositionNodes.length>0;)e.input.compositionNodes.pop().markParentsDirty()}function Hr(e){let t=e.domSelectionRange();if(!t.focusNode)return null;let n=function(e,t){for(;;){if(3==e.nodeType&&t)return e;if(1==e.nodeType&&t>0){if("false"==e.contentEditable)return null;t=Dt(e=e.childNodes[t-1])}else{if(!e.parentNode||Et(e))return null;t=St(e),e=e.parentNode}}}(t.focusNode,t.focusOffset),r=function(e,t){for(;;){if(3==e.nodeType&&t=0)){if(e.domObserver.forceFlush(),Kr(e),t||e.docView&&e.docView.dirty){let n=qn(e),r=e.state.selection;return n&&!n.eq(r)?e.dispatch(e.state.tr.setSelection(n)):!e.markCursor&&!t||r.$from.node(r.$from.sharedDepth(r.to)).inlineContent?e.updateState(e.state):e.dispatch(e.state.tr.deleteSelection()),!0}return!1}}Nr.compositionstart=Nr.compositionupdate=e=>{if(!e.composing){e.domObserver.flush();let{state:t}=e,n=t.selection.$to;if(t.selection instanceof rt&&(t.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(e=>!1===e.type.spec.inclusive)||qt&&Yt&&function(e){let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(!t||1!=t.nodeType||n>=t.childNodes.length)return!1;let r=t.childNodes[n];return 1==r.nodeType&&"false"==r.contentEditable}(e)))e.markCursor=e.state.storedMarks||n.marks(),Yr(e,!0),e.markCursor=null;else if(Yr(e,!t.selection.empty),Wt&&t.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let t=e.domSelectionRange();for(let n=t.focusNode,r=t.focusOffset;n&&1==n.nodeType&&0!=r;){let t=r<0?n.lastChild:n.childNodes[r-1];if(!t)break;if(3==t.nodeType){let n=e.domSelection();n&&n.collapse(t,t.nodeValue.length);break}n=t,r=-1}}e.input.composing=!0}_r(e,jr)},Nr.compositionend=(e,t)=>{e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=t.timeStamp,e.input.compositionPendingChanges=e.domObserver.pendingRecords().length?e.input.compositionID:0,e.input.compositionNode=null,e.input.badSafariComposition?e.domObserver.forceFlush():e.input.compositionPendingChanges&&Promise.resolve().then(()=>e.domObserver.flush()),e.input.compositionID++,_r(e,20))};const Ur=Ft&&Lt<15||Kt&&Zt<604;function Gr(e,t,n,r,i){let o=mr(e,t,n,r,e.state.selection.$from);if(e.someProp("handlePaste",t=>t(e,i,o||c.empty)))return!0;if(!o)return!1;let s=function(e){return 0==e.openStart&&0==e.openEnd&&1==e.content.childCount?e.content.firstChild:null}(o),l=s?e.state.tr.replaceSelectionWith(s,r):e.state.tr.replaceSelection(o);return e.dispatch(l.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function Zr(e){let t=e.getData("text/plain")||e.getData("Text");if(t)return t;let n=e.getData("text/uri-list");return n?n.replace(/\r?\n/g," "):""}Or.copy=Nr.cut=(e,t)=>{let n=t,r=e.state.selection,i="cut"==n.type;if(r.empty)return;let o=Ur?null:n.clipboardData,s=r.content(),{dom:l,text:a}=fr(e,s);o?(n.preventDefault(),o.clearData(),o.setData("text/html",l.innerHTML),o.setData("text/plain",a)):function(e,t){if(!e.dom.parentNode)return;let n=e.dom.parentNode.appendChild(document.createElement("div"));n.appendChild(t),n.style.cssText="position: fixed; left: -10000px; top: 10px";let r=getSelection(),i=document.createRange();i.selectNodeContents(t),e.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),e.focus()},50)}(e,l),i&&e.dispatch(e.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))},Nr.paste=(e,t)=>{let n=t;if(e.composing&&!Ut)return;let r=Ur?null:n.clipboardData,i=e.input.shiftKey&&45!=e.input.lastKeyCode;r&&Gr(e,Zr(r),r.getData("text/html"),i,n)?n.preventDefault():function(e,t){if(!e.dom.parentNode)return;let n=e.input.shiftKey||e.state.selection.$from.parent.type.spec.code,r=e.dom.parentNode.appendChild(document.createElement(n?"textarea":"div"));n||(r.contentEditable="true"),r.style.cssText="position: fixed; left: -10000px; top: 10px",r.focus();let i=e.input.shiftKey&&45!=e.input.lastKeyCode;setTimeout(()=>{e.focus(),r.parentNode&&r.parentNode.removeChild(r),n?Gr(e,r.value,null,i,t):Gr(e,r.textContent,r.innerHTML,i,t)},50)}(e,n)};class Xr{constructor(e,t,n){this.slice=e,this.move=t,this.node=n}}const Qr=Ht?"altKey":"ctrlKey";function ei(e,t){let n=e.someProp("dragCopies",e=>!e(t));return null!=n?n:!t[Qr]}Or.dragstart=(e,t)=>{let n=t,r=e.input.mouseDown;if(r&&r.done(),!n.dataTransfer)return;let i,o=e.state.selection,s=o.empty?null:e.posAtCoords(Ir(n));if(s&&s.pos>=o.from&&s.pos<=(o instanceof ot?o.to-1:o.to));else if(r&&r.mightDrag)i=ot.create(e.state.doc,r.mightDrag.pos);else if(n.target&&1==n.target.nodeType){let t=e.docView.nearestDesc(n.target,!0);t&&t.node.type.spec.draggable&&t!=e.docView&&(i=ot.create(e.state.doc,t.posBefore))}let l=(i||e.state.selection).content(),{dom:a,text:h,slice:c}=fr(e,l);(!n.dataTransfer.files.length||!qt||jt>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(Ur?"Text":"text/html",a.innerHTML),n.dataTransfer.effectAllowed="copyMove",Ur||n.dataTransfer.setData("text/plain",h),e.dragging=new Xr(c,ei(e,n),i)},Or.dragend=e=>{let t=e.dragging;window.setTimeout(()=>{e.dragging==t&&(e.dragging=null)},50)},Nr.dragover=Nr.dragenter=(e,t)=>t.preventDefault(),Nr.drop=(e,t)=>{try{!function(e,t,n){if(!t.dataTransfer)return;let r=e.posAtCoords(Ir(t));if(!r)return;let i=e.state.doc.resolve(r.pos),o=n&&n.slice;o?e.someProp("transformPasted",t=>{o=t(o,e,!1)}):o=mr(e,Zr(t.dataTransfer),Ur?null:t.dataTransfer.getData("text/html"),!1,i);let s=!(!n||!ei(e,t));if(e.someProp("handleDrop",n=>n(e,t,o||c.empty,s)))return void t.preventDefault();if(!o)return;t.preventDefault();let l=o?function(e,t,n){let r=e.resolve(t);if(!n.content.size)return t;let i=n.content;for(let o=0;o=0;e--){let t=e==r.depth?0:r.pos<=(r.start(e+1)+r.end(e+1))/2?-1:1,n=r.index(e)+(t>0?1:0),s=r.node(e),l=!1;if(1==o)l=s.canReplace(n,n,i);else{let e=s.contentMatchAt(n).findWrapping(i.firstChild.type);l=e&&s.canReplaceWith(n,n,e[0])}if(l)return 0==t?r.pos:t<0?r.before(e+1):r.after(e+1)}return null}(e.state.doc,i.pos,o):i.pos;null==l&&(l=i.pos);let a=e.state.tr;if(s){let{node:e}=n;e?e.replace(a):a.deleteSelection()}let h=a.mapping.map(l),d=0==o.openStart&&0==o.openEnd&&1==o.content.childCount,p=a.doc;d?a.replaceRangeWith(h,h,o.content.firstChild):a.replaceRange(h,h,o);if(a.doc.eq(p))return;let u=a.doc.resolve(h);if(d&&ot.isSelectable(o.content.firstChild)&&u.nodeAfter&&u.nodeAfter.sameMarkup(o.content.firstChild))a.setSelection(new ot(u));else{let t=a.mapping.map(l);a.mapping.maps[a.mapping.maps.length-1].forEach((e,n,r,i)=>t=i),a.setSelection(Xn(e,u,a.doc.resolve(t)))}e.focus(),e.dispatch(a.setMeta("uiEvent","drop"))}(e,t,e.dragging)}finally{e.dragging=null}},Or.focus=e=>{e.input.lastFocus=Date.now(),e.focused||(e.domObserver.stop(),e.dom.classList.add("ProseMirror-focused"),e.domObserver.start(),e.focused=!0,setTimeout(()=>{e.docView&&e.hasFocus()&&!e.domObserver.currentSelection.eq(e.domSelectionRange())&&_n(e)},20))},Or.blur=(e,t)=>{let n=t;e.focused&&(e.domObserver.stop(),e.dom.classList.remove("ProseMirror-focused"),e.domObserver.start(),n.relatedTarget&&e.dom.contains(n.relatedTarget)&&e.domObserver.currentSelection.clear(),e.focused=!1)},Or.beforeinput=(e,t)=>{if(qt&&Ut&&"deleteContentBackward"==t.inputType){e.domObserver.flushSoon();let{domChangeCount:t}=e.input;setTimeout(()=>{if(e.input.domChangeCount!=t)return;if(e.dom.blur(),e.focus(),e.someProp("handleKeyDown",t=>t(e,$t(8,"Backspace"))))return;let{$cursor:n}=e.state.selection;n&&n.pos>0&&e.dispatch(e.state.tr.delete(n.pos-1,n.pos).scrollIntoView())},50)}};for(let os in Nr)Or[os]=Nr[os];function ti(e,t){if(e==t)return!0;for(let n in e)if(e[n]!==t[n])return!1;for(let n in t)if(!(n in e))return!1;return!0}class ni{constructor(e,t){this.toDOM=e,this.spec=t||li,this.side=this.spec.side||0}map(e,t,n,r){let{pos:i,deleted:o}=e.mapResult(t.from+r,this.side<0?-1:1);return o?null:new oi(i-n,i-n,this)}valid(){return!0}eq(e){return this==e||e instanceof ni&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&ti(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}}class ri{constructor(e,t){this.attrs=e,this.spec=t||li}map(e,t,n,r){let i=e.map(t.from+r,this.spec.inclusiveStart?-1:1)-n,o=e.map(t.to+r,this.spec.inclusiveEnd?1:-1)-n;return i>=o?null:new oi(i,o,this)}valid(e,t){return t.from=e&&(!i||i(s.spec))&&n.push(s.copy(s.from+r,s.to+r))}for(let o=0;oe){let s=this.children[o]+1;this.children[o+2].findInner(e-s,t-s,n,r+s,i)}}map(e,t,n){return this==hi||0==e.maps.length?this:this.mapInner(e,t,0,0,n||li)}mapInner(e,t,n,r,i){let o;for(let s=0;s{let o=i-r-(n-t);for(let s=0;sr+c-e)continue;let i=l[s]+c-e;n>=i?l[s+1]=t<=i?-2:-1:t>=c&&o&&(l[s]+=o,l[s+1]+=o)}e+=o}),c=n.maps[h].map(c,-1)}let a=!1;for(let h=0;h=r.content.size){a=!0;continue}let d=n.map(e[h+1]+o,-1)-i,{index:p,offset:u}=r.content.findIndex(c),f=r.maybeChild(p);if(f&&u==c&&u+f.nodeSize==d){let r=l[h+2].mapInner(n,f,t+1,e[h]+o+1,s);r!=hi?(l[h]=c,l[h+1]=d,l[h+2]=r):(l[h+1]=-2,a=!0)}else a=!0}if(a){let a=function(e,t,n,r,i,o,s){function l(e,t){for(let o=0;o{let s,l=o+n;if(s=pi(t,e,l)){for(r||(r=this.children.slice());io&&t.to=e){this.children[s]==e&&(n=this.children[s+2]);break}let i=e+1,o=i+t.content.size;for(let s=0;si&&e.type instanceof ri){let t=Math.max(i,e.from)-i,n=Math.min(o,e.to)-i;tn.map(e,t,li));return ci.from(n)}forChild(e,t){if(t.isLeaf)return ai.empty;let n=[];for(let r=0;re instanceof ai)?e:e.reduce((e,t)=>e.concat(t instanceof ai?t:t.members),[]))}}forEachSet(e){for(let t=0;tn&&o.to{let l=pi(e,t,s+n);if(l){o=!0;let e=fi(l,t,n+s+1,r);e!=hi&&i.push(s,s+t.nodeSize,e)}});let s=di(o?ui(e):e,-n).sort(mi);for(let l=0;l0;)t++;e.splice(t,0,n)}function wi(e){let t=[];return e.someProp("decorations",n=>{let r=n(e.state);r&&r!=hi&&t.push(r)}),e.cursorWrapper&&t.push(ai.create(e.state.doc,[e.cursorWrapper.deco])),ci.from(t)}const vi={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},xi=Ft&&Lt<=11;class bi{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}class Si{constructor(e,t){this.view=e,this.handleDOMChange=t,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new bi,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(t=>{for(let e=0;e"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length)?this.flushSoon():_t&&e.composing&&t.some(e=>"childList"==e.type&&"TR"==e.target.nodeName)?(e.input.badSafariComposition=!0,this.flushSoon()):this.flush()}),xi&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,vi)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let t=0;tthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(Qn(this.view)){if(this.suppressingSelectionUpdates)return _n(this.view);if(Ft&&Lt<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&Ot(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let t,n=new Set;for(let i=e.focusNode;i;i=kt(i))n.add(i);for(let i=e.anchorNode;i;i=kt(i))if(n.has(i)){t=i;break}let r=t&&this.view.docView.nearestDesc(t);return r&&r.ignoreMutation({type:"selection",target:3==t.nodeType?t.parentNode:t})?(this.setCurSelection(),!0):void 0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let t=this.pendingRecords();t.length&&(this.queue=[]);let n=e.domSelectionRange(),r=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(n)&&Qn(e)&&!this.ignoreSelectionChange(n),i=-1,o=-1,s=!1,l=[];if(e.editable)for(let h=0;h"BR"==e.nodeName)||8!=e.input.lastKeyCode&&46!=e.input.lastKeyCode){if(Wt&&l.length){let t=l.filter(e=>"BR"==e.nodeName);if(2==t.length){let[e,n]=t;e.parentNode&&e.parentNode.parentNode==n.parentNode?n.remove():e.remove()}else{let{focusNode:n}=this.currentSelection;for(let r of t){let t=r.parentNode;!t||"LI"!=t.nodeName||n&&Oi(e,n)==t||r.remove()}}}}else for(let h of l)if("BR"==h.nodeName&&h.parentNode){let e=h.nextSibling;e&&1==e.nodeType&&"false"==e.contentEditable&&h.parentNode.removeChild(h)}let a=null;i<0&&r&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)-1||r)&&(i>-1&&(e.docView.markDirty(i,o),function(e){if(ki.has(e))return;if(ki.set(e,null),-1!==["normal","nowrap","pre-line"].indexOf(getComputedStyle(e.dom).whiteSpace)){if(e.requiresGeckoHackNode=Wt,Mi)return;console.warn("ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package."),Mi=!0}}(e)),e.input.badSafariComposition&&(e.input.badSafariComposition=!1,function(e,t){var n;let{focusNode:r,focusOffset:i}=e.domSelectionRange();for(let o of t)if("TR"==(null===(n=o.parentNode)||void 0===n?void 0:n.nodeName)){let t=o.nextSibling;for(;t&&"TD"!=t.nodeName&&"TH"!=t.nodeName;)t=t.nextSibling;if(t){let n=t;for(;;){let e=n.firstChild;if(!e||1!=e.nodeType||"false"==e.contentEditable||/^(BR|IMG)$/.test(e.nodeName))break;n=e}n.insertBefore(o,n.firstChild),r==o&&e.domSelection().collapse(o,i)}else o.parentNode.removeChild(o)}}(e,l)),this.handleDOMChange(i,o,s,l),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(n)||_n(e),this.currentSelection.set(n))}registerMutation(e,t){if(t.indexOf(e.target)>-1)return null;let n=this.view.docView.nearestDesc(e.target);if("attributes"==e.type&&(n==this.view.docView||"contenteditable"==e.attributeName||"style"==e.attributeName&&!e.oldValue&&!e.target.getAttribute("style")))return null;if(!n||n.ignoreMutation(e))return null;if("childList"==e.type){for(let n=0;nDate.now()-50?e.input.lastSelectionOrigin:null,n=qn(e,t);if(n&&!e.state.selection.eq(n)){if(qt&&Ut&&13===e.input.lastKeyCode&&Date.now()-100t(e,$t(13,"Enter"))))return;let r=e.state.tr.setSelection(n);"pointer"==t?r.setMeta("pointer",!0):"key"==t&&r.scrollIntoView(),s&&r.setMeta("composition",s),e.dispatch(r)}return}let l=e.state.doc.resolve(t),a=l.sharedDepth(n);t=l.before(a+1),n=e.state.doc.resolve(n).after(a+1);let h,c,d=e.state.selection,p=function(e,t,n){let r,{node:i,fromOffset:o,toOffset:s,from:l,to:a}=e.docView.parseRange(t,n),h=e.domSelectionRange(),c=h.anchorNode;if(c&&e.dom.contains(1==c.nodeType?c:c.parentNode)&&(r=[{node:c,offset:h.anchorOffset}],At(h)||r.push({node:h.focusNode,offset:h.focusOffset})),qt&&8===e.input.lastKeyCode)for(let g=s;g>o;g--){let e=i.childNodes[g-1],t=e.pmViewDesc;if("BR"==e.nodeName&&!t){s=g;break}if(!t||t.size)break}let d=e.state.doc,p=e.someProp("domParser")||U.fromSchema(e.state.schema),u=d.resolve(l),f=null,m=p.parse(i,{topNode:u.parent,topMatch:u.parent.contentMatchAt(u.index()),topOpen:!0,from:o,to:s,preserveWhitespace:"pre"!=u.parent.type.whitespace||"full",findPositions:r,ruleFromNode:Ni,context:u});if(r&&null!=r[0].pos){let e=r[0].pos,t=r[1]&&r[1].pos;null==t&&(t=e),f={anchor:e+l,head:t+l}}return{doc:m,sel:f,from:l,to:a}}(e,t,n),u=e.state.doc,f=u.slice(p.from,p.to);8===e.input.lastKeyCode&&Date.now()-100=s?o-r:0;o-=e,o&&o=l?o-r:0;o-=t,o&&oDate.now()-225||Ut)&&o.some(e=>1==e.nodeType&&!Ti.test(e.nodeName))&&(!m||m.endA>=m.endB)&&e.someProp("handleKeyDown",t=>t(e,$t(13,"Enter"))))return void(e.input.lastIOSEnter=0);if(!m){if(!(r&&d instanceof rt&&!d.empty&&d.$head.sameParent(d.$anchor))||e.composing||p.sel&&p.sel.anchor!=p.sel.head){if(p.sel){let t=Ei(e,e.state.doc,p.sel);if(t&&!t.eq(e.state.selection)){let n=e.state.tr.setSelection(t);s&&n.setMeta("composition",s),e.dispatch(n)}}return}m={start:d.from,endA:d.to,endB:d.to}}e.state.selection.frome.state.selection.from&&m.start<=e.state.selection.from+2&&e.state.selection.from>=p.from?m.start=e.state.selection.from:m.endA=e.state.selection.to-2&&e.state.selection.to<=p.to&&(m.endB+=e.state.selection.to-m.endA,m.endA=e.state.selection.to)),Ft&&Lt<=11&&m.endB==m.start+1&&m.endA==m.start&&m.start>p.from&&"  "==p.doc.textBetween(m.start-p.from-1,m.start-p.from+1)&&(m.start--,m.endA--,m.endB--);let g=p.doc.resolveNoCache(m.start-p.from),y=p.doc.resolveNoCache(m.endB-p.from),w=u.resolve(m.start),v=g.sameParent(y)&&g.parent.inlineContent&&w.end()>=m.endA;if((Kt&&e.input.lastIOSEnter>Date.now()-225&&(!v||o.some(e=>"DIV"==e.nodeName||"P"==e.nodeName))||!v&&g.post(e,$t(13,"Enter"))))return void(e.input.lastIOSEnter=0);if(e.state.selection.anchor>m.start&&function(e,t,n,r,i){if(n-t<=i.pos-r.pos||Ai(r,!0,!1)n||Ai(s,!0,!1)t(e,$t(8,"Backspace"))))return void(Ut&&qt&&e.domObserver.suppressSelectionUpdates());qt&&m.endB==m.start&&(e.input.lastChromeDelete=Date.now()),Ut&&!v&&g.start()!=y.start()&&0==y.parentOffset&&g.depth==y.depth&&p.sel&&p.sel.anchor==p.sel.head&&p.sel.head==m.endA&&(m.endB-=2,y=p.doc.resolveNoCache(m.endB-p.from),setTimeout(()=>{e.someProp("handleKeyDown",function(t){return t(e,$t(13,"Enter"))})},20));let x,b=m.start,S=m.endA,k=t=>{let n=t||e.state.tr.replace(b,S,p.doc.slice(m.start-p.from,m.endB-p.from));if(p.sel){let t=Ei(e,n.doc,p.sel);t&&!(qt&&e.composing&&t.empty&&(m.start!=m.endB||e.input.lastChromeDelete_n(e),20));let t=k(e.state.tr.delete(b,S)),n=u.resolve(m.start).marksAcross(u.resolve(m.endA));n&&t.ensureMarks(n),e.dispatch(t)}else if(m.endA==m.endB&&(x=function(e,t){let n,r,o,s=e.firstChild.marks,l=t.firstChild.marks,a=s,h=l;for(let i=0;ie.mark(r.addToSet(e.marks));else{if(0!=a.length||1!=h.length)return null;r=h[0],n="remove",o=e=>e.mark(r.removeFromSet(e.marks))}let c=[];for(let i=0;ik(e.state.tr.insertText(t,b,S));e.someProp("handleTextInput",r=>r(e,b,S,t,n))||e.dispatch(n())}else e.dispatch(k());else e.dispatch(k())}function Ei(e,t,n){return Math.max(n.anchor,n.head)>t.content.size?null:Xn(e,t.resolve(n.anchor),t.resolve(n.head))}function Ai(e,t,n){let r=e.depth,i=t?e.end():e.pos;for(;r>0&&(t||e.indexAfter(r)==e.node(r).childCount);)r--,i++,t=!1;if(n){let t=e.node(r).maybeChild(e.indexAfter(r));for(;t&&!t.isLeaf;)t=t.firstChild,i++}return i}function $i(e){if(2!=e.length)return!1;let t=e.charCodeAt(0),n=e.charCodeAt(1);return t>=56320&&t<=57343&&n>=55296&&n<=56319}class Ri{constructor(e,t){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new Dr,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=t,this.state=t.state,this.directPlugins=t.plugins||[],this.directPlugins.forEach(Vi),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):"function"==typeof e?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=Pi(this),zi(this),this.nodeViews=Bi(this),this.docView=Nn(this.state.doc,Ii(this),wi(this),this.dom,this),this.domObserver=new Si(this,(e,t,n,r)=>Di(this,e,t,n,r)),this.domObserver.start(),function(e){for(let t in Or){let n=Or[t];e.dom.addEventListener(t,e.input.eventHandlers[t]=t=>{!Rr(e,t)||$r(e,t)||!e.editable&&t.type in Nr||n(e,t)},Tr[t]?{passive:!0}:void 0)}_t&&e.dom.addEventListener("input",()=>null),Ar(e)}(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let t in e)this._props[t]=e[t];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&Ar(this);let t=this._props;this._props=e,e.plugins&&(e.plugins.forEach(Vi),this.directPlugins=e.plugins),this.updateStateInner(e.state,t)}setProps(e){let t={};for(let n in this._props)t[n]=this._props[n];t.state=this.state;for(let n in e)t[n]=e[n];this.update(t)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,t){var n;let r=this.state,i=!1,o=!1;e.storedMarks&&this.composing&&(Kr(this),o=!0),this.state=e;let s=r.plugins!=e.plugins||this._props.plugins!=t.plugins;if(s||this._props.plugins!=t.plugins||this._props.nodeViews!=t.nodeViews){let e=Bi(this);(function(e,t){let n=0,r=0;for(let i in e){if(e[i]!=t[i])return!0;n++}for(let i in t)r++;return n!=r})(e,this.nodeViews)&&(this.nodeViews=e,i=!0)}(s||t.handleDOMEvents!=this._props.handleDOMEvents)&&Ar(this),this.editable=Pi(this),zi(this);let l=wi(this),a=Ii(this),h=r.plugins==e.plugins||r.doc.eq(e.doc)?e.scrollToSelection>r.scrollToSelection?"to selection":"preserve":"reset",c=i||!this.docView.matchesNode(e.doc,a,l);!c&&e.selection.eq(r.selection)||(o=!0);let d="preserve"==h&&o&&null==this.dom.style.overflowAnchor&&function(e){let t,n,r=e.dom.getBoundingClientRect(),i=Math.max(0,r.top);for(let o=(r.left+r.right)/2,s=i+1;s=i-20){t=r,n=l.top;break}}return{refDOM:t,refTop:n,stack:nn(e.dom)}}(this);if(o){this.domObserver.stop();let t=c&&(Ft||qt)&&!this.composing&&!r.selection.empty&&!e.selection.empty&&function(e,t){let n=Math.min(e.$anchor.sharedDepth(e.head),t.$anchor.sharedDepth(t.head));return e.$anchor.start(n)!=t.$anchor.start(n)}(r.selection,e.selection);if(c){let n=qt?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=Hr(this)),!i&&this.docView.update(e.doc,a,l,this)||(this.docView.updateOuterDeco(a),this.docView.destroy(),this.docView=Nn(e.doc,a,l,this.dom,this)),!n||this.trackWrites&&this.dom.contains(this.trackWrites)||(t=!0)}t||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&function(e){let t=e.docView.domFromPos(e.state.selection.anchor,0),n=e.domSelectionRange();return Ot(t.node,t.offset,n.anchorNode,n.anchorOffset)}(this))?_n(this,t):(Gn(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(r),(null===(n=this.dragging)||void 0===n?void 0:n.node)&&!r.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,r),"reset"==h?this.dom.scrollTop=0:"to selection"==h?this.scrollToSelection():d&&function({refDOM:e,refTop:t,stack:n}){let r=e?e.getBoundingClientRect().top:0;rn(n,0==r?0:r-t)}(d)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(e&&this.dom.contains(1==e.nodeType?e:e.parentNode))if(this.someProp("handleScrollToSelection",e=>e(this)));else if(this.state.selection instanceof ot){let t=this.docView.domAfterPos(this.state.selection.from);1==t.nodeType&&tn(this,t.getBoundingClientRect(),e)}else tn(this,this.coordsAtPos(this.state.selection.head,1),e);else;}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(e&&e.plugins==this.state.plugins&&this.directPlugins==this.prevDirectPlugins)for(let t=0;t0&&this.state.doc.nodeAt(e))==n.node&&(r=e)}this.dragging=new Xr(e.slice,e.move,r<0?void 0:ot.create(this.state.doc,r))}someProp(e,t){let n,r=this._props&&this._props[e];if(null!=r&&(n=t?t(r):r))return n;for(let o=0;ot.ownerDocument.getSelection()),this._root=t;return e||document}updateRoot(){this._root=null}posAtCoords(e){return hn(this,e)}coordsAtPos(e,t=1){return un(this,e,t)}domAtPos(e,t=0){return this.docView.domFromPos(e,t)}nodeDOM(e){let t=this.docView.descAt(e);return t?t.nodeDOM:null}posAtDOM(e,t,n=-1){let r=this.docView.posFromDOM(e,t,n);if(null==r)throw new RangeError("DOM position not inside the editor");return r}endOfTextblock(e,t){return bn(this,t||this.state,e)}pasteHTML(e,t){return Gr(this,"",e,!1,t||new ClipboardEvent("paste"))}pasteText(e,t){return Gr(this,e,null,!0,t||new ClipboardEvent("paste"))}serializeForClipboard(e){return fr(this,e)}destroy(){this.docView&&(!function(e){e.domObserver.stop();for(let t in e.input.eventHandlers)e.dom.removeEventListener(t,e.input.eventHandlers[t]);clearTimeout(e.input.composingTimeout),clearTimeout(e.input.lastIOSEnterFallbackTimeout)}(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],wi(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,Mt=null)}get isDestroyed(){return null==this.docView}dispatchEvent(e){return function(e,t){$r(e,t)||!Or[t.type]||!e.editable&&t.type in Nr||Or[t.type](e,t)}(this,e)}domSelectionRange(){let e=this.domSelection();return e?_t&&11===this.root.nodeType&&function(e){let t=e.activeElement;for(;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}(this.dom.ownerDocument)==this.dom&&function(e,t){if(t.getComposedRanges){let n=t.getComposedRanges(e.root)[0];if(n)return Ci(e,n)}let n;function r(e){e.preventDefault(),e.stopImmediatePropagation(),n=e.getTargetRanges()[0]}return e.dom.addEventListener("beforeinput",r,!0),document.execCommand("indent"),e.dom.removeEventListener("beforeinput",r,!0),n?Ci(e,n):null}(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}}function Ii(e){let t=Object.create(null);return t.class="ProseMirror",t.contenteditable=String(e.editable),e.someProp("attributes",n=>{if("function"==typeof n&&(n=n(e.state)),n)for(let e in n)"class"==e?t.class+=" "+n[e]:"style"==e?t.style=(t.style?t.style+";":"")+n[e]:t[e]||"contenteditable"==e||"nodeName"==e||(t[e]=String(n[e]))}),t.translate||(t.translate="no"),[oi.node(0,e.state.doc.content.size,t)]}function zi(e){if(e.markCursor){let t=document.createElement("img");t.className="ProseMirror-separator",t.setAttribute("mark-placeholder","true"),t.setAttribute("alt",""),e.cursorWrapper={dom:t,deco:oi.widget(e.state.selection.from,t,{raw:!0,marks:e.markCursor})}}else e.cursorWrapper=null}function Pi(e){return!e.someProp("editable",t=>!1===t(e.state))}function Bi(e){let t=Object.create(null);function n(e){for(let n in e)Object.prototype.hasOwnProperty.call(t,n)||(t[n]=e[n])}return e.someProp("nodeViews",n),e.someProp("markViews",n),t}function Vi(e){if(e.spec.state||e.spec.filterTransaction||e.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}Ri.prototype.dispatch=function(e){let t=this._props.dispatchTransaction;t?t.call(this,e):this.updateState(this.state.apply(e))};for(var Fi={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Li={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Wi="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),Ji="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),qi=0;qi<10;qi++)Fi[48+qi]=Fi[96+qi]=String(qi);for(qi=1;qi<=24;qi++)Fi[qi+111]="F"+qi;for(qi=65;qi<=90;qi++)Fi[qi]=String.fromCharCode(qi+32),Li[qi]=String.fromCharCode(qi);for(var ji in Fi)Li.hasOwnProperty(ji)||(Li[ji]=Fi[ji]);const _i="undefined"!=typeof navigator&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),Ki="undefined"!=typeof navigator&&/Win/.test(navigator.platform);function Hi(e){let t,n,r,i,o=e.split(/-(?!$)/),s=o[o.length-1];"Space"==s&&(s=" ");for(let l=0;l!e.selection.empty&&(t&&t(e.tr.deleteSelection().scrollIntoView()),!0);function Xi(e,t,n=!1){for(let r=e;r;r="start"==t?r.firstChild:r.lastChild){if(r.isTextblock)return!0;if(n&&1!=r.childCount)return!1}return!1}function Qi(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){if(e.index(t)>0)return e.doc.resolve(e.before(t+1));if(e.node(t).type.spec.isolating)break}return null}function eo(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){let n=e.node(t);if(e.index(t)+1{let{$from:n,$to:r}=e.selection,i=n.blockRange(r),o=i&&Ee(i);return null!=o&&(t&&t(e.tr.lift(i,o).scrollIntoView()),!0)};function no(e){for(let t=0;t{let{$head:n,$anchor:r}=e.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),o=n.indexAfter(-1),s=no(i.contentMatchAt(o));if(!s||!i.canReplaceWith(o,o,s))return!1;if(t){let r=n.after(),i=e.tr.replaceWith(r,r,s.createAndFill());i.setSelection(Qe.near(i.doc.resolve(r),1)),t(i.scrollIntoView())}return!0};const io=(e,t)=>{let{$from:n,$to:r}=e.selection;if(e.selection instanceof ot&&e.selection.node.isBlock)return!(!n.parentOffset||!ze(e.doc,n.pos)||(t&&t(e.tr.split(n.pos).scrollIntoView()),0));if(!n.depth)return!1;let i,o,s=[],l=!1,a=!1;for(let p=n.depth;;p--){if(n.node(p).isBlock){l=n.end(p)==n.pos+(n.depth-p),a=n.start(p)==n.pos-(n.depth-p),o=no(n.node(p-1).contentMatchAt(n.indexAfter(p-1))),s.unshift(l&&o?{type:o}:null),i=p;break}if(1==p)return!1;s.unshift(null)}let h=e.tr;(e.selection instanceof rt||e.selection instanceof lt)&&h.deleteSelection();let c=h.mapping.map(n.pos),d=ze(h.doc,c,s.length,s);if(d||(s[0]=o?{type:o}:null,d=ze(h.doc,c,s.length,s)),!d)return!1;if(h.split(c,s.length,s),!l&&a&&n.node(i).type!=o){let e=h.mapping.map(n.before(i)),t=h.doc.resolve(e);o&&n.node(i-1).canReplaceWith(t.index(),t.index()+1,o)&&h.setNodeMarkup(h.mapping.map(n.before(i)),o)}return t&&t(h.scrollIntoView()),!0};function oo(e,t,n,r){let o,s,l=t.nodeBefore,a=t.nodeAfter,h=l.type.spec.isolating||a.type.spec.isolating;if(!h&&function(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,o=t.index();return!(!(r&&i&&r.type.compatibleContent(i.type))||(!r.content.size&&t.parent.canReplace(o-1,o)?(n&&n(e.tr.delete(t.pos-r.nodeSize,t.pos).scrollIntoView()),0):!t.parent.canReplace(o,o+1)||!i.isTextblock&&!Pe(e.doc,t.pos)||(n&&n(e.tr.join(t.pos).scrollIntoView()),0)))}(e,t,n))return!0;let d=!h&&t.parent.canReplace(t.index(),t.index()+1);if(d&&(o=(s=l.contentMatchAt(l.childCount)).findWrapping(a.type))&&s.matchType(o[0]||a.type).validEnd){if(n){let r=t.pos+a.nodeSize,s=i.empty;for(let e=o.length-1;e>=0;e--)s=i.from(o[e].create(null,s));s=i.from(l.copy(s));let h=e.tr.step(new Oe(t.pos-1,r,t.pos,r,new c(s,1,0),o.length,!0)),d=h.doc.resolve(r+2*o.length);d.nodeAfter&&d.nodeAfter.type==l.type&&Pe(h.doc,d.pos)&&h.join(d.pos),n(h.scrollIntoView())}return!0}let p=a.type.spec.isolating||r>0&&h?null:Qe.findFrom(t,1),u=p&&p.$from.blockRange(p.$to),f=u&&Ee(u);if(null!=f&&f>=t.depth)return n&&n(e.tr.lift(u,f).scrollIntoView()),!0;if(d&&Xi(a,"start",!0)&&Xi(l,"end")){let r=l,o=[];for(;o.push(r),!r.isTextblock;)r=r.lastChild;let s=a,h=1;for(;!s.isTextblock;s=s.firstChild)h++;if(r.canReplace(r.childCount,r.childCount,s.content)){if(n){let r=i.empty;for(let e=o.length-1;e>=0;e--)r=i.from(o[e].copy(r));n(e.tr.step(new Oe(t.pos-o.length,t.pos+a.nodeSize,t.pos+h,t.pos+a.nodeSize-h,new c(r,o.length,0),0,!0)).scrollIntoView())}return!0}}return!1}function so(e){return function(t,n){let r=t.selection,i=e<0?r.$from:r.$to,o=i.depth;for(;i.node(o).isInline;){if(!o)return!1;o--}return!!i.node(o).isTextblock&&(n&&n(t.tr.setSelection(rt.create(t.doc,e<0?i.start(o):i.end(o)))),!0)}}const lo=so(-1),ao=so(1);function ho(e,t=null){return function(n,r){let{$from:i,$to:o}=n.selection,s=i.blockRange(o),l=s&&Ae(s,e,t);return!!l&&(r&&r(n.tr.wrap(s,l).scrollIntoView()),!0)}}function co(e,t=null){return function(n,r){let i=!1;for(let o=0;o{if(i)return!1;if(r.isTextblock&&!r.hasMarkup(e,t))if(r.type==e)i=!0;else{let t=n.doc.resolve(o),r=t.index();i=t.parent.canReplaceWith(r,r+1,e)}})}if(!i)return!1;if(r){let i=n.tr;for(let r=0;r{if(l||!r&&e.isAtom&&e.isInline&&t>=o.pos&&t+e.nodeSize<=s.pos)return!1;l=e.inlineContent&&e.type.allowsMarkType(n)}),l)return!0}return!1}(n.doc,h,e,i))return!1;if(s)if(a)e.isInSet(n.storedMarks||a.marks())?s(n.tr.removeStoredMark(e)):s(n.tr.addStoredMark(e.create(t)));else{let l,a=n.tr;i||(h=function(e){let t=[];for(let n=0;n{if(e.isAtom&&e.content.size&&e.isInline&&n>=r.pos&&n+e.nodeSize<=i.pos)return n+1>r.pos&&t.push(new et(r,r.doc.resolve(n+1))),r=r.doc.resolve(n+1+e.content.size),!1}),r.posn.doc.rangeHasMark(t.$from.pos,t.$to.pos,e)):!h.every(t=>{let n=!1;return a.doc.nodesBetween(t.$from.pos,t.$to.pos,(r,i,o)=>{if(n)return!1;n=!e.isInSet(r.marks)&&!!o&&o.type.allowsMarkType(e)&&!(r.isText&&/^\s*$/.test(r.textBetween(Math.max(0,t.$from.pos-i),Math.min(r.nodeSize,t.$to.pos-i))))}),!n});for(let n=0;n{let r=function(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock("backward",e):n.parentOffset>0)?null:n}(e,n);if(!r)return!1;let i=Qi(r);if(!i){let n=r.blockRange(),i=n&&Ee(n);return null!=i&&(t&&t(e.tr.lift(n,i).scrollIntoView()),!0)}let o=i.nodeBefore;if(oo(e,i,t,-1))return!0;if(0==r.parent.content.size&&(Xi(o,"end")||ot.isSelectable(o)))for(let s=r.depth;;s--){let n=Be(e.doc,r.before(s),r.after(s),c.empty);if(n&&n.slice.size1)break}return!(!o.isAtom||i.depth!=r.depth-1)&&(t&&t(e.tr.delete(i.pos-o.nodeSize,i.pos).scrollIntoView()),!0)},(e,t,n)=>{let{$head:r,empty:i}=e.selection,o=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("backward",e):r.parentOffset>0)return!1;o=Qi(r)}let s=o&&o.nodeBefore;return!(!s||!ot.isSelectable(s))&&(t&&t(e.tr.setSelection(ot.create(e.doc,o.pos-s.nodeSize)).scrollIntoView()),!0)}),mo=uo(Zi,(e,t,n)=>{let r=function(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock("forward",e):n.parentOffset{let{$head:r,empty:i}=e.selection,o=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("forward",e):r.parentOffset{let{$head:n,$anchor:r}=e.selection;return!(!n.parent.type.spec.code||!n.sameParent(r))&&(t&&t(e.tr.insertText("\n").scrollIntoView()),!0)},(e,t)=>{let n=e.selection,{$from:r,$to:i}=n;if(n instanceof lt||r.parent.inlineContent||i.parent.inlineContent)return!1;let o=no(i.parent.contentMatchAt(i.indexAfter()));if(!o||!o.isTextblock)return!1;if(t){let n=(!r.parentOffset&&i.index(){let{$cursor:n}=e.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let r=n.before();if(ze(e.doc,r))return t&&t(e.tr.split(r).scrollIntoView()),!0}let r=n.blockRange(),i=r&&Ee(r);return null!=i&&(t&&t(e.tr.lift(r,i).scrollIntoView()),!0)},io),"Mod-Enter":ro,Backspace:fo,"Mod-Backspace":fo,"Shift-Backspace":fo,Delete:mo,"Mod-Delete":mo,"Mod-a":(e,t)=>(t&&t(e.tr.setSelection(new lt(e.doc))),!0)},yo={"Ctrl-h":go.Backspace,"Alt-Backspace":go["Mod-Backspace"],"Ctrl-d":go.Delete,"Ctrl-Alt-Backspace":go["Mod-Delete"],"Alt-Delete":go["Mod-Delete"],"Alt-d":go["Mod-Delete"],"Ctrl-a":lo,"Ctrl-e":ao};for(let os in go)yo[os]=go[os];const wo=("undefined"!=typeof navigator?/Mac|iP(hone|[oa]d)/.test(navigator.platform):!("undefined"==typeof os||!os.platform)&&"darwin"==os.platform())?yo:go;class vo{constructor(e,t,n={}){var r;this.match=e,this.match=e,this.handler="string"==typeof t?(r=t,function(e,t,n,i){let o=r;if(t[1]){let e=t[0].lastIndexOf(t[1]);o+=t[0].slice(e+t[1].length);let r=(n+=e)-i;r>0&&(o=t[0].slice(e-r,e)+o,n=i)}return e.tr.insertText(o,n,i)}):t,this.undoable=!1!==n.undoable,this.inCode=n.inCode||!1,this.inCodeMark=!1!==n.inCodeMark}}function xo({rules:e}){let t=new wt({state:{init:()=>null,apply(e,t){let n=e.getMeta(this);return n||(e.selectionSet||e.docChanged?null:t)}},props:{handleTextInput:(n,r,i,o)=>bo(n,r,i,o,e,t),handleDOMEvents:{compositionend:n=>{setTimeout(()=>{let{$cursor:r}=n.state.selection;r&&bo(n,r.pos,r.pos,"",e,t)})}}},isInputRules:!0});return t}function bo(e,t,n,r,i,o){if(e.composing)return!1;let s=e.state,l=s.doc.resolve(t),a=l.parent.textBetween(Math.max(0,l.parentOffset-500),l.parentOffset,null,"")+r;for(let h=0;he.type.spec.code))continue;if(l.parent.type.spec.code){if(!c.inCode)continue}else if("only"===c.inCode)continue;let d=c.match.exec(a);if(!d||d[0].length{t.isInline&&t.marks.some(e=>e.type.spec.code)&&(e=!0)}),e)continue}let u=c.handler(s,d,p,n);if(u)return c.undoable&&u.setMeta(o,{transform:u,from:t,to:n,text:r}),e.dispatch(u),!0}return!1}const So=(e,t)=>{let n=e.plugins;for(let r=0;r=0;e--)n.step(r.steps[e].invert(r.docs[e]));if(i.text){let t=n.doc.resolve(i.from).marks();n.replaceWith(i.from,i.to,e.schema.text(i.text,t))}else n.delete(i.from,i.to);t(n)}return!0}}return!1};function ko(e,t,n=null,r){return new vo(e,(e,i,o,s)=>{let l=n instanceof Function?n(i):n,a=e.tr.delete(o,s),h=a.doc.resolve(o).blockRange(),c=h&&Ae(h,t,l);if(!c)return null;a.wrap(h,c);let d=a.doc.resolve(o-1).nodeBefore;return d&&d.type==t&&Pe(a.doc,o-1)&&(!r||r(i,d))&&a.join(o-1),a})}function Mo(e,t,n=null){return new vo(e,(e,r,i,o)=>{let s=e.doc.resolve(i),l=n instanceof Function?n(r):n;return s.node(-1).canReplaceWith(s.index(-1),s.indexAfter(-1),t)?e.tr.delete(i,o).setBlockType(i,i,t,l):null})}new vo(/--$/,"—",{inCodeMark:!1}),new vo(/\.\.\.$/,"…",{inCodeMark:!1}),new vo(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(")$/,"“",{inCodeMark:!1}),new vo(/"$/,"”",{inCodeMark:!1}),new vo(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(')$/,"‘",{inCodeMark:!1}),new vo(/'$/,"’",{inCodeMark:!1});const Co=["ol",0],Oo=["ul",0],No=["li",0],To={attrs:{order:{default:1,validate:"number"}},parseDOM:[{tag:"ol",getAttrs:e=>({order:e.hasAttribute("start")?+e.getAttribute("start"):1})}],toDOM:e=>1==e.attrs.order?Co:["ol",{start:e.attrs.order},0]},Do={parseDOM:[{tag:"ul"}],toDOM:()=>Oo},Eo={parseDOM:[{tag:"li"}],toDOM:()=>No,defining:!0};function Ao(e,t){let n={};for(let r in e)n[r]=e[r];for(let r in t)n[r]=t[r];return n}function $o(e,t,n){return e.append({ordered_list:Ao(To,{content:"list_item+",group:n}),bullet_list:Ao(Do,{content:"list_item+",group:n}),list_item:Ao(Eo,{content:t})})}function Ro(e,t=null){return function(n,r){let{$from:o,$to:s}=n.selection,l=o.blockRange(s);if(!l)return!1;let a=r?n.tr:null;return!!function(e,t,n,r=null){let o=!1,s=t,l=t.$from.doc;if(t.depth>=2&&t.$from.node(t.depth-1).type.compatibleContent(n)&&0==t.startIndex){if(0==t.$from.index(t.depth-1))return!1;let e=l.resolve(t.start-2);s=new O(e,e,t.depth),t.endIndex=0;c--)s=i.from(n[c].type.create(n[c].attrs,s));e.step(new Oe(t.start-(r?2:0),t.end,t.start,t.end,new c(s,0,0),n.length,!0));let l=0;for(let i=0;i=o.depth-3;e--)t=i.from(o.node(e).copy(t));let l=o.indexAfter(-1){if(d>-1)return!1;e.isTextblock&&0==e.content.size&&(d=t+1)}),d>-1&&h.setSelection(Qe.near(h.doc.resolve(d))),r(h.scrollIntoView())}return!0}let h=s.pos==o.end()?a.contentMatchAt(0).defaultType:null,d=n.tr.delete(o.pos,s.pos),p=h?[t?{type:e,attrs:t}:null,{type:h}]:void 0;return!!ze(d.doc,o.pos,2,p)&&(r&&r(d.split(o.pos,2,p).scrollIntoView()),!0)}}function zo(e){return function(t,n){let{$from:r,$to:o}=t.selection,s=r.blockRange(o,t=>t.childCount>0&&t.firstChild.type==e);return!!s&&(!n||(r.node(s.depth-1).type==e?function(e,t,n,r){let o=e.tr,s=r.end,l=r.$to.end(r.depth);sm;c--)i-=o.child(c).nodeSize,r.delete(i-1,i+1);let s=r.doc.resolve(n.start),l=s.nodeAfter;if(r.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let a=0==n.startIndex,h=n.endIndex==o.childCount,d=s.node(-1),p=s.index(-1);if(!d.canReplace(p+(a?0:1),p+1,l.content.append(h?i.empty:i.from(o))))return!1;let u=s.pos,f=u+l.nodeSize;return r.step(new Oe(u-(a?1:0),f+(h?1:0),u+1,f-1,new c((a?i.empty:i.from(o.copy(i.empty))).append(h?i.empty:i.from(o.copy(i.empty))),a?0:1,h?0:1),a?0:1)),t(r.scrollIntoView()),!0}(t,n,s)))}}function Po(e){return function(t,n){let{$from:r,$to:o}=t.selection,s=r.blockRange(o,t=>t.childCount>0&&t.firstChild.type==e);if(!s)return!1;let l=s.startIndex;if(0==l)return!1;let a=s.parent,h=a.child(l-1);if(h.type!=e)return!1;if(n){let r=h.lastChild&&h.lastChild.type==a.type,o=i.from(r?e.create():null),l=new c(i.from(e.create(null,i.from(a.type.create(null,o)))),r?3:1,0),d=s.start,p=s.end;n(t.tr.step(new Oe(d-(r?3:1),p,d,p,l,1,!0)).scrollIntoView())}return!0}}var Bo=200,Vo=function(){};Vo.prototype.append=function(e){return e.length?(e=Vo.from(e),!this.length&&e||e.length=t?Vo.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},Vo.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},Vo.prototype.forEach=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=this.length),t<=n?this.forEachInner(e,t,n,0):this.forEachInvertedInner(e,t,n,0)},Vo.prototype.map=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=this.length);var r=[];return this.forEach(function(t,n){return r.push(e(t,n))},t,n),r},Vo.from=function(e){return e instanceof Vo?e:e&&e.length?new Fo(e):Vo.empty};var Fo=function(e){function t(t){e.call(this),this.values=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(e,n){return 0==e&&n==this.length?this:new t(this.values.slice(e,n))},t.prototype.getInner=function(e){return this.values[e]},t.prototype.forEachInner=function(e,t,n,r){for(var i=t;i=n;i--)if(!1===e(this.values[i],r+i))return!1},t.prototype.leafAppend=function(e){if(this.length+e.length<=Bo)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=Bo)return new t(e.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(t.prototype,n),t}(Vo);Vo.empty=new Fo([]);var Lo=function(e){function t(t,n){e.call(this),this.left=t,this.right=n,this.length=t.length+n.length,this.depth=Math.max(t.depth,n.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(e){return ei&&!1===this.right.forEachInner(e,Math.max(t-i,0),Math.min(this.length,n)-i,r+i))&&void 0)},t.prototype.forEachInvertedInner=function(e,t,n,r){var i=this.left.length;return!(t>i&&!1===this.right.forEachInvertedInner(e,t-i,Math.max(n,i)-i,r+i))&&(!(n=n?this.right.slice(e-n,t-n):this.left.slice(e,n).append(this.right.slice(0,t-n))},t.prototype.leafAppend=function(e){var n=this.right.leafAppend(e);if(n)return new t(this.left,n)},t.prototype.leafPrepend=function(e){var n=this.left.leafPrepend(e);if(n)return new t(n,this.right)},t.prototype.appendInner=function(e){return this.left.depth>=Math.max(this.right.depth,e.depth)+1?new t(this.left,new t(this.right,e)):new t(this,e)},t}(Vo);class Wo{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(0==this.eventCount)return null;let n,r,i=this.items.length;for(;;i--){if(this.items.get(i-1).selection){--i;break}}t&&(n=this.remapping(i,this.items.length),r=n.maps.length);let o,s,l=e.tr,a=[],h=[];return this.items.forEach((e,t)=>{if(!e.step)return n||(n=this.remapping(i,t+1),r=n.maps.length),r--,void h.push(e);if(n){h.push(new Jo(e.map));let t,i=e.step.map(n.slice(r));i&&l.maybeStep(i).doc&&(t=l.mapping.maps[l.mapping.maps.length-1],a.push(new Jo(t,void 0,void 0,a.length+h.length))),r--,t&&n.appendMap(t,r)}else l.maybeStep(e.step);return e.selection?(o=n?e.selection.map(n.slice(r)):e.selection,s=new Wo(this.items.slice(0,i).append(h.reverse().concat(a)),this.eventCount-1),!1):void 0},this.items.length,0),{remaining:s,transform:l,selection:o}}addTransform(e,t,n,r){let i=[],o=this.eventCount,s=this.items,l=!r&&s.length?s.get(s.length-1):null;for(let h=0;hjo&&(s=function(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&0==t--)return n=r,!1}),e.slice(n)}(s,a),o-=a),new Wo(s.append(i),o)}remapping(e,t){let n=new ge;return this.items.forEach((t,r)=>{let i=null!=t.mirrorOffset&&r-t.mirrorOffset>=e?n.maps.length-t.mirrorOffset:void 0;n.appendMap(t.map,i)},e,t),n}addMaps(e){return 0==this.eventCount?this:new Wo(this.items.append(e.map(e=>new Jo(e))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;let n=[],r=Math.max(0,this.items.length-t),i=e.mapping,o=e.steps.length,s=this.eventCount;this.items.forEach(e=>{e.selection&&s--},r);let l=t;this.items.forEach(t=>{let r=i.getMirror(--l);if(null==r)return;o=Math.min(o,r);let a=i.maps[r];if(t.step){let o=e.steps[r].invert(e.docs[r]),h=t.selection&&t.selection.map(i.slice(l+1,r));h&&s++,n.push(new Jo(a,o,h))}else n.push(new Jo(a))},r);let a=[];for(let d=t;d500&&(c=c.compress(this.items.length-n.length)),c}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.length,r=[],i=0;return this.items.forEach((o,s)=>{if(s>=e)r.push(o),o.selection&&i++;else if(o.step){let e=o.step.map(t.slice(n)),s=e&&e.getMap();if(n--,s&&t.appendMap(s,n),e){let l=o.selection&&o.selection.map(t.slice(n));l&&i++;let a,h=new Jo(s.invert(),e,l),c=r.length-1;(a=r.length&&r[c].merge(h))?r[c]=a:r.push(h)}}else o.map&&n--},this.items.length,0),new Wo(Vo.from(r.reverse()),i)}}Wo.empty=new Wo(Vo.empty,0);class Jo{constructor(e,t,n,r){this.map=e,this.step=t,this.selection=n,this.mirrorOffset=r}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new Jo(t.getMap().invert(),t,this.selection)}}}class qo{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}}const jo=20;function _o(e){let t=[];for(let n=e.length-1;n>=0&&0==t.length;n--)e[n].forEach((e,n,r,i)=>t.push(r,i));return t}function Ko(e,t){if(!e)return null;let n=[];for(let r=0;rnew qo(Wo.empty,Wo.empty,null,0,-1),apply:(t,n,r)=>function(e,t,n,r){let i,o=n.getMeta(Go);if(o)return o.historyState;n.getMeta(Zo)&&(e=new qo(e.done,e.undone,null,0,-1));let s=n.getMeta("appendedTransaction");if(0==n.steps.length)return e;if(s&&s.getMeta(Go))return s.getMeta(Go).redo?new qo(e.done.addTransform(n,void 0,r,Uo(t)),e.undone,_o(n.mapping.maps),e.prevTime,e.prevComposition):new qo(e.done,e.undone.addTransform(n,void 0,r,Uo(t)),null,e.prevTime,e.prevComposition);if(!1===n.getMeta("addToHistory")||s&&!1===s.getMeta("addToHistory"))return(i=n.getMeta("rebased"))?new qo(e.done.rebased(n,i),e.undone.rebased(n,i),Ko(e.prevRanges,n.mapping),e.prevTime,e.prevComposition):new qo(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),Ko(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);{let i=n.getMeta("composition"),o=0==e.prevTime||!s&&e.prevComposition!=i&&(e.prevTime<(n.time||0)-r.newGroupDelay||!function(e,t){if(!t)return!1;if(!e.docChanged)return!0;let n=!1;return e.mapping.maps[0].forEach((e,r)=>{for(let i=0;i=t[i]&&(n=!0)}),n}(n,e.prevRanges)),l=s?Ko(e.prevRanges,n.mapping):_o(n.mapping.maps);return new qo(e.done.addTransform(n,o?t.selection.getBookmark():void 0,r,Uo(t)),Wo.empty,l,n.time,null==i?e.prevComposition:i)}}(n,r,t,e)},config:e,props:{handleDOMEvents:{beforeinput(e,t){let n=t.inputType,r="historyUndo"==n?es:"historyRedo"==n?ts:null;return!(!r||!e.editable)&&(t.preventDefault(),r(e.state,e.dispatch))}}}})}function Qo(e,t){return(n,r)=>{let i=Go.getState(n);if(!i||0==(e?i.undone:i.done).eventCount)return!1;if(r){let o=function(e,t,n){let r=Uo(t),i=Go.get(t).spec.config,o=(n?e.undone:e.done).popEvent(t,r);if(!o)return null;let s=o.selection.resolve(o.transform.doc),l=(n?e.done:e.undone).addTransform(o.transform,t.selection.getBookmark(),i,r),a=new qo(n?l:o.remaining,n?o.remaining:l,null,0,-1);return o.transform.setSelection(s).setMeta(Go,{redo:n,historyState:a})}(i,n,e);o&&r(t?o.scrollIntoView():o)}return!0}}const es=Qo(!1,!0),ts=Qo(!0,!0);function ns(e){let t=Go.getState(e);return t?t.done.eventCount:0}function rs(e){let t=Go.getState(e);return t?t.undone.eventCount:0}function is(e){return(is="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ss(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t1&&void 0!==arguments[1]&&arguments[1],n=e.to,r=e.from;if(n&&(r||!1!==t)&&this.transports[n])if(t)this.transports[n]=[];else{var i=this.$_getTransportIndex(e);if(i>=0){var o=this.transports[n].slice(0);o.splice(i,1),this.transports[n]=o}}},registerTarget:function(e,t,n){ls&&(this.trackInstances&&!n&&this.targets[e]&&console.warn("[portal-vue]: Target ".concat(e," already exists")),this.$set(this.targets,e,Object.freeze([t])))},unregisterTarget:function(e){this.$delete(this.targets,e)},registerSource:function(e,t,n){ls&&(this.trackInstances&&!n&&this.sources[e]&&console.warn("[portal-vue]: source ".concat(e," already exists")),this.$set(this.sources,e,Object.freeze([t])))},unregisterSource:function(e){this.$delete(this.sources,e)},hasTarget:function(e){return!(!this.targets[e]||!this.targets[e][0])},hasSource:function(e){return!(!this.sources[e]||!this.sources[e][0])},hasContentFor:function(e){return!!this.transports[e]&&!!this.transports[e].length},$_getTransportIndex:function(e){var t=e.to,n=e.from;for(var r in this.transports[t])if(this.transports[t][r].from===n)return+r;return-1}}}),us=new ps(hs),fs=1,ms=e.extend({name:"portal",props:{disabled:{type:Boolean},name:{type:String,default:function(){return String(fs++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}}},created:function(){var e=this;this.$nextTick(function(){us.registerSource(e.name,e)})},mounted:function(){this.disabled||this.sendUpdate()},updated:function(){this.disabled?this.clear():this.sendUpdate()},beforeDestroy:function(){us.unregisterSource(this.name),this.clear()},watch:{to:function(e,t){t&&t!==e&&this.clear(t),this.sendUpdate()}},methods:{clear:function(e){var t={from:this.name,to:e||this.to};us.close(t)},normalizeSlots:function(){return this.$scopedSlots.default?[this.$scopedSlots.default]:this.$slots.default},normalizeOwnChildren:function(e){return"function"==typeof e?e(this.slotProps):e},sendUpdate:function(){var e=this.normalizeSlots();if(e){var t={from:this.name,to:this.to,passengers:ss(e),order:this.order};us.open(t)}else this.clear()}},render:function(e){var t=this.$slots.default||this.$scopedSlots.default||[],n=this.tag;return t&&this.disabled?t.length<=1&&this.slim?this.normalizeOwnChildren(t)[0]:e(n,[this.normalizeOwnChildren(t)]):this.slim?e():e(n,{class:{"v-portal":!0},style:{display:"none"},key:"v-portal-placeholder"})}}),gs=e.extend({name:"portalTarget",props:{multiple:{type:Boolean,default:!1},name:{type:String,required:!0},slim:{type:Boolean,default:!1},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},data:function(){return{transports:us.transports,firstRender:!0}},created:function(){var e=this;this.$nextTick(function(){us.registerTarget(e.name,e)})},watch:{ownTransports:function(){this.$emit("change",this.children().length>0)},name:function(e,t){us.unregisterTarget(t),us.registerTarget(e,this)}},mounted:function(){var e=this;this.transition&&this.$nextTick(function(){e.firstRender=!1})},beforeDestroy:function(){us.unregisterTarget(this.name)},computed:{ownTransports:function(){var e=this.transports[this.name]||[];return this.multiple?e:0===e.length?[]:[e[e.length-1]]},passengers:function(){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.reduce(function(e,n){var r=n.passengers[0],i="function"==typeof r?r(t):n.passengers;return e.concat(i)},[])}(this.ownTransports,this.slotProps)}},methods:{children:function(){return 0!==this.passengers.length?this.passengers:this.$scopedSlots.default?this.$scopedSlots.default(this.slotProps):this.$slots.default||[]},noWrapper:function(){var e=this.slim&&!this.transition;return e&&this.children().length>1&&console.warn("[portal-vue]: PortalTarget with `slim` option received more than one child element."),e}},render:function(e){var t=this.noWrapper(),n=this.children(),r=this.transition||this.tag;return t?n[0]:this.slim&&!r?e():e(r,{props:{tag:this.transition&&this.tag?this.tag:void 0},class:{"vue-portal-target":!0}},n)}}),ys=0,ws=["disabled","name","order","slim","slotProps","tag","to"],vs=["multiple","transition"],xs=e.extend({name:"MountingPortal",inheritAttrs:!1,props:{append:{type:[Boolean,String]},bail:{type:Boolean},mountTo:{type:String,required:!0},disabled:{type:Boolean},name:{type:String,default:function(){return"mounted_"+String(ys++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}},multiple:{type:Boolean,default:!1},targetSlim:{type:Boolean},targetSlotProps:{type:Object,default:function(){return{}}},targetTag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},created:function(){if("undefined"!=typeof document){var e=document.querySelector(this.mountTo);if(e){var t=this.$props;if(us.targets[t.name])t.bail?console.warn("[portal-vue]: Target ".concat(t.name," is already mounted.\n Aborting because 'bail: true' is set")):this.portalTarget=us.targets[t.name];else{var n=t.append;if(n){var r="string"==typeof n?n:"DIV",i=document.createElement(r);e.appendChild(i),e=i}var o=as(this.$props,vs);o.slim=this.targetSlim,o.tag=this.targetTag,o.slotProps=this.targetSlotProps,o.name=this.to,this.portalTarget=new gs({el:e,parent:this.$parent||this,propsData:o})}}else console.error("[portal-vue]: Mount Point '".concat(this.mountTo,"' not found in document"))}},beforeDestroy:function(){var e=this.portalTarget;if(this.append){var t=e.$el;t.parentNode.removeChild(t)}e.$destroy()},render:function(e){if(!this.portalTarget)return console.warn("[portal-vue] Target wasn't mounted"),e();if(!this.$scopedSlots.manual){var t=as(this.$props,ws);return e(ms,{props:t,attrs:this.$attrs,on:this.$listeners,scopedSlots:this.$scopedSlots},this.$slots.default)}var n=this.$scopedSlots.manual({to:this.to});return Array.isArray(n)&&(n=n[0]),n||e()}});var bs={install:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.component(t.portalName||"Portal",ms),e.component(t.portalTargetName||"PortalTarget",gs),e.component(t.MountingPortalName||"MountingPortal",xs)}},Ss=new Map;function ks(e){var t=Ss.get(e);t&&t.destroy()}function Ms(e){var t=Ss.get(e);t&&t.update()}var Cs=null;"undefined"==typeof window?((Cs=function(e){return e}).destroy=function(e){return e},Cs.update=function(e){return e}):((Cs=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return function(e){if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!Ss.has(e)){var t,n=null,r=window.getComputedStyle(e),i=(t=e.value,function(){s({testForHeightReduction:""===t||!e.value.startsWith(t),restoreTextAlign:null}),t=e.value}),o=function(t){e.removeEventListener("autosize:destroy",o),e.removeEventListener("autosize:update",l),e.removeEventListener("input",i),window.removeEventListener("resize",l),Object.keys(t).forEach(function(n){return e.style[n]=t[n]}),Ss.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,textAlign:e.style.textAlign,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",o),e.addEventListener("autosize:update",l),e.addEventListener("input",i),window.addEventListener("resize",l),e.style.overflowX="hidden",e.style.wordWrap="break-word",Ss.set(e,{destroy:o,update:l}),l()}function s(t){var i,o,l=t.restoreTextAlign,a=void 0===l?null:l,h=t.testForHeightReduction,c=void 0===h||h,d=r.overflowY;if(0!==e.scrollHeight&&("vertical"===r.resize?e.style.resize="none":"both"===r.resize&&(e.style.resize="horizontal"),c&&(i=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push([e.parentNode,e.parentNode.scrollTop]),e=e.parentNode;return function(){return t.forEach(function(e){var t=e[0],n=e[1];t.style.scrollBehavior="auto",t.scrollTop=n,t.style.scrollBehavior=null})}}(e),e.style.height=""),o="content-box"===r.boxSizing?e.scrollHeight-(parseFloat(r.paddingTop)+parseFloat(r.paddingBottom)):e.scrollHeight+parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),"none"!==r.maxHeight&&o>parseFloat(r.maxHeight)?("hidden"===r.overflowY&&(e.style.overflow="scroll"),o=parseFloat(r.maxHeight)):"hidden"!==r.overflowY&&(e.style.overflow="hidden"),e.style.height=o+"px",a&&(e.style.textAlign=a),i&&i(),n!==o&&(e.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),n=o),d!==r.overflow&&!a)){var p=r.textAlign;"hidden"===r.overflow&&(e.style.textAlign="start"===p?"end":"start"),s({restoreTextAlign:p,testForHeightReduction:!0})}}function l(){s({testForHeightReduction:!0,restoreTextAlign:null})}}(e)}),e}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],ks),e},Cs.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],Ms),e});var Os=Cs;function Ns(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ts,Ds={exports:{}};var Es=(Ts||(Ts=1,Ds.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",i="second",o="minute",s="hour",l="day",a="week",h="month",c="quarter",d="year",p="date",u="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},y=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},w={s:y,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?"+":"-")+y(r,2,"0")+":"+y(i,2,"0")},m:function e(t,n){if(t.date()1)return e(s[0])}else{var l=t.name;x[l]=t,i=l}return!r&&i&&(v=i),i||!r&&v},M=function(e,t){if(S(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new O(n)},C=w;C.l=k,C.i=S,C.w=function(e,t){return M(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var O=function(){function g(e){this.$L=k(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[b]=!0}var y=g.prototype;return y.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(C.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(f);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(t)}(e),this.init()},y.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},y.$utils=function(){return C},y.isValid=function(){return!(this.$d.toString()===u)},y.isSame=function(e,t){var n=M(e);return this.startOf(t)<=n&&n<=this.endOf(t)},y.isAfter=function(e,t){return M(e)68?1900:2e3)},a=function(e){return function(t){this[e]=+t}},h=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],c=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?"pm":"PM");return n},p={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[i,a("seconds")],ss:[i,a("seconds")],m:[i,a("minutes")],mm:[i,a("minutes")],H:[i,a("hours")],h:[i,a("hours")],HH:[i,a("hours")],hh:[i,a("hours")],D:[i,a("day")],DD:[r,a("day")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],w:[i,a("week")],ww:[r,a("week")],M:[i,a("month")],MM:[r,a("month")],MMM:[o,function(e){var t=c("months"),n=(c("monthsShort")||t.map(function(e){return e.slice(0,3)})).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=c("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,a("year")],YY:[r,function(e){this.year=l(e)}],YYYY:[/\d{4}/,a("year")],Z:h,ZZ:h};function u(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(e,t,n){return t||n.slice(1)})})).match(t),l=o.length,a=0;a-1)return new Date(("X"===t?1e3:1)*e);var i=u(t)(e),o=i.year,s=i.month,l=i.day,a=i.hours,h=i.minutes,c=i.seconds,d=i.milliseconds,p=i.zone,f=i.week,m=new Date,g=l||(o||s?1:m.getDate()),y=o||m.getFullYear(),w=0;o&&!s||(w=s>0?s-1:m.getMonth());var v,x=a||0,b=h||0,S=c||0,k=d||0;return p?new Date(Date.UTC(y,w,g,x,b,S,k+60*p.offset*1e3)):n?new Date(Date.UTC(y,w,g,x,b,S,k)):(v=new Date(y,w,g,x,b,S,k),f&&(v=r(v).week(f).toDate()),v)}catch(M){return new Date("")}}(t,l,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),c&&t!=this.format(l)&&(this.$d=new Date("")),s={}}else if(l instanceof Array)for(var p=l.length,f=1;f<=p;f+=1){o[1]=l[f-1];var m=n.apply(this,o);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}f===p&&(this.$d=new Date(""))}else i.call(this,e)}}}()),Rs.exports);const zs=Ns(Is);function Ps(e){return{all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(e){e(n)}),(r=e.get("*"))&&r.slice().map(function(e){e(t,n)})}}}export{As as A,zs as B,Os as C,U as D,gt as E,i as F,Ps as G,vo as I,ot as N,wt as P,c as S,rt as T,to as a,ho as b,Po as c,Io as d,$o as e,ko as f,po as g,ro as h,uo as i,H as j,Ui as k,zo as l,xo as m,Ri as n,oe as o,wo as p,ns as q,rs as r,co as s,Mo as t,So as u,ts as v,Ro as w,es as x,Xo as y,bs as z}; diff --git a/kirby/src/Api/Controller/Changes.php b/kirby/src/Api/Controller/Changes.php index 12c59d9..9e0f861 100644 --- a/kirby/src/Api/Controller/Changes.php +++ b/kirby/src/Api/Controller/Changes.php @@ -5,6 +5,7 @@ namespace Kirby\Api\Controller; use Kirby\Cms\Language; use Kirby\Cms\ModelWithContent; use Kirby\Content\Lock; +use Kirby\Exception\PermissionException; use Kirby\Filesystem\F; use Kirby\Form\Fields; use Kirby\Form\Form; @@ -40,6 +41,12 @@ class Changes */ public static function discard(ModelWithContent $model): array { + if ($model->permissions()->can('update') === false) { + throw new PermissionException( + key: 'version.discard.permission', + ); + } + $model->version('changes')->delete('current'); // Removes the old .lock file when it is no longer needed @@ -56,6 +63,12 @@ class Changes */ public static function publish(ModelWithContent $model, array $input): array { + if ($model->permissions()->can('update') === false) { + throw new PermissionException( + key: 'version.publish.permission', + ); + } + // save the given changes first static::save( model: $model, @@ -91,6 +104,12 @@ class Changes */ public static function save(ModelWithContent $model, array $input): array { + if ($model->permissions()->can('update') === false) { + throw new PermissionException( + key: 'version.save.permission', + ); + } + // Removes the old .lock file when it is no longer needed // @todo Remove in 6.0.0 static::cleanup($model); diff --git a/kirby/src/Cms/App.php b/kirby/src/Cms/App.php index 8295a3e..839f056 100644 --- a/kirby/src/Cms/App.php +++ b/kirby/src/Cms/App.php @@ -36,6 +36,7 @@ use Kirby\Toolkit\LazyValue; use Kirby\Toolkit\Locale; use Kirby\Toolkit\Str; use Kirby\Uuid\Uuid; +use Kirby\Uuid\Uuids; use Throwable; /** @@ -106,6 +107,9 @@ class App Snippet::$cache = []; VersionCache::reset(); + // reset the UUIDs option cache + Uuids::$enabled = null; + // register all roots to be able to load stuff afterwards $this->bakeRoots($props['roots'] ?? []); @@ -421,6 +425,7 @@ class App public function contentToken(object|null $model, string $value): string { $default = $this->root('content'); + $default = realpath($default) ?: $default; if ($model !== null && method_exists($model, 'id') === true) { $default .= '/' . $model->id(); @@ -1029,7 +1034,7 @@ class App // load the main config options $root = $this->root('config'); - $options = F::load($root . '/config.php', [], allowOutput: false); + $options = F::load($root . '/config.php', [], allowOutput: false, cache: true); // merge into one clean options array return $this->options = array_replace_recursive(Config::$data, $options); @@ -1044,7 +1049,7 @@ class App $root = $this->root('config'); // first load `config/env.php` to access its `url` option - $envOptions = F::load($root . '/env.php', [], allowOutput: false); + $envOptions = F::load($root . '/env.php', [], allowOutput: false, cache: true); // use the option from the main `config.php`, // but allow the `env.php` to override it diff --git a/kirby/src/Cms/AppErrors.php b/kirby/src/Cms/AppErrors.php index 1dc565e..9ebb44d 100644 --- a/kirby/src/Cms/AppErrors.php +++ b/kirby/src/Cms/AppErrors.php @@ -4,7 +4,6 @@ namespace Kirby\Cms; use Closure; use Kirby\Exception\Exception; -use Kirby\Filesystem\F; use Kirby\Http\Response; use Kirby\Toolkit\I18n; use Throwable; @@ -38,6 +37,25 @@ trait AppErrors */ protected Whoops $whoops; + /** + * Replaces absolute file paths with placeholders such as + * {kirby_folder}, {site_folder} or {index_folder} to avoid + * exposing too many details about the filesystem and keeping + * error responses short and readable in debug mode. + * + * @since 5.3.0 + */ + protected function disguiseFilePath(string $file): string + { + $disguise = [ + $this->root('kirby') => '{kirby}', + $this->root('site') => '{site}', + $this->root('index') => '{index}' + ]; + + return str_replace(array_keys($disguise), array_values($disguise), $file); + } + /** * Registers the PHP error handler for CLI usage */ @@ -150,10 +168,7 @@ trait AppErrors 'code' => $code, 'message' => $exception->getMessage(), 'details' => $details, - 'file' => F::relativepath( - $exception->getFile(), - $this->environment()->get('DOCUMENT_ROOT', '') - ), + 'file' => $this->disguiseFilePath($exception->getFile()), 'line' => $exception->getLine(), ], $httpCode); } else { diff --git a/kirby/src/Cms/Auth.php b/kirby/src/Cms/Auth.php index 66e73bc..dd7cee3 100644 --- a/kirby/src/Cms/Auth.php +++ b/kirby/src/Cms/Auth.php @@ -351,6 +351,7 @@ class Auth /** * Returns the hashed ip of the visitor * which is used to track invalid logins + * @deprecated 5.3.0 Use `$visitor->ip(hash: true)` instead. Will be removed in Kirby 6. */ public function ipHash(): string { @@ -365,7 +366,7 @@ class Auth */ public function isBlocked(string $email): bool { - $ip = $this->ipHash(); + $ip = $this->kirby->visitor()->ip(hash: true); $log = $this->log(); $trials = $this->kirby->option('auth.trials', 10); @@ -669,7 +670,7 @@ class Auth $this->kirby->trigger('user.login:failed', compact('email')); } - $ip = $this->ipHash(); + $ip = $this->kirby->visitor()->ip(hash: true); $log = $this->log(); $time = time(); diff --git a/kirby/src/Cms/Blueprint.php b/kirby/src/Cms/Blueprint.php index 1423ffb..9d2f3cc 100644 --- a/kirby/src/Cms/Blueprint.php +++ b/kirby/src/Cms/Blueprint.php @@ -124,8 +124,14 @@ class Blueprint continue; } + $template = $section->template(); $templates = match ($section->type()) { - 'files' => [...$templates, $section->template() ?? 'default'], + 'files' => [ + ...$templates, + ...($template + ? [$template] + : App::instance()->blueprints('files')) + ], 'fields' => [ ...$templates, ...$this->acceptedFileTemplatesFromFields($section->fields()) diff --git a/kirby/src/Cms/Collection.php b/kirby/src/Cms/Collection.php index b7284a1..6e9de7a 100644 --- a/kirby/src/Cms/Collection.php +++ b/kirby/src/Cms/Collection.php @@ -167,7 +167,7 @@ class Collection extends BaseCollection $groups = new self(parent: $this->parent()); if (is_string($field) === true) { - foreach ($this->data as $key => $item) { + foreach ($this as $key => $item) { $value = $this->getAttribute($item, $field); // make sure that there's always a proper value to group by diff --git a/kirby/src/Cms/FileActions.php b/kirby/src/Cms/FileActions.php index 839da7b..1fc51a6 100644 --- a/kirby/src/Cms/FileActions.php +++ b/kirby/src/Cms/FileActions.php @@ -90,6 +90,8 @@ trait FileActions $newFile->parent()->files()->remove($oldFile->id()); $newFile->parent()->files()->set($newFile->id(), $newFile); + $newFile->uuid()?->populate(); + return $newFile; }); } @@ -189,6 +191,7 @@ trait FileActions // overwrite with new UUID (remove old, add new) if (Uuids::enabled() === true) { $copy = $copy->save(['uuid' => Uuid::generate()]); + $copy->uuid()->populate(); } return $copy; @@ -292,6 +295,8 @@ trait FileActions // store the content if necessary $file->changeStorage($storage); + $file->uuid()?->populate(); + // return a fresh clone return $file->clone(); }); diff --git a/kirby/src/Cms/Language.php b/kirby/src/Cms/Language.php index fde1f5d..d1e5ee9 100644 --- a/kirby/src/Cms/Language.php +++ b/kirby/src/Cms/Language.php @@ -301,6 +301,14 @@ class Language implements Stringable return file_exists($this->root()); } + /** + * Check if the language url is custom domain + */ + public function hasCustomDomain(): bool + { + return Url::isAbsolute($this->url); + } + /** * Checks if the language is the same * as the given language or language code @@ -547,13 +555,14 @@ class Language implements Stringable public function toArray(): array { return [ - 'code' => $this->code(), - 'default' => $this->isDefault(), - 'direction' => $this->direction(), - 'locale' => $this->locale(), - 'name' => $this->name(), - 'rules' => $this->rules(), - 'url' => $this->url() + 'code' => $this->code(), + 'default' => $this->isDefault(), + 'direction' => $this->direction(), + 'hasCustomDomain' => $this->hasCustomDomain(), + 'locale' => $this->locale(), + 'name' => $this->name(), + 'rules' => $this->rules(), + 'url' => $this->url(), ]; } diff --git a/kirby/src/Cms/LazyCollection.php b/kirby/src/Cms/LazyCollection.php new file mode 100644 index 0000000..0c39a8a --- /dev/null +++ b/kirby/src/Cms/LazyCollection.php @@ -0,0 +1,551 @@ + + * @link https://getkirby.com + * @copyright Bastian Allgeier + * @license https://getkirby.com/license + * + * @template TValue + * @extends \Kirby\Cms\Collection + */ +abstract class LazyCollection extends Collection +{ + /** + * Flag that tells whether hydration has been + * completed for all collection elements; + * this is used to increase performance + */ + protected bool $hydrated = false; + + /** + * Flag that tells whether all possible collection + * items have been loaded (only relevant in lazy + * initialization mode) + */ + protected bool $initialized = true; + + /** + * Temporary auto-hydration whenever a collection + * method is called; some methods may not need raw + * access to all collection data, so performance + * will be improved if methods call initialization + * or hydration themselves only if they need it + * @deprecated + * @todo Remove this in v6 + */ + public function __call(string $key, $arguments) + { + $this->hydrate(); + return parent::__call($key, $arguments); + } + + /** + * Low-level getter for elements + * + * @return TValue|null + */ + public function __get(string $key) + { + $element = parent::__get($key); + + // `$element === null` could mean "element does not exist" + // or "element found but not hydrated" + if ( + $element === null && + (array_key_exists($key, $this->data) || $this->initialized === false) + ) { + return $this->hydrateElement($key); + } + + return $element; + } + + /** + * Low-level element remover + */ + public function __unset(string $key) + { + // first initialize, otherwise a later initialization + // might bring back the element that was unset + $this->initialize(); + + return parent::__unset($key); + } + + /** + * Creates chunks of the same size. + * The last chunk may be smaller + * + * @param int $size Number of elements per chunk + * @return static A new collection with an element for each chunk and + * a sub collection in each chunk + */ + public function chunk(int $size): static + { + // chunking at least requires the collection structure + $this->initialize(); + + return parent::chunk($size); + } + + /** + * Counts all elements + */ + public function count(): int + { + $this->initialize(); + + return parent::count(); + } + + /** + * Returns the current element + * @deprecated + * @todo Remove in v6 + * + * @return TValue + */ + public function current(): mixed + { + $current = parent::current(); + + // `$current === null` could mean "empty collection" + // or "element found but not hydrated" + if ($current === null && $key = $this->key()) { + return $this->hydrateElement($key); + } + + return $current; + } + + /** + * Clone and remove all elements from the collection + */ + public function empty(): static + { + $empty = parent::empty(); + + // prevent new collection from initializing its + // elements into the now empty collection + // (relevant when emptying a collection that + // has not been (fully) initialized yet) + $empty->initialized = true; + + return $empty; + } + + /** + * Find one or multiple elements by id + * + * @param string ...$keys + * @return TValue|static + */ + public function find(...$keys) + { + $result = parent::find(...$keys); + + // when the result is a cloned collection (multiple keys), + // mark it as initialized to prevent it from initializing + // all of its elements again after we filtered it above + // (relevant when finding elements in a collection that + // has not been (fully) initialized yet) + if ($result instanceof static && $result !== $this) { + $result->initialized = true; + } + + return $result; + } + + /** + * Returns the elements in reverse order + */ + public function flip(): static + { + // flipping at least requires the collection structure + $this->initialize(); + + return parent::flip(); + } + + /** + * Filters elements by one of the + * predefined filter methods, by a + * custom filter function or an array of filters + */ + public function filter(string|array|Closure $field, ...$args): static + { + // to filter through values, we need all values present + $this->hydrate(); + + return parent::filter($field, ...$args); + } + + /** + * Returns the first element + * + * @return TValue + */ + public function first() + { + // returning a specific offset requires the collection structure + $this->initialize(); + + $first = parent::first(); + + // `$first === null` could mean "empty collection" + // or "element found but not hydrated" + if ($first === null && $key = array_key_first($this->data)) { + return $this->hydrateElement($key); + } + + return $first; + } + + /** + * Returns an iterator for the elements + * @return \Iterator + */ + public function getIterator(): Iterator + { + // ensure we are looping over all possible elements + $this->initialize(); + + foreach ($this->data as $key => $value) { + if ($value === null) { + $value = $this->hydrateElement($key); + } + + yield $key => $value; + } + } + + /** + * Checks by key if an element is included + * @param TKey $key + */ + public function has(mixed $key): bool + { + $this->initialize(); + + return parent::has($key); + } + + /** + * Ensures that all collection elements are loaded, + * essentially converting the lazy collection into a + * normal collection + */ + public function hydrate(): void + { + // first ensure all keys are initialized + $this->initialize(); + + // skip another hydration loop if no longer needed + if ($this->hydrated === true) { + return; + } + + foreach ($this->data as $key => $value) { + if ($value === null) { + $this->hydrateElement($key); + } + } + + $this->hydrated = true; + } + + /** + * Loads a collection element, sets it in `$this->data[$key]` + * and returns the hydrated object value (or `null` if the + * element does not exist in the collection); to be + * implemented in each specific collection + */ + abstract protected function hydrateElement(string $key): object|null; + + /** + * Ensures that the keys for all valid collection elements + * are loaded in the `$data` array and sets `$initialized` + * to `true` afterwards; to be implemented in each collection + * that wants to use lazy initialization; be sure to keep + * existing `$data` values and not overwrite the entire array + */ + public function initialize(): void + { + if ($this->initialized === true) { + return; + } + + throw new LogicException(static::class . ' class does not implement `initialize()` method that is required for lazy initialization'); // @codeCoverageIgnore + } + + /** + * Returns an array of all keys + */ + public function keys(): array + { + // ensure we are returning all possible keys + $this->initialize(); + + return parent::keys(); + } + + /** + * Tries to find the key for the given element + * + * @param TValue $needle the element to search for + * @return int|string|false the name of the key or false + */ + public function keyOf(mixed $needle): int|string|false + { + // quick lookup without having to hydrate the collection + // (keys in CMS collections are the object IDs) + if ( + is_object($needle) === true && + method_exists($needle, 'id') === true + ) { + return $needle->id(); + } + + $this->hydrate(); + return parent::keyOf($needle); + } + + /** + * Returns the last element + * + * @return TValue + */ + public function last() + { + // returning a specific offset requires the collection structure + $this->initialize(); + + $last = parent::last(); + + // `$last === null` could mean "empty collection" + // or "element found but not hydrated" + if ($last === null && $key = array_key_last($this->data)) { + return $this->hydrateElement($key); + } + + return $last; + } + + /** + * Map a function to each element + * + * @return $this + */ + public function map(callable $callback): static + { + // to map a function, we need all values present + $this->hydrate(); + + return parent::map($callback); + } + + /** + * Moves the cursor to the next element + * and returns it + * @deprecated + * @todo Remove in v6 + * + * @return TValue + */ + public function next(): mixed + { + $this->initialize(); + + $next = parent::next(); + + // `$next === null` could mean "empty collection" + // or "element found but not hydrated" + if ($next === null && $key = $this->key()) { + return $this->hydrateElement($key); + } + + return $next; + } + + /** + * Returns the nth element from the collection + * + * @return TValue|null + */ + public function nth(int $n) + { + // returning a specific offset requires the collection structure + $this->initialize(); + + $nth = parent::nth($n); + + // `$nth === null` could mean "empty collection" + // or "element found but not hydrated" + if ($nth === null) { + $key = array_keys($this->data)[$n] ?? null; + + if (is_string($key) === true) { + return $this->hydrateElement($key); + } + } + + return $nth; + } + + /** + * Prepends an element to the data array + * + * ```php + * $collection->prepend('key', $value); + * $collection->prepend($value); + * ``` + * + * @param string|TValue ...$args + * @return $this + */ + public function prepend(...$args): static + { + // prepending to an uninitialized collection would + // destroy the order on later initialization + $this->initialize(); + + return parent::prepend(...$args); + } + + /** + * Moves the cursor to the previous element + * and returns it + * @deprecated + * @todo Remove in v6 + * + * @return TValue + */ + public function prev(): mixed + { + $this->initialize(); + + $prev = parent::prev(); + + // `$prev === null` could mean "empty collection" + // or "element found but not hydrated" + if ($prev === null && $key = $this->key()) { + return $this->hydrateElement($key); + } + + return $prev; + } + + /** + * Returns a new collection consisting of random elements, + * from the original collection, shuffled or ordered + */ + public function random(int $count = 1, bool $shuffle = false): static + { + // picking random elements at least requires the collection structure + $this->initialize(); + + return parent::random($count, $shuffle); + } + + /** + * Shuffle all elements + */ + public function shuffle(): static + { + // shuffling at least requires the collection structure + $this->initialize(); + + return parent::shuffle(); + } + + /** + * Returns a slice of the object + * + * @param int $offset The optional index to start the slice from + * @param int|null $limit The optional number of elements to return + * @return $this|static + * @psalm-return ($offset is 0 && $limit is null ? $this : static) + */ + public function slice( + int $offset = 0, + int|null $limit = null + ): static { + // returning a specific subset requires the collection structure + $this->initialize(); + + return parent::slice($offset, $limit); + } + + /** + * Sorts the elements by any number of fields + * + * ```php + * $collection->sort('fieldName'); + * $collection->sort('fieldName', 'desc'); + * $collection->sort('fieldName', 'asc', SORT_REGULAR); + * $collection->sort(fn ($a) => ...); + * ``` + * + * @param string|callable $field Field name or value callback to sort by + * @param string|null $direction asc or desc + * @param int|null $method The sort flag, SORT_REGULAR, SORT_NUMERIC etc. + * @return $this|static + */ + public function sort(...$args): static + { + // to sort through values, we need all values present + $this->hydrate(); + + return parent::sort(...$args); + } + + /** + * Converts all objects in the collection + * to an array. This can also take a callback + * function to further modify the array result. + */ + public function toArray(Closure|null $map = null): array + { + // to export an array, we need all values present + $this->hydrate(); + + return parent::toArray($map); + } + + /** + * Returns a non-associative array + * with all values. If a mapping Closure is passed, + * all values are processed by the Closure. + */ + public function values(Closure|null $map = null): array + { + // to export an array, we need all values present + $this->hydrate(); + + return parent::values($map); + } +} diff --git a/kirby/src/Cms/Media.php b/kirby/src/Cms/Media.php index 11a501e..44a09d3 100644 --- a/kirby/src/Cms/Media.php +++ b/kirby/src/Cms/Media.php @@ -7,6 +7,7 @@ use Kirby\Exception\InvalidArgumentException; use Kirby\Exception\NotFoundException; use Kirby\Filesystem\Dir; use Kirby\Filesystem\F; +use Kirby\Http\Response; use Kirby\Toolkit\Str; use Throwable; @@ -53,7 +54,7 @@ class Media } // send the file to the browser - return Response::file($file->publish()->mediaRoot()); + return Response::file($file->publish()->root()); } // try to generate a thumb for the file diff --git a/kirby/src/Cms/PageActions.php b/kirby/src/Cms/PageActions.php index 38834c6..ec05273 100644 --- a/kirby/src/Cms/PageActions.php +++ b/kirby/src/Cms/PageActions.php @@ -119,7 +119,7 @@ trait PageActions ]); // clear UUID cache recursively (for children and files as well) - $oldPage->uuid()?->clear(true); + $oldPage->uuid()?->clear(recursive: true); if ($oldPage->exists() === true) { // actually move stuff on disk @@ -142,6 +142,8 @@ trait PageActions Dir::remove($oldPage->mediaRoot()); } + $newPage->uuid()?->populate(recursive: true); + return $newPage; }); } @@ -422,6 +424,8 @@ trait PageActions parent: $parentModel ); + $copy->uuid()?->populate(recursive: true); + return $copy; } @@ -487,6 +491,8 @@ trait PageActions $page = $page->changeStatus('listed', $props['num']); } + $page->uuid()?->populate(); + return $page; } @@ -583,7 +589,7 @@ trait PageActions $page->changeStorage(ImmutableMemoryStorage::class); // clear UUID cache - $page->uuid()?->clear(); + $page->uuid()?->clear(recursive: true); // Explanation: The two while loops below are only // necessary because our property caches result in @@ -697,6 +703,8 @@ trait PageActions ); } + $newPage->uuid()?->populate(recursive: true); + return $newPage; }); } diff --git a/kirby/src/Cms/Responder.php b/kirby/src/Cms/Responder.php index 45deecc..b542821 100644 --- a/kirby/src/Cms/Responder.php +++ b/kirby/src/Cms/Responder.php @@ -5,7 +5,7 @@ namespace Kirby\Cms; use Kirby\Exception\InvalidArgumentException; use Kirby\Filesystem\Mime; use Kirby\Http\Response as HttpResponse; -use Kirby\Toolkit\A; +use Kirby\Http\VolatileHeaders; use Kirby\Toolkit\Str; use Stringable; @@ -66,10 +66,9 @@ class Responder implements Stringable protected array $usesCookies = []; /** - * Tracks headers that depend on the request - * and must not be persisted in the cache + * Volatile headers manager */ - protected array $volatileHeaders = []; + protected VolatileHeaders|null $volatileHeaders = null; /** * Creates and sends the response @@ -244,7 +243,7 @@ class Responder implements Stringable $this->type($response['type'] ?? null); $this->usesAuth($response['usesAuth'] ?? null); $this->usesCookies($response['usesCookies'] ?? null); - $this->volatileHeaders = $response['volatileHeaders'] ?? []; + $this->volatileHeaders($response['volatileHeaders'] ?? null); } /** @@ -325,7 +324,7 @@ class Responder implements Stringable } $this->headers = $headers; - $this->volatileHeaders = []; + $this->volatileHeaders([]); return $this; } @@ -405,13 +404,13 @@ class Responder implements Stringable public function toCacheArray(): array { $response = $this->toArray(); - $volatile = $this->collectVolatileHeaders(); + $volatile = $this->volatileHeaders()->collect(); if ($volatile === []) { return $response; } - $response['headers'] = $this->stripVolatileHeaders($response['headers'], $volatile); + $response['headers'] = $this->volatileHeaders()->strip($response['headers'], $volatile); return $response; } @@ -465,114 +464,32 @@ class Responder implements Stringable * can be subtracted before caching a response snapshot * * @since 5.2.0 + * @deprecated 5.3.0 Use `::volatileHeaders()->mark($name, $values)` instead. Will be removed in Kirby 6. */ public function markVolatileHeader(string $name, array|null $values = null): void { - $this->appendVolatileHeader($this->volatileHeaders, $name, $values); + $this->volatileHeaders()->mark($name, $values); } /** - * Collects volatile headers from both manual configuration - * and automatically injected CORS headers + * Setter and getter for the volatile headers manager + * @since 5.3.0 */ - protected function collectVolatileHeaders(): array + public function volatileHeaders(VolatileHeaders|array|null $headers = null): VolatileHeaders { - $volatile = $this->volatileHeaders; - $corsHeaders = Cors::headers(); - - if ($corsHeaders === []) { - return $volatile; + if ($headers === null) { + return $this->volatileHeaders ??= new VolatileHeaders(); } - foreach ($corsHeaders as $name => $value) { - if ($name === 'Vary') { - $corsVaryValues = array_map('trim', explode(',', $value)); - $this->appendVolatileHeader($volatile, 'Vary', $corsVaryValues); - continue; - } - - $this->appendVolatileHeader($volatile, $name); + if ($headers instanceof VolatileHeaders) { + return $this->volatileHeaders = $headers; } - return $volatile; - } - - /** - * Strips request-dependent headers for safe caching - */ - protected function stripVolatileHeaders(array $headers, array $volatile): array - { - foreach ($volatile as $name => $values) { - if ($name === 'Vary' && is_array($values) === true) { - if (isset($headers['Vary']) === false) { - continue; - } - - $current = $this->normalizeVaryValues($headers['Vary']); - $remaining = $this->removeVaryValues($current, $values); - - if ($remaining === []) { - unset($headers['Vary']); - } else { - $headers['Vary'] = implode(', ', $remaining); - } - - continue; - } - - unset($headers[$name]); + $volatileHeaders = new VolatileHeaders(); + foreach ($headers as $name => $values) { + $volatileHeaders->mark($name, $values); } - return $headers; - } - - /** - * Adds (parts of) a header to the provided volatile header list - */ - protected function appendVolatileHeader(array &$target, string $name, array|null $values = null): void - { - if ($values === null) { - $target[$name] = null; - return; - } - - if (array_key_exists($name, $target) === true && $target[$name] === null) { - return; - } - - $values = A::map($values, static fn ($value) => strtolower(trim($value))); - $values = A::filter($values, static fn ($value) => $value !== ''); - - if ($values === []) { - return; - } - - $existingValues = $target[$name] ?? []; - $target[$name] = array_values(array_unique([...$existingValues, ...$values])); - } - - /** - * Normalizes a comma-separated list of Vary values - * into a unique array without empty entries - */ - protected function normalizeVaryValues(string $value): array - { - $values = A::map(explode(',', $value), 'trim'); - $values = A::filter($values, static fn ($entry) => $entry !== ''); - - return array_values(array_unique($values)); - } - - /** - * Returns the Vary values with the provided entries removed - */ - protected function removeVaryValues(array $values, array $remove): array - { - $removeLower = A::map($remove, 'strtolower'); - - return array_values(A::filter( - $values, - static fn ($value) => in_array(strtolower($value), $removeLower, true) === false - )); + return $this->volatileHeaders = $volatileHeaders; } } diff --git a/kirby/src/Cms/Site.php b/kirby/src/Cms/Site.php index a005091..328045c 100644 --- a/kirby/src/Cms/Site.php +++ b/kirby/src/Cms/Site.php @@ -471,9 +471,15 @@ class Site extends ModelWithContent string|Page $page, string|null $languageCode = null ): Page { + // always set the locale; in single-language mode this + // applies the locale from config, in multi-language mode + // it falls back to the default language when `null` is passed + $this->kirby()->setCurrentLanguage($languageCode); + + // only set translation when explicitly passed; + // otherwise it would always fall back to 'en' if ($languageCode !== null) { $this->kirby()->setCurrentTranslation($languageCode); - $this->kirby()->setCurrentLanguage($languageCode); } // convert ids to a Page object diff --git a/kirby/src/Cms/User.php b/kirby/src/Cms/User.php index 6f749e0..5a621dc 100644 --- a/kirby/src/Cms/User.php +++ b/kirby/src/Cms/User.php @@ -82,6 +82,10 @@ class User extends ModelWithContent $this->password = $props['password'] ?? null; $this->role = $set('role', fn ($role) => Str::lower(trim($role))); + if (isset($props['credentials'])) { + $this->credentials = $props['credentials']; + } + // Set blueprint before setting content // or translations in the parent constructor. // Otherwise, the blueprint definition cannot be @@ -229,13 +233,23 @@ class User extends ModelWithContent #[SensitiveParameter] string|null $password = null ): string|null { - if ($password !== null) { + if ($password !== null && $password !== '') { $password = password_hash($password, PASSWORD_DEFAULT); } return $password; } + /** + * Checks if the user has a stored password + * @since 5.3.0 + */ + public function hasPassword(): bool + { + $password = $this->password(); + return $password !== '' && $password !== null; + } + /** * Returns the user id */ @@ -699,7 +713,7 @@ class User extends ModelWithContent #[SensitiveParameter] string|null $password = null ): bool { - if (empty($this->password()) === true) { + if ($this->hasPassword() === false) { throw new NotFoundException( key: 'user.password.undefined' ); diff --git a/kirby/src/Cms/Users.php b/kirby/src/Cms/Users.php index 2f65192..2351629 100644 --- a/kirby/src/Cms/Users.php +++ b/kirby/src/Cms/Users.php @@ -3,6 +3,7 @@ namespace Kirby\Cms; use Kirby\Exception\InvalidArgumentException; +use Kirby\Exception\LogicException; use Kirby\Filesystem\Dir; use Kirby\Filesystem\F; use Kirby\Toolkit\Str; @@ -21,12 +22,29 @@ use Kirby\Uuid\HasUuids; * @license https://getkirby.com/license * * @template TUser of \Kirby\Cms\User - * @extends \Kirby\Cms\Collection + * @extends \Kirby\Cms\LazyCollection */ -class Users extends Collection +class Users extends LazyCollection { use HasUuids; + /** + * Creates a new Collection with the given objects + * + * @param iterable $objects + * @param string|null $root Directory to dynamically load user + * objects from during hydration + * @param array $inject Props to inject into hydrated user objects + */ + public function __construct( + iterable $objects = [], + protected object|null $parent = null, + protected string|null $root = null, + protected array $inject = [] + ) { + parent::__construct($objects, $parent); + } + /** * All registered users methods */ @@ -98,7 +116,7 @@ class Users extends Collection { $files = new Files([], $this->parent); - foreach ($this->data as $user) { + foreach ($this as $user) { foreach ($user->files() as $fileKey => $file) { $files->data[$fileKey] = $file; } @@ -126,32 +144,86 @@ class Users extends Collection } /** - * Loads a user from disk by passing the absolute path (root) + * Loads a user object, sets it in `$this->data[$key]` + * and returns the hydrated user object */ - public static function load(string $root, array $inject = []): static + protected function hydrateElement(string $key): User|null { - $users = new static(); + if ($this->root === null) { + throw new LogicException('Cannot hydrate user "' . $key . '" with missing root'); // @codeCoverageIgnore + } - foreach (Dir::read($root) as $userDirectory) { - if (is_dir($root . '/' . $userDirectory) === false) { + // ignore empty keys to avoid matching the `accounts` root + // directory itself (e.g. from `false` values coerced to `""`) + if ($key === '') { + return null; + } + + // check if the user directory exists if not all keys have been + // populated in the collection, otherwise we can assume that + // this method will only be called on "unhydrated" user IDs + $root = $this->root . '/' . $key; + if ($this->initialized === false && is_dir($root) === false) { + return null; + } + + // get role information + $path = $root . '/index.php'; + if (is_file($path) === true) { + $credentials = F::load($path, allowOutput: false); + } + + // create user model based on role + $user = User::factory([ + 'id' => $key, + 'model' => $credentials['role'] ?? null, + 'credentials' => is_array($credentials ?? null) ? $credentials : null + ] + $this->inject); + + return $this->data[$key] = $user; + } + + /** + * Ensures that the IDs for all valid users are loaded in the + * `$data` array and sets `$initialized` to `true` afterwards + */ + public function initialize(): void + { + // skip another initialization if it already has been initialized + if ($this->initialized === true) { + return; + } + + if ($this->root === null) { + throw new LogicException('Cannot initialize users with missing root'); // @codeCoverageIgnore + } + + // ensure the order matches the filesystem, even if + // individual users have been hydrated/added before + $existing = $this->data; + $this->data = []; + + foreach (Dir::read($this->root) as $userDirectory) { + if (is_dir($this->root . '/' . $userDirectory) === false) { continue; } - // get role information - $path = $root . '/' . $userDirectory . '/index.php'; - if (is_file($path) === true) { - $credentials = F::load($path, allowOutput: false); - } - - // create user model based on role - $user = User::factory([ - 'id' => $userDirectory, - 'model' => $credentials['role'] ?? null - ] + $inject); - - $users->set($user->id(), $user); + $this->data[$userDirectory] = null; } + $this->data = [...$this->data, ...$existing]; + + $this->initialized = true; + } + + /** + * Loads users from disk by passing the absolute directory path (root) + */ + public static function load(string $root, array $inject = []): static + { + $users = new static(root: $root, inject: $inject); + $users->initialized = false; + return $users; } diff --git a/kirby/src/Content/Changes.php b/kirby/src/Content/Changes.php index a741004..f3ca09a 100644 --- a/kirby/src/Content/Changes.php +++ b/kirby/src/Content/Changes.php @@ -118,6 +118,10 @@ class Changes { /** * @var \Kirby\Cms\Pages $pages + * + * Always pass at least two arguments even if the + * data is empty so that `$site->find()` always + * returns a collection, not a single page */ $pages = $this->kirby->site()->find( false, @@ -185,6 +189,10 @@ class Changes { /** * @var \Kirby\Cms\Users $users + * + * Always pass at least two arguments even if the + * data is empty so that `$users->find()` always + * returns a collection, not a single user */ $users = $this->kirby->users()->find( false, diff --git a/kirby/src/Field/FieldOptions.php b/kirby/src/Field/FieldOptions.php index 395a051..ce05394 100644 --- a/kirby/src/Field/FieldOptions.php +++ b/kirby/src/Field/FieldOptions.php @@ -81,7 +81,7 @@ class FieldOptions public function render(ModelWithContent $model): array { - return $this->resolve($model)->render($model); + return $this->resolve($model)->render($model, $this->safeMode); } public function resolve(ModelWithContent $model): Options diff --git a/kirby/src/Filesystem/F.php b/kirby/src/Filesystem/F.php index 87d8d18..be5a643 100644 --- a/kirby/src/Filesystem/F.php +++ b/kirby/src/Filesystem/F.php @@ -122,6 +122,11 @@ class F 'YB' ]; + /** + * Cache for loaded files when using `load()` with `cache: true` + */ + public static array $loadCache = []; + /** * Appends new content to an existing file * @@ -358,8 +363,14 @@ class F string $file, mixed $fallback = null, array $data = [], - bool $allowOutput = true + bool $allowOutput = true, + bool $cache = false ) { + // return cached result if available + if ($cache === true && array_key_exists($file, static::$loadCache)) { + return static::$loadCache[$file]; + } + if (is_file($file) === false) { return $fallback; } @@ -384,6 +395,11 @@ class F return $fallback; } + // cache the result if requested + if ($cache === true) { + static::$loadCache[$file] = $result; + } + return $result; } @@ -599,6 +615,52 @@ class F return $size . ' ' . static::$units[$unit]; } + /** + * Reads a specific byte range from a file + * @since 5.3.0 + * + * @param string $file The path to the file + * @param int $offset The byte offset to start reading from + * @param int|null $length The number of bytes to read (null = read to end) + */ + public static function range( + string $file, + int $offset = 0, + int|null $length = null + ): string|false { + if (str_contains($file, '://') === true) { + return false; + } + + // exit early on empty paths that would trigger a PHP `ValueError` + if ($file === '') { + return false; + } + + return Helpers::handleErrors( + function () use ($file, $offset, $length): string|false { + $handle = fopen($file, 'rb'); + + if ($handle === false) { + return false; // @codeCoverageIgnore + } + + if ($offset > 0) { + fseek($handle, $offset); + } + + $content = $length !== null + ? fread($handle, $length) + : fread($handle, filesize($file) - $offset); + + fclose($handle); + return $content; + }, + fn (int $errno, string $errstr): bool => str_contains($errstr, 'No such file'), + false + ); + } + /** * Reads the content of a file or requests the * contents of a remote HTTP or HTTPS URL @@ -616,9 +678,9 @@ class F return false; } - // to increase performance, directly try to load the file without checking - // if it exists; fall back to a `false` return value if it doesn't exist - // while letting other warnings through + // to increase performance, directly try to load the file + // without checking if it exists; fall back to return `false` + // if it doesn't exist while letting other warnings through return Helpers::handleErrors( fn (): string|false => file_get_contents($file), fn (int $errno, string $errstr): bool => str_contains($errstr, 'No such file'), diff --git a/kirby/src/Http/Environment.php b/kirby/src/Http/Environment.php index 1672f75..9f1fc05 100644 --- a/kirby/src/Http/Environment.php +++ b/kirby/src/Http/Environment.php @@ -809,7 +809,8 @@ class Environment $configCli = F::load( file: $root . '/config.cli.php', fallback: [], - allowOutput: false + allowOutput: false, + cache: true ); } @@ -821,7 +822,8 @@ class Environment $configHost = F::load( file: $path, fallback: [], - allowOutput: false + allowOutput: false, + cache: true ); } @@ -833,7 +835,8 @@ class Environment $configAddr = F::load( file: $path, fallback: [], - allowOutput: false + allowOutput: false, + cache: true ); } diff --git a/kirby/src/Http/Range.php b/kirby/src/Http/Range.php new file mode 100644 index 0000000..82ddcbb --- /dev/null +++ b/kirby/src/Http/Range.php @@ -0,0 +1,159 @@ + + * @link https://getkirby.com + * @copyright Bastian Allgeier + * @license https://opensource.org/licenses/MIT + * @since 5.3.0 + */ +class Range +{ + /** + * Parses the Range header and returns start and end byte positions + * + * @return array{int, int}|false Array of [start, end] or false if invalid + */ + public static function parse( + string $range, + int $size + ): array|false { + if ($size <= 0) { + return false; + } + + $range = trim($range); + + // only support byte ranges (not other units) + if (strncasecmp($range, 'bytes=', 6) !== 0) { + return false; + } + + // extract the range part after "bytes=" + $range = substr($range, 6); + + // support only single ranges (not multiple ranges like "0-100,200-300") + if (str_contains($range, ',') === true) { + return false; + } + + // split start and end + $parts = explode('-', $range, 2); + + if (count($parts) !== 2) { + return false; + } + + [$startStr, $endStr] = $parts; + $startStr = trim($startStr); + $endStr = trim($endStr); + + // handle "bytes=-500" (last 500 bytes) + if ($startStr === '') { + if (is_numeric($endStr) === false) { + return false; + } + + $suffix = (int)$endStr; + + if ($suffix <= 0) { + return false; + } + + if ($suffix > $size) { + $suffix = $size; + } + + $start = $size - $suffix; + $end = $size - 1; + + return [$start, $end]; + } + + // validate that start is numeric + if (is_numeric($startStr) === false) { + return false; + } + + $start = (int)$startStr; + + // handle "bytes=1024-" (from byte 1024 to end) + if ($endStr === '') { + $end = $size - 1; + } elseif (is_numeric($endStr) === false) { + return false; + } else { + $end = (int)$endStr; + + // clamp end to file size if a client overshoots + if ($end >= $size) { + $end = $size - 1; + } + } + + // validate the range + if ( + $start < 0 || + $start >= $size || + $end < $start + ) { + return false; + } + + return [$start, $end]; + } + + /** + * Creates a response for a partial file request (byte-range) + */ + public static function response( + string $file, + string $range, + array $props = [] + ): Response { + // parse the Range header (e.g., "bytes=0-1" or "bytes=1024-") + $size = filesize($file); + $parsed = static::parse($range, $size); + + // if the range is invalid, return 416 Range Not Satisfiable + if ($parsed === false) { + return new Response( + code: 416, + body: 'Requested Range Not Satisfiable', + headers: [ + 'Content-Range' => 'bytes */' . $size + ] + ); + } + + [$start, $end] = $parsed; + $length = $end - $start + 1; + + // read only the requested byte range from the file + $body = F::range($file, offset: $start, length: $length); + + $props = Response::ensureSafeMimeType([ + 'body' => $body, + 'code' => 206, // Partial Content + 'type' => F::extensionToMime(F::extension($file)), + 'headers' => [ + 'Accept-Ranges' => 'bytes', + 'Content-Range' => 'bytes ' . $start . '-' . $end . '/' . $size, + 'Content-Length' => $length, + ...$props['headers'] ?? [] + ], + ...$props + ]); + + return new Response($props); + } +} diff --git a/kirby/src/Http/Remote.php b/kirby/src/Http/Remote.php index cd6d6a4..0fdb25b 100644 --- a/kirby/src/Http/Remote.php +++ b/kirby/src/Http/Remote.php @@ -310,7 +310,18 @@ class Remote */ public function json(bool $array = true): array|stdClass|null { - return json_decode($this->content(), $array); + if ($content = $this->content()) { + $json = json_decode($content, $array); + + if ( + is_array($json) === true || + $json instanceof stdClass === true + ) { + return $json; + } + } + + return null; } /** diff --git a/kirby/src/Http/Response.php b/kirby/src/Http/Response.php index 3b6cdb5..76450eb 100644 --- a/kirby/src/Http/Response.php +++ b/kirby/src/Http/Response.php @@ -4,6 +4,7 @@ namespace Kirby\Http; use Closure; use Exception; +use Kirby\Cms\App; use Kirby\Exception\LogicException; use Kirby\Filesystem\F; use Stringable; @@ -160,6 +161,23 @@ class Response implements Stringable return new static($props); } + /** + * Ensures safe MIME type handling by forcing plain text + * for files without recognizable MIME types to harden + * against attacks from malicious file uploads + * @since 5.3.0 + * @internal + */ + public static function ensureSafeMimeType(array $props): array + { + if ($props['type'] === null) { + $props['type'] = 'text/plain'; + $props['headers']['X-Content-Type-Options'] = 'nosniff'; + } + + return $props; + } + /** * Creates a response for a file and * sends the file content to the browser @@ -168,23 +186,24 @@ class Response implements Stringable */ public static function file(string $file, array $props = []): static { - $props = [ + $request = App::instance(lazy: true)?->request(); + + // handle byte-range requests (e.g., for video streaming in Safari) + if ($range = $request?->header('Range')) { + return Range::response($file, $range, $props); + } + + // always indicate that byte-range requests are supported + $props['headers'] = [ + 'Accept-Ranges' => 'bytes', + ...$props['headers'] ?? [] + ]; + + $props = static::ensureSafeMimeType([ 'body' => F::read($file), 'type' => F::extensionToMime(F::extension($file)), ...$props - ]; - - // if we couldn't serve a correct MIME type, force - // the browser to display the file as plain text to - // harden against attacks from malicious file uploads - if ($props['type'] === null) { - if (isset($props['headers']) !== true) { - $props['headers'] = []; - } - - $props['type'] = 'text/plain'; - $props['headers']['X-Content-Type-Options'] = 'nosniff'; - } + ]); return new static($props); } diff --git a/kirby/src/Http/Url.php b/kirby/src/Http/Url.php index 541e36e..b4efd32 100644 --- a/kirby/src/Http/Url.php +++ b/kirby/src/Http/Url.php @@ -3,6 +3,7 @@ namespace Kirby\Http; use Kirby\Toolkit\Str; +use Whoops\Handler\PrettyPageHandler; /** * Static URL tools @@ -63,6 +64,23 @@ class Url return dirname(static::current()); } + /** + * Use Whoops to create an editor URL to open + * a file at the given line number + * @since 5.3.0 + */ + public static function editor(string|false $editor, string|null $file, int $line = 0): string|null + { + if ($editor === false || $file === null) { + return null; + } + + $handler = new PrettyPageHandler(); + $handler->setEditor($editor); + + return $handler->getEditorHref($file, $line); + } + /** * Tries to fix a broken url without protocol * @psalm-return ($url is null ? string|null : string) @@ -223,6 +241,7 @@ class Url /** * Smart resolver for internal and external urls + * @deprecated 5.3.0 Use `Kirby\Cms\Url::to()` instead */ public static function to( string|null $path = null, diff --git a/kirby/src/Http/Visitor.php b/kirby/src/Http/Visitor.php index f4e57fb..e086d3d 100644 --- a/kirby/src/Http/Visitor.php +++ b/kirby/src/Http/Visitor.php @@ -157,6 +157,31 @@ class Visitor return Mime::isAccepted($mimeType, $this->acceptedMimeType); } + /** + * Sets the ip address if provided + * or returns the ip of the current + * visitor otherwise + * + * @return $this|string|null + */ + public function ip( + string|null $ip = null, + bool $hash = false + ): static|string|null { + if ($ip === null) { + if ($hash === true) { + // only use the first 50 chars to ensure privacy + $hash = hash('sha256', $this->ip); + return substr($hash, 0, 50); + } + + return $this->ip; + } + + $this->ip = $ip; + return $this; + } + /** * Returns the MIME type from the provided list that * is most accepted (= preferred) by the visitor @@ -195,23 +220,6 @@ class Visitor return $preferred === 'application/json'; } - /** - * Sets the ip address if provided - * or returns the ip of the current - * visitor otherwise - * - * @return $this|string|null - */ - public function ip(string|null $ip = null): static|string|null - { - if ($ip === null) { - return $this->ip; - } - - $this->ip = $ip; - return $this; - } - /** * Sets the user agent if provided * or returns the user agent string of diff --git a/kirby/src/Http/VolatileHeaders.php b/kirby/src/Http/VolatileHeaders.php new file mode 100644 index 0000000..5a3b6aa --- /dev/null +++ b/kirby/src/Http/VolatileHeaders.php @@ -0,0 +1,151 @@ + + * @link https://getkirby.com + * @copyright Bastian Allgeier + * @license https://getkirby.com/license + * @since 5.3.0 + */ +class VolatileHeaders +{ + /** + * Stored volatile header configurations + */ + protected array $headers = []; + + /** + * Adds (parts of) a header to the volatile list + */ + protected function append( + string $name, + array|null $values = null, + array|null &$target = null + ): void { + if ($values === null) { + $target[$name] = null; + return; + } + + if (array_key_exists($name, $target) === true && $target[$name] === null) { + return; + } + + $values = A::map($values, static fn ($value) => strtolower(trim($value))); + $values = A::filter($values, static fn ($value) => $value !== ''); + + if ($values === []) { + return; + } + + $existingValues = $target[$name] ?? []; + $target[$name] = array_values(array_unique([...$existingValues, ...$values])); + } + + /** + * Collects all volatile headers including CORS headers + */ + public function collect(): array + { + $volatile = $this->headers; + $corsHeaders = Cors::headers(); + + if ($corsHeaders === []) { + return $volatile; + } + + foreach ($corsHeaders as $name => $value) { + if ($name === 'Vary') { + $corsVaryValues = array_map('trim', explode(',', $value)); + $this->append($name, $corsVaryValues, $volatile); + continue; + } + + $this->append($name, null, $volatile); + } + + return $volatile; + } + + /** + * Marks headers (or header parts) as request-dependent + */ + public function mark(string $name, array|null $values = null): void + { + $this->append($name, $values, $this->headers); + } + + /** + * Normalizes a comma-separated list of Vary values + * into a unique array without empty entries + */ + protected function normalizeVaryValues(string $value): array + { + $values = A::map(explode(',', $value), 'trim'); + $values = A::filter($values, static fn ($entry) => $entry !== ''); + + return array_values(array_unique($values)); + } + + /** + * Returns the Vary values with the provided entries removed + */ + protected function removeVaryValues(array $values, array $remove): array + { + $removeLower = A::map($remove, 'strtolower'); + + return array_values(A::filter( + $values, + static fn ($value) => in_array(strtolower($value), $removeLower, true) === false + )); + } + + /** + * Strips volatile headers from the provided header array + */ + public function strip(array $headers, array|null $volatile = null): array + { + $volatile ??= $this->collect(); + + foreach ($volatile as $name => $values) { + if ($name === 'Vary' && is_array($values) === true) { + $headers = $this->stripVaryHeader($headers, $values); + continue; + } + + unset($headers[$name]); + } + + return $headers; + } + + /** + * Strips Vary header values from the headers array + */ + protected function stripVaryHeader(array $headers, array $values): array + { + if (isset($headers['Vary']) === false) { + return $headers; + } + + $current = $this->normalizeVaryValues($headers['Vary']); + $remaining = $this->removeVaryValues($current, $values); + + if ($remaining === []) { + unset($headers['Vary']); + } else { + $headers['Vary'] = implode(', ', $remaining); + } + + return $headers; + } +} diff --git a/kirby/src/Image/Darkroom/ImageMagick.php b/kirby/src/Image/Darkroom/ImageMagick.php index 0655d7f..1024dde 100644 --- a/kirby/src/Image/Darkroom/ImageMagick.php +++ b/kirby/src/Image/Darkroom/ImageMagick.php @@ -188,8 +188,10 @@ class ImageMagick extends Darkroom */ protected function save(string $file, array $options): string { + // use the format: prefix to output in the specified format + // while writing to the original path if ($options['format'] !== null) { - $file = pathinfo($file, PATHINFO_DIRNAME) . '/' . pathinfo($file, PATHINFO_FILENAME) . '.' . $options['format']; + return escapeshellarg($options['format'] . ':' . $file); } return escapeshellarg($file); diff --git a/kirby/src/Image/Darkroom/Imagick.php b/kirby/src/Image/Darkroom/Imagick.php index 4f1666e..bae6ec2 100644 --- a/kirby/src/Image/Darkroom/Imagick.php +++ b/kirby/src/Image/Darkroom/Imagick.php @@ -195,8 +195,10 @@ class Imagick extends Darkroom */ protected function save(Image $image, string $file, array $options): bool { + // set the output format explicitly if specified; + // writing to the original path if ($options['format'] !== null) { - $file = pathinfo($file, PATHINFO_DIRNAME) . '/' . pathinfo($file, PATHINFO_FILENAME) . '.' . $options['format']; + $image->setImageFormat($options['format']); } return $image->writeImages($file, true); diff --git a/kirby/src/Option/Option.php b/kirby/src/Option/Option.php index bc5f281..bcd5003 100644 --- a/kirby/src/Option/Option.php +++ b/kirby/src/Option/Option.php @@ -65,16 +65,19 @@ class Option /** * Renders all data for the option */ - public function render(ModelWithContent $model): array - { + public function render( + ModelWithContent $model, + bool $safeMode = true + ): array { $info = I18n::translate($this->info, $this->info); $text = I18n::translate($this->text, $this->text); + $method = $safeMode === true ? 'toSafeString' : 'toString'; return [ 'disabled' => $this->disabled, 'icon' => $this->icon, - 'info' => $info ? $model->toSafeString($info) : $info, - 'text' => $text ? $model->toSafeString($text) : $text, + 'info' => $info ? $model->$method($info) : $info, + 'text' => $text ? $model->$method($text) : $text, 'value' => $this->value ]; } diff --git a/kirby/src/Option/Options.php b/kirby/src/Option/Options.php index 871a1cc..d95fc3d 100644 --- a/kirby/src/Option/Options.php +++ b/kirby/src/Option/Options.php @@ -63,12 +63,12 @@ class Options extends Collection return $collection; } - public function render(ModelWithContent $model): array + public function render(ModelWithContent $model, bool $safeMode = true): array { $options = []; foreach ($this->data as $key => $option) { - $options[$key] = $option->render($model); + $options[$key] = $option->render($model, $safeMode); } return array_values($options); diff --git a/kirby/src/Option/OptionsQuery.php b/kirby/src/Option/OptionsQuery.php index 85257aa..7c36653 100644 --- a/kirby/src/Option/OptionsQuery.php +++ b/kirby/src/Option/OptionsQuery.php @@ -10,11 +10,12 @@ use Kirby\Cms\StructureObject; use Kirby\Cms\User; use Kirby\Content\Field; use Kirby\Exception\InvalidArgumentException; +use Kirby\Toolkit\A; use Kirby\Toolkit\Collection; use Kirby\Toolkit\Obj; /** - * Options derrived from running a query against + * Options derived from running a query against * pages, files, users or structures to create * options out of them. * @@ -38,11 +39,14 @@ class OptionsQuery extends OptionsProvider protected function collection(array $array): Collection { + $isAssociative = A::isAssociative($array); + foreach ($array as $key => $value) { if (is_scalar($value) === true) { $array[$key] = new Obj([ - 'key' => new Field(null, 'key', $key), - 'value' => new Field(null, 'value', $value), + 'key' => new Field(null, 'key', $key), + 'value' => new Field(null, 'value', $value), + 'hasStringKey' => $isAssociative, ]); } } @@ -72,6 +76,12 @@ class OptionsQuery extends OptionsProvider protected function itemToDefaults(array|object $item): array { return match (true) { + $item instanceof Obj && $item->hasStringKey === true => [ + 'arrayItem', + '{{ item.value }}', + '{{ item.key }}' + ], + is_array($item), $item instanceof Obj => [ 'arrayItem', diff --git a/kirby/src/Panel/Page.php b/kirby/src/Panel/Page.php index ed87aea..c6f71c8 100644 --- a/kirby/src/Panel/Page.php +++ b/kirby/src/Panel/Page.php @@ -50,6 +50,7 @@ class Page extends Model return ViewButtons::view($this)->defaults( 'open', 'preview', + '-', 'settings', 'languages', 'status' diff --git a/kirby/src/Panel/PageCreateDialog.php b/kirby/src/Panel/PageCreateDialog.php index b69dbe4..aeeaeea 100644 --- a/kirby/src/Panel/PageCreateDialog.php +++ b/kirby/src/Panel/PageCreateDialog.php @@ -273,18 +273,17 @@ class PageCreateDialog } $props = [ - 'slug' => '__new__', + 'slug' => $this->slug ?? '__new__', 'template' => $this->template, 'model' => $this->template, - 'parent' => $this->parent instanceof Page ? $this->parent : null + 'parent' => $this->parent instanceof Page ? $this->parent : null, + 'content' => ['title' => $this->title], ]; // make sure that a UUID gets generated // and added to content right away if (Uuids::enabled() === true) { - $props['content'] = [ - 'uuid' => $this->uuid = Uuid::generate() - ]; + $props['content']['uuid'] = $this->uuid = Uuid::generate(); } $this->model = Page::factory($props); diff --git a/kirby/src/Panel/Ui/Buttons/ViewButtons.php b/kirby/src/Panel/Ui/Buttons/ViewButtons.php index 7cf1f03..907892d 100644 --- a/kirby/src/Panel/Ui/Buttons/ViewButtons.php +++ b/kirby/src/Panel/Ui/Buttons/ViewButtons.php @@ -69,6 +69,12 @@ class ViewButtons $buttons = []; foreach ($this->buttons ?? [] as $name => $button) { + // separator, keep as is in array + if ($button === '-') { + $buttons[] = '-'; + continue; + } + $buttons[] = ViewButton::factory( button: $button, name: $name, diff --git a/kirby/src/Panel/User.php b/kirby/src/Panel/User.php index fc89c47..fd05a29 100644 --- a/kirby/src/Panel/User.php +++ b/kirby/src/Panel/User.php @@ -100,7 +100,7 @@ class User extends Model $result[] = [ 'dialog' => $url . '/changePassword', 'icon' => 'key', - 'text' => I18n::translate('user.changePassword'), + 'text' => I18n::translate('user.' . ($this->model->hasPassword() === true ? 'changePassword' : 'setPassword')), 'disabled' => $this->isDisabledDropdownOption('changePassword', $options, $permissions) ]; diff --git a/kirby/src/Text/SmartyPants.php b/kirby/src/Text/SmartyPants.php index fe5bb34..cba22d2 100644 --- a/kirby/src/Text/SmartyPants.php +++ b/kirby/src/Text/SmartyPants.php @@ -37,6 +37,7 @@ class SmartyPants { return [ 'attr' => 1, + 'convert.quot' => true, 'doublequote.open' => '“', 'doublequote.close' => '”', 'doublequote.low' => '„', @@ -76,6 +77,7 @@ class SmartyPants $this->parser = new SmartyPantsTypographer($this->options['attr']); // configuration + $this->parser->convert_quot = $this->options['convert.quot']; $this->parser->smart_doublequote_open = $this->options['doublequote.open']; $this->parser->smart_doublequote_close = $this->options['doublequote.close']; $this->parser->smart_singlequote_open = $this->options['singlequote.open']; @@ -111,7 +113,6 @@ class SmartyPants { // prepare the text $text ??= ''; - $text = str_replace('"', '"', $text); // parse the text return $this->parser->transform($text); diff --git a/kirby/src/Toolkit/A.php b/kirby/src/Toolkit/A.php index dfa32c5..65e8178 100644 --- a/kirby/src/Toolkit/A.php +++ b/kirby/src/Toolkit/A.php @@ -289,6 +289,23 @@ class A $keys = explode('.', $key); $firstKey = array_shift($keys); + // prefer a dotted prefix key if it exists + // (e.g. plugin namespaces). + for ($i = count($keys); $i > 0; $i--) { + $prefix = $firstKey . '.' . implode('.', array_slice($keys, 0, $i)); + + if ( + isset($array[$prefix]) === true && + is_array($array[$prefix]) === true + ) { + return static::get( + $array[$prefix], + implode('.', array_slice($keys, $i)), + $default + ); + } + } + // if the input array also uses dot notation, // try to find a subset of the $keys if (isset($array[$firstKey]) === false) { diff --git a/kirby/src/Toolkit/Collection.php b/kirby/src/Toolkit/Collection.php index 73acf86..f26521d 100644 --- a/kirby/src/Toolkit/Collection.php +++ b/kirby/src/Toolkit/Collection.php @@ -391,7 +391,7 @@ class Collection extends Iterator implements Stringable */ public function findBy(string $attribute, $value) { - foreach ($this->data as $item) { + foreach ($this as $item) { if ($this->getAttribute($item, $attribute) == $value) { return $item; } @@ -516,12 +516,12 @@ class Collection extends Iterator implements Stringable if (is_callable($field) === true) { $groups = []; - foreach ($this->data as $key => $item) { + foreach ($this as $key => $item) { // get the value to group by $value = $field($item); // make sure that there's always a proper value to group by - if (!$value) { + if ($value === null || $value === false) { throw new Exception( message: 'Invalid grouping value for key: ' . $key ); @@ -689,7 +689,7 @@ class Collection extends Iterator implements Stringable $collection = clone $this; foreach ($keys as $key) { - unset($collection->data[$key]); + unset($collection->{$key}); } return $collection; @@ -742,7 +742,7 @@ class Collection extends Iterator implements Stringable ): array { $result = []; - foreach ($this->data as $item) { + foreach ($this as $item) { $row = $this->getAttribute($item, $field); if ($split !== null) { diff --git a/kirby/src/Toolkit/Dom.php b/kirby/src/Toolkit/Dom.php index 19e3b90..0330837 100644 --- a/kirby/src/Toolkit/Dom.php +++ b/kirby/src/Toolkit/Dom.php @@ -51,30 +51,54 @@ class Dom $this->doc = new DOMDocument(); $this->type = strtoupper($type); - // switch to "user error handling" + // Switch libxml into internal error handling mode so warnings + // don’t leak into output or interrupt parsing $errors = libxml_use_internal_errors(true); if ($this->type === 'HTML') { - // ensure proper parsing for HTML snippets + // If this is an HTML fragment (no or root), + // wrap it in so DOMDocument has a valid container. if (preg_match('/<(html|body)[> ]/i', $code) !== 1) { $code = '' . $code . ''; } - // the loadHTML() method expects ISO-8859-1 by default; - // force parsing as UTF-8 by injecting an XML declaration + // DOMDocument::loadHTML() historically assumes ISO-8859-1 input. + // To force UTF-8 parsing, Kirby injects an XML declaration. + // The random ID allows us to reliably identify *our* injected node + // later and remove it again. $xml = 'encoding="UTF-8" id="' . Str::random(10) . '"'; $load = $this->doc->loadHTML('' . $code); - // remove the injected XML declaration again - $pis = $this->query('//processing-instruction()'); - foreach (iterator_to_array($pis, false) as $pi) { - if ($pi->data === $xml) { - static::remove($pi); + // Newer libxml2 versions may not attach the injected XML node + // inside . Instead, they may convert it into a top-level + // comment node that sits before : + // ... + // + // XPath queries like //comment() or //processing-instruction() + // often operate relative to the document element () and + // therefore miss this node entirely. + // To fix this, we must also inspect and clean up the document’s + // top-level child nodes explicitly. + // + // Walk all top-level nodes of the document and remove + // any node that matches the injected XML marker + for ($node = $this->doc->firstChild; $node !== null; $node = $next) { + $next = $node->nextSibling; + + if ( + // Case 1: libxml preserved it as a processing instruction + ($node->nodeType === XML_PI_NODE && $node->data === $xml) || + // Case 2: libxml converted it into a comment node + // () + ($node->nodeType === XML_COMMENT_NODE && strpos($node->data, $xml) !== false) + ) { + static::remove($node); + break; } } - // remove the default doctype + // Remove the default doctype if (Str::contains($code, 'doc->doctype); } @@ -655,6 +679,17 @@ class Dom static::remove($metaTag); $html = str_replace($this->doc->saveHTML($metaTag), '', $html); + // if the original input contained an HTML doctype, some libxml + // implementations expand it to the long HTML4 transitional doctype + // when saving. Normalize it back to the short `` + // to keep behavior consistent across environments. + if ( + Str::contains($this->code, 'code) === 1 + ) { + $html = preg_replace('/^]*>\s*/i', '' . "\n", $html, 1); + } + return trim($html); } diff --git a/kirby/src/Toolkit/Iterator.php b/kirby/src/Toolkit/Iterator.php index 86ae626..76e8584 100644 --- a/kirby/src/Toolkit/Iterator.php +++ b/kirby/src/Toolkit/Iterator.php @@ -4,6 +4,7 @@ namespace Kirby\Toolkit; use ArrayIterator; use Countable; +use Iterator as PhpIterator; use IteratorAggregate; /** @@ -34,16 +35,18 @@ class Iterator implements Countable, IteratorAggregate } /** - * Get an iterator for the items. + * Returns an iterator for the elements * @return \ArrayIterator */ - public function getIterator(): ArrayIterator + public function getIterator(): PhpIterator { return new ArrayIterator($this->data); } /** * Returns the current key + * @deprecated + * @todo Remove in v6 */ public function key(): int|string|null { @@ -60,6 +63,8 @@ class Iterator implements Countable, IteratorAggregate /** * Returns the current element + * @deprecated + * @todo Remove in v6 * @return TValue */ public function current(): mixed @@ -70,6 +75,8 @@ class Iterator implements Countable, IteratorAggregate /** * Moves the cursor to the previous element * and returns it + * @deprecated + * @todo Remove in v6 * @return TValue */ public function prev(): mixed @@ -80,6 +87,8 @@ class Iterator implements Countable, IteratorAggregate /** * Moves the cursor to the next element * and returns it + * @deprecated + * @todo Remove in v6 * @return TValue */ public function next(): mixed @@ -89,6 +98,8 @@ class Iterator implements Countable, IteratorAggregate /** * Moves the cursor to the first element + * @deprecated + * @todo Remove in v6 */ public function rewind(): void { @@ -97,6 +108,8 @@ class Iterator implements Countable, IteratorAggregate /** * Checks if the current element is valid + * @deprecated + * @todo Remove in v6 */ public function valid(): bool { @@ -139,7 +152,7 @@ class Iterator implements Countable, IteratorAggregate */ public function has(mixed $key): bool { - return isset($this->data[$key]) === true; + return array_key_exists($key, $this->data) === true; } /** diff --git a/kirby/src/Toolkit/Str.php b/kirby/src/Toolkit/Str.php index 5be6df1..8d1c56d 100644 --- a/kirby/src/Toolkit/Str.php +++ b/kirby/src/Toolkit/Str.php @@ -651,10 +651,17 @@ class Str } /** - * Safe ltrim alternative + * Trims away a fixed sequence at the beginning of the string. + * For character list trimming, use PHP's native `ltrim()` function. + * + * ```php + * Str::ltrim('abababaC', 'ab'); // 'aC' + * ``` */ - public static function ltrim(string $string, string $trim = ' '): string - { + public static function ltrim( + string $string, + string $trim = ' ' + ): string { return preg_replace('!^(' . preg_quote($trim) . ')+!', '', $string); } @@ -997,10 +1004,17 @@ class Str } /** - * Safe rtrim alternative + * Trims away a fixed sequence at the end of the string. + * For character list trimming, use PHP's native `rtrim()` function. + * + * ```php + * Str::rtrim('Cabababa', 'ba'); // 'Ca' + * ``` */ - public static function rtrim(string $string, string $trim = ' '): string - { + public static function rtrim( + string $string, + string $trim = ' ' + ): string { return preg_replace('!(' . preg_quote($trim) . ')+$!', '', $string); } @@ -1342,8 +1356,8 @@ class Str array $data = [], array $options = [] ): string { - $start = $options['start'] ?? '{{1,2}'; - $end = $options['end'] ?? '}{1,2}'; + $start = $options['start'] ?? '(?:{{|{<|{)'; + $end = $options['end'] ?? '(?:}}|>}|})'; $fallback = $options['fallback'] ?? null; $callback = $options['callback'] ?? null; @@ -1425,11 +1439,20 @@ class Str } /** - * Safe trim alternative + * Trims away a fixed sequence at the beginning and end of the string. + * For character list trimming, use PHP's native `trim()` function. + * + * ```php + * Str::trim('ababaCbabab', 'ab'); // 'aCb' + * ``` */ - public static function trim(string $string, string $trim = ' '): string - { - return static::rtrim(static::ltrim($string, $trim), $trim); + public static function trim( + string $string, + string $trim = ' ' + ): string { + $string = static::ltrim($string, $trim); + $string = static::rtrim($string, $trim); + return $string; } /** diff --git a/kirby/src/Uuid/PageUuid.php b/kirby/src/Uuid/PageUuid.php index 17421ed..d903367 100644 --- a/kirby/src/Uuid/PageUuid.php +++ b/kirby/src/Uuid/PageUuid.php @@ -25,6 +25,25 @@ class PageUuid extends ModelUuid */ public Identifiable|null $model = null; + /** + * Removes the current UUID from cache, + * recursively including all children if needed + */ + public function clear(bool $recursive = false): bool + { + /** + * If $recursive, also clear UUIDs from cache for all children + * @var \Kirby\Cms\Page $model + */ + if ($recursive === true && $model = $this->model()) { + foreach ($model->children() as $child) { + $child->uuid()->clear(true); + } + } + + return parent::clear(); + } + /** * Looks up UUID in cache and resolves * to page object @@ -55,6 +74,27 @@ class PageUuid extends ModelUuid } } + /** + * Feeds the UUID for the page (and optionally + * its children) into the cache + */ + public function populate( + bool $force = false, + bool $recursive = false + ): bool { + /** + * If $recursive, also populate UUIDs for all children + * @var \Kirby\Cms\Page $model + */ + if ($recursive === true && $model = $this->model()) { + foreach ($model->children() as $child) { + $child->uuid()->populate($force, true); + } + } + + return parent::populate($force); + } + /** * Returns permalink url */ diff --git a/kirby/src/Uuid/Uuid.php b/kirby/src/Uuid/Uuid.php index c49b59c..298d722 100644 --- a/kirby/src/Uuid/Uuid.php +++ b/kirby/src/Uuid/Uuid.php @@ -100,18 +100,8 @@ abstract class Uuid implements Stringable * Removes the current UUID from cache, * recursively including all children if needed */ - public function clear(bool $recursive = false): bool + public function clear(): bool { - // For all models with children: if $recursive, - // also clear UUIDs from cache for all children - if ($recursive === true && $model = $this->model()) { - if (method_exists($model, 'children') === true) { - foreach ($model->children() as $child) { - $child->uuid()->clear(true); - } - } - } - if ($key = $this->key()) { return Uuids::cache()->remove($key); } diff --git a/kirby/src/Uuid/Uuids.php b/kirby/src/Uuid/Uuids.php index 4e7176e..f4e88a3 100644 --- a/kirby/src/Uuid/Uuids.php +++ b/kirby/src/Uuid/Uuids.php @@ -19,6 +19,11 @@ use Kirby\Exception\LogicException; */ class Uuids { + /** + * Cache for the uuid option state + */ + public static bool|null $enabled = null; + /** * Returns the instance for the lookup cache */ @@ -82,7 +87,7 @@ class Uuids public static function enabled(): bool { - return App::instance()->option('content.uuid') !== false; + return static::$enabled ??= App::instance()->option('content.uuid') !== false; } /** diff --git a/kirby/vendor/composer/autoload_classmap.php b/kirby/vendor/composer/autoload_classmap.php deleted file mode 100644 index c222e11..0000000 --- a/kirby/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,503 +0,0 @@ - $vendorDir . '/christian-riesen/base32/src/Base32.php', - 'Base32\\Base32Hex' => $vendorDir . '/christian-riesen/base32/src/Base32Hex.php', - 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', - 'Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', - 'Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', - 'Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', - 'Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', - 'Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', - 'Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', - 'Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', - 'Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', - 'Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', - 'Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', - 'Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', - 'Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', - 'Kirby\\Api\\Api' => $baseDir . '/src/Api/Api.php', - 'Kirby\\Api\\Collection' => $baseDir . '/src/Api/Collection.php', - 'Kirby\\Api\\Controller\\Changes' => $baseDir . '/src/Api/Controller/Changes.php', - 'Kirby\\Api\\Model' => $baseDir . '/src/Api/Model.php', - 'Kirby\\Api\\Upload' => $baseDir . '/src/Api/Upload.php', - 'Kirby\\Cache\\ApcuCache' => $baseDir . '/src/Cache/ApcuCache.php', - 'Kirby\\Cache\\Cache' => $baseDir . '/src/Cache/Cache.php', - 'Kirby\\Cache\\FileCache' => $baseDir . '/src/Cache/FileCache.php', - 'Kirby\\Cache\\MemCached' => $baseDir . '/src/Cache/MemCached.php', - 'Kirby\\Cache\\MemoryCache' => $baseDir . '/src/Cache/MemoryCache.php', - 'Kirby\\Cache\\NullCache' => $baseDir . '/src/Cache/NullCache.php', - 'Kirby\\Cache\\RedisCache' => $baseDir . '/src/Cache/RedisCache.php', - 'Kirby\\Cache\\Value' => $baseDir . '/src/Cache/Value.php', - 'Kirby\\Cms\\Api' => $baseDir . '/src/Cms/Api.php', - 'Kirby\\Cms\\App' => $baseDir . '/src/Cms/App.php', - 'Kirby\\Cms\\AppCaches' => $baseDir . '/src/Cms/AppCaches.php', - 'Kirby\\Cms\\AppErrors' => $baseDir . '/src/Cms/AppErrors.php', - 'Kirby\\Cms\\AppPlugins' => $baseDir . '/src/Cms/AppPlugins.php', - 'Kirby\\Cms\\AppTranslations' => $baseDir . '/src/Cms/AppTranslations.php', - 'Kirby\\Cms\\AppUsers' => $baseDir . '/src/Cms/AppUsers.php', - 'Kirby\\Cms\\Auth' => $baseDir . '/src/Cms/Auth.php', - 'Kirby\\Cms\\Auth\\Challenge' => $baseDir . '/src/Cms/Auth/Challenge.php', - 'Kirby\\Cms\\Auth\\EmailChallenge' => $baseDir . '/src/Cms/Auth/EmailChallenge.php', - 'Kirby\\Cms\\Auth\\Status' => $baseDir . '/src/Cms/Auth/Status.php', - 'Kirby\\Cms\\Auth\\TotpChallenge' => $baseDir . '/src/Cms/Auth/TotpChallenge.php', - 'Kirby\\Cms\\Block' => $baseDir . '/src/Cms/Block.php', - 'Kirby\\Cms\\BlockConverter' => $baseDir . '/src/Cms/BlockConverter.php', - 'Kirby\\Cms\\Blocks' => $baseDir . '/src/Cms/Blocks.php', - 'Kirby\\Cms\\Blueprint' => $baseDir . '/src/Cms/Blueprint.php', - 'Kirby\\Cms\\Collection' => $baseDir . '/src/Cms/Collection.php', - 'Kirby\\Cms\\Collections' => $baseDir . '/src/Cms/Collections.php', - 'Kirby\\Cms\\Core' => $baseDir . '/src/Cms/Core.php', - 'Kirby\\Cms\\Cors' => $baseDir . '/src/Cms/Cors.php', - 'Kirby\\Cms\\Email' => $baseDir . '/src/Cms/Email.php', - 'Kirby\\Cms\\Event' => $baseDir . '/src/Cms/Event.php', - 'Kirby\\Cms\\Events' => $baseDir . '/src/Cms/Events.php', - 'Kirby\\Cms\\Fieldset' => $baseDir . '/src/Cms/Fieldset.php', - 'Kirby\\Cms\\Fieldsets' => $baseDir . '/src/Cms/Fieldsets.php', - 'Kirby\\Cms\\File' => $baseDir . '/src/Cms/File.php', - 'Kirby\\Cms\\FileActions' => $baseDir . '/src/Cms/FileActions.php', - 'Kirby\\Cms\\FileBlueprint' => $baseDir . '/src/Cms/FileBlueprint.php', - 'Kirby\\Cms\\FileModifications' => $baseDir . '/src/Cms/FileModifications.php', - 'Kirby\\Cms\\FilePermissions' => $baseDir . '/src/Cms/FilePermissions.php', - 'Kirby\\Cms\\FilePicker' => $baseDir . '/src/Cms/FilePicker.php', - 'Kirby\\Cms\\FileRules' => $baseDir . '/src/Cms/FileRules.php', - 'Kirby\\Cms\\FileVersion' => $baseDir . '/src/Cms/FileVersion.php', - 'Kirby\\Cms\\Files' => $baseDir . '/src/Cms/Files.php', - 'Kirby\\Cms\\Find' => $baseDir . '/src/Cms/Find.php', - 'Kirby\\Cms\\HasChildren' => $baseDir . '/src/Cms/HasChildren.php', - 'Kirby\\Cms\\HasFiles' => $baseDir . '/src/Cms/HasFiles.php', - 'Kirby\\Cms\\HasMethods' => $baseDir . '/src/Cms/HasMethods.php', - 'Kirby\\Cms\\HasModels' => $baseDir . '/src/Cms/HasModels.php', - 'Kirby\\Cms\\HasSiblings' => $baseDir . '/src/Cms/HasSiblings.php', - 'Kirby\\Cms\\Helpers' => $baseDir . '/src/Cms/Helpers.php', - 'Kirby\\Cms\\Html' => $baseDir . '/src/Cms/Html.php', - 'Kirby\\Cms\\Ingredients' => $baseDir . '/src/Cms/Ingredients.php', - 'Kirby\\Cms\\Item' => $baseDir . '/src/Cms/Item.php', - 'Kirby\\Cms\\Items' => $baseDir . '/src/Cms/Items.php', - 'Kirby\\Cms\\Language' => $baseDir . '/src/Cms/Language.php', - 'Kirby\\Cms\\LanguagePermissions' => $baseDir . '/src/Cms/LanguagePermissions.php', - 'Kirby\\Cms\\LanguageRouter' => $baseDir . '/src/Cms/LanguageRouter.php', - 'Kirby\\Cms\\LanguageRoutes' => $baseDir . '/src/Cms/LanguageRoutes.php', - 'Kirby\\Cms\\LanguageRules' => $baseDir . '/src/Cms/LanguageRules.php', - 'Kirby\\Cms\\LanguageVariable' => $baseDir . '/src/Cms/LanguageVariable.php', - 'Kirby\\Cms\\Languages' => $baseDir . '/src/Cms/Languages.php', - 'Kirby\\Cms\\Layout' => $baseDir . '/src/Cms/Layout.php', - 'Kirby\\Cms\\LayoutColumn' => $baseDir . '/src/Cms/LayoutColumn.php', - 'Kirby\\Cms\\LayoutColumns' => $baseDir . '/src/Cms/LayoutColumns.php', - 'Kirby\\Cms\\Layouts' => $baseDir . '/src/Cms/Layouts.php', - 'Kirby\\Cms\\License' => $baseDir . '/src/Cms/License.php', - 'Kirby\\Cms\\LicenseStatus' => $baseDir . '/src/Cms/LicenseStatus.php', - 'Kirby\\Cms\\LicenseType' => $baseDir . '/src/Cms/LicenseType.php', - 'Kirby\\Cms\\Loader' => $baseDir . '/src/Cms/Loader.php', - 'Kirby\\Cms\\Media' => $baseDir . '/src/Cms/Media.php', - 'Kirby\\Cms\\ModelCommit' => $baseDir . '/src/Cms/ModelCommit.php', - 'Kirby\\Cms\\ModelPermissions' => $baseDir . '/src/Cms/ModelPermissions.php', - 'Kirby\\Cms\\ModelState' => $baseDir . '/src/Cms/ModelState.php', - 'Kirby\\Cms\\ModelWithContent' => $baseDir . '/src/Cms/ModelWithContent.php', - 'Kirby\\Cms\\Nest' => $baseDir . '/src/Cms/Nest.php', - 'Kirby\\Cms\\NestCollection' => $baseDir . '/src/Cms/NestCollection.php', - 'Kirby\\Cms\\NestObject' => $baseDir . '/src/Cms/NestObject.php', - 'Kirby\\Cms\\Page' => $baseDir . '/src/Cms/Page.php', - 'Kirby\\Cms\\PageActions' => $baseDir . '/src/Cms/PageActions.php', - 'Kirby\\Cms\\PageBlueprint' => $baseDir . '/src/Cms/PageBlueprint.php', - 'Kirby\\Cms\\PageCopy' => $baseDir . '/src/Cms/PageCopy.php', - 'Kirby\\Cms\\PagePermissions' => $baseDir . '/src/Cms/PagePermissions.php', - 'Kirby\\Cms\\PagePicker' => $baseDir . '/src/Cms/PagePicker.php', - 'Kirby\\Cms\\PageRules' => $baseDir . '/src/Cms/PageRules.php', - 'Kirby\\Cms\\PageSiblings' => $baseDir . '/src/Cms/PageSiblings.php', - 'Kirby\\Cms\\Pages' => $baseDir . '/src/Cms/Pages.php', - 'Kirby\\Cms\\Pagination' => $baseDir . '/src/Cms/Pagination.php', - 'Kirby\\Cms\\Permissions' => $baseDir . '/src/Cms/Permissions.php', - 'Kirby\\Cms\\Picker' => $baseDir . '/src/Cms/Picker.php', - 'Kirby\\Cms\\R' => $baseDir . '/src/Cms/R.php', - 'Kirby\\Cms\\Responder' => $baseDir . '/src/Cms/Responder.php', - 'Kirby\\Cms\\Response' => $baseDir . '/src/Cms/Response.php', - 'Kirby\\Cms\\Role' => $baseDir . '/src/Cms/Role.php', - 'Kirby\\Cms\\Roles' => $baseDir . '/src/Cms/Roles.php', - 'Kirby\\Cms\\S' => $baseDir . '/src/Cms/S.php', - 'Kirby\\Cms\\Search' => $baseDir . '/src/Cms/Search.php', - 'Kirby\\Cms\\Section' => $baseDir . '/src/Cms/Section.php', - 'Kirby\\Cms\\Site' => $baseDir . '/src/Cms/Site.php', - 'Kirby\\Cms\\SiteActions' => $baseDir . '/src/Cms/SiteActions.php', - 'Kirby\\Cms\\SiteBlueprint' => $baseDir . '/src/Cms/SiteBlueprint.php', - 'Kirby\\Cms\\SitePermissions' => $baseDir . '/src/Cms/SitePermissions.php', - 'Kirby\\Cms\\SiteRules' => $baseDir . '/src/Cms/SiteRules.php', - 'Kirby\\Cms\\Structure' => $baseDir . '/src/Cms/Structure.php', - 'Kirby\\Cms\\StructureObject' => $baseDir . '/src/Cms/StructureObject.php', - 'Kirby\\Cms\\System' => $baseDir . '/src/Cms/System.php', - 'Kirby\\Cms\\System\\UpdateStatus' => $baseDir . '/src/Cms/System/UpdateStatus.php', - 'Kirby\\Cms\\Translation' => $baseDir . '/src/Cms/Translation.php', - 'Kirby\\Cms\\Translations' => $baseDir . '/src/Cms/Translations.php', - 'Kirby\\Cms\\Url' => $baseDir . '/src/Cms/Url.php', - 'Kirby\\Cms\\User' => $baseDir . '/src/Cms/User.php', - 'Kirby\\Cms\\UserActions' => $baseDir . '/src/Cms/UserActions.php', - 'Kirby\\Cms\\UserBlueprint' => $baseDir . '/src/Cms/UserBlueprint.php', - 'Kirby\\Cms\\UserPermissions' => $baseDir . '/src/Cms/UserPermissions.php', - 'Kirby\\Cms\\UserPicker' => $baseDir . '/src/Cms/UserPicker.php', - 'Kirby\\Cms\\UserRules' => $baseDir . '/src/Cms/UserRules.php', - 'Kirby\\Cms\\Users' => $baseDir . '/src/Cms/Users.php', - 'Kirby\\Cms\\Visitor' => $baseDir . '/src/Cms/Visitor.php', - 'Kirby\\ComposerInstaller\\CmsInstaller' => $vendorDir . '/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php', - 'Kirby\\ComposerInstaller\\Installer' => $vendorDir . '/getkirby/composer-installer/src/ComposerInstaller/Installer.php', - 'Kirby\\ComposerInstaller\\Plugin' => $vendorDir . '/getkirby/composer-installer/src/ComposerInstaller/Plugin.php', - 'Kirby\\ComposerInstaller\\PluginInstaller' => $vendorDir . '/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php', - 'Kirby\\Content\\Changes' => $baseDir . '/src/Content/Changes.php', - 'Kirby\\Content\\Content' => $baseDir . '/src/Content/Content.php', - 'Kirby\\Content\\Field' => $baseDir . '/src/Content/Field.php', - 'Kirby\\Content\\ImmutableMemoryStorage' => $baseDir . '/src/Content/ImmutableMemoryStorage.php', - 'Kirby\\Content\\Lock' => $baseDir . '/src/Content/Lock.php', - 'Kirby\\Content\\LockedContentException' => $baseDir . '/src/Content/LockedContentException.php', - 'Kirby\\Content\\MemoryStorage' => $baseDir . '/src/Content/MemoryStorage.php', - 'Kirby\\Content\\PlainTextStorage' => $baseDir . '/src/Content/PlainTextStorage.php', - 'Kirby\\Content\\Storage' => $baseDir . '/src/Content/Storage.php', - 'Kirby\\Content\\Translation' => $baseDir . '/src/Content/Translation.php', - 'Kirby\\Content\\Translations' => $baseDir . '/src/Content/Translations.php', - 'Kirby\\Content\\Version' => $baseDir . '/src/Content/Version.php', - 'Kirby\\Content\\VersionCache' => $baseDir . '/src/Content/VersionCache.php', - 'Kirby\\Content\\VersionId' => $baseDir . '/src/Content/VersionId.php', - 'Kirby\\Content\\VersionRules' => $baseDir . '/src/Content/VersionRules.php', - 'Kirby\\Content\\Versions' => $baseDir . '/src/Content/Versions.php', - 'Kirby\\Data\\Data' => $baseDir . '/src/Data/Data.php', - 'Kirby\\Data\\Handler' => $baseDir . '/src/Data/Handler.php', - 'Kirby\\Data\\Json' => $baseDir . '/src/Data/Json.php', - 'Kirby\\Data\\PHP' => $baseDir . '/src/Data/PHP.php', - 'Kirby\\Data\\Txt' => $baseDir . '/src/Data/Txt.php', - 'Kirby\\Data\\Xml' => $baseDir . '/src/Data/Xml.php', - 'Kirby\\Data\\Yaml' => $baseDir . '/src/Data/Yaml.php', - 'Kirby\\Data\\YamlSpyc' => $baseDir . '/src/Data/YamlSpyc.php', - 'Kirby\\Data\\YamlSymfony' => $baseDir . '/src/Data/YamlSymfony.php', - 'Kirby\\Database\\Database' => $baseDir . '/src/Database/Database.php', - 'Kirby\\Database\\Db' => $baseDir . '/src/Database/Db.php', - 'Kirby\\Database\\Query' => $baseDir . '/src/Database/Query.php', - 'Kirby\\Database\\Sql' => $baseDir . '/src/Database/Sql.php', - 'Kirby\\Database\\Sql\\Mysql' => $baseDir . '/src/Database/Sql/Mysql.php', - 'Kirby\\Database\\Sql\\Sqlite' => $baseDir . '/src/Database/Sql/Sqlite.php', - 'Kirby\\Email\\Body' => $baseDir . '/src/Email/Body.php', - 'Kirby\\Email\\Email' => $baseDir . '/src/Email/Email.php', - 'Kirby\\Email\\PHPMailer' => $baseDir . '/src/Email/PHPMailer.php', - 'Kirby\\Exception\\AuthException' => $baseDir . '/src/Exception/AuthException.php', - 'Kirby\\Exception\\BadMethodCallException' => $baseDir . '/src/Exception/BadMethodCallException.php', - 'Kirby\\Exception\\DuplicateException' => $baseDir . '/src/Exception/DuplicateException.php', - 'Kirby\\Exception\\ErrorPageException' => $baseDir . '/src/Exception/ErrorPageException.php', - 'Kirby\\Exception\\Exception' => $baseDir . '/src/Exception/Exception.php', - 'Kirby\\Exception\\InvalidArgumentException' => $baseDir . '/src/Exception/InvalidArgumentException.php', - 'Kirby\\Exception\\LogicException' => $baseDir . '/src/Exception/LogicException.php', - 'Kirby\\Exception\\NotFoundException' => $baseDir . '/src/Exception/NotFoundException.php', - 'Kirby\\Exception\\PermissionException' => $baseDir . '/src/Exception/PermissionException.php', - 'Kirby\\Field\\FieldOptions' => $baseDir . '/src/Field/FieldOptions.php', - 'Kirby\\Filesystem\\Asset' => $baseDir . '/src/Filesystem/Asset.php', - 'Kirby\\Filesystem\\Dir' => $baseDir . '/src/Filesystem/Dir.php', - 'Kirby\\Filesystem\\F' => $baseDir . '/src/Filesystem/F.php', - 'Kirby\\Filesystem\\File' => $baseDir . '/src/Filesystem/File.php', - 'Kirby\\Filesystem\\Filename' => $baseDir . '/src/Filesystem/Filename.php', - 'Kirby\\Filesystem\\IsFile' => $baseDir . '/src/Filesystem/IsFile.php', - 'Kirby\\Filesystem\\Mime' => $baseDir . '/src/Filesystem/Mime.php', - 'Kirby\\Form\\Field' => $baseDir . '/src/Form/Field.php', - 'Kirby\\Form\\FieldClass' => $baseDir . '/src/Form/FieldClass.php', - 'Kirby\\Form\\Field\\BlocksField' => $baseDir . '/src/Form/Field/BlocksField.php', - 'Kirby\\Form\\Field\\EntriesField' => $baseDir . '/src/Form/Field/EntriesField.php', - 'Kirby\\Form\\Field\\LayoutField' => $baseDir . '/src/Form/Field/LayoutField.php', - 'Kirby\\Form\\Field\\StatsField' => $baseDir . '/src/Form/Field/StatsField.php', - 'Kirby\\Form\\Fields' => $baseDir . '/src/Form/Fields.php', - 'Kirby\\Form\\Form' => $baseDir . '/src/Form/Form.php', - 'Kirby\\Form\\Mixin\\After' => $baseDir . '/src/Form/Mixin/After.php', - 'Kirby\\Form\\Mixin\\Api' => $baseDir . '/src/Form/Mixin/Api.php', - 'Kirby\\Form\\Mixin\\Autofocus' => $baseDir . '/src/Form/Mixin/Autofocus.php', - 'Kirby\\Form\\Mixin\\Before' => $baseDir . '/src/Form/Mixin/Before.php', - 'Kirby\\Form\\Mixin\\EmptyState' => $baseDir . '/src/Form/Mixin/EmptyState.php', - 'Kirby\\Form\\Mixin\\Help' => $baseDir . '/src/Form/Mixin/Help.php', - 'Kirby\\Form\\Mixin\\Icon' => $baseDir . '/src/Form/Mixin/Icon.php', - 'Kirby\\Form\\Mixin\\Label' => $baseDir . '/src/Form/Mixin/Label.php', - 'Kirby\\Form\\Mixin\\Max' => $baseDir . '/src/Form/Mixin/Max.php', - 'Kirby\\Form\\Mixin\\Min' => $baseDir . '/src/Form/Mixin/Min.php', - 'Kirby\\Form\\Mixin\\Model' => $baseDir . '/src/Form/Mixin/Model.php', - 'Kirby\\Form\\Mixin\\Placeholder' => $baseDir . '/src/Form/Mixin/Placeholder.php', - 'Kirby\\Form\\Mixin\\Translatable' => $baseDir . '/src/Form/Mixin/Translatable.php', - 'Kirby\\Form\\Mixin\\Validation' => $baseDir . '/src/Form/Mixin/Validation.php', - 'Kirby\\Form\\Mixin\\Value' => $baseDir . '/src/Form/Mixin/Value.php', - 'Kirby\\Form\\Mixin\\When' => $baseDir . '/src/Form/Mixin/When.php', - 'Kirby\\Form\\Mixin\\Width' => $baseDir . '/src/Form/Mixin/Width.php', - 'Kirby\\Form\\Validations' => $baseDir . '/src/Form/Validations.php', - 'Kirby\\Http\\Cookie' => $baseDir . '/src/Http/Cookie.php', - 'Kirby\\Http\\Environment' => $baseDir . '/src/Http/Environment.php', - 'Kirby\\Http\\Exceptions\\NextRouteException' => $baseDir . '/src/Http/Exceptions/NextRouteException.php', - 'Kirby\\Http\\Header' => $baseDir . '/src/Http/Header.php', - 'Kirby\\Http\\Idn' => $baseDir . '/src/Http/Idn.php', - 'Kirby\\Http\\Params' => $baseDir . '/src/Http/Params.php', - 'Kirby\\Http\\Path' => $baseDir . '/src/Http/Path.php', - 'Kirby\\Http\\Query' => $baseDir . '/src/Http/Query.php', - 'Kirby\\Http\\Remote' => $baseDir . '/src/Http/Remote.php', - 'Kirby\\Http\\Request' => $baseDir . '/src/Http/Request.php', - 'Kirby\\Http\\Request\\Auth' => $baseDir . '/src/Http/Request/Auth.php', - 'Kirby\\Http\\Request\\Auth\\BasicAuth' => $baseDir . '/src/Http/Request/Auth/BasicAuth.php', - 'Kirby\\Http\\Request\\Auth\\BearerAuth' => $baseDir . '/src/Http/Request/Auth/BearerAuth.php', - 'Kirby\\Http\\Request\\Auth\\SessionAuth' => $baseDir . '/src/Http/Request/Auth/SessionAuth.php', - 'Kirby\\Http\\Request\\Body' => $baseDir . '/src/Http/Request/Body.php', - 'Kirby\\Http\\Request\\Data' => $baseDir . '/src/Http/Request/Data.php', - 'Kirby\\Http\\Request\\Files' => $baseDir . '/src/Http/Request/Files.php', - 'Kirby\\Http\\Request\\Query' => $baseDir . '/src/Http/Request/Query.php', - 'Kirby\\Http\\Response' => $baseDir . '/src/Http/Response.php', - 'Kirby\\Http\\Route' => $baseDir . '/src/Http/Route.php', - 'Kirby\\Http\\Router' => $baseDir . '/src/Http/Router.php', - 'Kirby\\Http\\Uri' => $baseDir . '/src/Http/Uri.php', - 'Kirby\\Http\\Url' => $baseDir . '/src/Http/Url.php', - 'Kirby\\Http\\Visitor' => $baseDir . '/src/Http/Visitor.php', - 'Kirby\\Image\\Camera' => $baseDir . '/src/Image/Camera.php', - 'Kirby\\Image\\Darkroom' => $baseDir . '/src/Image/Darkroom.php', - 'Kirby\\Image\\Darkroom\\GdLib' => $baseDir . '/src/Image/Darkroom/GdLib.php', - 'Kirby\\Image\\Darkroom\\ImageMagick' => $baseDir . '/src/Image/Darkroom/ImageMagick.php', - 'Kirby\\Image\\Darkroom\\Imagick' => $baseDir . '/src/Image/Darkroom/Imagick.php', - 'Kirby\\Image\\Dimensions' => $baseDir . '/src/Image/Dimensions.php', - 'Kirby\\Image\\Exif' => $baseDir . '/src/Image/Exif.php', - 'Kirby\\Image\\Focus' => $baseDir . '/src/Image/Focus.php', - 'Kirby\\Image\\Gravity' => $baseDir . '/src/Image/Gravity.php', - 'Kirby\\Image\\Image' => $baseDir . '/src/Image/Image.php', - 'Kirby\\Image\\Location' => $baseDir . '/src/Image/Location.php', - 'Kirby\\Image\\QrCode' => $baseDir . '/src/Image/QrCode.php', - 'Kirby\\Option\\Option' => $baseDir . '/src/Option/Option.php', - 'Kirby\\Option\\Options' => $baseDir . '/src/Option/Options.php', - 'Kirby\\Option\\OptionsApi' => $baseDir . '/src/Option/OptionsApi.php', - 'Kirby\\Option\\OptionsProvider' => $baseDir . '/src/Option/OptionsProvider.php', - 'Kirby\\Option\\OptionsQuery' => $baseDir . '/src/Option/OptionsQuery.php', - 'Kirby\\Panel\\Assets' => $baseDir . '/src/Panel/Assets.php', - 'Kirby\\Panel\\ChangesDialog' => $baseDir . '/src/Panel/ChangesDialog.php', - 'Kirby\\Panel\\Collector\\FilesCollector' => $baseDir . '/src/Panel/Collector/FilesCollector.php', - 'Kirby\\Panel\\Collector\\ModelsCollector' => $baseDir . '/src/Panel/Collector/ModelsCollector.php', - 'Kirby\\Panel\\Collector\\PagesCollector' => $baseDir . '/src/Panel/Collector/PagesCollector.php', - 'Kirby\\Panel\\Collector\\UsersCollector' => $baseDir . '/src/Panel/Collector/UsersCollector.php', - 'Kirby\\Panel\\Controller\\PageTree' => $baseDir . '/src/Panel/Controller/PageTree.php', - 'Kirby\\Panel\\Controller\\Search' => $baseDir . '/src/Panel/Controller/Search.php', - 'Kirby\\Panel\\Dialog' => $baseDir . '/src/Panel/Dialog.php', - 'Kirby\\Panel\\Document' => $baseDir . '/src/Panel/Document.php', - 'Kirby\\Panel\\Drawer' => $baseDir . '/src/Panel/Drawer.php', - 'Kirby\\Panel\\Dropdown' => $baseDir . '/src/Panel/Dropdown.php', - 'Kirby\\Panel\\Field' => $baseDir . '/src/Panel/Field.php', - 'Kirby\\Panel\\File' => $baseDir . '/src/Panel/File.php', - 'Kirby\\Panel\\Home' => $baseDir . '/src/Panel/Home.php', - 'Kirby\\Panel\\Json' => $baseDir . '/src/Panel/Json.php', - 'Kirby\\Panel\\Lab\\Category' => $baseDir . '/src/Panel/Lab/Category.php', - 'Kirby\\Panel\\Lab\\Doc' => $baseDir . '/src/Panel/Lab/Doc.php', - 'Kirby\\Panel\\Lab\\Doc\\Argument' => $baseDir . '/src/Panel/Lab/Doc/Argument.php', - 'Kirby\\Panel\\Lab\\Doc\\Event' => $baseDir . '/src/Panel/Lab/Doc/Event.php', - 'Kirby\\Panel\\Lab\\Doc\\Method' => $baseDir . '/src/Panel/Lab/Doc/Method.php', - 'Kirby\\Panel\\Lab\\Doc\\Prop' => $baseDir . '/src/Panel/Lab/Doc/Prop.php', - 'Kirby\\Panel\\Lab\\Doc\\Slot' => $baseDir . '/src/Panel/Lab/Doc/Slot.php', - 'Kirby\\Panel\\Lab\\Docs' => $baseDir . '/src/Panel/Lab/Docs.php', - 'Kirby\\Panel\\Lab\\Example' => $baseDir . '/src/Panel/Lab/Example.php', - 'Kirby\\Panel\\Lab\\Responses' => $baseDir . '/src/Panel/Lab/Responses.php', - 'Kirby\\Panel\\Lab\\Snippet' => $baseDir . '/src/Panel/Lab/Snippet.php', - 'Kirby\\Panel\\Lab\\Template' => $baseDir . '/src/Panel/Lab/Template.php', - 'Kirby\\Panel\\Menu' => $baseDir . '/src/Panel/Menu.php', - 'Kirby\\Panel\\Model' => $baseDir . '/src/Panel/Model.php', - 'Kirby\\Panel\\Page' => $baseDir . '/src/Panel/Page.php', - 'Kirby\\Panel\\PageCreateDialog' => $baseDir . '/src/Panel/PageCreateDialog.php', - 'Kirby\\Panel\\Panel' => $baseDir . '/src/Panel/Panel.php', - 'Kirby\\Panel\\Plugins' => $baseDir . '/src/Panel/Plugins.php', - 'Kirby\\Panel\\Redirect' => $baseDir . '/src/Panel/Redirect.php', - 'Kirby\\Panel\\Request' => $baseDir . '/src/Panel/Request.php', - 'Kirby\\Panel\\Search' => $baseDir . '/src/Panel/Search.php', - 'Kirby\\Panel\\Site' => $baseDir . '/src/Panel/Site.php', - 'Kirby\\Panel\\Ui\\Button' => $baseDir . '/src/Panel/Ui/Button.php', - 'Kirby\\Panel\\Ui\\Buttons\\LanguageCreateButton' => $baseDir . '/src/Panel/Ui/Buttons/LanguageCreateButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\LanguageDeleteButton' => $baseDir . '/src/Panel/Ui/Buttons/LanguageDeleteButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\LanguageSettingsButton' => $baseDir . '/src/Panel/Ui/Buttons/LanguageSettingsButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\LanguagesDropdown' => $baseDir . '/src/Panel/Ui/Buttons/LanguagesDropdown.php', - 'Kirby\\Panel\\Ui\\Buttons\\OpenButton' => $baseDir . '/src/Panel/Ui/Buttons/OpenButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\PageStatusButton' => $baseDir . '/src/Panel/Ui/Buttons/PageStatusButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\PreviewButton' => $baseDir . '/src/Panel/Ui/Buttons/PreviewButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\SettingsButton' => $baseDir . '/src/Panel/Ui/Buttons/SettingsButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\VersionsButton' => $baseDir . '/src/Panel/Ui/Buttons/VersionsButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\ViewButton' => $baseDir . '/src/Panel/Ui/Buttons/ViewButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\ViewButtons' => $baseDir . '/src/Panel/Ui/Buttons/ViewButtons.php', - 'Kirby\\Panel\\Ui\\Component' => $baseDir . '/src/Panel/Ui/Component.php', - 'Kirby\\Panel\\Ui\\FilePreview' => $baseDir . '/src/Panel/Ui/FilePreview.php', - 'Kirby\\Panel\\Ui\\FilePreviews\\AudioFilePreview' => $baseDir . '/src/Panel/Ui/FilePreviews/AudioFilePreview.php', - 'Kirby\\Panel\\Ui\\FilePreviews\\DefaultFilePreview' => $baseDir . '/src/Panel/Ui/FilePreviews/DefaultFilePreview.php', - 'Kirby\\Panel\\Ui\\FilePreviews\\ImageFilePreview' => $baseDir . '/src/Panel/Ui/FilePreviews/ImageFilePreview.php', - 'Kirby\\Panel\\Ui\\FilePreviews\\PdfFilePreview' => $baseDir . '/src/Panel/Ui/FilePreviews/PdfFilePreview.php', - 'Kirby\\Panel\\Ui\\FilePreviews\\VideoFilePreview' => $baseDir . '/src/Panel/Ui/FilePreviews/VideoFilePreview.php', - 'Kirby\\Panel\\Ui\\Item\\FileItem' => $baseDir . '/src/Panel/Ui/Item/FileItem.php', - 'Kirby\\Panel\\Ui\\Item\\ModelItem' => $baseDir . '/src/Panel/Ui/Item/ModelItem.php', - 'Kirby\\Panel\\Ui\\Item\\PageItem' => $baseDir . '/src/Panel/Ui/Item/PageItem.php', - 'Kirby\\Panel\\Ui\\Item\\UserItem' => $baseDir . '/src/Panel/Ui/Item/UserItem.php', - 'Kirby\\Panel\\Ui\\Stat' => $baseDir . '/src/Panel/Ui/Stat.php', - 'Kirby\\Panel\\Ui\\Stats' => $baseDir . '/src/Panel/Ui/Stats.php', - 'Kirby\\Panel\\Ui\\Upload' => $baseDir . '/src/Panel/Ui/Upload.php', - 'Kirby\\Panel\\User' => $baseDir . '/src/Panel/User.php', - 'Kirby\\Panel\\UserTotpDisableDialog' => $baseDir . '/src/Panel/UserTotpDisableDialog.php', - 'Kirby\\Panel\\UserTotpEnableDialog' => $baseDir . '/src/Panel/UserTotpEnableDialog.php', - 'Kirby\\Panel\\View' => $baseDir . '/src/Panel/View.php', - 'Kirby\\Parsley\\Element' => $baseDir . '/src/Parsley/Element.php', - 'Kirby\\Parsley\\Inline' => $baseDir . '/src/Parsley/Inline.php', - 'Kirby\\Parsley\\Parsley' => $baseDir . '/src/Parsley/Parsley.php', - 'Kirby\\Parsley\\Schema' => $baseDir . '/src/Parsley/Schema.php', - 'Kirby\\Parsley\\Schema\\Blocks' => $baseDir . '/src/Parsley/Schema/Blocks.php', - 'Kirby\\Parsley\\Schema\\Plain' => $baseDir . '/src/Parsley/Schema/Plain.php', - 'Kirby\\Plugin\\Asset' => $baseDir . '/src/Plugin/Asset.php', - 'Kirby\\Plugin\\Assets' => $baseDir . '/src/Plugin/Assets.php', - 'Kirby\\Plugin\\License' => $baseDir . '/src/Plugin/License.php', - 'Kirby\\Plugin\\LicenseStatus' => $baseDir . '/src/Plugin/LicenseStatus.php', - 'Kirby\\Plugin\\Plugin' => $baseDir . '/src/Plugin/Plugin.php', - 'Kirby\\Query\\AST\\ArgumentListNode' => $baseDir . '/src/Query/AST/ArgumentListNode.php', - 'Kirby\\Query\\AST\\ArithmeticNode' => $baseDir . '/src/Query/AST/ArithmeticNode.php', - 'Kirby\\Query\\AST\\ArrayListNode' => $baseDir . '/src/Query/AST/ArrayListNode.php', - 'Kirby\\Query\\AST\\ClosureNode' => $baseDir . '/src/Query/AST/ClosureNode.php', - 'Kirby\\Query\\AST\\CoalesceNode' => $baseDir . '/src/Query/AST/CoalesceNode.php', - 'Kirby\\Query\\AST\\ComparisonNode' => $baseDir . '/src/Query/AST/ComparisonNode.php', - 'Kirby\\Query\\AST\\GlobalFunctionNode' => $baseDir . '/src/Query/AST/GlobalFunctionNode.php', - 'Kirby\\Query\\AST\\LiteralNode' => $baseDir . '/src/Query/AST/LiteralNode.php', - 'Kirby\\Query\\AST\\LogicalNode' => $baseDir . '/src/Query/AST/LogicalNode.php', - 'Kirby\\Query\\AST\\MemberAccessNode' => $baseDir . '/src/Query/AST/MemberAccessNode.php', - 'Kirby\\Query\\AST\\Node' => $baseDir . '/src/Query/AST/Node.php', - 'Kirby\\Query\\AST\\TernaryNode' => $baseDir . '/src/Query/AST/TernaryNode.php', - 'Kirby\\Query\\AST\\VariableNode' => $baseDir . '/src/Query/AST/VariableNode.php', - 'Kirby\\Query\\Argument' => $baseDir . '/src/Query/Argument.php', - 'Kirby\\Query\\Arguments' => $baseDir . '/src/Query/Arguments.php', - 'Kirby\\Query\\Expression' => $baseDir . '/src/Query/Expression.php', - 'Kirby\\Query\\Parser\\Parser' => $baseDir . '/src/Query/Parser/Parser.php', - 'Kirby\\Query\\Parser\\Token' => $baseDir . '/src/Query/Parser/Token.php', - 'Kirby\\Query\\Parser\\TokenType' => $baseDir . '/src/Query/Parser/TokenType.php', - 'Kirby\\Query\\Parser\\Tokenizer' => $baseDir . '/src/Query/Parser/Tokenizer.php', - 'Kirby\\Query\\Query' => $baseDir . '/src/Query/Query.php', - 'Kirby\\Query\\Runners\\DefaultRunner' => $baseDir . '/src/Query/Runners/DefaultRunner.php', - 'Kirby\\Query\\Runners\\Runner' => $baseDir . '/src/Query/Runners/Runner.php', - 'Kirby\\Query\\Runners\\Scope' => $baseDir . '/src/Query/Runners/Scope.php', - 'Kirby\\Query\\Segment' => $baseDir . '/src/Query/Segment.php', - 'Kirby\\Query\\Segments' => $baseDir . '/src/Query/Segments.php', - 'Kirby\\Query\\Visitors\\DefaultVisitor' => $baseDir . '/src/Query/Visitors/DefaultVisitor.php', - 'Kirby\\Query\\Visitors\\Visitor' => $baseDir . '/src/Query/Visitors/Visitor.php', - 'Kirby\\Reflection\\Constructor' => $baseDir . '/src/Reflection/Constructor.php', - 'Kirby\\Sane\\DomHandler' => $baseDir . '/src/Sane/DomHandler.php', - 'Kirby\\Sane\\Handler' => $baseDir . '/src/Sane/Handler.php', - 'Kirby\\Sane\\Html' => $baseDir . '/src/Sane/Html.php', - 'Kirby\\Sane\\Sane' => $baseDir . '/src/Sane/Sane.php', - 'Kirby\\Sane\\Svg' => $baseDir . '/src/Sane/Svg.php', - 'Kirby\\Sane\\Svgz' => $baseDir . '/src/Sane/Svgz.php', - 'Kirby\\Sane\\Xml' => $baseDir . '/src/Sane/Xml.php', - 'Kirby\\Session\\AutoSession' => $baseDir . '/src/Session/AutoSession.php', - 'Kirby\\Session\\FileSessionStore' => $baseDir . '/src/Session/FileSessionStore.php', - 'Kirby\\Session\\Session' => $baseDir . '/src/Session/Session.php', - 'Kirby\\Session\\SessionData' => $baseDir . '/src/Session/SessionData.php', - 'Kirby\\Session\\SessionStore' => $baseDir . '/src/Session/SessionStore.php', - 'Kirby\\Session\\Sessions' => $baseDir . '/src/Session/Sessions.php', - 'Kirby\\Template\\Slot' => $baseDir . '/src/Template/Slot.php', - 'Kirby\\Template\\Slots' => $baseDir . '/src/Template/Slots.php', - 'Kirby\\Template\\Snippet' => $baseDir . '/src/Template/Snippet.php', - 'Kirby\\Template\\Template' => $baseDir . '/src/Template/Template.php', - 'Kirby\\Text\\KirbyTag' => $baseDir . '/src/Text/KirbyTag.php', - 'Kirby\\Text\\KirbyTags' => $baseDir . '/src/Text/KirbyTags.php', - 'Kirby\\Text\\Markdown' => $baseDir . '/src/Text/Markdown.php', - 'Kirby\\Text\\SmartyPants' => $baseDir . '/src/Text/SmartyPants.php', - 'Kirby\\Toolkit\\A' => $baseDir . '/src/Toolkit/A.php', - 'Kirby\\Toolkit\\Collection' => $baseDir . '/src/Toolkit/Collection.php', - 'Kirby\\Toolkit\\Component' => $baseDir . '/src/Toolkit/Component.php', - 'Kirby\\Toolkit\\Config' => $baseDir . '/src/Toolkit/Config.php', - 'Kirby\\Toolkit\\Controller' => $baseDir . '/src/Toolkit/Controller.php', - 'Kirby\\Toolkit\\Date' => $baseDir . '/src/Toolkit/Date.php', - 'Kirby\\Toolkit\\Dom' => $baseDir . '/src/Toolkit/Dom.php', - 'Kirby\\Toolkit\\Escape' => $baseDir . '/src/Toolkit/Escape.php', - 'Kirby\\Toolkit\\Facade' => $baseDir . '/src/Toolkit/Facade.php', - 'Kirby\\Toolkit\\Html' => $baseDir . '/src/Toolkit/Html.php', - 'Kirby\\Toolkit\\I18n' => $baseDir . '/src/Toolkit/I18n.php', - 'Kirby\\Toolkit\\Iterator' => $baseDir . '/src/Toolkit/Iterator.php', - 'Kirby\\Toolkit\\LazyValue' => $baseDir . '/src/Toolkit/LazyValue.php', - 'Kirby\\Toolkit\\Locale' => $baseDir . '/src/Toolkit/Locale.php', - 'Kirby\\Toolkit\\Obj' => $baseDir . '/src/Toolkit/Obj.php', - 'Kirby\\Toolkit\\Pagination' => $baseDir . '/src/Toolkit/Pagination.php', - 'Kirby\\Toolkit\\Silo' => $baseDir . '/src/Toolkit/Silo.php', - 'Kirby\\Toolkit\\Str' => $baseDir . '/src/Toolkit/Str.php', - 'Kirby\\Toolkit\\SymmetricCrypto' => $baseDir . '/src/Toolkit/SymmetricCrypto.php', - 'Kirby\\Toolkit\\Totp' => $baseDir . '/src/Toolkit/Totp.php', - 'Kirby\\Toolkit\\Tpl' => $baseDir . '/src/Toolkit/Tpl.php', - 'Kirby\\Toolkit\\V' => $baseDir . '/src/Toolkit/V.php', - 'Kirby\\Toolkit\\View' => $baseDir . '/src/Toolkit/View.php', - 'Kirby\\Toolkit\\Xml' => $baseDir . '/src/Toolkit/Xml.php', - 'Kirby\\Uuid\\BlockUuid' => $baseDir . '/src/Uuid/BlockUuid.php', - 'Kirby\\Uuid\\FieldUuid' => $baseDir . '/src/Uuid/FieldUuid.php', - 'Kirby\\Uuid\\FileUuid' => $baseDir . '/src/Uuid/FileUuid.php', - 'Kirby\\Uuid\\HasUuids' => $baseDir . '/src/Uuid/HasUuids.php', - 'Kirby\\Uuid\\Identifiable' => $baseDir . '/src/Uuid/Identifiable.php', - 'Kirby\\Uuid\\ModelUuid' => $baseDir . '/src/Uuid/ModelUuid.php', - 'Kirby\\Uuid\\PageUuid' => $baseDir . '/src/Uuid/PageUuid.php', - 'Kirby\\Uuid\\SiteUuid' => $baseDir . '/src/Uuid/SiteUuid.php', - 'Kirby\\Uuid\\StructureUuid' => $baseDir . '/src/Uuid/StructureUuid.php', - 'Kirby\\Uuid\\Uri' => $baseDir . '/src/Uuid/Uri.php', - 'Kirby\\Uuid\\UserUuid' => $baseDir . '/src/Uuid/UserUuid.php', - 'Kirby\\Uuid\\Uuid' => $baseDir . '/src/Uuid/Uuid.php', - 'Kirby\\Uuid\\Uuids' => $baseDir . '/src/Uuid/Uuids.php', - 'Laminas\\Escaper\\Escaper' => $vendorDir . '/laminas/laminas-escaper/src/Escaper.php', - 'Laminas\\Escaper\\EscaperInterface' => $vendorDir . '/laminas/laminas-escaper/src/EscaperInterface.php', - 'Laminas\\Escaper\\Exception\\ExceptionInterface' => $vendorDir . '/laminas/laminas-escaper/src/Exception/ExceptionInterface.php', - 'Laminas\\Escaper\\Exception\\InvalidArgumentException' => $vendorDir . '/laminas/laminas-escaper/src/Exception/InvalidArgumentException.php', - 'Laminas\\Escaper\\Exception\\RuntimeException' => $vendorDir . '/laminas/laminas-escaper/src/Exception/RuntimeException.php', - 'League\\ColorExtractor\\Color' => $vendorDir . '/league/color-extractor/src/Color.php', - 'League\\ColorExtractor\\ColorExtractor' => $vendorDir . '/league/color-extractor/src/ColorExtractor.php', - 'League\\ColorExtractor\\Palette' => $vendorDir . '/league/color-extractor/src/Palette.php', - 'Michelf\\SmartyPants' => $vendorDir . '/michelf/php-smartypants/Michelf/SmartyPants.php', - 'Michelf\\SmartyPantsTypographer' => $vendorDir . '/michelf/php-smartypants/Michelf/SmartyPantsTypographer.php', - 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', - 'PHPMailer\\PHPMailer\\DSNConfigurator' => $vendorDir . '/phpmailer/phpmailer/src/DSNConfigurator.php', - 'PHPMailer\\PHPMailer\\Exception' => $vendorDir . '/phpmailer/phpmailer/src/Exception.php', - 'PHPMailer\\PHPMailer\\OAuth' => $vendorDir . '/phpmailer/phpmailer/src/OAuth.php', - 'PHPMailer\\PHPMailer\\OAuthTokenProvider' => $vendorDir . '/phpmailer/phpmailer/src/OAuthTokenProvider.php', - 'PHPMailer\\PHPMailer\\PHPMailer' => $vendorDir . '/phpmailer/phpmailer/src/PHPMailer.php', - 'PHPMailer\\PHPMailer\\POP3' => $vendorDir . '/phpmailer/phpmailer/src/POP3.php', - 'PHPMailer\\PHPMailer\\SMTP' => $vendorDir . '/phpmailer/phpmailer/src/SMTP.php', - 'Parsedown' => $baseDir . '/dependencies/parsedown/Parsedown.php', - 'ParsedownExtra' => $baseDir . '/dependencies/parsedown-extra/ParsedownExtra.php', - 'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', - 'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', - 'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', - 'Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', - 'Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', - 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', - 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', - 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', - 'Spyc' => $baseDir . '/dependencies/spyc/Spyc.php', - 'Symfony\\Component\\Yaml\\Command\\LintCommand' => $vendorDir . '/symfony/yaml/Command/LintCommand.php', - 'Symfony\\Component\\Yaml\\Dumper' => $vendorDir . '/symfony/yaml/Dumper.php', - 'Symfony\\Component\\Yaml\\Escaper' => $vendorDir . '/symfony/yaml/Escaper.php', - 'Symfony\\Component\\Yaml\\Exception\\DumpException' => $vendorDir . '/symfony/yaml/Exception/DumpException.php', - 'Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/yaml/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Yaml\\Exception\\ParseException' => $vendorDir . '/symfony/yaml/Exception/ParseException.php', - 'Symfony\\Component\\Yaml\\Exception\\RuntimeException' => $vendorDir . '/symfony/yaml/Exception/RuntimeException.php', - 'Symfony\\Component\\Yaml\\Inline' => $vendorDir . '/symfony/yaml/Inline.php', - 'Symfony\\Component\\Yaml\\Parser' => $vendorDir . '/symfony/yaml/Parser.php', - 'Symfony\\Component\\Yaml\\Tag\\TaggedValue' => $vendorDir . '/symfony/yaml/Tag/TaggedValue.php', - 'Symfony\\Component\\Yaml\\Unescaper' => $vendorDir . '/symfony/yaml/Unescaper.php', - 'Symfony\\Component\\Yaml\\Yaml' => $vendorDir . '/symfony/yaml/Yaml.php', - 'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php', - 'Symfony\\Polyfill\\Intl\\Idn\\Idn' => $vendorDir . '/symfony/polyfill-intl-idn/Idn.php', - 'Symfony\\Polyfill\\Intl\\Idn\\Info' => $vendorDir . '/symfony/polyfill-intl-idn/Info.php', - 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => $vendorDir . '/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php', - 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => $vendorDir . '/symfony/polyfill-intl-idn/Resources/unidata/Regex.php', - 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Normalizer.php', - 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php', - 'Whoops\\Exception\\ErrorException' => $vendorDir . '/filp/whoops/src/Whoops/Exception/ErrorException.php', - 'Whoops\\Exception\\Formatter' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Formatter.php', - 'Whoops\\Exception\\Frame' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Frame.php', - 'Whoops\\Exception\\FrameCollection' => $vendorDir . '/filp/whoops/src/Whoops/Exception/FrameCollection.php', - 'Whoops\\Exception\\Inspector' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Inspector.php', - 'Whoops\\Handler\\CallbackHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/CallbackHandler.php', - 'Whoops\\Handler\\Handler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/Handler.php', - 'Whoops\\Handler\\HandlerInterface' => $vendorDir . '/filp/whoops/src/Whoops/Handler/HandlerInterface.php', - 'Whoops\\Handler\\JsonResponseHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php', - 'Whoops\\Handler\\PlainTextHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/PlainTextHandler.php', - 'Whoops\\Handler\\PrettyPageHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php', - 'Whoops\\Handler\\XmlResponseHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php', - 'Whoops\\Inspector\\InspectorFactory' => $vendorDir . '/filp/whoops/src/Whoops/Inspector/InspectorFactory.php', - 'Whoops\\Inspector\\InspectorFactoryInterface' => $vendorDir . '/filp/whoops/src/Whoops/Inspector/InspectorFactoryInterface.php', - 'Whoops\\Inspector\\InspectorInterface' => $vendorDir . '/filp/whoops/src/Whoops/Inspector/InspectorInterface.php', - 'Whoops\\Run' => $vendorDir . '/filp/whoops/src/Whoops/Run.php', - 'Whoops\\RunInterface' => $vendorDir . '/filp/whoops/src/Whoops/RunInterface.php', - 'Whoops\\Util\\HtmlDumperOutput' => $vendorDir . '/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php', - 'Whoops\\Util\\Misc' => $vendorDir . '/filp/whoops/src/Whoops/Util/Misc.php', - 'Whoops\\Util\\SystemFacade' => $vendorDir . '/filp/whoops/src/Whoops/Util/SystemFacade.php', - 'Whoops\\Util\\TemplateHelper' => $vendorDir . '/filp/whoops/src/Whoops/Util/TemplateHelper.php', - 'claviska\\SimpleImage' => $vendorDir . '/claviska/simpleimage/src/claviska/SimpleImage.php', -); diff --git a/kirby/vendor/composer/autoload_static.php b/kirby/vendor/composer/autoload_static.php deleted file mode 100644 index 0404e65..0000000 --- a/kirby/vendor/composer/autoload_static.php +++ /dev/null @@ -1,636 +0,0 @@ - __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', - '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', - 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', - 'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', - 'f864ae44e8154e5ff6f4eec32f46d37f' => __DIR__ . '/../..' . '/config/setup.php', - '87988fc7b1c1f093da22a1a3de972f3a' => __DIR__ . '/../..' . '/config/helpers.php', - ); - - public static $prefixLengthsPsr4 = array ( - 'W' => - array ( - 'Whoops\\' => 7, - ), - 'S' => - array ( - 'Symfony\\Polyfill\\Mbstring\\' => 26, - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33, - 'Symfony\\Polyfill\\Intl\\Idn\\' => 26, - 'Symfony\\Polyfill\\Ctype\\' => 23, - 'Symfony\\Component\\Yaml\\' => 23, - ), - 'P' => - array ( - 'Psr\\Log\\' => 8, - 'PHPMailer\\PHPMailer\\' => 20, - ), - 'L' => - array ( - 'League\\ColorExtractor\\' => 22, - 'Laminas\\Escaper\\' => 16, - ), - 'K' => - array ( - 'Kirby\\' => 6, - ), - 'C' => - array ( - 'Composer\\Semver\\' => 16, - ), - 'B' => - array ( - 'Base32\\' => 7, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'Whoops\\' => - array ( - 0 => __DIR__ . '/..' . '/filp/whoops/src/Whoops', - ), - 'Symfony\\Polyfill\\Mbstring\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', - ), - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer', - ), - 'Symfony\\Polyfill\\Intl\\Idn\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-idn', - ), - 'Symfony\\Polyfill\\Ctype\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype', - ), - 'Symfony\\Component\\Yaml\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/yaml', - ), - 'Psr\\Log\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/log/src', - ), - 'PHPMailer\\PHPMailer\\' => - array ( - 0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src', - ), - 'League\\ColorExtractor\\' => - array ( - 0 => __DIR__ . '/..' . '/league/color-extractor/src', - ), - 'Laminas\\Escaper\\' => - array ( - 0 => __DIR__ . '/..' . '/laminas/laminas-escaper/src', - ), - 'Kirby\\' => - array ( - 0 => __DIR__ . '/../..' . '/src', - 1 => __DIR__ . '/..' . '/getkirby/composer-installer/src', - ), - 'Composer\\Semver\\' => - array ( - 0 => __DIR__ . '/..' . '/composer/semver/src', - ), - 'Base32\\' => - array ( - 0 => __DIR__ . '/..' . '/christian-riesen/base32/src', - ), - ); - - public static $prefixesPsr0 = array ( - 'c' => - array ( - 'claviska' => - array ( - 0 => __DIR__ . '/..' . '/claviska/simpleimage/src', - ), - ), - 'M' => - array ( - 'Michelf' => - array ( - 0 => __DIR__ . '/..' . '/michelf/php-smartypants', - ), - ), - ); - - public static $classMap = array ( - 'Base32\\Base32' => __DIR__ . '/..' . '/christian-riesen/base32/src/Base32.php', - 'Base32\\Base32Hex' => __DIR__ . '/..' . '/christian-riesen/base32/src/Base32Hex.php', - 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', - 'Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', - 'Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', - 'Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', - 'Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', - 'Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', - 'Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', - 'Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', - 'Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', - 'Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', - 'Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', - 'Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', - 'Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', - 'Kirby\\Api\\Api' => __DIR__ . '/../..' . '/src/Api/Api.php', - 'Kirby\\Api\\Collection' => __DIR__ . '/../..' . '/src/Api/Collection.php', - 'Kirby\\Api\\Controller\\Changes' => __DIR__ . '/../..' . '/src/Api/Controller/Changes.php', - 'Kirby\\Api\\Model' => __DIR__ . '/../..' . '/src/Api/Model.php', - 'Kirby\\Api\\Upload' => __DIR__ . '/../..' . '/src/Api/Upload.php', - 'Kirby\\Cache\\ApcuCache' => __DIR__ . '/../..' . '/src/Cache/ApcuCache.php', - 'Kirby\\Cache\\Cache' => __DIR__ . '/../..' . '/src/Cache/Cache.php', - 'Kirby\\Cache\\FileCache' => __DIR__ . '/../..' . '/src/Cache/FileCache.php', - 'Kirby\\Cache\\MemCached' => __DIR__ . '/../..' . '/src/Cache/MemCached.php', - 'Kirby\\Cache\\MemoryCache' => __DIR__ . '/../..' . '/src/Cache/MemoryCache.php', - 'Kirby\\Cache\\NullCache' => __DIR__ . '/../..' . '/src/Cache/NullCache.php', - 'Kirby\\Cache\\RedisCache' => __DIR__ . '/../..' . '/src/Cache/RedisCache.php', - 'Kirby\\Cache\\Value' => __DIR__ . '/../..' . '/src/Cache/Value.php', - 'Kirby\\Cms\\Api' => __DIR__ . '/../..' . '/src/Cms/Api.php', - 'Kirby\\Cms\\App' => __DIR__ . '/../..' . '/src/Cms/App.php', - 'Kirby\\Cms\\AppCaches' => __DIR__ . '/../..' . '/src/Cms/AppCaches.php', - 'Kirby\\Cms\\AppErrors' => __DIR__ . '/../..' . '/src/Cms/AppErrors.php', - 'Kirby\\Cms\\AppPlugins' => __DIR__ . '/../..' . '/src/Cms/AppPlugins.php', - 'Kirby\\Cms\\AppTranslations' => __DIR__ . '/../..' . '/src/Cms/AppTranslations.php', - 'Kirby\\Cms\\AppUsers' => __DIR__ . '/../..' . '/src/Cms/AppUsers.php', - 'Kirby\\Cms\\Auth' => __DIR__ . '/../..' . '/src/Cms/Auth.php', - 'Kirby\\Cms\\Auth\\Challenge' => __DIR__ . '/../..' . '/src/Cms/Auth/Challenge.php', - 'Kirby\\Cms\\Auth\\EmailChallenge' => __DIR__ . '/../..' . '/src/Cms/Auth/EmailChallenge.php', - 'Kirby\\Cms\\Auth\\Status' => __DIR__ . '/../..' . '/src/Cms/Auth/Status.php', - 'Kirby\\Cms\\Auth\\TotpChallenge' => __DIR__ . '/../..' . '/src/Cms/Auth/TotpChallenge.php', - 'Kirby\\Cms\\Block' => __DIR__ . '/../..' . '/src/Cms/Block.php', - 'Kirby\\Cms\\BlockConverter' => __DIR__ . '/../..' . '/src/Cms/BlockConverter.php', - 'Kirby\\Cms\\Blocks' => __DIR__ . '/../..' . '/src/Cms/Blocks.php', - 'Kirby\\Cms\\Blueprint' => __DIR__ . '/../..' . '/src/Cms/Blueprint.php', - 'Kirby\\Cms\\Collection' => __DIR__ . '/../..' . '/src/Cms/Collection.php', - 'Kirby\\Cms\\Collections' => __DIR__ . '/../..' . '/src/Cms/Collections.php', - 'Kirby\\Cms\\Core' => __DIR__ . '/../..' . '/src/Cms/Core.php', - 'Kirby\\Cms\\Cors' => __DIR__ . '/../..' . '/src/Cms/Cors.php', - 'Kirby\\Cms\\Email' => __DIR__ . '/../..' . '/src/Cms/Email.php', - 'Kirby\\Cms\\Event' => __DIR__ . '/../..' . '/src/Cms/Event.php', - 'Kirby\\Cms\\Events' => __DIR__ . '/../..' . '/src/Cms/Events.php', - 'Kirby\\Cms\\Fieldset' => __DIR__ . '/../..' . '/src/Cms/Fieldset.php', - 'Kirby\\Cms\\Fieldsets' => __DIR__ . '/../..' . '/src/Cms/Fieldsets.php', - 'Kirby\\Cms\\File' => __DIR__ . '/../..' . '/src/Cms/File.php', - 'Kirby\\Cms\\FileActions' => __DIR__ . '/../..' . '/src/Cms/FileActions.php', - 'Kirby\\Cms\\FileBlueprint' => __DIR__ . '/../..' . '/src/Cms/FileBlueprint.php', - 'Kirby\\Cms\\FileModifications' => __DIR__ . '/../..' . '/src/Cms/FileModifications.php', - 'Kirby\\Cms\\FilePermissions' => __DIR__ . '/../..' . '/src/Cms/FilePermissions.php', - 'Kirby\\Cms\\FilePicker' => __DIR__ . '/../..' . '/src/Cms/FilePicker.php', - 'Kirby\\Cms\\FileRules' => __DIR__ . '/../..' . '/src/Cms/FileRules.php', - 'Kirby\\Cms\\FileVersion' => __DIR__ . '/../..' . '/src/Cms/FileVersion.php', - 'Kirby\\Cms\\Files' => __DIR__ . '/../..' . '/src/Cms/Files.php', - 'Kirby\\Cms\\Find' => __DIR__ . '/../..' . '/src/Cms/Find.php', - 'Kirby\\Cms\\HasChildren' => __DIR__ . '/../..' . '/src/Cms/HasChildren.php', - 'Kirby\\Cms\\HasFiles' => __DIR__ . '/../..' . '/src/Cms/HasFiles.php', - 'Kirby\\Cms\\HasMethods' => __DIR__ . '/../..' . '/src/Cms/HasMethods.php', - 'Kirby\\Cms\\HasModels' => __DIR__ . '/../..' . '/src/Cms/HasModels.php', - 'Kirby\\Cms\\HasSiblings' => __DIR__ . '/../..' . '/src/Cms/HasSiblings.php', - 'Kirby\\Cms\\Helpers' => __DIR__ . '/../..' . '/src/Cms/Helpers.php', - 'Kirby\\Cms\\Html' => __DIR__ . '/../..' . '/src/Cms/Html.php', - 'Kirby\\Cms\\Ingredients' => __DIR__ . '/../..' . '/src/Cms/Ingredients.php', - 'Kirby\\Cms\\Item' => __DIR__ . '/../..' . '/src/Cms/Item.php', - 'Kirby\\Cms\\Items' => __DIR__ . '/../..' . '/src/Cms/Items.php', - 'Kirby\\Cms\\Language' => __DIR__ . '/../..' . '/src/Cms/Language.php', - 'Kirby\\Cms\\LanguagePermissions' => __DIR__ . '/../..' . '/src/Cms/LanguagePermissions.php', - 'Kirby\\Cms\\LanguageRouter' => __DIR__ . '/../..' . '/src/Cms/LanguageRouter.php', - 'Kirby\\Cms\\LanguageRoutes' => __DIR__ . '/../..' . '/src/Cms/LanguageRoutes.php', - 'Kirby\\Cms\\LanguageRules' => __DIR__ . '/../..' . '/src/Cms/LanguageRules.php', - 'Kirby\\Cms\\LanguageVariable' => __DIR__ . '/../..' . '/src/Cms/LanguageVariable.php', - 'Kirby\\Cms\\Languages' => __DIR__ . '/../..' . '/src/Cms/Languages.php', - 'Kirby\\Cms\\Layout' => __DIR__ . '/../..' . '/src/Cms/Layout.php', - 'Kirby\\Cms\\LayoutColumn' => __DIR__ . '/../..' . '/src/Cms/LayoutColumn.php', - 'Kirby\\Cms\\LayoutColumns' => __DIR__ . '/../..' . '/src/Cms/LayoutColumns.php', - 'Kirby\\Cms\\Layouts' => __DIR__ . '/../..' . '/src/Cms/Layouts.php', - 'Kirby\\Cms\\License' => __DIR__ . '/../..' . '/src/Cms/License.php', - 'Kirby\\Cms\\LicenseStatus' => __DIR__ . '/../..' . '/src/Cms/LicenseStatus.php', - 'Kirby\\Cms\\LicenseType' => __DIR__ . '/../..' . '/src/Cms/LicenseType.php', - 'Kirby\\Cms\\Loader' => __DIR__ . '/../..' . '/src/Cms/Loader.php', - 'Kirby\\Cms\\Media' => __DIR__ . '/../..' . '/src/Cms/Media.php', - 'Kirby\\Cms\\ModelCommit' => __DIR__ . '/../..' . '/src/Cms/ModelCommit.php', - 'Kirby\\Cms\\ModelPermissions' => __DIR__ . '/../..' . '/src/Cms/ModelPermissions.php', - 'Kirby\\Cms\\ModelState' => __DIR__ . '/../..' . '/src/Cms/ModelState.php', - 'Kirby\\Cms\\ModelWithContent' => __DIR__ . '/../..' . '/src/Cms/ModelWithContent.php', - 'Kirby\\Cms\\Nest' => __DIR__ . '/../..' . '/src/Cms/Nest.php', - 'Kirby\\Cms\\NestCollection' => __DIR__ . '/../..' . '/src/Cms/NestCollection.php', - 'Kirby\\Cms\\NestObject' => __DIR__ . '/../..' . '/src/Cms/NestObject.php', - 'Kirby\\Cms\\Page' => __DIR__ . '/../..' . '/src/Cms/Page.php', - 'Kirby\\Cms\\PageActions' => __DIR__ . '/../..' . '/src/Cms/PageActions.php', - 'Kirby\\Cms\\PageBlueprint' => __DIR__ . '/../..' . '/src/Cms/PageBlueprint.php', - 'Kirby\\Cms\\PageCopy' => __DIR__ . '/../..' . '/src/Cms/PageCopy.php', - 'Kirby\\Cms\\PagePermissions' => __DIR__ . '/../..' . '/src/Cms/PagePermissions.php', - 'Kirby\\Cms\\PagePicker' => __DIR__ . '/../..' . '/src/Cms/PagePicker.php', - 'Kirby\\Cms\\PageRules' => __DIR__ . '/../..' . '/src/Cms/PageRules.php', - 'Kirby\\Cms\\PageSiblings' => __DIR__ . '/../..' . '/src/Cms/PageSiblings.php', - 'Kirby\\Cms\\Pages' => __DIR__ . '/../..' . '/src/Cms/Pages.php', - 'Kirby\\Cms\\Pagination' => __DIR__ . '/../..' . '/src/Cms/Pagination.php', - 'Kirby\\Cms\\Permissions' => __DIR__ . '/../..' . '/src/Cms/Permissions.php', - 'Kirby\\Cms\\Picker' => __DIR__ . '/../..' . '/src/Cms/Picker.php', - 'Kirby\\Cms\\R' => __DIR__ . '/../..' . '/src/Cms/R.php', - 'Kirby\\Cms\\Responder' => __DIR__ . '/../..' . '/src/Cms/Responder.php', - 'Kirby\\Cms\\Response' => __DIR__ . '/../..' . '/src/Cms/Response.php', - 'Kirby\\Cms\\Role' => __DIR__ . '/../..' . '/src/Cms/Role.php', - 'Kirby\\Cms\\Roles' => __DIR__ . '/../..' . '/src/Cms/Roles.php', - 'Kirby\\Cms\\S' => __DIR__ . '/../..' . '/src/Cms/S.php', - 'Kirby\\Cms\\Search' => __DIR__ . '/../..' . '/src/Cms/Search.php', - 'Kirby\\Cms\\Section' => __DIR__ . '/../..' . '/src/Cms/Section.php', - 'Kirby\\Cms\\Site' => __DIR__ . '/../..' . '/src/Cms/Site.php', - 'Kirby\\Cms\\SiteActions' => __DIR__ . '/../..' . '/src/Cms/SiteActions.php', - 'Kirby\\Cms\\SiteBlueprint' => __DIR__ . '/../..' . '/src/Cms/SiteBlueprint.php', - 'Kirby\\Cms\\SitePermissions' => __DIR__ . '/../..' . '/src/Cms/SitePermissions.php', - 'Kirby\\Cms\\SiteRules' => __DIR__ . '/../..' . '/src/Cms/SiteRules.php', - 'Kirby\\Cms\\Structure' => __DIR__ . '/../..' . '/src/Cms/Structure.php', - 'Kirby\\Cms\\StructureObject' => __DIR__ . '/../..' . '/src/Cms/StructureObject.php', - 'Kirby\\Cms\\System' => __DIR__ . '/../..' . '/src/Cms/System.php', - 'Kirby\\Cms\\System\\UpdateStatus' => __DIR__ . '/../..' . '/src/Cms/System/UpdateStatus.php', - 'Kirby\\Cms\\Translation' => __DIR__ . '/../..' . '/src/Cms/Translation.php', - 'Kirby\\Cms\\Translations' => __DIR__ . '/../..' . '/src/Cms/Translations.php', - 'Kirby\\Cms\\Url' => __DIR__ . '/../..' . '/src/Cms/Url.php', - 'Kirby\\Cms\\User' => __DIR__ . '/../..' . '/src/Cms/User.php', - 'Kirby\\Cms\\UserActions' => __DIR__ . '/../..' . '/src/Cms/UserActions.php', - 'Kirby\\Cms\\UserBlueprint' => __DIR__ . '/../..' . '/src/Cms/UserBlueprint.php', - 'Kirby\\Cms\\UserPermissions' => __DIR__ . '/../..' . '/src/Cms/UserPermissions.php', - 'Kirby\\Cms\\UserPicker' => __DIR__ . '/../..' . '/src/Cms/UserPicker.php', - 'Kirby\\Cms\\UserRules' => __DIR__ . '/../..' . '/src/Cms/UserRules.php', - 'Kirby\\Cms\\Users' => __DIR__ . '/../..' . '/src/Cms/Users.php', - 'Kirby\\Cms\\Visitor' => __DIR__ . '/../..' . '/src/Cms/Visitor.php', - 'Kirby\\ComposerInstaller\\CmsInstaller' => __DIR__ . '/..' . '/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php', - 'Kirby\\ComposerInstaller\\Installer' => __DIR__ . '/..' . '/getkirby/composer-installer/src/ComposerInstaller/Installer.php', - 'Kirby\\ComposerInstaller\\Plugin' => __DIR__ . '/..' . '/getkirby/composer-installer/src/ComposerInstaller/Plugin.php', - 'Kirby\\ComposerInstaller\\PluginInstaller' => __DIR__ . '/..' . '/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php', - 'Kirby\\Content\\Changes' => __DIR__ . '/../..' . '/src/Content/Changes.php', - 'Kirby\\Content\\Content' => __DIR__ . '/../..' . '/src/Content/Content.php', - 'Kirby\\Content\\Field' => __DIR__ . '/../..' . '/src/Content/Field.php', - 'Kirby\\Content\\ImmutableMemoryStorage' => __DIR__ . '/../..' . '/src/Content/ImmutableMemoryStorage.php', - 'Kirby\\Content\\Lock' => __DIR__ . '/../..' . '/src/Content/Lock.php', - 'Kirby\\Content\\LockedContentException' => __DIR__ . '/../..' . '/src/Content/LockedContentException.php', - 'Kirby\\Content\\MemoryStorage' => __DIR__ . '/../..' . '/src/Content/MemoryStorage.php', - 'Kirby\\Content\\PlainTextStorage' => __DIR__ . '/../..' . '/src/Content/PlainTextStorage.php', - 'Kirby\\Content\\Storage' => __DIR__ . '/../..' . '/src/Content/Storage.php', - 'Kirby\\Content\\Translation' => __DIR__ . '/../..' . '/src/Content/Translation.php', - 'Kirby\\Content\\Translations' => __DIR__ . '/../..' . '/src/Content/Translations.php', - 'Kirby\\Content\\Version' => __DIR__ . '/../..' . '/src/Content/Version.php', - 'Kirby\\Content\\VersionCache' => __DIR__ . '/../..' . '/src/Content/VersionCache.php', - 'Kirby\\Content\\VersionId' => __DIR__ . '/../..' . '/src/Content/VersionId.php', - 'Kirby\\Content\\VersionRules' => __DIR__ . '/../..' . '/src/Content/VersionRules.php', - 'Kirby\\Content\\Versions' => __DIR__ . '/../..' . '/src/Content/Versions.php', - 'Kirby\\Data\\Data' => __DIR__ . '/../..' . '/src/Data/Data.php', - 'Kirby\\Data\\Handler' => __DIR__ . '/../..' . '/src/Data/Handler.php', - 'Kirby\\Data\\Json' => __DIR__ . '/../..' . '/src/Data/Json.php', - 'Kirby\\Data\\PHP' => __DIR__ . '/../..' . '/src/Data/PHP.php', - 'Kirby\\Data\\Txt' => __DIR__ . '/../..' . '/src/Data/Txt.php', - 'Kirby\\Data\\Xml' => __DIR__ . '/../..' . '/src/Data/Xml.php', - 'Kirby\\Data\\Yaml' => __DIR__ . '/../..' . '/src/Data/Yaml.php', - 'Kirby\\Data\\YamlSpyc' => __DIR__ . '/../..' . '/src/Data/YamlSpyc.php', - 'Kirby\\Data\\YamlSymfony' => __DIR__ . '/../..' . '/src/Data/YamlSymfony.php', - 'Kirby\\Database\\Database' => __DIR__ . '/../..' . '/src/Database/Database.php', - 'Kirby\\Database\\Db' => __DIR__ . '/../..' . '/src/Database/Db.php', - 'Kirby\\Database\\Query' => __DIR__ . '/../..' . '/src/Database/Query.php', - 'Kirby\\Database\\Sql' => __DIR__ . '/../..' . '/src/Database/Sql.php', - 'Kirby\\Database\\Sql\\Mysql' => __DIR__ . '/../..' . '/src/Database/Sql/Mysql.php', - 'Kirby\\Database\\Sql\\Sqlite' => __DIR__ . '/../..' . '/src/Database/Sql/Sqlite.php', - 'Kirby\\Email\\Body' => __DIR__ . '/../..' . '/src/Email/Body.php', - 'Kirby\\Email\\Email' => __DIR__ . '/../..' . '/src/Email/Email.php', - 'Kirby\\Email\\PHPMailer' => __DIR__ . '/../..' . '/src/Email/PHPMailer.php', - 'Kirby\\Exception\\AuthException' => __DIR__ . '/../..' . '/src/Exception/AuthException.php', - 'Kirby\\Exception\\BadMethodCallException' => __DIR__ . '/../..' . '/src/Exception/BadMethodCallException.php', - 'Kirby\\Exception\\DuplicateException' => __DIR__ . '/../..' . '/src/Exception/DuplicateException.php', - 'Kirby\\Exception\\ErrorPageException' => __DIR__ . '/../..' . '/src/Exception/ErrorPageException.php', - 'Kirby\\Exception\\Exception' => __DIR__ . '/../..' . '/src/Exception/Exception.php', - 'Kirby\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/src/Exception/InvalidArgumentException.php', - 'Kirby\\Exception\\LogicException' => __DIR__ . '/../..' . '/src/Exception/LogicException.php', - 'Kirby\\Exception\\NotFoundException' => __DIR__ . '/../..' . '/src/Exception/NotFoundException.php', - 'Kirby\\Exception\\PermissionException' => __DIR__ . '/../..' . '/src/Exception/PermissionException.php', - 'Kirby\\Field\\FieldOptions' => __DIR__ . '/../..' . '/src/Field/FieldOptions.php', - 'Kirby\\Filesystem\\Asset' => __DIR__ . '/../..' . '/src/Filesystem/Asset.php', - 'Kirby\\Filesystem\\Dir' => __DIR__ . '/../..' . '/src/Filesystem/Dir.php', - 'Kirby\\Filesystem\\F' => __DIR__ . '/../..' . '/src/Filesystem/F.php', - 'Kirby\\Filesystem\\File' => __DIR__ . '/../..' . '/src/Filesystem/File.php', - 'Kirby\\Filesystem\\Filename' => __DIR__ . '/../..' . '/src/Filesystem/Filename.php', - 'Kirby\\Filesystem\\IsFile' => __DIR__ . '/../..' . '/src/Filesystem/IsFile.php', - 'Kirby\\Filesystem\\Mime' => __DIR__ . '/../..' . '/src/Filesystem/Mime.php', - 'Kirby\\Form\\Field' => __DIR__ . '/../..' . '/src/Form/Field.php', - 'Kirby\\Form\\FieldClass' => __DIR__ . '/../..' . '/src/Form/FieldClass.php', - 'Kirby\\Form\\Field\\BlocksField' => __DIR__ . '/../..' . '/src/Form/Field/BlocksField.php', - 'Kirby\\Form\\Field\\EntriesField' => __DIR__ . '/../..' . '/src/Form/Field/EntriesField.php', - 'Kirby\\Form\\Field\\LayoutField' => __DIR__ . '/../..' . '/src/Form/Field/LayoutField.php', - 'Kirby\\Form\\Field\\StatsField' => __DIR__ . '/../..' . '/src/Form/Field/StatsField.php', - 'Kirby\\Form\\Fields' => __DIR__ . '/../..' . '/src/Form/Fields.php', - 'Kirby\\Form\\Form' => __DIR__ . '/../..' . '/src/Form/Form.php', - 'Kirby\\Form\\Mixin\\After' => __DIR__ . '/../..' . '/src/Form/Mixin/After.php', - 'Kirby\\Form\\Mixin\\Api' => __DIR__ . '/../..' . '/src/Form/Mixin/Api.php', - 'Kirby\\Form\\Mixin\\Autofocus' => __DIR__ . '/../..' . '/src/Form/Mixin/Autofocus.php', - 'Kirby\\Form\\Mixin\\Before' => __DIR__ . '/../..' . '/src/Form/Mixin/Before.php', - 'Kirby\\Form\\Mixin\\EmptyState' => __DIR__ . '/../..' . '/src/Form/Mixin/EmptyState.php', - 'Kirby\\Form\\Mixin\\Help' => __DIR__ . '/../..' . '/src/Form/Mixin/Help.php', - 'Kirby\\Form\\Mixin\\Icon' => __DIR__ . '/../..' . '/src/Form/Mixin/Icon.php', - 'Kirby\\Form\\Mixin\\Label' => __DIR__ . '/../..' . '/src/Form/Mixin/Label.php', - 'Kirby\\Form\\Mixin\\Max' => __DIR__ . '/../..' . '/src/Form/Mixin/Max.php', - 'Kirby\\Form\\Mixin\\Min' => __DIR__ . '/../..' . '/src/Form/Mixin/Min.php', - 'Kirby\\Form\\Mixin\\Model' => __DIR__ . '/../..' . '/src/Form/Mixin/Model.php', - 'Kirby\\Form\\Mixin\\Placeholder' => __DIR__ . '/../..' . '/src/Form/Mixin/Placeholder.php', - 'Kirby\\Form\\Mixin\\Translatable' => __DIR__ . '/../..' . '/src/Form/Mixin/Translatable.php', - 'Kirby\\Form\\Mixin\\Validation' => __DIR__ . '/../..' . '/src/Form/Mixin/Validation.php', - 'Kirby\\Form\\Mixin\\Value' => __DIR__ . '/../..' . '/src/Form/Mixin/Value.php', - 'Kirby\\Form\\Mixin\\When' => __DIR__ . '/../..' . '/src/Form/Mixin/When.php', - 'Kirby\\Form\\Mixin\\Width' => __DIR__ . '/../..' . '/src/Form/Mixin/Width.php', - 'Kirby\\Form\\Validations' => __DIR__ . '/../..' . '/src/Form/Validations.php', - 'Kirby\\Http\\Cookie' => __DIR__ . '/../..' . '/src/Http/Cookie.php', - 'Kirby\\Http\\Environment' => __DIR__ . '/../..' . '/src/Http/Environment.php', - 'Kirby\\Http\\Exceptions\\NextRouteException' => __DIR__ . '/../..' . '/src/Http/Exceptions/NextRouteException.php', - 'Kirby\\Http\\Header' => __DIR__ . '/../..' . '/src/Http/Header.php', - 'Kirby\\Http\\Idn' => __DIR__ . '/../..' . '/src/Http/Idn.php', - 'Kirby\\Http\\Params' => __DIR__ . '/../..' . '/src/Http/Params.php', - 'Kirby\\Http\\Path' => __DIR__ . '/../..' . '/src/Http/Path.php', - 'Kirby\\Http\\Query' => __DIR__ . '/../..' . '/src/Http/Query.php', - 'Kirby\\Http\\Remote' => __DIR__ . '/../..' . '/src/Http/Remote.php', - 'Kirby\\Http\\Request' => __DIR__ . '/../..' . '/src/Http/Request.php', - 'Kirby\\Http\\Request\\Auth' => __DIR__ . '/../..' . '/src/Http/Request/Auth.php', - 'Kirby\\Http\\Request\\Auth\\BasicAuth' => __DIR__ . '/../..' . '/src/Http/Request/Auth/BasicAuth.php', - 'Kirby\\Http\\Request\\Auth\\BearerAuth' => __DIR__ . '/../..' . '/src/Http/Request/Auth/BearerAuth.php', - 'Kirby\\Http\\Request\\Auth\\SessionAuth' => __DIR__ . '/../..' . '/src/Http/Request/Auth/SessionAuth.php', - 'Kirby\\Http\\Request\\Body' => __DIR__ . '/../..' . '/src/Http/Request/Body.php', - 'Kirby\\Http\\Request\\Data' => __DIR__ . '/../..' . '/src/Http/Request/Data.php', - 'Kirby\\Http\\Request\\Files' => __DIR__ . '/../..' . '/src/Http/Request/Files.php', - 'Kirby\\Http\\Request\\Query' => __DIR__ . '/../..' . '/src/Http/Request/Query.php', - 'Kirby\\Http\\Response' => __DIR__ . '/../..' . '/src/Http/Response.php', - 'Kirby\\Http\\Route' => __DIR__ . '/../..' . '/src/Http/Route.php', - 'Kirby\\Http\\Router' => __DIR__ . '/../..' . '/src/Http/Router.php', - 'Kirby\\Http\\Uri' => __DIR__ . '/../..' . '/src/Http/Uri.php', - 'Kirby\\Http\\Url' => __DIR__ . '/../..' . '/src/Http/Url.php', - 'Kirby\\Http\\Visitor' => __DIR__ . '/../..' . '/src/Http/Visitor.php', - 'Kirby\\Image\\Camera' => __DIR__ . '/../..' . '/src/Image/Camera.php', - 'Kirby\\Image\\Darkroom' => __DIR__ . '/../..' . '/src/Image/Darkroom.php', - 'Kirby\\Image\\Darkroom\\GdLib' => __DIR__ . '/../..' . '/src/Image/Darkroom/GdLib.php', - 'Kirby\\Image\\Darkroom\\ImageMagick' => __DIR__ . '/../..' . '/src/Image/Darkroom/ImageMagick.php', - 'Kirby\\Image\\Darkroom\\Imagick' => __DIR__ . '/../..' . '/src/Image/Darkroom/Imagick.php', - 'Kirby\\Image\\Dimensions' => __DIR__ . '/../..' . '/src/Image/Dimensions.php', - 'Kirby\\Image\\Exif' => __DIR__ . '/../..' . '/src/Image/Exif.php', - 'Kirby\\Image\\Focus' => __DIR__ . '/../..' . '/src/Image/Focus.php', - 'Kirby\\Image\\Gravity' => __DIR__ . '/../..' . '/src/Image/Gravity.php', - 'Kirby\\Image\\Image' => __DIR__ . '/../..' . '/src/Image/Image.php', - 'Kirby\\Image\\Location' => __DIR__ . '/../..' . '/src/Image/Location.php', - 'Kirby\\Image\\QrCode' => __DIR__ . '/../..' . '/src/Image/QrCode.php', - 'Kirby\\Option\\Option' => __DIR__ . '/../..' . '/src/Option/Option.php', - 'Kirby\\Option\\Options' => __DIR__ . '/../..' . '/src/Option/Options.php', - 'Kirby\\Option\\OptionsApi' => __DIR__ . '/../..' . '/src/Option/OptionsApi.php', - 'Kirby\\Option\\OptionsProvider' => __DIR__ . '/../..' . '/src/Option/OptionsProvider.php', - 'Kirby\\Option\\OptionsQuery' => __DIR__ . '/../..' . '/src/Option/OptionsQuery.php', - 'Kirby\\Panel\\Assets' => __DIR__ . '/../..' . '/src/Panel/Assets.php', - 'Kirby\\Panel\\ChangesDialog' => __DIR__ . '/../..' . '/src/Panel/ChangesDialog.php', - 'Kirby\\Panel\\Collector\\FilesCollector' => __DIR__ . '/../..' . '/src/Panel/Collector/FilesCollector.php', - 'Kirby\\Panel\\Collector\\ModelsCollector' => __DIR__ . '/../..' . '/src/Panel/Collector/ModelsCollector.php', - 'Kirby\\Panel\\Collector\\PagesCollector' => __DIR__ . '/../..' . '/src/Panel/Collector/PagesCollector.php', - 'Kirby\\Panel\\Collector\\UsersCollector' => __DIR__ . '/../..' . '/src/Panel/Collector/UsersCollector.php', - 'Kirby\\Panel\\Controller\\PageTree' => __DIR__ . '/../..' . '/src/Panel/Controller/PageTree.php', - 'Kirby\\Panel\\Controller\\Search' => __DIR__ . '/../..' . '/src/Panel/Controller/Search.php', - 'Kirby\\Panel\\Dialog' => __DIR__ . '/../..' . '/src/Panel/Dialog.php', - 'Kirby\\Panel\\Document' => __DIR__ . '/../..' . '/src/Panel/Document.php', - 'Kirby\\Panel\\Drawer' => __DIR__ . '/../..' . '/src/Panel/Drawer.php', - 'Kirby\\Panel\\Dropdown' => __DIR__ . '/../..' . '/src/Panel/Dropdown.php', - 'Kirby\\Panel\\Field' => __DIR__ . '/../..' . '/src/Panel/Field.php', - 'Kirby\\Panel\\File' => __DIR__ . '/../..' . '/src/Panel/File.php', - 'Kirby\\Panel\\Home' => __DIR__ . '/../..' . '/src/Panel/Home.php', - 'Kirby\\Panel\\Json' => __DIR__ . '/../..' . '/src/Panel/Json.php', - 'Kirby\\Panel\\Lab\\Category' => __DIR__ . '/../..' . '/src/Panel/Lab/Category.php', - 'Kirby\\Panel\\Lab\\Doc' => __DIR__ . '/../..' . '/src/Panel/Lab/Doc.php', - 'Kirby\\Panel\\Lab\\Doc\\Argument' => __DIR__ . '/../..' . '/src/Panel/Lab/Doc/Argument.php', - 'Kirby\\Panel\\Lab\\Doc\\Event' => __DIR__ . '/../..' . '/src/Panel/Lab/Doc/Event.php', - 'Kirby\\Panel\\Lab\\Doc\\Method' => __DIR__ . '/../..' . '/src/Panel/Lab/Doc/Method.php', - 'Kirby\\Panel\\Lab\\Doc\\Prop' => __DIR__ . '/../..' . '/src/Panel/Lab/Doc/Prop.php', - 'Kirby\\Panel\\Lab\\Doc\\Slot' => __DIR__ . '/../..' . '/src/Panel/Lab/Doc/Slot.php', - 'Kirby\\Panel\\Lab\\Docs' => __DIR__ . '/../..' . '/src/Panel/Lab/Docs.php', - 'Kirby\\Panel\\Lab\\Example' => __DIR__ . '/../..' . '/src/Panel/Lab/Example.php', - 'Kirby\\Panel\\Lab\\Responses' => __DIR__ . '/../..' . '/src/Panel/Lab/Responses.php', - 'Kirby\\Panel\\Lab\\Snippet' => __DIR__ . '/../..' . '/src/Panel/Lab/Snippet.php', - 'Kirby\\Panel\\Lab\\Template' => __DIR__ . '/../..' . '/src/Panel/Lab/Template.php', - 'Kirby\\Panel\\Menu' => __DIR__ . '/../..' . '/src/Panel/Menu.php', - 'Kirby\\Panel\\Model' => __DIR__ . '/../..' . '/src/Panel/Model.php', - 'Kirby\\Panel\\Page' => __DIR__ . '/../..' . '/src/Panel/Page.php', - 'Kirby\\Panel\\PageCreateDialog' => __DIR__ . '/../..' . '/src/Panel/PageCreateDialog.php', - 'Kirby\\Panel\\Panel' => __DIR__ . '/../..' . '/src/Panel/Panel.php', - 'Kirby\\Panel\\Plugins' => __DIR__ . '/../..' . '/src/Panel/Plugins.php', - 'Kirby\\Panel\\Redirect' => __DIR__ . '/../..' . '/src/Panel/Redirect.php', - 'Kirby\\Panel\\Request' => __DIR__ . '/../..' . '/src/Panel/Request.php', - 'Kirby\\Panel\\Search' => __DIR__ . '/../..' . '/src/Panel/Search.php', - 'Kirby\\Panel\\Site' => __DIR__ . '/../..' . '/src/Panel/Site.php', - 'Kirby\\Panel\\Ui\\Button' => __DIR__ . '/../..' . '/src/Panel/Ui/Button.php', - 'Kirby\\Panel\\Ui\\Buttons\\LanguageCreateButton' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/LanguageCreateButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\LanguageDeleteButton' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/LanguageDeleteButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\LanguageSettingsButton' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/LanguageSettingsButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\LanguagesDropdown' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/LanguagesDropdown.php', - 'Kirby\\Panel\\Ui\\Buttons\\OpenButton' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/OpenButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\PageStatusButton' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/PageStatusButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\PreviewButton' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/PreviewButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\SettingsButton' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/SettingsButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\VersionsButton' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/VersionsButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\ViewButton' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/ViewButton.php', - 'Kirby\\Panel\\Ui\\Buttons\\ViewButtons' => __DIR__ . '/../..' . '/src/Panel/Ui/Buttons/ViewButtons.php', - 'Kirby\\Panel\\Ui\\Component' => __DIR__ . '/../..' . '/src/Panel/Ui/Component.php', - 'Kirby\\Panel\\Ui\\FilePreview' => __DIR__ . '/../..' . '/src/Panel/Ui/FilePreview.php', - 'Kirby\\Panel\\Ui\\FilePreviews\\AudioFilePreview' => __DIR__ . '/../..' . '/src/Panel/Ui/FilePreviews/AudioFilePreview.php', - 'Kirby\\Panel\\Ui\\FilePreviews\\DefaultFilePreview' => __DIR__ . '/../..' . '/src/Panel/Ui/FilePreviews/DefaultFilePreview.php', - 'Kirby\\Panel\\Ui\\FilePreviews\\ImageFilePreview' => __DIR__ . '/../..' . '/src/Panel/Ui/FilePreviews/ImageFilePreview.php', - 'Kirby\\Panel\\Ui\\FilePreviews\\PdfFilePreview' => __DIR__ . '/../..' . '/src/Panel/Ui/FilePreviews/PdfFilePreview.php', - 'Kirby\\Panel\\Ui\\FilePreviews\\VideoFilePreview' => __DIR__ . '/../..' . '/src/Panel/Ui/FilePreviews/VideoFilePreview.php', - 'Kirby\\Panel\\Ui\\Item\\FileItem' => __DIR__ . '/../..' . '/src/Panel/Ui/Item/FileItem.php', - 'Kirby\\Panel\\Ui\\Item\\ModelItem' => __DIR__ . '/../..' . '/src/Panel/Ui/Item/ModelItem.php', - 'Kirby\\Panel\\Ui\\Item\\PageItem' => __DIR__ . '/../..' . '/src/Panel/Ui/Item/PageItem.php', - 'Kirby\\Panel\\Ui\\Item\\UserItem' => __DIR__ . '/../..' . '/src/Panel/Ui/Item/UserItem.php', - 'Kirby\\Panel\\Ui\\Stat' => __DIR__ . '/../..' . '/src/Panel/Ui/Stat.php', - 'Kirby\\Panel\\Ui\\Stats' => __DIR__ . '/../..' . '/src/Panel/Ui/Stats.php', - 'Kirby\\Panel\\Ui\\Upload' => __DIR__ . '/../..' . '/src/Panel/Ui/Upload.php', - 'Kirby\\Panel\\User' => __DIR__ . '/../..' . '/src/Panel/User.php', - 'Kirby\\Panel\\UserTotpDisableDialog' => __DIR__ . '/../..' . '/src/Panel/UserTotpDisableDialog.php', - 'Kirby\\Panel\\UserTotpEnableDialog' => __DIR__ . '/../..' . '/src/Panel/UserTotpEnableDialog.php', - 'Kirby\\Panel\\View' => __DIR__ . '/../..' . '/src/Panel/View.php', - 'Kirby\\Parsley\\Element' => __DIR__ . '/../..' . '/src/Parsley/Element.php', - 'Kirby\\Parsley\\Inline' => __DIR__ . '/../..' . '/src/Parsley/Inline.php', - 'Kirby\\Parsley\\Parsley' => __DIR__ . '/../..' . '/src/Parsley/Parsley.php', - 'Kirby\\Parsley\\Schema' => __DIR__ . '/../..' . '/src/Parsley/Schema.php', - 'Kirby\\Parsley\\Schema\\Blocks' => __DIR__ . '/../..' . '/src/Parsley/Schema/Blocks.php', - 'Kirby\\Parsley\\Schema\\Plain' => __DIR__ . '/../..' . '/src/Parsley/Schema/Plain.php', - 'Kirby\\Plugin\\Asset' => __DIR__ . '/../..' . '/src/Plugin/Asset.php', - 'Kirby\\Plugin\\Assets' => __DIR__ . '/../..' . '/src/Plugin/Assets.php', - 'Kirby\\Plugin\\License' => __DIR__ . '/../..' . '/src/Plugin/License.php', - 'Kirby\\Plugin\\LicenseStatus' => __DIR__ . '/../..' . '/src/Plugin/LicenseStatus.php', - 'Kirby\\Plugin\\Plugin' => __DIR__ . '/../..' . '/src/Plugin/Plugin.php', - 'Kirby\\Query\\AST\\ArgumentListNode' => __DIR__ . '/../..' . '/src/Query/AST/ArgumentListNode.php', - 'Kirby\\Query\\AST\\ArithmeticNode' => __DIR__ . '/../..' . '/src/Query/AST/ArithmeticNode.php', - 'Kirby\\Query\\AST\\ArrayListNode' => __DIR__ . '/../..' . '/src/Query/AST/ArrayListNode.php', - 'Kirby\\Query\\AST\\ClosureNode' => __DIR__ . '/../..' . '/src/Query/AST/ClosureNode.php', - 'Kirby\\Query\\AST\\CoalesceNode' => __DIR__ . '/../..' . '/src/Query/AST/CoalesceNode.php', - 'Kirby\\Query\\AST\\ComparisonNode' => __DIR__ . '/../..' . '/src/Query/AST/ComparisonNode.php', - 'Kirby\\Query\\AST\\GlobalFunctionNode' => __DIR__ . '/../..' . '/src/Query/AST/GlobalFunctionNode.php', - 'Kirby\\Query\\AST\\LiteralNode' => __DIR__ . '/../..' . '/src/Query/AST/LiteralNode.php', - 'Kirby\\Query\\AST\\LogicalNode' => __DIR__ . '/../..' . '/src/Query/AST/LogicalNode.php', - 'Kirby\\Query\\AST\\MemberAccessNode' => __DIR__ . '/../..' . '/src/Query/AST/MemberAccessNode.php', - 'Kirby\\Query\\AST\\Node' => __DIR__ . '/../..' . '/src/Query/AST/Node.php', - 'Kirby\\Query\\AST\\TernaryNode' => __DIR__ . '/../..' . '/src/Query/AST/TernaryNode.php', - 'Kirby\\Query\\AST\\VariableNode' => __DIR__ . '/../..' . '/src/Query/AST/VariableNode.php', - 'Kirby\\Query\\Argument' => __DIR__ . '/../..' . '/src/Query/Argument.php', - 'Kirby\\Query\\Arguments' => __DIR__ . '/../..' . '/src/Query/Arguments.php', - 'Kirby\\Query\\Expression' => __DIR__ . '/../..' . '/src/Query/Expression.php', - 'Kirby\\Query\\Parser\\Parser' => __DIR__ . '/../..' . '/src/Query/Parser/Parser.php', - 'Kirby\\Query\\Parser\\Token' => __DIR__ . '/../..' . '/src/Query/Parser/Token.php', - 'Kirby\\Query\\Parser\\TokenType' => __DIR__ . '/../..' . '/src/Query/Parser/TokenType.php', - 'Kirby\\Query\\Parser\\Tokenizer' => __DIR__ . '/../..' . '/src/Query/Parser/Tokenizer.php', - 'Kirby\\Query\\Query' => __DIR__ . '/../..' . '/src/Query/Query.php', - 'Kirby\\Query\\Runners\\DefaultRunner' => __DIR__ . '/../..' . '/src/Query/Runners/DefaultRunner.php', - 'Kirby\\Query\\Runners\\Runner' => __DIR__ . '/../..' . '/src/Query/Runners/Runner.php', - 'Kirby\\Query\\Runners\\Scope' => __DIR__ . '/../..' . '/src/Query/Runners/Scope.php', - 'Kirby\\Query\\Segment' => __DIR__ . '/../..' . '/src/Query/Segment.php', - 'Kirby\\Query\\Segments' => __DIR__ . '/../..' . '/src/Query/Segments.php', - 'Kirby\\Query\\Visitors\\DefaultVisitor' => __DIR__ . '/../..' . '/src/Query/Visitors/DefaultVisitor.php', - 'Kirby\\Query\\Visitors\\Visitor' => __DIR__ . '/../..' . '/src/Query/Visitors/Visitor.php', - 'Kirby\\Reflection\\Constructor' => __DIR__ . '/../..' . '/src/Reflection/Constructor.php', - 'Kirby\\Sane\\DomHandler' => __DIR__ . '/../..' . '/src/Sane/DomHandler.php', - 'Kirby\\Sane\\Handler' => __DIR__ . '/../..' . '/src/Sane/Handler.php', - 'Kirby\\Sane\\Html' => __DIR__ . '/../..' . '/src/Sane/Html.php', - 'Kirby\\Sane\\Sane' => __DIR__ . '/../..' . '/src/Sane/Sane.php', - 'Kirby\\Sane\\Svg' => __DIR__ . '/../..' . '/src/Sane/Svg.php', - 'Kirby\\Sane\\Svgz' => __DIR__ . '/../..' . '/src/Sane/Svgz.php', - 'Kirby\\Sane\\Xml' => __DIR__ . '/../..' . '/src/Sane/Xml.php', - 'Kirby\\Session\\AutoSession' => __DIR__ . '/../..' . '/src/Session/AutoSession.php', - 'Kirby\\Session\\FileSessionStore' => __DIR__ . '/../..' . '/src/Session/FileSessionStore.php', - 'Kirby\\Session\\Session' => __DIR__ . '/../..' . '/src/Session/Session.php', - 'Kirby\\Session\\SessionData' => __DIR__ . '/../..' . '/src/Session/SessionData.php', - 'Kirby\\Session\\SessionStore' => __DIR__ . '/../..' . '/src/Session/SessionStore.php', - 'Kirby\\Session\\Sessions' => __DIR__ . '/../..' . '/src/Session/Sessions.php', - 'Kirby\\Template\\Slot' => __DIR__ . '/../..' . '/src/Template/Slot.php', - 'Kirby\\Template\\Slots' => __DIR__ . '/../..' . '/src/Template/Slots.php', - 'Kirby\\Template\\Snippet' => __DIR__ . '/../..' . '/src/Template/Snippet.php', - 'Kirby\\Template\\Template' => __DIR__ . '/../..' . '/src/Template/Template.php', - 'Kirby\\Text\\KirbyTag' => __DIR__ . '/../..' . '/src/Text/KirbyTag.php', - 'Kirby\\Text\\KirbyTags' => __DIR__ . '/../..' . '/src/Text/KirbyTags.php', - 'Kirby\\Text\\Markdown' => __DIR__ . '/../..' . '/src/Text/Markdown.php', - 'Kirby\\Text\\SmartyPants' => __DIR__ . '/../..' . '/src/Text/SmartyPants.php', - 'Kirby\\Toolkit\\A' => __DIR__ . '/../..' . '/src/Toolkit/A.php', - 'Kirby\\Toolkit\\Collection' => __DIR__ . '/../..' . '/src/Toolkit/Collection.php', - 'Kirby\\Toolkit\\Component' => __DIR__ . '/../..' . '/src/Toolkit/Component.php', - 'Kirby\\Toolkit\\Config' => __DIR__ . '/../..' . '/src/Toolkit/Config.php', - 'Kirby\\Toolkit\\Controller' => __DIR__ . '/../..' . '/src/Toolkit/Controller.php', - 'Kirby\\Toolkit\\Date' => __DIR__ . '/../..' . '/src/Toolkit/Date.php', - 'Kirby\\Toolkit\\Dom' => __DIR__ . '/../..' . '/src/Toolkit/Dom.php', - 'Kirby\\Toolkit\\Escape' => __DIR__ . '/../..' . '/src/Toolkit/Escape.php', - 'Kirby\\Toolkit\\Facade' => __DIR__ . '/../..' . '/src/Toolkit/Facade.php', - 'Kirby\\Toolkit\\Html' => __DIR__ . '/../..' . '/src/Toolkit/Html.php', - 'Kirby\\Toolkit\\I18n' => __DIR__ . '/../..' . '/src/Toolkit/I18n.php', - 'Kirby\\Toolkit\\Iterator' => __DIR__ . '/../..' . '/src/Toolkit/Iterator.php', - 'Kirby\\Toolkit\\LazyValue' => __DIR__ . '/../..' . '/src/Toolkit/LazyValue.php', - 'Kirby\\Toolkit\\Locale' => __DIR__ . '/../..' . '/src/Toolkit/Locale.php', - 'Kirby\\Toolkit\\Obj' => __DIR__ . '/../..' . '/src/Toolkit/Obj.php', - 'Kirby\\Toolkit\\Pagination' => __DIR__ . '/../..' . '/src/Toolkit/Pagination.php', - 'Kirby\\Toolkit\\Silo' => __DIR__ . '/../..' . '/src/Toolkit/Silo.php', - 'Kirby\\Toolkit\\Str' => __DIR__ . '/../..' . '/src/Toolkit/Str.php', - 'Kirby\\Toolkit\\SymmetricCrypto' => __DIR__ . '/../..' . '/src/Toolkit/SymmetricCrypto.php', - 'Kirby\\Toolkit\\Totp' => __DIR__ . '/../..' . '/src/Toolkit/Totp.php', - 'Kirby\\Toolkit\\Tpl' => __DIR__ . '/../..' . '/src/Toolkit/Tpl.php', - 'Kirby\\Toolkit\\V' => __DIR__ . '/../..' . '/src/Toolkit/V.php', - 'Kirby\\Toolkit\\View' => __DIR__ . '/../..' . '/src/Toolkit/View.php', - 'Kirby\\Toolkit\\Xml' => __DIR__ . '/../..' . '/src/Toolkit/Xml.php', - 'Kirby\\Uuid\\BlockUuid' => __DIR__ . '/../..' . '/src/Uuid/BlockUuid.php', - 'Kirby\\Uuid\\FieldUuid' => __DIR__ . '/../..' . '/src/Uuid/FieldUuid.php', - 'Kirby\\Uuid\\FileUuid' => __DIR__ . '/../..' . '/src/Uuid/FileUuid.php', - 'Kirby\\Uuid\\HasUuids' => __DIR__ . '/../..' . '/src/Uuid/HasUuids.php', - 'Kirby\\Uuid\\Identifiable' => __DIR__ . '/../..' . '/src/Uuid/Identifiable.php', - 'Kirby\\Uuid\\ModelUuid' => __DIR__ . '/../..' . '/src/Uuid/ModelUuid.php', - 'Kirby\\Uuid\\PageUuid' => __DIR__ . '/../..' . '/src/Uuid/PageUuid.php', - 'Kirby\\Uuid\\SiteUuid' => __DIR__ . '/../..' . '/src/Uuid/SiteUuid.php', - 'Kirby\\Uuid\\StructureUuid' => __DIR__ . '/../..' . '/src/Uuid/StructureUuid.php', - 'Kirby\\Uuid\\Uri' => __DIR__ . '/../..' . '/src/Uuid/Uri.php', - 'Kirby\\Uuid\\UserUuid' => __DIR__ . '/../..' . '/src/Uuid/UserUuid.php', - 'Kirby\\Uuid\\Uuid' => __DIR__ . '/../..' . '/src/Uuid/Uuid.php', - 'Kirby\\Uuid\\Uuids' => __DIR__ . '/../..' . '/src/Uuid/Uuids.php', - 'Laminas\\Escaper\\Escaper' => __DIR__ . '/..' . '/laminas/laminas-escaper/src/Escaper.php', - 'Laminas\\Escaper\\EscaperInterface' => __DIR__ . '/..' . '/laminas/laminas-escaper/src/EscaperInterface.php', - 'Laminas\\Escaper\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-escaper/src/Exception/ExceptionInterface.php', - 'Laminas\\Escaper\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-escaper/src/Exception/InvalidArgumentException.php', - 'Laminas\\Escaper\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-escaper/src/Exception/RuntimeException.php', - 'League\\ColorExtractor\\Color' => __DIR__ . '/..' . '/league/color-extractor/src/Color.php', - 'League\\ColorExtractor\\ColorExtractor' => __DIR__ . '/..' . '/league/color-extractor/src/ColorExtractor.php', - 'League\\ColorExtractor\\Palette' => __DIR__ . '/..' . '/league/color-extractor/src/Palette.php', - 'Michelf\\SmartyPants' => __DIR__ . '/..' . '/michelf/php-smartypants/Michelf/SmartyPants.php', - 'Michelf\\SmartyPantsTypographer' => __DIR__ . '/..' . '/michelf/php-smartypants/Michelf/SmartyPantsTypographer.php', - 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', - 'PHPMailer\\PHPMailer\\DSNConfigurator' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/DSNConfigurator.php', - 'PHPMailer\\PHPMailer\\Exception' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/Exception.php', - 'PHPMailer\\PHPMailer\\OAuth' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/OAuth.php', - 'PHPMailer\\PHPMailer\\OAuthTokenProvider' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/OAuthTokenProvider.php', - 'PHPMailer\\PHPMailer\\PHPMailer' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/PHPMailer.php', - 'PHPMailer\\PHPMailer\\POP3' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/POP3.php', - 'PHPMailer\\PHPMailer\\SMTP' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/SMTP.php', - 'Parsedown' => __DIR__ . '/../..' . '/dependencies/parsedown/Parsedown.php', - 'ParsedownExtra' => __DIR__ . '/../..' . '/dependencies/parsedown-extra/ParsedownExtra.php', - 'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', - 'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', - 'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', - 'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', - 'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', - 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', - 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', - 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', - 'Spyc' => __DIR__ . '/../..' . '/dependencies/spyc/Spyc.php', - 'Symfony\\Component\\Yaml\\Command\\LintCommand' => __DIR__ . '/..' . '/symfony/yaml/Command/LintCommand.php', - 'Symfony\\Component\\Yaml\\Dumper' => __DIR__ . '/..' . '/symfony/yaml/Dumper.php', - 'Symfony\\Component\\Yaml\\Escaper' => __DIR__ . '/..' . '/symfony/yaml/Escaper.php', - 'Symfony\\Component\\Yaml\\Exception\\DumpException' => __DIR__ . '/..' . '/symfony/yaml/Exception/DumpException.php', - 'Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/yaml/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Yaml\\Exception\\ParseException' => __DIR__ . '/..' . '/symfony/yaml/Exception/ParseException.php', - 'Symfony\\Component\\Yaml\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/yaml/Exception/RuntimeException.php', - 'Symfony\\Component\\Yaml\\Inline' => __DIR__ . '/..' . '/symfony/yaml/Inline.php', - 'Symfony\\Component\\Yaml\\Parser' => __DIR__ . '/..' . '/symfony/yaml/Parser.php', - 'Symfony\\Component\\Yaml\\Tag\\TaggedValue' => __DIR__ . '/..' . '/symfony/yaml/Tag/TaggedValue.php', - 'Symfony\\Component\\Yaml\\Unescaper' => __DIR__ . '/..' . '/symfony/yaml/Unescaper.php', - 'Symfony\\Component\\Yaml\\Yaml' => __DIR__ . '/..' . '/symfony/yaml/Yaml.php', - 'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php', - 'Symfony\\Polyfill\\Intl\\Idn\\Idn' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Idn.php', - 'Symfony\\Polyfill\\Intl\\Idn\\Info' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Info.php', - 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php', - 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Resources/unidata/Regex.php', - 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Normalizer.php', - 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php', - 'Whoops\\Exception\\ErrorException' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/ErrorException.php', - 'Whoops\\Exception\\Formatter' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Formatter.php', - 'Whoops\\Exception\\Frame' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Frame.php', - 'Whoops\\Exception\\FrameCollection' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/FrameCollection.php', - 'Whoops\\Exception\\Inspector' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Inspector.php', - 'Whoops\\Handler\\CallbackHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/CallbackHandler.php', - 'Whoops\\Handler\\Handler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/Handler.php', - 'Whoops\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/HandlerInterface.php', - 'Whoops\\Handler\\JsonResponseHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php', - 'Whoops\\Handler\\PlainTextHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/PlainTextHandler.php', - 'Whoops\\Handler\\PrettyPageHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php', - 'Whoops\\Handler\\XmlResponseHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php', - 'Whoops\\Inspector\\InspectorFactory' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Inspector/InspectorFactory.php', - 'Whoops\\Inspector\\InspectorFactoryInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Inspector/InspectorFactoryInterface.php', - 'Whoops\\Inspector\\InspectorInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Inspector/InspectorInterface.php', - 'Whoops\\Run' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Run.php', - 'Whoops\\RunInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/RunInterface.php', - 'Whoops\\Util\\HtmlDumperOutput' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php', - 'Whoops\\Util\\Misc' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/Misc.php', - 'Whoops\\Util\\SystemFacade' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/SystemFacade.php', - 'Whoops\\Util\\TemplateHelper' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/TemplateHelper.php', - 'claviska\\SimpleImage' => __DIR__ . '/..' . '/claviska/simpleimage/src/claviska/SimpleImage.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit0bf5c8a9cfa251a218fc581ac888fe35::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit0bf5c8a9cfa251a218fc581ac888fe35::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit0bf5c8a9cfa251a218fc581ac888fe35::$prefixesPsr0; - $loader->classMap = ComposerStaticInit0bf5c8a9cfa251a218fc581ac888fe35::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/site/templates/print.php b/site/templates/print.php index cdebaa6..fbd8ff9 100644 --- a/site/templates/print.php +++ b/site/templates/print.php @@ -37,22 +37,48 @@

        -

        typeof()?>

        - -
        - -
        /////////// typeof()->html()?> ///////////
        /////////////////////////////
        -

        title()->html()->smartypants() ?>

        -
        /
        -

        author()->html()->smartypants() ?>

        - - -
        - + + typeof()->value(); + + switch ($type) { + + case 'entretien': + $symbol = '@'; + $before = '@/////////'; + $after = '/////////@'; + $separator = '@///////////////////////////@'; + break; + + case 'portfolio': + $symbol = '+'; + $before = '+/////////'; + $after = '/////////+'; + $separator = '+///////////////////////////+'; + break; + + default: + $symbol = '*'; + $before = '*//////////'; + $after = '//////////*'; + $separator = '*///////////////////////////*'; + break; + } + ?> + +
        +
        +
        +
        typeof()->html() ?>
        +
        +
        +
        + +

        title()->html()->smartypants() ?>

        +
        / /
        +

        author()->html()->smartypants() ?>

        +
        / / / / / /
        +
        diff --git a/kirby/vendor/autoload.php b/vendor/autoload.php similarity index 91% rename from kirby/vendor/autoload.php rename to vendor/autoload.php index 5e40bd7..7ac1826 100644 --- a/kirby/vendor/autoload.php +++ b/vendor/autoload.php @@ -19,4 +19,4 @@ if (PHP_VERSION_ID < 50600) { require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit0bf5c8a9cfa251a218fc581ac888fe35::getLoader(); +return ComposerAutoloaderInit0b7fb803e22a45eb87e24172337208aa::getLoader(); diff --git a/kirby/vendor/bin/yaml-lint b/vendor/bin/yaml-lint old mode 100644 new mode 100755 similarity index 100% rename from kirby/vendor/bin/yaml-lint rename to vendor/bin/yaml-lint diff --git a/kirby/vendor/christian-riesen/base32/LICENSE b/vendor/christian-riesen/base32/LICENSE similarity index 100% rename from kirby/vendor/christian-riesen/base32/LICENSE rename to vendor/christian-riesen/base32/LICENSE diff --git a/vendor/christian-riesen/base32/README.md b/vendor/christian-riesen/base32/README.md new file mode 100644 index 0000000..74343b8 --- /dev/null +++ b/vendor/christian-riesen/base32/README.md @@ -0,0 +1,64 @@ +base32 +====== + +Base32 Encoder/Decoder for PHP according to [RFC 4648](https://tools.ietf.org/html/rfc4648). + +![CI](https://github.com/ChristianRiesen/base32/workflows/CI/badge.svg) + +[![Latest Stable Version](https://poser.pugx.org/christian-riesen/base32/v/stable.png)](https://packagist.org/packages/christian-riesen/base32) [![Total Downloads](https://poser.pugx.org/christian-riesen/base32/downloads.png)](https://packagist.org/packages/christian-riesen/base32) [![Latest Unstable Version](https://poser.pugx.org/christian-riesen/base32/v/unstable.png)](https://packagist.org/packages/christian-riesen/base32) [![License](https://poser.pugx.org/christian-riesen/base32/license.png)](https://packagist.org/packages/christian-riesen/base32) + + +Installation +----- + +Use composer: + +```bash +composer require christian-riesen/base32 +``` + +Usage +----- + +```php + http://christianriesen.com + +Acknowledgements +---------------- + +Base32 is mostly based on the work of https://github.com/NTICompass/PHP-Base32 diff --git a/kirby/vendor/christian-riesen/base32/src/Base32.php b/vendor/christian-riesen/base32/src/Base32.php similarity index 100% rename from kirby/vendor/christian-riesen/base32/src/Base32.php rename to vendor/christian-riesen/base32/src/Base32.php diff --git a/kirby/vendor/christian-riesen/base32/src/Base32Hex.php b/vendor/christian-riesen/base32/src/Base32Hex.php similarity index 100% rename from kirby/vendor/christian-riesen/base32/src/Base32Hex.php rename to vendor/christian-riesen/base32/src/Base32Hex.php diff --git a/vendor/claviska/simpleimage/.editorconfig b/vendor/claviska/simpleimage/.editorconfig new file mode 100644 index 0000000..3c44241 --- /dev/null +++ b/vendor/claviska/simpleimage/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/kirby/vendor/claviska/simpleimage/LICENSE.md b/vendor/claviska/simpleimage/LICENSE.md similarity index 100% rename from kirby/vendor/claviska/simpleimage/LICENSE.md rename to vendor/claviska/simpleimage/LICENSE.md diff --git a/vendor/claviska/simpleimage/README.md b/vendor/claviska/simpleimage/README.md new file mode 100644 index 0000000..e2308bc --- /dev/null +++ b/vendor/claviska/simpleimage/README.md @@ -0,0 +1,870 @@ +# SimpleImage + +A PHP class that makes working with images as simple as possible. + +Developed and maintained by [Cory LaViska](https://github.com/claviska). + +_If this project has you loving PHP image manipulation again, please consider [sponsoring me](https://github.com/sponsors/claviska) to support its development._ + +--- + +## Overview + +```php +fromFile('image.jpg') // load image.jpg + ->autoOrient() // adjust orientation based on exif data + ->resize(320, 200) // resize to 320x200 pixels + ->flip('x') // flip horizontally + ->colorize('DarkBlue') // tint dark blue + ->border('black', 10) // add a 10 pixel black border + ->overlay('watermark.png', 'bottom right') // add a watermark image + ->toFile('new-image.png', 'image/png') // convert to PNG and save a copy to new-image.png + ->toScreen(); // output to the screen + + // And much more! 💪 +} catch(Exception $err) { + // Handle errors + echo $err->getMessage(); +} +``` + +## Requirements + +- PHP 8.0+ +- [GD extension](http://php.net/manual/en/book.image.php) + +For PHP versions below 7.0, please use [SimpleImage v3.7.2](https://github.com/claviska/SimpleImage/releases/tag/3.7.2) + +## Features + +- Supports reading, writing, and converting GIF, JPEG, PNG, WEBP, BMP, AVIF formats. +- Reads and writes files, data URIs, and image strings. +- Manipulation: crop, resize, overlay/watermark, adding TTF text +- Drawing: arc, border, dot, ellipse, line, polygon, rectangle, rounded rectangle +- Filters: blur, brighten, colorize, contrast, darken, desaturate, edge detect, emboss, invert, opacity, pixelate, sepia, sharpen, sketch +- Utilities: color adjustment, darken/lighten color, extract colors +- Properties: exif data, height/width, mime type, orientation +- Color arguments can be passed in as any CSS color (e.g. `LightBlue`), a hex color, or an RGB(A) array. +- Support for alpha-transparency (GIF, PNG, WEBP, AVIF) +- Chainable methods +- Uses exceptions +- Load with Composer or manually (just one file) +- [Semantic Versioning](http://semver.org/) + +## Installation + +Install with Composer: + +``` +composer require claviska/simpleimage +``` + +Or include the library manually: + +```php +toFile($file, 'image/avif', [ + // JPG, WEBP, AVIF (default 100) + 'quality' => 100, + + // AVIF (default -1 which is 6) + // range of slow and small file 0 to 10 fast but big file + 'speed' => -1, +]); +``` + +```php +$image->toFile($file, 'image/bmp', [ + // BMP: boolean (default true) + 'compression' => true, + + // BMP, JPG (default null, keep the same) + 'interlace' => null, +]); +``` + +```php +$image->toFile($file, 'image/gif', [ + // GIF, PNG (default true) + 'alpha' => true, +]); +``` + +```php +$image->toFile($file, 'image/jpeg', [ + // BMP, JPG (default null, keep the same) + 'interlace' => null, + + // JPG, WEBP, AVIF (default 100) + 'quality' => 100, +]); +``` + +```php +$image->toFile($file, 'image/png', [ + // GIF, PNG (default true) + 'alpha' => true, + + // PNG: 0-10, defaults to zlib (default 6) + 'compression' => -1, + + // PNG (default -1) + 'filters' => -1, + + // has no effect on PNG images, since the format is lossless + // 'quality' => 100, +]); +``` + +```php +$image->toFile($file, 'image/webp', [ + // JPG, WEBP, AVIF (default 100) + 'quality' => 100, +]); +``` + +### Utilities + +#### `getAspectRatio()` + +Gets the image's current aspect ratio. + +Returns the aspect ratio as a float. + +#### `getExif()` + +Gets the image's exif data. + +Returns an array of exif data or null if no data is available. + +#### `getHeight()` + +Gets the image's current height. + +Returns the height as an integer. + +#### `getMimeType()` + +Gets the mime type of the loaded image. + +Returns a mime type string. + +#### `getOrientation()` + +Gets the image's current orientation. + +Returns a string: 'landscape', 'portrait', or 'square' + +#### `getResolution()` + +Gets the image's current resolution in DPI. + +Returns an array of integers: [0 => 96, 1 => 96] + +#### `getWidth()` + +Gets the image's current width. + +Returns the width as an integer. + +#### `hasImage()` + +Checks if the SimpleImage object has loaded an image. + +Returns a boolean. + +#### `reset()` + +> [!NOTE] +> The `reset()` method has been deprecated in SimpleImage 4.4.0. Calling the method has no effect. + +Destroys the image resource. + +Returns a SimpleImage object. + +### Manipulation + +#### `autoOrient()` + +Rotates an image so the orientation will be correct based on its exif data. It is safe to call this method on images that don't have exif data (no changes will be made). +Returns a SimpleImage object. + +#### `bestFit($maxWidth, $maxHeight)` + +Proportionally resize the image to fit inside a specific width and height. + +- `$maxWidth`* (int) - The maximum width the image can be. +- `$maxHeight`* (int) - The maximum height the image can be. + +Returns a SimpleImage object. + +#### `crop($x1, $y1, $x2, $y2)` + +Crop the image. + +- $x1 - Top left x coordinate. +- $y1 - Top left y coordinate. +- $x2 - Bottom right x coordinate. +- $y2 - Bottom right x coordinate. + +Returns a SimpleImage object. + +#### `fitToHeight($height)` (DEPRECATED) + +Proportionally resize the image to a specific height. + +_This method was deprecated in version 3.2.2 and will be removed in version 4.0. Please use `resize(null, $height)` instead._ + +- `$height`* (int) - The height to resize the image to. + +Returns a SimpleImage object. + +#### `fitToWidth($width)` (DEPRECATED) + +Proportionally resize the image to a specific width. + +_This method was deprecated in version 3.2.2 and will be removed in version 4.0. Please use `resize($width, null)` instead._ + +- `$width`* (int) - The width to resize the image to. + +Returns a SimpleImage object. + +#### `flip($direction)` + +Flip the image horizontally or vertically. + +- `$direction`* (string) - The direction to flip: x|y|both + +Returns a SimpleImage object. + +#### `maxColors($max, $dither)` + +Reduces the image to a maximum number of colors. + +- `$max`* (int) - The maximum number of colors to use. +- `$dither` (bool) - Whether or not to use a dithering effect (default true). + +Returns a SimpleImage object. + +#### `overlay($overlay, $anchor, $opacity, $xOffset, $yOffset)` + +Place an image on top of the current image. + +- `$overlay`* (string|SimpleImage) - The image to overlay. This can be a filename, a data URI, or a SimpleImage object. +- `$anchor` (string) - The anchor point: 'center', 'top', 'bottom', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right' (default 'center') +- `$opacity` (float) - The opacity level of the overlay 0-1 (default 1). +- `$xOffset` (int) - Horizontal offset in pixels (default 0). +- `$yOffset` (int) - Vertical offset in pixels (default 0). +- `$calculateOffsetFromEdge` (bool) - Calculate Offset referring to the edges of the image. $xOffset and $yOffset have no effect in center anchor. (default false). + +Returns a SimpleImage object. + +#### `resize($width, $height)` + +Resize an image to the specified dimensions. If only one dimension is specified, the image will be resized proportionally. + +- `$width`* (int) - The new image width. +- `$height`* (int) - The new image height. + +Returns a SimpleImage object. + +#### `resolution($res_x, $res_y)` + +Changes the resolution (DPI) of an image. + +- `$res_x`* (int) - The horizontal resolution, in DPI. +- `$res_y` (int) - The vertical resolution, in DPI. + +Returns a SimpleImage object. + +#### `rotate($angle, $backgroundColor)` + +Rotates the image. + +- `$angle`* (int) - The angle of rotation (-360 - 360). +- `$backgroundColor` (string|array) - The background color to use for the uncovered zone area after rotation (default 'transparent'). + +Returns a SimpleImage object. + +#### `text($text, $options, &$boundary)` + +Adds text to the image. + +- `$text*` (string) - The desired text. +- `$options` (array) - An array of options. + - `fontFile`* (string) - The TrueType (or compatible) font file to use. + - `size` (int) - The size of the font in pixels (default 12). + - `color` (string|array) - The text color (default black). + - `anchor` (string) - The anchor point: 'center', 'top', 'bottom', 'left', 'right', + 'top left', 'top right', 'bottom left', 'bottom right' (default 'center'). + - `xOffset` (int) - The horizontal offset in pixels (default 0). + - `yOffset` (int) - The vertical offset in pixels (default 0). + - `shadow` (array) - Text shadow params. + - `x`* (int) - Horizontal offset in pixels. + - `y`* (int) - Vertical offset in pixels. + - `color`* (string|array) - The text shadow color. + - `calculateOffsetFromEdge` (bool) - Calculate Offset referring to the edges of the image (default false). + - `baselineAlign` (bool) - Align the text font with the baseline. (default true). +- `$boundary` (array) - If passed, this variable will contain an array with coordinates that + surround the text: [x1, y1, x2, y2, width, height]. This can be used for calculating the + text's position after it gets added to the image. + +Returns a SimpleImage object. + +#### `thumbnail($width, $height, $anchor)` + +Creates a thumbnail image. This function attempts to get the image as close to the provided dimensions as possible, then crops the remaining overflow to force the desired size. Useful for generating thumbnail images. + +- `$width`* (int) - The thumbnail width. +- `$height`* (int) - The thumbnail height. +- `$anchor` (string) - The anchor point: 'center', 'top', 'bottom', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right' (default 'center'). + +Returns a SimpleImage object. + +### Drawing + +#### `arc($x, $y, $width, $height, $start, $end, $color, $thickness)` + +Draws an arc. + +- `$x`* (int) - The x coordinate of the arc's center. +- `$y`* (int) - The y coordinate of the arc's center. +- `$width`* (int) - The width of the arc. +- `$height`* (int) - The height of the arc. +- `$start`* (int) - The start of the arc in degrees. +- `$end`* (int) - The end of the arc in degrees. +- `$color`* (string|array) - The arc color. +- `$thickness` (int|string) - Line thickness in pixels or 'filled' (default 1). + +Returns a SimpleImage object. + +#### `border($color, $thickness)` + +Draws a border around the image. + +- `$color`* (string|array) - The border color. +- `$thickness` (int) - The thickness of the border (default 1). + +Returns a SimpleImage object. + +#### `dot($x, $y, $color)` + +Draws a single pixel dot. + +- `$x`* (int) - The x coordinate of the dot. +- `$y`* (int) - The y coordinate of the dot. +- `$color`* (string|array) - The dot color. + +Returns a SimpleImage object. + +#### `ellipse($x, $y, $width, $height, $color, $thickness)` + +Draws an ellipse. + +- `$x`* (int) - The x coordinate of the center. +- `$y`* (int) - The y coordinate of the center. +- `$width`* (int) - The ellipse width. +- `$height`* (int) - The ellipse height. +- `$color`* (string|array) - The ellipse color. +- `$thickness` (int|string) - Line thickness in pixels or 'filled' (default 1). + +Returns a SimpleImage object. + +#### `fill($color)` + +Fills the image with a solid color. + +- `$color` (string|array) - The fill color. + +Returns a SimpleImage object. + +#### `line($x1, $y1, $x2, $y2, $color, $thickness)` + +Draws a line. + +- `$x1`* (int) - The x coordinate for the first point. +- `$y1`* (int) - The y coordinate for the first point. +- `$x2`* (int) - The x coordinate for the second point. +- `$y2`* (int) - The y coordinate for the second point. +- `$color` (string|array) - The line color. +- `$thickness` (int) - The line thickness (default 1). + +Returns a SimpleImage object. + +#### `polygon($vertices, $color, $thickness)` + +Draws a polygon. + +- `$vertices`* (array) - The polygon's vertices in an array of x/y arrays. Example: + ``` + [ + ['x' => x1, 'y' => y1], + ['x' => x2, 'y' => y2], + ['x' => xN, 'y' => yN] + ] + ``` +- `$color`* (string|array) - The polygon color. +- `$thickness` (int|string) - Line thickness in pixels or 'filled' (default 1). + +Returns a SimpleImage object. + +#### `rectangle($x1, $y1, $x2, $y2, $color, $thickness)` + +Draws a rectangle. + +- `$x1`* (int) - The upper left x coordinate. +- `$y1`* (int) - The upper left y coordinate. +- `$x2`* (int) - The bottom right x coordinate. +- `$y2`* (int) - The bottom right y coordinate. +- `$color`* (string|array) - The rectangle color. +- `$thickness` (int|string) - Line thickness in pixels or 'filled' (default 1). + +Returns a SimpleImage object. + +#### `roundedRectangle($x1, $y1, $x2, $y2, $radius, $color, $thickness)` + +Draws a rounded rectangle. + +- `$x1`* (int) - The upper left x coordinate. +- `$y1`* (int) - The upper left y coordinate. +- `$x2`* (int) - The bottom right x coordinate. +- `$y2`* (int) - The bottom right y coordinate. +- `$radius`* (int) - The border radius in pixels. +- `$color`* (string|array) - The rectangle color. +- `$thickness` (int|string) - Line thickness in pixels or 'filled' (default 1). + +Returns a SimpleImage object. + +### Filters + +#### `blur($type, $passes)` + +Applies the blur filter. + +- `$type` (string) - The blur algorithm to use: 'selective', 'gaussian' (default 'gaussian'). +- `$passes` (int) - The number of time to apply the filter, enhancing the effect (default 1). + +Returns a SimpleImage object. + +#### `brighten($percentage)` + +Applies the brightness filter to brighten the image. + +- `$percentage`* (int) - Percentage to brighten the image (0 - 100). + +Returns a SimpleImage object. + +#### `colorize($color)` + +Applies the colorize filter. + +- `$color`* (string|array) - The filter color. + +Returns a SimpleImage object. + +#### `contrast($percentage)` + +Applies the contrast filter. + +- `$percentage`* (int) - Percentage to adjust (-100 - 100). + +Returns a SimpleImage object. + +#### `darken($percentage)` + +Applies the brightness filter to darken the image. + +- `$percentage`* (int) - Percentage to darken the image (0 - 100). + +Returns a SimpleImage object. + +#### `desaturate()` + +Applies the desaturate (grayscale) filter. + +Returns a SimpleImage object. + +#### `duotone($lightColor, $darkColor)` + +Applies the duotone filter to the image. + +- `$lightColor`* (string|array) - The lightest color in the duotone. +- `$darkColor`* (string|array) - The darkest color in the duotone. + +Returns a SimpleImage object. + +#### `edgeDetect()` + +Applies the edge detect filter. + +Returns a SimpleImage object. + +#### `emboss()` + +Applies the emboss filter. + +Returns a SimpleImage object. + +#### `invert()` + +Inverts the image's colors. + +Returns a SimpleImage object. + +#### `opacity()` + +Changes the image's opacity level. + +- `$opacity`* (float) - The desired opacity level (0 - 1). + +Returns a SimpleImage object. + +#### `pixelate($size)` + +Applies the pixelate filter. + +- `$size` (int) - The size of the blocks in pixels (default 10). + +Returns a SimpleImage object. + +#### `sepia()` + +Simulates a sepia effect by desaturating the image and applying a sepia tone. + +Returns a SimpleImage object. + +#### `sharpen($amount)` + +Sharpens the image. + +- `$amount` (int) - Sharpening amount (1 - 100, default 50) + +Returns a SimpleImage object. + +#### `sketch()` + +Applies the mean remove filter to produce a sketch effect. + +Returns a SimpleImage object. + +### Color utilities + +#### `(static) adjustColor($color, $red, $green, $blue, $alpha)` + +Adjusts a color by increasing/decreasing red/green/blue/alpha values independently. + +- `$color`* (string|array) - The color to adjust. +- `$red`* (int) - Red adjustment (-255 - 255). +- `$green`* (int) - Green adjustment (-255 - 255). +- `$blue`* (int) - Blue adjustment (-255 - 255). +- `$alpha`* (float) - Alpha adjustment (-1 - 1). + +Returns an RGBA color array. + +#### `(static) darkenColor($color, $amount)` + +Darkens a color. + +- `$color`* (string|array) - The color to darken. +- `$amount`* (int) - Amount to darken (0 - 255). + +Returns an RGBA color array. + +#### `extractColors($count = 10, $backgroundColor = null)` + +Extracts colors from an image like a human would do.™ This method requires the third-party library \League\ColorExtractor. If you're using Composer, it will be installed for you automatically. + +- `$count` (int) - The max number of colors to extract (default 5). +- `$backgroundColor` (string|array) - By default any pixel with alpha value greater than zero will be discarded. This is because transparent colors are not perceived as is. For example, fully transparent black would be seen white on a white background. So if you want to take transparency into account, you have to specify a default background color. + +Returns an array of RGBA colors arrays. + +#### `getColorAt($x, $y)` + +Gets the RGBA value of a single pixel. + +- `$x`* (int) - The horizontal position of the pixel. +- `$y`* (int) - The vertical position of the pixel. + +Returns an RGBA color array or false if the x/y position is off the canvas. + +#### `(static) lightenColor($color, $amount)` + +Lightens a color. + +- `$color`* (string|array) - The color to lighten. +- `$amount`* (int) - Amount to darken (0 - 255). + +Returns an RGBA color array. + +#### `(static) normalizeColor($color)` + +Normalizes a hex or array color value to a well-formatted RGBA array. + +- `$color`* (string|array) - A CSS color name, hex string, or an array [red, green, blue, alpha]. + +You can pipe alpha transparency through hex strings and color names. For example: + + #fff|0.50 <-- 50% white + red|0.25 <-- 25% red + +Returns an array: [red, green, blue, alpha] + +### Exceptions + +SimpleImage throws standard exceptions when things go wrong. You should always use a try/catch block around your code to properly handle them. + +```php +getMessage(); +} +``` + +To check for specific errors, compare `$err->getCode()` to the defined error constants. + +```php +getCode() === $image::ERR_FILE_NOT_FOUND) { + echo 'File not found!'; + } else { + echo $err->getMessage(); + } +} +``` + +As a best practice, always use the defined constants instead of their integers values. The values will likely change in future versions, and WILL NOT be considered a breaking change. + +- `ERR_FILE_NOT_FOUND` - The specified file could not be found or loaded for some reason. +- `ERR_FONT_FILE` - The specified font file could not be loaded. +- `ERR_FREETYPE_NOT_ENABLED` - Freetype support is not enabled in your version of PHP. +- `ERR_GD_NOT_ENABLED` - The GD extension is not enabled in your version of PHP. +- `ERR_LIB_NOT_LOADED` - A required library has not been loaded. +- `ERR_INVALID_COLOR` - An invalid color value was passed as an argument. +- `ERR_INVALID_DATA_URI` - The specified data URI is not valid. +- `ERR_INVALID_IMAGE` - The specified image is not valid. +- `ERR_UNSUPPORTED_FORMAT` - The image format specified is not valid. +- `ERR_WEBP_NOT_ENABLED` - WEBP support is not enabled in your version of PHP. +- `ERR_WRITE` - Unable to write to the file system. +- `ERR_INVALID_FLAG` - The specified flag key does not exist. + +### Useful Things To Know + +- Color arguments can be a CSS color name (e.g. `LightBlue`), a hex color string (e.g. `#0099dd`), or an RGB(A) array (e.g. `['red' => 255, 'green' => 0, 'blue' => 0, 'alpha' => 1]`). + +- When `$thickness` > 1, GD draws lines of the desired thickness from the center origin. For example, a rectangle drawn at [10, 10, 20, 20] with a thickness of 3 will actually be draw at [9, 9, 21, 21]. This is true for all shapes and is not a bug in the SimpleImage library. + +### Instance flags + +Tweak the behavior of a SimpleImage instance by setting instance flag values with the `setFlag($key, $value)` method. + +```php +$image = new \claviska\SimpleImage('image.jpeg')->setFlag("foo", "bar"); +``` + +You can also pass an associative array to the SimpleImage constructor to set instance flags. + +```php +$image = new \claviska\SimpleImage('image.jpeg', ['foo' => 'bar']); +// .. or without an $image +$image = new \claviska\SimpleImage(flags: ['foo' => 'bar']); +``` + +*Note: `setFlag()` throws an `ERR_INVALID_FLAG` exception if the key does not exist (no default value).* + +#### `sslVerify` + +Setting `sslVerify` to `false` (defaults to `true`) will make all images loaded over HTTPS forgo certificate peer validation. This is especially usefull for self-signed certificates. + +```php +$image = new \claviska\SimpleImage('https://localhost/image.jpeg', ['sslVerify' => false]); +// Would normally throw an OpenSSL exception, but is ignored with the sslVerify flag set to false. +``` + +## Differences from SimpleImage 2.x + +- Normalized color arguments (colors can be a CSS color name, hex color, or RGB(A) array). +- Normalized alpha (opacity) arguments: 0 (transparent) - 1 (opaque) +- Added text shadow to `text` method. +- Added `fromString()` method to load images from strings. +- Added `toString()` method to generate image strings. +- Added `arc` method for drawing arcs. +- Added `border` method for drawing borders. +- Added `dot` method for drawing individual pixels. +- Added `ellipse` method for drawing ellipses and circles. +- Added `line` method for drawing lines. +- Added `polygon` method for drawing polygons. +- Added `rectangle` method for drawing rectangles. +- Added `roundedRectangle` method for drawing rounded rectangles. +- Added `adjustColor` method for modifying RGBA color channels to create relative color variations. +- Added `darkenColor` method to darken a color. +- Added `extractColors` method to get the most common colors from the image. +- Added `getColorAt` method to get the RGBA values of a specific pixel. +- Added `lightenColor` method to lighten a color. +- Added `toDownload` method to force the image to download on the client's machine. +- Added `duotone` filter to create duotone images. +- Added `sharpen` method to sharpen the image. +- Changed namespace from `abeautifulsite` to `claviska`. +- Changed `create` method to `fromNew`. +- Changed `load` method to `fromFile`. +- Changed `load_base64` method to `fromDataUri`. +- Changed `output` method to `toScreen`.x +- Changed `output_base64` method to `toDataUri`. +- Changed `save` method to `toFile`. +- Changed `text` method to accept an array of options instead of tons of arguments. +- Removed text stroke from `text` method because it produced dirty results and didn't support transparency. +- Removed `smooth` method because its arguments in the PHP manual aren't documented well. +- Removed deprecated method `adaptive_resize` (use `thumbnail` instead). +- Removed `get_meta_data` (use `getExif`, `getHeight`, `getMime`, `getOrientation`, and `getWidth` instead). +- Added [.editorconfig](http://editorconfig.org/) file. Please make sure your editor supports these settings before submitting contributions. +- Switched from four spaces to two for indentations (sorry PHP-FIG!). +- Switched from underscore_methods to camelCaseMethods. +- Organized methods into groups based on function +- Removed PHPDoc comments. At this time, I don't wish to incorporate them into the library. diff --git a/kirby/vendor/claviska/simpleimage/composer.json b/vendor/claviska/simpleimage/composer.json similarity index 100% rename from kirby/vendor/claviska/simpleimage/composer.json rename to vendor/claviska/simpleimage/composer.json diff --git a/kirby/vendor/claviska/simpleimage/composer.lock b/vendor/claviska/simpleimage/composer.lock similarity index 100% rename from kirby/vendor/claviska/simpleimage/composer.lock rename to vendor/claviska/simpleimage/composer.lock diff --git a/kirby/vendor/claviska/simpleimage/src/claviska/SimpleImage.php b/vendor/claviska/simpleimage/src/claviska/SimpleImage.php similarity index 100% rename from kirby/vendor/claviska/simpleimage/src/claviska/SimpleImage.php rename to vendor/claviska/simpleimage/src/claviska/SimpleImage.php diff --git a/kirby/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php similarity index 100% rename from kirby/vendor/composer/ClassLoader.php rename to vendor/composer/ClassLoader.php diff --git a/kirby/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php similarity index 100% rename from kirby/vendor/composer/InstalledVersions.php rename to vendor/composer/InstalledVersions.php diff --git a/kirby/vendor/composer/LICENSE b/vendor/composer/LICENSE similarity index 100% rename from kirby/vendor/composer/LICENSE rename to vendor/composer/LICENSE diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..c2eaa7a --- /dev/null +++ b/vendor/composer/autoload_classmap.php @@ -0,0 +1,506 @@ + $vendorDir . '/christian-riesen/base32/src/Base32.php', + 'Base32\\Base32Hex' => $vendorDir . '/christian-riesen/base32/src/Base32Hex.php', + 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', + 'Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', + 'Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', + 'Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', + 'Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', + 'Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', + 'Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', + 'Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', + 'Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', + 'Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', + 'Kirby\\Api\\Api' => $baseDir . '/kirby/src/Api/Api.php', + 'Kirby\\Api\\Collection' => $baseDir . '/kirby/src/Api/Collection.php', + 'Kirby\\Api\\Controller\\Changes' => $baseDir . '/kirby/src/Api/Controller/Changes.php', + 'Kirby\\Api\\Model' => $baseDir . '/kirby/src/Api/Model.php', + 'Kirby\\Api\\Upload' => $baseDir . '/kirby/src/Api/Upload.php', + 'Kirby\\Cache\\ApcuCache' => $baseDir . '/kirby/src/Cache/ApcuCache.php', + 'Kirby\\Cache\\Cache' => $baseDir . '/kirby/src/Cache/Cache.php', + 'Kirby\\Cache\\FileCache' => $baseDir . '/kirby/src/Cache/FileCache.php', + 'Kirby\\Cache\\MemCached' => $baseDir . '/kirby/src/Cache/MemCached.php', + 'Kirby\\Cache\\MemoryCache' => $baseDir . '/kirby/src/Cache/MemoryCache.php', + 'Kirby\\Cache\\NullCache' => $baseDir . '/kirby/src/Cache/NullCache.php', + 'Kirby\\Cache\\RedisCache' => $baseDir . '/kirby/src/Cache/RedisCache.php', + 'Kirby\\Cache\\Value' => $baseDir . '/kirby/src/Cache/Value.php', + 'Kirby\\Cms\\Api' => $baseDir . '/kirby/src/Cms/Api.php', + 'Kirby\\Cms\\App' => $baseDir . '/kirby/src/Cms/App.php', + 'Kirby\\Cms\\AppCaches' => $baseDir . '/kirby/src/Cms/AppCaches.php', + 'Kirby\\Cms\\AppErrors' => $baseDir . '/kirby/src/Cms/AppErrors.php', + 'Kirby\\Cms\\AppPlugins' => $baseDir . '/kirby/src/Cms/AppPlugins.php', + 'Kirby\\Cms\\AppTranslations' => $baseDir . '/kirby/src/Cms/AppTranslations.php', + 'Kirby\\Cms\\AppUsers' => $baseDir . '/kirby/src/Cms/AppUsers.php', + 'Kirby\\Cms\\Auth' => $baseDir . '/kirby/src/Cms/Auth.php', + 'Kirby\\Cms\\Auth\\Challenge' => $baseDir . '/kirby/src/Cms/Auth/Challenge.php', + 'Kirby\\Cms\\Auth\\EmailChallenge' => $baseDir . '/kirby/src/Cms/Auth/EmailChallenge.php', + 'Kirby\\Cms\\Auth\\Status' => $baseDir . '/kirby/src/Cms/Auth/Status.php', + 'Kirby\\Cms\\Auth\\TotpChallenge' => $baseDir . '/kirby/src/Cms/Auth/TotpChallenge.php', + 'Kirby\\Cms\\Block' => $baseDir . '/kirby/src/Cms/Block.php', + 'Kirby\\Cms\\BlockConverter' => $baseDir . '/kirby/src/Cms/BlockConverter.php', + 'Kirby\\Cms\\Blocks' => $baseDir . '/kirby/src/Cms/Blocks.php', + 'Kirby\\Cms\\Blueprint' => $baseDir . '/kirby/src/Cms/Blueprint.php', + 'Kirby\\Cms\\Collection' => $baseDir . '/kirby/src/Cms/Collection.php', + 'Kirby\\Cms\\Collections' => $baseDir . '/kirby/src/Cms/Collections.php', + 'Kirby\\Cms\\Core' => $baseDir . '/kirby/src/Cms/Core.php', + 'Kirby\\Cms\\Cors' => $baseDir . '/kirby/src/Cms/Cors.php', + 'Kirby\\Cms\\Email' => $baseDir . '/kirby/src/Cms/Email.php', + 'Kirby\\Cms\\Event' => $baseDir . '/kirby/src/Cms/Event.php', + 'Kirby\\Cms\\Events' => $baseDir . '/kirby/src/Cms/Events.php', + 'Kirby\\Cms\\Fieldset' => $baseDir . '/kirby/src/Cms/Fieldset.php', + 'Kirby\\Cms\\Fieldsets' => $baseDir . '/kirby/src/Cms/Fieldsets.php', + 'Kirby\\Cms\\File' => $baseDir . '/kirby/src/Cms/File.php', + 'Kirby\\Cms\\FileActions' => $baseDir . '/kirby/src/Cms/FileActions.php', + 'Kirby\\Cms\\FileBlueprint' => $baseDir . '/kirby/src/Cms/FileBlueprint.php', + 'Kirby\\Cms\\FileModifications' => $baseDir . '/kirby/src/Cms/FileModifications.php', + 'Kirby\\Cms\\FilePermissions' => $baseDir . '/kirby/src/Cms/FilePermissions.php', + 'Kirby\\Cms\\FilePicker' => $baseDir . '/kirby/src/Cms/FilePicker.php', + 'Kirby\\Cms\\FileRules' => $baseDir . '/kirby/src/Cms/FileRules.php', + 'Kirby\\Cms\\FileVersion' => $baseDir . '/kirby/src/Cms/FileVersion.php', + 'Kirby\\Cms\\Files' => $baseDir . '/kirby/src/Cms/Files.php', + 'Kirby\\Cms\\Find' => $baseDir . '/kirby/src/Cms/Find.php', + 'Kirby\\Cms\\HasChildren' => $baseDir . '/kirby/src/Cms/HasChildren.php', + 'Kirby\\Cms\\HasFiles' => $baseDir . '/kirby/src/Cms/HasFiles.php', + 'Kirby\\Cms\\HasMethods' => $baseDir . '/kirby/src/Cms/HasMethods.php', + 'Kirby\\Cms\\HasModels' => $baseDir . '/kirby/src/Cms/HasModels.php', + 'Kirby\\Cms\\HasSiblings' => $baseDir . '/kirby/src/Cms/HasSiblings.php', + 'Kirby\\Cms\\Helpers' => $baseDir . '/kirby/src/Cms/Helpers.php', + 'Kirby\\Cms\\Html' => $baseDir . '/kirby/src/Cms/Html.php', + 'Kirby\\Cms\\Ingredients' => $baseDir . '/kirby/src/Cms/Ingredients.php', + 'Kirby\\Cms\\Item' => $baseDir . '/kirby/src/Cms/Item.php', + 'Kirby\\Cms\\Items' => $baseDir . '/kirby/src/Cms/Items.php', + 'Kirby\\Cms\\Language' => $baseDir . '/kirby/src/Cms/Language.php', + 'Kirby\\Cms\\LanguagePermissions' => $baseDir . '/kirby/src/Cms/LanguagePermissions.php', + 'Kirby\\Cms\\LanguageRouter' => $baseDir . '/kirby/src/Cms/LanguageRouter.php', + 'Kirby\\Cms\\LanguageRoutes' => $baseDir . '/kirby/src/Cms/LanguageRoutes.php', + 'Kirby\\Cms\\LanguageRules' => $baseDir . '/kirby/src/Cms/LanguageRules.php', + 'Kirby\\Cms\\LanguageVariable' => $baseDir . '/kirby/src/Cms/LanguageVariable.php', + 'Kirby\\Cms\\Languages' => $baseDir . '/kirby/src/Cms/Languages.php', + 'Kirby\\Cms\\Layout' => $baseDir . '/kirby/src/Cms/Layout.php', + 'Kirby\\Cms\\LayoutColumn' => $baseDir . '/kirby/src/Cms/LayoutColumn.php', + 'Kirby\\Cms\\LayoutColumns' => $baseDir . '/kirby/src/Cms/LayoutColumns.php', + 'Kirby\\Cms\\Layouts' => $baseDir . '/kirby/src/Cms/Layouts.php', + 'Kirby\\Cms\\LazyCollection' => $baseDir . '/kirby/src/Cms/LazyCollection.php', + 'Kirby\\Cms\\License' => $baseDir . '/kirby/src/Cms/License.php', + 'Kirby\\Cms\\LicenseStatus' => $baseDir . '/kirby/src/Cms/LicenseStatus.php', + 'Kirby\\Cms\\LicenseType' => $baseDir . '/kirby/src/Cms/LicenseType.php', + 'Kirby\\Cms\\Loader' => $baseDir . '/kirby/src/Cms/Loader.php', + 'Kirby\\Cms\\Media' => $baseDir . '/kirby/src/Cms/Media.php', + 'Kirby\\Cms\\ModelCommit' => $baseDir . '/kirby/src/Cms/ModelCommit.php', + 'Kirby\\Cms\\ModelPermissions' => $baseDir . '/kirby/src/Cms/ModelPermissions.php', + 'Kirby\\Cms\\ModelState' => $baseDir . '/kirby/src/Cms/ModelState.php', + 'Kirby\\Cms\\ModelWithContent' => $baseDir . '/kirby/src/Cms/ModelWithContent.php', + 'Kirby\\Cms\\Nest' => $baseDir . '/kirby/src/Cms/Nest.php', + 'Kirby\\Cms\\NestCollection' => $baseDir . '/kirby/src/Cms/NestCollection.php', + 'Kirby\\Cms\\NestObject' => $baseDir . '/kirby/src/Cms/NestObject.php', + 'Kirby\\Cms\\Page' => $baseDir . '/kirby/src/Cms/Page.php', + 'Kirby\\Cms\\PageActions' => $baseDir . '/kirby/src/Cms/PageActions.php', + 'Kirby\\Cms\\PageBlueprint' => $baseDir . '/kirby/src/Cms/PageBlueprint.php', + 'Kirby\\Cms\\PageCopy' => $baseDir . '/kirby/src/Cms/PageCopy.php', + 'Kirby\\Cms\\PagePermissions' => $baseDir . '/kirby/src/Cms/PagePermissions.php', + 'Kirby\\Cms\\PagePicker' => $baseDir . '/kirby/src/Cms/PagePicker.php', + 'Kirby\\Cms\\PageRules' => $baseDir . '/kirby/src/Cms/PageRules.php', + 'Kirby\\Cms\\PageSiblings' => $baseDir . '/kirby/src/Cms/PageSiblings.php', + 'Kirby\\Cms\\Pages' => $baseDir . '/kirby/src/Cms/Pages.php', + 'Kirby\\Cms\\Pagination' => $baseDir . '/kirby/src/Cms/Pagination.php', + 'Kirby\\Cms\\Permissions' => $baseDir . '/kirby/src/Cms/Permissions.php', + 'Kirby\\Cms\\Picker' => $baseDir . '/kirby/src/Cms/Picker.php', + 'Kirby\\Cms\\R' => $baseDir . '/kirby/src/Cms/R.php', + 'Kirby\\Cms\\Responder' => $baseDir . '/kirby/src/Cms/Responder.php', + 'Kirby\\Cms\\Response' => $baseDir . '/kirby/src/Cms/Response.php', + 'Kirby\\Cms\\Role' => $baseDir . '/kirby/src/Cms/Role.php', + 'Kirby\\Cms\\Roles' => $baseDir . '/kirby/src/Cms/Roles.php', + 'Kirby\\Cms\\S' => $baseDir . '/kirby/src/Cms/S.php', + 'Kirby\\Cms\\Search' => $baseDir . '/kirby/src/Cms/Search.php', + 'Kirby\\Cms\\Section' => $baseDir . '/kirby/src/Cms/Section.php', + 'Kirby\\Cms\\Site' => $baseDir . '/kirby/src/Cms/Site.php', + 'Kirby\\Cms\\SiteActions' => $baseDir . '/kirby/src/Cms/SiteActions.php', + 'Kirby\\Cms\\SiteBlueprint' => $baseDir . '/kirby/src/Cms/SiteBlueprint.php', + 'Kirby\\Cms\\SitePermissions' => $baseDir . '/kirby/src/Cms/SitePermissions.php', + 'Kirby\\Cms\\SiteRules' => $baseDir . '/kirby/src/Cms/SiteRules.php', + 'Kirby\\Cms\\Structure' => $baseDir . '/kirby/src/Cms/Structure.php', + 'Kirby\\Cms\\StructureObject' => $baseDir . '/kirby/src/Cms/StructureObject.php', + 'Kirby\\Cms\\System' => $baseDir . '/kirby/src/Cms/System.php', + 'Kirby\\Cms\\System\\UpdateStatus' => $baseDir . '/kirby/src/Cms/System/UpdateStatus.php', + 'Kirby\\Cms\\Translation' => $baseDir . '/kirby/src/Cms/Translation.php', + 'Kirby\\Cms\\Translations' => $baseDir . '/kirby/src/Cms/Translations.php', + 'Kirby\\Cms\\Url' => $baseDir . '/kirby/src/Cms/Url.php', + 'Kirby\\Cms\\User' => $baseDir . '/kirby/src/Cms/User.php', + 'Kirby\\Cms\\UserActions' => $baseDir . '/kirby/src/Cms/UserActions.php', + 'Kirby\\Cms\\UserBlueprint' => $baseDir . '/kirby/src/Cms/UserBlueprint.php', + 'Kirby\\Cms\\UserPermissions' => $baseDir . '/kirby/src/Cms/UserPermissions.php', + 'Kirby\\Cms\\UserPicker' => $baseDir . '/kirby/src/Cms/UserPicker.php', + 'Kirby\\Cms\\UserRules' => $baseDir . '/kirby/src/Cms/UserRules.php', + 'Kirby\\Cms\\Users' => $baseDir . '/kirby/src/Cms/Users.php', + 'Kirby\\Cms\\Visitor' => $baseDir . '/kirby/src/Cms/Visitor.php', + 'Kirby\\ComposerInstaller\\CmsInstaller' => $vendorDir . '/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php', + 'Kirby\\ComposerInstaller\\Installer' => $vendorDir . '/getkirby/composer-installer/src/ComposerInstaller/Installer.php', + 'Kirby\\ComposerInstaller\\Plugin' => $vendorDir . '/getkirby/composer-installer/src/ComposerInstaller/Plugin.php', + 'Kirby\\ComposerInstaller\\PluginInstaller' => $vendorDir . '/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php', + 'Kirby\\Content\\Changes' => $baseDir . '/kirby/src/Content/Changes.php', + 'Kirby\\Content\\Content' => $baseDir . '/kirby/src/Content/Content.php', + 'Kirby\\Content\\Field' => $baseDir . '/kirby/src/Content/Field.php', + 'Kirby\\Content\\ImmutableMemoryStorage' => $baseDir . '/kirby/src/Content/ImmutableMemoryStorage.php', + 'Kirby\\Content\\Lock' => $baseDir . '/kirby/src/Content/Lock.php', + 'Kirby\\Content\\LockedContentException' => $baseDir . '/kirby/src/Content/LockedContentException.php', + 'Kirby\\Content\\MemoryStorage' => $baseDir . '/kirby/src/Content/MemoryStorage.php', + 'Kirby\\Content\\PlainTextStorage' => $baseDir . '/kirby/src/Content/PlainTextStorage.php', + 'Kirby\\Content\\Storage' => $baseDir . '/kirby/src/Content/Storage.php', + 'Kirby\\Content\\Translation' => $baseDir . '/kirby/src/Content/Translation.php', + 'Kirby\\Content\\Translations' => $baseDir . '/kirby/src/Content/Translations.php', + 'Kirby\\Content\\Version' => $baseDir . '/kirby/src/Content/Version.php', + 'Kirby\\Content\\VersionCache' => $baseDir . '/kirby/src/Content/VersionCache.php', + 'Kirby\\Content\\VersionId' => $baseDir . '/kirby/src/Content/VersionId.php', + 'Kirby\\Content\\VersionRules' => $baseDir . '/kirby/src/Content/VersionRules.php', + 'Kirby\\Content\\Versions' => $baseDir . '/kirby/src/Content/Versions.php', + 'Kirby\\Data\\Data' => $baseDir . '/kirby/src/Data/Data.php', + 'Kirby\\Data\\Handler' => $baseDir . '/kirby/src/Data/Handler.php', + 'Kirby\\Data\\Json' => $baseDir . '/kirby/src/Data/Json.php', + 'Kirby\\Data\\PHP' => $baseDir . '/kirby/src/Data/PHP.php', + 'Kirby\\Data\\Txt' => $baseDir . '/kirby/src/Data/Txt.php', + 'Kirby\\Data\\Xml' => $baseDir . '/kirby/src/Data/Xml.php', + 'Kirby\\Data\\Yaml' => $baseDir . '/kirby/src/Data/Yaml.php', + 'Kirby\\Data\\YamlSpyc' => $baseDir . '/kirby/src/Data/YamlSpyc.php', + 'Kirby\\Data\\YamlSymfony' => $baseDir . '/kirby/src/Data/YamlSymfony.php', + 'Kirby\\Database\\Database' => $baseDir . '/kirby/src/Database/Database.php', + 'Kirby\\Database\\Db' => $baseDir . '/kirby/src/Database/Db.php', + 'Kirby\\Database\\Query' => $baseDir . '/kirby/src/Database/Query.php', + 'Kirby\\Database\\Sql' => $baseDir . '/kirby/src/Database/Sql.php', + 'Kirby\\Database\\Sql\\Mysql' => $baseDir . '/kirby/src/Database/Sql/Mysql.php', + 'Kirby\\Database\\Sql\\Sqlite' => $baseDir . '/kirby/src/Database/Sql/Sqlite.php', + 'Kirby\\Email\\Body' => $baseDir . '/kirby/src/Email/Body.php', + 'Kirby\\Email\\Email' => $baseDir . '/kirby/src/Email/Email.php', + 'Kirby\\Email\\PHPMailer' => $baseDir . '/kirby/src/Email/PHPMailer.php', + 'Kirby\\Exception\\AuthException' => $baseDir . '/kirby/src/Exception/AuthException.php', + 'Kirby\\Exception\\BadMethodCallException' => $baseDir . '/kirby/src/Exception/BadMethodCallException.php', + 'Kirby\\Exception\\DuplicateException' => $baseDir . '/kirby/src/Exception/DuplicateException.php', + 'Kirby\\Exception\\ErrorPageException' => $baseDir . '/kirby/src/Exception/ErrorPageException.php', + 'Kirby\\Exception\\Exception' => $baseDir . '/kirby/src/Exception/Exception.php', + 'Kirby\\Exception\\InvalidArgumentException' => $baseDir . '/kirby/src/Exception/InvalidArgumentException.php', + 'Kirby\\Exception\\LogicException' => $baseDir . '/kirby/src/Exception/LogicException.php', + 'Kirby\\Exception\\NotFoundException' => $baseDir . '/kirby/src/Exception/NotFoundException.php', + 'Kirby\\Exception\\PermissionException' => $baseDir . '/kirby/src/Exception/PermissionException.php', + 'Kirby\\Field\\FieldOptions' => $baseDir . '/kirby/src/Field/FieldOptions.php', + 'Kirby\\Filesystem\\Asset' => $baseDir . '/kirby/src/Filesystem/Asset.php', + 'Kirby\\Filesystem\\Dir' => $baseDir . '/kirby/src/Filesystem/Dir.php', + 'Kirby\\Filesystem\\F' => $baseDir . '/kirby/src/Filesystem/F.php', + 'Kirby\\Filesystem\\File' => $baseDir . '/kirby/src/Filesystem/File.php', + 'Kirby\\Filesystem\\Filename' => $baseDir . '/kirby/src/Filesystem/Filename.php', + 'Kirby\\Filesystem\\IsFile' => $baseDir . '/kirby/src/Filesystem/IsFile.php', + 'Kirby\\Filesystem\\Mime' => $baseDir . '/kirby/src/Filesystem/Mime.php', + 'Kirby\\Form\\Field' => $baseDir . '/kirby/src/Form/Field.php', + 'Kirby\\Form\\FieldClass' => $baseDir . '/kirby/src/Form/FieldClass.php', + 'Kirby\\Form\\Field\\BlocksField' => $baseDir . '/kirby/src/Form/Field/BlocksField.php', + 'Kirby\\Form\\Field\\EntriesField' => $baseDir . '/kirby/src/Form/Field/EntriesField.php', + 'Kirby\\Form\\Field\\LayoutField' => $baseDir . '/kirby/src/Form/Field/LayoutField.php', + 'Kirby\\Form\\Field\\StatsField' => $baseDir . '/kirby/src/Form/Field/StatsField.php', + 'Kirby\\Form\\Fields' => $baseDir . '/kirby/src/Form/Fields.php', + 'Kirby\\Form\\Form' => $baseDir . '/kirby/src/Form/Form.php', + 'Kirby\\Form\\Mixin\\After' => $baseDir . '/kirby/src/Form/Mixin/After.php', + 'Kirby\\Form\\Mixin\\Api' => $baseDir . '/kirby/src/Form/Mixin/Api.php', + 'Kirby\\Form\\Mixin\\Autofocus' => $baseDir . '/kirby/src/Form/Mixin/Autofocus.php', + 'Kirby\\Form\\Mixin\\Before' => $baseDir . '/kirby/src/Form/Mixin/Before.php', + 'Kirby\\Form\\Mixin\\EmptyState' => $baseDir . '/kirby/src/Form/Mixin/EmptyState.php', + 'Kirby\\Form\\Mixin\\Help' => $baseDir . '/kirby/src/Form/Mixin/Help.php', + 'Kirby\\Form\\Mixin\\Icon' => $baseDir . '/kirby/src/Form/Mixin/Icon.php', + 'Kirby\\Form\\Mixin\\Label' => $baseDir . '/kirby/src/Form/Mixin/Label.php', + 'Kirby\\Form\\Mixin\\Max' => $baseDir . '/kirby/src/Form/Mixin/Max.php', + 'Kirby\\Form\\Mixin\\Min' => $baseDir . '/kirby/src/Form/Mixin/Min.php', + 'Kirby\\Form\\Mixin\\Model' => $baseDir . '/kirby/src/Form/Mixin/Model.php', + 'Kirby\\Form\\Mixin\\Placeholder' => $baseDir . '/kirby/src/Form/Mixin/Placeholder.php', + 'Kirby\\Form\\Mixin\\Translatable' => $baseDir . '/kirby/src/Form/Mixin/Translatable.php', + 'Kirby\\Form\\Mixin\\Validation' => $baseDir . '/kirby/src/Form/Mixin/Validation.php', + 'Kirby\\Form\\Mixin\\Value' => $baseDir . '/kirby/src/Form/Mixin/Value.php', + 'Kirby\\Form\\Mixin\\When' => $baseDir . '/kirby/src/Form/Mixin/When.php', + 'Kirby\\Form\\Mixin\\Width' => $baseDir . '/kirby/src/Form/Mixin/Width.php', + 'Kirby\\Form\\Validations' => $baseDir . '/kirby/src/Form/Validations.php', + 'Kirby\\Http\\Cookie' => $baseDir . '/kirby/src/Http/Cookie.php', + 'Kirby\\Http\\Environment' => $baseDir . '/kirby/src/Http/Environment.php', + 'Kirby\\Http\\Exceptions\\NextRouteException' => $baseDir . '/kirby/src/Http/Exceptions/NextRouteException.php', + 'Kirby\\Http\\Header' => $baseDir . '/kirby/src/Http/Header.php', + 'Kirby\\Http\\Idn' => $baseDir . '/kirby/src/Http/Idn.php', + 'Kirby\\Http\\Params' => $baseDir . '/kirby/src/Http/Params.php', + 'Kirby\\Http\\Path' => $baseDir . '/kirby/src/Http/Path.php', + 'Kirby\\Http\\Query' => $baseDir . '/kirby/src/Http/Query.php', + 'Kirby\\Http\\Range' => $baseDir . '/kirby/src/Http/Range.php', + 'Kirby\\Http\\Remote' => $baseDir . '/kirby/src/Http/Remote.php', + 'Kirby\\Http\\Request' => $baseDir . '/kirby/src/Http/Request.php', + 'Kirby\\Http\\Request\\Auth' => $baseDir . '/kirby/src/Http/Request/Auth.php', + 'Kirby\\Http\\Request\\Auth\\BasicAuth' => $baseDir . '/kirby/src/Http/Request/Auth/BasicAuth.php', + 'Kirby\\Http\\Request\\Auth\\BearerAuth' => $baseDir . '/kirby/src/Http/Request/Auth/BearerAuth.php', + 'Kirby\\Http\\Request\\Auth\\SessionAuth' => $baseDir . '/kirby/src/Http/Request/Auth/SessionAuth.php', + 'Kirby\\Http\\Request\\Body' => $baseDir . '/kirby/src/Http/Request/Body.php', + 'Kirby\\Http\\Request\\Data' => $baseDir . '/kirby/src/Http/Request/Data.php', + 'Kirby\\Http\\Request\\Files' => $baseDir . '/kirby/src/Http/Request/Files.php', + 'Kirby\\Http\\Request\\Query' => $baseDir . '/kirby/src/Http/Request/Query.php', + 'Kirby\\Http\\Response' => $baseDir . '/kirby/src/Http/Response.php', + 'Kirby\\Http\\Route' => $baseDir . '/kirby/src/Http/Route.php', + 'Kirby\\Http\\Router' => $baseDir . '/kirby/src/Http/Router.php', + 'Kirby\\Http\\Uri' => $baseDir . '/kirby/src/Http/Uri.php', + 'Kirby\\Http\\Url' => $baseDir . '/kirby/src/Http/Url.php', + 'Kirby\\Http\\Visitor' => $baseDir . '/kirby/src/Http/Visitor.php', + 'Kirby\\Http\\VolatileHeaders' => $baseDir . '/kirby/src/Http/VolatileHeaders.php', + 'Kirby\\Image\\Camera' => $baseDir . '/kirby/src/Image/Camera.php', + 'Kirby\\Image\\Darkroom' => $baseDir . '/kirby/src/Image/Darkroom.php', + 'Kirby\\Image\\Darkroom\\GdLib' => $baseDir . '/kirby/src/Image/Darkroom/GdLib.php', + 'Kirby\\Image\\Darkroom\\ImageMagick' => $baseDir . '/kirby/src/Image/Darkroom/ImageMagick.php', + 'Kirby\\Image\\Darkroom\\Imagick' => $baseDir . '/kirby/src/Image/Darkroom/Imagick.php', + 'Kirby\\Image\\Dimensions' => $baseDir . '/kirby/src/Image/Dimensions.php', + 'Kirby\\Image\\Exif' => $baseDir . '/kirby/src/Image/Exif.php', + 'Kirby\\Image\\Focus' => $baseDir . '/kirby/src/Image/Focus.php', + 'Kirby\\Image\\Gravity' => $baseDir . '/kirby/src/Image/Gravity.php', + 'Kirby\\Image\\Image' => $baseDir . '/kirby/src/Image/Image.php', + 'Kirby\\Image\\Location' => $baseDir . '/kirby/src/Image/Location.php', + 'Kirby\\Image\\QrCode' => $baseDir . '/kirby/src/Image/QrCode.php', + 'Kirby\\Option\\Option' => $baseDir . '/kirby/src/Option/Option.php', + 'Kirby\\Option\\Options' => $baseDir . '/kirby/src/Option/Options.php', + 'Kirby\\Option\\OptionsApi' => $baseDir . '/kirby/src/Option/OptionsApi.php', + 'Kirby\\Option\\OptionsProvider' => $baseDir . '/kirby/src/Option/OptionsProvider.php', + 'Kirby\\Option\\OptionsQuery' => $baseDir . '/kirby/src/Option/OptionsQuery.php', + 'Kirby\\Panel\\Assets' => $baseDir . '/kirby/src/Panel/Assets.php', + 'Kirby\\Panel\\ChangesDialog' => $baseDir . '/kirby/src/Panel/ChangesDialog.php', + 'Kirby\\Panel\\Collector\\FilesCollector' => $baseDir . '/kirby/src/Panel/Collector/FilesCollector.php', + 'Kirby\\Panel\\Collector\\ModelsCollector' => $baseDir . '/kirby/src/Panel/Collector/ModelsCollector.php', + 'Kirby\\Panel\\Collector\\PagesCollector' => $baseDir . '/kirby/src/Panel/Collector/PagesCollector.php', + 'Kirby\\Panel\\Collector\\UsersCollector' => $baseDir . '/kirby/src/Panel/Collector/UsersCollector.php', + 'Kirby\\Panel\\Controller\\PageTree' => $baseDir . '/kirby/src/Panel/Controller/PageTree.php', + 'Kirby\\Panel\\Controller\\Search' => $baseDir . '/kirby/src/Panel/Controller/Search.php', + 'Kirby\\Panel\\Dialog' => $baseDir . '/kirby/src/Panel/Dialog.php', + 'Kirby\\Panel\\Document' => $baseDir . '/kirby/src/Panel/Document.php', + 'Kirby\\Panel\\Drawer' => $baseDir . '/kirby/src/Panel/Drawer.php', + 'Kirby\\Panel\\Dropdown' => $baseDir . '/kirby/src/Panel/Dropdown.php', + 'Kirby\\Panel\\Field' => $baseDir . '/kirby/src/Panel/Field.php', + 'Kirby\\Panel\\File' => $baseDir . '/kirby/src/Panel/File.php', + 'Kirby\\Panel\\Home' => $baseDir . '/kirby/src/Panel/Home.php', + 'Kirby\\Panel\\Json' => $baseDir . '/kirby/src/Panel/Json.php', + 'Kirby\\Panel\\Lab\\Category' => $baseDir . '/kirby/src/Panel/Lab/Category.php', + 'Kirby\\Panel\\Lab\\Doc' => $baseDir . '/kirby/src/Panel/Lab/Doc.php', + 'Kirby\\Panel\\Lab\\Doc\\Argument' => $baseDir . '/kirby/src/Panel/Lab/Doc/Argument.php', + 'Kirby\\Panel\\Lab\\Doc\\Event' => $baseDir . '/kirby/src/Panel/Lab/Doc/Event.php', + 'Kirby\\Panel\\Lab\\Doc\\Method' => $baseDir . '/kirby/src/Panel/Lab/Doc/Method.php', + 'Kirby\\Panel\\Lab\\Doc\\Prop' => $baseDir . '/kirby/src/Panel/Lab/Doc/Prop.php', + 'Kirby\\Panel\\Lab\\Doc\\Slot' => $baseDir . '/kirby/src/Panel/Lab/Doc/Slot.php', + 'Kirby\\Panel\\Lab\\Docs' => $baseDir . '/kirby/src/Panel/Lab/Docs.php', + 'Kirby\\Panel\\Lab\\Example' => $baseDir . '/kirby/src/Panel/Lab/Example.php', + 'Kirby\\Panel\\Lab\\Responses' => $baseDir . '/kirby/src/Panel/Lab/Responses.php', + 'Kirby\\Panel\\Lab\\Snippet' => $baseDir . '/kirby/src/Panel/Lab/Snippet.php', + 'Kirby\\Panel\\Lab\\Template' => $baseDir . '/kirby/src/Panel/Lab/Template.php', + 'Kirby\\Panel\\Menu' => $baseDir . '/kirby/src/Panel/Menu.php', + 'Kirby\\Panel\\Model' => $baseDir . '/kirby/src/Panel/Model.php', + 'Kirby\\Panel\\Page' => $baseDir . '/kirby/src/Panel/Page.php', + 'Kirby\\Panel\\PageCreateDialog' => $baseDir . '/kirby/src/Panel/PageCreateDialog.php', + 'Kirby\\Panel\\Panel' => $baseDir . '/kirby/src/Panel/Panel.php', + 'Kirby\\Panel\\Plugins' => $baseDir . '/kirby/src/Panel/Plugins.php', + 'Kirby\\Panel\\Redirect' => $baseDir . '/kirby/src/Panel/Redirect.php', + 'Kirby\\Panel\\Request' => $baseDir . '/kirby/src/Panel/Request.php', + 'Kirby\\Panel\\Search' => $baseDir . '/kirby/src/Panel/Search.php', + 'Kirby\\Panel\\Site' => $baseDir . '/kirby/src/Panel/Site.php', + 'Kirby\\Panel\\Ui\\Button' => $baseDir . '/kirby/src/Panel/Ui/Button.php', + 'Kirby\\Panel\\Ui\\Buttons\\LanguageCreateButton' => $baseDir . '/kirby/src/Panel/Ui/Buttons/LanguageCreateButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\LanguageDeleteButton' => $baseDir . '/kirby/src/Panel/Ui/Buttons/LanguageDeleteButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\LanguageSettingsButton' => $baseDir . '/kirby/src/Panel/Ui/Buttons/LanguageSettingsButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\LanguagesDropdown' => $baseDir . '/kirby/src/Panel/Ui/Buttons/LanguagesDropdown.php', + 'Kirby\\Panel\\Ui\\Buttons\\OpenButton' => $baseDir . '/kirby/src/Panel/Ui/Buttons/OpenButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\PageStatusButton' => $baseDir . '/kirby/src/Panel/Ui/Buttons/PageStatusButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\PreviewButton' => $baseDir . '/kirby/src/Panel/Ui/Buttons/PreviewButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\SettingsButton' => $baseDir . '/kirby/src/Panel/Ui/Buttons/SettingsButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\VersionsButton' => $baseDir . '/kirby/src/Panel/Ui/Buttons/VersionsButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\ViewButton' => $baseDir . '/kirby/src/Panel/Ui/Buttons/ViewButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\ViewButtons' => $baseDir . '/kirby/src/Panel/Ui/Buttons/ViewButtons.php', + 'Kirby\\Panel\\Ui\\Component' => $baseDir . '/kirby/src/Panel/Ui/Component.php', + 'Kirby\\Panel\\Ui\\FilePreview' => $baseDir . '/kirby/src/Panel/Ui/FilePreview.php', + 'Kirby\\Panel\\Ui\\FilePreviews\\AudioFilePreview' => $baseDir . '/kirby/src/Panel/Ui/FilePreviews/AudioFilePreview.php', + 'Kirby\\Panel\\Ui\\FilePreviews\\DefaultFilePreview' => $baseDir . '/kirby/src/Panel/Ui/FilePreviews/DefaultFilePreview.php', + 'Kirby\\Panel\\Ui\\FilePreviews\\ImageFilePreview' => $baseDir . '/kirby/src/Panel/Ui/FilePreviews/ImageFilePreview.php', + 'Kirby\\Panel\\Ui\\FilePreviews\\PdfFilePreview' => $baseDir . '/kirby/src/Panel/Ui/FilePreviews/PdfFilePreview.php', + 'Kirby\\Panel\\Ui\\FilePreviews\\VideoFilePreview' => $baseDir . '/kirby/src/Panel/Ui/FilePreviews/VideoFilePreview.php', + 'Kirby\\Panel\\Ui\\Item\\FileItem' => $baseDir . '/kirby/src/Panel/Ui/Item/FileItem.php', + 'Kirby\\Panel\\Ui\\Item\\ModelItem' => $baseDir . '/kirby/src/Panel/Ui/Item/ModelItem.php', + 'Kirby\\Panel\\Ui\\Item\\PageItem' => $baseDir . '/kirby/src/Panel/Ui/Item/PageItem.php', + 'Kirby\\Panel\\Ui\\Item\\UserItem' => $baseDir . '/kirby/src/Panel/Ui/Item/UserItem.php', + 'Kirby\\Panel\\Ui\\Stat' => $baseDir . '/kirby/src/Panel/Ui/Stat.php', + 'Kirby\\Panel\\Ui\\Stats' => $baseDir . '/kirby/src/Panel/Ui/Stats.php', + 'Kirby\\Panel\\Ui\\Upload' => $baseDir . '/kirby/src/Panel/Ui/Upload.php', + 'Kirby\\Panel\\User' => $baseDir . '/kirby/src/Panel/User.php', + 'Kirby\\Panel\\UserTotpDisableDialog' => $baseDir . '/kirby/src/Panel/UserTotpDisableDialog.php', + 'Kirby\\Panel\\UserTotpEnableDialog' => $baseDir . '/kirby/src/Panel/UserTotpEnableDialog.php', + 'Kirby\\Panel\\View' => $baseDir . '/kirby/src/Panel/View.php', + 'Kirby\\Parsley\\Element' => $baseDir . '/kirby/src/Parsley/Element.php', + 'Kirby\\Parsley\\Inline' => $baseDir . '/kirby/src/Parsley/Inline.php', + 'Kirby\\Parsley\\Parsley' => $baseDir . '/kirby/src/Parsley/Parsley.php', + 'Kirby\\Parsley\\Schema' => $baseDir . '/kirby/src/Parsley/Schema.php', + 'Kirby\\Parsley\\Schema\\Blocks' => $baseDir . '/kirby/src/Parsley/Schema/Blocks.php', + 'Kirby\\Parsley\\Schema\\Plain' => $baseDir . '/kirby/src/Parsley/Schema/Plain.php', + 'Kirby\\Plugin\\Asset' => $baseDir . '/kirby/src/Plugin/Asset.php', + 'Kirby\\Plugin\\Assets' => $baseDir . '/kirby/src/Plugin/Assets.php', + 'Kirby\\Plugin\\License' => $baseDir . '/kirby/src/Plugin/License.php', + 'Kirby\\Plugin\\LicenseStatus' => $baseDir . '/kirby/src/Plugin/LicenseStatus.php', + 'Kirby\\Plugin\\Plugin' => $baseDir . '/kirby/src/Plugin/Plugin.php', + 'Kirby\\Query\\AST\\ArgumentListNode' => $baseDir . '/kirby/src/Query/AST/ArgumentListNode.php', + 'Kirby\\Query\\AST\\ArithmeticNode' => $baseDir . '/kirby/src/Query/AST/ArithmeticNode.php', + 'Kirby\\Query\\AST\\ArrayListNode' => $baseDir . '/kirby/src/Query/AST/ArrayListNode.php', + 'Kirby\\Query\\AST\\ClosureNode' => $baseDir . '/kirby/src/Query/AST/ClosureNode.php', + 'Kirby\\Query\\AST\\CoalesceNode' => $baseDir . '/kirby/src/Query/AST/CoalesceNode.php', + 'Kirby\\Query\\AST\\ComparisonNode' => $baseDir . '/kirby/src/Query/AST/ComparisonNode.php', + 'Kirby\\Query\\AST\\GlobalFunctionNode' => $baseDir . '/kirby/src/Query/AST/GlobalFunctionNode.php', + 'Kirby\\Query\\AST\\LiteralNode' => $baseDir . '/kirby/src/Query/AST/LiteralNode.php', + 'Kirby\\Query\\AST\\LogicalNode' => $baseDir . '/kirby/src/Query/AST/LogicalNode.php', + 'Kirby\\Query\\AST\\MemberAccessNode' => $baseDir . '/kirby/src/Query/AST/MemberAccessNode.php', + 'Kirby\\Query\\AST\\Node' => $baseDir . '/kirby/src/Query/AST/Node.php', + 'Kirby\\Query\\AST\\TernaryNode' => $baseDir . '/kirby/src/Query/AST/TernaryNode.php', + 'Kirby\\Query\\AST\\VariableNode' => $baseDir . '/kirby/src/Query/AST/VariableNode.php', + 'Kirby\\Query\\Argument' => $baseDir . '/kirby/src/Query/Argument.php', + 'Kirby\\Query\\Arguments' => $baseDir . '/kirby/src/Query/Arguments.php', + 'Kirby\\Query\\Expression' => $baseDir . '/kirby/src/Query/Expression.php', + 'Kirby\\Query\\Parser\\Parser' => $baseDir . '/kirby/src/Query/Parser/Parser.php', + 'Kirby\\Query\\Parser\\Token' => $baseDir . '/kirby/src/Query/Parser/Token.php', + 'Kirby\\Query\\Parser\\TokenType' => $baseDir . '/kirby/src/Query/Parser/TokenType.php', + 'Kirby\\Query\\Parser\\Tokenizer' => $baseDir . '/kirby/src/Query/Parser/Tokenizer.php', + 'Kirby\\Query\\Query' => $baseDir . '/kirby/src/Query/Query.php', + 'Kirby\\Query\\Runners\\DefaultRunner' => $baseDir . '/kirby/src/Query/Runners/DefaultRunner.php', + 'Kirby\\Query\\Runners\\Runner' => $baseDir . '/kirby/src/Query/Runners/Runner.php', + 'Kirby\\Query\\Runners\\Scope' => $baseDir . '/kirby/src/Query/Runners/Scope.php', + 'Kirby\\Query\\Segment' => $baseDir . '/kirby/src/Query/Segment.php', + 'Kirby\\Query\\Segments' => $baseDir . '/kirby/src/Query/Segments.php', + 'Kirby\\Query\\Visitors\\DefaultVisitor' => $baseDir . '/kirby/src/Query/Visitors/DefaultVisitor.php', + 'Kirby\\Query\\Visitors\\Visitor' => $baseDir . '/kirby/src/Query/Visitors/Visitor.php', + 'Kirby\\Reflection\\Constructor' => $baseDir . '/kirby/src/Reflection/Constructor.php', + 'Kirby\\Sane\\DomHandler' => $baseDir . '/kirby/src/Sane/DomHandler.php', + 'Kirby\\Sane\\Handler' => $baseDir . '/kirby/src/Sane/Handler.php', + 'Kirby\\Sane\\Html' => $baseDir . '/kirby/src/Sane/Html.php', + 'Kirby\\Sane\\Sane' => $baseDir . '/kirby/src/Sane/Sane.php', + 'Kirby\\Sane\\Svg' => $baseDir . '/kirby/src/Sane/Svg.php', + 'Kirby\\Sane\\Svgz' => $baseDir . '/kirby/src/Sane/Svgz.php', + 'Kirby\\Sane\\Xml' => $baseDir . '/kirby/src/Sane/Xml.php', + 'Kirby\\Session\\AutoSession' => $baseDir . '/kirby/src/Session/AutoSession.php', + 'Kirby\\Session\\FileSessionStore' => $baseDir . '/kirby/src/Session/FileSessionStore.php', + 'Kirby\\Session\\Session' => $baseDir . '/kirby/src/Session/Session.php', + 'Kirby\\Session\\SessionData' => $baseDir . '/kirby/src/Session/SessionData.php', + 'Kirby\\Session\\SessionStore' => $baseDir . '/kirby/src/Session/SessionStore.php', + 'Kirby\\Session\\Sessions' => $baseDir . '/kirby/src/Session/Sessions.php', + 'Kirby\\Template\\Slot' => $baseDir . '/kirby/src/Template/Slot.php', + 'Kirby\\Template\\Slots' => $baseDir . '/kirby/src/Template/Slots.php', + 'Kirby\\Template\\Snippet' => $baseDir . '/kirby/src/Template/Snippet.php', + 'Kirby\\Template\\Template' => $baseDir . '/kirby/src/Template/Template.php', + 'Kirby\\Text\\KirbyTag' => $baseDir . '/kirby/src/Text/KirbyTag.php', + 'Kirby\\Text\\KirbyTags' => $baseDir . '/kirby/src/Text/KirbyTags.php', + 'Kirby\\Text\\Markdown' => $baseDir . '/kirby/src/Text/Markdown.php', + 'Kirby\\Text\\SmartyPants' => $baseDir . '/kirby/src/Text/SmartyPants.php', + 'Kirby\\Toolkit\\A' => $baseDir . '/kirby/src/Toolkit/A.php', + 'Kirby\\Toolkit\\Collection' => $baseDir . '/kirby/src/Toolkit/Collection.php', + 'Kirby\\Toolkit\\Component' => $baseDir . '/kirby/src/Toolkit/Component.php', + 'Kirby\\Toolkit\\Config' => $baseDir . '/kirby/src/Toolkit/Config.php', + 'Kirby\\Toolkit\\Controller' => $baseDir . '/kirby/src/Toolkit/Controller.php', + 'Kirby\\Toolkit\\Date' => $baseDir . '/kirby/src/Toolkit/Date.php', + 'Kirby\\Toolkit\\Dom' => $baseDir . '/kirby/src/Toolkit/Dom.php', + 'Kirby\\Toolkit\\Escape' => $baseDir . '/kirby/src/Toolkit/Escape.php', + 'Kirby\\Toolkit\\Facade' => $baseDir . '/kirby/src/Toolkit/Facade.php', + 'Kirby\\Toolkit\\Html' => $baseDir . '/kirby/src/Toolkit/Html.php', + 'Kirby\\Toolkit\\I18n' => $baseDir . '/kirby/src/Toolkit/I18n.php', + 'Kirby\\Toolkit\\Iterator' => $baseDir . '/kirby/src/Toolkit/Iterator.php', + 'Kirby\\Toolkit\\LazyValue' => $baseDir . '/kirby/src/Toolkit/LazyValue.php', + 'Kirby\\Toolkit\\Locale' => $baseDir . '/kirby/src/Toolkit/Locale.php', + 'Kirby\\Toolkit\\Obj' => $baseDir . '/kirby/src/Toolkit/Obj.php', + 'Kirby\\Toolkit\\Pagination' => $baseDir . '/kirby/src/Toolkit/Pagination.php', + 'Kirby\\Toolkit\\Silo' => $baseDir . '/kirby/src/Toolkit/Silo.php', + 'Kirby\\Toolkit\\Str' => $baseDir . '/kirby/src/Toolkit/Str.php', + 'Kirby\\Toolkit\\SymmetricCrypto' => $baseDir . '/kirby/src/Toolkit/SymmetricCrypto.php', + 'Kirby\\Toolkit\\Totp' => $baseDir . '/kirby/src/Toolkit/Totp.php', + 'Kirby\\Toolkit\\Tpl' => $baseDir . '/kirby/src/Toolkit/Tpl.php', + 'Kirby\\Toolkit\\V' => $baseDir . '/kirby/src/Toolkit/V.php', + 'Kirby\\Toolkit\\View' => $baseDir . '/kirby/src/Toolkit/View.php', + 'Kirby\\Toolkit\\Xml' => $baseDir . '/kirby/src/Toolkit/Xml.php', + 'Kirby\\Uuid\\BlockUuid' => $baseDir . '/kirby/src/Uuid/BlockUuid.php', + 'Kirby\\Uuid\\FieldUuid' => $baseDir . '/kirby/src/Uuid/FieldUuid.php', + 'Kirby\\Uuid\\FileUuid' => $baseDir . '/kirby/src/Uuid/FileUuid.php', + 'Kirby\\Uuid\\HasUuids' => $baseDir . '/kirby/src/Uuid/HasUuids.php', + 'Kirby\\Uuid\\Identifiable' => $baseDir . '/kirby/src/Uuid/Identifiable.php', + 'Kirby\\Uuid\\ModelUuid' => $baseDir . '/kirby/src/Uuid/ModelUuid.php', + 'Kirby\\Uuid\\PageUuid' => $baseDir . '/kirby/src/Uuid/PageUuid.php', + 'Kirby\\Uuid\\SiteUuid' => $baseDir . '/kirby/src/Uuid/SiteUuid.php', + 'Kirby\\Uuid\\StructureUuid' => $baseDir . '/kirby/src/Uuid/StructureUuid.php', + 'Kirby\\Uuid\\Uri' => $baseDir . '/kirby/src/Uuid/Uri.php', + 'Kirby\\Uuid\\UserUuid' => $baseDir . '/kirby/src/Uuid/UserUuid.php', + 'Kirby\\Uuid\\Uuid' => $baseDir . '/kirby/src/Uuid/Uuid.php', + 'Kirby\\Uuid\\Uuids' => $baseDir . '/kirby/src/Uuid/Uuids.php', + 'Laminas\\Escaper\\Escaper' => $vendorDir . '/laminas/laminas-escaper/src/Escaper.php', + 'Laminas\\Escaper\\EscaperInterface' => $vendorDir . '/laminas/laminas-escaper/src/EscaperInterface.php', + 'Laminas\\Escaper\\Exception\\ExceptionInterface' => $vendorDir . '/laminas/laminas-escaper/src/Exception/ExceptionInterface.php', + 'Laminas\\Escaper\\Exception\\InvalidArgumentException' => $vendorDir . '/laminas/laminas-escaper/src/Exception/InvalidArgumentException.php', + 'Laminas\\Escaper\\Exception\\RuntimeException' => $vendorDir . '/laminas/laminas-escaper/src/Exception/RuntimeException.php', + 'League\\ColorExtractor\\Color' => $vendorDir . '/league/color-extractor/src/Color.php', + 'League\\ColorExtractor\\ColorExtractor' => $vendorDir . '/league/color-extractor/src/ColorExtractor.php', + 'League\\ColorExtractor\\Palette' => $vendorDir . '/league/color-extractor/src/Palette.php', + 'Michelf\\SmartyPants' => $vendorDir . '/michelf/php-smartypants/Michelf/SmartyPants.php', + 'Michelf\\SmartyPantsTypographer' => $vendorDir . '/michelf/php-smartypants/Michelf/SmartyPantsTypographer.php', + 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', + 'PHPMailer\\PHPMailer\\DSNConfigurator' => $vendorDir . '/phpmailer/phpmailer/src/DSNConfigurator.php', + 'PHPMailer\\PHPMailer\\Exception' => $vendorDir . '/phpmailer/phpmailer/src/Exception.php', + 'PHPMailer\\PHPMailer\\OAuth' => $vendorDir . '/phpmailer/phpmailer/src/OAuth.php', + 'PHPMailer\\PHPMailer\\OAuthTokenProvider' => $vendorDir . '/phpmailer/phpmailer/src/OAuthTokenProvider.php', + 'PHPMailer\\PHPMailer\\PHPMailer' => $vendorDir . '/phpmailer/phpmailer/src/PHPMailer.php', + 'PHPMailer\\PHPMailer\\POP3' => $vendorDir . '/phpmailer/phpmailer/src/POP3.php', + 'PHPMailer\\PHPMailer\\SMTP' => $vendorDir . '/phpmailer/phpmailer/src/SMTP.php', + 'Parsedown' => $baseDir . '/kirby/dependencies/parsedown/Parsedown.php', + 'ParsedownExtra' => $baseDir . '/kirby/dependencies/parsedown-extra/ParsedownExtra.php', + 'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', + 'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', + 'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', + 'Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', + 'Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', + 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', + 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', + 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', + 'Spyc' => $baseDir . '/kirby/dependencies/spyc/Spyc.php', + 'Symfony\\Component\\Yaml\\Command\\LintCommand' => $vendorDir . '/symfony/yaml/Command/LintCommand.php', + 'Symfony\\Component\\Yaml\\Dumper' => $vendorDir . '/symfony/yaml/Dumper.php', + 'Symfony\\Component\\Yaml\\Escaper' => $vendorDir . '/symfony/yaml/Escaper.php', + 'Symfony\\Component\\Yaml\\Exception\\DumpException' => $vendorDir . '/symfony/yaml/Exception/DumpException.php', + 'Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/yaml/Exception/ExceptionInterface.php', + 'Symfony\\Component\\Yaml\\Exception\\ParseException' => $vendorDir . '/symfony/yaml/Exception/ParseException.php', + 'Symfony\\Component\\Yaml\\Exception\\RuntimeException' => $vendorDir . '/symfony/yaml/Exception/RuntimeException.php', + 'Symfony\\Component\\Yaml\\Inline' => $vendorDir . '/symfony/yaml/Inline.php', + 'Symfony\\Component\\Yaml\\Parser' => $vendorDir . '/symfony/yaml/Parser.php', + 'Symfony\\Component\\Yaml\\Tag\\TaggedValue' => $vendorDir . '/symfony/yaml/Tag/TaggedValue.php', + 'Symfony\\Component\\Yaml\\Unescaper' => $vendorDir . '/symfony/yaml/Unescaper.php', + 'Symfony\\Component\\Yaml\\Yaml' => $vendorDir . '/symfony/yaml/Yaml.php', + 'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php', + 'Symfony\\Polyfill\\Intl\\Idn\\Idn' => $vendorDir . '/symfony/polyfill-intl-idn/Idn.php', + 'Symfony\\Polyfill\\Intl\\Idn\\Info' => $vendorDir . '/symfony/polyfill-intl-idn/Info.php', + 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => $vendorDir . '/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php', + 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => $vendorDir . '/symfony/polyfill-intl-idn/Resources/unidata/Regex.php', + 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Normalizer.php', + 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php', + 'Whoops\\Exception\\ErrorException' => $vendorDir . '/filp/whoops/src/Whoops/Exception/ErrorException.php', + 'Whoops\\Exception\\Formatter' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Formatter.php', + 'Whoops\\Exception\\Frame' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Frame.php', + 'Whoops\\Exception\\FrameCollection' => $vendorDir . '/filp/whoops/src/Whoops/Exception/FrameCollection.php', + 'Whoops\\Exception\\Inspector' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Inspector.php', + 'Whoops\\Handler\\CallbackHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/CallbackHandler.php', + 'Whoops\\Handler\\Handler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/Handler.php', + 'Whoops\\Handler\\HandlerInterface' => $vendorDir . '/filp/whoops/src/Whoops/Handler/HandlerInterface.php', + 'Whoops\\Handler\\JsonResponseHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php', + 'Whoops\\Handler\\PlainTextHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/PlainTextHandler.php', + 'Whoops\\Handler\\PrettyPageHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php', + 'Whoops\\Handler\\XmlResponseHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php', + 'Whoops\\Inspector\\InspectorFactory' => $vendorDir . '/filp/whoops/src/Whoops/Inspector/InspectorFactory.php', + 'Whoops\\Inspector\\InspectorFactoryInterface' => $vendorDir . '/filp/whoops/src/Whoops/Inspector/InspectorFactoryInterface.php', + 'Whoops\\Inspector\\InspectorInterface' => $vendorDir . '/filp/whoops/src/Whoops/Inspector/InspectorInterface.php', + 'Whoops\\Run' => $vendorDir . '/filp/whoops/src/Whoops/Run.php', + 'Whoops\\RunInterface' => $vendorDir . '/filp/whoops/src/Whoops/RunInterface.php', + 'Whoops\\Util\\HtmlDumperOutput' => $vendorDir . '/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php', + 'Whoops\\Util\\Misc' => $vendorDir . '/filp/whoops/src/Whoops/Util/Misc.php', + 'Whoops\\Util\\SystemFacade' => $vendorDir . '/filp/whoops/src/Whoops/Util/SystemFacade.php', + 'Whoops\\Util\\TemplateHelper' => $vendorDir . '/filp/whoops/src/Whoops/Util/TemplateHelper.php', + 'claviska\\SimpleImage' => $vendorDir . '/claviska/simpleimage/src/claviska/SimpleImage.php', +); diff --git a/kirby/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php similarity index 79% rename from kirby/vendor/composer/autoload_files.php rename to vendor/composer/autoload_files.php index c7ea288..1b9a0ed 100644 --- a/kirby/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -11,6 +11,6 @@ return array( 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', 'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', - 'f864ae44e8154e5ff6f4eec32f46d37f' => $baseDir . '/config/setup.php', - '87988fc7b1c1f093da22a1a3de972f3a' => $baseDir . '/config/helpers.php', + 'f864ae44e8154e5ff6f4eec32f46d37f' => $baseDir . '/kirby/config/setup.php', + '87988fc7b1c1f093da22a1a3de972f3a' => $baseDir . '/kirby/config/helpers.php', ); diff --git a/kirby/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php similarity index 100% rename from kirby/vendor/composer/autoload_namespaces.php rename to vendor/composer/autoload_namespaces.php diff --git a/kirby/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php similarity index 91% rename from kirby/vendor/composer/autoload_psr4.php rename to vendor/composer/autoload_psr4.php index f7cb6ed..c9abc16 100644 --- a/kirby/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -16,7 +16,7 @@ return array( 'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'), 'League\\ColorExtractor\\' => array($vendorDir . '/league/color-extractor/src'), 'Laminas\\Escaper\\' => array($vendorDir . '/laminas/laminas-escaper/src'), - 'Kirby\\' => array($baseDir . '/src', $vendorDir . '/getkirby/composer-installer/src'), + 'Kirby\\' => array($baseDir . '/kirby/src', $vendorDir . '/getkirby/composer-installer/src'), 'Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), 'Base32\\' => array($vendorDir . '/christian-riesen/base32/src'), ); diff --git a/kirby/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php similarity index 65% rename from kirby/vendor/composer/autoload_real.php rename to vendor/composer/autoload_real.php index 91f75ce..3b75ad1 100644 --- a/kirby/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit0bf5c8a9cfa251a218fc581ac888fe35 +class ComposerAutoloaderInit0b7fb803e22a45eb87e24172337208aa { private static $loader; @@ -22,16 +22,18 @@ class ComposerAutoloaderInit0bf5c8a9cfa251a218fc581ac888fe35 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit0bf5c8a9cfa251a218fc581ac888fe35', 'loadClassLoader'), true, true); + require __DIR__ . '/platform_check.php'; + + spl_autoload_register(array('ComposerAutoloaderInit0b7fb803e22a45eb87e24172337208aa', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit0bf5c8a9cfa251a218fc581ac888fe35', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit0b7fb803e22a45eb87e24172337208aa', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit0bf5c8a9cfa251a218fc581ac888fe35::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit0b7fb803e22a45eb87e24172337208aa::getInitializer($loader)); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit0bf5c8a9cfa251a218fc581ac888fe35::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit0b7fb803e22a45eb87e24172337208aa::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php new file mode 100644 index 0000000..99e669e --- /dev/null +++ b/vendor/composer/autoload_static.php @@ -0,0 +1,639 @@ + __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', + '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', + 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', + 'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php', + '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', + 'f864ae44e8154e5ff6f4eec32f46d37f' => __DIR__ . '/../..' . '/kirby/config/setup.php', + '87988fc7b1c1f093da22a1a3de972f3a' => __DIR__ . '/../..' . '/kirby/config/helpers.php', + ); + + public static $prefixLengthsPsr4 = array ( + 'W' => + array ( + 'Whoops\\' => 7, + ), + 'S' => + array ( + 'Symfony\\Polyfill\\Mbstring\\' => 26, + 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33, + 'Symfony\\Polyfill\\Intl\\Idn\\' => 26, + 'Symfony\\Polyfill\\Ctype\\' => 23, + 'Symfony\\Component\\Yaml\\' => 23, + ), + 'P' => + array ( + 'Psr\\Log\\' => 8, + 'PHPMailer\\PHPMailer\\' => 20, + ), + 'L' => + array ( + 'League\\ColorExtractor\\' => 22, + 'Laminas\\Escaper\\' => 16, + ), + 'K' => + array ( + 'Kirby\\' => 6, + ), + 'C' => + array ( + 'Composer\\Semver\\' => 16, + ), + 'B' => + array ( + 'Base32\\' => 7, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'Whoops\\' => + array ( + 0 => __DIR__ . '/..' . '/filp/whoops/src/Whoops', + ), + 'Symfony\\Polyfill\\Mbstring\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', + ), + 'Symfony\\Polyfill\\Intl\\Normalizer\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer', + ), + 'Symfony\\Polyfill\\Intl\\Idn\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-idn', + ), + 'Symfony\\Polyfill\\Ctype\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype', + ), + 'Symfony\\Component\\Yaml\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/yaml', + ), + 'Psr\\Log\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/log/src', + ), + 'PHPMailer\\PHPMailer\\' => + array ( + 0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src', + ), + 'League\\ColorExtractor\\' => + array ( + 0 => __DIR__ . '/..' . '/league/color-extractor/src', + ), + 'Laminas\\Escaper\\' => + array ( + 0 => __DIR__ . '/..' . '/laminas/laminas-escaper/src', + ), + 'Kirby\\' => + array ( + 0 => __DIR__ . '/../..' . '/kirby/src', + 1 => __DIR__ . '/..' . '/getkirby/composer-installer/src', + ), + 'Composer\\Semver\\' => + array ( + 0 => __DIR__ . '/..' . '/composer/semver/src', + ), + 'Base32\\' => + array ( + 0 => __DIR__ . '/..' . '/christian-riesen/base32/src', + ), + ); + + public static $prefixesPsr0 = array ( + 'c' => + array ( + 'claviska' => + array ( + 0 => __DIR__ . '/..' . '/claviska/simpleimage/src', + ), + ), + 'M' => + array ( + 'Michelf' => + array ( + 0 => __DIR__ . '/..' . '/michelf/php-smartypants', + ), + ), + ); + + public static $classMap = array ( + 'Base32\\Base32' => __DIR__ . '/..' . '/christian-riesen/base32/src/Base32.php', + 'Base32\\Base32Hex' => __DIR__ . '/..' . '/christian-riesen/base32/src/Base32Hex.php', + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', + 'Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', + 'Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', + 'Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', + 'Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', + 'Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', + 'Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', + 'Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', + 'Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', + 'Kirby\\Api\\Api' => __DIR__ . '/../..' . '/kirby/src/Api/Api.php', + 'Kirby\\Api\\Collection' => __DIR__ . '/../..' . '/kirby/src/Api/Collection.php', + 'Kirby\\Api\\Controller\\Changes' => __DIR__ . '/../..' . '/kirby/src/Api/Controller/Changes.php', + 'Kirby\\Api\\Model' => __DIR__ . '/../..' . '/kirby/src/Api/Model.php', + 'Kirby\\Api\\Upload' => __DIR__ . '/../..' . '/kirby/src/Api/Upload.php', + 'Kirby\\Cache\\ApcuCache' => __DIR__ . '/../..' . '/kirby/src/Cache/ApcuCache.php', + 'Kirby\\Cache\\Cache' => __DIR__ . '/../..' . '/kirby/src/Cache/Cache.php', + 'Kirby\\Cache\\FileCache' => __DIR__ . '/../..' . '/kirby/src/Cache/FileCache.php', + 'Kirby\\Cache\\MemCached' => __DIR__ . '/../..' . '/kirby/src/Cache/MemCached.php', + 'Kirby\\Cache\\MemoryCache' => __DIR__ . '/../..' . '/kirby/src/Cache/MemoryCache.php', + 'Kirby\\Cache\\NullCache' => __DIR__ . '/../..' . '/kirby/src/Cache/NullCache.php', + 'Kirby\\Cache\\RedisCache' => __DIR__ . '/../..' . '/kirby/src/Cache/RedisCache.php', + 'Kirby\\Cache\\Value' => __DIR__ . '/../..' . '/kirby/src/Cache/Value.php', + 'Kirby\\Cms\\Api' => __DIR__ . '/../..' . '/kirby/src/Cms/Api.php', + 'Kirby\\Cms\\App' => __DIR__ . '/../..' . '/kirby/src/Cms/App.php', + 'Kirby\\Cms\\AppCaches' => __DIR__ . '/../..' . '/kirby/src/Cms/AppCaches.php', + 'Kirby\\Cms\\AppErrors' => __DIR__ . '/../..' . '/kirby/src/Cms/AppErrors.php', + 'Kirby\\Cms\\AppPlugins' => __DIR__ . '/../..' . '/kirby/src/Cms/AppPlugins.php', + 'Kirby\\Cms\\AppTranslations' => __DIR__ . '/../..' . '/kirby/src/Cms/AppTranslations.php', + 'Kirby\\Cms\\AppUsers' => __DIR__ . '/../..' . '/kirby/src/Cms/AppUsers.php', + 'Kirby\\Cms\\Auth' => __DIR__ . '/../..' . '/kirby/src/Cms/Auth.php', + 'Kirby\\Cms\\Auth\\Challenge' => __DIR__ . '/../..' . '/kirby/src/Cms/Auth/Challenge.php', + 'Kirby\\Cms\\Auth\\EmailChallenge' => __DIR__ . '/../..' . '/kirby/src/Cms/Auth/EmailChallenge.php', + 'Kirby\\Cms\\Auth\\Status' => __DIR__ . '/../..' . '/kirby/src/Cms/Auth/Status.php', + 'Kirby\\Cms\\Auth\\TotpChallenge' => __DIR__ . '/../..' . '/kirby/src/Cms/Auth/TotpChallenge.php', + 'Kirby\\Cms\\Block' => __DIR__ . '/../..' . '/kirby/src/Cms/Block.php', + 'Kirby\\Cms\\BlockConverter' => __DIR__ . '/../..' . '/kirby/src/Cms/BlockConverter.php', + 'Kirby\\Cms\\Blocks' => __DIR__ . '/../..' . '/kirby/src/Cms/Blocks.php', + 'Kirby\\Cms\\Blueprint' => __DIR__ . '/../..' . '/kirby/src/Cms/Blueprint.php', + 'Kirby\\Cms\\Collection' => __DIR__ . '/../..' . '/kirby/src/Cms/Collection.php', + 'Kirby\\Cms\\Collections' => __DIR__ . '/../..' . '/kirby/src/Cms/Collections.php', + 'Kirby\\Cms\\Core' => __DIR__ . '/../..' . '/kirby/src/Cms/Core.php', + 'Kirby\\Cms\\Cors' => __DIR__ . '/../..' . '/kirby/src/Cms/Cors.php', + 'Kirby\\Cms\\Email' => __DIR__ . '/../..' . '/kirby/src/Cms/Email.php', + 'Kirby\\Cms\\Event' => __DIR__ . '/../..' . '/kirby/src/Cms/Event.php', + 'Kirby\\Cms\\Events' => __DIR__ . '/../..' . '/kirby/src/Cms/Events.php', + 'Kirby\\Cms\\Fieldset' => __DIR__ . '/../..' . '/kirby/src/Cms/Fieldset.php', + 'Kirby\\Cms\\Fieldsets' => __DIR__ . '/../..' . '/kirby/src/Cms/Fieldsets.php', + 'Kirby\\Cms\\File' => __DIR__ . '/../..' . '/kirby/src/Cms/File.php', + 'Kirby\\Cms\\FileActions' => __DIR__ . '/../..' . '/kirby/src/Cms/FileActions.php', + 'Kirby\\Cms\\FileBlueprint' => __DIR__ . '/../..' . '/kirby/src/Cms/FileBlueprint.php', + 'Kirby\\Cms\\FileModifications' => __DIR__ . '/../..' . '/kirby/src/Cms/FileModifications.php', + 'Kirby\\Cms\\FilePermissions' => __DIR__ . '/../..' . '/kirby/src/Cms/FilePermissions.php', + 'Kirby\\Cms\\FilePicker' => __DIR__ . '/../..' . '/kirby/src/Cms/FilePicker.php', + 'Kirby\\Cms\\FileRules' => __DIR__ . '/../..' . '/kirby/src/Cms/FileRules.php', + 'Kirby\\Cms\\FileVersion' => __DIR__ . '/../..' . '/kirby/src/Cms/FileVersion.php', + 'Kirby\\Cms\\Files' => __DIR__ . '/../..' . '/kirby/src/Cms/Files.php', + 'Kirby\\Cms\\Find' => __DIR__ . '/../..' . '/kirby/src/Cms/Find.php', + 'Kirby\\Cms\\HasChildren' => __DIR__ . '/../..' . '/kirby/src/Cms/HasChildren.php', + 'Kirby\\Cms\\HasFiles' => __DIR__ . '/../..' . '/kirby/src/Cms/HasFiles.php', + 'Kirby\\Cms\\HasMethods' => __DIR__ . '/../..' . '/kirby/src/Cms/HasMethods.php', + 'Kirby\\Cms\\HasModels' => __DIR__ . '/../..' . '/kirby/src/Cms/HasModels.php', + 'Kirby\\Cms\\HasSiblings' => __DIR__ . '/../..' . '/kirby/src/Cms/HasSiblings.php', + 'Kirby\\Cms\\Helpers' => __DIR__ . '/../..' . '/kirby/src/Cms/Helpers.php', + 'Kirby\\Cms\\Html' => __DIR__ . '/../..' . '/kirby/src/Cms/Html.php', + 'Kirby\\Cms\\Ingredients' => __DIR__ . '/../..' . '/kirby/src/Cms/Ingredients.php', + 'Kirby\\Cms\\Item' => __DIR__ . '/../..' . '/kirby/src/Cms/Item.php', + 'Kirby\\Cms\\Items' => __DIR__ . '/../..' . '/kirby/src/Cms/Items.php', + 'Kirby\\Cms\\Language' => __DIR__ . '/../..' . '/kirby/src/Cms/Language.php', + 'Kirby\\Cms\\LanguagePermissions' => __DIR__ . '/../..' . '/kirby/src/Cms/LanguagePermissions.php', + 'Kirby\\Cms\\LanguageRouter' => __DIR__ . '/../..' . '/kirby/src/Cms/LanguageRouter.php', + 'Kirby\\Cms\\LanguageRoutes' => __DIR__ . '/../..' . '/kirby/src/Cms/LanguageRoutes.php', + 'Kirby\\Cms\\LanguageRules' => __DIR__ . '/../..' . '/kirby/src/Cms/LanguageRules.php', + 'Kirby\\Cms\\LanguageVariable' => __DIR__ . '/../..' . '/kirby/src/Cms/LanguageVariable.php', + 'Kirby\\Cms\\Languages' => __DIR__ . '/../..' . '/kirby/src/Cms/Languages.php', + 'Kirby\\Cms\\Layout' => __DIR__ . '/../..' . '/kirby/src/Cms/Layout.php', + 'Kirby\\Cms\\LayoutColumn' => __DIR__ . '/../..' . '/kirby/src/Cms/LayoutColumn.php', + 'Kirby\\Cms\\LayoutColumns' => __DIR__ . '/../..' . '/kirby/src/Cms/LayoutColumns.php', + 'Kirby\\Cms\\Layouts' => __DIR__ . '/../..' . '/kirby/src/Cms/Layouts.php', + 'Kirby\\Cms\\LazyCollection' => __DIR__ . '/../..' . '/kirby/src/Cms/LazyCollection.php', + 'Kirby\\Cms\\License' => __DIR__ . '/../..' . '/kirby/src/Cms/License.php', + 'Kirby\\Cms\\LicenseStatus' => __DIR__ . '/../..' . '/kirby/src/Cms/LicenseStatus.php', + 'Kirby\\Cms\\LicenseType' => __DIR__ . '/../..' . '/kirby/src/Cms/LicenseType.php', + 'Kirby\\Cms\\Loader' => __DIR__ . '/../..' . '/kirby/src/Cms/Loader.php', + 'Kirby\\Cms\\Media' => __DIR__ . '/../..' . '/kirby/src/Cms/Media.php', + 'Kirby\\Cms\\ModelCommit' => __DIR__ . '/../..' . '/kirby/src/Cms/ModelCommit.php', + 'Kirby\\Cms\\ModelPermissions' => __DIR__ . '/../..' . '/kirby/src/Cms/ModelPermissions.php', + 'Kirby\\Cms\\ModelState' => __DIR__ . '/../..' . '/kirby/src/Cms/ModelState.php', + 'Kirby\\Cms\\ModelWithContent' => __DIR__ . '/../..' . '/kirby/src/Cms/ModelWithContent.php', + 'Kirby\\Cms\\Nest' => __DIR__ . '/../..' . '/kirby/src/Cms/Nest.php', + 'Kirby\\Cms\\NestCollection' => __DIR__ . '/../..' . '/kirby/src/Cms/NestCollection.php', + 'Kirby\\Cms\\NestObject' => __DIR__ . '/../..' . '/kirby/src/Cms/NestObject.php', + 'Kirby\\Cms\\Page' => __DIR__ . '/../..' . '/kirby/src/Cms/Page.php', + 'Kirby\\Cms\\PageActions' => __DIR__ . '/../..' . '/kirby/src/Cms/PageActions.php', + 'Kirby\\Cms\\PageBlueprint' => __DIR__ . '/../..' . '/kirby/src/Cms/PageBlueprint.php', + 'Kirby\\Cms\\PageCopy' => __DIR__ . '/../..' . '/kirby/src/Cms/PageCopy.php', + 'Kirby\\Cms\\PagePermissions' => __DIR__ . '/../..' . '/kirby/src/Cms/PagePermissions.php', + 'Kirby\\Cms\\PagePicker' => __DIR__ . '/../..' . '/kirby/src/Cms/PagePicker.php', + 'Kirby\\Cms\\PageRules' => __DIR__ . '/../..' . '/kirby/src/Cms/PageRules.php', + 'Kirby\\Cms\\PageSiblings' => __DIR__ . '/../..' . '/kirby/src/Cms/PageSiblings.php', + 'Kirby\\Cms\\Pages' => __DIR__ . '/../..' . '/kirby/src/Cms/Pages.php', + 'Kirby\\Cms\\Pagination' => __DIR__ . '/../..' . '/kirby/src/Cms/Pagination.php', + 'Kirby\\Cms\\Permissions' => __DIR__ . '/../..' . '/kirby/src/Cms/Permissions.php', + 'Kirby\\Cms\\Picker' => __DIR__ . '/../..' . '/kirby/src/Cms/Picker.php', + 'Kirby\\Cms\\R' => __DIR__ . '/../..' . '/kirby/src/Cms/R.php', + 'Kirby\\Cms\\Responder' => __DIR__ . '/../..' . '/kirby/src/Cms/Responder.php', + 'Kirby\\Cms\\Response' => __DIR__ . '/../..' . '/kirby/src/Cms/Response.php', + 'Kirby\\Cms\\Role' => __DIR__ . '/../..' . '/kirby/src/Cms/Role.php', + 'Kirby\\Cms\\Roles' => __DIR__ . '/../..' . '/kirby/src/Cms/Roles.php', + 'Kirby\\Cms\\S' => __DIR__ . '/../..' . '/kirby/src/Cms/S.php', + 'Kirby\\Cms\\Search' => __DIR__ . '/../..' . '/kirby/src/Cms/Search.php', + 'Kirby\\Cms\\Section' => __DIR__ . '/../..' . '/kirby/src/Cms/Section.php', + 'Kirby\\Cms\\Site' => __DIR__ . '/../..' . '/kirby/src/Cms/Site.php', + 'Kirby\\Cms\\SiteActions' => __DIR__ . '/../..' . '/kirby/src/Cms/SiteActions.php', + 'Kirby\\Cms\\SiteBlueprint' => __DIR__ . '/../..' . '/kirby/src/Cms/SiteBlueprint.php', + 'Kirby\\Cms\\SitePermissions' => __DIR__ . '/../..' . '/kirby/src/Cms/SitePermissions.php', + 'Kirby\\Cms\\SiteRules' => __DIR__ . '/../..' . '/kirby/src/Cms/SiteRules.php', + 'Kirby\\Cms\\Structure' => __DIR__ . '/../..' . '/kirby/src/Cms/Structure.php', + 'Kirby\\Cms\\StructureObject' => __DIR__ . '/../..' . '/kirby/src/Cms/StructureObject.php', + 'Kirby\\Cms\\System' => __DIR__ . '/../..' . '/kirby/src/Cms/System.php', + 'Kirby\\Cms\\System\\UpdateStatus' => __DIR__ . '/../..' . '/kirby/src/Cms/System/UpdateStatus.php', + 'Kirby\\Cms\\Translation' => __DIR__ . '/../..' . '/kirby/src/Cms/Translation.php', + 'Kirby\\Cms\\Translations' => __DIR__ . '/../..' . '/kirby/src/Cms/Translations.php', + 'Kirby\\Cms\\Url' => __DIR__ . '/../..' . '/kirby/src/Cms/Url.php', + 'Kirby\\Cms\\User' => __DIR__ . '/../..' . '/kirby/src/Cms/User.php', + 'Kirby\\Cms\\UserActions' => __DIR__ . '/../..' . '/kirby/src/Cms/UserActions.php', + 'Kirby\\Cms\\UserBlueprint' => __DIR__ . '/../..' . '/kirby/src/Cms/UserBlueprint.php', + 'Kirby\\Cms\\UserPermissions' => __DIR__ . '/../..' . '/kirby/src/Cms/UserPermissions.php', + 'Kirby\\Cms\\UserPicker' => __DIR__ . '/../..' . '/kirby/src/Cms/UserPicker.php', + 'Kirby\\Cms\\UserRules' => __DIR__ . '/../..' . '/kirby/src/Cms/UserRules.php', + 'Kirby\\Cms\\Users' => __DIR__ . '/../..' . '/kirby/src/Cms/Users.php', + 'Kirby\\Cms\\Visitor' => __DIR__ . '/../..' . '/kirby/src/Cms/Visitor.php', + 'Kirby\\ComposerInstaller\\CmsInstaller' => __DIR__ . '/..' . '/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php', + 'Kirby\\ComposerInstaller\\Installer' => __DIR__ . '/..' . '/getkirby/composer-installer/src/ComposerInstaller/Installer.php', + 'Kirby\\ComposerInstaller\\Plugin' => __DIR__ . '/..' . '/getkirby/composer-installer/src/ComposerInstaller/Plugin.php', + 'Kirby\\ComposerInstaller\\PluginInstaller' => __DIR__ . '/..' . '/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php', + 'Kirby\\Content\\Changes' => __DIR__ . '/../..' . '/kirby/src/Content/Changes.php', + 'Kirby\\Content\\Content' => __DIR__ . '/../..' . '/kirby/src/Content/Content.php', + 'Kirby\\Content\\Field' => __DIR__ . '/../..' . '/kirby/src/Content/Field.php', + 'Kirby\\Content\\ImmutableMemoryStorage' => __DIR__ . '/../..' . '/kirby/src/Content/ImmutableMemoryStorage.php', + 'Kirby\\Content\\Lock' => __DIR__ . '/../..' . '/kirby/src/Content/Lock.php', + 'Kirby\\Content\\LockedContentException' => __DIR__ . '/../..' . '/kirby/src/Content/LockedContentException.php', + 'Kirby\\Content\\MemoryStorage' => __DIR__ . '/../..' . '/kirby/src/Content/MemoryStorage.php', + 'Kirby\\Content\\PlainTextStorage' => __DIR__ . '/../..' . '/kirby/src/Content/PlainTextStorage.php', + 'Kirby\\Content\\Storage' => __DIR__ . '/../..' . '/kirby/src/Content/Storage.php', + 'Kirby\\Content\\Translation' => __DIR__ . '/../..' . '/kirby/src/Content/Translation.php', + 'Kirby\\Content\\Translations' => __DIR__ . '/../..' . '/kirby/src/Content/Translations.php', + 'Kirby\\Content\\Version' => __DIR__ . '/../..' . '/kirby/src/Content/Version.php', + 'Kirby\\Content\\VersionCache' => __DIR__ . '/../..' . '/kirby/src/Content/VersionCache.php', + 'Kirby\\Content\\VersionId' => __DIR__ . '/../..' . '/kirby/src/Content/VersionId.php', + 'Kirby\\Content\\VersionRules' => __DIR__ . '/../..' . '/kirby/src/Content/VersionRules.php', + 'Kirby\\Content\\Versions' => __DIR__ . '/../..' . '/kirby/src/Content/Versions.php', + 'Kirby\\Data\\Data' => __DIR__ . '/../..' . '/kirby/src/Data/Data.php', + 'Kirby\\Data\\Handler' => __DIR__ . '/../..' . '/kirby/src/Data/Handler.php', + 'Kirby\\Data\\Json' => __DIR__ . '/../..' . '/kirby/src/Data/Json.php', + 'Kirby\\Data\\PHP' => __DIR__ . '/../..' . '/kirby/src/Data/PHP.php', + 'Kirby\\Data\\Txt' => __DIR__ . '/../..' . '/kirby/src/Data/Txt.php', + 'Kirby\\Data\\Xml' => __DIR__ . '/../..' . '/kirby/src/Data/Xml.php', + 'Kirby\\Data\\Yaml' => __DIR__ . '/../..' . '/kirby/src/Data/Yaml.php', + 'Kirby\\Data\\YamlSpyc' => __DIR__ . '/../..' . '/kirby/src/Data/YamlSpyc.php', + 'Kirby\\Data\\YamlSymfony' => __DIR__ . '/../..' . '/kirby/src/Data/YamlSymfony.php', + 'Kirby\\Database\\Database' => __DIR__ . '/../..' . '/kirby/src/Database/Database.php', + 'Kirby\\Database\\Db' => __DIR__ . '/../..' . '/kirby/src/Database/Db.php', + 'Kirby\\Database\\Query' => __DIR__ . '/../..' . '/kirby/src/Database/Query.php', + 'Kirby\\Database\\Sql' => __DIR__ . '/../..' . '/kirby/src/Database/Sql.php', + 'Kirby\\Database\\Sql\\Mysql' => __DIR__ . '/../..' . '/kirby/src/Database/Sql/Mysql.php', + 'Kirby\\Database\\Sql\\Sqlite' => __DIR__ . '/../..' . '/kirby/src/Database/Sql/Sqlite.php', + 'Kirby\\Email\\Body' => __DIR__ . '/../..' . '/kirby/src/Email/Body.php', + 'Kirby\\Email\\Email' => __DIR__ . '/../..' . '/kirby/src/Email/Email.php', + 'Kirby\\Email\\PHPMailer' => __DIR__ . '/../..' . '/kirby/src/Email/PHPMailer.php', + 'Kirby\\Exception\\AuthException' => __DIR__ . '/../..' . '/kirby/src/Exception/AuthException.php', + 'Kirby\\Exception\\BadMethodCallException' => __DIR__ . '/../..' . '/kirby/src/Exception/BadMethodCallException.php', + 'Kirby\\Exception\\DuplicateException' => __DIR__ . '/../..' . '/kirby/src/Exception/DuplicateException.php', + 'Kirby\\Exception\\ErrorPageException' => __DIR__ . '/../..' . '/kirby/src/Exception/ErrorPageException.php', + 'Kirby\\Exception\\Exception' => __DIR__ . '/../..' . '/kirby/src/Exception/Exception.php', + 'Kirby\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/kirby/src/Exception/InvalidArgumentException.php', + 'Kirby\\Exception\\LogicException' => __DIR__ . '/../..' . '/kirby/src/Exception/LogicException.php', + 'Kirby\\Exception\\NotFoundException' => __DIR__ . '/../..' . '/kirby/src/Exception/NotFoundException.php', + 'Kirby\\Exception\\PermissionException' => __DIR__ . '/../..' . '/kirby/src/Exception/PermissionException.php', + 'Kirby\\Field\\FieldOptions' => __DIR__ . '/../..' . '/kirby/src/Field/FieldOptions.php', + 'Kirby\\Filesystem\\Asset' => __DIR__ . '/../..' . '/kirby/src/Filesystem/Asset.php', + 'Kirby\\Filesystem\\Dir' => __DIR__ . '/../..' . '/kirby/src/Filesystem/Dir.php', + 'Kirby\\Filesystem\\F' => __DIR__ . '/../..' . '/kirby/src/Filesystem/F.php', + 'Kirby\\Filesystem\\File' => __DIR__ . '/../..' . '/kirby/src/Filesystem/File.php', + 'Kirby\\Filesystem\\Filename' => __DIR__ . '/../..' . '/kirby/src/Filesystem/Filename.php', + 'Kirby\\Filesystem\\IsFile' => __DIR__ . '/../..' . '/kirby/src/Filesystem/IsFile.php', + 'Kirby\\Filesystem\\Mime' => __DIR__ . '/../..' . '/kirby/src/Filesystem/Mime.php', + 'Kirby\\Form\\Field' => __DIR__ . '/../..' . '/kirby/src/Form/Field.php', + 'Kirby\\Form\\FieldClass' => __DIR__ . '/../..' . '/kirby/src/Form/FieldClass.php', + 'Kirby\\Form\\Field\\BlocksField' => __DIR__ . '/../..' . '/kirby/src/Form/Field/BlocksField.php', + 'Kirby\\Form\\Field\\EntriesField' => __DIR__ . '/../..' . '/kirby/src/Form/Field/EntriesField.php', + 'Kirby\\Form\\Field\\LayoutField' => __DIR__ . '/../..' . '/kirby/src/Form/Field/LayoutField.php', + 'Kirby\\Form\\Field\\StatsField' => __DIR__ . '/../..' . '/kirby/src/Form/Field/StatsField.php', + 'Kirby\\Form\\Fields' => __DIR__ . '/../..' . '/kirby/src/Form/Fields.php', + 'Kirby\\Form\\Form' => __DIR__ . '/../..' . '/kirby/src/Form/Form.php', + 'Kirby\\Form\\Mixin\\After' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/After.php', + 'Kirby\\Form\\Mixin\\Api' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Api.php', + 'Kirby\\Form\\Mixin\\Autofocus' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Autofocus.php', + 'Kirby\\Form\\Mixin\\Before' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Before.php', + 'Kirby\\Form\\Mixin\\EmptyState' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/EmptyState.php', + 'Kirby\\Form\\Mixin\\Help' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Help.php', + 'Kirby\\Form\\Mixin\\Icon' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Icon.php', + 'Kirby\\Form\\Mixin\\Label' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Label.php', + 'Kirby\\Form\\Mixin\\Max' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Max.php', + 'Kirby\\Form\\Mixin\\Min' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Min.php', + 'Kirby\\Form\\Mixin\\Model' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Model.php', + 'Kirby\\Form\\Mixin\\Placeholder' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Placeholder.php', + 'Kirby\\Form\\Mixin\\Translatable' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Translatable.php', + 'Kirby\\Form\\Mixin\\Validation' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Validation.php', + 'Kirby\\Form\\Mixin\\Value' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Value.php', + 'Kirby\\Form\\Mixin\\When' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/When.php', + 'Kirby\\Form\\Mixin\\Width' => __DIR__ . '/../..' . '/kirby/src/Form/Mixin/Width.php', + 'Kirby\\Form\\Validations' => __DIR__ . '/../..' . '/kirby/src/Form/Validations.php', + 'Kirby\\Http\\Cookie' => __DIR__ . '/../..' . '/kirby/src/Http/Cookie.php', + 'Kirby\\Http\\Environment' => __DIR__ . '/../..' . '/kirby/src/Http/Environment.php', + 'Kirby\\Http\\Exceptions\\NextRouteException' => __DIR__ . '/../..' . '/kirby/src/Http/Exceptions/NextRouteException.php', + 'Kirby\\Http\\Header' => __DIR__ . '/../..' . '/kirby/src/Http/Header.php', + 'Kirby\\Http\\Idn' => __DIR__ . '/../..' . '/kirby/src/Http/Idn.php', + 'Kirby\\Http\\Params' => __DIR__ . '/../..' . '/kirby/src/Http/Params.php', + 'Kirby\\Http\\Path' => __DIR__ . '/../..' . '/kirby/src/Http/Path.php', + 'Kirby\\Http\\Query' => __DIR__ . '/../..' . '/kirby/src/Http/Query.php', + 'Kirby\\Http\\Range' => __DIR__ . '/../..' . '/kirby/src/Http/Range.php', + 'Kirby\\Http\\Remote' => __DIR__ . '/../..' . '/kirby/src/Http/Remote.php', + 'Kirby\\Http\\Request' => __DIR__ . '/../..' . '/kirby/src/Http/Request.php', + 'Kirby\\Http\\Request\\Auth' => __DIR__ . '/../..' . '/kirby/src/Http/Request/Auth.php', + 'Kirby\\Http\\Request\\Auth\\BasicAuth' => __DIR__ . '/../..' . '/kirby/src/Http/Request/Auth/BasicAuth.php', + 'Kirby\\Http\\Request\\Auth\\BearerAuth' => __DIR__ . '/../..' . '/kirby/src/Http/Request/Auth/BearerAuth.php', + 'Kirby\\Http\\Request\\Auth\\SessionAuth' => __DIR__ . '/../..' . '/kirby/src/Http/Request/Auth/SessionAuth.php', + 'Kirby\\Http\\Request\\Body' => __DIR__ . '/../..' . '/kirby/src/Http/Request/Body.php', + 'Kirby\\Http\\Request\\Data' => __DIR__ . '/../..' . '/kirby/src/Http/Request/Data.php', + 'Kirby\\Http\\Request\\Files' => __DIR__ . '/../..' . '/kirby/src/Http/Request/Files.php', + 'Kirby\\Http\\Request\\Query' => __DIR__ . '/../..' . '/kirby/src/Http/Request/Query.php', + 'Kirby\\Http\\Response' => __DIR__ . '/../..' . '/kirby/src/Http/Response.php', + 'Kirby\\Http\\Route' => __DIR__ . '/../..' . '/kirby/src/Http/Route.php', + 'Kirby\\Http\\Router' => __DIR__ . '/../..' . '/kirby/src/Http/Router.php', + 'Kirby\\Http\\Uri' => __DIR__ . '/../..' . '/kirby/src/Http/Uri.php', + 'Kirby\\Http\\Url' => __DIR__ . '/../..' . '/kirby/src/Http/Url.php', + 'Kirby\\Http\\Visitor' => __DIR__ . '/../..' . '/kirby/src/Http/Visitor.php', + 'Kirby\\Http\\VolatileHeaders' => __DIR__ . '/../..' . '/kirby/src/Http/VolatileHeaders.php', + 'Kirby\\Image\\Camera' => __DIR__ . '/../..' . '/kirby/src/Image/Camera.php', + 'Kirby\\Image\\Darkroom' => __DIR__ . '/../..' . '/kirby/src/Image/Darkroom.php', + 'Kirby\\Image\\Darkroom\\GdLib' => __DIR__ . '/../..' . '/kirby/src/Image/Darkroom/GdLib.php', + 'Kirby\\Image\\Darkroom\\ImageMagick' => __DIR__ . '/../..' . '/kirby/src/Image/Darkroom/ImageMagick.php', + 'Kirby\\Image\\Darkroom\\Imagick' => __DIR__ . '/../..' . '/kirby/src/Image/Darkroom/Imagick.php', + 'Kirby\\Image\\Dimensions' => __DIR__ . '/../..' . '/kirby/src/Image/Dimensions.php', + 'Kirby\\Image\\Exif' => __DIR__ . '/../..' . '/kirby/src/Image/Exif.php', + 'Kirby\\Image\\Focus' => __DIR__ . '/../..' . '/kirby/src/Image/Focus.php', + 'Kirby\\Image\\Gravity' => __DIR__ . '/../..' . '/kirby/src/Image/Gravity.php', + 'Kirby\\Image\\Image' => __DIR__ . '/../..' . '/kirby/src/Image/Image.php', + 'Kirby\\Image\\Location' => __DIR__ . '/../..' . '/kirby/src/Image/Location.php', + 'Kirby\\Image\\QrCode' => __DIR__ . '/../..' . '/kirby/src/Image/QrCode.php', + 'Kirby\\Option\\Option' => __DIR__ . '/../..' . '/kirby/src/Option/Option.php', + 'Kirby\\Option\\Options' => __DIR__ . '/../..' . '/kirby/src/Option/Options.php', + 'Kirby\\Option\\OptionsApi' => __DIR__ . '/../..' . '/kirby/src/Option/OptionsApi.php', + 'Kirby\\Option\\OptionsProvider' => __DIR__ . '/../..' . '/kirby/src/Option/OptionsProvider.php', + 'Kirby\\Option\\OptionsQuery' => __DIR__ . '/../..' . '/kirby/src/Option/OptionsQuery.php', + 'Kirby\\Panel\\Assets' => __DIR__ . '/../..' . '/kirby/src/Panel/Assets.php', + 'Kirby\\Panel\\ChangesDialog' => __DIR__ . '/../..' . '/kirby/src/Panel/ChangesDialog.php', + 'Kirby\\Panel\\Collector\\FilesCollector' => __DIR__ . '/../..' . '/kirby/src/Panel/Collector/FilesCollector.php', + 'Kirby\\Panel\\Collector\\ModelsCollector' => __DIR__ . '/../..' . '/kirby/src/Panel/Collector/ModelsCollector.php', + 'Kirby\\Panel\\Collector\\PagesCollector' => __DIR__ . '/../..' . '/kirby/src/Panel/Collector/PagesCollector.php', + 'Kirby\\Panel\\Collector\\UsersCollector' => __DIR__ . '/../..' . '/kirby/src/Panel/Collector/UsersCollector.php', + 'Kirby\\Panel\\Controller\\PageTree' => __DIR__ . '/../..' . '/kirby/src/Panel/Controller/PageTree.php', + 'Kirby\\Panel\\Controller\\Search' => __DIR__ . '/../..' . '/kirby/src/Panel/Controller/Search.php', + 'Kirby\\Panel\\Dialog' => __DIR__ . '/../..' . '/kirby/src/Panel/Dialog.php', + 'Kirby\\Panel\\Document' => __DIR__ . '/../..' . '/kirby/src/Panel/Document.php', + 'Kirby\\Panel\\Drawer' => __DIR__ . '/../..' . '/kirby/src/Panel/Drawer.php', + 'Kirby\\Panel\\Dropdown' => __DIR__ . '/../..' . '/kirby/src/Panel/Dropdown.php', + 'Kirby\\Panel\\Field' => __DIR__ . '/../..' . '/kirby/src/Panel/Field.php', + 'Kirby\\Panel\\File' => __DIR__ . '/../..' . '/kirby/src/Panel/File.php', + 'Kirby\\Panel\\Home' => __DIR__ . '/../..' . '/kirby/src/Panel/Home.php', + 'Kirby\\Panel\\Json' => __DIR__ . '/../..' . '/kirby/src/Panel/Json.php', + 'Kirby\\Panel\\Lab\\Category' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Category.php', + 'Kirby\\Panel\\Lab\\Doc' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Doc.php', + 'Kirby\\Panel\\Lab\\Doc\\Argument' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Doc/Argument.php', + 'Kirby\\Panel\\Lab\\Doc\\Event' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Doc/Event.php', + 'Kirby\\Panel\\Lab\\Doc\\Method' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Doc/Method.php', + 'Kirby\\Panel\\Lab\\Doc\\Prop' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Doc/Prop.php', + 'Kirby\\Panel\\Lab\\Doc\\Slot' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Doc/Slot.php', + 'Kirby\\Panel\\Lab\\Docs' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Docs.php', + 'Kirby\\Panel\\Lab\\Example' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Example.php', + 'Kirby\\Panel\\Lab\\Responses' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Responses.php', + 'Kirby\\Panel\\Lab\\Snippet' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Snippet.php', + 'Kirby\\Panel\\Lab\\Template' => __DIR__ . '/../..' . '/kirby/src/Panel/Lab/Template.php', + 'Kirby\\Panel\\Menu' => __DIR__ . '/../..' . '/kirby/src/Panel/Menu.php', + 'Kirby\\Panel\\Model' => __DIR__ . '/../..' . '/kirby/src/Panel/Model.php', + 'Kirby\\Panel\\Page' => __DIR__ . '/../..' . '/kirby/src/Panel/Page.php', + 'Kirby\\Panel\\PageCreateDialog' => __DIR__ . '/../..' . '/kirby/src/Panel/PageCreateDialog.php', + 'Kirby\\Panel\\Panel' => __DIR__ . '/../..' . '/kirby/src/Panel/Panel.php', + 'Kirby\\Panel\\Plugins' => __DIR__ . '/../..' . '/kirby/src/Panel/Plugins.php', + 'Kirby\\Panel\\Redirect' => __DIR__ . '/../..' . '/kirby/src/Panel/Redirect.php', + 'Kirby\\Panel\\Request' => __DIR__ . '/../..' . '/kirby/src/Panel/Request.php', + 'Kirby\\Panel\\Search' => __DIR__ . '/../..' . '/kirby/src/Panel/Search.php', + 'Kirby\\Panel\\Site' => __DIR__ . '/../..' . '/kirby/src/Panel/Site.php', + 'Kirby\\Panel\\Ui\\Button' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Button.php', + 'Kirby\\Panel\\Ui\\Buttons\\LanguageCreateButton' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/LanguageCreateButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\LanguageDeleteButton' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/LanguageDeleteButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\LanguageSettingsButton' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/LanguageSettingsButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\LanguagesDropdown' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/LanguagesDropdown.php', + 'Kirby\\Panel\\Ui\\Buttons\\OpenButton' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/OpenButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\PageStatusButton' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/PageStatusButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\PreviewButton' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/PreviewButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\SettingsButton' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/SettingsButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\VersionsButton' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/VersionsButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\ViewButton' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/ViewButton.php', + 'Kirby\\Panel\\Ui\\Buttons\\ViewButtons' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Buttons/ViewButtons.php', + 'Kirby\\Panel\\Ui\\Component' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Component.php', + 'Kirby\\Panel\\Ui\\FilePreview' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/FilePreview.php', + 'Kirby\\Panel\\Ui\\FilePreviews\\AudioFilePreview' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/FilePreviews/AudioFilePreview.php', + 'Kirby\\Panel\\Ui\\FilePreviews\\DefaultFilePreview' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/FilePreviews/DefaultFilePreview.php', + 'Kirby\\Panel\\Ui\\FilePreviews\\ImageFilePreview' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/FilePreviews/ImageFilePreview.php', + 'Kirby\\Panel\\Ui\\FilePreviews\\PdfFilePreview' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/FilePreviews/PdfFilePreview.php', + 'Kirby\\Panel\\Ui\\FilePreviews\\VideoFilePreview' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/FilePreviews/VideoFilePreview.php', + 'Kirby\\Panel\\Ui\\Item\\FileItem' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Item/FileItem.php', + 'Kirby\\Panel\\Ui\\Item\\ModelItem' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Item/ModelItem.php', + 'Kirby\\Panel\\Ui\\Item\\PageItem' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Item/PageItem.php', + 'Kirby\\Panel\\Ui\\Item\\UserItem' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Item/UserItem.php', + 'Kirby\\Panel\\Ui\\Stat' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Stat.php', + 'Kirby\\Panel\\Ui\\Stats' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Stats.php', + 'Kirby\\Panel\\Ui\\Upload' => __DIR__ . '/../..' . '/kirby/src/Panel/Ui/Upload.php', + 'Kirby\\Panel\\User' => __DIR__ . '/../..' . '/kirby/src/Panel/User.php', + 'Kirby\\Panel\\UserTotpDisableDialog' => __DIR__ . '/../..' . '/kirby/src/Panel/UserTotpDisableDialog.php', + 'Kirby\\Panel\\UserTotpEnableDialog' => __DIR__ . '/../..' . '/kirby/src/Panel/UserTotpEnableDialog.php', + 'Kirby\\Panel\\View' => __DIR__ . '/../..' . '/kirby/src/Panel/View.php', + 'Kirby\\Parsley\\Element' => __DIR__ . '/../..' . '/kirby/src/Parsley/Element.php', + 'Kirby\\Parsley\\Inline' => __DIR__ . '/../..' . '/kirby/src/Parsley/Inline.php', + 'Kirby\\Parsley\\Parsley' => __DIR__ . '/../..' . '/kirby/src/Parsley/Parsley.php', + 'Kirby\\Parsley\\Schema' => __DIR__ . '/../..' . '/kirby/src/Parsley/Schema.php', + 'Kirby\\Parsley\\Schema\\Blocks' => __DIR__ . '/../..' . '/kirby/src/Parsley/Schema/Blocks.php', + 'Kirby\\Parsley\\Schema\\Plain' => __DIR__ . '/../..' . '/kirby/src/Parsley/Schema/Plain.php', + 'Kirby\\Plugin\\Asset' => __DIR__ . '/../..' . '/kirby/src/Plugin/Asset.php', + 'Kirby\\Plugin\\Assets' => __DIR__ . '/../..' . '/kirby/src/Plugin/Assets.php', + 'Kirby\\Plugin\\License' => __DIR__ . '/../..' . '/kirby/src/Plugin/License.php', + 'Kirby\\Plugin\\LicenseStatus' => __DIR__ . '/../..' . '/kirby/src/Plugin/LicenseStatus.php', + 'Kirby\\Plugin\\Plugin' => __DIR__ . '/../..' . '/kirby/src/Plugin/Plugin.php', + 'Kirby\\Query\\AST\\ArgumentListNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/ArgumentListNode.php', + 'Kirby\\Query\\AST\\ArithmeticNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/ArithmeticNode.php', + 'Kirby\\Query\\AST\\ArrayListNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/ArrayListNode.php', + 'Kirby\\Query\\AST\\ClosureNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/ClosureNode.php', + 'Kirby\\Query\\AST\\CoalesceNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/CoalesceNode.php', + 'Kirby\\Query\\AST\\ComparisonNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/ComparisonNode.php', + 'Kirby\\Query\\AST\\GlobalFunctionNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/GlobalFunctionNode.php', + 'Kirby\\Query\\AST\\LiteralNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/LiteralNode.php', + 'Kirby\\Query\\AST\\LogicalNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/LogicalNode.php', + 'Kirby\\Query\\AST\\MemberAccessNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/MemberAccessNode.php', + 'Kirby\\Query\\AST\\Node' => __DIR__ . '/../..' . '/kirby/src/Query/AST/Node.php', + 'Kirby\\Query\\AST\\TernaryNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/TernaryNode.php', + 'Kirby\\Query\\AST\\VariableNode' => __DIR__ . '/../..' . '/kirby/src/Query/AST/VariableNode.php', + 'Kirby\\Query\\Argument' => __DIR__ . '/../..' . '/kirby/src/Query/Argument.php', + 'Kirby\\Query\\Arguments' => __DIR__ . '/../..' . '/kirby/src/Query/Arguments.php', + 'Kirby\\Query\\Expression' => __DIR__ . '/../..' . '/kirby/src/Query/Expression.php', + 'Kirby\\Query\\Parser\\Parser' => __DIR__ . '/../..' . '/kirby/src/Query/Parser/Parser.php', + 'Kirby\\Query\\Parser\\Token' => __DIR__ . '/../..' . '/kirby/src/Query/Parser/Token.php', + 'Kirby\\Query\\Parser\\TokenType' => __DIR__ . '/../..' . '/kirby/src/Query/Parser/TokenType.php', + 'Kirby\\Query\\Parser\\Tokenizer' => __DIR__ . '/../..' . '/kirby/src/Query/Parser/Tokenizer.php', + 'Kirby\\Query\\Query' => __DIR__ . '/../..' . '/kirby/src/Query/Query.php', + 'Kirby\\Query\\Runners\\DefaultRunner' => __DIR__ . '/../..' . '/kirby/src/Query/Runners/DefaultRunner.php', + 'Kirby\\Query\\Runners\\Runner' => __DIR__ . '/../..' . '/kirby/src/Query/Runners/Runner.php', + 'Kirby\\Query\\Runners\\Scope' => __DIR__ . '/../..' . '/kirby/src/Query/Runners/Scope.php', + 'Kirby\\Query\\Segment' => __DIR__ . '/../..' . '/kirby/src/Query/Segment.php', + 'Kirby\\Query\\Segments' => __DIR__ . '/../..' . '/kirby/src/Query/Segments.php', + 'Kirby\\Query\\Visitors\\DefaultVisitor' => __DIR__ . '/../..' . '/kirby/src/Query/Visitors/DefaultVisitor.php', + 'Kirby\\Query\\Visitors\\Visitor' => __DIR__ . '/../..' . '/kirby/src/Query/Visitors/Visitor.php', + 'Kirby\\Reflection\\Constructor' => __DIR__ . '/../..' . '/kirby/src/Reflection/Constructor.php', + 'Kirby\\Sane\\DomHandler' => __DIR__ . '/../..' . '/kirby/src/Sane/DomHandler.php', + 'Kirby\\Sane\\Handler' => __DIR__ . '/../..' . '/kirby/src/Sane/Handler.php', + 'Kirby\\Sane\\Html' => __DIR__ . '/../..' . '/kirby/src/Sane/Html.php', + 'Kirby\\Sane\\Sane' => __DIR__ . '/../..' . '/kirby/src/Sane/Sane.php', + 'Kirby\\Sane\\Svg' => __DIR__ . '/../..' . '/kirby/src/Sane/Svg.php', + 'Kirby\\Sane\\Svgz' => __DIR__ . '/../..' . '/kirby/src/Sane/Svgz.php', + 'Kirby\\Sane\\Xml' => __DIR__ . '/../..' . '/kirby/src/Sane/Xml.php', + 'Kirby\\Session\\AutoSession' => __DIR__ . '/../..' . '/kirby/src/Session/AutoSession.php', + 'Kirby\\Session\\FileSessionStore' => __DIR__ . '/../..' . '/kirby/src/Session/FileSessionStore.php', + 'Kirby\\Session\\Session' => __DIR__ . '/../..' . '/kirby/src/Session/Session.php', + 'Kirby\\Session\\SessionData' => __DIR__ . '/../..' . '/kirby/src/Session/SessionData.php', + 'Kirby\\Session\\SessionStore' => __DIR__ . '/../..' . '/kirby/src/Session/SessionStore.php', + 'Kirby\\Session\\Sessions' => __DIR__ . '/../..' . '/kirby/src/Session/Sessions.php', + 'Kirby\\Template\\Slot' => __DIR__ . '/../..' . '/kirby/src/Template/Slot.php', + 'Kirby\\Template\\Slots' => __DIR__ . '/../..' . '/kirby/src/Template/Slots.php', + 'Kirby\\Template\\Snippet' => __DIR__ . '/../..' . '/kirby/src/Template/Snippet.php', + 'Kirby\\Template\\Template' => __DIR__ . '/../..' . '/kirby/src/Template/Template.php', + 'Kirby\\Text\\KirbyTag' => __DIR__ . '/../..' . '/kirby/src/Text/KirbyTag.php', + 'Kirby\\Text\\KirbyTags' => __DIR__ . '/../..' . '/kirby/src/Text/KirbyTags.php', + 'Kirby\\Text\\Markdown' => __DIR__ . '/../..' . '/kirby/src/Text/Markdown.php', + 'Kirby\\Text\\SmartyPants' => __DIR__ . '/../..' . '/kirby/src/Text/SmartyPants.php', + 'Kirby\\Toolkit\\A' => __DIR__ . '/../..' . '/kirby/src/Toolkit/A.php', + 'Kirby\\Toolkit\\Collection' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Collection.php', + 'Kirby\\Toolkit\\Component' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Component.php', + 'Kirby\\Toolkit\\Config' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Config.php', + 'Kirby\\Toolkit\\Controller' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Controller.php', + 'Kirby\\Toolkit\\Date' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Date.php', + 'Kirby\\Toolkit\\Dom' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Dom.php', + 'Kirby\\Toolkit\\Escape' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Escape.php', + 'Kirby\\Toolkit\\Facade' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Facade.php', + 'Kirby\\Toolkit\\Html' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Html.php', + 'Kirby\\Toolkit\\I18n' => __DIR__ . '/../..' . '/kirby/src/Toolkit/I18n.php', + 'Kirby\\Toolkit\\Iterator' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Iterator.php', + 'Kirby\\Toolkit\\LazyValue' => __DIR__ . '/../..' . '/kirby/src/Toolkit/LazyValue.php', + 'Kirby\\Toolkit\\Locale' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Locale.php', + 'Kirby\\Toolkit\\Obj' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Obj.php', + 'Kirby\\Toolkit\\Pagination' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Pagination.php', + 'Kirby\\Toolkit\\Silo' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Silo.php', + 'Kirby\\Toolkit\\Str' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Str.php', + 'Kirby\\Toolkit\\SymmetricCrypto' => __DIR__ . '/../..' . '/kirby/src/Toolkit/SymmetricCrypto.php', + 'Kirby\\Toolkit\\Totp' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Totp.php', + 'Kirby\\Toolkit\\Tpl' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Tpl.php', + 'Kirby\\Toolkit\\V' => __DIR__ . '/../..' . '/kirby/src/Toolkit/V.php', + 'Kirby\\Toolkit\\View' => __DIR__ . '/../..' . '/kirby/src/Toolkit/View.php', + 'Kirby\\Toolkit\\Xml' => __DIR__ . '/../..' . '/kirby/src/Toolkit/Xml.php', + 'Kirby\\Uuid\\BlockUuid' => __DIR__ . '/../..' . '/kirby/src/Uuid/BlockUuid.php', + 'Kirby\\Uuid\\FieldUuid' => __DIR__ . '/../..' . '/kirby/src/Uuid/FieldUuid.php', + 'Kirby\\Uuid\\FileUuid' => __DIR__ . '/../..' . '/kirby/src/Uuid/FileUuid.php', + 'Kirby\\Uuid\\HasUuids' => __DIR__ . '/../..' . '/kirby/src/Uuid/HasUuids.php', + 'Kirby\\Uuid\\Identifiable' => __DIR__ . '/../..' . '/kirby/src/Uuid/Identifiable.php', + 'Kirby\\Uuid\\ModelUuid' => __DIR__ . '/../..' . '/kirby/src/Uuid/ModelUuid.php', + 'Kirby\\Uuid\\PageUuid' => __DIR__ . '/../..' . '/kirby/src/Uuid/PageUuid.php', + 'Kirby\\Uuid\\SiteUuid' => __DIR__ . '/../..' . '/kirby/src/Uuid/SiteUuid.php', + 'Kirby\\Uuid\\StructureUuid' => __DIR__ . '/../..' . '/kirby/src/Uuid/StructureUuid.php', + 'Kirby\\Uuid\\Uri' => __DIR__ . '/../..' . '/kirby/src/Uuid/Uri.php', + 'Kirby\\Uuid\\UserUuid' => __DIR__ . '/../..' . '/kirby/src/Uuid/UserUuid.php', + 'Kirby\\Uuid\\Uuid' => __DIR__ . '/../..' . '/kirby/src/Uuid/Uuid.php', + 'Kirby\\Uuid\\Uuids' => __DIR__ . '/../..' . '/kirby/src/Uuid/Uuids.php', + 'Laminas\\Escaper\\Escaper' => __DIR__ . '/..' . '/laminas/laminas-escaper/src/Escaper.php', + 'Laminas\\Escaper\\EscaperInterface' => __DIR__ . '/..' . '/laminas/laminas-escaper/src/EscaperInterface.php', + 'Laminas\\Escaper\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-escaper/src/Exception/ExceptionInterface.php', + 'Laminas\\Escaper\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-escaper/src/Exception/InvalidArgumentException.php', + 'Laminas\\Escaper\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-escaper/src/Exception/RuntimeException.php', + 'League\\ColorExtractor\\Color' => __DIR__ . '/..' . '/league/color-extractor/src/Color.php', + 'League\\ColorExtractor\\ColorExtractor' => __DIR__ . '/..' . '/league/color-extractor/src/ColorExtractor.php', + 'League\\ColorExtractor\\Palette' => __DIR__ . '/..' . '/league/color-extractor/src/Palette.php', + 'Michelf\\SmartyPants' => __DIR__ . '/..' . '/michelf/php-smartypants/Michelf/SmartyPants.php', + 'Michelf\\SmartyPantsTypographer' => __DIR__ . '/..' . '/michelf/php-smartypants/Michelf/SmartyPantsTypographer.php', + 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', + 'PHPMailer\\PHPMailer\\DSNConfigurator' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/DSNConfigurator.php', + 'PHPMailer\\PHPMailer\\Exception' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/Exception.php', + 'PHPMailer\\PHPMailer\\OAuth' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/OAuth.php', + 'PHPMailer\\PHPMailer\\OAuthTokenProvider' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/OAuthTokenProvider.php', + 'PHPMailer\\PHPMailer\\PHPMailer' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/PHPMailer.php', + 'PHPMailer\\PHPMailer\\POP3' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/POP3.php', + 'PHPMailer\\PHPMailer\\SMTP' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/SMTP.php', + 'Parsedown' => __DIR__ . '/../..' . '/kirby/dependencies/parsedown/Parsedown.php', + 'ParsedownExtra' => __DIR__ . '/../..' . '/kirby/dependencies/parsedown-extra/ParsedownExtra.php', + 'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', + 'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', + 'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', + 'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', + 'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', + 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', + 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', + 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', + 'Spyc' => __DIR__ . '/../..' . '/kirby/dependencies/spyc/Spyc.php', + 'Symfony\\Component\\Yaml\\Command\\LintCommand' => __DIR__ . '/..' . '/symfony/yaml/Command/LintCommand.php', + 'Symfony\\Component\\Yaml\\Dumper' => __DIR__ . '/..' . '/symfony/yaml/Dumper.php', + 'Symfony\\Component\\Yaml\\Escaper' => __DIR__ . '/..' . '/symfony/yaml/Escaper.php', + 'Symfony\\Component\\Yaml\\Exception\\DumpException' => __DIR__ . '/..' . '/symfony/yaml/Exception/DumpException.php', + 'Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/yaml/Exception/ExceptionInterface.php', + 'Symfony\\Component\\Yaml\\Exception\\ParseException' => __DIR__ . '/..' . '/symfony/yaml/Exception/ParseException.php', + 'Symfony\\Component\\Yaml\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/yaml/Exception/RuntimeException.php', + 'Symfony\\Component\\Yaml\\Inline' => __DIR__ . '/..' . '/symfony/yaml/Inline.php', + 'Symfony\\Component\\Yaml\\Parser' => __DIR__ . '/..' . '/symfony/yaml/Parser.php', + 'Symfony\\Component\\Yaml\\Tag\\TaggedValue' => __DIR__ . '/..' . '/symfony/yaml/Tag/TaggedValue.php', + 'Symfony\\Component\\Yaml\\Unescaper' => __DIR__ . '/..' . '/symfony/yaml/Unescaper.php', + 'Symfony\\Component\\Yaml\\Yaml' => __DIR__ . '/..' . '/symfony/yaml/Yaml.php', + 'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php', + 'Symfony\\Polyfill\\Intl\\Idn\\Idn' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Idn.php', + 'Symfony\\Polyfill\\Intl\\Idn\\Info' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Info.php', + 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php', + 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Resources/unidata/Regex.php', + 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Normalizer.php', + 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php', + 'Whoops\\Exception\\ErrorException' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/ErrorException.php', + 'Whoops\\Exception\\Formatter' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Formatter.php', + 'Whoops\\Exception\\Frame' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Frame.php', + 'Whoops\\Exception\\FrameCollection' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/FrameCollection.php', + 'Whoops\\Exception\\Inspector' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Inspector.php', + 'Whoops\\Handler\\CallbackHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/CallbackHandler.php', + 'Whoops\\Handler\\Handler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/Handler.php', + 'Whoops\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/HandlerInterface.php', + 'Whoops\\Handler\\JsonResponseHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php', + 'Whoops\\Handler\\PlainTextHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/PlainTextHandler.php', + 'Whoops\\Handler\\PrettyPageHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php', + 'Whoops\\Handler\\XmlResponseHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php', + 'Whoops\\Inspector\\InspectorFactory' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Inspector/InspectorFactory.php', + 'Whoops\\Inspector\\InspectorFactoryInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Inspector/InspectorFactoryInterface.php', + 'Whoops\\Inspector\\InspectorInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Inspector/InspectorInterface.php', + 'Whoops\\Run' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Run.php', + 'Whoops\\RunInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/RunInterface.php', + 'Whoops\\Util\\HtmlDumperOutput' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php', + 'Whoops\\Util\\Misc' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/Misc.php', + 'Whoops\\Util\\SystemFacade' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/SystemFacade.php', + 'Whoops\\Util\\TemplateHelper' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/TemplateHelper.php', + 'claviska\\SimpleImage' => __DIR__ . '/..' . '/claviska/simpleimage/src/claviska/SimpleImage.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit0b7fb803e22a45eb87e24172337208aa::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit0b7fb803e22a45eb87e24172337208aa::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit0b7fb803e22a45eb87e24172337208aa::$prefixesPsr0; + $loader->classMap = ComposerStaticInit0b7fb803e22a45eb87e24172337208aa::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/kirby/vendor/composer/installed.json b/vendor/composer/installed.json similarity index 90% rename from kirby/vendor/composer/installed.json rename to vendor/composer/installed.json index c3980f0..50f885f 100644 --- a/kirby/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -272,6 +272,109 @@ ], "install-path": "../filp/whoops" }, + { + "name": "getkirby/cms", + "version": "5.3.1", + "version_normalized": "5.3.1.0", + "source": { + "type": "git", + "url": "https://github.com/getkirby/kirby.git", + "reference": "0ccfcabfbc86fc84127e876c249a75b7a15f1964" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/getkirby/kirby/zipball/0ccfcabfbc86fc84127e876c249a75b7a15f1964", + "reference": "0ccfcabfbc86fc84127e876c249a75b7a15f1964", + "shasum": "" + }, + "require": { + "christian-riesen/base32": "1.6.0", + "claviska/simpleimage": "4.4.0", + "composer/semver": "3.4.4", + "ext-ctype": "*", + "ext-curl": "*", + "ext-dom": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-iconv": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-simplexml": "*", + "filp/whoops": "2.18.4", + "getkirby/composer-installer": "^1.2.1", + "laminas/laminas-escaper": "2.18.0", + "michelf/php-smartypants": "1.8.1", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", + "phpmailer/phpmailer": "7.0.2", + "symfony/polyfill-intl-idn": "1.33.0", + "symfony/polyfill-mbstring": "1.33.0", + "symfony/yaml": "7.4.1" + }, + "replace": { + "symfony/polyfill-php72": "*" + }, + "suggest": { + "ext-apcu": "Support for the Apcu cache driver", + "ext-exif": "Support for exif information from images", + "ext-fileinfo": "Improved mime type detection for files", + "ext-imagick": "Improved thumbnail generation", + "ext-intl": "Improved i18n number formatting", + "ext-memcached": "Support for the Memcached cache driver", + "ext-pdo": "Support for using databases", + "ext-redis": "Support for the Redis cache driver", + "ext-sodium": "Support for the crypto class and more robust session handling", + "ext-zip": "Support for ZIP archive file functions", + "ext-zlib": "Sanitization and validation for svgz files" + }, + "time": "2026-02-16T19:34:35+00:00", + "type": "kirby-cms", + "installation-source": "dist", + "autoload": { + "files": [ + "config/setup.php", + "config/helpers.php" + ], + "psr-4": { + "Kirby\\": "src/" + }, + "classmap": [ + "dependencies/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "authors": [ + { + "name": "Kirby Team", + "email": "support@getkirby.com", + "homepage": "https://getkirby.com" + } + ], + "description": "The Kirby core", + "homepage": "https://getkirby.com", + "keywords": [ + "cms", + "core", + "kirby" + ], + "support": { + "email": "support@getkirby.com", + "forum": "https://forum.getkirby.com", + "issues": "https://github.com/getkirby/kirby/issues", + "source": "https://github.com/getkirby/kirby" + }, + "funding": [ + { + "url": "https://getkirby.com/buy", + "type": "custom" + } + ], + "install-path": "../../kirby" + }, { "name": "getkirby/composer-installer", "version": "1.2.1", @@ -509,17 +612,17 @@ }, { "name": "phpmailer/phpmailer", - "version": "v7.0.1", - "version_normalized": "7.0.1.0", + "version": "v7.0.2", + "version_normalized": "7.0.2.0", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "360ae911ce62e25e11249f6140fa58939f556ebe" + "reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/360ae911ce62e25e11249f6140fa58939f556ebe", - "reference": "360ae911ce62e25e11249f6140fa58939f556ebe", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088", + "reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088", "shasum": "" }, "require": { @@ -550,7 +653,7 @@ "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" }, - "time": "2025-11-25T07:18:09+00:00", + "time": "2026-01-09T18:02:33+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -582,7 +685,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v7.0.1" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v7.0.2" }, "funding": [ { diff --git a/kirby/vendor/composer/installed.php b/vendor/composer/installed.php similarity index 88% rename from kirby/vendor/composer/installed.php rename to vendor/composer/installed.php index 4fa62dc..f86d5ea 100644 --- a/kirby/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -1,10 +1,10 @@ array( - 'name' => 'getkirby/cms', - 'pretty_version' => '5.2.1', - 'version' => '5.2.1.0', - 'reference' => null, - 'type' => 'kirby-cms', + 'name' => 'getkirby/plainkit', + 'pretty_version' => 'dev-main', + 'version' => 'dev-main', + 'reference' => '581d60f8832fc8d09a28ab688ab2a90ec22161ea', + 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => true, @@ -47,11 +47,11 @@ 'dev_requirement' => false, ), 'getkirby/cms' => array( - 'pretty_version' => '5.2.1', - 'version' => '5.2.1.0', - 'reference' => null, + 'pretty_version' => '5.3.1', + 'version' => '5.3.1.0', + 'reference' => '0ccfcabfbc86fc84127e876c249a75b7a15f1964', 'type' => 'kirby-cms', - 'install_path' => __DIR__ . '/../../', + 'install_path' => __DIR__ . '/../../kirby', 'aliases' => array(), 'dev_requirement' => false, ), @@ -64,6 +64,15 @@ 'aliases' => array(), 'dev_requirement' => false, ), + 'getkirby/plainkit' => array( + 'pretty_version' => 'dev-main', + 'version' => 'dev-main', + 'reference' => '581d60f8832fc8d09a28ab688ab2a90ec22161ea', + 'type' => 'project', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), 'laminas/laminas-escaper' => array( 'pretty_version' => '2.18.0', 'version' => '2.18.0.0', @@ -98,9 +107,9 @@ 'dev_requirement' => false, ), 'phpmailer/phpmailer' => array( - 'pretty_version' => 'v7.0.1', - 'version' => '7.0.1.0', - 'reference' => '360ae911ce62e25e11249f6140fa58939f556ebe', + 'pretty_version' => 'v7.0.2', + 'version' => '7.0.2.0', + 'reference' => 'ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088', 'type' => 'library', 'install_path' => __DIR__ . '/../phpmailer/phpmailer', 'aliases' => array(), diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php new file mode 100644 index 0000000..14bf88d --- /dev/null +++ b/vendor/composer/platform_check.php @@ -0,0 +1,25 @@ += 80200)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.2.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + throw new \RuntimeException( + 'Composer detected issues in your platform: ' . implode(' ', $issues) + ); +} diff --git a/vendor/composer/semver/CHANGELOG.md b/vendor/composer/semver/CHANGELOG.md new file mode 100644 index 0000000..bad46cd --- /dev/null +++ b/vendor/composer/semver/CHANGELOG.md @@ -0,0 +1,229 @@ +# Change Log + +All notable changes to this project will be documented in this file. +This project adheres to [Semantic Versioning](http://semver.org/). + +### [3.4.3] 2024-09-19 + + * Fixed some type annotations + +### [3.4.2] 2024-07-12 + + * Fixed PHP 5.3 syntax error + +### [3.4.1] 2024-07-12 + + * Fixed normalizeStability's return type to enforce valid stabilities + +### [3.4.0] 2023-08-31 + + * Support larger major version numbers (#149) + +### [3.3.2] 2022-04-01 + + * Fixed handling of non-string values (#134) + +### [3.3.1] 2022-03-16 + + * Fixed possible cache key clash in the CompilingMatcher memoization (#132) + +### [3.3.0] 2022-03-15 + + * Improved performance of CompilingMatcher by memoizing more (#131) + * Added CompilingMatcher::clear to clear all memoization caches + +### [3.2.9] 2022-02-04 + + * Revert #129 (Fixed MultiConstraint with MatchAllConstraint) which caused regressions + +### [3.2.8] 2022-02-04 + + * Updates to latest phpstan / CI by @Seldaek in https://github.com/composer/semver/pull/130 + * Fixed MultiConstraint with MatchAllConstraint by @Toflar in https://github.com/composer/semver/pull/129 + +### [3.2.7] 2022-01-04 + + * Fixed: typo in type definition of Intervals class causing issues with Psalm scanning vendors + +### [3.2.6] 2021-10-25 + + * Fixed: type improvements to parseStability + +### [3.2.5] 2021-05-24 + + * Fixed: issue comparing disjunctive MultiConstraints to conjunctive ones (#127) + * Fixed: added complete type information using phpstan annotations + +### [3.2.4] 2020-11-13 + + * Fixed: code clean-up + +### [3.2.3] 2020-11-12 + + * Fixed: constraints in the form of `X || Y, >=Y.1` and other such complex constructs were in some cases being optimized into a more restrictive constraint + +### [3.2.2] 2020-10-14 + + * Fixed: internal code cleanups + +### [3.2.1] 2020-09-27 + + * Fixed: accidental validation of broken constraints combining ^/~ and wildcards, and -dev suffix allowing weird cases + * Fixed: normalization of beta0 and such which was dropping the 0 + +### [3.2.0] 2020-09-09 + + * Added: support for `x || @dev`, not very useful but seen in the wild and failed to validate with 1.5.2/1.6.0 + * Added: support for `foobar-dev` being equal to `dev-foobar`, dev-foobar is the official way to write it but we need to support the other for BC and convenience + +### [3.1.0] 2020-09-08 + + * Added: support for constraints like `^2.x-dev` and `~2.x-dev`, not very useful but seen in the wild and failed to validate with 3.0.1 + * Fixed: invalid aliases will no longer throw, unless explicitly validated by Composer in the root package + +### [3.0.1] 2020-09-08 + + * Fixed: handling of some invalid -dev versions which were seen as valid + +### [3.0.0] 2020-05-26 + + * Break: Renamed `EmptyConstraint`, replace it with `MatchAllConstraint` + * Break: Unlikely to affect anyone but strictly speaking a breaking change, `*.*` and such variants will not match all `dev-*` versions anymore, only `*` does + * Break: ConstraintInterface is now considered internal/private and not meant to be implemented by third parties anymore + * Added `Intervals` class to check if a constraint is a subsets of another one, and allow compacting complex MultiConstraints into simpler ones + * Added `CompilingMatcher` class to speed up constraint matching against simple Constraint instances + * Added `MatchAllConstraint` and `MatchNoneConstraint` which match everything and nothing + * Added more advanced optimization of contiguous constraints inside MultiConstraint + * Added tentative support for PHP 8 + * Fixed ConstraintInterface::matches to be commutative in all cases + +### [2.0.0] 2020-04-21 + + * Break: `dev-master`, `dev-trunk` and `dev-default` now normalize to `dev-master`, `dev-trunk` and `dev-default` instead of `9999999-dev` in 1.x + * Break: Removed the deprecated `AbstractConstraint` + * Added `getUpperBound` and `getLowerBound` to ConstraintInterface. They return `Composer\Semver\Constraint\Bound` instances + * Added `MultiConstraint::create` to create the most-optimal form of ConstraintInterface from an array of constraint strings + +### [1.7.2] 2020-12-03 + + * Fixed: Allow installing on php 8 + +### [1.7.1] 2020-09-27 + + * Fixed: accidental validation of broken constraints combining ^/~ and wildcards, and -dev suffix allowing weird cases + * Fixed: normalization of beta0 and such which was dropping the 0 + +### [1.7.0] 2020-09-09 + + * Added: support for `x || @dev`, not very useful but seen in the wild and failed to validate with 1.5.2/1.6.0 + * Added: support for `foobar-dev` being equal to `dev-foobar`, dev-foobar is the official way to write it but we need to support the other for BC and convenience + +### [1.6.0] 2020-09-08 + + * Added: support for constraints like `^2.x-dev` and `~2.x-dev`, not very useful but seen in the wild and failed to validate with 1.5.2 + * Fixed: invalid aliases will no longer throw, unless explicitly validated by Composer in the root package + +### [1.5.2] 2020-09-08 + + * Fixed: handling of some invalid -dev versions which were seen as valid + * Fixed: some doctypes + +### [1.5.1] 2020-01-13 + + * Fixed: Parsing of aliased version was not validating the alias to be a valid version + +### [1.5.0] 2019-03-19 + + * Added: some support for date versions (e.g. 201903) in `~` operator + * Fixed: support for stabilities in `~` operator was inconsistent + +### [1.4.2] 2016-08-30 + + * Fixed: collapsing of complex constraints lead to buggy constraints + +### [1.4.1] 2016-06-02 + + * Changed: branch-like requirements no longer strip build metadata - [composer/semver#38](https://github.com/composer/semver/pull/38). + +### [1.4.0] 2016-03-30 + + * Added: getters on MultiConstraint - [composer/semver#35](https://github.com/composer/semver/pull/35). + +### [1.3.0] 2016-02-25 + + * Fixed: stability parsing - [composer/composer#1234](https://github.com/composer/composer/issues/4889). + * Changed: collapse contiguous constraints when possible. + +### [1.2.0] 2015-11-10 + + * Changed: allow multiple numerical identifiers in 'pre-release' version part. + * Changed: add more 'v' prefix support. + +### [1.1.0] 2015-11-03 + + * Changed: dropped redundant `test` namespace. + * Changed: minor adjustment in datetime parsing normalization. + * Changed: `ConstraintInterface` relaxed, setPrettyString is not required anymore. + * Changed: `AbstractConstraint` marked deprecated, will be removed in 2.0. + * Changed: `Constraint` is now extensible. + +### [1.0.0] 2015-09-21 + + * Break: `VersionConstraint` renamed to `Constraint`. + * Break: `SpecificConstraint` renamed to `AbstractConstraint`. + * Break: `LinkConstraintInterface` renamed to `ConstraintInterface`. + * Break: `VersionParser::parseNameVersionPairs` was removed. + * Changed: `VersionParser::parseConstraints` allows (but ignores) build metadata now. + * Changed: `VersionParser::parseConstraints` allows (but ignores) prefixing numeric versions with a 'v' now. + * Changed: Fixed namespace(s) of test files. + * Changed: `Comparator::compare` no longer throws `InvalidArgumentException`. + * Changed: `Constraint` now throws `InvalidArgumentException`. + +### [0.1.0] 2015-07-23 + + * Added: `Composer\Semver\Comparator`, various methods to compare versions. + * Added: various documents such as README.md, LICENSE, etc. + * Added: configuration files for Git, Travis, php-cs-fixer, phpunit. + * Break: the following namespaces were renamed: + - Namespace: `Composer\Package\Version` -> `Composer\Semver` + - Namespace: `Composer\Package\LinkConstraint` -> `Composer\Semver\Constraint` + - Namespace: `Composer\Test\Package\Version` -> `Composer\Test\Semver` + - Namespace: `Composer\Test\Package\LinkConstraint` -> `Composer\Test\Semver\Constraint` + * Changed: code style using php-cs-fixer. + +[3.4.3]: https://github.com/composer/semver/compare/3.4.2...3.4.3 +[3.4.2]: https://github.com/composer/semver/compare/3.4.1...3.4.2 +[3.4.1]: https://github.com/composer/semver/compare/3.4.0...3.4.1 +[3.4.0]: https://github.com/composer/semver/compare/3.3.2...3.4.0 +[3.3.2]: https://github.com/composer/semver/compare/3.3.1...3.3.2 +[3.3.1]: https://github.com/composer/semver/compare/3.3.0...3.3.1 +[3.3.0]: https://github.com/composer/semver/compare/3.2.9...3.3.0 +[3.2.9]: https://github.com/composer/semver/compare/3.2.8...3.2.9 +[3.2.8]: https://github.com/composer/semver/compare/3.2.7...3.2.8 +[3.2.7]: https://github.com/composer/semver/compare/3.2.6...3.2.7 +[3.2.6]: https://github.com/composer/semver/compare/3.2.5...3.2.6 +[3.2.5]: https://github.com/composer/semver/compare/3.2.4...3.2.5 +[3.2.4]: https://github.com/composer/semver/compare/3.2.3...3.2.4 +[3.2.3]: https://github.com/composer/semver/compare/3.2.2...3.2.3 +[3.2.2]: https://github.com/composer/semver/compare/3.2.1...3.2.2 +[3.2.1]: https://github.com/composer/semver/compare/3.2.0...3.2.1 +[3.2.0]: https://github.com/composer/semver/compare/3.1.0...3.2.0 +[3.1.0]: https://github.com/composer/semver/compare/3.0.1...3.1.0 +[3.0.1]: https://github.com/composer/semver/compare/3.0.0...3.0.1 +[3.0.0]: https://github.com/composer/semver/compare/2.0.0...3.0.0 +[2.0.0]: https://github.com/composer/semver/compare/1.5.1...2.0.0 +[1.7.2]: https://github.com/composer/semver/compare/1.7.1...1.7.2 +[1.7.1]: https://github.com/composer/semver/compare/1.7.0...1.7.1 +[1.7.0]: https://github.com/composer/semver/compare/1.6.0...1.7.0 +[1.6.0]: https://github.com/composer/semver/compare/1.5.2...1.6.0 +[1.5.2]: https://github.com/composer/semver/compare/1.5.1...1.5.2 +[1.5.1]: https://github.com/composer/semver/compare/1.5.0...1.5.1 +[1.5.0]: https://github.com/composer/semver/compare/1.4.2...1.5.0 +[1.4.2]: https://github.com/composer/semver/compare/1.4.1...1.4.2 +[1.4.1]: https://github.com/composer/semver/compare/1.4.0...1.4.1 +[1.4.0]: https://github.com/composer/semver/compare/1.3.0...1.4.0 +[1.3.0]: https://github.com/composer/semver/compare/1.2.0...1.3.0 +[1.2.0]: https://github.com/composer/semver/compare/1.1.0...1.2.0 +[1.1.0]: https://github.com/composer/semver/compare/1.0.0...1.1.0 +[1.0.0]: https://github.com/composer/semver/compare/0.1.0...1.0.0 +[0.1.0]: https://github.com/composer/semver/compare/5e0b9a4da...0.1.0 diff --git a/kirby/vendor/composer/semver/LICENSE b/vendor/composer/semver/LICENSE similarity index 100% rename from kirby/vendor/composer/semver/LICENSE rename to vendor/composer/semver/LICENSE diff --git a/vendor/composer/semver/README.md b/vendor/composer/semver/README.md new file mode 100644 index 0000000..7677849 --- /dev/null +++ b/vendor/composer/semver/README.md @@ -0,0 +1,99 @@ +composer/semver +=============== + +Semver (Semantic Versioning) library that offers utilities, version constraint parsing and validation. + +Originally written as part of [composer/composer](https://github.com/composer/composer), +now extracted and made available as a stand-alone library. + +[![Continuous Integration](https://github.com/composer/semver/actions/workflows/continuous-integration.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/continuous-integration.yml) +[![PHP Lint](https://github.com/composer/semver/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/lint.yml) +[![PHPStan](https://github.com/composer/semver/actions/workflows/phpstan.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/phpstan.yml) + +Installation +------------ + +Install the latest version with: + +```bash +composer require composer/semver +``` + + +Requirements +------------ + +* PHP 5.3.2 is required but using the latest version of PHP is highly recommended. + + +Version Comparison +------------------ + +For details on how versions are compared, refer to the [Versions](https://getcomposer.org/doc/articles/versions.md) +article in the documentation section of the [getcomposer.org](https://getcomposer.org) website. + + +Basic usage +----------- + +### Comparator + +The [`Composer\Semver\Comparator`](https://github.com/composer/semver/blob/main/src/Comparator.php) class provides the following methods for comparing versions: + +* greaterThan($v1, $v2) +* greaterThanOrEqualTo($v1, $v2) +* lessThan($v1, $v2) +* lessThanOrEqualTo($v1, $v2) +* equalTo($v1, $v2) +* notEqualTo($v1, $v2) + +Each function takes two version strings as arguments and returns a boolean. For example: + +```php +use Composer\Semver\Comparator; + +Comparator::greaterThan('1.25.0', '1.24.0'); // 1.25.0 > 1.24.0 +``` + +### Semver + +The [`Composer\Semver\Semver`](https://github.com/composer/semver/blob/main/src/Semver.php) class provides the following methods: + +* satisfies($version, $constraints) +* satisfiedBy(array $versions, $constraint) +* sort($versions) +* rsort($versions) + +### Intervals + +The [`Composer\Semver\Intervals`](https://github.com/composer/semver/blob/main/src/Intervals.php) static class provides +a few utilities to work with complex constraints or read version intervals from a constraint: + +```php +use Composer\Semver\Intervals; + +// Checks whether $candidate is a subset of $constraint +Intervals::isSubsetOf(ConstraintInterface $candidate, ConstraintInterface $constraint); + +// Checks whether $a and $b have any intersection, equivalent to $a->matches($b) +Intervals::haveIntersections(ConstraintInterface $a, ConstraintInterface $b); + +// Optimizes a complex multi constraint by merging all intervals down to the smallest +// possible multi constraint. The drawbacks are this is not very fast, and the resulting +// multi constraint will have no human readable prettyConstraint configured on it +Intervals::compactConstraint(ConstraintInterface $constraint); + +// Creates an array of numeric intervals and branch constraints representing a given constraint +Intervals::get(ConstraintInterface $constraint); + +// Clears the memoization cache when you are done processing constraints +Intervals::clear() +``` + +See the class docblocks for more details. + + +License +------- + +composer/semver is licensed under the MIT License, see the LICENSE file for details. diff --git a/kirby/vendor/composer/semver/composer.json b/vendor/composer/semver/composer.json similarity index 100% rename from kirby/vendor/composer/semver/composer.json rename to vendor/composer/semver/composer.json diff --git a/kirby/vendor/composer/semver/src/Comparator.php b/vendor/composer/semver/src/Comparator.php similarity index 100% rename from kirby/vendor/composer/semver/src/Comparator.php rename to vendor/composer/semver/src/Comparator.php diff --git a/kirby/vendor/composer/semver/src/CompilingMatcher.php b/vendor/composer/semver/src/CompilingMatcher.php similarity index 100% rename from kirby/vendor/composer/semver/src/CompilingMatcher.php rename to vendor/composer/semver/src/CompilingMatcher.php diff --git a/kirby/vendor/composer/semver/src/Constraint/Bound.php b/vendor/composer/semver/src/Constraint/Bound.php similarity index 100% rename from kirby/vendor/composer/semver/src/Constraint/Bound.php rename to vendor/composer/semver/src/Constraint/Bound.php diff --git a/kirby/vendor/composer/semver/src/Constraint/Constraint.php b/vendor/composer/semver/src/Constraint/Constraint.php similarity index 100% rename from kirby/vendor/composer/semver/src/Constraint/Constraint.php rename to vendor/composer/semver/src/Constraint/Constraint.php diff --git a/kirby/vendor/composer/semver/src/Constraint/ConstraintInterface.php b/vendor/composer/semver/src/Constraint/ConstraintInterface.php similarity index 100% rename from kirby/vendor/composer/semver/src/Constraint/ConstraintInterface.php rename to vendor/composer/semver/src/Constraint/ConstraintInterface.php diff --git a/kirby/vendor/composer/semver/src/Constraint/MatchAllConstraint.php b/vendor/composer/semver/src/Constraint/MatchAllConstraint.php similarity index 100% rename from kirby/vendor/composer/semver/src/Constraint/MatchAllConstraint.php rename to vendor/composer/semver/src/Constraint/MatchAllConstraint.php diff --git a/kirby/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php b/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php similarity index 100% rename from kirby/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php rename to vendor/composer/semver/src/Constraint/MatchNoneConstraint.php diff --git a/kirby/vendor/composer/semver/src/Constraint/MultiConstraint.php b/vendor/composer/semver/src/Constraint/MultiConstraint.php similarity index 100% rename from kirby/vendor/composer/semver/src/Constraint/MultiConstraint.php rename to vendor/composer/semver/src/Constraint/MultiConstraint.php diff --git a/kirby/vendor/composer/semver/src/Interval.php b/vendor/composer/semver/src/Interval.php similarity index 100% rename from kirby/vendor/composer/semver/src/Interval.php rename to vendor/composer/semver/src/Interval.php diff --git a/kirby/vendor/composer/semver/src/Intervals.php b/vendor/composer/semver/src/Intervals.php similarity index 100% rename from kirby/vendor/composer/semver/src/Intervals.php rename to vendor/composer/semver/src/Intervals.php diff --git a/kirby/vendor/composer/semver/src/Semver.php b/vendor/composer/semver/src/Semver.php similarity index 100% rename from kirby/vendor/composer/semver/src/Semver.php rename to vendor/composer/semver/src/Semver.php diff --git a/kirby/vendor/composer/semver/src/VersionParser.php b/vendor/composer/semver/src/VersionParser.php similarity index 100% rename from kirby/vendor/composer/semver/src/VersionParser.php rename to vendor/composer/semver/src/VersionParser.php diff --git a/vendor/filp/whoops/.mailmap b/vendor/filp/whoops/.mailmap new file mode 100644 index 0000000..13ac5d7 --- /dev/null +++ b/vendor/filp/whoops/.mailmap @@ -0,0 +1,2 @@ +Denis Sokolov +Filipe Dobreira diff --git a/vendor/filp/whoops/CHANGELOG.md b/vendor/filp/whoops/CHANGELOG.md new file mode 100644 index 0000000..5d43412 --- /dev/null +++ b/vendor/filp/whoops/CHANGELOG.md @@ -0,0 +1,168 @@ +# CHANGELOG + +## v2.18.0 + +* Line numbers are now clickable. + +## v2.17.0 + +* Support cursor IDE. + +## v2.16.0 + +* Support PHP `8.4`. +* Drop support for PHP older than `7.1`. + +## v2.15.4 + +* Improve link color in comments. + +## v2.15.3 + +* Improve performance of the syntax highlighting (#758). + +## v2.15.2 + +* Fixed missing code highlight, which additionally led to issue with switching tabs, between application and all frames ([#747](https://github.com/filp/whoops/issues/747)). + +## v2.15.1 + +* Fixed bug with PrettyPageHandler "*Calling `getFrameFilters` method on null*" ([#751](https://github.com/filp/whoops/pull/751)). + +## v2.15.0 + +* Add addFrameFilter ([#749](https://github.com/filp/whoops/pull/749)) + +## v2.14.6 + +* Upgraded prismJS to version `1.29.0` due to security issue ([#741][i741]). + +[i741]: https://github.com/filp/whoops/pull/741 + +## v2.14.5 + +* Allow `ArrayAccess` on super globals. + +## v2.14.4 + +* Fix PHP `5.5` support. +* Allow to use psr/log `2` or `3`. + +## v2.14.3 + +* Support PHP `8.1`. + +## v2.14.1 + +* Fix syntax highlighting scrolling too far. +* Improve the way we detect xdebug linkformat. + +## v2.14.0 + +* Switched syntax highlighting to Prism.js. + +Avoids licensing issues with prettify, and uses a maintained, modern project. + +## v2.13.0 + +* Add Netbeans editor. + +## v2.12.1 + +* Avoid redirecting away from an error. + +## v2.12.0 + +* Hide non-string values in super globals when requested. + +## v2.11.0 + +* Customize exit code. + +## v2.10.0 + +* Better chaining on handler classes. + +## v2.9.2 + +* Fix copy button styles. + +## v2.9.1 + +* Fix xdebug function crash on PHP `8`. + +## v2.9.0 + +* `JsonResponseHandler` includes the exception code. + +## v2.8.0 + +* Support PHP 8. + +## v2.7.3 + +* `PrettyPageHandler` functionality to hide superglobal keys has a clearer name +(`hideSuperglobalKey`). + +## v2.7.2 + +* `PrettyPageHandler` now accepts custom js files. +* `PrettyPageHandler` and `templateHelper` is now accessible through inheritance. + +## v2.7.1 + +* Fix a PHP warning in some cases with anonymous classes. + +## v2.7.0 + +* Added `removeFirstHandler` and `removeLastHandler`. + +## v2.6.0 + +* Fix 2.4.0 `pushHandler` changing the order of handlers. + +## v2.5.1 + +* Fix error messaging in a rare case. + +## v2.5.0 + +* Automatically configure xdebug if available. + +## v2.4.1 + +* Try harder to close all output buffers. + +## v2.4.0 + +* Allow to prepend and append handlers. + +## v2.3.2 + +* Various fixes from the community. + +## v2.3.1 + +* Prevent exception in Whoops when caught exception frame is not related to real file. + +## v2.3.0 + +* Show previous exception messages. + +## v2.2.0 + +* Support PHP `7.2`. + +## v2.1.0 + +* Add a `SystemFacade` to allow clients to override Whoops behavior. +* Show frame arguments in `PrettyPageHandler`. +* Highlight the line with the error. +* Add icons to search on Google and Stack Overflow. + +## v2.0.0 + +Backwards compatibility breaking changes: + +* `Run` class is now `final`. If you inherited from `Run`, please now instead use a custom `SystemFacade` injected into the `Run` constructor, or contribute your changes to our core. +* PHP < 5.5 support dropped. diff --git a/kirby/vendor/filp/whoops/LICENSE.md b/vendor/filp/whoops/LICENSE.md similarity index 100% rename from kirby/vendor/filp/whoops/LICENSE.md rename to vendor/filp/whoops/LICENSE.md diff --git a/vendor/filp/whoops/SECURITY.md b/vendor/filp/whoops/SECURITY.md new file mode 100644 index 0000000..edfd946 --- /dev/null +++ b/vendor/filp/whoops/SECURITY.md @@ -0,0 +1,12 @@ +# Security Policy + +## Supported Versions + +Only the latest released version of Whoops is supported. +To facilitate upgrades we almost never make backwards-incompatible changes. + +## Reporting a Vulnerability + +Please report vulnerabilities over email, by sending an email to `denis` at `sokolov` dot `cc`. + + diff --git a/kirby/vendor/filp/whoops/composer.json b/vendor/filp/whoops/composer.json similarity index 100% rename from kirby/vendor/filp/whoops/composer.json rename to vendor/filp/whoops/composer.json diff --git a/kirby/vendor/filp/whoops/src/Whoops/Exception/ErrorException.php b/vendor/filp/whoops/src/Whoops/Exception/ErrorException.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Exception/ErrorException.php rename to vendor/filp/whoops/src/Whoops/Exception/ErrorException.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Exception/Formatter.php b/vendor/filp/whoops/src/Whoops/Exception/Formatter.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Exception/Formatter.php rename to vendor/filp/whoops/src/Whoops/Exception/Formatter.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Exception/Frame.php b/vendor/filp/whoops/src/Whoops/Exception/Frame.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Exception/Frame.php rename to vendor/filp/whoops/src/Whoops/Exception/Frame.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php b/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php rename to vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Exception/Inspector.php b/vendor/filp/whoops/src/Whoops/Exception/Inspector.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Exception/Inspector.php rename to vendor/filp/whoops/src/Whoops/Exception/Inspector.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php b/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php rename to vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Handler/Handler.php b/vendor/filp/whoops/src/Whoops/Handler/Handler.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Handler/Handler.php rename to vendor/filp/whoops/src/Whoops/Handler/Handler.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php b/vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php rename to vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php b/vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php rename to vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php b/vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php rename to vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php b/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php rename to vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php b/vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php rename to vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Inspector/InspectorFactory.php b/vendor/filp/whoops/src/Whoops/Inspector/InspectorFactory.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Inspector/InspectorFactory.php rename to vendor/filp/whoops/src/Whoops/Inspector/InspectorFactory.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Inspector/InspectorFactoryInterface.php b/vendor/filp/whoops/src/Whoops/Inspector/InspectorFactoryInterface.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Inspector/InspectorFactoryInterface.php rename to vendor/filp/whoops/src/Whoops/Inspector/InspectorFactoryInterface.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Inspector/InspectorInterface.php b/vendor/filp/whoops/src/Whoops/Inspector/InspectorInterface.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Inspector/InspectorInterface.php rename to vendor/filp/whoops/src/Whoops/Inspector/InspectorInterface.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/css/prism.css b/vendor/filp/whoops/src/Whoops/Resources/css/prism.css similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/css/prism.css rename to vendor/filp/whoops/src/Whoops/Resources/css/prism.css diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css b/vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css rename to vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js b/vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js rename to vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/js/prism.js b/vendor/filp/whoops/src/Whoops/Resources/js/prism.js similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/js/prism.js rename to vendor/filp/whoops/src/Whoops/Resources/js/prism.js diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/js/whoops.base.js b/vendor/filp/whoops/src/Whoops/Resources/js/whoops.base.js similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/js/whoops.base.js rename to vendor/filp/whoops/src/Whoops/Resources/js/whoops.base.js diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js b/vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js rename to vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/frames_container.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frames_container.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/frames_container.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/frames_container.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/header.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/header.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/header.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/header.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php rename to vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Run.php b/vendor/filp/whoops/src/Whoops/Run.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Run.php rename to vendor/filp/whoops/src/Whoops/Run.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/RunInterface.php b/vendor/filp/whoops/src/Whoops/RunInterface.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/RunInterface.php rename to vendor/filp/whoops/src/Whoops/RunInterface.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php b/vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php rename to vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Util/Misc.php b/vendor/filp/whoops/src/Whoops/Util/Misc.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Util/Misc.php rename to vendor/filp/whoops/src/Whoops/Util/Misc.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Util/SystemFacade.php b/vendor/filp/whoops/src/Whoops/Util/SystemFacade.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Util/SystemFacade.php rename to vendor/filp/whoops/src/Whoops/Util/SystemFacade.php diff --git a/kirby/vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php b/vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php similarity index 100% rename from kirby/vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php rename to vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php diff --git a/vendor/getkirby/composer-installer/composer.json b/vendor/getkirby/composer-installer/composer.json new file mode 100644 index 0000000..e817b35 --- /dev/null +++ b/vendor/getkirby/composer-installer/composer.json @@ -0,0 +1,30 @@ +{ + "name": "getkirby/composer-installer", + "description": "Kirby's custom Composer installer for the Kirby CMS and for Kirby plugins", + "type": "composer-plugin", + "license": "MIT", + "homepage": "https://getkirby.com", + "require": { + "composer-plugin-api": "^1.0 || ^2.0" + }, + "require-dev": { + "composer/composer": "^1.8 || ^2.0" + }, + "autoload": { + "psr-4": { + "Kirby\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Kirby\\": "tests/" + } + }, + "scripts": { + "fix": "php-cs-fixer fix --config .php_cs", + "test": "--stderr --coverage-html=tests/coverage" + }, + "extra": { + "class": "Kirby\\ComposerInstaller\\Plugin" + } +} diff --git a/vendor/getkirby/composer-installer/composer.lock b/vendor/getkirby/composer-installer/composer.lock new file mode 100644 index 0000000..8461817 --- /dev/null +++ b/vendor/getkirby/composer-installer/composer.lock @@ -0,0 +1,1680 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "981db668fb0d4f37f7b64daf03b5f131", + "packages": [], + "packages-dev": [ + { + "name": "composer/ca-bundle", + "version": "1.2.8", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "8a7ecad675253e4654ea05505233285377405215" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8a7ecad675253e4654ea05505233285377405215", + "reference": "8a7ecad675253e4654ea05505233285377405215", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", + "psr/log": "^1.0", + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.2.8" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-08-23T12:54:47+00:00" + }, + { + "name": "composer/composer", + "version": "2.0.8", + "source": { + "type": "git", + "url": "https://github.com/composer/composer.git", + "reference": "62139b2806178adb979d76bd3437534a1a9fd490" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/composer/zipball/62139b2806178adb979d76bd3437534a1a9fd490", + "reference": "62139b2806178adb979d76bd3437534a1a9fd490", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "composer/semver": "^3.0", + "composer/spdx-licenses": "^1.2", + "composer/xdebug-handler": "^1.1", + "justinrainbow/json-schema": "^5.2.10", + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0", + "react/promise": "^1.2 || ^2.7", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.0", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0" + }, + "require-dev": { + "phpspec/prophecy": "^1.10", + "symfony/phpunit-bridge": "^4.2 || ^5.0" + }, + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" + }, + "bin": [ + "bin/composer" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\": "src/Composer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "https://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", + "keywords": [ + "autoload", + "dependency", + "package" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/composer/issues", + "source": "https://github.com/composer/composer/tree/2.0.8" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-12-03T16:20:39+00:00" + }, + { + "name": "composer/semver", + "version": "3.2.4", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.2.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:59:24+00:00" + }, + { + "name": "composer/spdx-licenses", + "version": "1.5.5", + "source": { + "type": "git", + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "de30328a7af8680efdc03e396aad24befd513200" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/de30328a7af8680efdc03e396aad24befd513200", + "reference": "de30328a7af8680efdc03e396aad24befd513200", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Spdx\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "SPDX licenses list and validation library.", + "keywords": [ + "license", + "spdx", + "validator" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/spdx-licenses/issues", + "source": "https://github.com/composer/spdx-licenses/tree/1.5.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-12-03T16:04:16+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "f28d44c286812c714741478d968104c5e604a1d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", + "reference": "f28d44c286812c714741478d968104c5e604a1d4", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/1.4.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:04:11+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "5.2.10", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "support": { + "issues": "https://github.com/justinrainbow/json-schema/issues", + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.10" + }, + "time": "2020-05-27T16:41:55+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/master" + }, + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/log", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.3" + }, + "time": "2020-03-23T09:12:05+00:00" + }, + { + "name": "react/promise", + "version": "v2.8.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise.git", + "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4", + "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com" + } + ], + "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v2.8.0" + }, + "time": "2020-05-12T15:16:56+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.8.3", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "support": { + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], + "time": "2020-11-11T09:19:24+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8674b1d84ffb47cc59a101f5d5a3b61e87d23796", + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phar" + ], + "support": { + "issues": "https://github.com/Seldaek/phar-utils/issues", + "source": "https://github.com/Seldaek/phar-utils/tree/master" + }, + "time": "2020-07-07T18:42:57+00:00" + }, + { + "name": "symfony/console", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "47c02526c532fb381374dab26df05e7313978976" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/47c02526c532fb381374dab26df05e7313978976", + "reference": "47c02526c532fb381374dab26df05e7313978976", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" + }, + "conflict": { + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-12-18T08:03:05+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-11-30T17:05:38+00:00" + }, + { + "name": "symfony/finder", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/0b9231a5922fd7287ba5b411893c0ecd2733e5ba", + "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-12-08T17:02:38+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", + "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "727d1096295d807c309fb01a851577302394c897" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897", + "reference": "727d1096295d807c309fb01a851577302394c897", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/process", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/bd8815b8b6705298beaa384f04fabd459c10bedd", + "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-12-08T17:03:37+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/master" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" + }, + { + "name": "symfony/string", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", + "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "files": [ + "Resources/functions.php" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony String component", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v5.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-12-05T07:33:16+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "composer-plugin-api": "^1.0 || ^2.0" + }, + "platform-dev": [], + "plugin-api-version": "2.0.0" +} diff --git a/vendor/getkirby/composer-installer/readme.md b/vendor/getkirby/composer-installer/readme.md new file mode 100644 index 0000000..c5dab97 --- /dev/null +++ b/vendor/getkirby/composer-installer/readme.md @@ -0,0 +1,104 @@ +# Kirby Composer Installer + +[![CI Status](https://flat.badgen.net/github/checks/getkirby/composer-installer/master)](https://github.com/getkirby/composer-installer/actions?query=workflow%3ACI) +[![Coverage Status](https://flat.badgen.net/coveralls/c/github/getkirby/composer-installer)](https://coveralls.io/github/getkirby/composer-installer) + +This is Kirby's custom [Composer installer](https://getcomposer.org/doc/articles/custom-installers.md) for the Kirby CMS. +It is responsible for automatically choosing the correct installation paths if you install the CMS via Composer. + +It can also be used to automatically install Kirby plugins to the `site/plugins` directory. + +## Installing the CMS + +### Default configuration + +If you `require` the `getkirby/cms` package in your own `composer.json`, there is nothing else you need to do: + +```js +{ + "require": { + "getkirby/cms": "^3.0" + } +} +``` + +Kirby's Composer installer (this repo) will run automatically and will install the CMS to the `kirby` directory. + +### Custom installation path + +You might want to use a different installation path. The path can be configured like this in your `composer.json`: + +```js +{ + "require": { + "getkirby/cms": "^3.0" + }, + "extra": { + "kirby-cms-path": "kirby" // change this to your custom path + } +} +``` + +### Disable the installer for the CMS + +If you prefer to have the CMS installed to the `vendor` directory, you can disable the custom path entirely: + +```js +{ + "require": { + "getkirby/cms": "^3.0" + }, + "extra": { + "kirby-cms-path": false + } +} +``` + +Please note that you will need to modify your site's `index.php` to load the `vendor/autoload.php` file instead of Kirby's `bootstrap.php`. + +## Installing plugins + +### Support in published plugins + +Plugins need to require this installer as a Composer dependency to make use of the automatic installation to the `site/plugins` directory. + +You can find out more about this in our [plugin documentation](https://getkirby.com/docs/guide/plugins/plugin-setup-basic). + +### Usage for plugin users + +As a user of Kirby plugins that support this installer, you only need to `require` the plugins in your site's `composer.json`: + +```js +{ + "require": { + "getkirby/cms": "^3.0", + "superwoman/superplugin": "^1.0" + } +} +``` + +The installer (this repo) will run automatically, as the plugin dev added it to the plugin's `composer.json`. + +### Custom installation path + +If your `site/plugins` directory is at a custom path, you can configure the installation path like this in your `composer.json`: + +```js +{ + "require": { + "getkirby/cms": "^3.0", + "superwoman/superplugin": "^1.0" + }, + "extra": { + "kirby-plugin-path": "site/plugins" // change this to your custom path + } +} +``` + +## License + + + +## Author + +Lukas Bestle diff --git a/vendor/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php b/vendor/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php new file mode 100644 index 0000000..5dc9481 --- /dev/null +++ b/vendor/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php @@ -0,0 +1,64 @@ + + * @link https://getkirby.com + * @copyright Bastian Allgeier GmbH + * @license https://opensource.org/licenses/MIT + */ +class CmsInstaller extends Installer +{ + /** + * Decides if the installer supports the given type + * + * @param string $packageType + * @return bool + */ + public function supports($packageType): bool + { + return $packageType === 'kirby-cms'; + } + + /** + * Returns the installation path of a package + * + * @param \Composer\Package\PackageInterface $package + * @return string + */ + public function getInstallPath(PackageInterface $package): string + { + // get the extra configuration of the top-level package + if ($rootPackage = $this->composer->getPackage()) { + $extra = $rootPackage->getExtra(); + } else { + $extra = []; + } + + // use path from configuration, otherwise fall back to default + if (isset($extra['kirby-cms-path']) === true) { + $path = $extra['kirby-cms-path']; + } else { + $path = 'kirby'; + } + + // if explicitly set to something invalid (e.g. `false`), install to vendor dir + if (is_string($path) !== true) { + return parent::getInstallPath($package); + } + + // don't allow unsafe directories + $vendorDir = $this->composer->getConfig()->get('vendor-dir', Config::RELATIVE_PATHS) ?? 'vendor'; + if ($path === $vendorDir || $path === '.') { + throw new InvalidArgumentException('The path ' . $path . ' is an unsafe installation directory for ' . $package->getPrettyName() . '.'); + } + + return $path; + } +} diff --git a/vendor/getkirby/composer-installer/src/ComposerInstaller/Installer.php b/vendor/getkirby/composer-installer/src/ComposerInstaller/Installer.php new file mode 100644 index 0000000..34371dc --- /dev/null +++ b/vendor/getkirby/composer-installer/src/ComposerInstaller/Installer.php @@ -0,0 +1,105 @@ + + * @link https://getkirby.com + * @copyright Bastian Allgeier GmbH + * @license https://opensource.org/licenses/MIT + */ +class Installer extends LibraryInstaller +{ + /** + * Decides if the installer supports the given type + * + * @param string $packageType + * @return bool + */ + public function supports($packageType): bool + { + throw new RuntimeException('This method needs to be overridden.'); // @codeCoverageIgnore + } + + /** + * Installs a specific package + * + * @param \Composer\Repository\InstalledRepositoryInterface $repo Repository in which to check + * @param \Composer\Package\PackageInterface $package Package instance to install + * @return \React\Promise\PromiseInterface|null + */ + public function install(InstalledRepositoryInterface $repo, PackageInterface $package) + { + // first install the package normally... + $promise = parent::install($repo, $package); + + // ...then run custom code + $postInstall = function () use ($package): void { + $this->postInstall($package); + }; + + // Composer 2 in async mode + if ($promise instanceof PromiseInterface) { + return $promise->then($postInstall); + } + + // Composer 1 or Composer 2 without async + $postInstall(); + } + + /** + * Updates a specific package + * + * @param \Composer\Repository\InstalledRepositoryInterface $repo Repository in which to check + * @param \Composer\Package\PackageInterface $initial Already installed package version + * @param \Composer\Package\PackageInterface $target Updated version + * @return \React\Promise\PromiseInterface|null + * + * @throws \InvalidArgumentException if $initial package is not installed + */ + public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target) + { + // first update the package normally... + $promise = parent::update($repo, $initial, $target); + + // ...then run custom code + $postInstall = function () use ($target): void { + $this->postInstall($target); + }; + + // Composer 2 in async mode + if ($promise instanceof PromiseInterface) { + return $promise->then($postInstall); + } + + // Composer 1 or Composer 2 without async + $postInstall(); + } + + /** + * Custom handler that will be called after each package + * installation or update + * + * @param \Composer\Package\PackageInterface $package + * @return void + */ + protected function postInstall(PackageInterface $package) + { + // remove the package's `vendor` directory to avoid duplicated autoloader and vendor code + $packageVendorDir = $this->getInstallPath($package) . '/vendor'; + if (is_dir($packageVendorDir) === true) { + $success = $this->filesystem->removeDirectory($packageVendorDir); + + if ($success !== true) { + throw new RuntimeException('Could not completely delete ' . $packageVendorDir . ', aborting.'); // @codeCoverageIgnore + } + } + } +} diff --git a/vendor/getkirby/composer-installer/src/ComposerInstaller/Plugin.php b/vendor/getkirby/composer-installer/src/ComposerInstaller/Plugin.php new file mode 100644 index 0000000..033cbc2 --- /dev/null +++ b/vendor/getkirby/composer-installer/src/ComposerInstaller/Plugin.php @@ -0,0 +1,59 @@ + + * @link https://getkirby.com + * @copyright Bastian Allgeier GmbH + * @license https://opensource.org/licenses/MIT + */ +class Plugin implements PluginInterface +{ + /** + * Apply plugin modifications to Composer + * + * @param \Composer\Composer $composer + * @param \Composer\IO\IOInterface $io + * @return void + */ + public function activate(Composer $composer, IOInterface $io): void + { + $installationManager = $composer->getInstallationManager(); + $installationManager->addInstaller(new CmsInstaller($io, $composer)); + $installationManager->addInstaller(new PluginInstaller($io, $composer)); + } + + /** + * Remove any hooks from Composer + * + * @codeCoverageIgnore + * + * @param \Composer\Composer $composer + * @param \Composer\IO\IOInterface $io + * @return void + */ + public function deactivate(Composer $composer, IOInterface $io): void + { + // nothing to do + } + + /** + * Prepare the plugin to be uninstalled + * + * @codeCoverageIgnore + * + * @param Composer $composer + * @param IOInterface $io + * @return void + */ + public function uninstall(Composer $composer, IOInterface $io): void + { + // nothing to do + } +} diff --git a/vendor/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php b/vendor/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php new file mode 100644 index 0000000..ccdd188 --- /dev/null +++ b/vendor/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php @@ -0,0 +1,112 @@ + + * @link https://getkirby.com + * @copyright Bastian Allgeier GmbH + * @license https://opensource.org/licenses/MIT + */ +class PluginInstaller extends Installer +{ + /** + * Decides if the installer supports the given type + * + * @param string $packageType + * @return bool + */ + public function supports($packageType): bool + { + return $packageType === 'kirby-plugin'; + } + + /** + * Returns the installation path of a package + * + * @param \Composer\Package\PackageInterface $package + * @return string path + */ + public function getInstallPath(PackageInterface $package): string + { + // place into `vendor` directory as usual if Pluginkit is not supported + if ($this->supportsPluginkit($package) !== true) { + return parent::getInstallPath($package); + } + + // get the extra configuration of the top-level package + if ($rootPackage = $this->composer->getPackage()) { + $extra = $rootPackage->getExtra(); + } else { + $extra = []; + } + + // use base path from configuration, otherwise fall back to default + $basePath = $extra['kirby-plugin-path'] ?? 'site/plugins'; + + if (is_string($basePath) !== true) { + throw new InvalidArgumentException('Invalid "kirby-plugin-path" option'); + } + + // determine the plugin name from its package name; + // can be overridden in the plugin's `composer.json` + $prettyName = $package->getPrettyName(); + $pluginExtra = $package->getExtra(); + if (empty($pluginExtra['installer-name']) === false) { + $name = $pluginExtra['installer-name']; + + if (is_string($name) !== true) { + throw new InvalidArgumentException('Invalid "installer-name" option in plugin ' . $prettyName); + } + } elseif (strpos($prettyName, '/') !== false) { + // use name after the slash + $name = explode('/', $prettyName)[1]; + } else { + $name = $prettyName; + } + + // build destination path from base path and plugin name + return $basePath . '/' . $name; + } + + /** + * Custom handler that will be called after each package + * installation or update + * + * @param \Composer\Package\PackageInterface $package + * @return void + */ + protected function postInstall(PackageInterface $package): void + { + // only continue if Pluginkit is supported + if ($this->supportsPluginkit($package) !== true) { + return; + } + + parent::postInstall($package); + } + + /** + * Checks if the package has explicitly required this installer; + * otherwise (if the Pluginkit is not yet supported by the plugin) + * the installer will fall back to the behavior of the LibraryInstaller + * + * @param \Composer\Package\PackageInterface $package + * @return bool + */ + protected function supportsPluginkit(PackageInterface $package): bool + { + foreach ($package->getRequires() as $link) { + if ($link->getTarget() === 'getkirby/composer-installer') { + return true; + } + } + + // no required package is the installer + return false; + } +} diff --git a/kirby/vendor/laminas/laminas-escaper/COPYRIGHT.md b/vendor/laminas/laminas-escaper/COPYRIGHT.md similarity index 100% rename from kirby/vendor/laminas/laminas-escaper/COPYRIGHT.md rename to vendor/laminas/laminas-escaper/COPYRIGHT.md diff --git a/kirby/vendor/laminas/laminas-escaper/LICENSE.md b/vendor/laminas/laminas-escaper/LICENSE.md similarity index 100% rename from kirby/vendor/laminas/laminas-escaper/LICENSE.md rename to vendor/laminas/laminas-escaper/LICENSE.md diff --git a/vendor/laminas/laminas-escaper/README.md b/vendor/laminas/laminas-escaper/README.md new file mode 100644 index 0000000..2383208 --- /dev/null +++ b/vendor/laminas/laminas-escaper/README.md @@ -0,0 +1,43 @@ +# laminas-escaper + +[![Build Status](https://github.com/laminas/laminas-escaper/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/laminas/laminas-escaper/actions/workflows/continuous-integration.yml) + +> ## 🇷🇺 Русским гражданам +> +> Мы, участники Laminas, родились и живем в разных странах. У многих из нас есть друзья, родственники и коллеги как в России, так и в Украине. Некоторые из нас родились в России. Некоторые из нас живут в России. У некоторых бабушки и дедушки сражались с фашистами во Второй мировой войне. Здесь никто не поддерживает фашизм. +> +> У одного из нас есть украинская родственница, которая спаслась из дома вместе с сыном. Поезд задержался из-за бомбежки на дороге впереди. У нас есть друзья, которые прячутся в бомбоубежищах. Мы с тревогой ждем весточки от них после воздушных налетов, которые беспорядочно наносят удары и попадают по больницам, школам, детским садам и домам. Мы не берем это из каких-либо СМИ. Мы наблюдаем это напрямую. +> +> Вы доверяете нам достаточно, чтоб использовать наши программы, и мы просим вас довериться нам вновь. Мы нуждаемся в помощи. Выходите и протестуйте против этой бесполезной войны. Остановите кровопролитие. Скажите "Нет войне!" +> +> ## 🇺🇸 To Citizens of Russia +> +> We at Laminas come from all over the world. Many of us have friends, family and colleagues in both Russia and Ukraine. Some of us were born in Russia. Some of us currently live in Russia. Some have grandparents who fought Nazis in World War II. Nobody here supports fascism. +> +> One team member has a Ukrainian relative who fled her home with her son. The train was delayed due to bombing on the road ahead. We have friends who are hiding in bomb shelters. We anxiously follow up on them after the air raids, which indiscriminately fire at hospitals, schools, kindergartens and houses. We're not taking this from any media. These are our actual experiences. +> +> You trust us enough to use our software. We ask that you trust us to say the truth on this. We need your help. Go out and protest this unnecessary war. Stop the bloodshed. Say "stop the war!" + +The OWASP Top 10 web security risks study lists Cross-Site Scripting (XSS) in +second place. PHP’s sole functionality against XSS is limited to two functions +of which one is commonly misapplied. Thus, the laminas-escaper component was written. +It offers developers a way to escape output and defend from XSS and related +vulnerabilities by introducing contextual escaping based on peer-reviewed rules. + +## Installation + +Run the following to install this library: + +```bash +$ composer require laminas/laminas-escaper +``` + +## Documentation + +Browse the documentation online at https://docs.laminas.dev/laminas-escaper/ + +## Support + +* [Issues](https://github.com/laminas/laminas-escaper/issues/) +* [Chat](https://laminas.dev/chat/) +* [Forum](https://discourse.laminas.dev/) diff --git a/kirby/vendor/laminas/laminas-escaper/composer.json b/vendor/laminas/laminas-escaper/composer.json similarity index 100% rename from kirby/vendor/laminas/laminas-escaper/composer.json rename to vendor/laminas/laminas-escaper/composer.json diff --git a/kirby/vendor/laminas/laminas-escaper/src/Escaper.php b/vendor/laminas/laminas-escaper/src/Escaper.php similarity index 100% rename from kirby/vendor/laminas/laminas-escaper/src/Escaper.php rename to vendor/laminas/laminas-escaper/src/Escaper.php diff --git a/kirby/vendor/laminas/laminas-escaper/src/EscaperInterface.php b/vendor/laminas/laminas-escaper/src/EscaperInterface.php similarity index 100% rename from kirby/vendor/laminas/laminas-escaper/src/EscaperInterface.php rename to vendor/laminas/laminas-escaper/src/EscaperInterface.php diff --git a/kirby/vendor/laminas/laminas-escaper/src/Exception/ExceptionInterface.php b/vendor/laminas/laminas-escaper/src/Exception/ExceptionInterface.php similarity index 100% rename from kirby/vendor/laminas/laminas-escaper/src/Exception/ExceptionInterface.php rename to vendor/laminas/laminas-escaper/src/Exception/ExceptionInterface.php diff --git a/kirby/vendor/laminas/laminas-escaper/src/Exception/InvalidArgumentException.php b/vendor/laminas/laminas-escaper/src/Exception/InvalidArgumentException.php similarity index 100% rename from kirby/vendor/laminas/laminas-escaper/src/Exception/InvalidArgumentException.php rename to vendor/laminas/laminas-escaper/src/Exception/InvalidArgumentException.php diff --git a/kirby/vendor/laminas/laminas-escaper/src/Exception/RuntimeException.php b/vendor/laminas/laminas-escaper/src/Exception/RuntimeException.php similarity index 100% rename from kirby/vendor/laminas/laminas-escaper/src/Exception/RuntimeException.php rename to vendor/laminas/laminas-escaper/src/Exception/RuntimeException.php diff --git a/vendor/league/color-extractor/.github/workflows/run-tests.yml b/vendor/league/color-extractor/.github/workflows/run-tests.yml new file mode 100644 index 0000000..c4322c6 --- /dev/null +++ b/vendor/league/color-extractor/.github/workflows/run-tests.yml @@ -0,0 +1,37 @@ +name: Unit Tests + +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + php: [8.1, 8.0, 7.4, 7.3] + dependency-version: [prefer-lowest, prefer-stable] + + name: P${{ matrix.php }} - ${{ matrix.dependency-version }} + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Cache dependencies + uses: actions/cache@v1 + with: + path: ~/.composer/cache/files + key: dependencies-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} + + - name: Setup PHP + uses: shivammathur/setup-php@2.18.0 + with: + php-version: ${{ matrix.php }} + extensions: curl, zip, gd + coverage: none + + - name: Install dependencies + run: composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest + + - name: Execute tests + run: vendor/bin/phpunit diff --git a/vendor/league/color-extractor/.gitignore b/vendor/league/color-extractor/.gitignore new file mode 100644 index 0000000..7ff3343 --- /dev/null +++ b/vendor/league/color-extractor/.gitignore @@ -0,0 +1,6 @@ +vendor +composer.lock +.DS_Store +.idea +.php_cs.cache +.phpunit.result.cache \ No newline at end of file diff --git a/vendor/league/color-extractor/.php_cs b/vendor/league/color-extractor/.php_cs new file mode 100644 index 0000000..c181874 --- /dev/null +++ b/vendor/league/color-extractor/.php_cs @@ -0,0 +1,13 @@ +files() + ->name('*.php') + ->in(array('src', 'tests')); + +return PhpCsFixer\Config::create() + ->setFinder($finder) + ->setRules([ + '@Symfony' => true, + 'array_syntax' => ['syntax' => 'short'], + ]); \ No newline at end of file diff --git a/vendor/league/color-extractor/CONTRIBUTING.md b/vendor/league/color-extractor/CONTRIBUTING.md new file mode 100644 index 0000000..102987b --- /dev/null +++ b/vendor/league/color-extractor/CONTRIBUTING.md @@ -0,0 +1,32 @@ +# Contributing + +Contributions are **welcome** and will be fully **credited**. + +We accept contributions via Pull Requests on [Github](https://github.com/php-loep/statsd). + + +## Pull Requests + +- **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - The easiest way to apply the conventions is to install [PHP Code Sniffer](http://pear.php.net/package/PHP_CodeSniffer). + +- **Add tests!** - Your patch won't be accepted if it doesn't have tests. + +- **Document any change in behaviour** - Make sure the README and any other relevant documentation are kept up-to-date. + +- **Consider our release cycle** - We try to follow semver. Randomly breaking public APIs is not an option. + +- **Create topic branches** - Don't ask us to pull from your master branch. + +- **One pull request per feature** - If you want to do more than one thing, send multiple pull requests. + +- **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting. + + +## Running Tests + +``` bash +$ phpunit +``` + + +**Happy coding**! \ No newline at end of file diff --git a/kirby/vendor/league/color-extractor/LICENSE b/vendor/league/color-extractor/LICENSE similarity index 100% rename from kirby/vendor/league/color-extractor/LICENSE rename to vendor/league/color-extractor/LICENSE diff --git a/vendor/league/color-extractor/README.md b/vendor/league/color-extractor/README.md new file mode 100644 index 0000000..cc1fed6 --- /dev/null +++ b/vendor/league/color-extractor/README.md @@ -0,0 +1,79 @@ +ColorExtractor +============== + +![Build Status](https://github.com/thephpleague/color-extractor/actions/workflows/run-tests.yml/badge.svg) +[![Total Downloads](https://poser.pugx.org/league/color-extractor/downloads.png)](https://packagist.org/packages/league/color-extractor) +[![Latest Stable Version](https://poser.pugx.org/league/color-extractor/v/stable.png)](https://packagist.org/packages/league/color-extractor) + +Extract colors from an image like a human would do. + +## Install + +Via Composer + +``` bash +$ composer require league/color-extractor:0.4.* +``` + +## Usage + +```php +require 'vendor/autoload.php'; + +use League\ColorExtractor\Color; +use League\ColorExtractor\ColorExtractor; +use League\ColorExtractor\Palette; + +$palette = Palette::fromFilename('./some/image.png'); + +// $palette is an iterator on colors sorted by pixel count +foreach($palette as $color => $count) { + // colors are represented by integers + echo Color::fromIntToHex($color), ': ', $count, "\n"; +} + +// it offers some helpers too +$topFive = $palette->getMostUsedColors(5); + +$colorCount = count($palette); + +$blackCount = $palette->getColorCount(Color::fromHexToInt('#000000')); + + +// an extractor is built from a palette +$extractor = new ColorExtractor($palette); + +// it defines an extract method which return the most “representative” colors +$colors = $extractor->extract(5); + +``` + +## Handling transparency + +By default **any pixel with alpha value greater than zero will be discarded**. This is because transparent colors are not perceived +as is. For example fully transparent black would be seen white on a white background. So if you want to take transparency into account +when building a palette you have to specify this background color. You can do this with the second argument of `Palette` constructors. +Its default value is `null`, meaning a color won't be added to the palette if its alpha component exists and is greater than zero. + +You can set it as an integer representing the color, then transparent colors will be blended before addition to the palette. + +```php +// we set a white background so fully transparent colors will be added as white in the palette +// pure red #FF0000 at 50% opacity will be stored as #FF8080 as it would be perceived +$palette = Palette::fromFilename('./some/image.png', Color::fromHexToInt('#FFFFFF')); +``` + +## Contributing + +Please see [CONTRIBUTING](https://github.com/thephpleague/color-extractor/blob/master/CONTRIBUTING.md) for details. + + +## Credits + +- [Mathieu Lechat](https://github.com/MatTheCat) +- [All Contributors](https://github.com/thephpleague/color-extractor/contributors) + + +## License + +The MIT License (MIT). Please see [License File](https://github.com/thephpleague/color-extractor/blob/master/LICENSE) for more information. diff --git a/kirby/vendor/league/color-extractor/composer.json b/vendor/league/color-extractor/composer.json similarity index 100% rename from kirby/vendor/league/color-extractor/composer.json rename to vendor/league/color-extractor/composer.json diff --git a/vendor/league/color-extractor/phpunit.xml.dist b/vendor/league/color-extractor/phpunit.xml.dist new file mode 100644 index 0000000..68a03cb --- /dev/null +++ b/vendor/league/color-extractor/phpunit.xml.dist @@ -0,0 +1,13 @@ + + + + + src + + + + + tests + + + diff --git a/kirby/vendor/league/color-extractor/src/Color.php b/vendor/league/color-extractor/src/Color.php similarity index 100% rename from kirby/vendor/league/color-extractor/src/Color.php rename to vendor/league/color-extractor/src/Color.php diff --git a/kirby/vendor/league/color-extractor/src/ColorExtractor.php b/vendor/league/color-extractor/src/ColorExtractor.php similarity index 100% rename from kirby/vendor/league/color-extractor/src/ColorExtractor.php rename to vendor/league/color-extractor/src/ColorExtractor.php diff --git a/kirby/vendor/league/color-extractor/src/Palette.php b/vendor/league/color-extractor/src/Palette.php similarity index 100% rename from kirby/vendor/league/color-extractor/src/Palette.php rename to vendor/league/color-extractor/src/Palette.php diff --git a/vendor/league/color-extractor/tests/ColorExtractorTest.php b/vendor/league/color-extractor/tests/ColorExtractorTest.php new file mode 100644 index 0000000..922ba54 --- /dev/null +++ b/vendor/league/color-extractor/tests/ColorExtractorTest.php @@ -0,0 +1,40 @@ + $expectedColors + * + * @dataProvider dataForTestExtract + */ + public function testExtract(string $imagePath, int $colorCount, array $expectedColors): void + { + $palette = Palette::fromFilename($imagePath); + $extractor = new ColorExtractor($palette); + $colors = $extractor->extract($colorCount); + + self::assertSame($expectedColors, $colors); + } + + public function dataForTestExtract(): iterable + { + yield [__DIR__ . '/assets/google.png', 0, []]; + yield [__DIR__ . '/assets/google.png', 1, [18417]]; + yield [__DIR__ . '/assets/google.png', 2, [18417, 42259]]; + yield [__DIR__ . '/assets/google.png', 3, [18417, 15080241, 42259]]; + yield [__DIR__ . '/assets/google.png', 4, [18417, 15080241, 42259, 16360960]]; + yield [__DIR__ . '/assets/google.png', 5, [18417, 15080241, 42259, 16360960, 4753405]]; + yield [__DIR__ . '/assets/empty.png', 0, []]; + yield [__DIR__ . '/assets/empty.png', 1, []]; + } +} diff --git a/vendor/league/color-extractor/tests/PaletteTest.php b/vendor/league/color-extractor/tests/PaletteTest.php new file mode 100644 index 0000000..afd2b0e --- /dev/null +++ b/vendor/league/color-extractor/tests/PaletteTest.php @@ -0,0 +1,79 @@ +jpegPath)); + $colors = $extractor->extract(1); + + $this->assertIsArray($colors); + $this->assertCount(1, $colors); + $this->assertEquals(15985688, $colors[0]); + } + + public function testGifExtractSingleColor() + { + $extractor = new ColorExtractor(Palette::fromFilename($this->gifPath)); + $colors = $extractor->extract(1); + + $this->assertIsArray($colors); + $this->assertCount(1, $colors); + $this->assertEquals(12022491, $colors[0]); + } + + public function testPngExtractSingleColor() + { + $extractor = new ColorExtractor(Palette::fromFilename($this->pngPath)); + $colors = $extractor->extract(1); + + $this->assertIsArray($colors); + $this->assertCount(1, $colors); + $this->assertEquals(14024704, $colors[0]); + } + + public function testWebpExtractSingleColor() + { + $extractor = new ColorExtractor(Palette::fromFilename($this->webpPath)); + $colors = $extractor->extract(1); + + $this->assertIsArray($colors); + $this->assertCount(1, $colors); + $this->assertEquals(15008271, $colors[0]); + } + + public function testJpegExtractMultipleColors() + { + $extractor = new ColorExtractor(Palette::fromFilename($this->pngPath)); + $numColors = 3; + $colors = $extractor->extract($numColors); + + $this->assertIsArray($colors); + $this->assertCount($numColors, $colors); + $this->assertEquals($colors, [14024704, 3407872, 7111569]); + } + + public function testTransparencyHandling() + { + $this->assertCount(0, Palette::fromFilename($this->transparentPngPath)); + + $whiteBackgroundPalette = Palette::fromFilename($this->transparentPngPath, Color::fromHexToInt('#FFFFFF')); + $this->assertEquals(iterator_to_array($whiteBackgroundPalette), [Color::fromHexToInt('#FF8080') => 1]); + + $blackBackgroundPalette = Palette::fromFilename($this->transparentPngPath, Color::fromHexToInt('#000000')); + $this->assertEquals(iterator_to_array($blackBackgroundPalette), [Color::fromHexToInt('#7E0000') => 1]); + } +} diff --git a/vendor/league/color-extractor/tests/assets/empty.png b/vendor/league/color-extractor/tests/assets/empty.png new file mode 100644 index 0000000..96729e1 Binary files /dev/null and b/vendor/league/color-extractor/tests/assets/empty.png differ diff --git a/vendor/league/color-extractor/tests/assets/google.png b/vendor/league/color-extractor/tests/assets/google.png new file mode 100644 index 0000000..c9a210d Binary files /dev/null and b/vendor/league/color-extractor/tests/assets/google.png differ diff --git a/vendor/league/color-extractor/tests/assets/red-transparent-50.png b/vendor/league/color-extractor/tests/assets/red-transparent-50.png new file mode 100644 index 0000000..fbec7f3 Binary files /dev/null and b/vendor/league/color-extractor/tests/assets/red-transparent-50.png differ diff --git a/vendor/league/color-extractor/tests/assets/test.gif b/vendor/league/color-extractor/tests/assets/test.gif new file mode 100644 index 0000000..5200bad Binary files /dev/null and b/vendor/league/color-extractor/tests/assets/test.gif differ diff --git a/vendor/league/color-extractor/tests/assets/test.jpeg b/vendor/league/color-extractor/tests/assets/test.jpeg new file mode 100644 index 0000000..4f68aea Binary files /dev/null and b/vendor/league/color-extractor/tests/assets/test.jpeg differ diff --git a/vendor/league/color-extractor/tests/assets/test.png b/vendor/league/color-extractor/tests/assets/test.png new file mode 100644 index 0000000..25c88fd Binary files /dev/null and b/vendor/league/color-extractor/tests/assets/test.png differ diff --git a/vendor/league/color-extractor/tests/assets/test.webp b/vendor/league/color-extractor/tests/assets/test.webp new file mode 100644 index 0000000..bb68366 Binary files /dev/null and b/vendor/league/color-extractor/tests/assets/test.webp differ diff --git a/kirby/vendor/michelf/php-smartypants/License.md b/vendor/michelf/php-smartypants/License.md similarity index 100% rename from kirby/vendor/michelf/php-smartypants/License.md rename to vendor/michelf/php-smartypants/License.md diff --git a/kirby/vendor/michelf/php-smartypants/Michelf/SmartyPants.inc.php b/vendor/michelf/php-smartypants/Michelf/SmartyPants.inc.php similarity index 100% rename from kirby/vendor/michelf/php-smartypants/Michelf/SmartyPants.inc.php rename to vendor/michelf/php-smartypants/Michelf/SmartyPants.inc.php diff --git a/kirby/vendor/michelf/php-smartypants/Michelf/SmartyPants.php b/vendor/michelf/php-smartypants/Michelf/SmartyPants.php similarity index 100% rename from kirby/vendor/michelf/php-smartypants/Michelf/SmartyPants.php rename to vendor/michelf/php-smartypants/Michelf/SmartyPants.php diff --git a/kirby/vendor/michelf/php-smartypants/Michelf/SmartyPantsTypographer.inc.php b/vendor/michelf/php-smartypants/Michelf/SmartyPantsTypographer.inc.php similarity index 100% rename from kirby/vendor/michelf/php-smartypants/Michelf/SmartyPantsTypographer.inc.php rename to vendor/michelf/php-smartypants/Michelf/SmartyPantsTypographer.inc.php diff --git a/kirby/vendor/michelf/php-smartypants/Michelf/SmartyPantsTypographer.php b/vendor/michelf/php-smartypants/Michelf/SmartyPantsTypographer.php similarity index 100% rename from kirby/vendor/michelf/php-smartypants/Michelf/SmartyPantsTypographer.php rename to vendor/michelf/php-smartypants/Michelf/SmartyPantsTypographer.php diff --git a/vendor/michelf/php-smartypants/Readme.md b/vendor/michelf/php-smartypants/Readme.md new file mode 100644 index 0000000..5d67695 --- /dev/null +++ b/vendor/michelf/php-smartypants/Readme.md @@ -0,0 +1,246 @@ +PHP SmartyPants +=============== + +PHP SmartyPants Lib 1.8.1 - 12 Dec 2016 + +by Michel Fortin + + +Original SmartyPants by John Gruber + + + +Introduction +------------ + +This is a library package that includes the PHP SmartyPants and its +sibling PHP SmartyPants Typographer with additional features. + +SmartyPants is a free web typography prettifyier tool for web writers. It +easily translates plain ASCII punctuation characters into "smart" typographic +punctuation HTML entities. + +PHP SmartyPants is a port to PHP of the original SmartyPants written +in Perl by John Gruber. + +SmartyPants can perform the following transformations: + +* Straight quotes (`"` and `'`) into “curly” quote HTML entities +* Backtick-style quotes (` ``like this'' `) into “curly” quote HTML + entities +* Dashes (`--` and `---`) into en- and em-dash entities +* Three consecutive dots (`...`) into an ellipsis entity + +SmartyPants Typographer can perform additional transformations: + +* French guillemets done using (`<<` and `>>`) into true « guillemets » + HTML entities. +* Comma-style quotes (` ,,like this`` ` or ` ''like this,, `) into their + curly equivalent. +* Replace existing spaces with non-break spaces around punctuation marks + where appropriate, can also add or remove them if configured to. +* Replace existing spaces with non-break spaces for spaces used as + a thousand separator and between a number and the unit symbol that + follows it (for most common units). + +This means you can write, edit, and save using plain old ASCII straight +quotes, plain dashes, and plain dots, but your published posts (and +final HTML output) will appear with smart quotes, em-dashes, proper +ellipses, and proper no-break spaces (with Typographer). + +SmartyPants does not modify characters within `
        `, ``,
        +``, or `