diff --git a/composer.json b/composer.json
index a4b6d60..dec3734 100644
--- a/composer.json
+++ b/composer.json
@@ -12,11 +12,11 @@
],
"require": {
"php": ">=7.3.0 <8.1.0",
- "getkirby/cms": "^3.5",
- "amteich/kirby-twig": "^4.1",
- "sylvainjule/matomo": "^1.0",
- "kirbyzone/sitemapper": "^1.2",
- "mullema/k3-image-clip": "^3.0"
+ "getkirby/cms": "^3.9.3",
+ "sylvainjule/matomo": "^1.0.7",
+ "kirbyzone/sitemapper": "^1.2.1",
+ "mullema/k3-image-clip": "^3.2",
+ "wearejust/kirby-twig": "^5.0"
},
"scripts": {
"start": [
diff --git a/composer.lock b/composer.lock
index 9482149..95d4afe 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,71 +4,30 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "c714e6b167ed1b9b3dcf7b08fe178ce5",
+ "content-hash": "86ab1ddb76e0ac2a521664cc23de89c5",
"packages": [
- {
- "name": "amteich/kirby-twig",
- "version": "4.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/amteich/kirby-twig.git",
- "reference": "7cdc1e5d78a19e8e395c1d3516fe90bf512c20fb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/amteich/kirby-twig/zipball/7cdc1e5d78a19e8e395c1d3516fe90bf512c20fb",
- "reference": "7cdc1e5d78a19e8e395c1d3516fe90bf512c20fb",
- "shasum": ""
- },
- "require": {
- "getkirby/composer-installer": "^1.1",
- "twig/twig": "^3.4"
- },
- "type": "kirby-plugin",
- "autoload": {
- "psr-4": {
- "amteich\\Twig\\": "src/classes/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Zehetner",
- "email": "christian@am-teich.com"
- },
- {
- "name": "Florens Verschelde",
- "email": "florens@fvsch.com"
- }
- ],
- "description": "Twig templating support for Kirby CMS",
- "support": {
- "issues": "https://github.com/amteich/kirby-twig/issues",
- "source": "https://github.com/amteich/kirby-twig/tree/4.2.0"
- },
- "time": "2022-12-09T21:39:13+00:00"
- },
{
"name": "claviska/simpleimage",
- "version": "3.7.0",
+ "version": "4.0.2",
"source": {
"type": "git",
"url": "https://github.com/claviska/SimpleImage.git",
- "reference": "abd15ced313c7b8041d7d73d8d2398b4f2510cf1"
+ "reference": "226d507cca0c8400d69bee7eb324158e3cbe246e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/claviska/SimpleImage/zipball/abd15ced313c7b8041d7d73d8d2398b4f2510cf1",
- "reference": "abd15ced313c7b8041d7d73d8d2398b4f2510cf1",
+ "url": "https://api.github.com/repos/claviska/SimpleImage/zipball/226d507cca0c8400d69bee7eb324158e3cbe246e",
+ "reference": "226d507cca0c8400d69bee7eb324158e3cbe246e",
"shasum": ""
},
"require": {
"ext-gd": "*",
- "league/color-extractor": "0.3.*",
- "php": ">=5.6.0"
+ "league/color-extractor": "0.4.*",
+ "php": ">=8.0"
+ },
+ "require-dev": {
+ "laravel/pint": "^1.5",
+ "phpstan/phpstan": "^1.10"
},
"type": "library",
"autoload": {
@@ -90,7 +49,7 @@
"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/3.7.0"
+ "source": "https://github.com/claviska/SimpleImage/tree/4.0.2"
},
"funding": [
{
@@ -98,7 +57,7 @@
"type": "github"
}
],
- "time": "2022-07-05T13:18:44+00:00"
+ "time": "2023-03-20T15:27:20+00:00"
},
{
"name": "composer/semver",
@@ -183,16 +142,16 @@
},
{
"name": "filp/whoops",
- "version": "2.14.6",
+ "version": "2.15.1",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "f7948baaa0330277c729714910336383286305da"
+ "reference": "e864ac957acd66e1565f25efda61e37791a5db0b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/f7948baaa0330277c729714910336383286305da",
- "reference": "f7948baaa0330277c729714910336383286305da",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/e864ac957acd66e1565f25efda61e37791a5db0b",
+ "reference": "e864ac957acd66e1565f25efda61e37791a5db0b",
"shasum": ""
},
"require": {
@@ -242,7 +201,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.14.6"
+ "source": "https://github.com/filp/whoops/tree/2.15.1"
},
"funding": [
{
@@ -250,24 +209,24 @@
"type": "github"
}
],
- "time": "2022-11-02T16:23:29+00:00"
+ "time": "2023-03-06T18:09:13+00:00"
},
{
"name": "getkirby/cms",
- "version": "3.8.3",
+ "version": "3.9.3",
"source": {
"type": "git",
"url": "https://github.com/getkirby/kirby.git",
- "reference": "41719bd54310dfc2e321a75a8549da98ccf5cd1d"
+ "reference": "ce4aaace87ceca1f019a9cfc0293a69e662f9648"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/getkirby/kirby/zipball/41719bd54310dfc2e321a75a8549da98ccf5cd1d",
- "reference": "41719bd54310dfc2e321a75a8549da98ccf5cd1d",
+ "url": "https://api.github.com/repos/getkirby/kirby/zipball/ce4aaace87ceca1f019a9cfc0293a69e662f9648",
+ "reference": "ce4aaace87ceca1f019a9cfc0293a69e662f9648",
"shasum": ""
},
"require": {
- "claviska/simpleimage": "3.7.0",
+ "claviska/simpleimage": "4.0.2",
"composer/semver": "3.3.2",
"ext-ctype": "*",
"ext-curl": "*",
@@ -280,14 +239,14 @@
"ext-mbstring": "*",
"ext-openssl": "*",
"ext-simplexml": "*",
- "filp/whoops": "2.14.6",
+ "filp/whoops": "2.15.1",
"getkirby/composer-installer": "^1.2.1",
"laminas/laminas-escaper": "2.12.0",
"michelf/php-smartypants": "1.8.1",
- "php": ">=8.0.0 <8.2.0",
- "phpmailer/phpmailer": "6.6.5",
- "symfony/polyfill-intl-idn": "1.26.0",
- "symfony/polyfill-mbstring": "1.26.0"
+ "php": ">=8.0.0 <8.3.0",
+ "phpmailer/phpmailer": "6.8.0",
+ "symfony/polyfill-intl-idn": "1.27.0",
+ "symfony/polyfill-mbstring": "1.27.0"
},
"replace": {
"symfony/polyfill-php72": "*"
@@ -350,7 +309,7 @@
"type": "custom"
}
],
- "time": "2022-12-06T14:31:06+00:00"
+ "time": "2023-03-30T13:10:22+00:00"
},
{
"name": "getkirby/composer-installer",
@@ -500,33 +459,36 @@
},
{
"name": "league/color-extractor",
- "version": "0.3.2",
+ "version": "0.4.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/color-extractor.git",
- "reference": "837086ec60f50c84c611c613963e4ad2e2aec806"
+ "reference": "21fcac6249c5ef7d00eb83e128743ee6678fe505"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/color-extractor/zipball/837086ec60f50c84c611c613963e4ad2e2aec806",
- "reference": "837086ec60f50c84c611c613963e4ad2e2aec806",
+ "url": "https://api.github.com/repos/thephpleague/color-extractor/zipball/21fcac6249c5ef7d00eb83e128743ee6678fe505",
+ "reference": "21fcac6249c5ef7d00eb83e128743ee6678fe505",
"shasum": ""
},
"require": {
"ext-gd": "*",
- "php": ">=5.4.0"
+ "php": "^7.3 || ^8.0"
},
"replace": {
"matthecat/colorextractor": "*"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "~2",
- "phpunit/phpunit": "~5"
+ "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": {
- "": "src"
+ "League\\ColorExtractor\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -552,9 +514,9 @@
],
"support": {
"issues": "https://github.com/thephpleague/color-extractor/issues",
- "source": "https://github.com/thephpleague/color-extractor/tree/master"
+ "source": "https://github.com/thephpleague/color-extractor/tree/0.4.0"
},
- "time": "2016-12-15T09:30:02+00:00"
+ "time": "2022-09-24T15:57:16+00:00"
},
{
"name": "michelf/php-smartypants",
@@ -654,16 +616,16 @@
},
{
"name": "phpmailer/phpmailer",
- "version": "v6.6.5",
+ "version": "v6.8.0",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
- "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627"
+ "reference": "df16b615e371d81fb79e506277faea67a1be18f1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/8b6386d7417526d1ea4da9edb70b8352f7543627",
- "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627",
+ "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/df16b615e371d81fb79e506277faea67a1be18f1",
+ "reference": "df16b615e371d81fb79e506277faea67a1be18f1",
"shasum": ""
},
"require": {
@@ -673,17 +635,19 @@
"php": ">=5.5.0"
},
"require-dev": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "doctrine/annotations": "^1.2",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.2",
+ "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": "^9.3.5",
"roave/security-advisories": "dev-latest",
- "squizlabs/php_codesniffer": "^3.6.2",
- "yoast/phpunit-polyfills": "^1.0.0"
+ "squizlabs/php_codesniffer": "^3.7.1",
+ "yoast/phpunit-polyfills": "^1.0.4"
},
"suggest": {
"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",
@@ -720,7 +684,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/v6.6.5"
+ "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.8.0"
},
"funding": [
{
@@ -728,7 +692,7 @@
"type": "github"
}
],
- "time": "2022-10-07T12:23:10+00:00"
+ "time": "2023-03-06T14:43:22+00:00"
},
{
"name": "psr/log",
@@ -902,16 +866,16 @@
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8"
+ "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
- "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
+ "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
"shasum": ""
},
"require": {
@@ -925,7 +889,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -969,7 +933,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
},
"funding": [
{
@@ -985,7 +949,7 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
@@ -1073,16 +1037,16 @@
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e"
+ "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
- "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
"shasum": ""
},
"require": {
@@ -1097,7 +1061,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -1136,7 +1100,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
},
"funding": [
{
@@ -1152,20 +1116,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "twig/twig",
- "version": "v3.4.3",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58"
+ "reference": "a6e0510cc793912b451fd40ab983a1d28f611c15"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/c38fd6b0b7f370c198db91ffd02e23b517426b58",
- "reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/a6e0510cc793912b451fd40ab983a1d28f611c15",
+ "reference": "a6e0510cc793912b451fd40ab983a1d28f611c15",
"shasum": ""
},
"require": {
@@ -1180,7 +1144,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.4-dev"
+ "dev-master": "3.5-dev"
}
},
"autoload": {
@@ -1216,7 +1180,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.4.3"
+ "source": "https://github.com/twigphp/Twig/tree/v3.5.1"
},
"funding": [
{
@@ -1228,7 +1192,55 @@
"type": "tidelift"
}
],
- "time": "2022-09-28T08:42:51+00:00"
+ "time": "2023-02-08T07:49:20+00:00"
+ },
+ {
+ "name": "wearejust/kirby-twig",
+ "version": "5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/wearejust/kirby-twig.git",
+ "reference": "b8951bb5bdbeb829f492ee55709a2bdcc9d7475e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/wearejust/kirby-twig/zipball/b8951bb5bdbeb829f492ee55709a2bdcc9d7475e",
+ "reference": "b8951bb5bdbeb829f492ee55709a2bdcc9d7475e",
+ "shasum": ""
+ },
+ "require": {
+ "getkirby/composer-installer": "^1.1",
+ "twig/twig": "^3.4"
+ },
+ "type": "kirby-plugin",
+ "autoload": {
+ "psr-4": {
+ "Wearejust\\Kirby\\Twig\\": "src/classes/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees van Egmond",
+ "email": "cees.vanegmond@wearejust.com"
+ },
+ {
+ "name": "Sietse Veenman",
+ "email": "sietse.veenman@wearejust.com"
+ },
+ {
+ "name": "Duncan Pronk",
+ "email": "duncan.pronk@wearejust.com"
+ }
+ ],
+ "description": "Twig templating support for Kirby CMS",
+ "support": {
+ "source": "https://github.com/wearejust/kirby-twig/tree/5.0"
+ },
+ "time": "2023-02-24T12:16:24+00:00"
}
],
"packages-dev": [],
diff --git a/kirby/CONTRIBUTING.md b/kirby/CONTRIBUTING.md
index 06ddc3a..a3bd4a2 100644
--- a/kirby/CONTRIBUTING.md
+++ b/kirby/CONTRIBUTING.md
@@ -20,7 +20,7 @@ We will review all pull requests (PRs) to `develop` and merge them if accepted,
### Report a bug
-When you find a bug, the first step to fixing it is to help us understand and reproduce the bug as best as possible. When you create a bug report, please include as many details as possible. Fill out [the template](ISSUE_TEMPLATE/bug_report.md) because the requested information helps us resolve issues so much faster.
+When you find a bug, the first step to fixing it is to help us understand and reproduce the bug as best as possible. When you create a bug report, please include as many details as possible. Fill out [the template](https://github.com/getkirby/kirby/issues/new?template=bug_report.md) because the requested information helps us resolve issues so much faster.
### Bug fixes
diff --git a/kirby/LICENSE.md b/kirby/LICENSE.md
index eb852a4..8d109fe 100644
--- a/kirby/LICENSE.md
+++ b/kirby/LICENSE.md
@@ -1,7 +1,7 @@
# Kirby License Agreement
-Published: March 15, 2022
-Source: https://getkirby.com/license/2022-03-15
+Published: March 21, 2023
+Source: https://getkirby.com/license/2023-03-21
## About this Agreement
@@ -37,7 +37,7 @@ As Kirby is software and software is intangible, We don't sell it as such. Inste
The license is **non-exclusive** (meaning that You are not the only one who We will issue a license) and **generally non-transferable** (meaning that the one who purchases the license is the licensee).
-On request, We will **transfer** a license to anyone who is also allowed to buy Kirby licenses by law and this Agreement.
+On request, We will **transfer** a license to anyone who is also allowed to buy Kirby licenses by law and this Agreement. The new licensee will take over all rights and obligations of this Agreement from You at the moment We confirm the license transfer.
We will also **reassign** a license to another Website domain and root directory of Your choice, provided that You confirm that the previous Website is no longer in operation and will not be operated with the same license in the future.
@@ -98,13 +98,18 @@ You may only use Kirby in a manner that complies with any and all **applicable l
### Making Copies
-You may make **copies of Kirby** in any machine readable form solely for purposes of **deploying a Website to a server, developing a Website on a personal computer or server or as a backup**, provided that You reproduce Kirby in its original form and with all proprietary notices on the copy.
+You may make **copies of Kirby** in any machine readable form solely for the **following purposes**, provided that You reproduce Kirby in its original form and with all proprietary notices on the copy:
+
+- when deploying a Website to a server,
+- when developing a Website on a personal computer or server,
+- when working on code contributions to Kirby or
+- as a backup.
You may _not_ reproduce Kirby or its Source Code, in whole or in part, for **any other purpose**.
### Modification of the Source Code
-You may **alter, modify or extend the Source Code** for Your own use. You may also **commission a third party** to perform those modifications for You.
+You may **alter, modify or extend the Source Code** for Your own use or with the intention to contribute Your changes back to Kirby. You may also **commission a third party** to perform those modifications for You.
However You may _not_:
@@ -177,7 +182,13 @@ KIRBY IS OFFERED ON AN **"AS-IS" BASIS** AND **NO WARRANTY**, EITHER EXPRESSED O
## Term, Termination and Modification
-You may use Kirby under this Agreement until either party terminates this Agreement as described in this paragraph. Either party may **terminate the Agreement** at any time, upon notice to the other party in textual form (via email or letter). Upon termination, all or the specified **licenses granted to You will terminate**, and You will **immediately uninstall and cease all use** of Kirby. If not all licenses are terminated, You may continue to use Kirby for the Websites with active licenses. The sections entitled "No Warranty", "Indemnification" and "Limitation of Liability" will **survive any termination** of this Agreement.
+You may **indefinitely use** all Kirby versions that are covered by Your license under this Agreement until either party **terminates this Agreement** as described in this section.
+
+**You** may terminate the Agreement at any time.
+
+**We** may only terminate the Agreement if You or any individual or company who works with Kirby or uses it on Your behalf has violated or failed to comply with terms of this Agreement. If Your compliance with the Agreement can be restored by fixing the violation or non-compliance, We will first contact You with information on the specific term that was violated or not complied with and will allow reasonable time of at least 14 days before We will decide on a license termination. Should We be in the position to terminate a license according to this paragraph, other or all licenses granted to You may be terminated for the same reason(s) at the same time or at any later date.
+
+Termination takes effect upon notice to the other party in textual form (via email or letter). Upon termination, the specified **licenses granted to You will terminate**, and You will **immediately uninstall and cease all use** of Kirby. If not all licenses are terminated, You may continue to use Kirby for the Websites with active licenses. The sections entitled "No Warranty", "Indemnification" and "Limitation of Liability" will **survive any termination** of this Agreement.
We may **modify Kirby and this Agreement** with notice to You either via email or by publishing content on the Kirby website at https://getkirby.com, including but not limited to changing the functionality or appearance of Kirby. Any such modification will **become binding on You** unless You terminate this Agreement. Changes to this Agreement that constrain Your rights to a great extent will only become effective with Your approval in textual or electronic form.
diff --git a/kirby/README.md b/kirby/README.md
index 2075a4f..a45e644 100644
--- a/kirby/README.md
+++ b/kirby/README.md
@@ -1,10 +1,9 @@
-[](https://getkirby.com)
+[
](https://getkirby.com)
-[](https://github.com/getkirby/kirby/releases/latest)
-[](https://github.com/getkirby/kirby/actions?query=workflow%3ACI)
-[](https://codecov.io/gh/getkirby/kirby)
-[](https://github.com/getkirby/kirby/releases/latest)
-[](https://twitter.com/getkirby)
+[](https://github.com/getkirby/kirby/releases/latest)
+[](https://github.com/getkirby/kirby/actions?query=workflow%3ACI+branch%3Amain)
+[](https://codecov.io/gh/getkirby/kirby)
+[](https://github.com/getkirby/kirby/releases/latest)
**Kirby: the CMS that adapts to any project, loved by developers and editors alike.**
With Kirby, you build your own ideal interface. Combine forms, galleries, articles, spreadsheets and more into an amazing editing experience. You can learn more about Kirby at [getkirby.com](https://getkirby.com).
@@ -14,7 +13,7 @@ This is Kirby's core application folder. Get started with one of the following r
- [Starterkit](https://github.com/getkirby/starterkit)
- [Plainkit](https://github.com/getkirby/plainkit)
-
+
### Try Kirby for free
Kirby is not free software. However, you can try Kirby and the Starterkit on your local machine or on a test server as long as you need to make sure it is the right tool for your next project. … and when you’re convinced, [buy your license](https://getkirby.com/buy).
@@ -30,8 +29,6 @@ If you have ideas for a feature or enhancement for Kirby, please use our [feedba
**Translations, bug fixes, code contributions ...**
Read about how to contribute to the development in our [contributing guide](/CONTRIBUTING.md).
-
-
## What's Kirby?
- **[getkirby.com](https://getkirby.com)** – Get to know the CMS.
- **[Try it](https://getkirby.com/try)** – Take a test ride with our online demo. Or download one of our kits to get started.
@@ -40,10 +37,11 @@ Read about how to contribute to the development in our [contributing guide](/CON
- **[Feedback](https://feedback.getkirby.com)** – You have an idea for Kirby? Share it.
- **[Forum](https://forum.getkirby.com)** – Whenever you get stuck, don't hesitate to reach out for questions and support.
- **[Discord](https://chat.getkirby.com)** – Hang out and meet the community.
-- **[Twitter](https://twitter.com/getkirby)** – Spread the word.
+- **[YouTube](https://youtube.com/kirbyCasts)** - Watch the latest video tutorials visually with Bastian.
+- **[Mastodon](https://mastodon.social/@getkirby)** – Spread the word.
- **[Instagram](https://www.instagram.com/getkirby/)** – Share your creations: #madewithkirby.
---
-© 2009-2022 Bastian Allgeier
+© 2009-2023 Bastian Allgeier
[getkirby.com](https://getkirby.com) · [License agreement](https://getkirby.com/license)
diff --git a/kirby/bootstrap.php b/kirby/bootstrap.php
index 472c0ad..d61e5e5 100644
--- a/kirby/bootstrap.php
+++ b/kirby/bootstrap.php
@@ -6,7 +6,7 @@
*/
if (
version_compare(PHP_VERSION, '8.0.0', '>=') === false ||
- version_compare(PHP_VERSION, '8.2.0', '<') === false
+ version_compare(PHP_VERSION, '8.3.0', '<') === false
) {
die(include __DIR__ . '/views/php.php');
}
diff --git a/kirby/cacert.pem b/kirby/cacert.pem
index 0c69f9f..2ae7b6c 100644
--- a/kirby/cacert.pem
+++ b/kirby/cacert.pem
@@ -1,7 +1,7 @@
##
## Bundle of CA Root Certificates
##
-## Certificate data from Mozilla as of: Tue Oct 11 03:12:05 2022 GMT
+## Certificate data from Mozilla as of: Tue Jan 10 04:12:06 2023 GMT
##
## This is a bundle of X.509 certificates of public Certificate Authorities
## (CA). These were automatically extracted from Mozilla's root certificates
@@ -14,7 +14,7 @@
## Just configure this file as the SSLCACertificateFile.
##
## Conversion done with mk-ca-bundle.pl version 1.29.
-## SHA256: 3ff8bd209b5f2e739b9f2b96eacb694a774114685b02978257824f37ff528f71
+## SHA256: 90c470e705b4b5f36f09684dc50e2b79c8b86989a848b62cd1a7bd6460ee65f6
##
@@ -489,29 +489,6 @@ IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
-----END CERTIFICATE-----
-Network Solutions Certificate Authority
-=======================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
-EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
-IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
-MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
-jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
-aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
-crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
-/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
-AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
-bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
-A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
-4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
-GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
-ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
COMODO ECC Certification Authority
==================================
-----BEGIN CERTIFICATE-----
@@ -1654,36 +1631,6 @@ uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
-----END CERTIFICATE-----
-Staat der Nederlanden EV Root CA
-================================
------BEGIN CERTIFICATE-----
-MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M
-MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl
-cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk
-SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW
-O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r
-0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8
-Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV
-XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr
-08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV
-0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd
-74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx
-fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa
-ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
-eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu
-c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq
-5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN
-b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN
-f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi
-5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
-WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK
-DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy
-eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
------END CERTIFICATE-----
-
IdenTrust Commercial Root CA 1
==============================
-----BEGIN CERTIFICATE-----
@@ -2135,87 +2082,6 @@ F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ
aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
-----END CERTIFICATE-----
-TrustCor RootCert CA-1
-======================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP
-MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
-U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
-dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx
-MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu
-YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe
-VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy
-dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq
-jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4
-pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0
-JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h
-gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw
-/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j
-BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5
-mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
-ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C
-qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P
-3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk=
------END CERTIFICATE-----
-
-TrustCor RootCert CA-2
-======================
------BEGIN CERTIFICATE-----
-MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w
-DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT
-eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0
-eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy
-MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h
-bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
-cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0
-IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb
-ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk
-RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1
-oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb
-XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1
-/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q
-jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP
-eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg
-rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
-8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU
-2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h
-Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp
-kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv
-2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3
-S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw
-PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv
-DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU
-RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE
-xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX
-RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ
------END CERTIFICATE-----
-
-TrustCor ECA-1
-==============
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP
-MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
-U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
-dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw
-N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5
-MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y
-IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR
-MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23
-xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc
-p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+
-fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj
-YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL
-f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
-AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u
-/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
-hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs
-J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC
-jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g==
------END CERTIFICATE-----
-
SSL.com Root Certification Authority RSA
========================================
-----BEGIN CERTIFICATE-----
diff --git a/kirby/composer.json b/kirby/composer.json
index c010c7b..42f6c61 100644
--- a/kirby/composer.json
+++ b/kirby/composer.json
@@ -3,7 +3,7 @@
"description": "The Kirby 3 core",
"license": "proprietary",
"type": "kirby-cms",
- "version": "3.8.3",
+ "version": "3.9.3",
"keywords": [
"kirby",
"cms",
@@ -24,7 +24,7 @@
"source": "https://github.com/getkirby/kirby"
},
"require": {
- "php": ">=8.0.0 <8.2.0",
+ "php": ">=8.0.0 <8.3.0",
"ext-SimpleXML": "*",
"ext-ctype": "*",
"ext-curl": "*",
@@ -36,15 +36,15 @@
"ext-libxml": "*",
"ext-mbstring": "*",
"ext-openssl": "*",
- "claviska/simpleimage": "3.7.0",
+ "claviska/simpleimage": "4.0.2",
"composer/semver": "3.3.2",
- "filp/whoops": "2.14.6",
+ "filp/whoops": "2.15.1",
"getkirby/composer-installer": "^1.2.1",
"laminas/laminas-escaper": "2.12.0",
"michelf/php-smartypants": "1.8.1",
- "phpmailer/phpmailer": "6.6.5",
- "symfony/polyfill-intl-idn": "1.26.0",
- "symfony/polyfill-mbstring": "1.26.0"
+ "phpmailer/phpmailer": "6.8.0",
+ "symfony/polyfill-intl-idn": "1.27.0",
+ "symfony/polyfill-mbstring": "1.27.0"
},
"replace": {
"symfony/polyfill-php72": "*"
@@ -105,7 +105,8 @@
"@test"
],
"fix": "php-cs-fixer fix",
- "test": "phpunit --stderr --coverage-html=tests/coverage",
+ "test": "phpunit --stderr",
+ "test:coverage": "phpunit --stderr --coverage-html=tests/coverage",
"zip": "composer archive --format=zip --file=dist"
}
}
diff --git a/kirby/composer.lock b/kirby/composer.lock
index 0489fb9..1bf005e 100644
--- a/kirby/composer.lock
+++ b/kirby/composer.lock
@@ -4,26 +4,30 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "a2b48616382734757b5cf4a9bd73ccdb",
+ "content-hash": "b6d2cf1d95980cd8e5109f436f393339",
"packages": [
{
"name": "claviska/simpleimage",
- "version": "3.7.0",
+ "version": "4.0.2",
"source": {
"type": "git",
"url": "https://github.com/claviska/SimpleImage.git",
- "reference": "abd15ced313c7b8041d7d73d8d2398b4f2510cf1"
+ "reference": "226d507cca0c8400d69bee7eb324158e3cbe246e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/claviska/SimpleImage/zipball/abd15ced313c7b8041d7d73d8d2398b4f2510cf1",
- "reference": "abd15ced313c7b8041d7d73d8d2398b4f2510cf1",
+ "url": "https://api.github.com/repos/claviska/SimpleImage/zipball/226d507cca0c8400d69bee7eb324158e3cbe246e",
+ "reference": "226d507cca0c8400d69bee7eb324158e3cbe246e",
"shasum": ""
},
"require": {
"ext-gd": "*",
- "league/color-extractor": "0.3.*",
- "php": ">=5.6.0"
+ "league/color-extractor": "0.4.*",
+ "php": ">=8.0"
+ },
+ "require-dev": {
+ "laravel/pint": "^1.5",
+ "phpstan/phpstan": "^1.10"
},
"type": "library",
"autoload": {
@@ -45,7 +49,7 @@
"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/3.7.0"
+ "source": "https://github.com/claviska/SimpleImage/tree/4.0.2"
},
"funding": [
{
@@ -53,7 +57,7 @@
"type": "github"
}
],
- "time": "2022-07-05T13:18:44+00:00"
+ "time": "2023-03-20T15:27:20+00:00"
},
{
"name": "composer/semver",
@@ -138,16 +142,16 @@
},
{
"name": "filp/whoops",
- "version": "2.14.6",
+ "version": "2.15.1",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "f7948baaa0330277c729714910336383286305da"
+ "reference": "e864ac957acd66e1565f25efda61e37791a5db0b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/f7948baaa0330277c729714910336383286305da",
- "reference": "f7948baaa0330277c729714910336383286305da",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/e864ac957acd66e1565f25efda61e37791a5db0b",
+ "reference": "e864ac957acd66e1565f25efda61e37791a5db0b",
"shasum": ""
},
"require": {
@@ -197,7 +201,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.14.6"
+ "source": "https://github.com/filp/whoops/tree/2.15.1"
},
"funding": [
{
@@ -205,7 +209,7 @@
"type": "github"
}
],
- "time": "2022-11-02T16:23:29+00:00"
+ "time": "2023-03-06T18:09:13+00:00"
},
{
"name": "getkirby/composer-installer",
@@ -318,33 +322,36 @@
},
{
"name": "league/color-extractor",
- "version": "0.3.2",
+ "version": "0.4.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/color-extractor.git",
- "reference": "837086ec60f50c84c611c613963e4ad2e2aec806"
+ "reference": "21fcac6249c5ef7d00eb83e128743ee6678fe505"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/color-extractor/zipball/837086ec60f50c84c611c613963e4ad2e2aec806",
- "reference": "837086ec60f50c84c611c613963e4ad2e2aec806",
+ "url": "https://api.github.com/repos/thephpleague/color-extractor/zipball/21fcac6249c5ef7d00eb83e128743ee6678fe505",
+ "reference": "21fcac6249c5ef7d00eb83e128743ee6678fe505",
"shasum": ""
},
"require": {
"ext-gd": "*",
- "php": ">=5.4.0"
+ "php": "^7.3 || ^8.0"
},
"replace": {
"matthecat/colorextractor": "*"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "~2",
- "phpunit/phpunit": "~5"
+ "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": {
- "": "src"
+ "League\\ColorExtractor\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -370,9 +377,9 @@
],
"support": {
"issues": "https://github.com/thephpleague/color-extractor/issues",
- "source": "https://github.com/thephpleague/color-extractor/tree/master"
+ "source": "https://github.com/thephpleague/color-extractor/tree/0.4.0"
},
- "time": "2016-12-15T09:30:02+00:00"
+ "time": "2022-09-24T15:57:16+00:00"
},
{
"name": "michelf/php-smartypants",
@@ -430,16 +437,16 @@
},
{
"name": "phpmailer/phpmailer",
- "version": "v6.6.5",
+ "version": "v6.8.0",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
- "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627"
+ "reference": "df16b615e371d81fb79e506277faea67a1be18f1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/8b6386d7417526d1ea4da9edb70b8352f7543627",
- "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627",
+ "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/df16b615e371d81fb79e506277faea67a1be18f1",
+ "reference": "df16b615e371d81fb79e506277faea67a1be18f1",
"shasum": ""
},
"require": {
@@ -449,17 +456,19 @@
"php": ">=5.5.0"
},
"require-dev": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "doctrine/annotations": "^1.2",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.2",
+ "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": "^9.3.5",
"roave/security-advisories": "dev-latest",
- "squizlabs/php_codesniffer": "^3.6.2",
- "yoast/phpunit-polyfills": "^1.0.0"
+ "squizlabs/php_codesniffer": "^3.7.1",
+ "yoast/phpunit-polyfills": "^1.0.4"
},
"suggest": {
"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",
@@ -496,7 +505,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/v6.6.5"
+ "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.8.0"
},
"funding": [
{
@@ -504,7 +513,7 @@
"type": "github"
}
],
- "time": "2022-10-07T12:23:10+00:00"
+ "time": "2023-03-06T14:43:22+00:00"
},
{
"name": "psr/log",
@@ -558,16 +567,16 @@
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8"
+ "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
- "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
+ "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
"shasum": ""
},
"require": {
@@ -581,7 +590,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -625,7 +634,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
},
"funding": [
{
@@ -641,7 +650,7 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
@@ -729,16 +738,16 @@
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e"
+ "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
- "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
"shasum": ""
},
"require": {
@@ -753,7 +762,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -792,7 +801,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
},
"funding": [
{
@@ -808,7 +817,7 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
}
],
"packages-dev": [],
@@ -818,7 +827,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": ">=8.0.0 <8.2.0",
+ "php": ">=8.0.0 <8.3.0",
"ext-simplexml": "*",
"ext-ctype": "*",
"ext-curl": "*",
diff --git a/kirby/config/aliases.php b/kirby/config/aliases.php
index 527ede1..cadd7d0 100644
--- a/kirby/config/aliases.php
+++ b/kirby/config/aliases.php
@@ -53,6 +53,10 @@ return [
// panel classes
'panel' => 'Kirby\Panel\Panel',
+ // template classes
+ 'snippet' => 'Kirby\Template\Snippet',
+ 'slot' => 'Kirby\Template\Slot',
+
// toolkit classes
'a' => 'Kirby\Toolkit\A',
'c' => 'Kirby\Toolkit\Config',
@@ -73,6 +77,7 @@ return [
'kirby\cms\form' => 'Kirby\Form\Form',
'kirby\cms\kirbytag' => 'Kirby\Text\KirbyTag',
'kirby\cms\kirbytags' => 'Kirby\Text\KirbyTags',
+ 'kirby\cms\template' => 'Kirby\Template\Template',
'kirby\toolkit\dir' => 'Kirby\Filesystem\Dir',
'kirby\toolkit\f' => 'Kirby\Filesystem\F',
'kirby\toolkit\file' => 'Kirby\Filesystem\File',
diff --git a/kirby/config/api/models/System.php b/kirby/config/api/models/System.php
index c69a23d..725d3ed 100644
--- a/kirby/config/api/models/System.php
+++ b/kirby/config/api/models/System.php
@@ -35,8 +35,9 @@ return [
$code = $this->user()?->language() ??
$this->kirby()->panelLanguage();
- return $this->kirby()->translation($code) ??
- $this->kirby()->translation('en');
+ return
+ $this->kirby()->translation($code) ??
+ $this->kirby()->translation('en');
},
'kirbytext' => fn () => $this->kirby()->option('panel.kirbytext') ?? true,
'user' => fn () => $this->user(),
diff --git a/kirby/config/api/routes/files.php b/kirby/config/api/routes/files.php
index 3194b88..78d46da 100644
--- a/kirby/config/api/routes/files.php
+++ b/kirby/config/api/routes/files.php
@@ -38,14 +38,17 @@ return [
// move_uploaded_file() not working with unit test
// @codeCoverageIgnoreStart
return $this->upload(function ($source, $filename) use ($path) {
- return $this->parent($path)->createFile([
+ $props = [
'content' => [
'sort' => $this->requestBody('sort')
],
'source' => $source,
'template' => $this->requestBody('template'),
'filename' => $filename
- ]);
+ ];
+
+ // move the source file from the temp dir
+ return $this->parent($path)->createFile($props, true);
});
// @codeCoverageIgnoreEnd
}
@@ -95,8 +98,9 @@ return [
'pattern' => $pattern . '/files/(:any)',
'method' => 'POST',
'action' => function (string $path, string $filename) {
+ // move the source file from the temp dir
return $this->upload(
- fn ($source) => $this->file($path, $filename)->replace($source)
+ fn ($source) => $this->file($path, $filename)->replace($source, true)
);
}
],
diff --git a/kirby/config/api/routes/lock.php b/kirby/config/api/routes/lock.php
index 71ff785..c7095d9 100644
--- a/kirby/config/api/routes/lock.php
+++ b/kirby/config/api/routes/lock.php
@@ -4,6 +4,9 @@
/**
* Content Lock Routes
*/
+
+use Kirby\Exception\NotFoundException;
+
return [
[
'pattern' => '(:all)/lock',
@@ -25,7 +28,11 @@ return [
'pattern' => '(:all)/lock',
'method' => 'DELETE',
'action' => function (string $path) {
- return $this->parent($path)->lock()?->remove();
+ try {
+ return $this->parent($path)->lock()?->remove();
+ } catch (NotFoundException) {
+ return true;
+ }
}
],
[
@@ -39,7 +46,11 @@ return [
'pattern' => '(:all)/unlock',
'method' => 'DELETE',
'action' => function (string $path) {
- return $this->parent($path)->lock()?->resolve();
+ try {
+ return $this->parent($path)->lock()?->resolve();
+ } catch (NotFoundException) {
+ return true;
+ }
}
],
];
diff --git a/kirby/config/api/routes/users.php b/kirby/config/api/routes/users.php
index c36ad31..0f97f2b 100644
--- a/kirby/config/api/routes/users.php
+++ b/kirby/config/api/routes/users.php
@@ -82,11 +82,16 @@ return [
$this->user($id)->avatar()?->delete();
return $this->upload(
- fn ($source, $filename) => $this->user($id)->createFile([
- 'filename' => 'profile.' . F::extension($filename),
- 'template' => 'avatar',
- 'source' => $source
- ]),
+ function ($source, $filename) use ($id) {
+ $props = [
+ 'filename' => 'profile.' . F::extension($filename),
+ 'template' => 'avatar',
+ 'source' => $source
+ ];
+
+ // move the source file from the temp dir
+ return $this->user($id)->createFile($props, true);
+ },
single: true
);
}
diff --git a/kirby/config/areas/system/dialogs.php b/kirby/config/areas/system/dialogs.php
index 35a3f9a..00502a8 100644
--- a/kirby/config/areas/system/dialogs.php
+++ b/kirby/config/areas/system/dialogs.php
@@ -44,10 +44,17 @@ return [
// license registration
'registration' => [
'load' => function () {
+ $system = App::instance()->system();
+
return [
'component' => 'k-form-dialog',
'props' => [
'fields' => [
+ 'domain' => [
+ 'type' => 'info',
+ 'theme' => $system->isLocal() ? 'notice' : 'info',
+ 'text' => I18n::template('license.register.' . ($system->isLocal() ? 'local' : 'domain'), ['host' => $system->indexUrl()])
+ ],
'license' => [
'label' => I18n::translate('license.register.label'),
'type' => 'text',
@@ -56,9 +63,7 @@ return [
'placeholder' => 'K3-',
'help' => I18n::translate('license.register.help')
],
- 'email' => Field::email([
- 'required' => true
- ])
+ 'email' => Field::email(['required' => true])
],
'submitButton' => I18n::translate('license.register'),
'value' => [
diff --git a/kirby/config/components.php b/kirby/config/components.php
index 042a426..1019968 100644
--- a/kirby/config/components.php
+++ b/kirby/config/components.php
@@ -5,7 +5,6 @@ use Kirby\Cms\Collection;
use Kirby\Cms\File;
use Kirby\Cms\FileVersion;
use Kirby\Cms\Page;
-use Kirby\Cms\Template;
use Kirby\Cms\User;
use Kirby\Data\Data;
use Kirby\Email\PHPMailer as Emailer;
@@ -14,11 +13,12 @@ use Kirby\Filesystem\Filename;
use Kirby\Http\Uri;
use Kirby\Http\Url;
use Kirby\Image\Darkroom;
+use Kirby\Template\Snippet;
+use Kirby\Template\Template;
use Kirby\Text\Markdown;
use Kirby\Text\SmartyPants;
use Kirby\Toolkit\A;
use Kirby\Toolkit\Str;
-use Kirby\Toolkit\Tpl as Snippet;
return [
@@ -142,6 +142,7 @@ return [
* @return \Kirby\Cms\Collection|bool
*/
'search' => function (App $kirby, Collection $collection, string $query = null, $params = []) {
+ // empty search query
if (empty(trim($query ?? '')) === true) {
return $collection->limit(0);
}
@@ -159,28 +160,31 @@ return [
$options = array_merge($defaults, $params);
$collection = clone $collection;
- $searchWords = preg_replace('/(\s)/u', ',', $query);
- $searchWords = Str::split($searchWords, ',', $options['minlength']);
- $lowerQuery = Str::lower($query);
- $exactQuery = $options['words'] ? '(\b' . preg_quote($query) . '\b)' : preg_quote($query);
+
+ $words = preg_replace('/(\s)/u', ',', $query);
+ $words = Str::split($words, ',', $options['minlength']);
+ $exact = $options['words'] ? '(\b' . preg_quote($query) . '\b)' : preg_quote($query);
+ $query = Str::lower($query);
if (empty($options['stopwords']) === false) {
- $searchWords = array_diff($searchWords, $options['stopwords']);
+ $words = array_diff($words, $options['stopwords']);
}
- $searchWords = array_map(function ($value) use ($options) {
- return $options['words'] ? '\b' . preg_quote($value) . '\b' : preg_quote($value);
- }, $searchWords);
+ $words = A::map(
+ $words,
+ fn ($value) => $options['words'] ? '\b' . preg_quote($value) . '\b' : preg_quote($value)
+ );
// returns an empty collection if there is no search word
- if (empty($searchWords) === true) {
+ if (empty($words) === true) {
return $collection->limit(0);
}
- $preg = '!(' . implode('|', $searchWords) . ')!i';
- $results = $collection->filter(function ($item) use ($query, $preg, $options, $lowerQuery, $exactQuery) {
- $data = $item->content()->toArray();
- $keys = array_keys($data);
+ $preg = '!(' . implode('|', $words) . ')!i';
+ $scores = [];
+ $results = $collection->filter(function ($item) use ($query, $exact, $preg, $options, &$scores) {
+ $data = $item->content()->toArray();
+ $keys = array_keys($data);
$keys[] = 'id';
if ($item instanceof User) {
@@ -200,8 +204,10 @@ return [
$keys = array_intersect($keys, $fields);
}
- $item->searchHits = 0;
- $item->searchScore = 0;
+ $scoring = [
+ 'hits' => 0,
+ 'score' => 0
+ ];
foreach ($keys as $key) {
$score = $options['score'][$key] ?? 1;
@@ -210,32 +216,39 @@ return [
$lowerValue = Str::lower($value);
// check for exact matches
- if ($lowerQuery == $lowerValue) {
- $item->searchScore += 16 * $score;
- $item->searchHits += 1;
+ if ($query == $lowerValue) {
+ $scoring['score'] += 16 * $score;
+ $scoring['hits'] += 1;
// check for exact beginning matches
- } elseif ($options['words'] === false && Str::startsWith($lowerValue, $lowerQuery) === true) {
- $item->searchScore += 8 * $score;
- $item->searchHits += 1;
+ } elseif (
+ $options['words'] === false &&
+ Str::startsWith($lowerValue, $query) === true
+ ) {
+ $scoring['score'] += 8 * $score;
+ $scoring['hits'] += 1;
// check for exact query matches
- } elseif ($matches = preg_match_all('!' . $exactQuery . '!i', $value, $r)) {
- $item->searchScore += 2 * $score;
- $item->searchHits += $matches;
+ } elseif ($matches = preg_match_all('!' . $exact . '!i', $value, $r)) {
+ $scoring['score'] += 2 * $score;
+ $scoring['hits'] += $matches;
}
// check for any match
if ($matches = preg_match_all($preg, $value, $r)) {
- $item->searchHits += $matches;
- $item->searchScore += $matches * $score;
+ $scoring['score'] += $matches * $score;
+ $scoring['hits'] += $matches;
}
}
- return $item->searchHits > 0;
+ $scores[$item->id()] = $scoring;
+ return $scoring['hits'] > 0;
});
- return $results->sort('searchScore', 'desc');
+ return $results->sort(
+ fn ($item) => $scores[$item->id()]['score'],
+ 'desc'
+ );
},
/**
@@ -267,23 +280,8 @@ return [
* @param string|array $name Snippet name
* @param array $data Data array for the snippet
*/
- 'snippet' => function (App $kirby, $name, array $data = []): string {
- $snippets = A::wrap($name);
-
- foreach ($snippets as $name) {
- $name = (string)$name;
- $file = $kirby->root('snippets') . '/' . $name . '.php';
-
- if (file_exists($file) === false) {
- $file = $kirby->extensions('snippets')[$name] ?? null;
- }
-
- if ($file) {
- break;
- }
- }
-
- return Snippet::load($file, $data);
+ 'snippet' => function (App $kirby, string|array|null $name, array $data = [], bool $slots = false): Snippet|string {
+ return Snippet::factory($name, $data, $slots);
},
/**
@@ -293,7 +291,7 @@ return [
* @param string $name Template name
* @param string $type Extension type
* @param string $defaultType Default extension type
- * @return \Kirby\Cms\Template
+ * @return \Kirby\Template\Template
*/
'template' => function (App $kirby, string $name, string $type = 'html', string $defaultType = 'html') {
return new Template($name, $type, $defaultType);
diff --git a/kirby/config/fields/mixins/upload.php b/kirby/config/fields/mixins/upload.php
index 10cfc7b..daa0fef 100644
--- a/kirby/config/fields/mixins/upload.php
+++ b/kirby/config/fields/mixins/upload.php
@@ -56,11 +56,14 @@ return [
}
return $api->upload(function ($source, $filename) use ($parent, $params, $map) {
- $file = $parent->createFile([
+ $props = [
'source' => $source,
'template' => $params['template'] ?? null,
'filename' => $filename,
- ]);
+ ];
+
+ // move the source file from the temp dir
+ $file = $parent->createFile($props, true);
if ($file instanceof File === false) {
throw new Exception('The file could not be uploaded');
diff --git a/kirby/config/fields/select.php b/kirby/config/fields/select.php
index 04b468d..4c06b5b 100644
--- a/kirby/config/fields/select.php
+++ b/kirby/config/fields/select.php
@@ -1,5 +1,7 @@
'radio',
'props' => [
@@ -20,5 +22,16 @@ return [
'placeholder' => function (string $placeholder = '—') {
return $placeholder;
},
+ ],
+ 'methods' => [
+ 'getOptions' => function () {
+ $props = FieldOptions::polyfill($this->props);
+
+ // disable safe mode as the select field does not
+ // render HTML for the option text
+ $options = FieldOptions::factory($props['options'], false);
+
+ return $options->render($this->model());
+ }
]
];
diff --git a/kirby/config/fields/text.php b/kirby/config/fields/text.php
index 7abd86f..0585af2 100644
--- a/kirby/config/fields/text.php
+++ b/kirby/config/fields/text.php
@@ -10,7 +10,7 @@ return [
* The field value will be converted with the selected converter before the value gets saved. Available converters: `lower`, `upper`, `ucfirst`, `slug`
*/
'converter' => function ($value = null) {
- if ($value !== null && in_array($value, array_keys($this->converters())) === false) {
+ if ($value !== null && array_key_exists($value, $this->converters()) === false) {
throw new InvalidArgumentException([
'key' => 'field.converter.invalid',
'data' => ['converter' => $value]
diff --git a/kirby/config/helpers.php b/kirby/config/helpers.php
index 3bb94af..b051f42 100644
--- a/kirby/config/helpers.php
+++ b/kirby/config/helpers.php
@@ -1,13 +1,20 @@
collection($name);
}
@@ -61,7 +64,7 @@ if (Helpers::hasOverride('csrf') === false) { // @codeCoverageIgnore
* @param string|null $check Pass a token here to compare it to the one in the session
* @return string|bool Either the token or a boolean check result
*/
- function csrf(string|null $check = null)
+ function csrf(string|null $check = null): string|bool
{
// check explicitly if there have been no arguments at all;
// checking for null introduces a security issue because null could come
@@ -79,11 +82,12 @@ if (Helpers::hasOverride('css') === false) { // @codeCoverageIgnore
* Creates one or multiple CSS link tags
*
* @param string|array $url Relative or absolute URLs, an array of URLs or `@auto` for automatic template css loading
- * @param string|array $options Pass an array of attributes for the link tag or a media attribute string
- * @return string|null
+ * @param string|array|null $options Pass an array of attributes for the link tag or a media attribute string
*/
- function css($url, $options = null): string|null
- {
+ function css(
+ string|array $url,
+ string|array|null $options = null
+ ): string|null {
return Html::css($url, $options);
}
}
@@ -93,7 +97,6 @@ if (Helpers::hasOverride('deprecated') === false) { // @codeCoverageIgnore
* Triggers a deprecation warning if debug mode is active
* @since 3.3.0
*
- * @param string $message
* @return bool Whether the warning was triggered
*/
function deprecated(string $message): bool
@@ -106,12 +109,8 @@ if (Helpers::hasOverride('dump') === false) { // @codeCoverageIgnore
/**
* Simple object and variable dumper
* to help with debugging.
- *
- * @param mixed $variable
- * @param bool $echo
- * @return string
*/
- function dump($variable, bool $echo = true): string
+ function dump(mixed $variable, bool $echo = true): string
{
return Helpers::dump($variable, $echo);
}
@@ -121,16 +120,35 @@ if (Helpers::hasOverride('e') === false) { // @codeCoverageIgnore
/**
* Smart version of echo with an if condition as first argument
*
- * @param mixed $condition
* @param mixed $value The string to be echoed if the condition is true
* @param mixed $alternative An alternative string which should be echoed when the condition is false
*/
- function e($condition, $value, $alternative = null)
+ function e(mixed $condition, mixed $value, mixed $alternative = null): void
{
echo $condition ? $value : $alternative;
}
}
+if (Helpers::hasOverride('endslot') === false) { // @codeCoverageIgnore
+ /**
+ * Ends the last started template slot
+ */
+ function endslot(): void
+ {
+ Slot::end();
+ }
+}
+
+if (Helpers::hasOverride('endsnippet') === false) { // @codeCoverageIgnore
+ /**
+ * Renders the currently active snippet with slots
+ */
+ function endsnippet(): void
+ {
+ Snippet::end();
+ }
+}
+
if (Helpers::hasOverride('esc') === false) { // @codeCoverageIgnore
/**
* Escape context specific output
@@ -151,9 +169,8 @@ if (Helpers::hasOverride('get') === false) { // @codeCoverageIgnore
*
* @param mixed $key The key to look for. Pass false or null to return the entire request array.
* @param mixed $default Optional default value, which should be returned if no element has been found
- * @return mixed
*/
- function get($key = null, $default = null)
+ function get(mixed $key = null, mixed $default = null): mixed
{
return App::instance()->request()->get($key, $default);
}
@@ -162,10 +179,6 @@ if (Helpers::hasOverride('get') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('gist') === false) { // @codeCoverageIgnore
/**
* Embeds a Github Gist
- *
- * @param string $url
- * @param string|null $file
- * @return string
*/
function gist(string $url, string|null $file = null): string
{
@@ -181,11 +194,9 @@ if (Helpers::hasOverride('go') === false) { // @codeCoverageIgnore
* Redirects to the given Urls
* Urls can be relative or absolute.
*
- * @param string $url
- * @param int $code
- * @return void
+ * @todo Change return type to `never` once support for PHP 8.0 is dropped
*/
- function go(string $url = '/', int $code = 302)
+ function go(string $url = '/', int $code = 302): void
{
Response::go($url, $code);
}
@@ -196,8 +207,6 @@ if (Helpers::hasOverride('h') === false) { // @codeCoverageIgnore
* Shortcut for html()
*
* @param string|null $string unencoded text
- * @param bool $keepTags
- * @return string
*/
function h(string|null $string, bool $keepTags = false): string
{
@@ -210,8 +219,6 @@ if (Helpers::hasOverride('html') === false) { // @codeCoverageIgnore
* Creates safe html by encoding special characters
*
* @param string|null $string unencoded text
- * @param bool $keepTags
- * @return string
*/
function html(string|null $string, bool $keepTags = false): string
{
@@ -226,11 +233,8 @@ if (Helpers::hasOverride('image') === false) { // @codeCoverageIgnore
*
* Example:
* = image('some/page/myimage.jpg') ?>
- *
- * @param string|null $path
- * @return \Kirby\Cms\File|null
*/
- function image(string|null $path = null)
+ function image(string|null $path = null): File|null
{
return App::instance()->image($path);
}
@@ -239,14 +243,12 @@ if (Helpers::hasOverride('image') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('invalid') === false) { // @codeCoverageIgnore
/**
* Runs a number of validators on a set of data and checks if the data is invalid
- *
- * @param array $data
- * @param array $rules
- * @param array $messages
- * @return array
*/
- function invalid(array $data = [], array $rules = [], array $messages = []): array
- {
+ function invalid(
+ array $data = [],
+ array $rules = [],
+ array $messages = []
+ ): array {
return V::invalid($data, $rules, $messages);
}
}
@@ -254,13 +256,11 @@ if (Helpers::hasOverride('invalid') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('js') === false) { // @codeCoverageIgnore
/**
* Creates a script tag to load a javascript file
- *
- * @param string|array $url
- * @param string|array $options
- * @return string|null
*/
- function js($url, $options = null): string|null
- {
+ function js(
+ string|array $url,
+ string|array|bool|null $options = null
+ ): string|null {
return Html::js($url, $options);
}
}
@@ -268,10 +268,8 @@ if (Helpers::hasOverride('js') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('kirby') === false) { // @codeCoverageIgnore
/**
* Returns the Kirby object in any situation
- *
- * @return \Kirby\Cms\App
*/
- function kirby()
+ function kirby(): App
{
return App::instance();
}
@@ -280,15 +278,13 @@ if (Helpers::hasOverride('kirby') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('kirbytag') === false) { // @codeCoverageIgnore
/**
* Makes it possible to use any defined Kirbytag as standalone function
- *
- * @param string|array $type
- * @param string|null $value
- * @param array $attr
- * @param array $data
- * @return string
*/
- function kirbytag($type, string|null $value = null, array $attr = [], array $data = []): string
- {
+ function kirbytag(
+ string|array $type,
+ string|null $value = null,
+ array $attr = [],
+ array $data = []
+ ): string {
return App::instance()->kirbytag($type, $value, $attr, $data);
}
}
@@ -297,10 +293,6 @@ if (Helpers::hasOverride('kirbytags') === false) { // @codeCoverageIgnore
/**
* Parses KirbyTags in the given string. Shortcut
* for `$kirby->kirbytags($text, $data)`
- *
- * @param string|null $text
- * @param array $data
- * @return string
*/
function kirbytags(string|null $text = null, array $data = []): string
{
@@ -312,10 +304,6 @@ if (Helpers::hasOverride('kirbytext') === false) { // @codeCoverageIgnore
/**
* Parses KirbyTags and Markdown in the
* given string. Shortcut for `$kirby->kirbytext()`
- *
- * @param string|null $text
- * @param array $data
- * @return string
*/
function kirbytext(string|null $text = null, array $data = []): string
{
@@ -328,10 +316,6 @@ if (Helpers::hasOverride('kirbytextinline') === false) { // @codeCoverageIgnore
* Parses KirbyTags and inline Markdown in the
* given string.
* @since 3.1.0
- *
- * @param string|null $text
- * @param array $options
- * @return string
*/
function kirbytextinline(string|null $text = null, array $options = []): string
{
@@ -343,10 +327,6 @@ if (Helpers::hasOverride('kirbytextinline') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('kt') === false) { // @codeCoverageIgnore
/**
* Shortcut for `kirbytext()` helper
- *
- * @param string|null $text
- * @param array $data
- * @return string
*/
function kt(string|null $text = null, array $data = []): string
{
@@ -358,10 +338,6 @@ if (Helpers::hasOverride('kti') === false) { // @codeCoverageIgnore
/**
* Shortcut for `kirbytextinline()` helper
* @since 3.1.0
- *
- * @param string|null $text
- * @param array $options
- * @return string
*/
function kti(string|null $text = null, array $options = []): string
{
@@ -373,10 +349,6 @@ if (Helpers::hasOverride('kti') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('load') === false) { // @codeCoverageIgnore
/**
* A super simple class autoloader
- *
- * @param array $classmap
- * @param string|null $base
- * @return void
*/
function load(array $classmap, string|null $base = null): void
{
@@ -388,10 +360,6 @@ if (Helpers::hasOverride('markdown') === false) { // @codeCoverageIgnore
/**
* Parses markdown in the given string. Shortcut for
* `$kirby->markdown($text)`
- *
- * @param string|null $text
- * @param array $options
- * @return string
*/
function markdown(string|null $text = null, array $options = []): string
{
@@ -402,12 +370,8 @@ if (Helpers::hasOverride('markdown') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('option') === false) { // @codeCoverageIgnore
/**
* Shortcut for `$kirby->option($key, $default)`
- *
- * @param string $key
- * @param mixed $default
- * @return mixed
*/
- function option(string $key, $default = null)
+ function option(string $key, mixed $default = null): mixed
{
return App::instance()->option($key, $default);
}
@@ -417,11 +381,8 @@ if (Helpers::hasOverride('page') === false) { // @codeCoverageIgnore
/**
* Fetches a single page by id or
* the current page when no id is specified
- *
- * @param string|null $id
- * @return \Kirby\Cms\Page|null
*/
- function page(string|null $id = null)
+ function page(string|null $id = null): Page|null
{
if (empty($id) === true) {
return App::instance()->site()->page();
@@ -434,11 +395,8 @@ if (Helpers::hasOverride('page') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('pages') === false) { // @codeCoverageIgnore
/**
* Helper to build pages collection
- *
- * @param string|array ...$id
- * @return \Kirby\Cms\Pages|null
*/
- function pages(...$id)
+ function pages(string|array ...$id): Pages|null
{
// ensure that a list of string arguments and an array
// as the first argument are treated the same
@@ -456,9 +414,6 @@ if (Helpers::hasOverride('param') === false) { // @codeCoverageIgnore
/**
* Returns a single param from the URL
*
- * @param string $key
- * @param string|null $fallback
- * @return string|null
* @psalm-return ($fallback is string ? string : string|null)
*/
function param(string $key, string|null $fallback = null): string|null
@@ -470,8 +425,6 @@ if (Helpers::hasOverride('param') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('params') === false) { // @codeCoverageIgnore
/**
* Returns all params from the current Url
- *
- * @return array
*/
function params(): array
{
@@ -483,12 +436,10 @@ if (Helpers::hasOverride('r') === false) { // @codeCoverageIgnore
/**
* Smart version of return with an if condition as first argument
*
- * @param mixed $condition
* @param mixed $value The string to be returned if the condition is true
* @param mixed $alternative An alternative string which should be returned when the condition is false
- * @return mixed
*/
- function r($condition, $value, $alternative = null)
+ function r(mixed $condition, mixed $value, mixed $alternative = null): mixed
{
return $condition ? $value : $alternative;
}
@@ -499,15 +450,13 @@ if (Helpers::hasOverride('router') === false) { // @codeCoverageIgnore
* Creates a micro-router and executes
* the routing action immediately
* @since 3.6.0
- *
- * @param string|null $path
- * @param string $method
- * @param array $routes
- * @param \Closure|null $callback
- * @return mixed
*/
- function router(string|null $path = null, string $method = 'GET', array $routes = [], Closure|null $callback = null)
- {
+ function router(
+ string|null $path = null,
+ string $method = 'GET',
+ array $routes = [],
+ Closure|null $callback = null
+ ): mixed {
return Router::execute($path, $method, $routes, $callback);
}
}
@@ -515,10 +464,8 @@ if (Helpers::hasOverride('router') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('site') === false) { // @codeCoverageIgnore
/**
* Returns the current site object
- *
- * @return \Kirby\Cms\Site
*/
- function site()
+ function site(): Site
{
return App::instance()->site();
}
@@ -527,24 +474,27 @@ if (Helpers::hasOverride('site') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('size') === false) { // @codeCoverageIgnore
/**
* Determines the size/length of numbers, strings, arrays and countable objects
- *
- * @param mixed $value
- * @return int
- * @throws \Kirby\Exception\InvalidArgumentException
*/
- function size($value): int
+ function size(mixed $value): int
{
return Helpers::size($value);
}
}
+if (Helpers::hasOverride('slot') === false) { // @codeCoverageIgnore
+ /**
+ * Starts a new template slot
+ */
+ function slot(string $name = 'default'): void
+ {
+ Slot::begin($name);
+ }
+}
+
if (Helpers::hasOverride('smartypants') === false) { // @codeCoverageIgnore
/**
* Enhances the given string with
* smartypants. Shortcut for `$kirby->smartypants($text)`
- *
- * @param string|null $text
- * @return string
*/
function smartypants(string|null $text = null): string
{
@@ -555,15 +505,14 @@ if (Helpers::hasOverride('smartypants') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('snippet') === false) { // @codeCoverageIgnore
/**
* Embeds a snippet from the snippet folder
- *
- * @param string|array $name
- * @param array|object $data
- * @param bool $return
- * @return string|null
*/
- function snippet($name, $data = [], bool $return = false): string|null
- {
- return App::instance()->snippet($name, $data, $return);
+ function snippet(
+ $name,
+ $data = [],
+ bool $return = false,
+ bool $slots = false
+ ): Snippet|string|null {
+ return App::instance()->snippet($name, $data, $return, $slots);
}
}
@@ -571,11 +520,8 @@ if (Helpers::hasOverride('svg') === false) { // @codeCoverageIgnore
/**
* Includes an SVG file by absolute or
* relative file path.
- *
- * @param string|\Kirby\Cms\File $file
- * @return string|false
*/
- function svg($file)
+ function svg(string|File $file): string|false
{
return Html::svg($file);
}
@@ -584,14 +530,12 @@ if (Helpers::hasOverride('svg') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('t') === false) { // @codeCoverageIgnore
/**
* Returns translate string for key from translation file
- *
- * @param string|array $key
- * @param string|null $fallback
- * @param string|null $locale
- * @return array|string|null
*/
- function t($key, string $fallback = null, string $locale = null)
- {
+ function t(
+ string|array $key,
+ string|null $fallback = null,
+ string|null $locale = null
+ ): string|array|Closure|null {
return I18n::translate($key, $fallback, $locale);
}
}
@@ -600,18 +544,14 @@ if (Helpers::hasOverride('tc') === false) { // @codeCoverageIgnore
/**
* Translates a count
*
- * @param string $key
- * @param int $count
- * @param string|null $locale
* @param bool $formatNumber If set to `false`, the count is not formatted
- * @return mixed
*/
function tc(
string $key,
int $count,
- string $locale = null,
+ string|null $locale = null,
bool $formatNumber = true
- ) {
+ ): mixed {
return I18n::translateCount($key, $count, $locale, $formatNumber);
}
}
@@ -621,12 +561,12 @@ if (Helpers::hasOverride('timestamp') === false) { // @codeCoverageIgnore
* Rounds the minutes of the given date
* by the defined step
*
- * @param string|null $date
* @param int|array|null $step array of `unit` and `size` to round to nearest
- * @return int|null
*/
- function timestamp(string|null $date = null, $step = null): int|null
- {
+ function timestamp(
+ string|null $date = null,
+ int|array|null $step = null
+ ): int|null {
return Date::roundedTimestamp($date, $step);
}
}
@@ -635,15 +575,13 @@ if (Helpers::hasOverride('tt') === false) { // @codeCoverageIgnore
/**
* Translate by key and then replace
* placeholders in the text
- *
- * @param string $key
- * @param string|array|null $fallback
- * @param array|null $replace
- * @param string|null $locale
- * @return string
*/
- function tt(string $key, $fallback = null, array|null $replace = null, string|null $locale = null): string
- {
+ function tt(
+ string $key,
+ string|array|null $fallback = null,
+ array|null $replace = null,
+ string|null $locale = null
+ ): string {
return I18n::template($key, $fallback, $replace, $locale);
}
}
@@ -651,15 +589,13 @@ if (Helpers::hasOverride('tt') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('twitter') === false) { // @codeCoverageIgnore
/**
* Builds a Twitter link
- *
- * @param string $username
- * @param string|null $text
- * @param string|null $title
- * @param string|null $class
- * @return string
*/
- function twitter(string $username, string|null $text = null, string|null $title = null, string|null $class = null): string
- {
+ function twitter(
+ string $username,
+ string|null $text = null,
+ string|null $title = null,
+ string|null $class = null
+ ): string {
return App::instance()->kirbytag([
'twitter' => $username,
'text' => $text,
@@ -672,13 +608,11 @@ if (Helpers::hasOverride('twitter') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('u') === false) { // @codeCoverageIgnore
/**
* Shortcut for url()
- *
- * @param string|null $path
- * @param array|string|null $options
- * @return string
*/
- function u(string|null $path = null, $options = null): string
- {
+ function u(
+ string|null $path = null,
+ array|string|null $options = null
+ ): string {
return Url::to($path, $options);
}
}
@@ -686,13 +620,11 @@ if (Helpers::hasOverride('u') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('url') === false) { // @codeCoverageIgnore
/**
* Builds an absolute URL for a given path
- *
- * @param string|null $path
- * @param array|string|null $options
- * @return string
*/
- function url(string|null $path = null, $options = null): string
- {
+ function url(
+ string|null $path = null,
+ array|string|null $options = null
+ ): string {
return Url::to($path, $options);
}
}
@@ -700,8 +632,6 @@ if (Helpers::hasOverride('url') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('uuid') === false) { // @codeCoverageIgnore
/**
* Creates a compliant v4 UUID
- *
- * @return string
*/
function uuid(): string
{
@@ -714,11 +644,6 @@ if (Helpers::hasOverride('video') === false) { // @codeCoverageIgnore
* Creates a video embed via iframe for Youtube or Vimeo
* videos. The embed Urls are automatically detected from
* the given Url.
- *
- * @param string $url
- * @param array $options
- * @param array $attr
- * @return string|null
*/
function video(string $url, array $options = [], array $attr = []): string|null
{
@@ -729,11 +654,6 @@ if (Helpers::hasOverride('video') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('vimeo') === false) { // @codeCoverageIgnore
/**
* Embeds a Vimeo video by URL in an iframe
- *
- * @param string $url
- * @param array $options
- * @param array $attr
- * @return string|null
*/
function vimeo(string $url, array $options = [], array $attr = []): string|null
{
@@ -746,11 +666,8 @@ if (Helpers::hasOverride('widont') === false) { // @codeCoverageIgnore
* The widont function makes sure that there are no
* typographical widows at the end of a paragraph –
* that's a single word in the last line
- *
- * @param string|null $string
- * @return string
*/
- function widont(string $string = null): string
+ function widont(string|null $string = null): string
{
return Str::widont($string);
}
@@ -759,11 +676,6 @@ if (Helpers::hasOverride('widont') === false) { // @codeCoverageIgnore
if (Helpers::hasOverride('youtube') === false) { // @codeCoverageIgnore
/**
* Embeds a Youtube video by URL in an iframe
- *
- * @param string $url
- * @param array $options
- * @param array $attr
- * @return string|null
*/
function youtube(string $url, array $options = [], array $attr = []): string|null
{
diff --git a/kirby/config/methods.php b/kirby/config/methods.php
index ab63592..a81780e 100644
--- a/kirby/config/methods.php
+++ b/kirby/config/methods.php
@@ -66,7 +66,8 @@ return function (App $app) {
try {
$blocks = Blocks::parse($field->value());
$blocks = Blocks::factory($blocks, [
- 'parent' => $field->parent()
+ 'parent' => $field->parent(),
+ 'field' => $field,
]);
return $blocks->filter('isHidden', false);
} catch (Throwable) {
@@ -192,7 +193,8 @@ return function (App $app) {
*/
'toLayouts' => function (Field $field) {
return Layouts::factory(Layouts::parse($field->value()), [
- 'parent' => $field->parent()
+ 'parent' => $field->parent(),
+ 'field' => $field,
]);
},
@@ -276,10 +278,10 @@ return function (App $app) {
* Converts the field value to a Unix timestamp
*
* @param \Kirby\Cms\Field $field
- * @return int
+ * @return int|false
*/
- 'toTimestamp' => function (Field $field): int {
- return strtotime($field->value);
+ 'toTimestamp' => function (Field $field): int|false {
+ return strtotime($field->value ?? '');
},
/**
@@ -326,7 +328,7 @@ return function (App $app) {
* Returns the number of words in the text
*/
'words' => function (Field $field) {
- return str_word_count(strip_tags($field->value));
+ return str_word_count(strip_tags($field->value ?? ''));
},
// manipulators
@@ -394,7 +396,7 @@ return function (App $app) {
// Obsolete elements, script tags, image maps and form elements have
// been excluded for safety reasons and as they are most likely not
// needed in most cases.
- $field->value = strip_tags($field->value, Html::$inlineList);
+ $field->value = strip_tags($field->value ?? '', Html::$inlineList);
return $field;
},
@@ -481,7 +483,7 @@ return function (App $app) {
* @return \Kirby\Cms\Field
*/
'nl2br' => function (Field $field) {
- $field->value = nl2br($field->value, false);
+ $field->value = nl2br($field->value ?? '', false);
return $field;
},
diff --git a/kirby/config/sections/files.php b/kirby/config/sections/files.php
index eeb5347..1b123d7 100644
--- a/kirby/config/sections/files.php
+++ b/kirby/config/sections/files.php
@@ -57,6 +57,11 @@ return [
// search
if ($this->search === true && empty($this->searchterm()) === false) {
$files = $files->search($this->searchterm());
+
+ // disable flip and sortBy while searching
+ // to show most relevant results
+ $this->flip = false;
+ $this->sortBy = null;
}
// sort
@@ -157,10 +162,9 @@ return [
}
// count all uploaded files
- $total = count($this->data);
- $max = $this->max ? $this->max - $total : null;
+ $max = $this->max ? $this->max - $this->total : null;
- if ($this->max && $total === $this->max - 1) {
+ if ($this->max && $this->total === $this->max - 1) {
$multiple = false;
} else {
$multiple = true;
@@ -174,7 +178,10 @@ return [
'max' => $max,
'api' => $this->parent->apiUrl(true) . '/files',
'attributes' => array_filter([
- 'sort' => $this->sortable === true ? $total + 1 : null,
+ // TODO: an edge issue that needs to be solved:
+ // if multiple users load the same section at the same time
+ // and upload a file, uploaded files have the same sort number
+ 'sort' => $this->sortable === true ? $this->total + 1 : null,
'template' => $template
])
];
diff --git a/kirby/config/sections/pages.php b/kirby/config/sections/pages.php
index 5f5a367..c9b23b7 100644
--- a/kirby/config/sections/pages.php
+++ b/kirby/config/sections/pages.php
@@ -94,6 +94,11 @@ return [
// search
if ($this->search === true && empty($this->searchterm()) === false) {
$pages = $pages->search($this->searchterm());
+
+ // disable flip and sortBy while searching
+ // to show most relevant results
+ $this->flip = false;
+ $this->sortBy = null;
}
// sort
diff --git a/kirby/dependencies/parsedown-extra/ParsedownExtra.php b/kirby/dependencies/parsedown-extra/ParsedownExtra.php
index 6328eac..2f9c62d 100644
--- a/kirby/dependencies/parsedown-extra/ParsedownExtra.php
+++ b/kirby/dependencies/parsedown-extra/ParsedownExtra.php
@@ -570,8 +570,18 @@ class ParsedownExtra extends Parsedown
$DOMDocument = new DOMDocument();
- # http://stackoverflow.com/q/11309194/200145
- $elementMarkup = mb_convert_encoding($elementMarkup, 'HTML-ENTITIES', 'UTF-8');
+ // Migrating away from `mb_convert_encoding($elementMarkup,
+ //'HTML-ENTITIES', 'UTF-8');` has caused multibyte characters like
+ // emojis not to be converted into entities, which is needed so that
+ // the `DOM` extension can properly parse the markup.
+ // The following line works like this: It treats the input string
+ // as UTF-8 and converts every Unicode character with 8 or more bits
+ // (= character code starting at 128 or 0x80 up to the Unicode limit
+ // of 0x10ffff) to an entity; the third and fourth arguments for the
+ // map are not needed for our use case and are set to the default values
+ // (no offset and a full mask)
+ // [http://stackoverflow.com/q/11309194/200145]
+ $elementMarkup = mb_encode_numericentity($elementMarkup, [0x80, 0x10ffff, 0, 0xffffff], 'UTF-8');
# Ensure that saveHTML() is not remove new line characters. New lines will be split by this character.
$DOMDocument->formatOutput = true;
diff --git a/kirby/i18n/translations/bg.json b/kirby/i18n/translations/bg.json
index 5fcd118..e384e9f 100644
--- a/kirby/i18n/translations/bg.json
+++ b/kirby/i18n/translations/bg.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "You must add at least one block",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Email шаблонът \"{name}\" не може да бъде открит",
"error.field.converter.invalid": "Невалиден конвертор \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "The name must not be empty",
"error.file.changeName.permission": "Не можете да смените името на \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Все още не са избрани страници",
"field.structure.delete.confirm": "Сигурни ли сте, че искате да изтриете това вписване?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Все още няма статии",
"field.users.empty": "Все още не са избрани потребители",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Панелът не може да бъде инсталиран",
"installation.issues.mbstring": "Изисква се разширението
MB String
",
"installation.issues.media": "Папката /media
не съществува или няма права за запис",
- "installation.issues.php": "Бъдете сигурни, че използвате PHP 7+
",
+ "installation.issues.php": "Бъдете сигурни, че използвате PHP 8+
",
"installation.issues.server": "Kirby изисква Apache
, Nginx
или Caddy
",
"installation.issues.sessions": "The /site/sessions
folder does not exist or is not writable",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "You received your license code after the purchase via email. Please copy and paste it to register.",
"license.register.label": "Please enter your license code",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Thank you for supporting Kirby",
"license.unregistered": "Това е нерегистрирана демо версия на Kirby",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/ca.json b/kirby/i18n/translations/ca.json
index ce9a2cc..33fb1e7 100644
--- a/kirby/i18n/translations/ca.json
+++ b/kirby/i18n/translations/ca.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "You must add at least one block",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "No es pot trobar la configuració de correu electrònic \"{name}\"",
"error.field.converter.invalid": "Convertidor no vàlid \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "El nom no pot estar buit",
"error.file.changeName.permission": "No tens permís per canviar el nom de \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Encara no s'ha seleccionat cap pàgina",
"field.structure.delete.confirm": "Segur que voleu eliminar aquesta fila?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Encara no hi ha entrades.",
"field.users.empty": "Encara no s'ha seleccionat cap usuari",
@@ -318,7 +322,7 @@
"installation.issues.headline": "El panell no es pot instal·lar",
"installation.issues.mbstring": "Es requereix l'extensió de MB String
",
"installation.issues.media": "La carpeta /media
no existeix o no es pot escriure",
- "installation.issues.php": "Assegureu-vos d'utilitzar PHP 7+
",
+ "installation.issues.php": "Assegureu-vos d'utilitzar PHP 8+
",
"installation.issues.server": "Kirby requereix Apache
, Nginx
o Caddy
",
"installation.issues.sessions": "La carpeta /site/sessions
no existeix o no es pot escriure",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "Heu rebut el codi de la vostra llicència després de la compra, per correu electrònic. Copieu-lo i enganxeu-lo per registrar-vos.",
"license.register.label": "Si us plau, introdueixi el seu codi de llicència",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Gràcies per donar suport a Kirby",
"license.unregistered": "Aquesta és una demo no registrada de Kirby",
"license.unregistered.label": "Unregistered",
@@ -382,7 +388,7 @@
"login.toggleText.password-reset.email": "Forgot your password?",
"login.toggleText.password-reset.email-password": "← Back to login",
- "logout": "Tancar sessi\u00f3",
+ "logout": "Tancar sessió",
"menu": "Menú",
"meridiem": "AM/PM",
diff --git a/kirby/i18n/translations/cs.json b/kirby/i18n/translations/cs.json
index 8487826..9d49e41 100644
--- a/kirby/i18n/translations/cs.json
+++ b/kirby/i18n/translations/cs.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Musíte přidat alespoň jeden blok",
"error.blocks.validation": "V poli \"{field}\" v bloku {index} je při použití \"{fieldset}\" typu chyba",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Nelze nalézt emailové přednastavení \"{name}\"",
"error.field.converter.invalid": "Neplatný konvertor \"{converter}\"",
+ "error.field.type.missing": "Pole \"{ name }\": Typ pole \"{ type }\" neexistuje",
"error.file.changeName.empty": "Toto jméno nesmí být prázdné",
"error.file.changeName.permission": "Nemáte povoleno změnit jméno souboru \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Nebyly zatím vybrány žádné stránky",
"field.structure.delete.confirm": "Opravdu chcete smazat tento z\u00e1znam?",
+ "field.structure.delete.confirm.all": "Opravdu chcete smazat všechny záznamy?",
"field.structure.empty": "Zat\u00edm nejsou \u017e\u00e1dn\u00e9 z\u00e1znamy.",
"field.users.empty": "Nebyli zatím vybráni žádní uživatelé",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Panel nelze nainstalovat",
"installation.issues.mbstring": "Je vyžadováno rozšířeníMB String
",
"installation.issues.media": "Složka/media
neexistuje, nebo nemá povolený zápis",
- "installation.issues.php": "Ujistěte se, že používátePHP 7+
",
+ "installation.issues.php": "Ujistěte se, že používátePHP 8+
",
"installation.issues.server": "Kirby vyžadujeApache
, Nginx
neboCaddy
",
"installation.issues.sessions": "Složka/site/sessions
neexistuje, nebo nemá povolený zápis",
@@ -349,6 +353,8 @@
"license.manage": "Spravovat licence",
"license.register.help": "Licenční kód jste po zakoupení obdrželi na email. Vložte prosím kód a zaregistrujte Vaší kopii.",
"license.register.label": "Zadejte prosím licenční kód",
+ "license.register.domain": "Vaše licence bude zaregistrována na {host}.",
+ "license.register.local": "Chystáte se registrovat licenci na Vaší lokální doméně {host}. Pokud bude tato stránka nasazena na veřejnou doménu, registrujte prosím licenci až tam. Pokud je {host} opravdu doménou, na které si přejete licenci registrovat, pokračujte prosím dále.",
"license.register.success": "Děkujeme Vám za podporu Kirby",
"license.unregistered": "Toto je neregistrovaná kopie Kirby",
"license.unregistered.label": "Neregistrovaný",
@@ -382,7 +388,7 @@
"login.toggleText.password-reset.email": "Zapomenuté heslo?",
"login.toggleText.password-reset.email-password": "← Zpět na přihlášení",
- "logout": "Odhl\u00e1sit se",
+ "logout": "Odhlásit se",
"menu": "Menu",
"meridiem": "AM/PM",
@@ -454,7 +460,7 @@
"paste": "Vložit",
"paste.after": "Vložit za",
"pixel": "Pixel",
- "plugin": "Plugin",
+ "plugin": "Doplňek",
"plugins": "Doplňky",
"prev": "Předchozí",
"preview": "Náhled",
@@ -494,24 +500,24 @@
"stats.empty": "Žádná hlášení",
"system.issues.content": "Složka content je zřejmě přístupná zvenčí",
- "system.issues.eol.kirby": "Your installed Kirby version has reached end-of-life and will not receive further security updates",
- "system.issues.eol.plugin": "Your installed version of the { plugin } plugin is has reached end-of-life and will not receive further security updates",
+ "system.issues.eol.kirby": "Instalovaná verze Kirby dosáhla konce životnosti a nebude již dále dostávat bezpečnostní aktualizace",
+ "system.issues.eol.plugin": "Instalovaná verze doplňku { plugin } dosáhla konce životnosti a nebude již dále dostávat bezpečnostní aktualizace",
"system.issues.debug": "Debug mode musí být v produkci vypnutý",
"system.issues.git": "Složka .git je zřejmě přístupná zvenčí",
- "system.issues.https": "Při všechny stránky doporučujeme používat protokol HTTPS",
+ "system.issues.https": "Pro všechny stránky doporučujeme používat protokol HTTPS",
"system.issues.kirby": "Složka kirby je zřejmě přístupná zvenčí",
"system.issues.site": "Složka site je zřejmě přístupná zvenčí",
- "system.issues.vulnerability.kirby": "Your installation might be affected by the following vulnerability ({ severity } severity): { description }",
- "system.issues.vulnerability.plugin": "Your installation might be affected by the following vulnerability in the { plugin } plugin ({ severity } severity): { description }",
- "system.updateStatus": "Update status",
- "system.updateStatus.error": "Could not check for updates",
- "system.updateStatus.not-vulnerable": "No known vulnerabilities",
- "system.updateStatus.security-update": "Free security update { version } available",
- "system.updateStatus.security-upgrade": "Upgrade { version } with security fixes available",
- "system.updateStatus.unreleased": "Unreleased version",
- "system.updateStatus.up-to-date": "Up to date",
- "system.updateStatus.update": "Free update { version } available",
- "system.updateStatus.upgrade": "Upgrade { version } available",
+ "system.issues.vulnerability.kirby": "Vaše instalace může být ovlivněna následující zranitelností (stupeň vážnosti - { severity }): { description }",
+ "system.issues.vulnerability.plugin": "Vaše instalace může být ovlivněna následující zranitelností v doplňku { plugin } (stupeň vážnosti - { severity }): { description }",
+ "system.updateStatus": "Status aktualizací",
+ "system.updateStatus.error": "Nepodařilo se zkontrolovat aktualizace",
+ "system.updateStatus.not-vulnerable": "Žádné známé zranitelnosti",
+ "system.updateStatus.security-update": "Je dostupná bezplatná bezpečnostní aktualizace { version }",
+ "system.updateStatus.security-upgrade": "Je dostupný upgrade { version } s bezpečnostními opravami",
+ "system.updateStatus.unreleased": "Nevydaná verze",
+ "system.updateStatus.up-to-date": "Aktuální",
+ "system.updateStatus.update": "Je dostupná bezplatná nová verze { version }",
+ "system.updateStatus.upgrade": "Je dostupný upgrade na verzi { version }",
"title": "Název",
"template": "\u0160ablona",
@@ -578,9 +584,9 @@
"users": "Uživatelé",
"version": "Verze Kirby",
- "version.current": "Current version",
- "version.latest": "Latest version",
- "versionInformation": "Version information",
+ "version.current": "Současná verze",
+ "version.latest": "Poslední verze",
+ "versionInformation": "Informace o verzi",
"view.account": "V\u00e1\u0161 \u00fa\u010det",
"view.installation": "Instalace",
diff --git a/kirby/i18n/translations/da.json b/kirby/i18n/translations/da.json
index 8493067..540a6b6 100644
--- a/kirby/i18n/translations/da.json
+++ b/kirby/i18n/translations/da.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Du skal tilføje minimum een blok",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Email preset \"{name}\" findes ikke",
"error.field.converter.invalid": "Ugyldig converter \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "Navn kan ikke efterlades tomt",
"error.file.changeName.permission": "Du har ikke tilladelse til at ændre navnet på filen \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Ingen sider valgt endnu",
"field.structure.delete.confirm": "\u00d8nsker du virkelig at slette denne indtastning?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Ingen indtastninger endnu.",
"field.users.empty": "Ingen brugere er valgt",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Panelet kan ikke installeres",
"installation.issues.mbstring": "MB String
extension er påkrævet",
"installation.issues.media": "/media
mappen eksisterer ikke eller er ikke skrivbar",
- "installation.issues.php": "Sikre dig at der benyttes PHP 7+
",
+ "installation.issues.php": "Sikre dig at der benyttes PHP 8+
",
"installation.issues.server": "Kirby kræver Apache
, Nginx
eller Caddy
",
"installation.issues.sessions": "/site/sessions mappen eksisterer ikke eller er ikke skrivbar",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "Du modtog din licenskode efter købet via email. Venligst kopier og indsæt den for at registrere.",
"license.register.label": "Indtast venligst din licenskode",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Tak for din støtte af Kirby",
"license.unregistered": "Dette er en uregistreret demo af Kirby",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/de.json b/kirby/i18n/translations/de.json
index 80c969d..17a283c 100644
--- a/kirby/i18n/translations/de.json
+++ b/kirby/i18n/translations/de.json
@@ -1,7 +1,7 @@
{
"account.changeName": "Deinen Namen ändern",
"account.delete": "Deinen Account löschen",
- "account.delete.confirm": "Willst du deinen Account wirklich löschen? Du wirst sofort danach abgemeldet. Dein Account kann nicht wieder hergestellt werden. ",
+ "account.delete.confirm": "Willst du deinen Account wirklich löschen? Du wirst sofort danach abgemeldet. Dein Account kann nicht wieder hergestellt werden.",
"add": "Hinzuf\u00fcgen",
"author": "Autor",
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Bitte füge mindestens einen Block hinzu",
"error.blocks.validation": "Fehler im \"{field}\" Feld in Block {index} mit dem Block Typ \"{fieldset}\"",
+ "error.cache.type.invalid": "Ungültiger Cachetyp: \"{type}\"",
+
"error.email.preset.notFound": "Die E-Mailvorlage \"{name}\" wurde nicht gefunden",
"error.field.converter.invalid": "Ungültiger Konverter: \"{converter}\"",
+ "error.field.type.missing": "Feld \"{ name }\": Der Feldtyp \"{ type }\" existiert nicht",
"error.file.changeName.empty": "Bitte gib einen Namen an",
"error.file.changeName.permission": "Du darfst den Dateinamen von \"{filename}\" nicht ändern",
@@ -107,7 +110,7 @@
"error.language.name": "Bitte gib einen gültigen Namen für die Sprache an",
"error.language.notFound": "Die Sprache konnte nicht gefunden werden",
- "error.layout.validation.block": "Fehler im \"{field}\" Feld in Block {blockIndex} mit dem Block Typ \"{fieldset}\" in Layout {layoutIndex}",
+ "error.layout.validation.block": "Fehler im \"{field}\" Feld in Block {blockIndex} mit dem Blocktyp \"{fieldset}\" in Layout {layoutIndex}",
"error.layout.validation.settings": "Fehler in den Einstellungen von Layout {index}",
"error.license.format": "Bitte gib einen gültigen Lizenzschlüssel ein",
@@ -162,7 +165,7 @@
"error.template.default.notFound": "Die \"Default\"-Vorlage existiert nicht",
- "error.unexpected": "Ein unerwarteter Fehler ist aufgetreten. Aktiviere den Debug Modus für weitere Informationen: https://getkirby.com/docs/reference/system/options/debug",
+ "error.unexpected": "Ein unerwarteter Fehler ist aufgetreten. Aktiviere den Debug-Modus für weitere Informationen: https://getkirby.com/docs/reference/system/options/debug",
"error.user.changeEmail.permission": "Du kannst die E-Mailadresse für den Account \"{name}\" nicht ändern",
"error.user.changeLanguage.permission": "Du kannst die Sprache für den Account \"{name}\" nicht ändern",
@@ -289,6 +292,7 @@
"field.pages.empty": "Keine Seiten ausgewählt",
"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.empty": "Es bestehen keine Eintr\u00e4ge.",
"field.users.empty": "Keine Accounts ausgewählt",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Das Panel kann nicht installiert werden",
"installation.issues.mbstring": "Die MB String
Erweiterung wird benötigt",
"installation.issues.media": "Der /media
Ordner ist nicht beschreibbar",
- "installation.issues.php": "Bitte verwende PHP 7+
",
+ "installation.issues.php": "Bitte verwende PHP 8+
",
"installation.issues.server": "Kirby benötigt Apache
, Nginx
or Caddy
",
"installation.issues.sessions": "/site/sessions
ist nicht beschreibbar",
@@ -349,6 +353,8 @@
"license.manage": "Verwalte deine Lizenzen",
"license.register.help": "Den Lizenzcode findest du in der Bestätigungsmail zu deinem Kauf. Bitte kopiere und füge ihn ein, um Kirby zu registrieren.",
"license.register.label": "Bitte gib deinen Lizenzcode ein",
+ "license.register.domain": "Deine Lizenz wird unter der Domain {host} registriert",
+ "license.register.local": "Du bist dabei, deine Lizenz unter der lokalen Domain {host} zu registrieren. Wenn diese Seite unter einer anderen Domain veröffentlicht werden soll, registriere die Lizenz statt dessen bitte dort. Wenn du {host} als Domain verwenden möchtest, fahre bitte fort. ",
"license.register.success": "Vielen Dank für deine Unterstützung",
"license.unregistered": "Dies ist eine unregistrierte Kirby-Demo",
"license.unregistered.label": "Unregistriert",
diff --git a/kirby/i18n/translations/el.json b/kirby/i18n/translations/el.json
index dd1bb36..f55b00f 100644
--- a/kirby/i18n/translations/el.json
+++ b/kirby/i18n/translations/el.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "You must add at least one block",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Δεν είναι δυνατή η εύρεση της προεπιλογής διεύθινσης ηλεκτρονικού ταχυδρομείου \"{name}\"",
"error.field.converter.invalid": "Μη έγκυρος μετατροπέας \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "The name must not be empty",
"error.file.changeName.permission": "Δεν επιτρέπεται να αλλάξετε το όνομα του \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Δεν έχουν επιλεγεί ακόμη σελίδες",
"field.structure.delete.confirm": "\u0395\u03af\u03c3\u03c4\u03b5 \u03c3\u03af\u03b3\u03bf\u03c5\u03c1\u03bf\u03c2 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7\u03bd \u03ba\u03b1\u03c4\u03b1\u03c7\u03ce\u03c1\u03b9\u03c3\u03b7;",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "\u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03b1\u03ba\u03cc\u03bc\u03b7 \u03ba\u03b1\u03c4\u03b1\u03c7\u03c9\u03c1\u03af\u03c3\u03b5\u03b9\u03c2.",
"field.users.empty": "Δεν έχουν επιλεγεί ακόμη χρήστες",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Ο πίνακας ελέγχου δεν μπορεί να εγκατασταθεί",
"installation.issues.mbstring": "Απαιτείται η επέκταση MB String
",
"installation.issues.media": "Ο φάκελος /media
δεν υπάρχει ή δεν είναι εγγράψιμος",
- "installation.issues.php": "Βεβαιωθείτε ότι χρησιμοποιήτε PHP 7+
",
+ "installation.issues.php": "Βεβαιωθείτε ότι χρησιμοποιήτε PHP 8+
",
"installation.issues.server": "To Kirby απαιτεί Apache
, Nginx
ή Caddy
",
"installation.issues.sessions": "Ο φάκελος /site/sessions
δεν υπάρχει ή δεν είναι εγγράψιμος",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "Έχετε λάβει τον κωδικό άδειας χρήσης μετά την αγορά μέσω ηλεκτρονικού ταχυδρομείου. Παρακαλώ αντιγράψτε και επικολλήστε τον για να εγγραφείτε.",
"license.register.label": "Παρακαλώ εισαγάγετε τον κωδικό άδειας χρήσης",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Σας ευχαριστούμε για την υποστήριξη του Kirby",
"license.unregistered": "Αυτό είναι ένα μη καταχωρημένο demo του Kirby",
"license.unregistered.label": "Unregistered",
@@ -382,7 +388,7 @@
"login.toggleText.password-reset.email": "Forgot your password?",
"login.toggleText.password-reset.email-password": "← Back to login",
- "logout": "\u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7",
+ "logout": "Αποσύνδεση",
"menu": "Μενού",
"meridiem": "Π.Μ./Μ.Μ",
diff --git a/kirby/i18n/translations/en.json b/kirby/i18n/translations/en.json
index 96015cf..06f93e6 100644
--- a/kirby/i18n/translations/en.json
+++ b/kirby/i18n/translations/en.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "You must add at least one block",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "The email preset \"{name}\" cannot be found",
"error.field.converter.invalid": "Invalid converter \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "The name must not be empty",
"error.file.changeName.permission": "You are not allowed to change the name of \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "No pages selected yet",
"field.structure.delete.confirm": "Do you really want to delete this row?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "No entries yet",
"field.users.empty": "No users selected yet",
@@ -318,7 +322,7 @@
"installation.issues.headline": "The panel cannot be installed",
"installation.issues.mbstring": "The MB String
extension is required",
"installation.issues.media": "The /media
folder does not exist or is not writable",
- "installation.issues.php": "Make sure to use PHP 7+
",
+ "installation.issues.php": "Make sure to use PHP 8+
",
"installation.issues.server": "Kirby requires Apache
, Nginx
or Caddy
",
"installation.issues.sessions": "The /site/sessions
folder does not exist or is not writable",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "You received your license code after the purchase via email. Please copy and paste it to register.",
"license.register.label": "Please enter your license code",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Thank you for supporting Kirby",
"license.unregistered": "This is an unregistered demo of Kirby",
"license.unregistered.label": "Unregistered",
@@ -382,7 +388,7 @@
"login.toggleText.password-reset.email": "Forgot your password?",
"login.toggleText.password-reset.email-password": "← Back to login",
- "logout": "Logout",
+ "logout": "Log out",
"menu": "Menu",
"meridiem": "AM/PM",
@@ -393,7 +399,7 @@
"months.april": "April",
"months.august": "August",
"months.december": "December",
- "months.february": "Feburary",
+ "months.february": "February",
"months.january": "January",
"months.july": "July",
"months.june": "June",
diff --git a/kirby/i18n/translations/eo.json b/kirby/i18n/translations/eo.json
index 1ada41f..8d0ee25 100644
--- a/kirby/i18n/translations/eo.json
+++ b/kirby/i18n/translations/eo.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Oni devas aldoni almenaŭ unu blokon",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "La retpoŝta antaŭagordo \"{name}\" ne estas trovebla",
"error.field.converter.invalid": "Nevalida konvertilo \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "La nomo ne rajtas esti malplena",
"error.file.changeName.permission": "Vi ne rajtas ŝanĝi la nomon de \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Ankoraŭ neniu paĝo elektita",
"field.structure.delete.confirm": "Ĉu vi certe volas forigi ĉi tiun vicon?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Ankoraŭ neniu enigo",
"field.users.empty": "Ankoraŭ neniu uzanto elektita",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Ne eblas instali la panelon",
"installation.issues.mbstring": "La kromprogramo MB String
estas deviga",
"installation.issues.media": "La dosierujo /media
ne ekzistas, aũ ne estas skribebla",
- "installation.issues.php": "Nepre uzu PHP 7+
",
+ "installation.issues.php": "Nepre uzu PHP 8+
",
"installation.issues.server": "Kirby bezonas Apache
, Nginx
aŭ Caddy
",
"installation.issues.sessions": "La dosierujo /site/sessions
ne ekzistas, aŭ ne estas skribebla",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "Vi ricevis vian kodon de permisilo retpoŝte, post aĉeti ĝin. Bonvolu kopii kaj alglui ĝin por registriĝi.",
"license.register.label": "Bonvolu entajpi vian kodon de permisilo",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Dankon pro subteni Kirby",
"license.unregistered": "Ĉi tiu estas neregistrita kopio de Kirby",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/es_419.json b/kirby/i18n/translations/es_419.json
index cc2101f..dc0b07e 100644
--- a/kirby/i18n/translations/es_419.json
+++ b/kirby/i18n/translations/es_419.json
@@ -29,7 +29,7 @@
"days.tue": "Mar",
"days.wed": "Mi\u00e9",
- "debugging": "Debugging",
+ "debugging": "Depuración",
"delete": "Eliminar",
"delete.all": "Eliminar todos",
@@ -49,8 +49,8 @@
"email": "Correo Electrónico",
"email.placeholder": "correo@ejemplo.com",
- "entries": "Entries",
- "entry": "Entry",
+ "entries": "Entradas",
+ "entry": "Entrada",
"environment": "Ambiente",
@@ -70,11 +70,14 @@
"error.blocks.max.singular": "No debes añadir más de un bloque",
"error.blocks.min.plural": "Debes añadir al menos {min} bloques ",
"error.blocks.min.singular": "Debes añadir al menos un bloque",
- "error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.blocks.validation": "Hay un error en el campo \"{field}\" del bloque {index} que utiliza el tipo de bloque \"{fieldset}\"",
+
+ "error.cache.type.invalid": "Tipo de caché \"{tipo}\" no válido",
"error.email.preset.notFound": "El preajuste de email \"{name}\" no se pudo encontrar.",
"error.field.converter.invalid": "Convertidor inválido \"{converter}\"",
+ "error.field.type.missing": "Campo \"{ name }\": El tipo de campo \"{ type }\" no existe",
"error.file.changeName.empty": "El nombre no debe estar vacío",
"error.file.changeName.permission": "No tienes permitido cambiar el nombre de \"{filename}\"",
@@ -107,14 +110,14 @@
"error.language.name": "Por favor introduce un nombre válido para el idioma",
"error.language.notFound": "No se pudo encontrar el idioma",
- "error.layout.validation.block": "There's an error on the \"{field}\" field in block {blockIndex} using the \"{fieldset}\" block type in layout {layoutIndex}",
- "error.layout.validation.settings": "There's an error in layout {index} settings",
+ "error.layout.validation.block": "Hay un error en el campo \"{field}\" del bloque {blockIndex} que utiliza el tipo de bloque \"{fieldset}\" en el layout {layoutIndex}",
+ "error.layout.validation.settings": "Hay un error en los ajustes del layout {index}",
"error.license.format": "Por favor introduce una llave de licencia válida",
"error.license.email": "Por favor ingresa un correo electrónico valido",
"error.license.verification": "La licencia no pude ser verificada",
- "error.object.validation": "There’s an error in the \"{label}\" field:\n{message}",
+ "error.object.validation": "Hay un error en el campo \"{label}\":\n{message}",
"error.offline": "El Panel se encuentra fuera de linea ",
@@ -136,8 +139,8 @@
"error.page.duplicate.permission": "No tienes permitido duplicar \"{slug}\"",
"error.page.notFound": "La página \"{slug}\" no se encuentra",
"error.page.num.invalid": "Por favor, introduce un número de posición válido. Los números no deben ser negativos.",
- "error.page.slug.invalid": "Please enter a valid URL appendix",
- "error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
+ "error.page.slug.invalid": "Por favor, introduce un apéndice de URL válido",
+ "error.page.slug.maxlength": "La longitud del slug debe ser inferior a \"{length}\" caracteres",
"error.page.sort.permission": "La página \"{slug}\" no se puede ordenar",
"error.page.status.invalid": "Por favor, establece una estado de página válido",
"error.page.undefined": "La p\u00e1gina no fue encontrada",
@@ -162,7 +165,7 @@
"error.template.default.notFound": "La plantilla predeterminada no existe",
- "error.unexpected": "An unexpected error occurred! Enable debug mode for more info: https://getkirby.com/docs/reference/system/options/debug",
+ "error.unexpected": "¡Se ha producido un error inesperado! Activa el modo de depuración para obtener más información: https://getkirby.com/docs/reference/system/options/debug",
"error.user.changeEmail.permission": "No tienes permiso para cambiar el email del usuario \"{name}\"",
"error.user.changeLanguage.permission": "No tienes permiso para cambiar el idioma del usuario \"{name}\"",
@@ -267,46 +270,47 @@
"field.blocks.quote.name": "Cita",
"field.blocks.quote.text.label": "Texto",
"field.blocks.quote.text.placeholder": "Cita...",
- "field.blocks.quote.citation.label": "Citation",
+ "field.blocks.quote.citation.label": "Cita",
"field.blocks.quote.citation.placeholder": "Por ...",
"field.blocks.text.name": "Texto",
- "field.blocks.text.placeholder": "Text …",
+ "field.blocks.text.placeholder": "Texto ...",
"field.blocks.video.caption": "Leyenda",
"field.blocks.video.name": "Video",
- "field.blocks.video.placeholder": "Enter a video URL",
- "field.blocks.video.url.label": "Video-URL",
+ "field.blocks.video.placeholder": "Introduce la URL de un vídeo",
+ "field.blocks.video.url.label": "Vídeo-URL",
"field.blocks.video.url.placeholder": "https://youtube.com/?v=",
"field.files.empty": "Aún no ha seleccionado ningún archivo",
- "field.layout.delete": "Delete layout",
- "field.layout.delete.confirm": "Do you really want to delete this layout?",
- "field.layout.empty": "No rows yet",
- "field.layout.select": "Select a layout",
+ "field.layout.delete": "Eliminar layout",
+ "field.layout.delete.confirm": "¿Realmente quieres eliminar este layout?",
+ "field.layout.empty": "Aún no hay filas",
+ "field.layout.select": "Seleccionar layout",
- "field.object.empty": "No information yet",
+ "field.object.empty": "Aún no hay información",
"field.pages.empty": "Aún no ha seleccionado ningúna pagina",
"field.structure.delete.confirm": "\u00bfEn realidad desea borrar esta entrada?",
+ "field.structure.delete.confirm.all": "¿Realmente quieres eliminar todas las entradas?",
"field.structure.empty": "A\u00fan no existen entradas.",
"field.users.empty": "Aún no ha seleccionado ningún usuario",
- "file.blueprint": "This file has no blueprint yet. You can define the setup in /site/blueprints/files/{blueprint}.yml",
+ "file.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en /site/blueprints/files/{blueprint}.yml",
"file.delete.confirm": "\u00bfEst\u00e1s seguro que deseas eliminar este archivo?",
- "file.sort": "Change position",
+ "file.sort": "Cambiar posición",
"files": "Archivos",
"files.empty": "Aún no existen archivos",
- "hide": "Hide",
+ "hide": "Ocultar",
"hour": "Hora",
- "import": "Import",
+ "import": "Importar",
"info": "Info",
"insert": "Insertar",
- "insert.after": "Insert after",
- "insert.before": "Insert before",
+ "insert.after": "Insertar después",
+ "insert.before": "Insertar antes",
"install": "Instalar",
"installation": "Instalación",
@@ -318,7 +322,7 @@
"installation.issues.headline": "El panel no puede ser instalado.",
"installation.issues.mbstring": "Se requiere la extensión MB String
.",
"installation.issues.media": "La carpeta /media
no existe o no posee permisos de escritura.",
- "installation.issues.php": "Asegurese de estar usando PHP 7+
",
+ "installation.issues.php": "Asegurese de estar usando PHP 8+
",
"installation.issues.server": "Kirby requiere Apache
, Nginx
, Caddy
",
"installation.issues.sessions": "La carpeta /site/sessions
no existe o no posee permisos de escritura.",
@@ -346,12 +350,14 @@
"license": "Licencia",
"license.buy": "Comprar una licencia",
"license.register": "Registrar",
- "license.manage": "Manage your licenses",
+ "license.manage": "Gestiona tus licencias",
"license.register.help": "Recibió su código de licencia después de la compra por correo electrónico. Por favor copie y pegue para registrarse.",
"license.register.label": "Por favor, ingresa tu código de licencia",
+ "license.register.domain": "Tu licencia será registrada para {host}.",
+ "license.register.local": "Estás a punto de registrar tu licencia para el dominio local {host}. Si este sitio va a ser desplegado en un dominio público, por favor regístralo allí. Si {host} es el dominio en el que quiere registrar Kirby, por favor continúa.",
"license.register.success": "Gracias por apoyar a Kirby",
"license.unregistered": "Este es un demo no registrado de Kirby",
- "license.unregistered.label": "Unregistered",
+ "license.unregistered.label": "No registrado",
"link": "Enlace",
"link.text": "Texto de Enlace",
@@ -367,22 +373,22 @@
"lock.isUnlocked": "Tus cambios sin guardar han sido sobrescritos por otro usuario. Puedes descargar los cambios y fusionarlos manualmente.",
"login": "Iniciar sesión",
- "login.code.label.login": "Login code",
- "login.code.label.password-reset": "Password reset code",
+ "login.code.label.login": "Código de inicio de sesión",
+ "login.code.label.password-reset": "Código de restablecimiento de contraseña",
"login.code.placeholder.email": "000 000",
- "login.code.text.email": "If your email address is registered, the requested code was sent via email.",
- "login.email.login.body": "Hi {user.nameOrEmail},\n\nYou recently requested a login code for the Panel of {site}.\nThe following login code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a login code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.",
- "login.email.login.subject": "Your login code",
- "login.email.password-reset.body": "Hi {user.nameOrEmail},\n\nYou recently requested a password reset code for the Panel of {site}.\nThe following password reset code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a password reset code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.",
- "login.email.password-reset.subject": "Your password reset code",
+ "login.code.text.email": "Si tu dirección de correo electrónico está registrada, el código solicitado fue enviado por correo electrónico.",
+ "login.email.login.body": "Hola {user.nameOrEmail},\n\nHas pedido, recientemente, un código de restablecimiento de contraseña para el Panel del sitio {site}.\nEl siguiente código de restablecimiento de contraseña será válido por {timeout} minutos:\n\n{code}\n\nSi no pediste un código de restablecimiento de contraseña, por favor ignora este correo o contacta a tu administrador si tienes dudas.\nPor seguridad, por favor NO reenvíes este correo.",
+ "login.email.login.subject": "Tu código de inicio de sesión",
+ "login.email.password-reset.body": "Hola {user.nameOrEmail},\n\nHas pedido, recientemente, un código de restablecimiento de contraseña para el Panel del sitio {site}.\nEl siguiente código de restablecimiento de contraseña será válido por {timeout} minutos:\n\n{code}\n\nSi no pediste un código de restablecimiento de contraseña, por favor ignora este correo o contacta a tu administrador si tienes dudas.\nPor seguridad, por favor NO reenvíes este correo.",
+ "login.email.password-reset.subject": "Tu código de restablecimiento de contraseña",
"login.remember": "Mantener mi sesión iniciada",
- "login.reset": "Reset password",
- "login.toggleText.code.email": "Login via email",
- "login.toggleText.code.email-password": "Login with password",
- "login.toggleText.password-reset.email": "Forgot your password?",
- "login.toggleText.password-reset.email-password": "← Back to login",
+ "login.reset": "Restablecer contraseña",
+ "login.toggleText.code.email": "Iniciar sesión por correo electrónico",
+ "login.toggleText.code.email-password": "Iniciar sesión con contraseña",
+ "login.toggleText.password-reset.email": "¿Olvidaste tu contraseña?",
+ "login.toggleText.password-reset.email-password": "← Volver al inicio de sesión",
- "logout": "Cerrar sesi\u00f3n",
+ "logout": "Cerrar sesión",
"menu": "Menù",
"meridiem": "AM/PM",
@@ -410,16 +416,16 @@
"off": "Apagado",
"on": "Encendido",
"open": "Abrir",
- "open.newWindow": "Open in new window",
+ "open.newWindow": "Abrir en una ventana nueva",
"options": "Opciones",
- "options.none": "No options",
+ "options.none": "Sin opciones",
"orientation": "Orientación",
"orientation.landscape": "Paisaje",
"orientation.portrait": "Retrato",
"orientation.square": "Diapositiva",
- "page.blueprint": "This page has no blueprint yet. You can define the setup in /site/blueprints/pages/{blueprint}.yml",
+ "page.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en /site/blueprints/pages/{blueprint}.yml",
"page.changeSlug": "Cambiar URL",
"page.changeSlug.fromTitle": "Crear a partir del t\u00edtulo",
"page.changeStatus": "Cambiar estado",
@@ -433,10 +439,10 @@
"page.duplicate.appendix": "Copiar",
"page.duplicate.files": "Copiar archivos",
"page.duplicate.pages": "Copiar páginas",
- "page.sort": "Change position",
+ "page.sort": "Cambiar posición",
"page.status": "Estado",
"page.status.draft": "Borrador",
- "page.status.draft.description": "The page is in draft mode and only visible for logged in editors or via secret link",
+ "page.status.draft.description": "La página está en modo borrador y solo es visible para editores conectados o mediante enlace secreto.",
"page.status.listed": "Pública",
"page.status.listed.description": "La página es pública para cualquiera",
"page.status.unlisted": "No publicada",
@@ -451,19 +457,19 @@
"pagination.page": "Página",
"password": "Contrase\u00f1a",
- "paste": "Paste",
- "paste.after": "Paste after",
+ "paste": "Pegar",
+ "paste.after": "Pegar después",
"pixel": "Pixel",
"plugin": "Plugin",
"plugins": "Plugins",
"prev": "Anterior",
- "preview": "Preview",
+ "preview": "Previsualizar",
"remove": "Eliminar",
"rename": "Renombrar",
"replace": "Reemplazar",
"retry": "Reintentar",
"revert": "Revertir",
- "revert.confirm": "Do you really want to delete all unsaved changes?",
+ "revert.confirm": "¿Realmente quieres eliminar todos los cambios sin guardar?",
"role": "Rol",
"role.admin.description": "El administrador tiene todos los derechos",
@@ -476,42 +482,42 @@
"save": "Guardar",
"search": "Buscar",
- "search.min": "Enter {min} characters to search",
- "search.all": "Show all",
- "search.results.none": "No results",
+ "search.min": "Introduce {min} caracteres para buscar",
+ "search.all": "Mostrar todo",
+ "search.results.none": "Sin resultados",
"section.required": "Esta sección es requerida",
- "security": "Security",
+ "security": "Seguridad",
"select": "Seleccionar",
- "server": "Server",
+ "server": "Servidor",
"settings": "Ajustes",
- "show": "Show",
- "site.blueprint": "The site has no blueprint yet. You can define the setup in /site/blueprints/site.yml",
+ "show": "Mostrar",
+ "site.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en /site/blueprints/site.yml",
"size": "Tamaño",
"slug": "Apéndice URL",
"sort": "Ordenar",
- "stats.empty": "No reports",
- "system.issues.content": "The content folder seems to be exposed",
- "system.issues.eol.kirby": "Your installed Kirby version has reached end-of-life and will not receive further security updates",
- "system.issues.eol.plugin": "Your installed version of the { plugin } plugin is has reached end-of-life and will not receive further security updates",
- "system.issues.debug": "Debugging must be turned off in production",
- "system.issues.git": "The .git folder seems to be exposed",
- "system.issues.https": "We recommend HTTPS for all your sites",
- "system.issues.kirby": "The kirby folder seems to be exposed",
- "system.issues.site": "The site folder seems to be exposed",
- "system.issues.vulnerability.kirby": "Your installation might be affected by the following vulnerability ({ severity } severity): { description }",
- "system.issues.vulnerability.plugin": "Your installation might be affected by the following vulnerability in the { plugin } plugin ({ severity } severity): { description }",
- "system.updateStatus": "Update status",
- "system.updateStatus.error": "Could not check for updates",
- "system.updateStatus.not-vulnerable": "No known vulnerabilities",
- "system.updateStatus.security-update": "Free security update { version } available",
- "system.updateStatus.security-upgrade": "Upgrade { version } with security fixes available",
- "system.updateStatus.unreleased": "Unreleased version",
- "system.updateStatus.up-to-date": "Up to date",
- "system.updateStatus.update": "Free update { version } available",
- "system.updateStatus.upgrade": "Upgrade { version } available",
+ "stats.empty": "Sin informes",
+ "system.issues.content": "La carpeta content parece estar expuesta",
+ "system.issues.eol.kirby": "La versión de Kirby que tienes instalada ha llegado al final de su vida útil y no recibirá más actualizaciones de seguridad.",
+ "system.issues.eol.plugin": "Tu versión instalada del plugin { plugin } ha llegado al final de su vida útil y no recibirá más actualizaciones de seguridad.",
+ "system.issues.debug": "La depuración debe estar desactivada en producción",
+ "system.issues.git": "La carpeta .git parece estar expuesta",
+ "system.issues.https": "Recomendamos HTTPS para todos tus sitios web",
+ "system.issues.kirby": "La carpeta kirby parece estar expuesta",
+ "system.issues.site": "La carpeta site parece estar expuesta",
+ "system.issues.vulnerability.kirby": "Tu instalación podría estar afectada por la siguiente vulnerabilidad ({ severity } gravedad): { description }",
+ "system.issues.vulnerability.plugin": "Tu instalación podría estar afectada por la siguiente vulnerabilidad en el plugin { plugin } ({ severity } gravedad): { description }",
+ "system.updateStatus": "Estado de actualización",
+ "system.updateStatus.error": "No se ha podido comprobar si hay actualizaciones",
+ "system.updateStatus.not-vulnerable": "No hay vulnerabilidades conocidas",
+ "system.updateStatus.security-update": "Actualización gratuita de seguridad { version } disponible",
+ "system.updateStatus.security-upgrade": "Actualización { versión } con correcciones de seguridad disponibles",
+ "system.updateStatus.unreleased": "Versión no publicada",
+ "system.updateStatus.up-to-date": "Actualizado",
+ "system.updateStatus.update": "Actualización gratuita {version} disponible",
+ "system.updateStatus.upgrade": "Actualización {versión} disponible",
"title": "Título",
"template": "Plantilla",
@@ -532,10 +538,10 @@
"toolbar.button.file.select": "Selecciona un archivo",
"toolbar.button.file.upload": "Sube un archivo",
"toolbar.button.link": "Enlace",
- "toolbar.button.paragraph": "Paragraph",
- "toolbar.button.strike": "Strike-through",
+ "toolbar.button.paragraph": "Parágrafo",
+ "toolbar.button.strike": "Tachado",
"toolbar.button.ol": "Lista en orden",
- "toolbar.button.underline": "Underline",
+ "toolbar.button.underline": "Subrayado",
"toolbar.button.ul": "Lista de viñetas",
"translation.author": "Equipo Kirby",
@@ -562,7 +568,7 @@
"url.placeholder": "https://ejemplo.com",
"user": "Usuario",
- "user.blueprint": "You can define additional sections and form fields for this user role in /site/blueprints/users/{blueprint}.yml",
+ "user.blueprint": "Puedes definir secciones y campos de formulario adicionales para este rol de usuario en /site/blueprints/users/{blueprint}.yml",
"user.changeEmail": "Cambiar correo electrónico",
"user.changeLanguage": "Cambiar idioma",
"user.changeName": "Renombrar este usuario",
@@ -578,19 +584,19 @@
"users": "Usuarios",
"version": "Versión",
- "version.current": "Current version",
- "version.latest": "Latest version",
- "versionInformation": "Version information",
+ "version.current": "Versión actual",
+ "version.latest": "Última versión",
+ "versionInformation": "información sobre la versión",
"view.account": "Tu cuenta",
"view.installation": "Instalaci\u00f3n",
"view.languages": "Idiomas",
- "view.resetPassword": "Reset password",
+ "view.resetPassword": "Restablecer contraseña",
"view.site": "Sitio",
- "view.system": "System",
+ "view.system": "Sistema",
"view.users": "Usuarios",
"welcome": "Bienvenido",
"year": "Año",
- "yes": "yes"
+ "yes": "Sí"
}
diff --git a/kirby/i18n/translations/es_ES.json b/kirby/i18n/translations/es_ES.json
index 7fe8012..134b2f0 100644
--- a/kirby/i18n/translations/es_ES.json
+++ b/kirby/i18n/translations/es_ES.json
@@ -1,6 +1,6 @@
{
- "account.changeName": "Cambia tu nombre",
- "account.delete": "Borrar tu cuenta",
+ "account.changeName": "Cambiar nombre",
+ "account.delete": "Borrar cuenta",
"account.delete.confirm": "¿Realmente quieres eliminar tu cuenta? Tu sesión se cerrará inmediatamente. La cuenta no podrá ser recuperada.",
"add": "Añadir",
@@ -12,7 +12,7 @@
"close": "Cerrar",
"confirm": "Confirmar",
"collapse": "Colapsar",
- "collapse.all": "Colapsar todos",
+ "collapse.all": "Colapsar todo",
"copy": "Copiar",
"copy.all": "Copiar todo",
"create": "Crear",
@@ -29,14 +29,14 @@
"days.tue": "Ma",
"days.wed": "Mi",
- "debugging": "Debugging",
+ "debugging": "Depuración",
- "delete": "Borrar",
- "delete.all": "Eliminar todos",
+ "delete": "Eliminar",
+ "delete.all": "Eliminar todo",
- "dialog.files.empty": "No se ha seleccionado ningún archivo",
- "dialog.pages.empty": "No se ha seleccionado ninguna página",
- "dialog.users.empty": "No se ha seleccionado ningún usuario",
+ "dialog.files.empty": "No hay archivos para seleccionar",
+ "dialog.pages.empty": "No hay páginas para seleccionar",
+ "dialog.users.empty": "No hay usuarios para seleccionar",
"dimensions": "Dimensiones",
"disabled": "Desabilitado",
@@ -49,19 +49,19 @@
"email": "Correo electrónico",
"email.placeholder": "correo@ejemplo.com",
- "entries": "Entries",
- "entry": "Entry",
+ "entries": "Entradas",
+ "entry": "Entrada",
- "environment": "Ambiente",
+ "environment": "Entorno",
"error.access.code": "Código inválido",
- "error.access.login": "Ingreso inválido",
- "error.access.panel": "No estás autorizado para acceder al panel",
+ "error.access.login": "Inicio de sesión inválido",
+ "error.access.panel": "No tienes permiso para acceder al panel",
"error.access.view": "No tienes permiso para acceder a esta parte del panel",
"error.avatar.create.fail": "No se pudo subir la foto de perfil.",
"error.avatar.delete.fail": "No se pudo borrar la foto de perfil",
- "error.avatar.dimensions.invalid": "Por favor, mantenga el ancho y la altura de la imagen de perfil debajo de 3000 píxeles",
+ "error.avatar.dimensions.invalid": "Por favor, mantén el ancho y la altura de la imagen de perfil por debajo de 3000 píxeles",
"error.avatar.mime.forbidden": "La imagen del perfil debe ser JPEG o PNG.",
"error.blueprint.notFound": "El blueprint \"{name}\" no pudo ser cargado",
@@ -70,86 +70,89 @@
"error.blocks.max.singular": "No debes añadir más de un bloque",
"error.blocks.min.plural": "Debes añadir al menos {min} bloques ",
"error.blocks.min.singular": "Debes añadir al menos un bloque",
- "error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.blocks.validation": "Hay un error en el campo \"{field}\" del bloque {index} que utiliza el tipo de bloque \"{fieldset}\"",
- "error.email.preset.notFound": "El preset del correo \"{name}\" no pudo ser encontrado",
+ "error.cache.type.invalid": "Tipo de caché inválido \"{tipo}\"",
+
+ "error.email.preset.notFound": "El preset del correo \"{name}\" no puede ser encontrado",
"error.field.converter.invalid": "Convertidor \"{converter}\" inválido",
+ "error.field.type.missing": "Campo \"{ name }\": El tipo de campo \"{ type }\" no existe",
"error.file.changeName.empty": "El nombre no debe estar vacío",
- "error.file.changeName.permission": "No tienes permitido cambiar el nombre de \"{filename}\"",
+ "error.file.changeName.permission": "No tienes permiso para cambiar el nombre de \"{filename}\"",
"error.file.duplicate": "Ya existe un archivo con el nombre \"{filename}\"",
"error.file.extension.forbidden": "La extensión \"{extension}\" no está permitida",
"error.file.extension.invalid": "Extensión inválida: {extension}",
"error.file.extension.missing": "Falta la extensión para \"{filename}\"",
"error.file.maxheight": "La altura de la imagen no debe exceder {height} pixeles",
- "error.file.maxsize": "El archivo es muy grande",
+ "error.file.maxsize": "El archivo es demasiado grande",
"error.file.maxwidth": "El ancho de la imagen no debe exceder {width} pixeles",
"error.file.mime.differs": "El archivo cargado debe ser del mismo tipo mime \"{mime}\"",
"error.file.mime.forbidden": "Los medios tipo \"{mime}\" no están permitidos",
- "error.file.mime.invalid": "Tipo invalido de mime: {mime}",
- "error.file.mime.missing": "El tipo de medio para \"{filename}\" no pudo ser detectado",
+ "error.file.mime.invalid": "Tipo de mime inválido: {mime}",
+ "error.file.mime.missing": "El tipo de medio para \"{filename}\" no puede ser detectado",
"error.file.minheight": "La altura de la imagen debe ser de al menos {height} pixeles",
- "error.file.minsize": "El archivo es muy pequeño",
+ "error.file.minsize": "El archivo es demasiado pequeño",
"error.file.minwidth": "El ancho de la imagen debe ser de al menos {width} pixeles",
"error.file.name.missing": "El nombre de archivo no debe estar vacío",
- "error.file.notFound": "El archivo \"{filename}\" no pudo ser encontrado",
- "error.file.orientation": "The orientation of the image must be \"{orientation}\"",
- "error.file.type.forbidden": "No está permitido subir archivos {type}",
+ "error.file.notFound": "El archivo \"{filename}\" no puede ser encontrado",
+ "error.file.orientation": "La orientación de la imagen debe ser \"{orientation}",
+ "error.file.type.forbidden": "No tienes permiso para subir archivos {type}",
"error.file.type.invalid": "Tipo de archivo inválido: {type}",
- "error.file.undefined": "El archivo no pudo ser encontrado",
+ "error.file.undefined": "El archivo no puede ser encontrado",
- "error.form.incomplete": "Por favor, corrija todos los errores del formulario…",
+ "error.form.incomplete": "Por favor, corrige todos los errores del formulario…",
"error.form.notSaved": "El formulario no pudo ser guardado",
- "error.language.code": "Por favor introduce un código válido para el idioma",
+ "error.language.code": "Por favor, introduce un código válido para el idioma",
"error.language.duplicate": "El idioma ya existe",
- "error.language.name": "Por favor introduce un nombre válido para el idioma",
+ "error.language.name": "Por favor, introduce un nombre válido para el idioma",
"error.language.notFound": "No se pudo encontrar el idioma",
- "error.layout.validation.block": "There's an error on the \"{field}\" field in block {blockIndex} using the \"{fieldset}\" block type in layout {layoutIndex}",
- "error.layout.validation.settings": "There's an error in layout {index} settings",
+ "error.layout.validation.block": "Hay un error en el campo \"{field}\" del bloque {blockIndex} que utiliza el tipo de bloque \"{fieldset}\" en el layout {layoutIndex}",
+ "error.layout.validation.settings": "Hay un error en los ajustes del layout {index}",
- "error.license.format": "Por favor introduce una llave de licencia válida",
+ "error.license.format": "Por favor, introduce una llave de licencia válida",
"error.license.email": "Por favor, introduce un correo electrónico válido",
- "error.license.verification": "La licencia no pude ser verificada",
+ "error.license.verification": "La licencia no pudo ser verificada",
- "error.object.validation": "There’s an error in the \"{label}\" field:\n{message}",
+ "error.object.validation": "Hay un error en el campo \"{label}\":\n{message}",
- "error.offline": "El Panel se encuentra fuera de linea ",
+ "error.offline": "El Panel se encuentra actualmente fuera de línea ",
- "error.page.changeSlug.permission": "No está permitido cambiar el apéndice de URL para \"{slug}\"",
+ "error.page.changeSlug.permission": "No tienes permiso para cambiar el apéndice de URL para \"{slug}\"",
"error.page.changeStatus.incomplete": "La página tiene errores y no puede ser publicada.",
"error.page.changeStatus.permission": "El estado de esta página no se puede cambiar",
"error.page.changeStatus.toDraft.invalid": "La página \"{slug}\" no se puede convertir a borrador",
"error.page.changeTemplate.invalid": "La plantilla para la página \"{slug}\" no se puede cambiar",
- "error.page.changeTemplate.permission": "No tienes permitido cambiar la plantilla para \"{slug}\"",
+ "error.page.changeTemplate.permission": "No tienes permiso para cambiar la plantilla para \"{slug}\"",
"error.page.changeTitle.empty": "El título no debe estar vacío.",
- "error.page.changeTitle.permission": "No tienes permitido cambiar el título por \"{slug}\"",
- "error.page.create.permission": "No tienes permitido crear \"{slug}\"",
- "error.page.delete": "La página \"{slug}\" no puede ser eliminada",
- "error.page.delete.confirm": "Por favor, introduzca el título de la página para confirmar",
+ "error.page.changeTitle.permission": "No tienes permiso para cambiar el título por \"{slug}\"",
+ "error.page.create.permission": "No tienes permiso para crear \"{slug}\"",
+ "error.page.delete": "La página \"{slug}\" no se puede eliminar",
+ "error.page.delete.confirm": "Por favor, introduce el título de la página para confirmar",
"error.page.delete.hasChildren": "La página tiene subpáginas y no se puede eliminar",
- "error.page.delete.permission": "No tienes permiso de eliminar \"{slug}\"",
+ "error.page.delete.permission": "No tienes permiso para eliminar \"{slug}\"",
"error.page.draft.duplicate": "Un borrador de página con el apéndice de URL \"{slug}\" ya existe",
- "error.page.duplicate": "Una página con el apéndice de URL. \"{slug}\" ya existe",
- "error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
- "error.page.notFound": "La página \"{slug}\" no puede ser encontrada",
- "error.page.num.invalid": "Por favor, introduzca un número válido. Estos no deben ser negativos.",
- "error.page.slug.invalid": "Please enter a valid URL appendix",
- "error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
- "error.page.sort.permission": "La página \"{slug}\" no se puede ordenar",
- "error.page.status.invalid": "Por favor, establezca un estado de página válido",
- "error.page.undefined": "La página no se puede encontrar",
- "error.page.update.permission": "No tienes permitido actualizar \"{slug}\"",
+ "error.page.duplicate": "Una página con el apéndice de URL \"{slug}\" ya existe",
+ "error.page.duplicate.permission": "No tienes permiso para duplicar \"{slug}\"",
+ "error.page.notFound": "No se puede encontrar la página \"{slug}\"",
+ "error.page.num.invalid": "Por favor, introduce un número de ordenación válido. Los números no deben ser negativos.",
+ "error.page.slug.invalid": "Por favor, introduce un apéndice de URL válido",
+ "error.page.slug.maxlength": "La longitud del slug debe ser inferior a \"{length}\" caracteres",
+ "error.page.sort.permission": "No se puede encontrar la página \"{slug}\"",
+ "error.page.status.invalid": "Por favor, establece un estado de página válido",
+ "error.page.undefined": "No se puede encontrar la página",
+ "error.page.update.permission": "No tienes permiso para actualizar \"{slug}\"",
"error.section.files.max.plural": "No debes agregar más de {max} archivos a la sección \"{section}\"",
"error.section.files.max.singular": "No debes agregar más de 1 archivo a la sección \"{section}\"",
"error.section.files.min.plural": "La sección \"{section}\" requiere al menos {min} archivos",
"error.section.files.min.singular": "La sección \"{section}\" requiere al menos un archivo",
- "error.section.pages.max.plural": "No debe agregar más de {max} páginas a la sección \"{section}\"",
- "error.section.pages.max.singular": "No debe agregar más de una página a la sección \"{section}\"",
+ "error.section.pages.max.plural": "No debes agregar más de {max} páginas a la sección \"{section}\"",
+ "error.section.pages.max.singular": "No debes agregar más de una página a la sección \"{section}\"",
"error.section.pages.min.plural": "La sección \"{section}\" requiere al menos {min} páginas",
"error.section.pages.min.singular": "La sección \"{section}\" requiere al menos una página",
@@ -157,94 +160,94 @@
"error.section.type.invalid": "El sección tipo \"{tipo}\" no es válido",
"error.site.changeTitle.empty": "El título no debe estar vacío.",
- "error.site.changeTitle.permission": "No está permitido cambiar el título del sitio",
- "error.site.update.permission": "No tienes permitido actualizar el sitio",
+ "error.site.changeTitle.permission": "No tienes permiso para cambiar el título del sitio",
+ "error.site.update.permission": "No tienes permiso para actualizar el sitio",
"error.template.default.notFound": "La plantilla por defecto no existe",
- "error.unexpected": "An unexpected error occurred! Enable debug mode for more info: https://getkirby.com/docs/reference/system/options/debug",
+ "error.unexpected": "¡Se ha producido un error inesperado! Activa el modo de depuración para obtener más información: https://getkirby.com/docs/reference/system/options/debug",
- "error.user.changeEmail.permission": "No tienes permitido cambiar el correo electrónico para el usuario \"{name}\"",
- "error.user.changeLanguage.permission": "No tienes permitido cambiar el idioma para el usuario \"{name}\"",
- "error.user.changeName.permission": "No tienes permitido cambiar el nombre del usuario \"{name}\"",
- "error.user.changePassword.permission": "No tienes permitido cambiar la contraseña del usuario \"{name}\"",
- "error.user.changeRole.lastAdmin": "El rol para el último administrador no puede ser cambiado",
- "error.user.changeRole.permission": "No tienes permitido cambiar el rol del usuario \"{name}\"",
- "error.user.changeRole.toAdmin": "No tienes permitido promover a alguien al rol de admin",
+ "error.user.changeEmail.permission": "No tienes permiso para cambiar el correo electrónico para el usuario \"{name}\"",
+ "error.user.changeLanguage.permission": "No tienes permiso para cambiar el idioma para el usuario \"{name}\"",
+ "error.user.changeName.permission": "No tienes permiso para cambiar el nombre del usuario \"{name}\"",
+ "error.user.changePassword.permission": "No tienes permiso para cambiar la contraseña del usuario \"{name}\"",
+ "error.user.changeRole.lastAdmin": "No se puede cambiar el rol del último administrador",
+ "error.user.changeRole.permission": "No tienes permiso para cambiar el rol del usuario \"{name}\"",
+ "error.user.changeRole.toAdmin": "No tienes permiso para promover a alguien al rol de admin",
"error.user.create.permission": "No tienes permiso para crear este usuario",
- "error.user.delete": "El usuario \"{name}\" no puede ser eliminado",
- "error.user.delete.lastAdmin": "El último administrador no puede ser eliminado",
- "error.user.delete.lastUser": "El último usuario no puede ser eliminado",
- "error.user.delete.permission": "No tienes permitido eliminar el usuario \"{name}\"",
+ "error.user.delete": "No se puede eliminar el usuario \"{name}\"",
+ "error.user.delete.lastAdmin": "No se puede eliminar el último admin",
+ "error.user.delete.lastUser": "No se puede eliminar el último usuario ",
+ "error.user.delete.permission": "No tienes permiso para eliminar el usuario \"{name}\"",
"error.user.duplicate": "Un usuario con la dirección de correo electrónico \"{email}\" ya existe",
"error.user.email.invalid": "Por favor, introduce una dirección de correo electrónico válida",
- "error.user.language.invalid": "Por favor ingrese un idioma válido",
- "error.user.notFound": "El usuario \"{name}\" no pudo ser encontrado",
- "error.user.password.invalid": "Por favor introduce una contraseña válida. Las contraseñas deben tener al menos 8 caracteres de largo.",
+ "error.user.language.invalid": "Por favor, introduce un idioma válido",
+ "error.user.notFound": "No se puede encontrar el usuario \"{name}\"",
+ "error.user.password.invalid": "Por favor, introduce una contraseña válida. Las contraseñas deben tener al menos 8 caracteres de largo.",
"error.user.password.notSame": "Las contraseñas no coinciden",
"error.user.password.undefined": "El usuario no tiene contraseña",
"error.user.password.wrong": "Contraseña incorrecta",
- "error.user.role.invalid": "Por favor ingrese un rol válido",
- "error.user.undefined": "El usuario no puede ser encontrado",
- "error.user.update.permission": "No tienes permitido actualizar al usuario \"{name}\"",
+ "error.user.role.invalid": "Por favor, introduce un rol válido",
+ "error.user.undefined": "No se puede encontrar el usuario",
+ "error.user.update.permission": "No tienes permiso para actualizar el usuario \"{name}\"",
"error.validation.accepted": "Por favor, confirma",
- "error.validation.alpha": "Por favor solo ingresa caracteres entre a-z",
- "error.validation.alphanum": "Por favor solo ingrese caracteres entre a-z o numerales 0-9",
- "error.validation.between": "Por favor, introduzca un valor entre \"{min}\" y \"{max}\"",
- "error.validation.boolean": "Por favor confirme o rechace",
- "error.validation.contains": "Por favor ingrese un valor que contenga \"{needle}\"",
- "error.validation.date": "Por favor introduzca una fecha valida",
- "error.validation.date.after": "Por favor introduce una fecha posterior a {date}",
- "error.validation.date.before": "Por favor introduce una fecha anterior a {date}",
- "error.validation.date.between": "Por favor introduce un número entre {min} y {max}",
- "error.validation.denied": "Por favor, rechace",
+ "error.validation.alpha": "Por favor, introduce solo caracteres entre a-z",
+ "error.validation.alphanum": "Por favor, introduce solo caracteres entre a-z o numerales 0-9",
+ "error.validation.between": "Por favor, introduce un valor entre \"{min}\" y \"{max}\"",
+ "error.validation.boolean": "Por favor, confirma o rechaza",
+ "error.validation.contains": "Por favor, introduce un valor que contenga \"{needle}\"",
+ "error.validation.date": "Por favor, introduce una fecha válida",
+ "error.validation.date.after": "Por favor, introduce una fecha posterior a {date}",
+ "error.validation.date.before": "Por favor, introduce una fecha anterior a {date}",
+ "error.validation.date.between": "Por favor, introduce un número entre {min} y {max}",
+ "error.validation.denied": "Por favor, rechaza",
"error.validation.different": "El valor no debe ser \"{other}\"",
"error.validation.email": "Por favor, introduce un correo electrónico válido",
"error.validation.endswith": "El valor debe terminar con \"{end}\"",
- "error.validation.filename": "Por favor ingrese un nombre de archivo válido",
- "error.validation.in": "Por favor ingrese uno de los siguientes: ({in})",
+ "error.validation.filename": "Por favor, introduce un nombre de archivo válido",
+ "error.validation.in": "Por favor, introduce uno de los siguientes: ({in})",
"error.validation.integer": "Por favor, introduce un numero integro válido",
- "error.validation.ip": "Por favor ingrese una dirección IP válida",
- "error.validation.less": "Por favor, introduzca un valor inferior a {max}",
+ "error.validation.ip": "Por favor, introduce una dirección IP válida",
+ "error.validation.less": "Por favor, introduce un valor inferior a {max}",
"error.validation.match": "El valor no coincide con el patrón esperado",
- "error.validation.max": "Por favor, introduzca un valor igual o inferior a {max}",
- "error.validation.maxlength": "Por favor, introduzca un valor más corto. (max. {max} caracteres)",
- "error.validation.maxwords": "Por favor ingrese no más de {max} palabra(s)",
- "error.validation.min": "Por favor, introduzca un valor igual o mayor a {min}",
- "error.validation.minlength": "Por favor, introduzca un valor más largo. (min. {min} caracteres)",
- "error.validation.minwords": "Por favor ingrese al menos {min} palabra(s)",
- "error.validation.more": "Por favor, introduzca un valor mayor a {min}",
- "error.validation.notcontains": "Por favor ingrese un valor que no contenga \"{needle}\"",
- "error.validation.notin": "Por favor, no ingrese ninguno de los siguientes: ({notIn})",
- "error.validation.option": "Por favor seleccione una opción válida",
- "error.validation.num": "Por favor ingrese un número valido",
- "error.validation.required": "Por favor ingrese algo",
- "error.validation.same": "Por favor escribe \"{other}\"",
+ "error.validation.max": "Por favor, introduce un valor igual o inferior a {max}",
+ "error.validation.maxlength": "Por favor, introduce un valor más corto. (max. {max} caracteres)",
+ "error.validation.maxwords": "Por favor, introduce no más de {max} palabra(s)",
+ "error.validation.min": "Por favor, introduce un valor igual o mayor a {min}",
+ "error.validation.minlength": "Por favor, introduce un valor más largo. (min. {min} caracteres)",
+ "error.validation.minwords": "Por favor, introduce al menos {min} palabra(s)",
+ "error.validation.more": "Por favor, introduce un valor mayor a {min}",
+ "error.validation.notcontains": "Por favor, introduce un valor que no contenga \"{needle}\"",
+ "error.validation.notin": "Por favor, no introduzcas ninguno de los siguientes: ({notIn})",
+ "error.validation.option": "Por favor, selecciona una opción válida",
+ "error.validation.num": "Por favor, introduce un número valido",
+ "error.validation.required": "Por favor, introduce algo",
+ "error.validation.same": "Por favor, introduce \"{other}\"",
"error.validation.size": "El tamaño del valor debe ser \"{size}\"",
"error.validation.startswith": "El valor debe comenzar con \"{start}\"",
- "error.validation.time": "Por favor ingrese una hora válida",
- "error.validation.time.after": "Por favor ingresa una fecha después de {time}",
- "error.validation.time.before": "Por favor ingresa una fecha antes de {time}",
- "error.validation.time.between": "Por favor ingresa un fecha entre {min} y {max}",
- "error.validation.url": "Por favor introduzca un URL válido",
+ "error.validation.time": "Por favor, introduce una hora válida",
+ "error.validation.time.after": "Por favor, introduce una fecha después de {time}",
+ "error.validation.time.before": "Por favor, introduce una fecha antes de {time}",
+ "error.validation.time.between": "Por favor, introduce un fecha entre {min} y {max}",
+ "error.validation.url": "Por favor, introduce un URL válido",
"expand": "Expandir",
"expand.all": "Expandir todo",
- "field.required": "Este campo es requerido",
+ "field.required": "Este campo es obligatorio",
"field.blocks.changeType": "Cambiar tipo",
"field.blocks.code.name": "Código",
"field.blocks.code.language": "Idioma",
"field.blocks.code.placeholder": "Tu código...",
- "field.blocks.delete.confirm": "¿Seguro que quieres eliminar este bloque?",
- "field.blocks.delete.confirm.all": "¿Seguro que quieres eliminar todos los bloques?",
- "field.blocks.delete.confirm.selected": "¿Seguro que quieres eliminar los bloques seleccionados?",
- "field.blocks.empty": "No hay bloques aún",
- "field.blocks.fieldsets.label": "Por favor selecciona un tipo de bloque...",
+ "field.blocks.delete.confirm": "¿Realmente quieres eliminar este bloque?",
+ "field.blocks.delete.confirm.all": "¿Realmente quieres eliminar todos los bloques?",
+ "field.blocks.delete.confirm.selected": "¿Realmente quieres eliminar los bloques seleccionados?",
+ "field.blocks.empty": "Aún no hay bloques",
+ "field.blocks.fieldsets.label": "Por favor, selecciona un tipo de bloque...",
"field.blocks.fieldsets.paste": "Presiona {{ shortcut }}para pegar/importar bloques en tu portapapeles ",
"field.blocks.gallery.name": "Galería",
- "field.blocks.gallery.images.empty": "No hay imágenes aún",
+ "field.blocks.gallery.images.empty": "Aún no hay imágenes",
"field.blocks.gallery.images.label": "Imágenes",
"field.blocks.heading.level": "Nivel",
"field.blocks.heading.name": "Encabezado",
@@ -267,91 +270,94 @@
"field.blocks.quote.name": "Cita",
"field.blocks.quote.text.label": "Texto",
"field.blocks.quote.text.placeholder": "Cita...",
- "field.blocks.quote.citation.label": "Citation",
+ "field.blocks.quote.citation.label": "Cita",
"field.blocks.quote.citation.placeholder": "Por ...",
"field.blocks.text.name": "Texto",
- "field.blocks.text.placeholder": "Text …",
+ "field.blocks.text.placeholder": "Texto ...",
"field.blocks.video.caption": "Leyenda",
"field.blocks.video.name": "Video",
- "field.blocks.video.placeholder": "Enter a video URL",
- "field.blocks.video.url.label": "Video-URL",
+ "field.blocks.video.placeholder": "Introduce la URL de un vídeo",
+ "field.blocks.video.url.label": "Vídeo-URL",
"field.blocks.video.url.placeholder": "https://youtube.com/?v=",
"field.files.empty": "Aún no hay archivos seleccionados",
- "field.layout.delete": "Delete layout",
- "field.layout.delete.confirm": "Do you really want to delete this layout?",
- "field.layout.empty": "No rows yet",
- "field.layout.select": "Select a layout",
+ "field.layout.delete": "Eliminar layout",
+ "field.layout.delete.confirm": "¿Realmente quieres eliminar este layout?",
+ "field.layout.empty": "Aún no hay filas",
+ "field.layout.select": "Seleccionar layout",
- "field.object.empty": "No information yet",
+ "field.object.empty": "Aún no hay información",
"field.pages.empty": "Aún no hay páginas seleccionadas",
"field.structure.delete.confirm": "¿Realmente quieres eliminar esta fila?",
+ "field.structure.delete.confirm.all": "¿Realmente quieres eliminar todas las entradas?",
"field.structure.empty": "Aún no hay entradas",
"field.users.empty": "Aún no hay usuarios seleccionados",
- "file.blueprint": "This file has no blueprint yet. You can define the setup in /site/blueprints/files/{blueprint}.yml",
+ "file.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en /site/blueprints/files/{blueprint}.yml",
"file.delete.confirm": "¿Realmente quieres eliminar
{filename}?",
- "file.sort": "Change position",
+ "file.sort": "Cambiar posición",
"files": "Archivos",
"files.empty": "Aún no hay archivos",
- "hide": "Hide",
+ "hide": "Ocultar",
"hour": "Hora",
- "import": "Import",
+ "import": "Importar",
"info": "Info",
"insert": "Insertar",
- "insert.after": "Insert after",
- "insert.before": "Insert before",
+ "insert.after": "Insertar después",
+ "insert.before": "Insertar antes",
"install": "Instalar",
"installation": "Instalación",
"installation.completed": "El panel ha sido instalado",
- "installation.disabled": "El instalador del panel está deshabilitado en servidores públicos por defecto. Ejecute el instalador en una máquina local o habilítelo con la opción panel.install
.",
+ "installation.disabled": "El instalador del panel está deshabilitado en servidores públicos por defecto. Por favor, ejecuta el instalador en una máquina local o habilítalo con la opción panel.install
.",
"installation.issues.accounts": "La carpeta /site/accounts
no existe o no se puede escribir",
"installation.issues.content": "La carpeta /content
no existe o no se puede escribir",
"installation.issues.curl": "La extensión CURL
es requerida",
- "installation.issues.headline": "No se pudo instalar el panel",
+ "installation.issues.headline": "No se puede instalar el panel",
"installation.issues.mbstring": "La extension MB String
es requerida",
"installation.issues.media": "La carpeta /media
no existe o no se puede escribir",
- "installation.issues.php": "Asegúrate de usar PHP 7+
",
+ "installation.issues.php": "Asegurese de estar usando PHP 8+
",
"installation.issues.server": "Kirby requiere Apache
, Nginx
o Caddy
",
"installation.issues.sessions": "La carpeta /site/sessions
no existe o no se puede escribir",
"language": "Idioma",
"language.code": "Código",
"language.convert": "Hacer por defecto",
- "language.convert.confirm": "
{name} al idioma por defecto? Esto no se puede deshacer.
Si {name} tiene contenido sin traducir, ya no habrá un respaldo válido y algunas partes de su sitio podrían estar vacías.
", + "language.convert.confirm": "¿Realmente quieres convertir {name} al idioma por defecto? Esto no se puede deshacer.
Si {name} tiene contenido sin traducir, ya no habrá un respaldo válido y algunas partes de tu sitio podrían estar vacías.
", "language.create": "Añadir un nuevo idioma", - "language.delete.confirm": "¿De verdad quieres eliminar el idioma {name} incluyendo todas las traducciones? ¡Esto no se puede deshacer!", + "language.delete.confirm": "¿Realmente quieres eliminar el idioma {name} incluyendo todas las traducciones? ¡Esto no se puede deshacer!", "language.deleted": "El idioma ha sido eliminado", "language.direction": "Leyendo dirección", "language.direction.ltr": "De izquierda a derecha", "language.direction.rtl": "De derecha a izquierda", "language.locale": "PHP locale string", - "language.locale.warning": "Estas utilizando un configuración local. Por favor modifícalo en el archivo del lenguaje en /site/languages", + "language.locale.warning": "Estás utilizando una configuración local. Por favor, modifícalo en el archivo del lenguaje en /site/languages", "language.name": "Nombre", "language.updated": "El idioma ha sido actualizado", "languages": "Idiomas", "languages.default": "Idioma predeterminado", - "languages.empty": "Todavía no hay idiomas", + "languages.empty": "Aún no hay idiomas", "languages.secondary": "Idiomas secundarios", - "languages.secondary.empty": "Todavía no hay idiomas secundarios", + "languages.secondary.empty": "Aún no hay idiomas secundarios", "license": "Licencia", "license.buy": "Comprar una licencia", "license.register": "Registro", - "license.manage": "Manage your licenses", - "license.register.help": "Recibió su código de licencia después de la compra por correo electrónico. Por favor copie y pegue para registrarse.", - "license.register.label": "Por favor ingrese su código de licencia", + "license.manage": "Gestiona licencias", + "license.register.help": "Recibiste tu código de licencia tras la compra por correo electrónico. Por favor, copia y pega para registrarte.", + "license.register.label": "Por favor, introduce tu código de licencia", + "license.register.domain": "Tu licencia será registrada para {host}.", + "license.register.local": "Estás a punto de registrar tu licencia para el dominio local {host}. Si este sitio va a ser desplegado en un dominio público, por favor regístralo allí. Si {host} es el dominio en el que quiere registrar Kirby, por favor continúa.", "license.register.success": "Gracias por apoyar a Kirby", "license.unregistered": "Esta es una demo no registrada de Kirby", - "license.unregistered.label": "Unregistered", + "license.unregistered.label": "No registrado", "link": "Enlace", "link.text": "Texto del enlace", @@ -367,20 +373,20 @@ "lock.isUnlocked": "Tus cambios sin guardar han sido sobrescritos por otro usuario. Puedes descargar los cambios y fusionarlos manualmente.", "login": "Iniciar sesión", - "login.code.label.login": "Login code", - "login.code.label.password-reset": "Password reset code", + "login.code.label.login": "Código de inicio de sesión", + "login.code.label.password-reset": "Código de restablecimiento de contraseña", "login.code.placeholder.email": "000 000", - "login.code.text.email": "If your email address is registered, the requested code was sent via email.", - "login.email.login.body": "Hi {user.nameOrEmail},\n\nYou recently requested a login code for the Panel of {site}.\nThe following login code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a login code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.", - "login.email.login.subject": "Your login code", - "login.email.password-reset.body": "Hi {user.nameOrEmail},\n\nYou recently requested a password reset code for the Panel of {site}.\nThe following password reset code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a password reset code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.", - "login.email.password-reset.subject": "Your password reset code", + "login.code.text.email": "Si tu dirección de correo electrónico está registrada, el código solicitado fue enviado por correo electrónico.", + "login.email.login.body": "Hola {user.nameOrEmail},\n\nHas pedido, recientemente, un código de restablecimiento de contraseña para el Panel del sitio {site}.\nEl siguiente código de restablecimiento de contraseña será válido por {timeout} minutos:\n\n{code}\n\nSi no pediste un código de restablecimiento de contraseña, por favor ignora este correo o contacta a tu administrador si tienes dudas.\nPor seguridad, por favor NO reenvíes este correo.", + "login.email.login.subject": "Tu código de inicio de sesión", + "login.email.password-reset.body": "Hola {user.nameOrEmail},\n\nHas pedido, recientemente, un código de restablecimiento de contraseña para el Panel del sitio {site}.\nEl siguiente código de restablecimiento de contraseña será válido por {timeout} minutos:\n\n{code}\n\nSi no pediste un código de restablecimiento de contraseña, por favor ignora este correo o contacta a tu administrador si tienes dudas.\nPor seguridad, por favor NO reenvíes este correo.", + "login.email.password-reset.subject": "Tu código de restablecimiento de contraseña", "login.remember": "Mantener sesión iniciada", - "login.reset": "Reset password", - "login.toggleText.code.email": "Login via email", - "login.toggleText.code.email-password": "Login with password", - "login.toggleText.password-reset.email": "Forgot your password?", - "login.toggleText.password-reset.email-password": "← Back to login", + "login.reset": "Restablecer contraseña", + "login.toggleText.code.email": "Iniciar sesión por correo electrónico", + "login.toggleText.code.email-password": "Iniciar sesión con contraseña", + "login.toggleText.password-reset.email": "¿Olvidaste tu contraseña?", + "login.toggleText.password-reset.email-password": "← Volver al inicio de sesión", "logout": "Cerrar sesión", @@ -410,34 +416,34 @@ "off": "Apagado", "on": "Encendido", "open": "Abrir", - "open.newWindow": "Open in new window", + "open.newWindow": "Abrir en una ventana nueva", "options": "Opciones", - "options.none": "No options", + "options.none": "Sin opciones", "orientation": "Orientación", "orientation.landscape": "Paisaje", "orientation.portrait": "Retrato", "orientation.square": "Cuadrado", - "page.blueprint": "This page has no blueprint yet. You can define the setup in /site/blueprints/pages/{blueprint}.yml", + "page.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en /site/blueprints/pages/{blueprint}.yml", "page.changeSlug": "Cambiar URL", "page.changeSlug.fromTitle": "Crear en base al título", "page.changeStatus": "Cambiar estado", - "page.changeStatus.position": "Por favor seleccione una posición", - "page.changeStatus.select": "Seleccione un nuevo estado", + "page.changeStatus.position": "Por favor, selecciona una posición", + "page.changeStatus.select": "Selecciona un nuevo estado", "page.changeTemplate": "Cambiar plantilla", "page.delete.confirm": "¿Realmente quieres eliminar {title}?", "page.delete.confirm.subpages": "Esta página tiene subpáginas.MB String
مورد نیاز است",
"installation.issues.media": "پوشه /media
موجود نیست یا قابل نوشتن نیست",
- "installation.issues.php": "لطفا از پیاچپی 7 یا بالاتر استفاده کنید",
+ "installation.issues.php": "لطفا از پیاچپی 8 یا بالاتر استفاده کنید",
"installation.issues.server": "کربی نیاز به Apache
، Nginx
یا Caddy
دارد",
"installation.issues.sessions": "پوشه /site/sessions
وجود ندارد یا قابل نوشتن نیست",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "پس از خرید از طریق ایمیل، کد مجوز خود را دریافت کردید. لطفا برای ثبتنام آن را کپی و اینجا پیست کنید.",
"license.register.label": "لطفا کد مجوز خود را وارد کنید",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "با تشکر از شما برای حمایت از کربی",
"license.unregistered": "این یک نسخه آزمایشی ثبت نشده از کربی است",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/fi.json b/kirby/i18n/translations/fi.json
index ccc63eb..3d29c0e 100644
--- a/kirby/i18n/translations/fi.json
+++ b/kirby/i18n/translations/fi.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Lisää vähintään yksi lohko",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Nimellä \"{name}\" ja kyseisellä verkkotunnuksella ei löydy sähköpostiosoitetta",
"error.field.converter.invalid": "Muunnin \"{converter}\" ei kelpaa",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "Nimi ei voi olla tyhjä",
"error.file.changeName.permission": "Sinulla ei ole oikeutta muuttaa tiedoston \"{filename}\" nimeä",
@@ -289,6 +292,7 @@
"field.pages.empty": " Sivuja ei ole vielä valittu",
"field.structure.delete.confirm": "Haluatko varmasti poistaa tämän rivin?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Rivejä ei ole vielä lisätty",
"field.users.empty": "Käyttäjiä ei ole vielä valittu",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Paneelia ei voida asentaa",
"installation.issues.mbstring": "MB String
-laajennos on pakollinen",
"installation.issues.media": "/media
-kansio ei ole olemassa tai siihen ei voi kirjoittaa",
- "installation.issues.php": "Varmista että PHP 7+
on käytössä",
+ "installation.issues.php": "Varmista että PHP 8+
on käytössä",
"installation.issues.server": "Kirby tarvitsee jonkun seuraavista: Apache
, Nginx
tai Caddy
",
"installation.issues.sessions": "/site/sessions
-kansio ei ole olemassa tai siihen ei voi kirjoittaa",
@@ -349,6 +353,8 @@
"license.manage": "Hallinnoi lisenssejäsi",
"license.register.help": "Lisenssiavain on lähetetty oston jälkeen sähköpostiisi. Kopioi ja liitä avain tähän.",
"license.register.label": "Anna lisenssiavain",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Kiitos kun tuet Kirbyä",
"license.unregistered": "Tämä on rekisteröimätön demo Kirbystä",
"license.unregistered.label": "Rekisteröimätön",
diff --git a/kirby/i18n/translations/fr.json b/kirby/i18n/translations/fr.json
index 41ee52b..41bd2a0 100644
--- a/kirby/i18n/translations/fr.json
+++ b/kirby/i18n/translations/fr.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Vous devez ajouter au moins un bloc",
"error.blocks.validation": "Il y a une erreur sur le champ \"{field}\" du bloc {index} utilisant le type de bloc \"{fieldset}\"",
+ "error.cache.type.invalid": "Type de cache incorrect \"{type}\"",
+
"error.email.preset.notFound": "La configuration de courriel « {name} » n’a pu être trouvé ",
"error.field.converter.invalid": "Convertisseur « {converter} » incorrect",
+ "error.field.type.missing": "Champ \"{ name }\" : Le type de champ \"{ type }\" n’existe pas",
"error.file.changeName.empty": "Le nom ne peut être vide",
"error.file.changeName.permission": "Vous n’êtes pas autorisé à modifier le nom de « {filename} »",
@@ -289,6 +292,7 @@
"field.pages.empty": "Pas encore de page sélectionnée",
"field.structure.delete.confirm": "Voulez-vous vraiment supprimer cette ligne ?",
+ "field.structure.delete.confirm.all": "Voulez-vous vraiment supprimer toutes les entrées ?",
"field.structure.empty": "Pas encore d’entrée",
"field.users.empty": "Pas encore d’utilisateur sélectionné",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Le Panel ne peut être installé",
"installation.issues.mbstring": "L’extension MB String
est requise",
"installation.issues.media": "Le dossier /media
n’existe pas ou n’est pas accessible en écriture",
- "installation.issues.php": "Veuillez utiliser PHP 7+
",
+ "installation.issues.php": "Veuillez utiliser PHP 8+
",
"installation.issues.server": "Kirby requiert Apache
, Nginx
ou Caddy
",
"installation.issues.sessions": "Le dossier /site/sessions
n’existe pas ou n’est pas accessible en écriture",
@@ -349,6 +353,8 @@
"license.manage": "Gérer vos licences",
"license.register.help": "Vous avez reçu votre numéro de licence par courriel après l'achat. Veuillez le copier et le coller ici pour l'enregistrer.",
"license.register.label": "Veuillez saisir votre numéro de licence",
+ "license.register.domain": "Votre licence sera enregistrée pour {host}.",
+ "license.register.local": "Vous êtes sur le point d’enregistrer votre licence pour votre domaine local {host}. Si votre site sera déployé sur un domaine publique, veuillez plutôt l’y l’enregistrer. Si {host} est le domaine pour lequel vous voulez enregistrer Kirby, veuillez continuer.",
"license.register.success": "Merci pour votre soutien à Kirby",
"license.unregistered": "Ceci est une démo non enregistrée de Kirby",
"license.unregistered.label": "Non enregistré",
@@ -382,7 +388,7 @@
"login.toggleText.password-reset.email": "Mot de passe oublié ?",
"login.toggleText.password-reset.email-password": "← Retour à la connexion",
- "logout": "Se déconnecter",
+ "logout": "Déconnexion",
"menu": "Menu",
"meridiem": "AM/PM",
diff --git a/kirby/i18n/translations/hu.json b/kirby/i18n/translations/hu.json
index 626df00..9a3f108 100644
--- a/kirby/i18n/translations/hu.json
+++ b/kirby/i18n/translations/hu.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Legalább egy blokkot hozzá kell adnod",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "A \"{name}\" email-beállítás nem található",
"error.field.converter.invalid": "Érvénytelen konverter: \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "A név nem lehet üres",
"error.file.changeName.permission": "Nincs jogosultságod megváltoztatni a \"{filename}\" fájl nevét",
@@ -289,6 +292,7 @@
"field.pages.empty": "Nincs oldal kiválasztva",
"field.structure.delete.confirm": "Biztos t\u00f6r\u00f6lni szeretn\u00e9d ezt a bejegyz\u00e9st?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Nincs m\u00e9g bejegyz\u00e9s",
"field.users.empty": "Nincs felhasználó kiválasztva",
@@ -318,7 +322,7 @@
"installation.issues.headline": "A panel telepítése sikertelen",
"installation.issues.mbstring": "Az MB String
bővítmény engedélyezése szükséges",
"installation.issues.media": "A /media
mappa nem létezik vagy nem írható",
- "installation.issues.php": "Bizonyosodj meg róla, hogy az általad használt PHP-verzió PHP 7+
",
+ "installation.issues.php": "Bizonyosodj meg róla, hogy az általad használt PHP-verzió PHP 8+
",
"installation.issues.server": "A Kirby az alábbi szervereken futtatható: Apache
, Nginx
vagy Caddy
",
"installation.issues.sessions": "A /site/sessions
könyvtár nem létezik vagy nem írható",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "A vásárlás után emailben küldjük el a licenc-kódot. Regisztrációhoz másold ide a kapott kódot.",
"license.register.label": "Kérlek írd be a licenc-kódot",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Köszönjük, hogy támogatod a Kirby-t",
"license.unregistered": "Jelenleg a Kirby nem regisztrált próbaverzióját használod",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/id.json b/kirby/i18n/translations/id.json
index e04e0ea..e6b4b88 100644
--- a/kirby/i18n/translations/id.json
+++ b/kirby/i18n/translations/id.json
@@ -1,10 +1,10 @@
{
- "account.changeName": "Change your name",
- "account.delete": "Delete your account",
- "account.delete.confirm": "Do you really want to delete your account? You will be logged out immediately. Your account cannot be recovered.",
+ "account.changeName": "Ubah nama Anda",
+ "account.delete": "Hapus akun Anda",
+ "account.delete.confirm": "Anda yakin menghapus akun? Anda akan dikeluarkan segera. Akun Anda tidak dapat dipulihkan.",
"add": "Tambah",
- "author": "Author",
+ "author": "Penulis",
"avatar": "Gambar profil",
"back": "Kembali",
"cancel": "Batal",
@@ -14,7 +14,7 @@
"collapse": "Lipat",
"collapse.all": "Lipat Semua",
"copy": "Salin",
- "copy.all": "Copy all",
+ "copy.all": "Salin semua",
"create": "Buat",
"date": "Tanggal",
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Anda setidaknya menambahkan satu blok",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Surel \"{name}\" tidak dapat ditemukan",
"error.field.converter.invalid": "Konverter \"{converter}\" tidak valid",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "Nama harus diisi",
"error.file.changeName.permission": "Anda tidak diizinkan mengubah nama berkas \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Belum ada halaman yang dipilih",
"field.structure.delete.confirm": "Anda yakin menghapus baris ini?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Belum ada entri",
"field.users.empty": "Belum ada pengguna yang dipilih",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Panel tidak dapat dipasang",
"installation.issues.mbstring": "Ekstensi MB String
diperlukan",
"installation.issues.media": "Folder /media
tidak ada atau tidak dapat ditulis",
- "installation.issues.php": "Pastikan Anda menggunakan PHP 7+
",
+ "installation.issues.php": "Pastikan Anda menggunakan PHP 8+
",
"installation.issues.server": "Kirby memerlukan Apache
, Nginx
, atau Caddy
",
"installation.issues.sessions": "Folder /site/sessions
tidak ada atau tidak dapat ditulis",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "Anda menerima kode lisensi via surel setelah pembelian. Salin dan tempel kode tersebut untuk mendaftarkan.",
"license.register.label": "Masukkan kode lisensi Anda",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Terima kasih atas dukungan untuk Kirby",
"license.unregistered": "Ini adalah demo tidak diregistrasi dari Kirby",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/is_IS.json b/kirby/i18n/translations/is_IS.json
index 338aa61..9e945dc 100644
--- a/kirby/i18n/translations/is_IS.json
+++ b/kirby/i18n/translations/is_IS.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Allavegana einn bálkur takk",
"error.blocks.validation": "Það er villa í {field} sviðinu í bálkinum {index} sem notar {fieldset} bálkgerðina",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Netfangstillingarnar: \"{name}\" fundust ekki",
"error.field.converter.invalid": "Ógildur umbreytari \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "Nafn skal fylla út",
"error.file.changeName.permission": "Þú mátt ekkert breyta nafninu á skránni \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Engar síður valdar ennþá",
"field.structure.delete.confirm": "Viltu virkilega eyða þessari röð?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Engar færslur enn",
"field.users.empty": "Engir notendur valdir enn",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Uppsetning Panelsins mistókst hrapalega",
"installation.issues.mbstring": "MB String
er hér bráðnauðsynleg",
"installation.issues.media": "/media
mappan er annaðhvort ekki til eða er ekki skrifanleg",
- "installation.issues.php": "Notaðu PHP 7+
",
+ "installation.issues.php": "Notaðu PHP 8+
",
"installation.issues.server": "Kirby krefst Apache
, Nginx
eða Caddy
",
"installation.issues.sessions": "/site/sessions
mappan er annaðhvort ekki til eða er ekki skrifanleg",
@@ -349,6 +353,8 @@
"license.manage": "Sýslaðu með leyfin þín",
"license.register.help": "Þú fékkst sendan tölvupóst með leyfiskóðanum þegar þú keyptir leyfi. Vinsamlegast afritaðu hann og settu hann hingað til að skrá þig.",
"license.register.label": "Vinsamlegast settu inn leyfiskóðan",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Þakka þér fyrir að velja Kirby",
"license.unregistered": "Þetta er óskráð prufueintak af Kirby",
"license.unregistered.label": "Óskráð",
diff --git a/kirby/i18n/translations/it.json b/kirby/i18n/translations/it.json
index a58b22c..234eb2f 100644
--- a/kirby/i18n/translations/it.json
+++ b/kirby/i18n/translations/it.json
@@ -49,13 +49,13 @@
"email": "Email",
"email.placeholder": "mail@esempio.com",
- "entries": "Entries",
- "entry": "Entry",
+ "entries": "Voci",
+ "entry": "Voce",
"environment": "Ambiente",
"error.access.code": "Codice non valido",
- "error.access.login": "Login Invalido",
+ "error.access.login": "Login invalido",
"error.access.panel": "Non ti è permesso accedere al pannello",
"error.access.view": "Non ti è permesso accedere a questa parte del pannello",
@@ -70,11 +70,14 @@
"error.blocks.max.singular": "Non puoi aggiungere più di un blocco",
"error.blocks.min.plural": "Devi aggiungere almeno {min} blocchi",
"error.blocks.min.singular": "Devi aggiungere almeno un blocco",
- "error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.blocks.validation": "C'è un errore sul campo \"{field}\" nel blocco {index} che utilizza il tipo di blocco \"{fieldset}\"",
+
+ "error.cache.type.invalid": "Tipo di cache \"{type}\" non valido",
"error.email.preset.notFound": "Non è stato possibile trovare il preset email \"{name}\"",
"error.field.converter.invalid": "Convertitore \"{converter}\" non valido",
+ "error.field.type.missing": "Campo \"{ name }\": il tipo di campo \"{ type }\" non esiste",
"error.file.changeName.empty": "Il nome non dev'essere vuoto",
"error.file.changeName.permission": "Non ti è permesso modificare il nome di \"{filename}\"",
@@ -107,14 +110,14 @@
"error.language.name": "Inserisci un nome valido per la lingua",
"error.language.notFound": "La lingua non è stata trovata",
- "error.layout.validation.block": "There's an error on the \"{field}\" field in block {blockIndex} using the \"{fieldset}\" block type in layout {layoutIndex}",
+ "error.layout.validation.block": "C'è un errore sul campo \"{field}\" nel blocco {blockIndex} che utilizza il tipo di blocco \"{fieldset}\" nel layout {layoutIndex}",
"error.layout.validation.settings": "C'è un errore nelle impostazioni del layout {index}",
"error.license.format": "Inserisci un codice di licenza valido",
"error.license.email": "Inserisci un indirizzo email valido",
"error.license.verification": "Non è stato possibile verificare la licenza",
- "error.object.validation": "There’s an error in the \"{label}\" field:\n{message}",
+ "error.object.validation": "C'è un errore nel campo \"{label}\":\n{message}",
"error.offline": "Il pannello di controllo è attualmente offline",
@@ -284,11 +287,12 @@
"field.layout.empty": "Nessuna riga inserita",
"field.layout.select": "Scegli un layout",
- "field.object.empty": "No information yet",
+ "field.object.empty": "Ancora nessuna informazione",
"field.pages.empty": "Nessuna pagina selezionata",
"field.structure.delete.confirm": "Vuoi veramente eliminare questo elemento?",
+ "field.structure.delete.confirm.all": "Vuoi davvero cancellare tutte le voci?",
"field.structure.empty": "Non ci sono ancora elementi.",
"field.users.empty": "Nessun utente selezionato",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Il pannello non può esser installato",
"installation.issues.mbstring": "È necessaria l'estensione MB String
",
"installation.issues.media": "La cartella /media
non esiste o non dispone dei permessi di scrittura",
- "installation.issues.php": "Assicurati di utilizzare PHP 7.1+
",
+ "installation.issues.php": "Assicurati di utilizzare PHP 8+
",
"installation.issues.server": "Kirby necessita di Apache
, Nginx
o Caddy
",
"installation.issues.sessions": "La cartella /site/sessions
non esiste o non dispone dei permessi di scrittura",
@@ -346,12 +350,14 @@
"license": "Licenza di Kirby",
"license.buy": "Acquista una licenza",
"license.register": "Registra",
- "license.manage": "Manage your licenses",
+ "license.manage": "Gestisci le tue licenze",
"license.register.help": "Hai ricevuto il codice di licenza tramite email dopo l'acquisto. Per favore inseriscilo per registrare Kirby.",
"license.register.label": "Inserisci il codice di licenza",
+ "license.register.domain": "La tua licenza verrà registrata su {host}.",
+ "license.register.local": "Stai per registrare la licenza per il dominio locale {host}. Se questo sito verrà rilasciato su un dominio pubblico, ti preghiamo di registrarlo lì. Se {host} è il dominio per il quale desideri ottenere la licenza di Kirby, procedi pure.",
"license.register.success": "Ti ringraziamo per aver supportato Kirby",
"license.unregistered": "Questa è una versione demo di Kirby non registrata",
- "license.unregistered.label": "Unregistered",
+ "license.unregistered.label": "Non registrato",
"link": "Link",
"link.text": "Testo del link",
@@ -482,7 +488,7 @@
"section.required": "La sezione è obbligatoria",
- "security": "Security",
+ "security": "Sicurezza",
"select": "Seleziona",
"server": "Server",
"settings": "Impostazioni",
@@ -492,26 +498,26 @@
"slug": "URL",
"sort": "Ordina",
- "stats.empty": "No reports",
- "system.issues.content": "The content folder seems to be exposed",
- "system.issues.eol.kirby": "Your installed Kirby version has reached end-of-life and will not receive further security updates",
- "system.issues.eol.plugin": "Your installed version of the { plugin } plugin is has reached end-of-life and will not receive further security updates",
- "system.issues.debug": "Debugging must be turned off in production",
- "system.issues.git": "The .git folder seems to be exposed",
- "system.issues.https": "We recommend HTTPS for all your sites",
- "system.issues.kirby": "The kirby folder seems to be exposed",
- "system.issues.site": "The site folder seems to be exposed",
- "system.issues.vulnerability.kirby": "Your installation might be affected by the following vulnerability ({ severity } severity): { description }",
- "system.issues.vulnerability.plugin": "Your installation might be affected by the following vulnerability in the { plugin } plugin ({ severity } severity): { description }",
- "system.updateStatus": "Update status",
- "system.updateStatus.error": "Could not check for updates",
- "system.updateStatus.not-vulnerable": "No known vulnerabilities",
- "system.updateStatus.security-update": "Free security update { version } available",
- "system.updateStatus.security-upgrade": "Upgrade { version } with security fixes available",
- "system.updateStatus.unreleased": "Unreleased version",
- "system.updateStatus.up-to-date": "Up to date",
- "system.updateStatus.update": "Free update { version } available",
- "system.updateStatus.upgrade": "Upgrade { version } available",
+ "stats.empty": "Nessuna segnalazione",
+ "system.issues.content": "La cartella content sembra essere esposta",
+ "system.issues.eol.kirby": "La versione di Kirby installata è giunta alla fine del suo ciclo di vita e non riceverà ulteriori aggiornamenti di sicurezza ",
+ "system.issues.eol.plugin": "La versione installata del plugin { plugin } è giunta alla fine del suo ciclo di vita e non riceverà ulteriori aggiornamenti di sicurezza",
+ "system.issues.debug": "Il debug deve essere disattivato in produzione",
+ "system.issues.git": "La cartella .git sembra essere esposta",
+ "system.issues.https": "Raccomandiamo l'utilizzo di HTTPS per tutti i siti",
+ "system.issues.kirby": "La cartella kirby sembra essere esposta",
+ "system.issues.site": "La cartella site sembra essere esposta",
+ "system.issues.vulnerability.kirby": "La tua installazione potrebbe essere colpita dalla seguente vulnerabilità ({ severity } gravità): { description }",
+ "system.issues.vulnerability.plugin": "La tua installazione potrebbe essere colpita dalla seguente vulnerabilità nel plugin { plugin } ({ severity } gravità): { description }",
+ "system.updateStatus": "Aggiorna lo stato",
+ "system.updateStatus.error": "Impossibile verificare gli aggiornamenti",
+ "system.updateStatus.not-vulnerable": "Nessuna vulnerabilità conosciuta",
+ "system.updateStatus.security-update": "Aggiornamento di sicurezza gratuito { version } disponibile",
+ "system.updateStatus.security-upgrade": "Aggiornamento { version } con le correzioni di sicurezza disponibili",
+ "system.updateStatus.unreleased": "Versione non rilasciata",
+ "system.updateStatus.up-to-date": "Aggiornato",
+ "system.updateStatus.update": "Aggiornamento gratuito { version } disponibile",
+ "system.updateStatus.upgrade": "Aggiornamento { version } disponibile",
"title": "Titolo",
"template": "Template",
@@ -578,9 +584,9 @@
"users": "Utenti",
"version": "Versione di Kirby",
- "version.current": "Current version",
- "version.latest": "Latest version",
- "versionInformation": "Version information",
+ "version.current": "Versione corrente",
+ "version.latest": "Ultima versione",
+ "versionInformation": "Informazioni sulla versione",
"view.account": "Il tuo account",
"view.installation": "Installazione",
diff --git a/kirby/i18n/translations/ko.json b/kirby/i18n/translations/ko.json
index 6bdc0dd..21b4343 100644
--- a/kirby/i18n/translations/ko.json
+++ b/kirby/i18n/translations/ko.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "블록을 하나 이상 추가하세요.",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "기본 이메일 주소({name})가 없습니다.",
"error.field.converter.invalid": "컨버터({converter})가 올바르지 않습니다.",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "이름을 입력하세요.",
"error.file.changeName.permission": "파일명({filename})을 변경할 권한이 없습니다.",
@@ -289,6 +292,7 @@
"field.pages.empty": "선택한 페이지가 없습니다.",
"field.structure.delete.confirm": "이 항목을 삭제할까요?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "항목이 없습니다.",
"field.users.empty": "선택한 사용자가 없습니다.",
@@ -318,7 +322,7 @@
"installation.issues.headline": "패널을 설치할 수 없습니다.",
"installation.issues.mbstring": "MB String
확장 모듈이 필요합니다.",
"installation.issues.media": "/media
폴더의 쓰기 권한을 확인하세요.",
- "installation.issues.php": "PHP
버전이 7 이상인지 확인하세요.",
+ "installation.issues.php": "PHP
버전이 8 이상인지 확인하세요.",
"installation.issues.server": "Kirby를 실행하려면 Apache
, Nginx
, 또는 Caddy
가 필요합니다.",
"installation.issues.sessions": "/site/sessions
폴더의 쓰기 권한을 확인하세요.",
@@ -349,6 +353,8 @@
"license.manage": "라이선스 관리",
"license.register.help": "Kirby를 등록하려면 이메일로 전송받은 라이선스 코드와 이메일 주소를 입력하세요.",
"license.register.label": "라이선스 코드를 입력하세요.",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Kirby와 함께해주셔서 감사합니다.",
"license.unregistered": "Kirby가 등록되지 않았습니다.",
"license.unregistered.label": "Kirby가 등록되지 않았습니다.",
@@ -382,7 +388,7 @@
"login.toggleText.password-reset.email": "암호 찾기",
"login.toggleText.password-reset.email-password": "로그인 화면으로",
- "logout": "\ub85c\uadf8\uc544\uc6c3",
+ "logout": "로그아웃",
"menu": "메뉴",
"meridiem": "오전/오후",
@@ -494,7 +500,7 @@
"stats.empty": "관련 기록이 없습니다.",
"system.issues.content": "/content
폴더의 권한을 확인하세요.",
- "system.issues.eol.kirby": "Your installed Kirby version has reached end-of-life and will not receive further security updates",
+ "system.issues.eol.kirby": "설치된 Kirby는 버전이 만료되었습니다. 더 이상 보안 업데이트를 받을 수 없습니다.",
"system.issues.eol.plugin": "Your installed version of the { plugin } plugin is has reached end-of-life and will not receive further security updates",
"system.issues.debug": "공개 서버상에서는 디버그 모드를 해제하세요.",
"system.issues.git": "/.git
폴더의 권한을 확인하세요.",
diff --git a/kirby/i18n/translations/lt.json b/kirby/i18n/translations/lt.json
index fdd78f5..3ec6b12 100644
--- a/kirby/i18n/translations/lt.json
+++ b/kirby/i18n/translations/lt.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Jūs turite pridėti bent vieną bloką",
"error.blocks.validation": "Yra klaida laukelyje \"{field}\" bloke {index} naudojant bloko tipą \"{fieldset}\"",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "El. pašto paruoštukas \"{name}\" nerastas",
"error.field.converter.invalid": "Neteisingas konverteris \"{converter}\"",
+ "error.field.type.missing": "Laukelis \"{ name }\": Šio tipo (\"{ type }\") laukelis neegzistuoja",
"error.file.changeName.empty": "Pavadinimas negali būti tuščias",
"error.file.changeName.permission": "Neturite teisės pakeisti failo pavadinimo \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Dar nėra puslapių",
"field.structure.delete.confirm": "Ar tikrai norite pašalinti šią eilutę?",
+ "field.structure.delete.confirm.all": "Ar tikrai norite išrtinti visus įrašus?",
"field.structure.empty": "Dar nėra įrašų",
"field.users.empty": "Dar nėra vartotojų",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Nepavyko įdiegti valdymo pulto",
"installation.issues.mbstring": "Plėtinys MB String
yra privalomas",
"installation.issues.media": "Katalogas /media
neegzistuoja arba neturi įrašymo teisių",
- "installation.issues.php": "Įsitikinkite, kad naudojama PHP 7+
",
+ "installation.issues.php": "Įsitikinkite, kad naudojama PHP 8+
",
"installation.issues.server": "Kirby reikalauja Apache
, Nginx
arba Caddy
",
"installation.issues.sessions": "Katalogas /site/sessions
neegzistuoja arba neturi įrašymo teisių",
@@ -349,6 +353,8 @@
"license.manage": "Valdyti savo licencijas",
"license.register.help": "Licenzijos kodą gavote el. paštu po apmokėjimo. Prašome įterpti čia, kad sistema būtų užregistruota.",
"license.register.label": "Prašome įrašyti jūsų licenzijos kodą",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Ačiū, kad palaikote Kirby",
"license.unregistered": "Tai neregistruota Kirby demo versija",
"license.unregistered.label": "Neregistruota",
@@ -498,7 +504,7 @@
"system.issues.eol.plugin": "Your installed version of the { plugin } plugin is has reached end-of-life and will not receive further security updates",
"system.issues.debug": "Debugging must be turned off in production",
"system.issues.git": "The .git folder seems to be exposed",
- "system.issues.https": "We recommend HTTPS for all your sites",
+ "system.issues.https": "Rekomenduojame HTTPS visoms svetainėms",
"system.issues.kirby": "The kirby folder seems to be exposed",
"system.issues.site": "The site folder seems to be exposed",
"system.issues.vulnerability.kirby": "Your installation might be affected by the following vulnerability ({ severity } severity): { description }",
diff --git a/kirby/i18n/translations/nb.json b/kirby/i18n/translations/nb.json
index 4b99b6d..def3a18 100644
--- a/kirby/i18n/translations/nb.json
+++ b/kirby/i18n/translations/nb.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Du må legge til minst en blokk",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "E-postinnstillingen \"{name}\" ble ikke funnet",
"error.field.converter.invalid": "Ugyldig omformer \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "Navnet kan ikke være tomt",
"error.file.changeName.permission": "Du har ikke rettighet til å endre navnet til \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Ingen side har blitt valgt",
"field.structure.delete.confirm": "\u00d8nsker du virkelig \u00e5 slette denne oppf\u00f8ringen?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Ingen oppf\u00f8ringer enda",
"field.users.empty": "Ingen bruker har blitt valgt",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Panelet kan ikke installeres",
"installation.issues.mbstring": "Utvidelsen MB String
er nødvendig",
"installation.issues.media": "Mappen /media
eksisterer ikke eller er ikke skrivbar",
- "installation.issues.php": "Pass på at du bruker PHP 7+
",
+ "installation.issues.php": "Pass på at du bruker PHP 8+
",
"installation.issues.server": "Kirby krever Apache
, Nginx
eller Caddy
",
"installation.issues.sessions": "Mappen /site/sessions
eksisterer ikke eller er ikke skrivbar",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "Du skal ha mottatt din lisenskode for kjøpet via e-post. Vennligst kopier og lim inn denne for å registrere deg.",
"license.register.label": "Vennligst skriv inn din lisenskode",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Takk for at du støtter Kirby",
"license.unregistered": "Dette er en uregistrert demo av Kirby",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/nl.json b/kirby/i18n/translations/nl.json
index 1e6cee3..d4de462 100644
--- a/kirby/i18n/translations/nl.json
+++ b/kirby/i18n/translations/nl.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Je moet ten minste één blok toevoegen",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "De e-mailvoorinstelling \"{name}\" kan niet worden gevonden",
"error.field.converter.invalid": "Ongeldige converter \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "De naam mag niet leeg zijn",
"error.file.changeName.permission": "Je hebt geen rechten om de naam te wijzigen van \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Nog geen pagina's geselecteerd",
"field.structure.delete.confirm": "Wil je deze entry verwijderen?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Nog geen items.",
"field.users.empty": "Nog geen gebruikers geselecteerd",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Het Panel kan niet worden geïnstalleerd",
"installation.issues.mbstring": "De MB String
extensie is verplicht",
"installation.issues.media": "De map /media
bestaat niet of heeft geen schrijfrechten",
- "installation.issues.php": "Gebruik PHP7+
",
+ "installation.issues.php": "Gebruik PHP8+
",
"installation.issues.server": "Kirby vereist Apache
, Nginx
of Caddy
",
"installation.issues.sessions": "De map /site/sessions
bestaat niet of heeft geen schrijfrechten",
@@ -349,6 +353,8 @@
"license.manage": "Beheer je licenties",
"license.register.help": "Je hebt de licentie via e-mail gekregen nadat je de aankoop hebt gedaan. Kopieer en plak de licentie om te registreren. ",
"license.register.label": "Vul je licentie in",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Bedankt dat je Kirby ondersteunt",
"license.unregistered": "Dit is een niet geregistreerde demo van Kirby",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/pl.json b/kirby/i18n/translations/pl.json
index de41cb3..ddee187 100644
--- a/kirby/i18n/translations/pl.json
+++ b/kirby/i18n/translations/pl.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Musisz dodać co najmniej jeden blok",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Nie udało się załadować wzorca wiadomości e-mail \"{name}\"",
"error.field.converter.invalid": "Nieprawidłowy konwerter \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "Imię nie może być puste",
"error.file.changeName.permission": "Nie masz uprawnień, by zmienić nazwę \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Nie wybrano jeszcze żadnych stron",
"field.structure.delete.confirm": "Czy na pewno chcesz usunąć ten wiersz?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Nie ma jeszcze \u017cadnych wpis\u00f3w.",
"field.users.empty": "Nie wybrano jeszcze żadnych użytkowników",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Nie można zainstalować panelu",
"installation.issues.mbstring": "Wymagane jest rozszerzenie MB String
",
"installation.issues.media": "Folder /media
nie istnieje lub nie ma uprawnień do zapisu",
- "installation.issues.php": "Upewnij się, że używasz PHP 7+
",
+ "installation.issues.php": "Upewnij się, że używasz PHP 8+
",
"installation.issues.server": "Kirby wymaga Apache
, Nginx
lub Caddy
",
"installation.issues.sessions": "Folder /site/sessions
nie istnieje lub nie ma uprawnień do zapisu",
@@ -349,6 +353,8 @@
"license.manage": "Zarządzaj swoimi licencjami",
"license.register.help": "Po zakupieniu licencji otrzymałaś/-eś mailem klucz. Skopiuj go i wklej tutaj, aby dokonać rejestracji.",
"license.register.label": "Wprowadź swój kod licencji",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Dziękujemy za wspieranie Kirby",
"license.unregistered": "To jest niezarejestrowana wersja demonstracyjna Kirby",
"license.unregistered.label": "Niezarejestrowane",
@@ -382,7 +388,7 @@
"login.toggleText.password-reset.email": "Zapomniałeś/-aś hasła?",
"login.toggleText.password-reset.email-password": "← Powrót do logowania",
- "logout": "Wyloguj",
+ "logout": "Wyloguj się",
"menu": "Menu",
"meridiem": "AM/PM",
diff --git a/kirby/i18n/translations/pt_BR.json b/kirby/i18n/translations/pt_BR.json
index 4b42cdd..750f411 100644
--- a/kirby/i18n/translations/pt_BR.json
+++ b/kirby/i18n/translations/pt_BR.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Você deve adicionar pelo menos um bloco",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Pré-configuração de email \"{name}\" não foi encontrada",
"error.field.converter.invalid": "Conversor \"{converter}\" inválido",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "O nome não deve ficar em branco",
"error.file.changeName.permission": "Você não tem permissão para alterar o nome de \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Nenhuma página selecionada",
"field.structure.delete.confirm": "Deseja realmente deletar esta linha?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Nenhum registro",
"field.users.empty": "Nenhum usuário selecionado",
@@ -318,7 +322,7 @@
"installation.issues.headline": "O painel não pôde ser instalado",
"installation.issues.mbstring": "A extensão MB String
é necessária",
"installation.issues.media": "A pasta /media
não existe ou não possui permissão de escrita",
- "installation.issues.php": "Certifique-se que você está usando o PHP 7+
",
+ "installation.issues.php": "Certifique-se que você está usando o PHP 8+
",
"installation.issues.server": "Kirby necessita do Apache
, Nginx
ou Caddy
",
"installation.issues.sessions": "A pasta /site/sessions
não existe ou não possui permissão de escrita",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "Você recebeu o código da sua licença por email ao efetuar sua compra. Por favor, copie e cole o código para completar seu registro.",
"license.register.label": "Por favor, digite o código da sua licença",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Obrigado por apoiar o Kirby",
"license.unregistered": "Esta é uma cópia de demonstração não registrada do Kirby",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/pt_PT.json b/kirby/i18n/translations/pt_PT.json
index ed82386..5382db0 100644
--- a/kirby/i18n/translations/pt_PT.json
+++ b/kirby/i18n/translations/pt_PT.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Você deve adicionar pelo menos um bloco",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Preset de email \"{name}\" não encontrado",
"error.field.converter.invalid": "Conversor \"{converter}\" inválido",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "O nome não pode ficar em branco",
"error.file.changeName.permission": "Não tem permissões para alterar o nome de \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Nenhuma página selecionada",
"field.structure.delete.confirm": "Deseja realmente excluir este registro?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Nenhum registro",
"field.users.empty": "Nenhum utilizador selecionado",
@@ -318,7 +322,7 @@
"installation.issues.headline": "O painel não pôde ser instalado",
"installation.issues.mbstring": "A extensão MB String
é necessária",
"installation.issues.media": "A pasta /media
não existe ou não possui permissão de escrita",
- "installation.issues.php": "Certifique-se que está a usar o PHP 7+
",
+ "installation.issues.php": "Certifique-se que você está usando o PHP 8+
",
"installation.issues.server": "O Kirby necessita do Apache
, Nginx
ou Caddy
",
"installation.issues.sessions": "A pasta /site/sessions
não existe ou não possui permissão de escrita",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "Recebeu o código da sua licença por email após a compra. Por favor, copie e cole-o para completar o registro.",
"license.register.label": "Por favor, digite o código da sua licença",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Obrigado por apoiar o Kirby",
"license.unregistered": "Esta é uma demonstração não registrada do Kirby",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/ru.json b/kirby/i18n/translations/ru.json
index 11e1214..3cc15e1 100644
--- a/kirby/i18n/translations/ru.json
+++ b/kirby/i18n/translations/ru.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Вы должны добавить хотя бы один блок",
"error.blocks.validation": "Ошибка в поле \"{field}\" в блоке {index} типа \"{fieldset}\"",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "Шаблон эл. почты \"{name}\" не найден",
"error.field.converter.invalid": "Неверный конвертер \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "Название не может быть пустым",
"error.file.changeName.permission": "У вас нет права изменить название \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Страницы не выбраны",
"field.structure.delete.confirm": "Вы точно хотите удалить эту запись?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Записей нет",
"field.users.empty": "Пользователей нет",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Не удалось установить панель",
"installation.issues.mbstring": "Расширение MB String
необходимо",
"installation.issues.media": "Каталог /media
не существует или нет прав записи",
- "installation.issues.php": "Убедитесь, что используется PHP 7+
",
+ "installation.issues.php": "Убедитесь, что используется PHP 8+
",
"installation.issues.server": "Kirby требует Apache
, Nginx
или Caddy
",
"installation.issues.sessions": "Каталог /site/sessions
не существует или нет прав записи",
@@ -349,6 +353,8 @@
"license.manage": "Управление лицензиями",
"license.register.help": "После покупки вы получили по эл. почте код лицензии. Пожалуйста скопируйте и вставьте сюда чтобы зарегистрировать.",
"license.register.label": "Пожалуйста вставьте код лицензии",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Спасибо за поддержку Kirby",
"license.unregistered": "Это незарегистрированная версия Kirby",
"license.unregistered.label": "Не зарегистрировано",
diff --git a/kirby/i18n/translations/sk.json b/kirby/i18n/translations/sk.json
index b1e9455..bdd129a 100644
--- a/kirby/i18n/translations/sk.json
+++ b/kirby/i18n/translations/sk.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "You must add at least one block",
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "E-mailovú predvoľbu \"{name}\" nie je možné nájsť",
"error.field.converter.invalid": "Neplatný converter \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "Meno nesmie byť prázdne",
"error.file.changeName.permission": "Nemáte povolenie na zmenu názvu pre \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Žiadne stránky zatiaľ neboli zvolené",
"field.structure.delete.confirm": "Ste si istý, že chcete zmazať tento riadok?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Zatiaľ žiadne údaje",
"field.users.empty": "Žiadni užívatelia zatiaľ neboli zvolení",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Panel nie je možné naištalovať",
"installation.issues.mbstring": "MB String
rozšírenie je povinné",
"installation.issues.media": "Priečinok /media
neexistuje alebo nie je nastavený ako zapisovateľný",
- "installation.issues.php": "Uistite sa, že používate PHP 7+
",
+ "installation.issues.php": "Uistite sa, že používate PHP 8+
",
"installation.issues.server": "Kirby vyžaduje Apache
, Nginx
alebo Caddy
",
"installation.issues.sessions": "Priečinok /site/sessions
neexistuje alebo nie je nastavený ako zapisovateľný",
@@ -349,6 +353,8 @@
"license.manage": "Manage your licenses",
"license.register.help": "Licenčný kód vám bol doručený e-mailom po úspešnom nákupe. Prosím, skopírujte a prilepte ho na uskutočnenie registrácie.",
"license.register.label": "Prosím, zadajte váš licenčný kód",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Ďakujeme za vašu podporu Kirby",
"license.unregistered": "Toto je neregistrované demo Kirby",
"license.unregistered.label": "Unregistered",
diff --git a/kirby/i18n/translations/sv_SE.json b/kirby/i18n/translations/sv_SE.json
index 9a4a928..f0c48bd 100644
--- a/kirby/i18n/translations/sv_SE.json
+++ b/kirby/i18n/translations/sv_SE.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "Du måste lägga till minst ett block",
"error.blocks.validation": "Det finns ett fel i fältet \"{field}\" i block {index} med blocktypen \"{fieldset}\"",
+ "error.cache.type.invalid": "Invalid cache type \"{type}\"",
+
"error.email.preset.notFound": "E-postförinställningen \"{name}\" kan inte hittas",
"error.field.converter.invalid": "Ogiltig omvandlare \"{converter}\"",
+ "error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
"error.file.changeName.empty": "Namnet får inte vara tomt",
"error.file.changeName.permission": "Du har inte behörighet att ändra namnet på \"{filename}\"",
@@ -289,6 +292,7 @@
"field.pages.empty": "Inga sidor valda än",
"field.structure.delete.confirm": "Vill du verkligen radera denna rad?",
+ "field.structure.delete.confirm.all": "Do you really want to delete all entries?",
"field.structure.empty": "Inga poster än",
"field.users.empty": "Inga användare valda än",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Panelen kan inte installeras",
"installation.issues.mbstring": "Tillägget MB String
krävs",
"installation.issues.media": "Mappen /media
finns inte eller är inte skrivbar",
- "installation.issues.php": "Se till att du använder PHP 7+
",
+ "installation.issues.php": "Se till att du använder PHP 8+
",
"installation.issues.server": "Kirby kräver Apache
, Nginx
eller Caddy
",
"installation.issues.sessions": "Mappen /site/sessions
finns inte eller är inte skrivbar",
@@ -349,6 +353,8 @@
"license.manage": "Hantera dina licenser",
"license.register.help": "Du fick din licenskod via e-post efter inköpet. Kopiera och klistra in den för att registrera licensen.",
"license.register.label": "Ange din licenskod",
+ "license.register.domain": "Your license will be registered to {host}.",
+ "license.register.local": "You are about to register your license for your local domain {host}. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
"license.register.success": "Tack för att du stödjer Kirby",
"license.unregistered": "Detta är en oregistrerad demo av Kirby",
"license.unregistered.label": "Oregistrerad",
diff --git a/kirby/i18n/translations/tr.json b/kirby/i18n/translations/tr.json
index be7ac82..ce12d20 100644
--- a/kirby/i18n/translations/tr.json
+++ b/kirby/i18n/translations/tr.json
@@ -72,9 +72,12 @@
"error.blocks.min.singular": "En az bir blok eklemelisiniz",
"error.blocks.validation": "\"{fieldset}\" blok türünü kullanan {index}. bloktaki \"{field}\" alanında bir hata var",
+ "error.cache.type.invalid": "Geçersiz önbellek türü \"{type}\"",
+
"error.email.preset.notFound": "\"{name}\" e-posta adresi bulunamadı",
"error.field.converter.invalid": "Geçersiz dönüştürücü \"{converter}\"",
+ "error.field.type.missing": "\"{ name }\" alanı: \"{ type }\" alan türü mevcut değil",
"error.file.changeName.empty": "İsim boş olmamalıdır",
"error.file.changeName.permission": "\"{filename}\" adını değiştiremezsiniz",
@@ -289,6 +292,7 @@
"field.pages.empty": "Henüz sayfa seçilmedi",
"field.structure.delete.confirm": "Bu girdiyi silmek istedi\u011finizden emin misiniz?",
+ "field.structure.delete.confirm.all": "Tüm girdileri gerçekten silmek istiyor musunuz?",
"field.structure.empty": "Hen\u00fcz bir girdi yok",
"field.users.empty": "Henüz kullanıcı seçilmedi",
@@ -318,7 +322,7 @@
"installation.issues.headline": "Panel kurulamadı",
"installation.issues.mbstring": "MB String
eklentisi gerekli",
"installation.issues.media": "/media
klasörü yok yada yazılamaz",
- "installation.issues.php": "PHP 7+
kullandığınızdan emin olun. ",
+ "installation.issues.php": "PHP 8+
kullandığınızdan emin olun. ",
"installation.issues.server": "Kirby Apache
, Nginx
veya Caddy
gerektirir",
"installation.issues.sessions": "/site/sessions
klasörü mevcut değil veya yazılabilir değil",
@@ -349,6 +353,8 @@
"license.manage": "Lisanslarınızı yönetin",
"license.register.help": "Satın alma işleminden sonra e-posta yoluyla lisans kodunuzu aldınız. Lütfen kayıt olmak için kodu kopyalayıp yapıştırın.",
"license.register.label": "Lütfen lisans kodunu giriniz",
+ "license.register.domain": "Lisansınız {host} için kaydedilecek.",
+ "license.register.local": "Lisansınızı yerel alan adınız {host} için kaydetmek üzeresiniz. Bu site genel bir etki alanına dağıtılacaksa, lütfen bunun yerine lisansı orada kaydedin. Kirby'yi lisanslamak istediğiniz alan adı {host} ise lütfen devam edin.",
"license.register.success": "Kirby'yi desteklediğiniz için teşekkürler",
"license.unregistered": "Bu Kirby'nin kayıtsız bir demosu",
"license.unregistered.label": "Kayıtsız",
@@ -382,7 +388,7 @@
"login.toggleText.password-reset.email": "Şifrenizi mi unuttunuz?",
"login.toggleText.password-reset.email-password": "← Girişe geri dön",
- "logout": "Güvenli Çıkış",
+ "logout": "Oturumu kapat",
"menu": "Menü",
"meridiem": "AM/PM",
diff --git a/kirby/panel/dist/css/style.css b/kirby/panel/dist/css/style.css
index 512ebe1..78ec338 100644
--- a/kirby/panel/dist/css/style.css
+++ b/kirby/panel/dist/css/style.css
@@ -1 +1 @@
-.k-dialog{position:relative;background:var(--color-background);width:100%;box-shadow:var(--shadow-lg);border-radius:var(--rounded-md);line-height:1;max-height:calc(100vh - 3rem);margin:1.5rem;display:flex;flex-direction:column}@media screen and (min-width:20rem){.k-dialog[data-size=small]{width:20rem}}@media screen and (min-width:22rem){.k-dialog[data-size=default]{width:22rem}}@media screen and (min-width:30rem){.k-dialog[data-size=medium]{width:30rem}}@media screen and (min-width:40rem){.k-dialog[data-size=large]{width:40rem}}[dir=ltr] .k-dialog-notification,[dir=rtl] .k-dialog-notification{border-top-right-radius:var(--rounded);border-top-left-radius:var(--rounded)}.k-dialog-notification{padding:.75rem 1.5rem;background:var(--color-gray-900);width:100%;margin-top:-1px;line-height:1.25rem;color:var(--color-white);display:flex;flex-shrink:0;align-items:center}.k-dialog-notification[data-theme]{background:var(--theme-light);color:var(--color-black)}.k-dialog-notification p{flex-grow:1;word-wrap:break-word;overflow:hidden}[dir=ltr] .k-dialog-notification .k-button{margin-left:1rem}[dir=rtl] .k-dialog-notification .k-button{margin-right:1rem}.k-dialog-notification .k-button{display:flex}.k-dialog-body{padding:1.5rem}.k-dialog-body .k-fieldset{padding-bottom:.5rem}.k-dialog-footer{padding:0;border-top:1px solid var(--color-gray-300);line-height:1;flex-shrink:0}.k-dialog-footer .k-button-group{display:flex;margin:0;justify-content:space-between}.k-dialog-footer .k-button-group .k-button{padding:.75rem 1rem;line-height:1.25rem}[dir=ltr] .k-dialog-footer .k-button-group .k-button:first-child{text-align:left}[dir=rtl] .k-dialog-footer .k-button-group .k-button:first-child{text-align:right}[dir=ltr] .k-dialog-footer .k-button-group .k-button:first-child{padding-left:1.5rem}[dir=rtl] .k-dialog-footer .k-button-group .k-button:first-child{padding-right:1.5rem}[dir=ltr] .k-dialog-footer .k-button-group .k-button:last-child{text-align:right}[dir=rtl] .k-dialog-footer .k-button-group .k-button:last-child{text-align:left}[dir=ltr] .k-dialog-footer .k-button-group .k-button:last-child{padding-right:1.5rem}[dir=rtl] .k-dialog-footer .k-button-group .k-button:last-child{padding-left:1.5rem}.k-dialog .k-pagination{margin-bottom:-1.5rem;display:flex;justify-content:center;align-items:center}.k-dialog-search{margin-bottom:.75rem}.k-dialog-search.k-input{background:rgba(0,0,0,.075);padding:0 1rem;height:36px;border-radius:var(--rounded)}.k-error-details{background:var(--color-white);display:block;overflow:auto;padding:1rem;font-size:var(--text-sm);line-height:1.25em;margin-top:.75rem}.k-error-details dt{color:var(--color-negative-light);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-background);padding-bottom:.25rem;margin-bottom:.25rem}.k-files-dialog .k-list-item{cursor:pointer}[dir=ltr] .k-pages-dialog-navbar{padding-right:38px}[dir=rtl] .k-pages-dialog-navbar{padding-left:38px}.k-pages-dialog-navbar{display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.k-pages-dialog-navbar .k-button{width:38px}.k-pages-dialog-navbar .k-button[disabled]{opacity:0}.k-pages-dialog-navbar .k-headline{flex-grow:1;text-align:center}.k-pages-dialog .k-list-item{cursor:pointer}.k-pages-dialog .k-list-item .k-button[data-theme=disabled],.k-pages-dialog .k-list-item .k-button[disabled]{opacity:.25}.k-pages-dialog .k-list-item .k-button[data-theme=disabled]:hover{opacity:1}.k-users-dialog .k-list-item{cursor:pointer}.k-drawer{--drawer-header-height:2.5rem;--drawer-header-padding:1.5rem;position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-toolbar);display:flex;align-items:stretch;justify-content:flex-end;background:rgba(0,0,0,.2)}.k-drawer-box{position:relative;flex-basis:50rem;display:flex;flex-direction:column;background:var(--color-background);box-shadow:var(--shadow-xl)}[dir=ltr] .k-drawer-header{padding-left:var(--drawer-header-padding)}[dir=rtl] .k-drawer-header{padding-right:var(--drawer-header-padding)}.k-drawer-header{flex-shrink:0;height:var(--drawer-header-height);display:flex;align-items:center;line-height:1;justify-content:space-between;background:var(--color-white);font-size:var(--text-sm)}.k-drawer-title{padding:0 .75rem}[dir=ltr] .k-drawer-breadcrumb,[dir=ltr] .k-drawer-title{margin-left:-.75rem}[dir=rtl] .k-drawer-breadcrumb,[dir=rtl] .k-drawer-title{margin-right:-.75rem}.k-drawer-breadcrumb,.k-drawer-title{display:flex;flex-grow:1;align-items:center;min-width:0;font-size:var(--text-sm);font-weight:var(--font-normal)}[dir=ltr] .k-drawer-breadcrumb li:not(:last-child) .k-button:after{right:-.75rem}[dir=rtl] .k-drawer-breadcrumb li:not(:last-child) .k-button:after{left:-.75rem}.k-drawer-breadcrumb li:not(:last-child) .k-button:after{position:absolute;width:1.5rem;display:inline-flex;justify-content:center;align-items:center;content:"\203a";color:var(--color-gray-500);height:var(--drawer-header-height)}[dir=ltr] .k-drawer-breadcrumb .k-icon,[dir=ltr] .k-drawer-title .k-icon{margin-right:.5rem}[dir=rtl] .k-drawer-breadcrumb .k-icon,[dir=rtl] .k-drawer-title .k-icon{margin-left:.5rem}.k-drawer-breadcrumb .k-icon,.k-drawer-title .k-icon{width:1rem;color:var(--color-gray-500)}.k-drawer-breadcrumb .k-button{display:inline-flex;align-items:center;height:var(--drawer-header-height);padding-left:.75rem;padding-right:.75rem}.k-drawer-breadcrumb .k-button-text{opacity:1}[dir=ltr] .k-drawer-breadcrumb .k-button .k-button-icon~.k-button-text{padding-left:0}[dir=rtl] .k-drawer-breadcrumb .k-button .k-button-icon~.k-button-text{padding-right:0}[dir=ltr] .k-drawer-tabs{margin-right:.75rem}[dir=rtl] .k-drawer-tabs{margin-left:.75rem}.k-drawer-tabs{display:flex;align-items:center;line-height:1}.k-drawer-tab.k-button{height:var(--drawer-header-height);padding-left:.75rem;padding-right:.75rem;display:flex;align-items:center;font-size:var(--text-xs)}.k-drawer-tab.k-button[aria-current]:after{position:absolute;bottom:-1px;left:.75rem;right:.75rem;content:"";background:var(--color-black);height:2px}[dir=ltr] .k-drawer-options{padding-right:.75rem}[dir=rtl] .k-drawer-options{padding-left:.75rem}.k-drawer-option.k-button{width:var(--drawer-header-height);height:var(--drawer-header-height);color:var(--color-gray-500);line-height:1}.k-drawer-option.k-button:focus,.k-drawer-option.k-button:hover{color:var(--color-black)}.k-drawer-body{padding:1.5rem;flex-grow:1;background:var(--color-background)}.k-drawer[data-nested=true]{background:0 0}.k-drawer-body .k-table th,.k-drawer-body .k-textarea-input:focus-within .k-toolbar{top:-1.5rem}.k-calendar-input{--cell-padding:.25rem .5rem;padding:.5rem;color:var(--color-light);border-radius:var(--rounded-xs)}.k-calendar-table{table-layout:fixed;width:100%;min-width:15rem;padding-top:.5rem}.k-calendar-input>nav{display:flex;direction:ltr}.k-calendar-input>nav .k-button{padding:.5rem}.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{padding:0 .5rem;font-weight:var(--font-normal);font-size:var(--text-sm)}.k-calendar-selects .k-select-input:focus-within{color:var(--color-focus-light)!important}.k-calendar-input th{padding:.5rem 0;color:var(--color-gray-500);font-size:var(--text-xs);font-weight:400;text-align:center}.k-calendar-day .k-button{width:2rem;height:2rem;margin-left:auto;margin-right:auto;color:var(--color-white);line-height:1.75rem;display:flex;justify-content:center;border-radius:50%;border:2px solid transparent}.k-calendar-day .k-button .k-button-text{opacity:1}.k-calendar-table .k-button:hover{color:var(--color-white)}.k-calendar-day:hover .k-button:not([data-disabled=true]){border-color:#ffffff40}.k-calendar-day[aria-current=date] .k-button{text-decoration:underline}.k-calendar-day[aria-selected=date] .k-button{border-color:currentColor;font-weight:600;color:var(--color-focus-light)}.k-calendar-today{text-align:center;padding-top:.5rem}.k-calendar-today .k-button{font-size:var(--text-xs);padding:1rem;text-decoration:underline}.k-calendar-today .k-button-text{opacity:1;vertical-align:baseline}.k-counter{font-size:var(--text-xs);color:var(--color-gray-900);font-weight:var(--font-bold)}.k-counter[data-invalid=true]{box-shadow:none;border:0;color:var(--color-negative)}[dir=ltr] .k-counter-rules{padding-left:.5rem}[dir=rtl] .k-counter-rules{padding-right:.5rem}.k-counter-rules{color:var(--color-gray-600);font-weight:var(--font-normal)}.k-form-submitter{display:none}.k-form-buttons[data-theme]{background:var(--theme-light)}.k-form-buttons .k-view{display:flex;justify-content:space-between;align-items:center}.k-form-button.k-button{font-weight:500;white-space:nowrap;line-height:1;height:2.5rem;display:flex;padding:0 1rem;align-items:center}[dir=ltr] .k-form-button:first-child{margin-left:-1rem}[dir=rtl] .k-form-button:first-child{margin-right:-1rem}[dir=ltr] .k-form-button:last-child{margin-right:-1rem}[dir=rtl] .k-form-button:last-child{margin-left:-1rem}[dir=ltr] .k-form-lock-info{margin-right:3rem}[dir=rtl] .k-form-lock-info{margin-left:3rem}.k-form-lock-info{display:flex;font-size:var(--text-sm);align-items:center;line-height:1.5em;padding:.625rem 0}[dir=ltr] .k-form-lock-info>.k-icon{margin-right:.5rem}[dir=rtl] .k-form-lock-info>.k-icon{margin-left:.5rem}.k-form-lock-buttons{display:flex;flex-shrink:0}.k-form-lock-loader{animation:Spin 4s linear infinite}.k-form-lock-loader .k-icon-loader{display:flex}.k-form-indicator-toggle{color:var(--color-notice-light)}.k-form-indicator-info{font-size:var(--text-sm);font-weight:var(--font-bold);padding:.75rem 1rem .25rem;line-height:1.25em;width:15rem}.k-field-label{font-weight:var(--font-bold);display:block;padding:0 0 .75rem;flex-grow:1;line-height:1.25rem}[dir=ltr] .k-field-label abbr{padding-left:.25rem}[dir=rtl] .k-field-label abbr{padding-right:.25rem}.k-field-label abbr{text-decoration:none;color:var(--color-gray-500)}.k-field-header{position:relative;display:flex;align-items:baseline}[dir=ltr] .k-field-options{right:0}[dir=rtl] .k-field-options{left:0}.k-field-options{position:absolute;top:calc(-.5rem - 1px)}.k-field-options.k-button-group .k-dropdown{height:auto}.k-field-options.k-button-group .k-field-options-button.k-button{padding:.75rem;display:flex}.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:focus-within>.k-field-header>.k-field-counter{display:block}.k-field-help{padding-top:.5rem}.k-field-add-item-button{display:flex;align-items:center;width:100%;color:var(--color-gray-500);justify-content:center;padding:.75rem 0}.k-field-add-item-button:hover{color:var(--color-black)}.k-fieldset{border:0}.k-fieldset .k-grid{grid-row-gap:2.25rem}@media screen and (min-width:30em){.k-fieldset .k-grid{grid-column-gap:1.5rem}}.k-sections>.k-column[data-width="1/3"] .k-fieldset .k-grid,.k-sections>.k-column[data-width="1/4"] .k-fieldset .k-grid{grid-template-columns:repeat(1,1fr)}.k-sections>.k-column[data-width="1/3"] .k-fieldset .k-grid .k-column,.k-sections>.k-column[data-width="1/4"] .k-fieldset .k-grid .k-column{grid-column-start:initial}.k-input{display:flex;align-items:center;line-height:1;border:0;outline:0;background:0 0}.k-input-element{flex-grow:1}.k-input-icon{display:flex;justify-content:center;align-items:center;line-height:0}.k-input[data-disabled=true]{pointer-events:none}[data-disabled=true] .k-input-icon{color:var(--color-gray-600)}.k-input[data-theme=field]{line-height:1;border:var(--field-input-border);background:var(--field-input-background);border-radius:var(--rounded)}.k-input[data-theme=field]:focus-within{border:var(--field-input-focus-border);box-shadow:var(--color-focus-outline) 0 0 0 2px}.k-input[data-theme=field][data-disabled=true]{background:var(--color-background)}.k-input[data-theme=field] .k-input-icon{width:var(--field-input-height);align-self:stretch;display:flex;align-items:center;flex-shrink:0}.k-input[data-theme=field] .k-input-after,.k-input[data-theme=field] .k-input-before{align-self:stretch;display:flex;align-items:center;flex-shrink:0;padding:0 var(--field-input-padding)}[dir=ltr] .k-input[data-theme=field] .k-input-before{padding-right:0}[dir=ltr] .k-input[data-theme=field] .k-input-after,[dir=rtl] .k-input[data-theme=field] .k-input-before{padding-left:0}.k-input[data-theme=field] .k-input-before{color:var(--field-input-color-before)}[dir=rtl] .k-input[data-theme=field] .k-input-after{padding-right:0}.k-input[data-theme=field] .k-input-after{color:var(--field-input-color-after)}.k-input[data-theme=field] .k-input-icon>.k-dropdown{width:100%;height:100%}.k-input[data-theme=field] .k-input-icon-button{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.k-input[data-theme=field] .k-number-input,.k-input[data-theme=field] .k-select-input,.k-input[data-theme=field] .k-text-input{padding:var(--field-input-padding);line-height:var(--field-input-line-height);border-radius:var(--rounded)}.k-input[data-theme=field] .k-date-input .k-select-input,.k-input[data-theme=field] .k-time-input .k-select-input{padding-left:0;padding-right:0}[dir=ltr] .k-input[data-theme=field] .k-date-input .k-select-input:first-child,[dir=ltr] .k-input[data-theme=field] .k-time-input .k-select-input:first-child{padding-left:var(--field-input-padding)}[dir=rtl] .k-input[data-theme=field] .k-date-input .k-select-input:first-child,[dir=rtl] .k-input[data-theme=field] .k-time-input .k-select-input:first-child{padding-right:var(--field-input-padding)}.k-input[data-theme=field] .k-date-input .k-select-input:focus-within,.k-input[data-theme=field] .k-time-input .k-select-input:focus-within{color:var(--color-focus);font-weight:var(--font-bold)}[dir=ltr] .k-input[data-theme=field].k-time-input .k-time-input-meridiem{padding-left:var(--field-input-padding)}[dir=rtl] .k-input[data-theme=field].k-time-input .k-time-input-meridiem{padding-right:var(--field-input-padding)}.k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input li,.k-input[data-theme=field][data-type=checkboxes] .k-radio-input li,.k-input[data-theme=field][data-type=radio] .k-checkboxes-input li,.k-input[data-theme=field][data-type=radio] .k-radio-input li{min-width:0;overflow-wrap:break-word}[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-input-before{border-right:1px solid var(--color-background)}[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-input-element+.k-input-after,[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-input-element+.k-input-icon,[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-input-before{border-left:1px solid var(--color-background)}[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input li,[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-input-element+.k-input-after,[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-input-element+.k-input-icon{border-right:1px solid var(--color-background)}.k-input[data-theme=field][data-type=checkboxes] .k-input-element{overflow:hidden}[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input{margin-right:-1px}[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input{margin-left:-1px}.k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input{display:grid;grid-template-columns:1fr;margin-bottom:-1px}@media screen and (min-width:65em){.k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input{grid-template-columns:repeat(var(--columns),1fr)}}[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input li{border-left:1px solid var(--color-background)}.k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input li,.k-input[data-theme=field][data-type=radio] .k-radio-input li{border-bottom:1px solid var(--color-background)}.k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input label{display:block;line-height:var(--field-input-line-height);padding:var(--field-input-padding) var(--field-input-padding)}[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-checkbox-input-icon,[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-radio-input label:before{left:var(--field-input-padding)}[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-checkbox-input-icon,[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-radio-input label:before{right:var(--field-input-padding)}.k-input[data-theme=field][data-type=checkboxes] .k-checkbox-input-icon{top:calc((var(--field-input-height) - var(--field-input-font-size))/2);margin-top:0}[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-input-before{border-right:1px solid var(--color-background)}[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-input-element+.k-input-after,[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-input-element+.k-input-icon,[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-input-before{border-left:1px solid var(--color-background)}[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-radio-input li,[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-input-element+.k-input-after,[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-input-element+.k-input-icon{border-right:1px solid var(--color-background)}.k-input[data-theme=field][data-type=radio] .k-input-element{overflow:hidden}[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-radio-input{margin-right:-1px}[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-radio-input{margin-left:-1px}.k-input[data-theme=field][data-type=radio] .k-radio-input{display:grid;grid-template-columns:1fr;margin-bottom:-1px}@media screen and (min-width:65em){.k-input[data-theme=field][data-type=radio] .k-radio-input{grid-template-columns:repeat(var(--columns),1fr)}}[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-radio-input li{border-left:1px solid var(--color-background)}.k-input[data-theme=field][data-type=radio] .k-radio-input label{display:block;flex-grow:1;min-height:var(--field-input-height);line-height:var(--field-input-line-height);padding:calc((var(--field-input-height) - var(--field-input-line-height))/2) var(--field-input-padding)}.k-input[data-theme=field][data-type=radio] .k-radio-input label:before{top:calc((var(--field-input-height) - 1rem)/2);margin-top:-1px}.k-input[data-theme=field][data-type=radio] .k-radio-input .k-radio-input-info{display:block;font-size:var(--text-sm);color:var(--color-gray-600);line-height:var(--field-input-line-height);padding-top:calc(var(--field-input-line-height)/10)}.k-input[data-theme=field][data-type=radio] .k-radio-input .k-icon{width:var(--field-input-height);height:var(--field-input-height);display:flex;align-items:center;justify-content:center}.k-input[data-theme=field][data-type=range] .k-range-input{padding:var(--field-input-padding)}.k-input[data-theme=field][data-type=multiselect],.k-input[data-theme=field][data-type=select]{position:relative}[dir=ltr] .k-input[data-theme=field][data-type=select] .k-input-icon{right:0}[dir=rtl] .k-input[data-theme=field][data-type=select] .k-input-icon{left:0}.k-input[data-theme=field][data-type=select] .k-input-icon{position:absolute;top:0;bottom:0}.k-input[data-theme=field][data-type=tags] .k-tags-input{padding:.25rem .25rem 0}[dir=ltr] .k-input[data-theme=field][data-type=tags] .k-tag{margin-right:.25rem}[dir=rtl] .k-input[data-theme=field][data-type=tags] .k-tag{margin-left:.25rem}.k-input[data-theme=field][data-type=tags] .k-tag{margin-bottom:.25rem;height:auto;min-height:1.75rem;font-size:var(--text-sm)}.k-input[data-theme=field][data-type=tags] .k-tags-input input{font-size:var(--text-sm);padding:0 .25rem;height:1.75rem;line-height:1;margin-bottom:.25rem}.k-input[data-theme=field][data-type=tags] .k-tags-input .k-dropdown-content{top:calc(100% + .5rem + 2px)}.k-input[data-theme=field][data-type=tags] .k-tags-input .k-dropdown-content[data-dropup]{top:calc(100% + .5rem + 2px);bottom:initial;margin-bottom:initial}.k-input[data-theme=field][data-type=multiselect] .k-multiselect-input{padding:.25rem 2rem 0 .25rem;min-height:2.25rem}[dir=ltr] .k-input[data-theme=field][data-type=multiselect] .k-tag{margin-right:.25rem}[dir=rtl] .k-input[data-theme=field][data-type=multiselect] .k-tag{margin-left:.25rem}.k-input[data-theme=field][data-type=multiselect] .k-tag{margin-bottom:.25rem;height:1.75rem;font-size:var(--text-sm)}[dir=ltr] .k-input[data-theme=field][data-type=multiselect] .k-input-icon{right:0}[dir=rtl] .k-input[data-theme=field][data-type=multiselect] .k-input-icon{left:0}.k-input[data-theme=field][data-type=multiselect] .k-input-icon{position:absolute;top:0;bottom:0;pointer-events:none}.k-input[data-theme=field][data-type=textarea] .k-textarea-input-native{padding:.25rem var(--field-input-padding);line-height:1.5rem}[dir=ltr] .k-input[data-theme=field][data-type=toggle] .k-input-before{padding-right:calc(var(--field-input-padding)/2)}[dir=rtl] .k-input[data-theme=field][data-type=toggle] .k-input-before{padding-left:calc(var(--field-input-padding)/2)}[dir=ltr] .k-input[data-theme=field][data-type=toggle] .k-toggle-input{padding-left:var(--field-input-padding)}[dir=rtl] .k-input[data-theme=field][data-type=toggle] .k-toggle-input{padding-right:var(--field-input-padding)}.k-input[data-theme=field][data-type=toggle] .k-toggle-input-label{padding:0 var(--field-input-padding)0 .75rem;line-height:var(--field-input-height)}.k-login-code-form .k-user-info{height:38px;margin-bottom:2.25rem;padding:.5rem;background:var(--color-white);border-radius:var(--rounded-xs);box-shadow:var(--shadow)}.k-times{padding:var(--spacing-4) var(--spacing-6);display:grid;line-height:1;grid-template-columns:1fr 1fr;grid-gap:var(--spacing-6)}.k-times .k-icon{width:1rem;margin-bottom:var(--spacing-2)}.k-times-slot .k-button{padding:var(--spacing-1) var(--spacing-3) var(--spacing-1)0;font-variant-numeric:tabular-nums;white-space:nowrap}.k-times .k-times-slot hr{position:relative;opacity:1;margin:var(--spacing-2)0;border:0;height:1px;top:1px;background:var(--color-dark)}[dir=ltr] .k-upload input{left:-3000px}[dir=rtl] .k-upload input{right:-3000px}.k-upload input{position:absolute;top:0}.k-upload-dialog .k-headline{margin-bottom:.75rem}.k-upload-error-list,.k-upload-list{line-height:1.5em;font-size:var(--text-sm)}.k-upload-list-filename{color:var(--color-gray-600)}.k-upload-error-list li{padding:.75rem;background:var(--color-white);border-radius:var(--rounded-xs)}.k-upload-error-list li:not(:last-child){margin-bottom:2px}.k-upload-error-filename{color:var(--color-negative);font-weight:var(--font-bold)}.k-upload-error-message{color:var(--color-gray-600)}.k-writer-toolbar{position:absolute;display:flex;background:var(--color-black);height:30px;transform:translate(-50%) translateY(-.75rem);z-index:calc(var(--z-dropdown) + 1);box-shadow:var(--shadow);color:var(--color-white);border-radius:var(--rounded)}.k-writer-toolbar-button.k-button{display:flex;align-items:center;justify-content:center;height:30px;width:30px;font-size:var(--text-sm)!important;color:currentColor;line-height:1}.k-writer-toolbar-button.k-button:hover{background:rgba(255,255,255,.15)}.k-writer-toolbar-button.k-writer-toolbar-button-active{color:var(--color-blue-300)}.k-writer-toolbar-button.k-writer-toolbar-nodes{width:auto;padding:0 .75rem}[dir=ltr] .k-writer-toolbar .k-dropdown+.k-writer-toolbar-button{border-left:1px solid var(--color-gray-700)}[dir=rtl] .k-writer-toolbar .k-dropdown+.k-writer-toolbar-button{border-right:1px solid var(--color-gray-700)}[dir=ltr] .k-writer-toolbar-button.k-writer-toolbar-nodes:after{margin-left:.5rem}[dir=rtl] .k-writer-toolbar-button.k-writer-toolbar-nodes:after{margin-right:.5rem}.k-writer-toolbar-button.k-writer-toolbar-nodes:after{content:"";border-top:4px solid var(--color-white);border-left:4px solid transparent;border-right:4px solid transparent}.k-writer-toolbar .k-dropdown-content{color:var(--color-black);background:var(--color-white);margin-top:.5rem}.k-writer-toolbar .k-dropdown-content .k-dropdown-item[aria-current]{color:var(--color-focus);font-weight:500}.k-writer{position:relative;width:100%;grid-template-areas:"content";display:grid}.k-writer .ProseMirror{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;font-variant-ligatures:none;line-height:inherit;grid-area:content}.k-writer .ProseMirror:focus{outline:0}.k-writer .ProseMirror *{caret-color:currentColor}.k-writer .ProseMirror a{color:var(--color-focus);text-decoration:underline}.k-writer .ProseMirror>:last-child{margin-bottom:0}.k-writer .ProseMirror h1,.k-writer .ProseMirror h2,.k-writer .ProseMirror h3,.k-writer .ProseMirror ol,.k-writer .ProseMirror p,.k-writer .ProseMirror ul{margin-bottom:.75rem}.k-writer .ProseMirror h1{font-size:var(--text-3xl);line-height:1.25em}.k-writer .ProseMirror h2{font-size:var(--text-2xl);line-height:1.25em}.k-writer .ProseMirror h3{font-size:var(--text-xl);line-height:1.25em}.k-writer .ProseMirror h1 strong,.k-writer .ProseMirror h2 strong,.k-writer .ProseMirror h3 strong{font-weight:700}.k-writer .ProseMirror strong{font-weight:600}.k-writer .ProseMirror code{position:relative;font-size:.925em;display:inline-block;line-height:1.325;padding:.05em .325em;background:var(--color-gray-300);border-radius:var(--rounded)}[dir=ltr] .k-writer .ProseMirror ol,[dir=ltr] .k-writer .ProseMirror ul{padding-left:1.75rem}[dir=rtl] .k-writer .ProseMirror ol,[dir=rtl] .k-writer .ProseMirror ul{padding-right:1.75rem}.k-writer .ProseMirror ul>li{list-style:disc}.k-writer .ProseMirror ul ul>li{list-style:circle}.k-writer .ProseMirror ul ul ul>li{list-style:square}.k-writer .ProseMirror ol>li{list-style:decimal}.k-writer .ProseMirror li>ol,.k-writer .ProseMirror li>p,.k-writer .ProseMirror li>ul{margin:0}.k-writer-code pre{-moz-tab-size:2;-o-tab-size:2;tab-size:2;font-size:var(--text-sm);line-height:2em;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;white-space:pre}.k-writer .ProseMirror code,.k-writer-code code{font-family:var(--font-mono)}.k-writer[data-placeholder][data-empty=true]:before{grid-area:content;content:attr(data-placeholder);line-height:inherit;color:var(--color-gray-500);pointer-events:none;white-space:pre-wrap;word-wrap:break-word}.k-login-alert{padding:.5rem .75rem;display:flex;justify-content:space-between;align-items:center;min-height:38px;margin-bottom:2rem;background:var(--color-negative);color:var(--color-white);font-size:var(--text-sm);border-radius:var(--rounded-xs);box-shadow:var(--shadow-lg);cursor:pointer}.k-structure-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;height:100vh}.k-structure-form section{position:relative;z-index:3;border-radius:var(--rounded-xs);margin-bottom:1px;box-shadow:#1111110d 0 0 0 3px;border:1px solid var(--color-border);background:var(--color-background)}.k-structure-form-fields{padding:1.5rem 1.5rem 2rem}.k-structure-form-buttons{border-top:1px solid var(--color-border);display:flex;justify-content:space-between}.k-structure-form-buttons .k-pagination{display:none}@media screen and (min-width:65em){.k-structure-form-buttons .k-pagination{display:flex}}.k-structure-form-buttons .k-pagination>.k-button,.k-structure-form-buttons .k-pagination>span{padding:.875rem 1rem!important}.k-structure-form-cancel-button,.k-structure-form-submit-button{padding:.875rem 1.5rem;line-height:1rem;display:flex}[dir=ltr] .k-toolbar,[dir=rtl] .k-toolbar{border-top-right-radius:var(--rounded);border-top-left-radius:var(--rounded)}.k-toolbar{background:var(--color-white);border-bottom:1px solid var(--color-background);height:38px}.k-toolbar-wrapper{position:absolute;top:0;left:0;right:0;max-width:100%}.k-toolbar-buttons{display:flex}.k-toolbar-divider{width:1px;background:var(--color-background)}.k-toolbar-button{width:36px;height:36px}.k-toolbar-button:hover{background:rgba(239,239,239,.5)}.k-checkbox-input{position:relative;cursor:pointer}[dir=ltr] .k-checkbox-input-label{padding-left:1.75rem}[dir=rtl] .k-checkbox-input-label{padding-right:1.75rem}.k-checkbox-input-label{display:block}[dir=ltr] .k-checkbox-input-icon{left:0}[dir=rtl] .k-checkbox-input-icon{right:0}.k-checkbox-input-icon{position:absolute;width:1rem;height:1rem;border-radius:var(--rounded);border:2px solid var(--color-gray-500)}.k-checkbox-input-icon svg{position:absolute;width:12px;height:12px;display:none}.k-checkbox-input-icon path{stroke:var(--color-white)}.k-checkbox-input-native:checked+.k-checkbox-input-icon{border-color:var(--color-gray-900);background:var(--color-gray-900)}[data-disabled=true] .k-checkbox-input-native:checked+.k-checkbox-input-icon{border-color:var(--color-gray-600);background:var(--color-gray-600)}.k-checkbox-input-native:checked+.k-checkbox-input-icon svg{display:block}.k-checkbox-input-native:focus+.k-checkbox-input-icon{border-color:var(--color-blue-600)}.k-checkbox-input-native:focus:checked+.k-checkbox-input-icon{background:var(--color-focus)}.k-text-input{width:100%;border:0;background:0 0;font:inherit;color:inherit;font-variant-numeric:tabular-nums}.k-text-input::-moz-placeholder{color:var(--color-gray-500)}.k-text-input::placeholder{color:var(--color-gray-500)}.k-text-input:focus{outline:0}.k-text-input:invalid{box-shadow:none;outline:0}.k-list-input .ProseMirror{line-height:1.5em}.k-list-input .ProseMirror ol>li::marker{font-size:var(--text-sm);color:var(--color-gray-500)}.k-multiselect-input{display:flex;flex-wrap:wrap;position:relative;font-size:var(--text-sm);min-height:2.25rem;line-height:1}.k-multiselect-input .k-sortable-ghost{background:var(--color-focus)}.k-multiselect-input .k-tag{border-radius:var(--rounded-sm)}.k-multiselect-input .k-dropdown-content,.k-multiselect-input[data-layout=list] .k-tag{width:100%}.k-multiselect-search{margin-top:0!important;color:var(--color-white);background:var(--color-gray-900);border-bottom:1px dashed rgba(255,255,255,.2)}.k-multiselect-search>.k-button-text{flex:1;opacity:1!important}.k-multiselect-search input{width:100%;color:var(--color-white);background:0 0;border:0;outline:0;padding:.25rem 0;font:inherit}.k-multiselect-options{position:relative;max-height:275px;padding:.5rem 0}.k-multiselect-option{position:relative}.k-multiselect-option.selected{color:var(--color-positive-light)}.k-multiselect-option.disabled:not(.selected) .k-icon{opacity:0}.k-multiselect-option b{color:var(--color-focus-light);font-weight:700}[dir=ltr] .k-multiselect-input[data-layout=list] .k-tag{margin-right:0!important}[dir=rtl] .k-multiselect-input[data-layout=list] .k-tag{margin-left:0!important}.k-multiselect-more{width:100%;padding:.75rem;color:#fffc;text-align:center;border-top:1px dashed rgba(255,255,255,.2)}.k-multiselect-more:hover{color:var(--color-white)}.k-number-input{width:100%;border:0;background:0 0;font:inherit;color:inherit}.k-number-input::-moz-placeholder{color:var(--color-gray-500)}.k-number-input::placeholder{color:var(--color-gray-500)}.k-number-input:focus{outline:0}.k-number-input:invalid{box-shadow:none;outline:0}[dir=ltr] .k-radio-input li{padding-left:1.75rem}[dir=rtl] .k-radio-input li{padding-right:1.75rem}.k-radio-input li{position:relative;line-height:1.5rem}.k-radio-input input{position:absolute;width:0;height:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0}.k-radio-input label{cursor:pointer;align-items:center}[dir=ltr] .k-radio-input label:before{left:0}[dir=rtl] .k-radio-input label:before{right:0}.k-radio-input label:before{position:absolute;top:.175em;content:"";width:1rem;height:1rem;border-radius:50%;border:2px solid var(--color-gray-500);box-shadow:var(--color-white) 0 0 0 2px inset}.k-radio-input input:checked+label:before{border-color:var(--color-gray-900);background:var(--color-gray-900)}[data-disabled=true] .k-radio-input input:checked+label:before{border-color:var(--color-gray-600);background:var(--color-gray-600)}.k-radio-input input:focus+label:before{border-color:var(--color-blue-600)}.k-radio-input input:focus:checked+label:before{background:var(--color-focus)}.k-radio-input-text{display:block}.k-range-input{--range-thumb-size:16px;--range-thumb-border:4px solid var(--color-gray-900);--range-thumb-border-disabled:4px solid var(--color-gray-600);--range-thumb-background:var(--color-background);--range-thumb-focus-border:4px solid var(--color-focus);--range-thumb-focus-background:var(--color-background);--range-track-height:4px;--range-track-background:var(--color-border);--range-track-color:var(--color-gray-900);--range-track-color-disabled:var(--color-gray-600);--range-track-focus-color:var(--color-focus);display:flex;align-items:center}.k-range-input-native{--min:0;--max:100;--value:0;--range:calc(var(--max) - var(--min));--ratio:calc((var(--value) - var(--min)) / var(--range));--position:calc( .5 * var(--range-thumb-size) + var(--ratio) * calc(100% - var(--range-thumb-size)) );-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:var(--range-thumb-size);background:0 0;font-size:var(--text-sm);line-height:1}.k-range-input-native::-webkit-slider-thumb{-webkit-appearance:none;appearance:none}.k-range-input-native::-webkit-slider-runnable-track{border:0;border-radius:var(--range-track-height);width:100%;height:var(--range-track-height);background:var(--range-track-background)}.k-range-input-native::-moz-range-track{border:0;border-radius:var(--range-track-height);width:100%;height:var(--range-track-height);background:var(--range-track-background)}.k-range-input-native::-ms-track{border:0;border-radius:var(--range-track-height);width:100%;height:var(--range-track-height);background:var(--range-track-background)}.k-range-input-native::-webkit-slider-runnable-track{background:linear-gradient(var(--range-track-color),var(--range-track-color))0/var(--position) 100%no-repeat var(--range-track-background)}.k-range-input-native::-moz-range-progress{height:var(--range-track-height);background:var(--range-track-color)}.k-range-input-native::-ms-fill-lower{height:var(--range-track-height);background:var(--range-track-color)}.k-range-input-native::-webkit-slider-thumb{margin-top:calc(.5*(var(--range-track-height) - var(--range-thumb-size)));box-sizing:border-box;width:var(--range-thumb-size);height:var(--range-thumb-size);background:var(--range-thumb-background);border:var(--range-thumb-border);border-radius:50%;cursor:pointer}.k-range-input-native::-moz-range-thumb{box-sizing:border-box;width:var(--range-thumb-size);height:var(--range-thumb-size);background:var(--range-thumb-background);border:var(--range-thumb-border);border-radius:50%;cursor:pointer}.k-range-input-native::-ms-thumb{box-sizing:border-box;width:var(--range-thumb-size);height:var(--range-thumb-size);background:var(--range-thumb-background);border:var(--range-thumb-border);border-radius:50%;cursor:pointer;margin-top:0}.k-range-input-native::-ms-tooltip{display:none}.k-range-input-native:focus{outline:0}.k-range-input-native:focus::-webkit-slider-runnable-track{border:0;border-radius:var(--range-track-height);width:100%;height:var(--range-track-height);background:var(--range-track-background);background:linear-gradient(var(--range-track-focus-color),var(--range-track-focus-color))0/var(--position) 100%no-repeat var(--range-track-background)}.k-range-input-native:focus::-moz-range-progress{height:var(--range-track-height);background:var(--range-track-focus-color)}.k-range-input-native:focus::-ms-fill-lower{height:var(--range-track-height);background:var(--range-track-focus-color)}.k-range-input-native:focus::-webkit-slider-thumb{background:var(--range-thumb-focus-background);border:var(--range-thumb-focus-border)}.k-range-input-native:focus::-moz-range-thumb{background:var(--range-thumb-focus-background);border:var(--range-thumb-focus-border)}.k-range-input-native:focus::-ms-thumb{background:var(--range-thumb-focus-background);border:var(--range-thumb-focus-border)}[dir=ltr] .k-range-input-tooltip{margin-left:1rem}[dir=rtl] .k-range-input-tooltip{margin-right:1rem}.k-range-input-tooltip{position:relative;max-width:20%;display:flex;align-items:center;color:var(--color-white);font-size:var(--text-xs);line-height:1;text-align:center;border-radius:var(--rounded-xs);background:var(--color-gray-900);padding:0 .25rem;white-space:nowrap}[dir=ltr] .k-range-input-tooltip:after{left:-5px}[dir=rtl] .k-range-input-tooltip:after{right:-5px}[dir=ltr] .k-range-input-tooltip:after{border-right:5px solid var(--color-gray-900)}[dir=rtl] .k-range-input-tooltip:after{border-left:5px solid var(--color-gray-900)}.k-range-input-tooltip:after{position:absolute;top:50%;width:0;height:0;transform:translateY(-50%);border-top:5px solid transparent;border-bottom:5px solid transparent;content:""}.k-range-input-tooltip>*{padding:4px}[data-disabled=true] .k-range-input-native::-webkit-slider-runnable-track{background:linear-gradient(var(--range-track-color-disabled),var(--range-track-color-disabled))0/var(--position) 100%no-repeat var(--range-track-background)}[data-disabled=true] .k-range-input-native::-moz-range-progress{height:var(--range-track-height);background:var(--range-track-color-disabled)}[data-disabled=true] .k-range-input-native::-ms-fill-lower{height:var(--range-track-height);background:var(--range-track-color-disabled)}[data-disabled=true] .k-range-input-native::-webkit-slider-thumb{border:var(--range-thumb-border-disabled)}[data-disabled=true] .k-range-input-native::-moz-range-thumb{border:var(--range-thumb-border-disabled)}[data-disabled=true] .k-range-input-native::-ms-thumb{border:var(--range-thumb-border-disabled)}[data-disabled=true] .k-range-input-tooltip{background:var(--color-gray-600)}[dir=ltr] [data-disabled=true] .k-range-input-tooltip:after{border-right:5px solid var(--color-gray-600)}[dir=rtl] [data-disabled=true] .k-range-input-tooltip:after{border-left:5px solid var(--color-gray-600)}.k-select-input{position:relative;display:block;cursor:pointer;overflow:hidden}.k-select-input-native{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;font:inherit;z-index:1;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-weight:var(--font-normal)}.k-select-input-native[disabled]{cursor:default}.k-tags-input{display:flex;flex-wrap:wrap}.k-tags-input .k-tag{border-radius:var(--rounded-sm)}.k-tags-input .k-sortable-ghost{background:var(--color-focus)}.k-tags-input-element{flex-grow:1;flex-basis:0;min-width:0}.k-tags-input:focus-within .k-tags-input-element{flex-basis:4rem}.k-tags-input-element input{font:inherit;border:0;width:100%;background:0 0}.k-tags-input-element input:focus{outline:0}[dir=ltr] .k-tags-input[data-layout=list] .k-tag{margin-right:0!important}[dir=rtl] .k-tags-input[data-layout=list] .k-tag{margin-left:0!important}.k-tags-input[data-layout=list] .k-tag{width:100%}.k-textarea-input[data-size=small]{--size:7.5rem}.k-textarea-input[data-size=medium]{--size:15rem}.k-textarea-input[data-size=large]{--size:30rem}.k-textarea-input[data-size=huge]{--size:45rem}.k-textarea-input-wrapper{position:relative}.k-textarea-input-native{resize:none;border:0;width:100%;background:0 0;font:inherit;line-height:1.5em;color:inherit;min-height:var(--size)}.k-textarea-input-native::-moz-placeholder{color:var(--color-gray-500)}.k-textarea-input-native::placeholder{color:var(--color-gray-500)}.k-textarea-input-native:focus{outline:0}.k-textarea-input-native:invalid{box-shadow:none;outline:0}.k-textarea-input-native[data-font=monospace]{font-family:var(--font-mono)}.k-toolbar{margin-bottom:.25rem;color:#aaa}.k-textarea-input:focus-within .k-toolbar{position:sticky;top:0;left:0;right:0;z-index:1;box-shadow:#0000000d 0 2px 5px;border-bottom:1px solid rgba(0,0,0,.1);color:#000}.k-toggle-input{--toggle-background:var(--color-white);--toggle-color:var(--color-gray-500);--toggle-active-color:var(--color-gray-900);--toggle-focus-color:var(--color-focus);--toggle-height:16px;display:flex;align-items:center}.k-toggle-input-native{position:relative;height:var(--toggle-height);width:calc(var(--toggle-height)*2);border-radius:var(--toggle-height);border:2px solid var(--toggle-color);box-shadow:inset 0 0 0 2px var(--toggle-background),inset calc(var(--toggle-height)*-1) 0 0 2px var(--toggle-background);background-color:var(--toggle-color);outline:0;transition:all ease-in-out .1s;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;flex-shrink:0}.k-toggle-input-native:checked{border-color:var(--toggle-active-color);box-shadow:inset 0 0 0 2px var(--toggle-background),inset var(--toggle-height) 0 0 2px var(--toggle-background);background-color:var(--toggle-active-color)}.k-toggle-input-native[disabled]{border-color:var(--color-border);box-shadow:inset 0 0 0 2px var(--color-background),inset calc(var(--toggle-height)*-1) 0 0 2px var(--color-background);background-color:var(--color-border)}.k-toggle-input-native[disabled]:checked{box-shadow:inset 0 0 0 2px var(--color-background),inset var(--toggle-height) 0 0 2px var(--color-background)}.k-toggle-input-native:focus:checked{border:2px solid var(--color-focus);background-color:var(--toggle-focus-color)}.k-toggle-input-native::-ms-check{opacity:0}.k-toggle-input-label{cursor:pointer;flex-grow:1}.k-input[data-type=toggles]{display:inline-flex}.k-input[data-type=toggles].grow{display:flex}.k-toggles-input{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);background:var(--color-white)}.k-toggles-input label{align-items:center;background: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%}[dir=ltr] .k-toggles-input .k-icon+.k-toggles-text{margin-left:var(--spacing-2)}[dir=rtl] .k-toggles-input .k-icon+.k-toggles-text{margin-right:var(--spacing-2)}.k-toggles-input input:focus:not(:checked)+label{background:var(--color-gray-200)}.k-toggles-input input:checked+label{background:var(--color-black);color:var(--color-white)}.k-blocks-field{position:relative}.k-date-field-body{display:flex;flex-wrap:wrap;line-height:1;border:var(--field-input-border);background:var(--color-gray-300);gap:1px;border-radius:var(--rounded);--multiplier:calc(25rem - 100%)}.k-date-field-body:focus-within{border:var(--field-input-focus-border);box-shadow:var(--color-focus-outline) 0 0 0 2px}.k-date-field[data-disabled] .k-date-field-body{background:0 0}.k-date-field-body>.k-input[data-theme=field]{border:0;box-shadow:none;border-radius:var(--rounded)}.k-date-field-body>.k-input[data-invalid=true],.k-date-field-body>.k-input[data-invalid=true]:focus-within{border:0!important;box-shadow:none!important}.k-date-field-body>*{flex-grow:1;flex-basis:calc(var(--multiplier)*999);max-width:100%}.k-date-field-body .k-input[data-type=date]{min-width:60%}.k-date-field-body .k-input[data-type=time]{min-width:30%}.k-files-field[data-disabled=true] .k-item *{pointer-events:all!important}body{counter-reset:headline-counter}.k-headline-field{position:relative;padding-top:1.5rem}.k-fieldset>.k-grid .k-column:first-child .k-headline-field{padding-top:0}[dir=ltr] .k-headline-field .k-headline[data-numbered]:before{padding-right:.25rem}[dir=rtl] .k-headline-field .k-headline[data-numbered]:before{padding-left:.25rem}.k-headline-field .k-headline[data-numbered]:before{counter-increment:headline-counter;content:counter(headline-counter,decimal-leading-zero);color:var(--color-focus);font-weight:400}.k-info-field .k-headline{padding-bottom:.75rem;line-height:1.25rem}.k-layout-column{position:relative;height:100%;display:flex;flex-direction:column;background:var(--color-white);min-height:6rem}.k-layout-column:focus{outline:0}.k-layout-column .k-blocks{background:0 0;box-shadow:none;padding:0;height:100%;background:var(--color-white);min-height:4rem}.k-layout-column .k-blocks[data-empty=true]{min-height:6rem}.k-layout-column .k-blocks-list{display:flex;flex-direction:column;height:100%}.k-layout-column .k-blocks .k-block-container:last-of-type{flex-grow:1}.k-layout-column .k-blocks-empty{position:absolute;top:0;right:0;bottom:0;left:0;justify-content:center;opacity:0;transition:opacity .3s;border:0}.k-layout-column .k-blocks-empty:hover{opacity:1}[dir=ltr] .k-layout-column .k-blocks-empty.k-empty .k-icon{border-right:0}[dir=rtl] .k-layout-column .k-blocks-empty.k-empty .k-icon{border-left:0}.k-layout-column .k-blocks-empty.k-empty .k-icon{width:1rem}[dir=ltr] .k-layout{padding-right:var(--layout-toolbar-width)}[dir=rtl] .k-layout{padding-left:var(--layout-toolbar-width)}.k-layout{--layout-border-color:var(--color-gray-300);--layout-toolbar-width:2rem;position:relative;background:#fff;box-shadow:var(--shadow)}[dir=ltr] [data-disabled=true] .k-layout{padding-right:0}[dir=rtl] [data-disabled=true] .k-layout{padding-left:0}.k-layout:not(:last-of-type){margin-bottom:1px}.k-layout:focus{outline:0}[dir=ltr] .k-layout-toolbar{right:0}[dir=rtl] .k-layout-toolbar{left:0}[dir=ltr] .k-layout-toolbar{border-left:1px solid var(--color-light)}[dir=rtl] .k-layout-toolbar{border-right:1px solid var(--color-light)}.k-layout-toolbar{position:absolute;top:0;bottom:0;width:var(--layout-toolbar-width);display:flex;flex-direction:column;font-size:var(--text-sm);background:var(--color-gray-100);color:var(--color-gray-500)}.k-layout-toolbar:hover{color:var(--color-black)}.k-layout-toolbar-button{width:var(--layout-toolbar-width);height:var(--layout-toolbar-width)}.k-layout-toolbar .k-sort-handle{margin-top:auto;color:currentColor}.k-layout-columns.k-grid{grid-gap:1px;background:var(--layout-border-color);background:var(--color-gray-300)}.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;cursor:-webkit-grabbing;z-index:1}.k-layout-selector.k-dialog{background:#313740;color:var(--color-white)}.k-layout-selector .k-headline{line-height:1;margin-top:-.25rem;margin-bottom:1.5rem}.k-layout-selector ul{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.5rem}.k-layout-selector-option .k-grid{height:5rem;grid-gap:2px;box-shadow:var(--shadow);cursor:pointer}.k-layout-selector-option:hover{outline:2px solid var(--color-green-300);outline-offset:2px}.k-layout-selector-option:last-child{margin-bottom:0}.k-layout-selector-option .k-column{display:flex;background:rgba(255,255,255,.2);justify-content:center;font-size:var(--text-xs);align-items:center}.k-line-field{position:relative;border:0;height:3rem;width:auto}.k-line-field:after{position:absolute;content:"";top:50%;margin-top:-1px;left:0;right:0;height:1px;background:var(--color-border)}.k-list-field .k-list-input{padding:.375rem .5rem .375rem .75rem}.k-table.k-object-field-table{table-layout:auto}.k-table.k-object-field-table tbody td,.k-table.k-object-field-table tbody th,.k-table.k-object-field-table tbody th button{cursor:pointer;overflow:hidden;text-overflow:ellipsis}.k-table.k-object-field-table tbody td{max-width:0}.k-pages-field[data-disabled=true] .k-item *{pointer-events:all!important}.k-structure-field:not([data-disabled=true]) td.k-table-column{cursor:pointer}.k-field-counter{display:none}.k-text-field:focus-within .k-field-counter{display:block}.k-users-field[data-disabled=true] .k-item *{pointer-events:all!important}.k-writer-field-input{line-height:1.5em;padding:.375rem .5rem}.k-aspect-ratio{position:relative;display:block;overflow:hidden;padding-bottom:100%}.k-aspect-ratio>*{position:absolute!important;top:0;right:0;bottom:0;left:0;height:100%;width:100%;-o-object-fit:contain;object-fit:contain}.k-aspect-ratio[data-cover=true]>*{-o-object-fit:cover;object-fit:cover}.k-bar{display:flex;align-items:center;justify-content:space-between;line-height:1}.k-bar-slot{flex-grow:1}.k-bar-slot[data-position=center]{text-align:center}[dir=ltr] .k-bar-slot[data-position=right]{text-align:right}[dir=rtl] .k-bar-slot[data-position=right]{text-align:left}.k-box{word-wrap:break-word;font-size:var(--text-sm)}.k-box:not([data-theme=none]){background:var(--color-white);border-radius:var(--rounded);line-height:1.25rem;padding:.5rem .75rem}.k-box[data-theme=code]{background:var(--color-gray-900);border:1px solid var(--color-black);color:var(--color-light);font-family:Input,Menlo,monospace;font-size:var(--text-sm);line-height:1.5}.k-box[data-theme=button]{padding:0}[dir=ltr] .k-box[data-theme=button] .k-button{text-align:left}[dir=rtl] .k-box[data-theme=button] .k-button{text-align:right}.k-box[data-theme=button] .k-button{padding:0 .75rem;height:2.25rem;width:100%;display:flex;align-items:center;line-height:2rem}[dir=ltr] .k-box[data-theme=info],[dir=ltr] .k-box[data-theme=negative],[dir=ltr] .k-box[data-theme=notice],[dir=ltr] .k-box[data-theme=positive]{border-left-color:var(--theme-light)}[dir=rtl] .k-box[data-theme=info],[dir=rtl] .k-box[data-theme=negative],[dir=rtl] .k-box[data-theme=notice],[dir=rtl] .k-box[data-theme=positive]{border-right-color:var(--theme-light)}.k-box[data-theme=info],.k-box[data-theme=negative],.k-box[data-theme=notice],.k-box[data-theme=positive]{border:0;background:var(--theme-bg)}[dir=ltr] .k-box[data-theme=empty]{border-left:0}[dir=rtl] .k-box[data-theme=empty]{border-right:0}.k-box[data-theme=empty]{text-align:center;padding:3rem 1.5rem;display:flex;justify-content:center;align-items:center;flex-direction:column;background:var(--color-background);border:1px dashed var(--color-border)}.k-box[data-theme=empty] .k-icon{margin-bottom:.5rem;color:var(--color-gray-500)}.k-box[data-theme=empty],.k-box[data-theme=empty] p{color:var(--color-gray-600)}.k-bubble{display:flex;padding:0 .5rem;white-space:nowrap;align-items:center;line-height:1.5;font-size:var(--text-xs);height:1.525rem;background:var(--color-light);color:var(--color-black);border-radius:var(--rounded);overflow:hidden}[dir=ltr] .k-bubble .k-item-figure{margin-left:-.5rem}[dir=rtl] .k-bubble .k-item-figure{margin-right:-.5rem}[dir=ltr] .k-bubble .k-item-figure{margin-right:var(--spacing-2)}[dir=rtl] .k-bubble .k-item-figure{margin-left:var(--spacing-2)}.k-bubble .k-item-figure{width:1.525rem;height:1.525rem}.k-bubbles{display:flex;gap:.25rem}.k-collection-help{padding:.5rem .75rem}.k-collection-footer{display:flex;justify-content:space-between;margin-left:-.75rem;margin-right:-.75rem}.k-collection-pagination{line-height:1.25rem;flex-shrink:0;min-height:2.75rem}.k-collection-pagination .k-pagination .k-button{padding:.5rem .75rem;line-height:1.125rem}.k-column{min-width:0;grid-column-start:span 12}.k-column[data-sticky=true]>div{position:sticky;top:4vh;z-index:2}@media screen and (min-width:65em){.k-column[data-width="1/1"],.k-column[data-width="12/12"],.k-column[data-width="2/2"],.k-column[data-width="3/3"],.k-column[data-width="4/4"],.k-column[data-width="6/6"]{grid-column-start:span 12}.k-column[data-width="11/12"]{grid-column-start:span 11}.k-column[data-width="10/12"],.k-column[data-width="5/6"]{grid-column-start:span 10}.k-column[data-width="3/4"],.k-column[data-width="9/12"]{grid-column-start:span 9}.k-column[data-width="2/3"],.k-column[data-width="4/6"],.k-column[data-width="8/12"]{grid-column-start:span 8}.k-column[data-width="7/12"]{grid-column-start:span 7}.k-column[data-width="1/2"],.k-column[data-width="2/4"],.k-column[data-width="3/6"],.k-column[data-width="6/12"]{grid-column-start:span 6}.k-column[data-width="5/12"]{grid-column-start:span 5}.k-column[data-width="1/3"],.k-column[data-width="2/6"],.k-column[data-width="4/12"]{grid-column-start:span 4}.k-column[data-width="1/4"],.k-column[data-width="3/12"]{grid-column-start:span 3}.k-column[data-width="1/6"],.k-column[data-width="2/12"]{grid-column-start:span 2}.k-column[data-width="1/12"]{grid-column-start:span 1}}.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-dropzone{position:relative}.k-dropzone:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;display:none;pointer-events:none;z-index:1}.k-dropzone[data-over=true]:after{display:block;outline:1px solid var(--color-focus);box-shadow:var(--color-focus-outline) 0 0 0 3px}.k-empty{display:flex;align-items:stretch;border-radius:var(--rounded);color:var(--color-gray-600);border:1px dashed var(--color-border)}button.k-empty{width:100%}button.k-empty:focus{outline:0}.k-empty p{font-size:var(--text-sm);color:var(--color-gray-600)}.k-empty>.k-icon{color:var(--color-gray-500)}.k-empty[data-layout=cardlets],.k-empty[data-layout=cards]{text-align:center;padding:1.5rem;justify-content:center;flex-direction:column}.k-empty[data-layout=cardlets] .k-icon,.k-empty[data-layout=cards] .k-icon{margin-bottom:1rem}.k-empty[data-layout=cardlets] .k-icon svg,.k-empty[data-layout=cards] .k-icon svg{width:2rem;height:2rem}.k-empty[data-layout=list],.k-empty[data-layout=table]{min-height:38px}[dir=ltr] .k-empty[data-layout=list]>.k-icon,[dir=ltr] .k-empty[data-layout=table]>.k-icon{border-right:1px solid rgba(0,0,0,.05)}[dir=rtl] .k-empty[data-layout=list]>.k-icon,[dir=rtl] .k-empty[data-layout=table]>.k-icon{border-left:1px solid rgba(0,0,0,.05)}.k-empty[data-layout=list]>.k-icon,.k-empty[data-layout=table]>.k-icon{width:36px;min-height:36px}.k-empty[data-layout=list]>p,.k-empty[data-layout=table]>p{line-height:1.25rem;padding:.5rem .75rem}.k-file-preview{background:var(--color-gray-800)}.k-file-preview-layout{display:grid;grid-template-columns:50%auto}.k-file-preview-layout>*{min-width:0}.k-file-preview-image{position:relative;display:flex;align-items:center;justify-content:center;background:var(--bg-pattern)}.k-file-preview-image-link{display:block;width:100%;padding:min(4vw,3rem);outline:0}.k-file-preview-image-link[data-tabbed=true]{box-shadow:none;outline:2px solid var(--color-focus);outline-offset:-2px}.k-file-preview-details{padding:1.5rem;flex-grow:1}.k-file-preview-details ul{line-height:1.5em;max-width:50rem;display:grid;grid-gap:1.5rem 3rem;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.k-file-preview-details h3{font-size:var(--text-sm);font-weight:500;color:var(--color-gray-500)}.k-file-preview-details a,.k-file-preview-details p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ffffffbf;font-size:var(--text-sm)}@media screen and (min-width:30em){.k-file-preview-details ul{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media screen and (max-width:65em){.k-file-preview-layout{padding:0!important}}@media screen and (min-width:65em){.k-file-preview-layout{grid-template-columns:33.333%auto;align-items:center}.k-file-preview-details{padding:3rem}}@media screen and (min-width:90em){.k-file-preview-layout{grid-template-columns:25%auto}}.k-grid{--columns:12;display:grid;grid-column-gap:0;grid-row-gap:0;grid-template-columns:1fr}@media screen and (min-width:30em){.k-grid[data-gutter=small]{grid-column-gap:1rem;grid-row-gap:1rem}.k-grid[data-gutter=huge],.k-grid[data-gutter=large],.k-grid[data-gutter=medium]{grid-column-gap:1.5rem;grid-row-gap:1.5rem}}@media screen and (min-width:65em){.k-grid{grid-template-columns:repeat(var(--columns),1fr)}.k-grid[data-gutter=large]{grid-column-gap:3rem}.k-grid[data-gutter=huge]{grid-column-gap:4.5rem}}@media screen and (min-width:90em){.k-grid[data-gutter=large]{grid-column-gap:4.5rem}.k-grid[data-gutter=huge]{grid-column-gap:6rem}}@media screen and (min-width:120em){.k-grid[data-gutter=large]{grid-column-gap:6rem}.k-grid[data-gutter=huge]{grid-column-gap:7.5rem}}.k-header{padding-top:4vh;margin-bottom:2rem;border-bottom:1px solid var(--color-border)}.k-header[data-tabs=true]{border-bottom:0}.k-header .k-headline{min-height:1.25em;margin-bottom:.5rem;word-wrap:break-word}.k-header .k-header-buttons{margin-top:-.5rem;height:3.25rem}.k-header .k-headline-editable{cursor:pointer}[dir=ltr] .k-header .k-headline-editable .k-icon{margin-left:.5rem}[dir=rtl] .k-header .k-headline-editable .k-icon{margin-right:.5rem}.k-header .k-headline-editable .k-icon{color:var(--color-gray-500);opacity:0;transition:opacity .3s;display:inline-block}.k-header .k-headline-editable:hover .k-icon{opacity:1}.k-panel-inside{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.k-panel-inside:focus{outline:0}.k-panel-header{z-index:var(--z-navigation);flex-shrink:0}.k-panel-view{flex-grow:1;padding-bottom:6rem}.k-item{position:relative;background:var(--color-white);border-radius:var(--rounded);box-shadow:var(--shadow);display:grid;grid-template-columns:auto;line-height:1}.k-item a:focus,.k-item:focus{outline:0}.k-item.k-sortable-ghost,.k-item:focus-within{box-shadow:var(--shadow-outline)}.k-item-sort-handle.k-sort-handle{position:absolute;opacity:0;width:1.25rem;height:1.5rem;z-index:2;border-radius:1px}.k-item:hover .k-item-sort-handle{opacity:1}.k-item-figure{grid-area:figure}.k-item-content{grid-area:content;overflow:hidden}.k-item-info,.k-item-title{font-size:var(--text-sm);font-weight:400;text-overflow:ellipsis;white-space:nowrap;line-height:1.125rem;overflow:hidden}.k-item-info{grid-area:info;color:var(--color-gray-500)}.k-item-title-link.k-link[data-=true]{box-shadow:none}.k-item-title-link:after{position:absolute;content:"";top:0;right:0;bottom:0;left:0;z-index:1}.k-item-footer{grid-area:footer;display:flex;justify-content:space-between;align-items:center;min-width:0}[dir=ltr] .k-item-label{margin-right:.5rem}[dir=rtl] .k-item-label{margin-left:.5rem}.k-item-buttons{position:relative;display:flex;justify-content:flex-end;flex-shrink:0;flex-grow:1}.k-item-buttons>.k-button,.k-item-buttons>.k-dropdown{position:relative;width:38px;height:38px;display:flex!important;align-items:center;justify-content:center;line-height:1}.k-item-buttons>.k-button{z-index:1}.k-item-buttons>.k-options-dropdown>.k-options-dropdown-toggle{z-index:var(--z-toolbar)}.k-list-item{display:flex;align-items:center;height:38px}[dir=ltr] .k-list-item .k-item-sort-handle{left:-1.5rem}[dir=rtl] .k-list-item .k-item-sort-handle{right:-1.5rem}.k-list-item .k-item-sort-handle{width:1.5rem}[dir=ltr] .k-list-item .k-item-figure{border-top-left-radius:var(--rounded)}[dir=rtl] .k-list-item .k-item-figure{border-top-right-radius:var(--rounded)}[dir=ltr] .k-list-item .k-item-figure{border-bottom-left-radius:var(--rounded)}[dir=rtl] .k-list-item .k-item-figure{border-bottom-right-radius:var(--rounded)}.k-list-item .k-item-figure{width:38px}[dir=ltr] .k-list-item .k-item-content{margin-left:.75rem}[dir=rtl] .k-list-item .k-item-content{margin-right:.75rem}.k-list-item .k-item-content{display:flex;flex-grow:1;flex-shrink:2;justify-content:space-between;align-items:center}.k-list-item .k-item-info,.k-list-item .k-item-title{flex-grow:1;line-height:1.5rem}[dir=ltr] .k-list-item .k-item-title{margin-right:.5rem}[dir=rtl] .k-list-item .k-item-title{margin-left:.5rem}.k-list-item .k-item-title{flex-shrink:1}[dir=ltr] .k-list-item .k-item-info{text-align:right}[dir=rtl] .k-list-item .k-item-info{text-align:left}[dir=ltr] .k-list-item .k-item-info{margin-right:.5rem}[dir=rtl] .k-list-item .k-item-info{margin-left:.5rem}.k-list-item .k-item-info{flex-shrink:2;justify-self:end}.k-list-item .k-item-buttons,.k-list-item .k-item-footer{flex-shrink:0}.k-item:not(.k-list-item) .k-item-sort-handle{margin:var(--spacing-2);background:var(--color-background);box-shadow:var(--shadow-lg);border-radius:var(--rounded-sm)}[dir=ltr] .k-item:not(.k-list-item) .k-item-label{margin-left:-2px}[dir=rtl] .k-item:not(.k-list-item) .k-item-label{margin-right:-2px}.k-item:not(.k-list-item) .k-item-content{padding:.625rem .75rem}.k-cardlets-item{height:6rem;grid-template-rows:auto 38px;grid-template-areas:"content""footer"}.k-cardlets-item[data-has-figure=true]{grid-template-columns:6rem auto;grid-template-areas:"figure content""figure footer"}[dir=ltr] .k-cardlets-item .k-item-figure{border-top-left-radius:var(--rounded)}[dir=rtl] .k-cardlets-item .k-item-figure{border-top-right-radius:var(--rounded)}[dir=ltr] .k-cardlets-item .k-item-figure{border-bottom-left-radius:var(--rounded)}[dir=rtl] .k-cardlets-item .k-item-figure{border-bottom-right-radius:var(--rounded)}.k-cardlets-item .k-item-footer{padding-top:.5rem;padding-bottom:.5rem}.k-cards-item{grid-template-columns:auto;grid-template-rows:auto 1fr;grid-template-areas:"figure""content";--item-content-wrapper:0}[dir=ltr] .k-cards-item .k-item-figure,[dir=rtl] .k-cards-item .k-item-figure{border-top-right-radius:var(--rounded);border-top-left-radius:var(--rounded)}.k-cards-item .k-item-content{padding:.5rem .75rem!important;overflow:hidden}.k-cards-item .k-item-info,.k-cards-item .k-item-title{line-height:1.375rem;white-space:normal}.k-cards-item .k-item-info:after,.k-cards-item .k-item-title:after{display:inline-block;content:"\a0";width:var(--item-content-wrapper)}.k-cards-item[data-has-flag=true],.k-cards-item[data-has-options=true]{--item-content-wrapper:38px}.k-cards-item[data-has-flag=true][data-has-options=true]{--item-content-wrapper:76px}.k-cards-item[data-has-info=true] .k-item-title:after{display:none}[dir=ltr] .k-cards-item .k-item-footer{right:0}[dir=rtl] .k-cards-item .k-item-footer{left:0}.k-cards-item .k-item-footer{position:absolute;bottom:0;width:auto}.k-item-figure{overflow:hidden;flex-shrink:0}.k-cards-items{--min:13rem;--max:1fr;--gap:1.5rem;--column-gap:var(--gap);--row-gap:var(--gap);display:grid;grid-column-gap:var(--column-gap);grid-row-gap:var(--row-gap);grid-template-columns:repeat(auto-fill,minmax(var(--min),var(--max)))}@media screen and (min-width:30em){.k-cards-items[data-size=tiny]{--min:10rem}.k-cards-items[data-size=small]{--min:16rem}.k-cards-items[data-size=medium]{--min:24rem}.k-cards-items[data-size=huge],.k-cards-items[data-size=large],.k-column[data-width="1/4"] .k-cards-items,.k-column[data-width="1/5"] .k-cards-items,.k-column[data-width="1/6"] .k-cards-items{--min:1fr}}@media screen and (min-width:65em){.k-cards-items[data-size=large]{--min:32rem}}.k-cardlets-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));grid-gap:.5rem}.k-list-items .k-list-item:not(:last-child){margin-bottom:2px}.k-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:var(--z-dialog);transform:translateZ(0)}.k-overlay[data-centered=true]{display:flex;align-items:center;justify-content:center}.k-overlay[data-dimmed=true]{background:var(--color-backdrop)}.k-overlay-loader{color:var(--color-white)}.k-panel[data-loading=true]{animation:LoadingCursor .5s}.k-panel[data-dragging=true],.k-panel[data-loading=true]:after{-webkit-user-select:none;-moz-user-select:none;user-select:none}.k-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));grid-auto-rows:1fr;grid-gap:var(--spacing-2px)}.k-stat{display:flex;flex-direction:column;background:var(--color-white);box-shadow:var(--shadow);padding:var(--spacing-3) var(--spacing-6);line-height:var(--leading-normal);border-radius:var(--rounded)}.k-stat.k-link:hover{cursor:pointer;background:var(--color-gray-100)}.k-stat dd,.k-stat dt{display:block}.k-stat-value{font-size:var(--value);margin-bottom:var(--spacing-1);order:1}.k-stat-info,.k-stat-label{font-size:var(--text-xs)}.k-stat-label{order:2}.k-stat-info{order:3;color:var(--theme, var(--color-gray-500))}.k-stats[data-size=small]{--value:var(--text-base)}.k-stats[data-size=medium]{--value:var(--text-xl)}.k-stats[data-size=large]{--value:var(--text-2xl)}.k-stats[data-size=huge]{--value:var(--text-3xl)}.k-table{--table-row-height:38px;position:relative;table-layout:fixed;background:var(--color-white);font-size:var(--text-sm);border-spacing:0;box-shadow:var(--shadow);border-radius:var(--rounded);font-variant-numeric:tabular-nums}.k-table[data-invalid]{border:0;box-shadow:var(--color-negative-outline) 0 0 0 1px,var(--color-negative-outline) 0 0 3px 2px}.k-table td,.k-table th{height:var(--table-row-height);overflow:hidden;text-overflow:ellipsis;line-height:1.25em}.k-table,.k-table td{width:100%}[dir=ltr] .k-table tbody tr:first-child th,[dir=ltr] .k-table thead th:first-child{border-top-left-radius:var(--rounded)}[dir=rtl] .k-table tbody tr:first-child th,[dir=rtl] .k-table thead th:first-child{border-top-right-radius:var(--rounded)}[dir=ltr] .k-table thead th:last-child{border-top-right-radius:var(--rounded)}[dir=rtl] .k-table thead th:last-child{border-top-left-radius:var(--rounded)}[dir=ltr] .k-table td:last-child,[dir=ltr] .k-table th:last-child{border-right:0}[dir=rtl] .k-table td:last-child,[dir=rtl] .k-table th:last-child{border-left:0}.k-table td:last-child,.k-table th:last-child{height:var(--table-row-height)}.k-table th,.k-table tr:not(:last-child) td{border-bottom:1px solid var(--color-background)}.k-table td:last-child{overflow:visible}[dir=ltr] .k-table td,[dir=ltr] .k-table th{border-right:1px solid var(--color-background)}[dir=rtl] .k-table td,[dir=rtl] .k-table th{border-left:1px solid var(--color-background)}[dir=ltr] .k-table td,[dir=ltr] .k-table th,[dir=ltr] .k-table th button{text-align:left}[dir=rtl] .k-table td,[dir=rtl] .k-table th,[dir=rtl] .k-table th button{text-align:right}.k-table th{padding:0 .75rem;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;color:var(--color-gray-600);background:var(--color-gray-100);width:100%}.k-table th button{font:inherit;display:block;padding:0 .75rem;height:100%;width:100%;border-radius:var(--rounded)}.k-table th button:focus-visible{outline:2px solid var(--color-black);outline-offset:-2px}.k-table tbody tr:hover td{background:rgba(239,239,239,.25)}.k-table thead th{position:sticky;top:0;left:0;right:0;z-index:1}.k-table tbody th{width:auto;white-space:nowrap;padding:0;overflow:visible;border-radius:0}[dir=ltr] .k-table tbody tr:last-child th{border-bottom-left-radius:var(--rounded)}[dir=rtl] .k-table tbody tr:last-child th{border-bottom-right-radius:var(--rounded)}.k-table tbody tr:last-child th{border-bottom:0}.k-table-column[data-align]{text-align:var(--align)!important}.k-table-column[data-align=right]>.k-input{flex-direction:column;align-items:flex-end}.k-table .k-sort-handle,.k-table-index{display:grid;place-items:center;width:100%;height:var(--table-row-height)}.k-table .k-sort-handle,.k-table tr:hover .k-table-index-column[data-sortable=true] .k-table-index{display:none}.k-table tr:hover .k-sort-handle{display:grid!important}.k-table-row-ghost{background:var(--color-white);box-shadow:var(--shadow-outline);outline:2px solid var(--color-black);border-radius:var(--rounded);margin-bottom:2px;cursor:grabbing;cursor:-webkit-grabbing}.k-table-row-fallback{opacity:0!important}td.k-table-index-column,td.k-table-options-column,th.k-table-index-column,th.k-table-options-column{width:var(--table-row-height);text-align:center!important}.k-table-index{font-size:var(--text-xs);color:var(--color-gray-500);line-height:1.1em}.k-table-empty{color:var(--color-gray-600);font-size:var(--text-sm)}[data-disabled=true] .k-table{background:var(--color-gray-100)}[data-disabled=true] .k-table tbody td,[data-disabled=true] .k-table th{border-color:var(--color-gray-200)}[data-disabled=true] .k-table td:last-child{overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:65em){.k-table td:not([data-mobile]),.k-table th:not([data-mobile]){display:none}}.k-table-update-status-cell{padding:0 .75rem;display:flex;align-items:center;height:100%}.k-table-update-status-cell-button,.k-table-update-status-cell-version{font-variant-numeric:tabular-nums}.k-table-update-status-cell-button{display:inline-flex;padding:.25rem 1.5rem .25rem .325rem;border-radius:var(--rounded);line-height:1;align-items:center;background:var(--color-gray-200)}.k-table-update-status-cell-button .k-button-text:after{position:absolute;top:50%;right:.5rem;margin-top:-2px;content:"";border-top:4px solid #000;border-left:4px solid transparent;border-right:4px solid transparent}.k-table-update-status-cell-button .k-icon{color:var(--theme)}.k-plugin-info{padding:1rem}.k-plugin-info div+div{margin-top:.5rem}.k-plugin-info dt{color:var(--color-gray-400);margin-right:.5rem}.k-plugin-info dd[data-theme]{color:var(--theme-light)}.k-plugin-info+.k-dropdown-item{padding-top:.75rem;border-top:1px solid var(--color-gray-700)}@media screen and (min-width:30em){.k-plugin-info{width:20rem}.k-plugin-info div{display:flex}}.k-tabs{position:relative;background:#e9e9e9;border:1px solid var(--color-border);border-radius:var(--rounded)}.k-tabs nav{display:flex;justify-content:center;margin-left:-1px;margin-right:-1px}[dir=ltr] .k-tab-button.k-button{border-left:1px solid transparent}[dir=rtl] .k-tab-button.k-button{border-right:1px solid transparent}[dir=ltr] .k-tab-button.k-button{border-right:1px solid var(--color-border)}[dir=rtl] .k-tab-button.k-button{border-left:1px solid var(--color-border)}.k-tab-button.k-button{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;padding:.625rem .75rem;font-size:var(--text-xs);text-transform:uppercase;text-align:center;font-weight:500;flex-grow:1;flex-shrink:1;flex-direction:column;max-width:15rem}@media screen and (min-width:30em){.k-tab-button.k-button{flex-direction:row}[dir=ltr] .k-tab-button.k-button .k-icon{margin-right:.5rem}[dir=rtl] .k-tab-button.k-button .k-icon{margin-left:.5rem}}[dir=ltr] .k-tab-button.k-button>.k-button-text{padding-left:0}[dir=rtl] .k-tab-button.k-button>.k-button-text{padding-right:0}.k-tab-button.k-button>.k-button-text{padding-top:.375rem;font-size:10px;overflow:hidden;max-width:10rem;text-overflow:ellipsis;opacity:1}@media screen and (min-width:30em){.k-tab-button.k-button>.k-button-text{font-size:var(--text-xs);padding-top:0}}[dir=ltr] .k-tab-button:last-child{border-right:1px solid transparent}[dir=rtl] .k-tab-button:last-child{border-left:1px solid transparent}[dir=ltr] .k-tab-button[aria-current]{border-right:1px solid var(--color-border)}[dir=rtl] .k-tab-button[aria-current]{border-left:1px solid var(--color-border)}.k-tab-button[aria-current]{position:relative;background:var(--color-background);pointer-events:none}[dir=ltr] .k-tab-button[aria-current]:first-child{border-left:1px solid var(--color-border)}[dir=rtl] .k-tab-button[aria-current]:first-child{border-right:1px solid var(--color-border)}.k-tab-button[aria-current]:after,.k-tab-button[aria-current]:before{position:absolute;content:""}.k-tab-button[aria-current]:before{left:-1px;right:-1px;top:-1px;height:2px;background:var(--color-black)}.k-tab-button[aria-current]:after{left:0;right:0;bottom:-1px;height:1px;background:var(--color-background)}[dir=ltr] .k-tabs-dropdown{right:0}[dir=rtl] .k-tabs-dropdown{left:0}.k-tabs-dropdown{top:100%}[dir=ltr] .k-tabs-badge{right:2px}[dir=rtl] .k-tabs-badge{left:2px}.k-tabs-badge{position:absolute;top:3px;font-variant-numeric:tabular-nums;line-height:1.5;padding:0 .25rem;border-radius:2px;font-size:10px;box-shadow:var(--shadow-md)}.k-tabs[data-theme=notice] .k-tabs-badge{background:var(--theme-light);color:var(--color-black)}.k-view{padding-left:1.5rem;padding-right:1.5rem;margin:0 auto;max-width:100rem}@media screen and (min-width:30em){.k-view{padding-left:3rem;padding-right:3rem}}@media screen and (min-width:90em){.k-view{padding-left:6rem;padding-right:6rem}}.k-view[data-align=center]{height:100vh;display:flex;align-items:center;justify-content:center;padding:0 3rem;overflow:auto}.k-view[data-align=center]>*{flex-basis:22.5rem}.k-fatal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-backdrop);display:flex;z-index:var(--z-fatal);align-items:center;justify-content:center;padding:1.5rem}.k-fatal-box{width:100%;height:100%;display:flex;flex-direction:column;color:var(--color-black);background:var(--color-red-400);box-shadow:var(--shadow-xl);border-radius:var(--rounded)}.k-fatal-box .k-headline{line-height:1;font-size:var(--text-sm);padding:.75rem}.k-fatal-box .k-button{padding:.75rem}.k-fatal-iframe{border:0;width:100%;flex-grow:1;background:var(--color-white)}.k-headline{--size:var(--text-base);font-size:var(--size);font-weight:var(--font-bold);line-height:1.5em}.k-headline[data-size=small]{--size:var(--text-sm)}.k-headline[data-size=large]{--size:var(--text-xl);font-weight:var(--font-normal)}@media screen and (min-width:65em){.k-headline[data-size=large]{--size:var(--text-2xl)}}.k-headline[data-size=huge]{--size:var(--text-2xl);line-height:1.15em}@media screen and (min-width:65em){.k-headline[data-size=huge]{--size:var(--text-3xl)}}.k-headline[data-theme]{color:var(--theme)}[dir=ltr] .k-headline abbr{padding-left:.25rem}[dir=rtl] .k-headline abbr{padding-right:.25rem}.k-headline abbr{color:var(--color-gray-500);text-decoration:none}.k-icon{--size:1rem;position:relative;line-height:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--size)}.k-icon[data-size=medium]{--size:2rem}.k-icon[data-size=large]{--size:3rem}.k-icon svg{width:var(--size);height:var(--size);-moz-transform:scale(1)}.k-icon svg *{fill:currentColor}.k-icon[data-back=black]{color:var(--color-white)}.k-icon[data-back=white]{color:var(--color-gray-900)}.k-icon[data-back=pattern]{color:var(--color-white)}[data-disabled=true] .k-icon[data-back=pattern] svg{opacity:1}.k-icon-emoji{display:block;line-height:1;font-style:normal;font-size:var(--size)}@media not all,not all,not all,only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.k-icon-emoji{font-size:1.25em}}.k-icons{position:absolute;width:0;height:0}.k-image span{position:relative;display:block;line-height:0;padding-bottom:100%}.k-image img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}[dir=ltr] .k-image-error{left:50%}[dir=rtl] .k-image-error{right:50%}.k-image-error{position:absolute;top:50%;transform:translate(-50%,-50%);color:var(--color-white);font-size:.9em}.k-image-error svg *{fill:#ffffff4d}.k-image[data-cover=true] img{-o-object-fit:cover;object-fit:cover}.k-image[data-back=black] span{background:var(--color-gray-900)}.k-image[data-back=white] span{background:var(--color-white);color:var(--color-gray-900)}.k-image[data-back=white] .k-image-error{background:var(--color-gray-900);color:var(--color-white)}.k-image[data-back=pattern] span{background:var(--color-gray-800) var(--bg-pattern)}.k-loader{z-index:1}.k-loader-icon{animation:Spin .9s linear infinite}.k-offline-warning{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-offline);background:var(--color-backdrop);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)}.k-progress{-webkit-appearance:none;width:100%;height:.5rem;border-radius:5rem;background:var(--color-border);overflow:hidden;border:0}.k-progress::-webkit-progress-bar{border:0;background:var(--color-border);height:.5rem;border-radius:20px}.k-progress::-webkit-progress-value{border-radius:inherit;background:var(--color-focus);-webkit-transition:width .3s;transition:width .3s}.k-progress::-moz-progress-bar{border-radius:inherit;background:var(--color-focus);-moz-transition:width .3s;transition:width .3s}[dir=ltr] .k-registration,[dir=ltr] .k-registration p{margin-right:1rem}[dir=rtl] .k-registration,[dir=rtl] .k-registration p{margin-left:1rem}.k-registration{display:flex;align-items:center}.k-registration p{color:var(--color-negative-light);font-size:var(--text-sm);font-weight:600}@media screen and (max-width:90em){.k-registration p{display:none}}.k-registration .k-button{color:var(--color-white)}.k-sort-handle{cursor:move;cursor:grab;cursor:-webkit-grab;color:var(--color-gray-900);justify-content:center;align-items:center;line-height:0;width:2rem;height:2rem;display:flex;will-change:opacity,color;transition:opacity .3s;z-index:1}.k-sort-handle svg{width:1rem;height:1rem}.k-sort-handle:active{cursor:grabbing;cursor:-webkit-grabbing}.k-status-icon svg{width:14px;height:14px}.k-status-icon .k-icon{color:var(--theme-light)}.k-status-icon .k-button-text{color:var(--color-black)}.k-status-icon[data-disabled=true]{opacity:1!important}.k-status-icon[data-disabled=true] .k-icon{color:var(--color-gray-400);opacity:.5}.k-text{line-height:1.5em}[dir=ltr] .k-text ol,[dir=ltr] .k-text ul{margin-left:1rem}[dir=rtl] .k-text ol,[dir=rtl] .k-text ul{margin-right:1rem}.k-text li{list-style:inherit}.k-text p,.k-text>ol,.k-text>ul{margin-bottom:1.5em}.k-text a{text-decoration:underline}.k-text>:last-child{margin-bottom:0}.k-text[data-size=tiny]{font-size:var(--text-xs)}.k-text[data-size=small]{font-size:var(--text-sm)}.k-text[data-size=medium]{font-size:var(--text-base)}.k-text[data-size=large]{font-size:var(--text-xl)}.k-text[data-align]{text-align:var(--align)}.k-text[data-theme=help]{font-size:var(--text-sm);color:var(--color-gray-600);line-height:1.25rem}.k-dialog-body .k-text{word-wrap:break-word}.k-user-info{display:flex;align-items:center;line-height:1;font-size:var(--text-sm)}[dir=ltr] .k-user-info .k-image{margin-right:.75rem}[dir=rtl] .k-user-info .k-image{margin-left:.75rem}.k-user-info .k-image{width:1.5rem}[dir=ltr] .k-user-info .k-icon{margin-right:.75rem}[dir=rtl] .k-user-info .k-icon{margin-left:.75rem}.k-user-info .k-icon{width:1.5rem;height:1.5rem;background:var(--color-black);color:var(--color-white)}.k-breadcrumb{padding-left:.5rem;padding-right:.5rem}.k-breadcrumb-dropdown{height:2.5rem;width:2.5rem;display:flex;align-items:center;justify-content:center}.k-breadcrumb ol{display:none;align-items:center}@media screen and (min-width:30em){.k-breadcrumb ol{display:flex}.k-breadcrumb-dropdown{display:none}}.k-breadcrumb li,.k-breadcrumb-link{display:flex;align-items:center;min-width:0}.k-breadcrumb-link{font-size:var(--text-sm);align-self:stretch;padding-top:.625rem;padding-bottom:.625rem;line-height:1.25rem}.k-breadcrumb li{flex-shrink:3}.k-breadcrumb li:last-child{flex-shrink:1}.k-breadcrumb li:not(:last-child):after{content:"/";padding-left:.5rem;padding-right:.5rem;opacity:.5;flex-shrink:0}.k-breadcrumb li:not(:first-child):not(:last-child){max-width:15vw}[dir=ltr] .k-breadcrumb-icon{margin-right:.5rem}[dir=rtl] .k-breadcrumb-icon{margin-left:.5rem}.k-breadcrumb-icon.k-loader{opacity:.5}.k-breadcrumb-link-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}button{line-height:inherit;border:0;font-family:var(--font-sans);font-size:1rem;color:currentColor;background:0 0;cursor:pointer}button::-moz-focus-inner{padding:0;border:0}.k-button{display:inline-block;position:relative;font-size:var(--text-sm);transition:color .3s;outline:0}.k-button:focus,.k-button:hover{outline:0}.k-button *{vertical-align:middle}.k-button[data-responsive=true] .k-button-text{display:none}@media screen and (min-width:30em){.k-button[data-responsive=true] .k-button-text{display:inline}}.k-button[data-theme]{color:var(--theme)}.k-button-icon{display:inline-flex;align-items:center;line-height:0}[dir=ltr] .k-button-icon~.k-button-text{padding-left:.5rem}[dir=rtl] .k-button-icon~.k-button-text{padding-right:.5rem}.k-button-text{opacity:.75}.k-button:focus .k-button-text,.k-button:hover .k-button-text{opacity:1}.k-button-text b,.k-button-text span{vertical-align:baseline}.k-button[data-disabled=true]{opacity:.5;pointer-events:none;cursor:default}.k-card-options>.k-button[data-disabled=true]{display:inline-flex}.k-button-group{--padding-x:.75rem;--padding-y:1rem;--line-height:1rem;font-size:0;margin:0 calc(var(--padding-x)*-1)}.k-button-group>.k-dropdown{height:calc(var(--line-height) + (var(--padding-y)*2));display:inline-block}.k-button-group>.k-button,.k-button-group>.k-dropdown>.k-button{padding:var(--padding-y) var(--padding-x);line-height:var(--line-height)}.k-button-group .k-dropdown-content{top:calc(100% + 1px);margin:0 var(--padding-x)}.k-dropdown{position:relative}[dir=ltr] .k-dropdown-content{text-align:left}[dir=rtl] .k-dropdown-content{text-align:right}.k-dropdown-content{position:absolute;top:100%;background:var(--color-black);color:var(--color-white);z-index:var(--z-dropdown);box-shadow:var(--shadow-lg);border-radius:var(--rounded);margin-bottom:6rem}[dir=ltr] .k-dropdown-content[data-align=left]{left:0}[dir=ltr] .k-dropdown-content[data-align=right],[dir=rtl] .k-dropdown-content[data-align=left]{right:0}[dir=rtl] .k-dropdown-content[data-align=right]{left:0}.k-dropdown-content>.k-dropdown-item:first-child{margin-top:.5rem}.k-dropdown-content>.k-dropdown-item:last-child{margin-bottom:.5rem}.k-dropdown-content[data-dropup=true]{top:auto;bottom:100%;margin-bottom:.5rem}.k-dropdown-content hr{border-color:currentColor;opacity:.2;margin:.5rem 1rem}.k-dropdown-content[data-theme=light]{background:var(--color-white);color:var(--color-black)}.k-dropdown-item{white-space:nowrap;line-height:1;display:flex;width:100%;align-items:center;font-size:var(--text-sm);padding:6px 16px}.k-dropdown-item:focus{outline:0;box-shadow:var(--shadow-outline)}[dir=ltr] .k-dropdown-item .k-button-figure{padding-right:.5rem}[dir=rtl] .k-dropdown-item .k-button-figure{padding-left:.5rem}.k-dropdown-item .k-button-figure{text-align:center}.k-link{outline:0}.k-options-dropdown,.k-options-dropdown-toggle{display:flex;justify-content:center;align-items:center;height:38px}.k-options-dropdown-toggle{min-width:38px;padding:0 .75rem}.k-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;direction:ltr}.k-pagination .k-button{padding:1rem}.k-pagination-details{white-space:nowrap}.k-pagination>span{font-size:var(--text-sm)}.k-pagination[data-align]{text-align:var(--align)}[dir=ltr] .k-dropdown-content.k-pagination-selector{left:50%}[dir=rtl] .k-dropdown-content.k-pagination-selector{right:50%}.k-dropdown-content.k-pagination-selector{position:absolute;top:100%;transform:translate(-50%);background:var(--color-black)}[dir=ltr] .k-dropdown-content.k-pagination-selector{direction:ltr}[dir=rtl] .k-dropdown-content.k-pagination-selector{direction:rtl}.k-pagination-settings{display:flex;align-items:center;justify-content:space-between}.k-pagination-settings .k-button{line-height:1}[dir=ltr] .k-pagination-settings label{border-right:1px solid rgba(255,255,255,.35)}[dir=rtl] .k-pagination-settings label{border-left:1px solid rgba(255,255,255,.35)}.k-pagination-settings label{display:flex;align-items:center;padding:.625rem 1rem;font-size:var(--text-xs)}[dir=ltr] .k-pagination-settings label span{margin-right:.5rem}[dir=rtl] .k-pagination-settings label span{margin-left:.5rem}.k-prev-next{direction:ltr}.k-search{max-width:30rem;margin:2.5rem auto;box-shadow:var(--shadow-lg);background:var(--color-light);border-radius:var(--rounded)}.k-search-input{display:flex}.k-search-types{flex-shrink:0;display:flex}[dir=ltr] .k-search-types>.k-button{padding-left:1rem}[dir=rtl] .k-search-types>.k-button{padding-right:1rem}.k-search-types>.k-button{font-size:var(--text-base);line-height:1;height:2.5rem}.k-search-types>.k-button .k-icon{height:2.5rem}.k-search-types>.k-button .k-button-text{opacity:1;font-weight:500}.k-search-input input{background:0 0;flex-grow:1;font:inherit;padding:.75rem;border:0;height:2.5rem}.k-search-close{width:3rem;line-height:1}.k-search-close .k-icon-loader{animation:Spin 2s linear infinite}.k-search input:focus{outline:0}.k-search-results{padding:.5rem 1rem 1rem}.k-search .k-item:not(:last-child){margin-bottom:.25rem}.k-search .k-item[data-selected=true]{outline:2px solid var(--color-focus)}.k-search .k-item-info,.k-search-empty{font-size:var(--text-xs)}.k-search-empty{text-align:center;color:var(--color-gray-600)}.k-tag{position:relative;font-size:var(--text-sm);line-height:1;cursor:pointer;background-color:var(--color-gray-900);color:var(--color-light);border-radius:var(--rounded);display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;-moz-user-select:none;user-select:none}.k-tag:focus{outline:0;background-color:var(--color-focus);color:#fff}.k-tag-text{padding:.3rem .75rem .375rem;line-height:var(--leading-tight)}[dir=ltr] .k-tag-toggle{padding-right:1px}[dir=rtl] .k-tag-toggle{padding-left:1px}[dir=ltr] .k-tag-toggle{border-left:1px solid rgba(255,255,255,.15)}[dir=rtl] .k-tag-toggle{border-right:1px solid rgba(255,255,255,.15)}.k-tag-toggle{color:#ffffffb3;width:1.75rem;height:100%}.k-tag-toggle:hover{background:rgba(255,255,255,.2);color:#fff}[data-disabled=true] .k-tag{background-color:var(--color-gray-600)}[data-disabled=true] .k-tag .k-tag-toggle{display:none}.k-topbar{--bg:var(--color-gray-900);position:relative;color:var(--color-white);flex-shrink:0;height:2.5rem;line-height:1;background:var(--bg)}.k-topbar-wrapper{position:relative;display:flex;align-items:center;margin-left:-.75rem;margin-right:-.75rem}[dir=ltr] .k-topbar-wrapper:after{left:100%}[dir=rtl] .k-topbar-wrapper:after{right:100%}.k-topbar-wrapper:after{position:absolute;content:"";height:2.5rem;background:var(--bg);width:3rem}.k-topbar-menu{flex-shrink:0}.k-topbar-menu ul{padding:.5rem 0}.k-topbar .k-button[data-theme]{color:var(--theme-light)}.k-topbar .k-button-text{opacity:1}.k-topbar-menu-button{display:flex;align-items:center}.k-topbar-menu .k-link[aria-current]{color:var(--color-focus);font-weight:500}.k-topbar-button{padding:.75rem;line-height:1;font-size:var(--text-sm)}.k-topbar-button .k-button-text{display:flex}[dir=ltr] .k-topbar-view-button{padding-right:0}[dir=rtl] .k-topbar-view-button{padding-left:0}.k-topbar-view-button{flex-shrink:0;display:flex;align-items:center}[dir=ltr] .k-topbar-view-button .k-icon{margin-right:.5rem}[dir=rtl] .k-topbar-view-button .k-icon{margin-left:.5rem}[dir=ltr] .k-topbar-signals{right:0}[dir=rtl] .k-topbar-signals{left:0}.k-topbar-signals{position:absolute;top:0;background:var(--bg);height:2.5rem;display:flex;align-items:center}.k-topbar-signals:before{position:absolute;content:"";top:-.5rem;bottom:0;width:.5rem;background:-webkit-linear-gradient(inline-start,rgba(17,17,17,0),#111)}.k-topbar-signals .k-button{line-height:1}.k-topbar-notification{font-weight:var(--font-bold);line-height:1;display:flex}@media screen and (max-width:30em){.k-topbar .k-button[data-theme=negative] .k-button-text{display:none}}.k-section,.k-sections{padding-bottom:3rem}.k-section-header{position:relative;display:flex;align-items:baseline;z-index:1}[dir=ltr] .k-section-header .k-headline{padding-right:var(--spacing-3)}[dir=rtl] .k-section-header .k-headline{padding-left:var(--spacing-3)}.k-section-header .k-headline{line-height:1.25rem;min-height:2rem;flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[dir=ltr] .k-section-header .k-button-group{right:0}[dir=rtl] .k-section-header .k-button-group{left:0}.k-section-header .k-button-group{position:absolute;top:calc(-.5rem - 1px)}.k-section-header .k-button-group>.k-button{padding:.75rem;display:inline-flex}.k-fields-issue-headline{margin-bottom:.5rem}.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{margin-bottom:var(--spacing-3);background:var(--color-gray-300);padding:var(--spacing-2) var(--spacing-3);height:var(--field-input-height);border-radius:var(--rounded);font-size:var(--text-sm)}.k-info-section-label{margin-bottom:.5rem}.k-user-profile{background:var(--color-white)}.k-user-profile>.k-view{padding-top:3rem;padding-bottom:3rem;display:flex;align-items:center;line-height:0}[dir=ltr] .k-user-profile .k-button-group{margin-left:.75rem}[dir=rtl] .k-user-profile .k-button-group{margin-right:.75rem}.k-user-profile .k-button-group{overflow:hidden}.k-user-profile .k-button-group .k-button{display:block;padding-top:.25rem;padding-bottom:.25rem;overflow:hidden;white-space:nowrap}.k-user-view-image .k-icon,.k-user-view-image .k-image{width:5rem;height:5rem;border-radius:var(--rounded);line-height:0;overflow:hidden}.k-user-view-image[data-disabled=true]{opacity:1}.k-user-view-image .k-image{display:block}.k-user-view-image .k-button-text{opacity:1}.k-user-name-placeholder{color:var(--color-gray-500);transition:color .3s}.k-header[data-editable=true] .k-user-name-placeholder:hover{color:var(--color-gray-900)}.k-error-view{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.k-error-view-content{line-height:1.5em;max-width:25rem;text-align:center}.k-error-view-icon{color:var(--color-negative);display:inline-block}.k-error-view-content p:not(:last-child){margin-bottom:.75rem}.k-installation-view .k-button{display:block;margin-top:1.5rem}.k-installation-view .k-headline{margin-bottom:.75rem}.k-installation-issues{line-height:1.5em;font-size:var(--text-sm)}[dir=ltr] .k-installation-issues li{padding-left:3.5rem}[dir=rtl] .k-installation-issues li{padding-right:3.5rem}.k-installation-issues li{position:relative;padding:1.5rem;background:var(--color-white)}[dir=ltr] .k-installation-issues .k-icon{left:1.5rem}[dir=rtl] .k-installation-issues .k-icon{right:1.5rem}.k-installation-issues .k-icon{position:absolute;top:calc(1.5rem + 2px)}.k-installation-issues .k-icon svg *{fill:var(--color-negative)}.k-installation-issues li:not(:last-child){margin-bottom:2px}.k-installation-issues li code{font:inherit;color:var(--color-negative)}[dir=ltr] .k-installation-view .k-button[type=submit]{margin-left:-1rem}[dir=rtl] .k-installation-view .k-button[type=submit]{margin-right:-1rem}.k-installation-view .k-button[type=submit]{padding:1rem}.k-languages-view .k-header{margin-bottom:1.5rem}.k-languages-view-section-header{margin-bottom:.5rem}.k-languages-view-section{margin-bottom:3rem}.k-login-fields{position:relative}[dir=ltr] .k-login-toggler{right:0}[dir=rtl] .k-login-toggler{left:0}.k-login-toggler{position:absolute;top:0;z-index:1;text-decoration:underline;font-size:.875rem}.k-login-form label abbr{visibility:hidden}.k-login-buttons{display:flex;align-items:center;justify-content:flex-end;padding:1.5rem 0}[dir=ltr] .k-login-button{margin-right:-1rem}[dir=rtl] .k-login-button{margin-left:-1rem}.k-login-button{padding:.5rem 1rem;font-weight:500;transition:opacity .3s}.k-login-button span{opacity:1}.k-login-button[disabled]{opacity:.25}.k-login-back-button,.k-login-checkbox{display:flex;align-items:center;flex-grow:1}[dir=ltr] .k-login-back-button{margin-left:-1rem}[dir=rtl] .k-login-back-button{margin-right:-1rem}.k-login-checkbox{padding:.5rem 0;font-size:var(--text-sm);cursor:pointer}.k-login-checkbox .k-checkbox-text{opacity:.75;transition:opacity .3s}.k-login-checkbox:focus span,.k-login-checkbox:hover span{opacity:1}.k-password-reset-view .k-user-info{height:38px;margin-bottom:2.25rem;padding:.5rem;background:var(--color-white);border-radius:var(--rounded-xs);box-shadow:var(--shadow)}.k-system-view .k-header{margin-bottom:1.5rem}.k-system-view-section-header{margin-bottom:.5rem;display:flex;justify-content:space-between}.k-system-view-section{margin-bottom:3rem}.k-system-info .k-stat-label{color:var(--theme, var(--color-black))}.k-block-type-code-editor{position:relative;font-size:var(--text-sm);line-height:1.5em;background:#000;border-radius:var(--rounded);padding:.5rem .75rem 3rem;color:#fff;font-family:var(--font-mono)}.k-block-type-code-editor .k-editor{white-space:pre-wrap;line-height:1.75em}[dir=ltr] .k-block-type-code-editor-language{right:0}[dir=ltr] .k-block-type-code-editor-language .k-icon,[dir=rtl] .k-block-type-code-editor-language{left:0}.k-block-type-code-editor-language{font-size:var(--text-sm);position:absolute;bottom:0}[dir=rtl] .k-block-type-code-editor-language .k-icon{right:0}.k-block-type-code-editor-language .k-icon{position:absolute;top:0;height:1.5rem;display:flex;width:2rem;z-index:0}.k-block-type-code-editor-language .k-select-input{position:relative;padding:.325rem .75rem .5rem 2rem;z-index:1;font-size:var(--text-xs)}.k-block-type-default .k-block-title{line-height:1.5em}.k-block-type-gallery ul{display:grid;grid-gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));line-height:0;align-items:center;justify-content:center;cursor:pointer}.k-block-type-gallery-placeholder{background:var(--color-background)}.k-block-type-gallery figcaption{padding-top:.5rem;color:var(--color-gray-600);font-size:var(--text-sm);text-align:center}.k-block-type-heading-input{line-height:1.25em;font-weight:var(--font-bold)}.k-block-type-heading-input[data-level=h1]{font-size:var(--text-3xl);line-height:1.125em}.k-block-type-heading-input[data-level=h2]{font-size:var(--text-2xl)}.k-block-type-heading-input[data-level=h3]{font-size:var(--text-xl)}.k-block-type-heading-input[data-level=h4]{font-size:var(--text-lg)}.k-block-type-heading-input[data-level=h5]{line-height:1.5em;font-size:var(--text-base)}.k-block-type-heading-input[data-level=h6]{line-height:1.5em;font-size:var(--text-sm)}.k-block-type-heading-input .ProseMirror strong{font-weight:700}.k-block-type-image .k-block-figure-container{display:block;text-align:center;line-height:0}.k-block-type-image-auto{max-width:100%;max-height:30rem}.k-block-type-line hr{margin-top:.75rem;margin-bottom:.75rem;border:0;border-top:2px solid var(--color-gray-400)}.k-block-type-markdown-input{position:relative;font-size:var(--text-sm);line-height:1.5em;background:var(--color-background);border-radius:var(--rounded);padding:.5rem .5rem 0;font-family:var(--font-mono)}[dir=ltr] .k-block-type-quote-editor{padding-left:1rem}[dir=rtl] .k-block-type-quote-editor{padding-right:1rem}[dir=ltr] .k-block-type-quote-editor{border-left:2px solid var(--color-black)}[dir=rtl] .k-block-type-quote-editor{border-right:2px solid var(--color-black)}.k-block-type-quote-text{font-size:var(--text-xl);margin-bottom:.25rem;line-height:1.25em}.k-block-type-quote-citation{font-style:italic;font-size:var(--text-sm);color:var(--color-gray-600)}.k-block-type-table-preview{cursor:pointer;border:1px solid var(--color-gray-300);border-spacing:0;border-radius:var(--rounded-sm);overflow:hidden}[dir=ltr] .k-block-type-table-preview td,[dir=ltr] .k-block-type-table-preview th{text-align:left}[dir=rtl] .k-block-type-table-preview td,[dir=rtl] .k-block-type-table-preview th{text-align:right}.k-block-type-table-preview td,.k-block-type-table-preview th{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 [class$=-field-preview],.k-block-type-table-preview td>*{padding:0}.k-block-type-text-input{font-size:var(--text-base);line-height:1.5em;height:100%}.k-block-container-type-text,.k-block-type-text,.k-block-type-text .k-writer .ProseMirror{height:100%}.k-block-container{position:relative;padding:.75rem;background:var(--color-white);border-radius:var(--rounded)}.k-block-container:not(:last-of-type){border-bottom:1px dashed rgba(0,0,0,.1)}.k-block-container:focus{outline:0}.k-block-container[data-batched=true],.k-block-container[data-selected=true]{z-index:2;border-bottom-color:transparent}.k-block-container[data-batched=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:rgba(238,242,246,.375);mix-blend-mode:multiply;border:1px solid var(--color-focus)}.k-block-container[data-selected=true]{box-shadow:var(--color-focus) 0 0 0 1px,var(--color-focus-outline) 0 0 0 3px}[dir=ltr] .k-block-container .k-block-options{right:.75rem}[dir=rtl] .k-block-container .k-block-options{left:.75rem}.k-block-container .k-block-options{display:none;position:absolute;top:0;margin-top:calc(-1.75rem + 2px)}.k-block-container[data-last-in-batch=true]>.k-block-options,.k-block-container[data-selected=true]>.k-block-options{display:flex}.k-block-container[data-hidden=true] .k-block{opacity:.25}.k-drawer-options .k-button[data-disabled=true]{vertical-align:middle;display:inline-grid}[data-disabled=true] .k-block-container{background:var(--color-background)}.k-block-importer.k-dialog{background:#313740;color:var(--color-white)}.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-gray-400)}.k-block-importer label kbd{background:rgba(0,0,0,.5);font-family:var(--font-mono);letter-spacing:.1em;padding:.25rem;border-radius:var(--rounded);margin:0 .25rem}.k-block-importer textarea{width:100%;height:20rem;background:0 0;font:inherit;color:var(--color-white);border:0;padding:var(--spacing-6);resize:none}.k-block-importer textarea:focus{outline:0}.k-blocks{background:var(--color-white);box-shadow:var(--shadow);border-radius:var(--rounded)}[data-disabled=true] .k-blocks{background:var(--color-background)}.k-blocks[data-multi-select-key=true] .k-block-container>*{pointer-events:none}.k-blocks[data-empty=true]{padding:0;background:0 0;box-shadow:none}.k-blocks .k-sortable-ghost{outline:2px solid var(--color-focus);box-shadow:#11111140 0 5px 10px;cursor:grabbing;cursor:-webkit-grabbing}.k-blocks-list>.k-blocks-empty{display:flex;align-items:center}.k-blocks-list>.k-blocks-empty:not(:only-child){display:none}.k-block-figure{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-gray-600);font-size:var(--text-sm);text-align:center}.k-block-figure-empty.k-button{display:flex;width:100%;height:6rem;border-radius:var(--rounded-sm);align-items:center;justify-content:center;color:var(--color-gray-600);background:var(--color-background)}.k-block-options{display:flex;align-items:center;background:var(--color-white);z-index:var(--z-dropdown);box-shadow:#0000001a -2px 0 5px,var(--shadow),var(--shadow-xl);color:var(--color-black);border-radius:var(--rounded)}[dir=ltr] .k-block-options-button{border-right:1px solid var(--color-background)}[dir=rtl] .k-block-options-button{border-left:1px solid var(--color-background)}.k-block-options-button{--block-options-button-size:30px;width:var(--block-options-button-size);height:var(--block-options-button-size);line-height:1;display:inline-flex;align-items:center;justify-content:center}[dir=ltr] .k-block-options-button:first-child{border-top-left-radius:var(--rounded)}[dir=rtl] .k-block-options-button:first-child{border-top-right-radius:var(--rounded)}[dir=ltr] .k-block-options-button:first-child{border-bottom-left-radius:var(--rounded)}[dir=rtl] .k-block-options-button:first-child{border-bottom-right-radius:var(--rounded)}[dir=ltr] .k-block-options-button:last-child{border-top-right-radius:var(--rounded)}[dir=rtl] .k-block-options-button:last-child{border-top-left-radius:var(--rounded)}[dir=ltr] .k-block-options-button:last-child{border-bottom-right-radius:var(--rounded)}[dir=rtl] .k-block-options-button:last-child{border-bottom-left-radius:var(--rounded)}[dir=ltr] .k-block-options-button:last-of-type{border-right:0}[dir=rtl] .k-block-options-button:last-of-type{border-left:0}.k-block-options-button[aria-current]{color:var(--color-focus)}.k-block-options-button:hover{background:var(--color-gray-100)}.k-block-options .k-dropdown-content{margin-top:.5rem}.k-block-selector.k-dialog{background:var(--color-dark);color:var(--color-white)}.k-block-selector .k-headline{margin-bottom:1rem}.k-block-selector details:not(:last-of-type){margin-bottom:1.5rem}.k-block-selector summary{font-size:var(--text-xs);cursor:pointer;color:var(--color-gray-400)}.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-green-400)}.k-block-types{display:grid;grid-gap:2px;margin-top:.75rem;grid-template-columns:repeat(1,1fr)}[dir=ltr] .k-block-types .k-button{text-align:left}[dir=rtl] .k-block-types .k-button{text-align:right}.k-block-types .k-button{display:flex;align-items:flex-start;border-radius:var(--rounded);background:rgba(0,0,0,.5);width:100%;padding:0 .75rem 0 0;line-height:1.5em}.k-block-types .k-button:focus{outline:2px solid var(--color-green-300)}.k-block-types .k-button .k-button-text{padding:.5rem 0 .5rem .5rem}.k-block-types .k-button .k-icon{width:38px;height:38px}.k-clipboard-hint{padding-top:1.5rem;font-size:var(--text-xs);color:var(--color-gray-400)}.k-clipboard-hint kbd{background:rgba(0,0,0,.5);font-family:var(--font-mono);letter-spacing:.1em;padding:.25rem;border-radius:var(--rounded);margin:0 .25rem}[dir=ltr] .k-block-title{padding-right:.75rem}[dir=rtl] .k-block-title{padding-left:.75rem}.k-block-title{display:flex;align-items:center;min-width:0;font-size:var(--text-sm);line-height:1}[dir=ltr] .k-block-icon{margin-right:.5rem}[dir=rtl] .k-block-icon{margin-left:.5rem}.k-block-icon{width:1rem;color:var(--color-gray-500)}[dir=ltr] .k-block-name{margin-right:.5rem}[dir=rtl] .k-block-name{margin-left:.5rem}.k-block-label{color:var(--color-gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.k-bubbles-field-preview{padding:.325rem .75rem}.k-text-field-preview{padding:.325rem .75rem;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.k-url-field-preview{padding:.325rem .75rem;overflow-x:hidden;text-overflow:ellipsis}.k-url-field-preview[data-link]{color:var(--color-focus)}.k-url-field-preview a{text-decoration:underline;transition:color .3s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.k-url-field-preview a:hover{color:var(--color-black)}.k-flag-field-preview{height:var(--table-row-height);width:var(--table-row-height);display:flex;justify-content:center;align-items:center}.k-html-field-preview{padding:.325rem .75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5em}.k-html-field-preview p:not(:last-child){margin-bottom:1.5em}[dir=ltr] .k-html-field-preview ol,[dir=ltr] .k-html-field-preview ul{margin-left:1rem}[dir=rtl] .k-html-field-preview ol,[dir=rtl] .k-html-field-preview ul{margin-right:1rem}.k-html-field-preview ul>li{list-style:disc}.k-html-field-preview ol ul>li,.k-html-field-preview ul ul>li{list-style:circle}.k-html-field-preview ol>li{list-style:decimal}.k-html-field-preview ol>li::marker{color:var(--color-gray-500);font-size:var(--text-xs)}.k-toggle-field-preview label{padding:0 .25rem 0 .75rem;display:flex;height:38px;cursor:pointer;overflow:hidden;white-space:nowrap}[dir=ltr] .k-toggle-field-preview .k-toggle-input-label{padding-left:.5rem}[dir=ltr] [data-align=right] .k-toggle-field-preview .k-toggle-input-label,[dir=rtl] .k-toggle-field-preview .k-toggle-input-label{padding-right:.5rem}[dir=rtl] [data-align=right] .k-toggle-field-preview .k-toggle-input-label{padding-left:.5rem}[dir=ltr] .k-toggle-field-preview .k-toggle-input{padding-left:.75rem;padding-right:.25rem}.k-toggle-field-preview .k-toggle-input{padding-top:0;padding-bottom:0}[dir=ltr] [data-align=right] .k-toggle-field-preview .k-toggle-input,[dir=rtl] .k-toggle-field-preview .k-toggle-input{padding-left:.25rem;padding-right:.75rem}[dir=rtl] [data-align=right] .k-toggle-field-preview .k-toggle-input{padding-right:.25rem;padding-left:.75rem}[data-align=right] .k-toggle-field-preview .k-toggle-input{flex-direction:row-reverse}:root{--color-backdrop:rgba(0, 0, 0, .6);--color-black:#000;--color-dark:#313740;--color-light:var(--color-gray-200);--color-white:#fff;--color-gray-100:#f7f7f7;--color-gray-200:#efefef;--color-gray-300:#ddd;--color-gray-400:#ccc;--color-gray-500:#999;--color-gray-600:#777;--color-gray-700:#555;--color-gray-800:#333;--color-gray-900:#111;--color-gray:var(--color-gray-600);--color-red-200:#edc1c1;--color-red-300:#e3a0a0;--color-red-400:#d16464;--color-red-600:#ce1f1f;--color-red:var(--color-red-600);--color-orange-200:#f2d4bf;--color-orange-300:#ebbe9e;--color-orange-400:#de935f;--color-orange-600:#f4861f;--color-orange:var(--color-orange-600);--color-yellow-200:#f9e8c7;--color-yellow-300:#f7e2b8;--color-yellow-400:#f0c674;--color-yellow-600:#cca000;--color-yellow:var(--color-yellow-600);--color-green-200:#dce5c2;--color-green-300:#c6d49d;--color-green-400:#a7bd68;--color-green-600:#678f00;--color-green:var(--color-green-600);--color-aqua-200:#d0e5e2;--color-aqua-300:#bbd9d5;--color-aqua-400:#8abeb7;--color-aqua-600:#398e93;--color-aqua:var(--color-aqua-600);--color-blue-200:#cbd7e5;--color-blue-300:#b1c2d8;--color-blue-400:#7e9abf;--color-blue-600:#4271ae;--color-blue:var(--color-blue-600);--color-purple-200:#e0d4e4;--color-purple-300:#d4c3d9;--color-purple-400:#b294bb;--color-purple-600:#9c48b9;--color-purple:var(--color-purple-600);--container:80rem;--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;--font-normal:400;--font-bold:600;--leading-none:1;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--rounded-xs:1px;--rounded-sm:.125rem;--rounded:.25rem;--rounded-md:.375rem;--shadow:0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md:0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--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, .04);--shadow-outline:currentColor 0 0 0 2px;--shadow-inset:inset 0 2px 4px 0 rgba(0, 0, 0, .06);--spacing-0:0;--spacing-px:1px;--spacing-2px:2px;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--spacing-36:9rem;--text-xs:.75rem;--text-sm:.875rem;--text-base: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;--color-background:var(--color-light);--color-border:var(--color-gray-400);--color-focus:var(--color-blue-600);--color-focus-light:var(--color-blue-400);--color-focus-outline:rgba(113, 143, 183, .25);--color-negative:var(--color-red-600);--color-negative-light:var(--color-red-400);--color-negative-outline:rgba(212, 110, 110, .25);--color-notice:var(--color-orange-600);--color-notice-light:var(--color-orange-400);--color-positive:var(--color-green-600);--color-positive-light:var(--color-green-400);--color-positive-outline:rgba(128, 149, 65, .25);--color-text:var(--color-gray-900);--color-text-light:var(--color-gray-600);--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;--bg-pattern:repeating-conic-gradient( rgba(0, 0, 0, 0) 0% 25%, rgba(0, 0, 0, .2) 0% 50% ) 50% / 20px 20px;--shadow-sticky:rgba(0, 0, 0, .05) 0 2px 5px;--shadow-dropdown:var(--shadow-lg);--shadow-item:var(--shadow);--field-input-padding:.5rem;--field-input-height:2.25rem;--field-input-line-height:1.25rem;--field-input-font-size:var(--text-base);--field-input-color-before:var(--color-gray-700);--field-input-color-after:var(--color-gray-700);--field-input-border:1px solid var(--color-border);--field-input-focus-border:1px solid var(--color-focus);--field-input-focus-outline:2px solid var(--color-focus-outline);--field-input-invalid-border:1px solid var(--color-negative-outline);--field-input-invalid-outline:0;--field-input-invalid-focus-border:1px solid var(--color-negative);--field-input-invalid-focus-outline:2px solid var(--color-negative-outline);--field-input-background:var(--color-white);--field-input-disabled-color:var(--color-gray-500);--field-input-disabled-background:var(--color-white);--field-input-disabled-border:1px solid var(--color-gray-300);--font-family-sans:var(--font-sans);--font-family-mono:var(--font-mono);--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);--box-shadow-dropdown:var(--shadow-dropdown);--box-shadow-item:var(--shadow);--box-shadow-focus:var(--shadow-xl)}*,:after,:before{margin:0;padding:0;box-sizing:border-box}noscript{padding:1.5rem;display:flex;align-items:center;justify-content:center;height:100vh;text-align:center}html{font-family:var(--font-sans);background:var(--color-background)}body,html{color:var(--color-gray-900);height:100%;overflow:hidden}a{color:inherit;text-decoration:none}li{list-style:none}b,strong{font-weight:var(--font-bold)}@keyframes LoadingCursor{to{cursor:progress}}@keyframes Spin{to{transform:rotate(360deg)}}[data-align=left]{--align:start}[data-align=center]{--align:center}[data-align=right]{--align:end}[data-invalid=true]{border:1px solid var(--color-negative-outline);box-shadow:var(--color-negative-outline) 0 0 3px 2px}[data-invalid=true]:focus-within{border:var(--field-input-invalid-focus-border)!important;box-shadow:var(--color-negative-outline) 0 0 0 2px!important}[data-tabbed=true]{box-shadow:var(--shadow-outline);border-radius:var(--rounded)}[data-theme=positive],[data-theme=success]{--theme:var(--color-positive);--theme-light:var(--color-positive-light);--theme-bg:var(--color-green-300)}[data-theme=error],[data-theme=negative]{--theme:var(--color-negative);--theme-light:var(--color-negative-light);--theme-bg:var(--color-red-300)}[data-theme=notice]{--theme:var(--color-notice);--theme-light:var(--color-notice-light);--theme-bg:var(--color-orange-300)}[data-theme=info]{--theme:var(--color-focus);--theme-light:var(--color-focus-light);--theme-bg:var(--color-blue-200)}.scroll-x,.scroll-x-auto,.scroll-y,.scroll-y-auto{-webkit-overflow-scrolling:touch;transform:translateZ(0)}.scroll-x,.scroll-x-auto{overflow-x:scroll;overflow-y:hidden}.scroll-x-auto{overflow-x:auto}.scroll-y,.scroll-y-auto{overflow-x:hidden;overflow-y:scroll}.scroll-y-auto{overflow-y:auto}.input-hidden{position:absolute;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:0;height:0;opacity:0}.k-offscreen,.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}
+.k-dialog{position:relative;background:var(--color-background);width:100%;box-shadow:var(--shadow-lg);border-radius:var(--rounded-md);line-height:1;max-height:calc(100vh - 3rem);margin:1.5rem;display:flex;flex-direction:column}@media screen and (min-width:20rem){.k-dialog[data-size=small]{width:20rem}}@media screen and (min-width:22rem){.k-dialog[data-size=default]{width:22rem}}@media screen and (min-width:30rem){.k-dialog[data-size=medium]{width:30rem}}@media screen and (min-width:40rem){.k-dialog[data-size=large]{width:40rem}}[dir=ltr] .k-dialog-notification,[dir=rtl] .k-dialog-notification{border-top-right-radius:var(--rounded);border-top-left-radius:var(--rounded)}.k-dialog-notification{padding:.75rem 1.5rem;background:var(--color-gray-900);width:100%;margin-top:-1px;line-height:1.25rem;color:var(--color-white);display:flex;flex-shrink:0;align-items:center}.k-dialog-notification[data-theme]{background:var(--theme-light);color:var(--color-black)}.k-dialog-notification p{flex-grow:1;word-wrap:break-word;overflow:hidden}[dir=ltr] .k-dialog-notification .k-button{margin-left:1rem}[dir=rtl] .k-dialog-notification .k-button{margin-right:1rem}.k-dialog-notification .k-button{display:flex}.k-dialog-body{padding:1.5rem}.k-dialog-body .k-fieldset{padding-bottom:.5rem}.k-dialog-footer{padding:0;border-top:1px solid var(--color-gray-300);line-height:1;flex-shrink:0}.k-dialog-footer .k-button-group{display:flex;margin:0;justify-content:space-between}.k-dialog-footer .k-button-group .k-button{padding:.75rem 1rem;line-height:1.25rem}[dir=ltr] .k-dialog-footer .k-button-group .k-button:first-child{text-align:left}[dir=rtl] .k-dialog-footer .k-button-group .k-button:first-child{text-align:right}[dir=ltr] .k-dialog-footer .k-button-group .k-button:first-child{padding-left:1.5rem}[dir=rtl] .k-dialog-footer .k-button-group .k-button:first-child{padding-right:1.5rem}[dir=ltr] .k-dialog-footer .k-button-group .k-button:last-child{text-align:right}[dir=rtl] .k-dialog-footer .k-button-group .k-button:last-child{text-align:left}[dir=ltr] .k-dialog-footer .k-button-group .k-button:last-child{padding-right:1.5rem}[dir=rtl] .k-dialog-footer .k-button-group .k-button:last-child{padding-left:1.5rem}.k-dialog .k-pagination{margin-bottom:-1.5rem;display:flex;justify-content:center;align-items:center}.k-dialog-search{margin-bottom:.75rem}.k-dialog-search.k-input{background:rgba(0,0,0,.075);padding:0 1rem;height:36px;border-radius:var(--rounded)}.k-error-details{background:var(--color-white);display:block;overflow:auto;padding:1rem;font-size:var(--text-sm);line-height:1.25em;margin-top:.75rem}.k-error-details dt{color:var(--color-negative-light);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-background);padding-bottom:.25rem;margin-bottom:.25rem}.k-files-dialog .k-list-item{cursor:pointer}[dir=ltr] .k-pages-dialog-navbar{padding-right:38px}[dir=rtl] .k-pages-dialog-navbar{padding-left:38px}.k-pages-dialog-navbar{display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.k-pages-dialog-navbar .k-button{width:38px}.k-pages-dialog-navbar .k-button[disabled]{opacity:0}.k-pages-dialog-navbar .k-headline{flex-grow:1;text-align:center}.k-pages-dialog .k-list-item{cursor:pointer}.k-pages-dialog .k-list-item .k-button[data-theme=disabled],.k-pages-dialog .k-list-item .k-button[disabled]{opacity:.25}.k-pages-dialog .k-list-item .k-button[data-theme=disabled]:hover{opacity:1}.k-users-dialog .k-list-item{cursor:pointer}.k-drawer{--drawer-header-height:2.5rem;--drawer-header-padding:1.5rem;position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-toolbar);display:flex;align-items:stretch;justify-content:flex-end;background:rgba(0,0,0,.2)}.k-drawer-box{position:relative;flex-basis:50rem;display:flex;flex-direction:column;background:var(--color-background);box-shadow:var(--shadow-xl)}[dir=ltr] .k-drawer-header{padding-left:var(--drawer-header-padding)}[dir=rtl] .k-drawer-header{padding-right:var(--drawer-header-padding)}.k-drawer-header{flex-shrink:0;height:var(--drawer-header-height);display:flex;align-items:center;line-height:1;justify-content:space-between;background:var(--color-white);font-size:var(--text-sm)}.k-drawer-title{padding:0 .75rem}[dir=ltr] .k-drawer-breadcrumb,[dir=ltr] .k-drawer-title{margin-left:-.75rem}[dir=rtl] .k-drawer-breadcrumb,[dir=rtl] .k-drawer-title{margin-right:-.75rem}.k-drawer-breadcrumb,.k-drawer-title{display:flex;flex-grow:1;align-items:center;min-width:0;font-size:var(--text-sm);font-weight:var(--font-normal)}[dir=ltr] .k-drawer-breadcrumb li:not(:last-child) .k-button:after{right:-.75rem}[dir=rtl] .k-drawer-breadcrumb li:not(:last-child) .k-button:after{left:-.75rem}.k-drawer-breadcrumb li:not(:last-child) .k-button:after{position:absolute;width:1.5rem;display:inline-flex;justify-content:center;align-items:center;content:"\203a";color:var(--color-gray-500);height:var(--drawer-header-height)}[dir=ltr] .k-drawer-breadcrumb .k-icon,[dir=ltr] .k-drawer-title .k-icon{margin-right:.5rem}[dir=rtl] .k-drawer-breadcrumb .k-icon,[dir=rtl] .k-drawer-title .k-icon{margin-left:.5rem}.k-drawer-breadcrumb .k-icon,.k-drawer-title .k-icon{width:1rem;color:var(--color-gray-500)}.k-drawer-breadcrumb .k-button{display:inline-flex;align-items:center;height:var(--drawer-header-height);padding-left:.75rem;padding-right:.75rem}.k-drawer-breadcrumb .k-button-text{opacity:1}[dir=ltr] .k-drawer-breadcrumb .k-button .k-button-icon~.k-button-text{padding-left:0}[dir=rtl] .k-drawer-breadcrumb .k-button .k-button-icon~.k-button-text{padding-right:0}[dir=ltr] .k-drawer-tabs{margin-right:.75rem}[dir=rtl] .k-drawer-tabs{margin-left:.75rem}.k-drawer-tabs{display:flex;align-items:center;line-height:1}.k-drawer-tab.k-button{height:var(--drawer-header-height);padding-left:.75rem;padding-right:.75rem;display:flex;align-items:center;font-size:var(--text-xs)}.k-drawer-tab.k-button[aria-current]:after{position:absolute;bottom:-1px;left:.75rem;right:.75rem;content:"";background:var(--color-black);height:2px}[dir=ltr] .k-drawer-options{padding-right:.75rem}[dir=rtl] .k-drawer-options{padding-left:.75rem}.k-drawer-option.k-button{width:var(--drawer-header-height);height:var(--drawer-header-height);color:var(--color-gray-500);line-height:1}.k-drawer-option.k-button:focus,.k-drawer-option.k-button:hover{color:var(--color-black)}.k-drawer-body{padding:1.5rem;flex-grow:1;background:var(--color-background)}.k-drawer[data-nested=true]{background:0 0}.k-drawer-body .k-table th,.k-drawer-body .k-textarea-input:focus-within .k-toolbar{top:-1.5rem}.k-calendar-input{--cell-padding:.25rem .5rem;padding:.5rem;color:var(--color-light);border-radius:var(--rounded-xs)}.k-calendar-table{table-layout:fixed;width:100%;min-width:15rem;padding-top:.5rem}.k-calendar-input>nav{display:flex;direction:ltr}.k-calendar-input>nav .k-button{padding:.5rem}.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{padding:0 .5rem;font-weight:var(--font-normal);font-size:var(--text-sm)}.k-calendar-selects .k-select-input:focus-within{color:var(--color-focus-light)!important}.k-calendar-input th{padding:.5rem 0;color:var(--color-gray-500);font-size:var(--text-xs);font-weight:400;text-align:center}.k-calendar-day .k-button{width:2rem;height:2rem;margin-left:auto;margin-right:auto;color:var(--color-white);line-height:1.75rem;display:flex;justify-content:center;border-radius:50%;border:2px solid transparent}.k-calendar-day .k-button .k-button-text{opacity:1}.k-calendar-table .k-button:hover{color:var(--color-white)}.k-calendar-day:hover .k-button:not([data-disabled=true]){border-color:#ffffff40}.k-calendar-day[aria-current=date] .k-button{text-decoration:underline}.k-calendar-day[aria-selected=date] .k-button{border-color:currentColor;font-weight:600;color:var(--color-focus-light)}.k-calendar-today{text-align:center;padding-top:.5rem}.k-calendar-today .k-button{font-size:var(--text-xs);padding:1rem;text-decoration:underline}.k-calendar-today .k-button-text{opacity:1;vertical-align:baseline}.k-counter{font-size:var(--text-xs);color:var(--color-gray-900);font-weight:var(--font-bold)}.k-counter[data-invalid=true]{box-shadow:none;border:0;color:var(--color-negative)}[dir=ltr] .k-counter-rules{padding-left:.5rem}[dir=rtl] .k-counter-rules{padding-right:.5rem}.k-counter-rules{color:var(--color-gray-600);font-weight:var(--font-normal)}.k-form-submitter{display:none}.k-form-buttons[data-theme]{background:var(--theme-light)}.k-form-buttons .k-view{display:flex;justify-content:space-between;align-items:center}.k-form-button.k-button{font-weight:500;white-space:nowrap;line-height:1;height:2.5rem;display:flex;padding:0 1rem;align-items:center}[dir=ltr] .k-form-button:first-child{margin-left:-1rem}[dir=rtl] .k-form-button:first-child{margin-right:-1rem}[dir=ltr] .k-form-button:last-child{margin-right:-1rem}[dir=rtl] .k-form-button:last-child{margin-left:-1rem}[dir=ltr] .k-form-lock-info{margin-right:3rem}[dir=rtl] .k-form-lock-info{margin-left:3rem}.k-form-lock-info{display:flex;font-size:var(--text-sm);align-items:center;line-height:1.5em;padding:.625rem 0}[dir=ltr] .k-form-lock-info>.k-icon{margin-right:.5rem}[dir=rtl] .k-form-lock-info>.k-icon{margin-left:.5rem}.k-form-lock-buttons{display:flex;flex-shrink:0}.k-form-lock-loader{animation:Spin 4s linear infinite}.k-form-lock-loader .k-icon-loader{display:flex}.k-form-indicator-toggle{color:var(--color-notice-light)}.k-form-indicator-info{font-size:var(--text-sm);font-weight:var(--font-bold);padding:.75rem 1rem .25rem;line-height:1.25em;width:15rem}.k-field-label{font-weight:var(--font-bold);display:block;padding:0 0 .75rem;flex-grow:1;line-height:1.25rem}[dir=ltr] .k-field-label abbr{padding-left:.25rem}[dir=rtl] .k-field-label abbr{padding-right:.25rem}.k-field-label abbr{text-decoration:none;color:var(--color-gray-500)}.k-field-header{position:relative;display:flex;align-items:baseline}[dir=ltr] .k-field-options{right:0}[dir=rtl] .k-field-options{left:0}.k-field-options{position:absolute;top:calc(-.5rem - 1px)}.k-field-options.k-button-group .k-dropdown{height:auto}.k-field-options.k-button-group .k-field-options-button.k-button{padding:.75rem;display:flex}.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:focus-within>.k-field-header>.k-field-counter{display:block}.k-field-help{padding-top:.5rem}.k-field-add-item-button{display:flex;align-items:center;width:100%;color:var(--color-gray-500);justify-content:center;padding:.75rem 0}.k-field-add-item-button:hover{color:var(--color-black)}.k-fieldset{border:0}.k-fieldset .k-grid{grid-row-gap:2.25rem}@media screen and (min-width:30em){.k-fieldset .k-grid{grid-column-gap:1.5rem}}.k-sections>.k-column[data-width="1/3"] .k-fieldset .k-grid,.k-sections>.k-column[data-width="1/4"] .k-fieldset .k-grid{grid-template-columns:repeat(1,1fr)}.k-sections>.k-column[data-width="1/3"] .k-fieldset .k-grid .k-column,.k-sections>.k-column[data-width="1/4"] .k-fieldset .k-grid .k-column{grid-column-start:initial}.k-input{display:flex;align-items:center;line-height:1;border:0;outline:0;background:0 0}.k-input-element{flex-grow:1}.k-input-icon{display:flex;justify-content:center;align-items:center;line-height:0}.k-input[data-disabled=true]{pointer-events:none}[data-disabled=true] .k-input-icon{color:var(--color-gray-600)}.k-input[data-theme=field]{line-height:1;border:var(--field-input-border);background:var(--field-input-background);border-radius:var(--rounded)}.k-input[data-theme=field]:focus-within{border:var(--field-input-focus-border);box-shadow:var(--color-focus-outline) 0 0 0 2px}.k-input[data-theme=field][data-disabled=true]{background:var(--color-background)}.k-input[data-theme=field] .k-input-icon{width:var(--field-input-height);align-self:stretch;display:flex;align-items:center;flex-shrink:0}.k-input[data-theme=field] .k-input-after,.k-input[data-theme=field] .k-input-before{align-self:stretch;display:flex;align-items:center;flex-shrink:0;padding:0 var(--field-input-padding)}[dir=ltr] .k-input[data-theme=field] .k-input-before{padding-right:0}[dir=ltr] .k-input[data-theme=field] .k-input-after,[dir=rtl] .k-input[data-theme=field] .k-input-before{padding-left:0}.k-input[data-theme=field] .k-input-before{color:var(--field-input-color-before)}[dir=rtl] .k-input[data-theme=field] .k-input-after{padding-right:0}.k-input[data-theme=field] .k-input-after{color:var(--field-input-color-after)}.k-input[data-theme=field] .k-input-icon>.k-dropdown{width:100%;height:100%}.k-input[data-theme=field] .k-input-icon-button{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.k-input[data-theme=field] .k-number-input,.k-input[data-theme=field] .k-select-input,.k-input[data-theme=field] .k-text-input{padding:var(--field-input-padding);line-height:var(--field-input-line-height);border-radius:var(--rounded)}.k-input[data-theme=field] .k-date-input .k-select-input,.k-input[data-theme=field] .k-time-input .k-select-input{padding-left:0;padding-right:0}[dir=ltr] .k-input[data-theme=field] .k-date-input .k-select-input:first-child,[dir=ltr] .k-input[data-theme=field] .k-time-input .k-select-input:first-child{padding-left:var(--field-input-padding)}[dir=rtl] .k-input[data-theme=field] .k-date-input .k-select-input:first-child,[dir=rtl] .k-input[data-theme=field] .k-time-input .k-select-input:first-child{padding-right:var(--field-input-padding)}.k-input[data-theme=field] .k-date-input .k-select-input:focus-within,.k-input[data-theme=field] .k-time-input .k-select-input:focus-within{color:var(--color-focus);font-weight:var(--font-bold)}[dir=ltr] .k-input[data-theme=field].k-time-input .k-time-input-meridiem{padding-left:var(--field-input-padding)}[dir=rtl] .k-input[data-theme=field].k-time-input .k-time-input-meridiem{padding-right:var(--field-input-padding)}.k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input li,.k-input[data-theme=field][data-type=checkboxes] .k-radio-input li,.k-input[data-theme=field][data-type=radio] .k-checkboxes-input li,.k-input[data-theme=field][data-type=radio] .k-radio-input li{min-width:0;overflow-wrap:break-word}[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-input-before{border-right:1px solid var(--color-background)}[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-input-element+.k-input-after,[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-input-element+.k-input-icon,[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-input-before{border-left:1px solid var(--color-background)}[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input li,[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-input-element+.k-input-after,[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-input-element+.k-input-icon{border-right:1px solid var(--color-background)}.k-input[data-theme=field][data-type=checkboxes] .k-input-element{overflow:hidden}[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input{margin-right:-1px}[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input{margin-left:-1px}.k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input{display:grid;grid-template-columns:1fr;margin-bottom:-1px}@media screen and (min-width:65em){.k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input{grid-template-columns:repeat(var(--columns),1fr)}}[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input li{border-left:1px solid var(--color-background)}.k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input li,.k-input[data-theme=field][data-type=radio] .k-radio-input li{border-bottom:1px solid var(--color-background)}.k-input[data-theme=field][data-type=checkboxes] .k-checkboxes-input label{display:block;line-height:var(--field-input-line-height);padding:var(--field-input-padding) var(--field-input-padding)}[dir=ltr] .k-input[data-theme=field][data-type=checkboxes] .k-checkbox-input-icon,[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-radio-input label:before{left:var(--field-input-padding)}[dir=rtl] .k-input[data-theme=field][data-type=checkboxes] .k-checkbox-input-icon,[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-radio-input label:before{right:var(--field-input-padding)}.k-input[data-theme=field][data-type=checkboxes] .k-checkbox-input-icon{top:calc((var(--field-input-height) - var(--field-input-font-size))/2);margin-top:0}[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-input-before{border-right:1px solid var(--color-background)}[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-input-element+.k-input-after,[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-input-element+.k-input-icon,[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-input-before{border-left:1px solid var(--color-background)}[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-radio-input li,[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-input-element+.k-input-after,[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-input-element+.k-input-icon{border-right:1px solid var(--color-background)}.k-input[data-theme=field][data-type=radio] .k-input-element{overflow:hidden}[dir=ltr] .k-input[data-theme=field][data-type=radio] .k-radio-input{margin-right:-1px}[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-radio-input{margin-left:-1px}.k-input[data-theme=field][data-type=radio] .k-radio-input{display:grid;grid-template-columns:1fr;margin-bottom:-1px}@media screen and (min-width:65em){.k-input[data-theme=field][data-type=radio] .k-radio-input{grid-template-columns:repeat(var(--columns),1fr)}}[dir=rtl] .k-input[data-theme=field][data-type=radio] .k-radio-input li{border-left:1px solid var(--color-background)}.k-input[data-theme=field][data-type=radio] .k-radio-input label{display:block;flex-grow:1;min-height:var(--field-input-height);line-height:var(--field-input-line-height);padding:calc((var(--field-input-height) - var(--field-input-line-height))/2) var(--field-input-padding)}.k-input[data-theme=field][data-type=radio] .k-radio-input label:before{top:calc((var(--field-input-height) - 1rem)/2);margin-top:-1px}.k-input[data-theme=field][data-type=radio] .k-radio-input .k-radio-input-info{display:block;font-size:var(--text-sm);color:var(--color-gray-600);line-height:var(--field-input-line-height);padding-top:calc(var(--field-input-line-height)/10)}.k-input[data-theme=field][data-type=radio] .k-radio-input .k-icon{width:var(--field-input-height);height:var(--field-input-height);display:flex;align-items:center;justify-content:center}.k-input[data-theme=field][data-type=range] .k-range-input{padding:var(--field-input-padding)}.k-input[data-theme=field][data-type=multiselect],.k-input[data-theme=field][data-type=select]{position:relative}[dir=ltr] .k-input[data-theme=field][data-type=select] .k-input-icon{right:0}[dir=rtl] .k-input[data-theme=field][data-type=select] .k-input-icon{left:0}.k-input[data-theme=field][data-type=select] .k-input-icon{position:absolute;top:0;bottom:0}.k-input[data-theme=field][data-type=tags] .k-tags-input{padding:.25rem .25rem 0}[dir=ltr] .k-input[data-theme=field][data-type=tags] .k-tag{margin-right:.25rem}[dir=rtl] .k-input[data-theme=field][data-type=tags] .k-tag{margin-left:.25rem}.k-input[data-theme=field][data-type=tags] .k-tag{margin-bottom:.25rem;height:auto;min-height:1.75rem;font-size:var(--text-sm)}.k-input[data-theme=field][data-type=tags] .k-tags-input input{font-size:var(--text-sm);padding:0 .25rem;height:1.75rem;line-height:1;margin-bottom:.25rem}.k-input[data-theme=field][data-type=tags] .k-tags-input .k-dropdown-content{top:calc(100% + .5rem + 2px)}.k-input[data-theme=field][data-type=tags] .k-tags-input .k-dropdown-content[data-dropup]{top:calc(100% + .5rem + 2px);bottom:initial;margin-bottom:initial}.k-input[data-theme=field][data-type=multiselect] .k-multiselect-input{padding:.25rem 2rem 0 .25rem;min-height:2.25rem}[dir=ltr] .k-input[data-theme=field][data-type=multiselect] .k-tag{margin-right:.25rem}[dir=rtl] .k-input[data-theme=field][data-type=multiselect] .k-tag{margin-left:.25rem}.k-input[data-theme=field][data-type=multiselect] .k-tag{margin-bottom:.25rem;height:1.75rem;font-size:var(--text-sm)}[dir=ltr] .k-input[data-theme=field][data-type=multiselect] .k-input-icon{right:0}[dir=rtl] .k-input[data-theme=field][data-type=multiselect] .k-input-icon{left:0}.k-input[data-theme=field][data-type=multiselect] .k-input-icon{position:absolute;top:0;bottom:0;pointer-events:none}.k-input[data-theme=field][data-type=textarea] .k-textarea-input-native{padding:.25rem var(--field-input-padding);line-height:1.5rem}[dir=ltr] .k-input[data-theme=field][data-type=toggle] .k-input-before{padding-right:calc(var(--field-input-padding)/2)}[dir=rtl] .k-input[data-theme=field][data-type=toggle] .k-input-before{padding-left:calc(var(--field-input-padding)/2)}[dir=ltr] .k-input[data-theme=field][data-type=toggle] .k-toggle-input{padding-left:var(--field-input-padding)}[dir=rtl] .k-input[data-theme=field][data-type=toggle] .k-toggle-input{padding-right:var(--field-input-padding)}.k-input[data-theme=field][data-type=toggle] .k-toggle-input-label{padding:0 var(--field-input-padding)0 .75rem;line-height:var(--field-input-height)}.k-login-code-form .k-user-info{height:38px;margin-bottom:2.25rem;padding:.5rem;background:var(--color-white);border-radius:var(--rounded-xs);box-shadow:var(--shadow)}.k-times{padding:var(--spacing-4) var(--spacing-6);display:grid;line-height:1;grid-template-columns:1fr 1fr;grid-gap:var(--spacing-6)}.k-times .k-icon{width:1rem;margin-bottom:var(--spacing-2)}.k-times-slot .k-button{padding:var(--spacing-1) var(--spacing-3) var(--spacing-1)0;font-variant-numeric:tabular-nums;white-space:nowrap}.k-times .k-times-slot hr{position:relative;opacity:1;margin:var(--spacing-2)0;border:0;height:1px;top:1px;background:var(--color-dark)}[dir=ltr] .k-upload input{left:-3000px}[dir=rtl] .k-upload input{right:-3000px}.k-upload input{position:absolute;top:0}.k-upload-dialog .k-headline{margin-bottom:.75rem}.k-upload-error-list,.k-upload-list{line-height:1.5em;font-size:var(--text-sm)}.k-upload-list-filename{color:var(--color-gray-600)}.k-upload-error-list li{padding:.75rem;background:var(--color-white);border-radius:var(--rounded-xs)}.k-upload-error-list li:not(:last-child){margin-bottom:2px}.k-upload-error-filename{color:var(--color-negative);font-weight:var(--font-bold)}.k-upload-error-message{color:var(--color-gray-600)}.k-writer-toolbar{position:absolute;display:flex;background:var(--color-black);height:30px;transform:translate(-50%) translateY(-.75rem);z-index:calc(var(--z-dropdown) + 1);box-shadow:var(--shadow);color:var(--color-white);border-radius:var(--rounded)}.k-writer-toolbar-button.k-button{display:flex;align-items:center;justify-content:center;height:30px;width:30px;font-size:var(--text-sm)!important;color:currentColor;line-height:1}.k-writer-toolbar-button.k-button:hover{background:rgba(255,255,255,.15)}.k-writer-toolbar-button.k-writer-toolbar-button-active{color:var(--color-blue-300)}.k-writer-toolbar-button.k-writer-toolbar-nodes{width:auto;padding:0 .75rem}[dir=ltr] .k-writer-toolbar .k-dropdown+.k-writer-toolbar-button{border-left:1px solid var(--color-gray-700)}[dir=rtl] .k-writer-toolbar .k-dropdown+.k-writer-toolbar-button{border-right:1px solid var(--color-gray-700)}[dir=ltr] .k-writer-toolbar-button.k-writer-toolbar-nodes:after{margin-left:.5rem}[dir=rtl] .k-writer-toolbar-button.k-writer-toolbar-nodes:after{margin-right:.5rem}.k-writer-toolbar-button.k-writer-toolbar-nodes:after{content:"";border-top:4px solid var(--color-white);border-left:4px solid transparent;border-right:4px solid transparent}.k-writer-toolbar .k-dropdown-content{color:var(--color-black);background:var(--color-white);margin-top:.5rem}.k-writer-toolbar .k-dropdown-content .k-dropdown-item[aria-current]{color:var(--color-focus);font-weight:500}.k-writer{position:relative;width:100%;grid-template-areas:"content";display:grid}.k-writer .ProseMirror{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;font-variant-ligatures:none;line-height:inherit;grid-area:content}.k-writer .ProseMirror:focus{outline:0}.k-writer .ProseMirror *{caret-color:currentColor}.k-writer .ProseMirror a{color:var(--color-focus);text-decoration:underline}.k-writer .ProseMirror>:last-child{margin-bottom:0}.k-writer .ProseMirror h1,.k-writer .ProseMirror h2,.k-writer .ProseMirror h3,.k-writer .ProseMirror ol,.k-writer .ProseMirror p,.k-writer .ProseMirror ul{margin-bottom:.75rem}.k-writer .ProseMirror h1{font-size:var(--text-3xl);line-height:1.25em}.k-writer .ProseMirror h2{font-size:var(--text-2xl);line-height:1.25em}.k-writer .ProseMirror h3{font-size:var(--text-xl);line-height:1.25em}.k-writer .ProseMirror h1 strong,.k-writer .ProseMirror h2 strong,.k-writer .ProseMirror h3 strong{font-weight:700}.k-writer .ProseMirror strong{font-weight:600}.k-writer .ProseMirror code{position:relative;font-size:.925em;display:inline-block;line-height:1.325;padding:.05em .325em;background:var(--color-gray-300);border-radius:var(--rounded)}[dir=ltr] .k-writer .ProseMirror ol,[dir=ltr] .k-writer .ProseMirror ul{padding-left:1.75rem}[dir=rtl] .k-writer .ProseMirror ol,[dir=rtl] .k-writer .ProseMirror ul{padding-right:1.75rem}.k-writer .ProseMirror ul>li{list-style:disc}.k-writer .ProseMirror ul ul>li{list-style:circle}.k-writer .ProseMirror ul ul ul>li{list-style:square}.k-writer .ProseMirror ol>li{list-style:decimal}.k-writer .ProseMirror li>ol,.k-writer .ProseMirror li>p,.k-writer .ProseMirror li>ul{margin:0}.k-writer-code pre{-moz-tab-size:2;-o-tab-size:2;tab-size:2;font-size:var(--text-sm);line-height:2em;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;white-space:pre}.k-writer .ProseMirror code,.k-writer-code code{font-family:var(--font-mono)}.k-writer[data-placeholder][data-empty=true]:before{grid-area:content;content:attr(data-placeholder);line-height:inherit;color:var(--color-gray-500);pointer-events:none;white-space:pre-wrap;word-wrap:break-word}.k-login-alert{padding:.5rem .75rem;display:flex;justify-content:space-between;align-items:center;min-height:38px;margin-bottom:2rem;background:var(--color-negative);color:var(--color-white);font-size:var(--text-sm);border-radius:var(--rounded-xs);box-shadow:var(--shadow-lg);cursor:pointer}.k-structure-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;height:100vh}.k-structure-form section{position:relative;z-index:3;border-radius:var(--rounded-xs);margin-bottom:1px;box-shadow:#1111110d 0 0 0 3px;border:1px solid var(--color-border);background:var(--color-background)}.k-structure-form-fields{padding:1.5rem 1.5rem 2rem}.k-structure-form-buttons{border-top:1px solid var(--color-border);display:flex;justify-content:space-between}.k-structure-form-buttons .k-pagination{display:none}@media screen and (min-width:65em){.k-structure-form-buttons .k-pagination{display:flex}}.k-structure-form-buttons .k-pagination>.k-button,.k-structure-form-buttons .k-pagination>span{padding:.875rem 1rem!important}.k-structure-form-cancel-button,.k-structure-form-submit-button{padding:.875rem 1.5rem;line-height:1rem;display:flex}[dir=ltr] .k-toolbar,[dir=rtl] .k-toolbar{border-top-right-radius:var(--rounded);border-top-left-radius:var(--rounded)}.k-toolbar{background:var(--color-white);border-bottom:1px solid var(--color-background);height:38px}.k-toolbar-wrapper{position:absolute;top:0;left:0;right:0;max-width:100%}.k-toolbar-buttons{display:flex}.k-toolbar-divider{width:1px;background:var(--color-background)}.k-toolbar-button{width:36px;height:36px}.k-toolbar-button:hover{background:rgba(239,239,239,.5)}.k-checkbox-input{position:relative;cursor:pointer}[dir=ltr] .k-checkbox-input-label{padding-left:1.75rem}[dir=rtl] .k-checkbox-input-label{padding-right:1.75rem}.k-checkbox-input-label{display:block}[dir=ltr] .k-checkbox-input-icon{left:0}[dir=rtl] .k-checkbox-input-icon{right:0}.k-checkbox-input-icon{position:absolute;width:1rem;height:1rem;border-radius:var(--rounded);border:2px solid var(--color-gray-500)}.k-checkbox-input-icon svg{position:absolute;width:12px;height:12px;display:none}.k-checkbox-input-icon path{stroke:var(--color-white)}.k-checkbox-input-native:checked+.k-checkbox-input-icon{border-color:var(--color-gray-900);background:var(--color-gray-900)}[data-disabled=true] .k-checkbox-input-native:checked+.k-checkbox-input-icon{border-color:var(--color-gray-600);background:var(--color-gray-600)}.k-checkbox-input-native:checked+.k-checkbox-input-icon svg{display:block}.k-checkbox-input-native:focus+.k-checkbox-input-icon{border-color:var(--color-blue-600)}.k-checkbox-input-native:focus:checked+.k-checkbox-input-icon{background:var(--color-focus)}.k-text-input{width:100%;border:0;background:0 0;font:inherit;color:inherit;font-variant-numeric:tabular-nums}.k-text-input::-moz-placeholder{color:var(--color-gray-500)}.k-text-input::placeholder{color:var(--color-gray-500)}.k-text-input:focus{outline:0}.k-text-input:invalid{box-shadow:none;outline:0}.k-list-input .ProseMirror{line-height:1.5em}.k-list-input .ProseMirror ol>li::marker{font-size:var(--text-sm);color:var(--color-gray-500)}.k-multiselect-input{display:flex;flex-wrap:wrap;position:relative;font-size:var(--text-sm);min-height:2.25rem;line-height:1}.k-multiselect-input .k-sortable-ghost{background:var(--color-focus)}.k-multiselect-input .k-tag{border-radius:var(--rounded-sm)}.k-multiselect-input .k-dropdown-content,.k-multiselect-input[data-layout=list] .k-tag{width:100%}.k-multiselect-search{margin-top:0!important;color:var(--color-white);background:var(--color-gray-900);border-bottom:1px dashed rgba(255,255,255,.2)}.k-multiselect-search>.k-button-text{flex:1;opacity:1!important}.k-multiselect-search input{width:100%;color:var(--color-white);background:0 0;border:0;outline:0;padding:.25rem 0;font:inherit}.k-multiselect-options{position:relative;max-height:275px;padding:.5rem 0}.k-multiselect-option{position:relative}.k-multiselect-option.selected{color:var(--color-positive-light)}.k-multiselect-option.disabled:not(.selected) .k-icon{opacity:0}.k-multiselect-option b{color:var(--color-focus-light);font-weight:700}[dir=ltr] .k-multiselect-input[data-layout=list] .k-tag{margin-right:0!important}[dir=rtl] .k-multiselect-input[data-layout=list] .k-tag{margin-left:0!important}.k-multiselect-more{width:100%;padding:.75rem;color:#fffc;text-align:center;border-top:1px dashed rgba(255,255,255,.2)}.k-multiselect-more:hover{color:var(--color-white)}.k-number-input{width:100%;border:0;background:0 0;font:inherit;color:inherit}.k-number-input::-moz-placeholder{color:var(--color-gray-500)}.k-number-input::placeholder{color:var(--color-gray-500)}.k-number-input:focus{outline:0}.k-number-input:invalid{box-shadow:none;outline:0}[dir=ltr] .k-radio-input li{padding-left:1.75rem}[dir=rtl] .k-radio-input li{padding-right:1.75rem}.k-radio-input li{position:relative;line-height:1.5rem}.k-radio-input input{position:absolute;width:0;height:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0}.k-radio-input label{cursor:pointer;align-items:center}[dir=ltr] .k-radio-input label:before{left:0}[dir=rtl] .k-radio-input label:before{right:0}.k-radio-input label:before{position:absolute;top:.175em;content:"";width:1rem;height:1rem;border-radius:50%;border:2px solid var(--color-gray-500);box-shadow:var(--color-white) 0 0 0 2px inset}.k-radio-input input:checked+label:before{border-color:var(--color-gray-900);background:var(--color-gray-900)}[data-disabled=true] .k-radio-input input:checked+label:before{border-color:var(--color-gray-600);background:var(--color-gray-600)}.k-radio-input input:focus+label:before{border-color:var(--color-blue-600)}.k-radio-input input:focus:checked+label:before{background:var(--color-focus)}.k-radio-input-text{display:block}.k-range-input{--range-thumb-size:16px;--range-thumb-border:4px solid var(--color-gray-900);--range-thumb-border-disabled:4px solid var(--color-gray-600);--range-thumb-background:var(--color-background);--range-thumb-focus-border:4px solid var(--color-focus);--range-thumb-focus-background:var(--color-background);--range-track-height:4px;--range-track-background:var(--color-border);--range-track-color:var(--color-gray-900);--range-track-color-disabled:var(--color-gray-600);--range-track-focus-color:var(--color-focus);display:flex;align-items:center}.k-range-input-native{--min:0;--max:100;--value:0;--range:calc(var(--max) - var(--min));--ratio:calc((var(--value) - var(--min)) / var(--range));--position:calc( .5 * var(--range-thumb-size) + var(--ratio) * calc(100% - var(--range-thumb-size)) );-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:var(--range-thumb-size);background:0 0;font-size:var(--text-sm);line-height:1}.k-range-input-native::-webkit-slider-thumb{-webkit-appearance:none;appearance:none}.k-range-input-native::-webkit-slider-runnable-track{border:0;border-radius:var(--range-track-height);width:100%;height:var(--range-track-height);background:var(--range-track-background)}.k-range-input-native::-moz-range-track{border:0;border-radius:var(--range-track-height);width:100%;height:var(--range-track-height);background:var(--range-track-background)}.k-range-input-native::-ms-track{border:0;border-radius:var(--range-track-height);width:100%;height:var(--range-track-height);background:var(--range-track-background)}.k-range-input-native::-webkit-slider-runnable-track{background:linear-gradient(var(--range-track-color),var(--range-track-color))0/var(--position) 100%no-repeat var(--range-track-background)}.k-range-input-native::-moz-range-progress{height:var(--range-track-height);background:var(--range-track-color)}.k-range-input-native::-ms-fill-lower{height:var(--range-track-height);background:var(--range-track-color)}.k-range-input-native::-webkit-slider-thumb{margin-top:calc(.5*(var(--range-track-height) - var(--range-thumb-size)));box-sizing:border-box;width:var(--range-thumb-size);height:var(--range-thumb-size);background:var(--range-thumb-background);border:var(--range-thumb-border);border-radius:50%;cursor:pointer}.k-range-input-native::-moz-range-thumb{box-sizing:border-box;width:var(--range-thumb-size);height:var(--range-thumb-size);background:var(--range-thumb-background);border:var(--range-thumb-border);border-radius:50%;cursor:pointer}.k-range-input-native::-ms-thumb{box-sizing:border-box;width:var(--range-thumb-size);height:var(--range-thumb-size);background:var(--range-thumb-background);border:var(--range-thumb-border);border-radius:50%;cursor:pointer;margin-top:0}.k-range-input-native::-ms-tooltip{display:none}.k-range-input-native:focus{outline:0}.k-range-input-native:focus::-webkit-slider-runnable-track{border:0;border-radius:var(--range-track-height);width:100%;height:var(--range-track-height);background:var(--range-track-background);background:linear-gradient(var(--range-track-focus-color),var(--range-track-focus-color))0/var(--position) 100%no-repeat var(--range-track-background)}.k-range-input-native:focus::-moz-range-progress{height:var(--range-track-height);background:var(--range-track-focus-color)}.k-range-input-native:focus::-ms-fill-lower{height:var(--range-track-height);background:var(--range-track-focus-color)}.k-range-input-native:focus::-webkit-slider-thumb{background:var(--range-thumb-focus-background);border:var(--range-thumb-focus-border)}.k-range-input-native:focus::-moz-range-thumb{background:var(--range-thumb-focus-background);border:var(--range-thumb-focus-border)}.k-range-input-native:focus::-ms-thumb{background:var(--range-thumb-focus-background);border:var(--range-thumb-focus-border)}[dir=ltr] .k-range-input-tooltip{margin-left:1rem}[dir=rtl] .k-range-input-tooltip{margin-right:1rem}.k-range-input-tooltip{position:relative;max-width:20%;display:flex;align-items:center;color:var(--color-white);font-size:var(--text-xs);line-height:1;text-align:center;border-radius:var(--rounded-xs);background:var(--color-gray-900);padding:0 .25rem;white-space:nowrap}[dir=ltr] .k-range-input-tooltip:after{left:-5px}[dir=rtl] .k-range-input-tooltip:after{right:-5px}[dir=ltr] .k-range-input-tooltip:after{border-right:5px solid var(--color-gray-900)}[dir=rtl] .k-range-input-tooltip:after{border-left:5px solid var(--color-gray-900)}.k-range-input-tooltip:after{position:absolute;top:50%;width:0;height:0;transform:translateY(-50%);border-top:5px solid transparent;border-bottom:5px solid transparent;content:""}.k-range-input-tooltip>*{padding:4px}[data-disabled=true] .k-range-input-native::-webkit-slider-runnable-track{background:linear-gradient(var(--range-track-color-disabled),var(--range-track-color-disabled))0/var(--position) 100%no-repeat var(--range-track-background)}[data-disabled=true] .k-range-input-native::-moz-range-progress{height:var(--range-track-height);background:var(--range-track-color-disabled)}[data-disabled=true] .k-range-input-native::-ms-fill-lower{height:var(--range-track-height);background:var(--range-track-color-disabled)}[data-disabled=true] .k-range-input-native::-webkit-slider-thumb{border:var(--range-thumb-border-disabled)}[data-disabled=true] .k-range-input-native::-moz-range-thumb{border:var(--range-thumb-border-disabled)}[data-disabled=true] .k-range-input-native::-ms-thumb{border:var(--range-thumb-border-disabled)}[data-disabled=true] .k-range-input-tooltip{background:var(--color-gray-600)}[dir=ltr] [data-disabled=true] .k-range-input-tooltip:after{border-right:5px solid var(--color-gray-600)}[dir=rtl] [data-disabled=true] .k-range-input-tooltip:after{border-left:5px solid var(--color-gray-600)}.k-select-input{position:relative;display:block;cursor:pointer;overflow:hidden}.k-select-input-native{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;font:inherit;z-index:1;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-weight:var(--font-normal)}.k-select-input-native[disabled]{cursor:default}.k-tags-input{display:flex;flex-wrap:wrap}.k-tags-input .k-tag{border-radius:var(--rounded-sm)}.k-tags-input .k-sortable-ghost{background:var(--color-focus)}.k-tags-input-element{flex-grow:1;flex-basis:0;min-width:0}.k-tags-input:focus-within .k-tags-input-element{flex-basis:4rem}.k-tags-input-element input{font:inherit;border:0;width:100%;background:0 0}.k-tags-input-element input:focus{outline:0}[dir=ltr] .k-tags-input[data-layout=list] .k-tag{margin-right:0!important}[dir=rtl] .k-tags-input[data-layout=list] .k-tag{margin-left:0!important}.k-tags-input[data-layout=list] .k-tag{width:100%}.k-textarea-input[data-size=small]{--size:7.5rem}.k-textarea-input[data-size=medium]{--size:15rem}.k-textarea-input[data-size=large]{--size:30rem}.k-textarea-input[data-size=huge]{--size:45rem}.k-textarea-input-wrapper{position:relative}.k-textarea-input-native{resize:none;border:0;width:100%;background:0 0;font:inherit;line-height:1.5em;color:inherit;min-height:var(--size)}.k-textarea-input-native::-moz-placeholder{color:var(--color-gray-500)}.k-textarea-input-native::placeholder{color:var(--color-gray-500)}.k-textarea-input-native:focus{outline:0}.k-textarea-input-native:invalid{box-shadow:none;outline:0}.k-textarea-input-native[data-font=monospace]{font-family:var(--font-mono)}.k-toolbar{margin-bottom:.25rem;color:#aaa}.k-textarea-input:focus-within .k-toolbar{position:sticky;top:0;left:0;right:0;z-index:1;box-shadow:#0000000d 0 2px 5px;border-bottom:1px solid rgba(0,0,0,.1);color:#000}.k-toggle-input{--toggle-background:var(--color-white);--toggle-color:var(--color-gray-500);--toggle-active-color:var(--color-gray-900);--toggle-focus-color:var(--color-focus);--toggle-height:16px;display:flex;align-items:center}.k-toggle-input-native{position:relative;height:var(--toggle-height);width:calc(var(--toggle-height)*2);border-radius:var(--toggle-height);border:2px solid var(--toggle-color);box-shadow:inset 0 0 0 2px var(--toggle-background),inset calc(var(--toggle-height)*-1) 0 0 2px var(--toggle-background);background-color:var(--toggle-color);outline:0;transition:all ease-in-out .1s;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;flex-shrink:0}.k-toggle-input-native:checked{border-color:var(--toggle-active-color);box-shadow:inset 0 0 0 2px var(--toggle-background),inset var(--toggle-height) 0 0 2px var(--toggle-background);background-color:var(--toggle-active-color)}.k-toggle-input-native[disabled]{border-color:var(--color-border);box-shadow:inset 0 0 0 2px var(--color-background),inset calc(var(--toggle-height)*-1) 0 0 2px var(--color-background);background-color:var(--color-border)}.k-toggle-input-native[disabled]:checked{box-shadow:inset 0 0 0 2px var(--color-background),inset var(--toggle-height) 0 0 2px var(--color-background)}.k-toggle-input-native:focus:checked{border:2px solid var(--color-focus);background-color:var(--toggle-focus-color)}.k-toggle-input-native::-ms-check{opacity:0}.k-toggle-input-label{cursor:pointer;flex-grow:1}.k-input[data-type=toggles]{display:inline-flex}.k-input[data-type=toggles].grow{display:flex}.k-toggles-input{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);background:var(--color-white)}.k-toggles-input label{align-items:center;background: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%}[dir=ltr] .k-toggles-input .k-icon+.k-toggles-text{margin-left:var(--spacing-2)}[dir=rtl] .k-toggles-input .k-icon+.k-toggles-text{margin-right:var(--spacing-2)}.k-toggles-input input:focus:not(:checked)+label{background:var(--color-gray-200)}.k-toggles-input input:checked+label{background:var(--color-black);color:var(--color-white)}.k-blocks-field{position:relative}.k-date-field-body{display:flex;flex-wrap:wrap;line-height:1;border:var(--field-input-border);background:var(--color-gray-300);gap:1px;border-radius:var(--rounded);--multiplier:calc(25rem - 100%)}.k-date-field-body:focus-within{border:var(--field-input-focus-border);box-shadow:var(--color-focus-outline) 0 0 0 2px}.k-date-field[data-disabled] .k-date-field-body{background:0 0}.k-date-field-body>.k-input[data-theme=field]{border:0;box-shadow:none;border-radius:var(--rounded)}.k-date-field-body>.k-input[data-invalid=true],.k-date-field-body>.k-input[data-invalid=true]:focus-within{border:0!important;box-shadow:none!important}.k-date-field-body>*{flex-grow:1;flex-basis:calc(var(--multiplier)*999);max-width:100%}.k-date-field-body .k-input[data-type=date]{min-width:60%}.k-date-field-body .k-input[data-type=time]{min-width:30%}.k-files-field[data-disabled=true] .k-item *{pointer-events:all!important}body{counter-reset:headline-counter}.k-headline-field{position:relative;padding-top:1.5rem}.k-fieldset>.k-grid .k-column:first-child .k-headline-field{padding-top:0}[dir=ltr] .k-headline-field .k-headline[data-numbered]:before{padding-right:.25rem}[dir=rtl] .k-headline-field .k-headline[data-numbered]:before{padding-left:.25rem}.k-headline-field .k-headline[data-numbered]:before{counter-increment:headline-counter;content:counter(headline-counter,decimal-leading-zero);color:var(--color-focus);font-weight:400}.k-info-field .k-headline{padding-bottom:.75rem;line-height:1.25rem}.k-layout-column{position:relative;height:100%;display:flex;flex-direction:column;background:var(--color-white);min-height:6rem}.k-layout-column:focus{outline:0}.k-layout-column .k-blocks{background:0 0;box-shadow:none;padding:0;height:100%;background:var(--color-white);min-height:4rem}.k-layout-column .k-blocks[data-empty=true]{min-height:6rem}.k-layout-column .k-blocks-list{display:flex;flex-direction:column;height:100%}.k-layout-column .k-blocks .k-block-container:last-of-type{flex-grow:1}.k-layout-column .k-blocks-empty{position:absolute;top:0;right:0;bottom:0;left:0;justify-content:center;opacity:0;transition:opacity .3s;border:0}.k-layout-column .k-blocks-empty:hover{opacity:1}[dir=ltr] .k-layout-column .k-blocks-empty.k-empty .k-icon{border-right:0}[dir=rtl] .k-layout-column .k-blocks-empty.k-empty .k-icon{border-left:0}.k-layout-column .k-blocks-empty.k-empty .k-icon{width:1rem}[dir=ltr] .k-layout{padding-right:var(--layout-toolbar-width)}[dir=rtl] .k-layout{padding-left:var(--layout-toolbar-width)}.k-layout{--layout-border-color:var(--color-gray-300);--layout-toolbar-width:2rem;position:relative;background:#fff;box-shadow:var(--shadow)}[dir=ltr] [data-disabled=true] .k-layout{padding-right:0}[dir=rtl] [data-disabled=true] .k-layout{padding-left:0}.k-layout:not(:last-of-type){margin-bottom:1px}.k-layout:focus{outline:0}[dir=ltr] .k-layout-toolbar{right:0}[dir=rtl] .k-layout-toolbar{left:0}[dir=ltr] .k-layout-toolbar{border-left:1px solid var(--color-light)}[dir=rtl] .k-layout-toolbar{border-right:1px solid var(--color-light)}.k-layout-toolbar{position:absolute;top:0;bottom:0;width:var(--layout-toolbar-width);display:flex;flex-direction:column;font-size:var(--text-sm);background:var(--color-gray-100);color:var(--color-gray-500)}.k-layout-toolbar:hover{color:var(--color-black)}.k-layout-toolbar-button{width:var(--layout-toolbar-width);height:var(--layout-toolbar-width)}.k-layout-toolbar .k-sort-handle{margin-top:auto;color:currentColor}.k-layout-columns.k-grid{grid-gap:1px;background:var(--layout-border-color);background:var(--color-gray-300)}.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;cursor:-webkit-grabbing;z-index:1}.k-layout-selector.k-dialog{background:#313740;color:var(--color-white)}.k-layout-selector .k-headline{line-height:1;margin-top:-.25rem;margin-bottom:1.5rem}.k-layout-selector ul{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.5rem}.k-layout-selector-option .k-grid{height:5rem;grid-gap:2px;box-shadow:var(--shadow);cursor:pointer}.k-layout-selector-option:hover{outline:2px solid var(--color-green-300);outline-offset:2px}.k-layout-selector-option:last-child{margin-bottom:0}.k-layout-selector-option .k-column{display:flex;background:rgba(255,255,255,.2);justify-content:center;font-size:var(--text-xs);align-items:center}.k-line-field{position:relative;border:0;height:3rem;width:auto}.k-line-field:after{position:absolute;content:"";top:50%;margin-top:-1px;left:0;right:0;height:1px;background:var(--color-border)}.k-list-field .k-list-input{padding:.375rem .5rem .375rem .75rem}.k-table.k-object-field-table{table-layout:auto}.k-table.k-object-field-table tbody td,.k-table.k-object-field-table tbody th,.k-table.k-object-field-table tbody th button{cursor:pointer;overflow:hidden;text-overflow:ellipsis}.k-table.k-object-field-table tbody td{max-width:0}.k-pages-field[data-disabled=true] .k-item *{pointer-events:all!important}.k-structure-field:not([data-disabled=true]) td.k-table-column{cursor:pointer}.k-field-counter{display:none}.k-text-field:focus-within .k-field-counter{display:block}.k-users-field[data-disabled=true] .k-item *{pointer-events:all!important}.k-writer-field-input{line-height:1.5em;padding:.375rem .5rem}.k-aspect-ratio{position:relative;display:block;overflow:hidden;padding-bottom:100%}.k-aspect-ratio>*{position:absolute!important;top:0;right:0;bottom:0;left:0;height:100%;width:100%;-o-object-fit:contain;object-fit:contain}.k-aspect-ratio[data-cover=true]>*{-o-object-fit:cover;object-fit:cover}.k-bar{display:flex;align-items:center;justify-content:space-between;line-height:1}.k-bar-slot{flex-grow:1}.k-bar-slot[data-position=center]{text-align:center}[dir=ltr] .k-bar-slot[data-position=right]{text-align:right}[dir=rtl] .k-bar-slot[data-position=right]{text-align:left}.k-box{word-wrap:break-word;font-size:var(--text-sm)}.k-box:not([data-theme=none]){background:var(--color-white);border-radius:var(--rounded);line-height:1.25rem;padding:.5rem .75rem}.k-box[data-theme=code]{background:var(--color-gray-900);border:1px solid var(--color-black);color:var(--color-light);font-family:Input,Menlo,monospace;font-size:var(--text-sm);line-height:1.5}.k-box[data-theme=button]{padding:0}[dir=ltr] .k-box[data-theme=button] .k-button{text-align:left}[dir=rtl] .k-box[data-theme=button] .k-button{text-align:right}.k-box[data-theme=button] .k-button{padding:0 .75rem;height:2.25rem;width:100%;display:flex;align-items:center;line-height:2rem}[dir=ltr] .k-box[data-theme=info],[dir=ltr] .k-box[data-theme=negative],[dir=ltr] .k-box[data-theme=notice],[dir=ltr] .k-box[data-theme=positive]{border-left-color:var(--theme-light)}[dir=rtl] .k-box[data-theme=info],[dir=rtl] .k-box[data-theme=negative],[dir=rtl] .k-box[data-theme=notice],[dir=rtl] .k-box[data-theme=positive]{border-right-color:var(--theme-light)}.k-box[data-theme=info],.k-box[data-theme=negative],.k-box[data-theme=notice],.k-box[data-theme=positive]{border:0;background:var(--theme-bg)}[dir=ltr] .k-box[data-theme=empty]{border-left:0}[dir=rtl] .k-box[data-theme=empty]{border-right:0}.k-box[data-theme=empty]{text-align:center;padding:3rem 1.5rem;display:flex;justify-content:center;align-items:center;flex-direction:column;background:var(--color-background);border:1px dashed var(--color-border)}.k-box[data-theme=empty] .k-icon{margin-bottom:.5rem;color:var(--color-gray-500)}.k-box[data-theme=empty],.k-box[data-theme=empty] p{color:var(--color-gray-600)}.k-bubble{display:flex;padding:0 .5rem;white-space:nowrap;align-items:center;line-height:1.5;font-size:var(--text-xs);height:1.525rem;background:var(--color-light);color:var(--color-black);border-radius:var(--rounded);overflow:hidden}[dir=ltr] .k-bubble .k-item-figure{margin-left:-.5rem}[dir=rtl] .k-bubble .k-item-figure{margin-right:-.5rem}[dir=ltr] .k-bubble .k-item-figure{margin-right:var(--spacing-2)}[dir=rtl] .k-bubble .k-item-figure{margin-left:var(--spacing-2)}.k-bubble .k-item-figure{width:1.525rem;height:1.525rem}.k-bubbles{display:flex;gap:.25rem}.k-collection-help{padding:.5rem .75rem}.k-collection-footer{display:flex;justify-content:space-between;margin-left:-.75rem;margin-right:-.75rem}.k-collection-pagination{line-height:1.25rem;flex-shrink:0;min-height:2.75rem}.k-collection-pagination .k-pagination .k-button{padding:.5rem .75rem;line-height:1.125rem}.k-column{min-width:0;grid-column-start:span 12}.k-column[data-sticky=true]>div{position:sticky;top:4vh;z-index:2}@media screen and (min-width:65em){.k-column[data-width="1/1"],.k-column[data-width="12/12"],.k-column[data-width="2/2"],.k-column[data-width="3/3"],.k-column[data-width="4/4"],.k-column[data-width="6/6"]{grid-column-start:span 12}.k-column[data-width="11/12"]{grid-column-start:span 11}.k-column[data-width="10/12"],.k-column[data-width="5/6"]{grid-column-start:span 10}.k-column[data-width="3/4"],.k-column[data-width="9/12"]{grid-column-start:span 9}.k-column[data-width="2/3"],.k-column[data-width="4/6"],.k-column[data-width="8/12"]{grid-column-start:span 8}.k-column[data-width="7/12"]{grid-column-start:span 7}.k-column[data-width="1/2"],.k-column[data-width="2/4"],.k-column[data-width="3/6"],.k-column[data-width="6/12"]{grid-column-start:span 6}.k-column[data-width="5/12"]{grid-column-start:span 5}.k-column[data-width="1/3"],.k-column[data-width="2/6"],.k-column[data-width="4/12"]{grid-column-start:span 4}.k-column[data-width="1/4"],.k-column[data-width="3/12"]{grid-column-start:span 3}.k-column[data-width="1/6"],.k-column[data-width="2/12"]{grid-column-start:span 2}.k-column[data-width="1/12"]{grid-column-start:span 1}}.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-dropzone{position:relative}.k-dropzone:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;display:none;pointer-events:none;z-index:1}.k-dropzone[data-over=true]:after{display:block;outline:1px solid var(--color-focus);box-shadow:var(--color-focus-outline) 0 0 0 3px}.k-empty{display:flex;align-items:stretch;border-radius:var(--rounded);color:var(--color-gray-600);border:1px dashed var(--color-border)}button.k-empty{width:100%}button.k-empty:focus{outline:0}.k-empty p{font-size:var(--text-sm);color:var(--color-gray-600)}.k-empty>.k-icon{color:var(--color-gray-500)}.k-empty[data-layout=cardlets],.k-empty[data-layout=cards]{text-align:center;padding:1.5rem;justify-content:center;flex-direction:column}.k-empty[data-layout=cardlets] .k-icon,.k-empty[data-layout=cards] .k-icon{margin-bottom:1rem}.k-empty[data-layout=cardlets] .k-icon svg,.k-empty[data-layout=cards] .k-icon svg{width:2rem;height:2rem}.k-empty[data-layout=list],.k-empty[data-layout=table]{min-height:38px}[dir=ltr] .k-empty[data-layout=list]>.k-icon,[dir=ltr] .k-empty[data-layout=table]>.k-icon{border-right:1px solid rgba(0,0,0,.05)}[dir=rtl] .k-empty[data-layout=list]>.k-icon,[dir=rtl] .k-empty[data-layout=table]>.k-icon{border-left:1px solid rgba(0,0,0,.05)}.k-empty[data-layout=list]>.k-icon,.k-empty[data-layout=table]>.k-icon{width:36px;min-height:36px}.k-empty[data-layout=list]>p,.k-empty[data-layout=table]>p{line-height:1.25rem;padding:.5rem .75rem}.k-file-preview{background:var(--color-gray-800)}.k-file-preview-layout{display:grid;grid-template-columns:50%auto}.k-file-preview-layout>*{min-width:0}.k-file-preview-image{position:relative;display:flex;align-items:center;justify-content:center;background:var(--bg-pattern)}.k-file-preview-image-link{display:block;width:100%;padding:min(4vw,3rem);outline:0}.k-file-preview-image-link[data-tabbed=true]{box-shadow:none;outline:2px solid var(--color-focus);outline-offset:-2px}.k-file-preview-details{padding:1.5rem;flex-grow:1}.k-file-preview-details ul{line-height:1.5em;max-width:50rem;display:grid;grid-gap:1.5rem 3rem;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.k-file-preview-details h3{font-size:var(--text-sm);font-weight:500;color:var(--color-gray-500)}.k-file-preview-details a,.k-file-preview-details p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ffffffbf;font-size:var(--text-sm)}@media screen and (min-width:30em){.k-file-preview-details ul{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media screen and (max-width:65em){.k-file-preview-layout{padding:0!important}}@media screen and (min-width:65em){.k-file-preview-layout{grid-template-columns:33.333%auto;align-items:center}.k-file-preview-details{padding:3rem}}@media screen and (min-width:90em){.k-file-preview-layout{grid-template-columns:25%auto}}.k-grid{--columns:12;display:grid;grid-column-gap:0;grid-row-gap:0;grid-template-columns:1fr}@media screen and (min-width:30em){.k-grid[data-gutter=small]{grid-column-gap:1rem;grid-row-gap:1rem}.k-grid[data-gutter=huge],.k-grid[data-gutter=large],.k-grid[data-gutter=medium]{grid-column-gap:1.5rem;grid-row-gap:1.5rem}}@media screen and (min-width:65em){.k-grid{grid-template-columns:repeat(var(--columns),1fr)}.k-grid[data-gutter=large]{grid-column-gap:3rem}.k-grid[data-gutter=huge]{grid-column-gap:4.5rem}}@media screen and (min-width:90em){.k-grid[data-gutter=large]{grid-column-gap:4.5rem}.k-grid[data-gutter=huge]{grid-column-gap:6rem}}@media screen and (min-width:120em){.k-grid[data-gutter=large]{grid-column-gap:6rem}.k-grid[data-gutter=huge]{grid-column-gap:7.5rem}}.k-header{padding-top:4vh;margin-bottom:2rem;border-bottom:1px solid var(--color-border)}.k-header[data-tabs=true]{border-bottom:0}.k-header .k-headline{min-height:1.25em;margin-bottom:.5rem;word-wrap:break-word}.k-header .k-header-buttons{margin-top:-.5rem;height:3.25rem}.k-header .k-headline-editable{cursor:pointer}[dir=ltr] .k-header .k-headline-editable .k-icon{margin-left:.5rem}[dir=rtl] .k-header .k-headline-editable .k-icon{margin-right:.5rem}.k-header .k-headline-editable .k-icon{color:var(--color-gray-500);opacity:0;transition:opacity .3s;display:inline-block}.k-header .k-headline-editable:hover .k-icon{opacity:1}.k-panel-inside{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.k-panel-inside:focus{outline:0}.k-panel-header{z-index:var(--z-navigation);flex-shrink:0}.k-panel-view{flex-grow:1;padding-bottom:6rem}.k-item{position:relative;background:var(--color-white);border-radius:var(--rounded);box-shadow:var(--shadow);display:grid;grid-template-columns:auto;line-height:1}.k-item a:focus,.k-item:focus{outline:0}.k-item.k-sortable-ghost,.k-item:focus-within{box-shadow:var(--shadow-outline)}.k-item-sort-handle.k-sort-handle{position:absolute;opacity:0;width:1.25rem;height:1.5rem;z-index:2;border-radius:1px}.k-item:hover .k-item-sort-handle{opacity:1}.k-item-figure{grid-area:figure}.k-item-content{grid-area:content;overflow:hidden}.k-item-info,.k-item-title{font-size:var(--text-sm);font-weight:400;text-overflow:ellipsis;white-space:nowrap;line-height:1.125rem;overflow:hidden}.k-item-info{grid-area:info;color:var(--color-gray-500)}.k-item-title-link.k-link[data-=true]{box-shadow:none}.k-item-title-link:after{position:absolute;content:"";top:0;right:0;bottom:0;left:0;z-index:1}.k-item-footer{grid-area:footer;display:flex;justify-content:space-between;align-items:center;min-width:0}[dir=ltr] .k-item-label{margin-right:.5rem}[dir=rtl] .k-item-label{margin-left:.5rem}.k-item-buttons{position:relative;display:flex;justify-content:flex-end;flex-shrink:0;flex-grow:1}.k-item-buttons>.k-button,.k-item-buttons>.k-dropdown{position:relative;width:38px;height:38px;display:flex!important;align-items:center;justify-content:center;line-height:1}.k-item-buttons>.k-button{z-index:1}.k-item-buttons>.k-options-dropdown>.k-options-dropdown-toggle{z-index:var(--z-toolbar)}.k-list-item{display:flex;align-items:center;height:38px}[dir=ltr] .k-list-item .k-item-sort-handle{left:-1.5rem}[dir=rtl] .k-list-item .k-item-sort-handle{right:-1.5rem}.k-list-item .k-item-sort-handle{width:1.5rem}[dir=ltr] .k-list-item .k-item-figure{border-top-left-radius:var(--rounded)}[dir=rtl] .k-list-item .k-item-figure{border-top-right-radius:var(--rounded)}[dir=ltr] .k-list-item .k-item-figure{border-bottom-left-radius:var(--rounded)}[dir=rtl] .k-list-item .k-item-figure{border-bottom-right-radius:var(--rounded)}.k-list-item .k-item-figure{width:38px}[dir=ltr] .k-list-item .k-item-content{margin-left:.75rem}[dir=rtl] .k-list-item .k-item-content{margin-right:.75rem}.k-list-item .k-item-content{display:flex;flex-grow:1;flex-shrink:2;justify-content:space-between;align-items:center}.k-list-item .k-item-info,.k-list-item .k-item-title{flex-grow:1;line-height:1.5rem}[dir=ltr] .k-list-item .k-item-title{margin-right:.5rem}[dir=rtl] .k-list-item .k-item-title{margin-left:.5rem}.k-list-item .k-item-title{flex-shrink:1}[dir=ltr] .k-list-item .k-item-info{text-align:right}[dir=rtl] .k-list-item .k-item-info{text-align:left}[dir=ltr] .k-list-item .k-item-info{margin-right:.5rem}[dir=rtl] .k-list-item .k-item-info{margin-left:.5rem}.k-list-item .k-item-info{flex-shrink:2;justify-self:end}.k-list-item .k-item-buttons,.k-list-item .k-item-footer{flex-shrink:0}.k-item:not(.k-list-item) .k-item-sort-handle{margin:var(--spacing-2);background:var(--color-background);box-shadow:var(--shadow-lg);border-radius:var(--rounded-sm)}[dir=ltr] .k-item:not(.k-list-item) .k-item-label{margin-left:-2px}[dir=rtl] .k-item:not(.k-list-item) .k-item-label{margin-right:-2px}.k-item:not(.k-list-item) .k-item-content{padding:.625rem .75rem}.k-cardlets-item{height:6rem;grid-template-rows:auto 38px;grid-template-areas:"content""footer"}.k-cardlets-item[data-has-figure=true]{grid-template-columns:6rem auto;grid-template-areas:"figure content""figure footer"}[dir=ltr] .k-cardlets-item .k-item-figure{border-top-left-radius:var(--rounded)}[dir=rtl] .k-cardlets-item .k-item-figure{border-top-right-radius:var(--rounded)}[dir=ltr] .k-cardlets-item .k-item-figure{border-bottom-left-radius:var(--rounded)}[dir=rtl] .k-cardlets-item .k-item-figure{border-bottom-right-radius:var(--rounded)}.k-cardlets-item .k-item-footer{padding-top:.5rem;padding-bottom:.5rem}.k-cards-item{grid-template-columns:auto;grid-template-rows:auto 1fr;grid-template-areas:"figure""content";--item-content-wrapper:0}[dir=ltr] .k-cards-item .k-item-figure,[dir=rtl] .k-cards-item .k-item-figure{border-top-right-radius:var(--rounded);border-top-left-radius:var(--rounded)}.k-cards-item .k-item-content{padding:.5rem .75rem!important;overflow:hidden}.k-cards-item .k-item-info,.k-cards-item .k-item-title{line-height:1.375rem;white-space:normal}.k-cards-item .k-item-info:after,.k-cards-item .k-item-title:after{display:inline-block;content:"\a0";width:var(--item-content-wrapper)}.k-cards-item[data-has-flag=true],.k-cards-item[data-has-options=true]{--item-content-wrapper:38px}.k-cards-item[data-has-flag=true][data-has-options=true]{--item-content-wrapper:76px}.k-cards-item[data-has-info=true] .k-item-title:after{display:none}[dir=ltr] .k-cards-item .k-item-footer{right:0}[dir=rtl] .k-cards-item .k-item-footer{left:0}.k-cards-item .k-item-footer{position:absolute;bottom:0;width:auto}.k-item-figure{overflow:hidden;flex-shrink:0}.k-cards-items{--min:13rem;--max:1fr;--gap:1.5rem;--column-gap:var(--gap);--row-gap:var(--gap);display:grid;grid-column-gap:var(--column-gap);grid-row-gap:var(--row-gap);grid-template-columns:repeat(auto-fill,minmax(var(--min),var(--max)))}@media screen and (min-width:30em){.k-cards-items[data-size=tiny]{--min:10rem}.k-cards-items[data-size=small]{--min:16rem}.k-cards-items[data-size=medium]{--min:24rem}.k-cards-items[data-size=huge],.k-cards-items[data-size=large],.k-column[data-width="1/4"] .k-cards-items,.k-column[data-width="1/5"] .k-cards-items,.k-column[data-width="1/6"] .k-cards-items{--min:1fr}}@media screen and (min-width:65em){.k-cards-items[data-size=large]{--min:32rem}}.k-cardlets-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));grid-gap:.5rem}.k-list-items .k-list-item:not(:last-child){margin-bottom:2px}.k-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:var(--z-dialog);transform:translateZ(0)}.k-overlay[data-centered=true]{display:flex;align-items:center;justify-content:center}.k-overlay[data-dimmed=true]{background:var(--color-backdrop)}.k-overlay-loader{color:var(--color-white)}.k-panel[data-loading=true]{animation:LoadingCursor .5s}.k-panel[data-dragging=true],.k-panel[data-loading=true]:after{-webkit-user-select:none;-moz-user-select:none;user-select:none}.k-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));grid-auto-rows:1fr;grid-gap:var(--spacing-2px)}.k-stat{display:flex;flex-direction:column;background:var(--color-white);box-shadow:var(--shadow);padding:var(--spacing-3) var(--spacing-6);line-height:var(--leading-normal);border-radius:var(--rounded)}.k-stat.k-link:hover{cursor:pointer;background:var(--color-gray-100)}.k-stat dd,.k-stat dt{display:block}.k-stat-value{font-size:var(--value);margin-bottom:var(--spacing-1);order:1}.k-stat-info,.k-stat-label{font-size:var(--text-xs)}.k-stat-label{order:2}.k-stat-info{order:3;color:var(--theme, var(--color-gray-500))}.k-stats[data-size=small]{--value:var(--text-base)}.k-stats[data-size=medium]{--value:var(--text-xl)}.k-stats[data-size=large]{--value:var(--text-2xl)}.k-stats[data-size=huge]{--value:var(--text-3xl)}.k-table{--table-row-height:38px;position:relative;background:var(--color-white);font-size:var(--text-sm);box-shadow:var(--shadow);border-radius:var(--rounded)}.k-table table{width:100%;border-spacing:0;table-layout:fixed;font-variant-numeric:tabular-nums}.k-table[data-invalid]{border:0;box-shadow:var(--color-negative-outline) 0 0 0 1px,var(--color-negative-outline) 0 0 3px 2px}.k-table td,.k-table th{height:var(--table-row-height);overflow:hidden;text-overflow:ellipsis;line-height:1.25em}.k-table td{width:100%}[dir=ltr] .k-table tbody tr:first-child th,[dir=ltr] .k-table thead th:first-child{border-top-left-radius:var(--rounded)}[dir=rtl] .k-table tbody tr:first-child th,[dir=rtl] .k-table thead th:first-child{border-top-right-radius:var(--rounded)}[dir=ltr] .k-table thead th:last-child{border-top-right-radius:var(--rounded)}[dir=rtl] .k-table thead th:last-child{border-top-left-radius:var(--rounded)}[dir=ltr] .k-table td:last-child,[dir=ltr] .k-table th:last-child{border-right:0}[dir=rtl] .k-table td:last-child,[dir=rtl] .k-table th:last-child{border-left:0}.k-table td:last-child,.k-table th:last-child{height:var(--table-row-height)}.k-table th,.k-table tr:not(:last-child) td{border-bottom:1px solid var(--color-background)}.k-table td:last-child{overflow:visible}[dir=ltr] .k-table td,[dir=ltr] .k-table th{border-right:1px solid var(--color-background)}[dir=rtl] .k-table td,[dir=rtl] .k-table th{border-left:1px solid var(--color-background)}[dir=ltr] .k-table td,[dir=ltr] .k-table th,[dir=ltr] .k-table th button{text-align:left}[dir=rtl] .k-table td,[dir=rtl] .k-table th,[dir=rtl] .k-table th button{text-align:right}.k-table th{padding:0 .75rem;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;color:var(--color-gray-600);background:var(--color-gray-100);width:100%}.k-table th button{font:inherit;display:block;padding:0 .75rem;height:100%;width:100%;border-radius:var(--rounded)}.k-table th button:focus-visible{outline:2px solid var(--color-black);outline-offset:-2px}.k-table tbody tr:hover td{background:rgba(239,239,239,.25)}.k-table thead th{position:sticky;top:0;left:0;right:0;z-index:1}.k-table tbody th{width:auto;white-space:nowrap;padding:0;overflow:visible;border-radius:0}[dir=ltr] .k-table tbody tr:last-child th{border-bottom-left-radius:var(--rounded)}[dir=rtl] .k-table tbody tr:last-child th{border-bottom-right-radius:var(--rounded)}.k-table tbody tr:last-child th{border-bottom:0}.k-table-column[data-align]{text-align:var(--align)!important}.k-table-column[data-align=right]>.k-input{flex-direction:column;align-items:flex-end}.k-table .k-sort-handle,.k-table-index{display:grid;place-items:center;width:100%;height:var(--table-row-height)}.k-table .k-sort-handle,.k-table tr:hover .k-table-index-column[data-sortable=true] .k-table-index{display:none}.k-table tr:hover .k-sort-handle{display:grid!important}.k-table-row-ghost{background:var(--color-white);box-shadow:var(--shadow-outline);outline:2px solid var(--color-black);border-radius:var(--rounded);margin-bottom:2px;cursor:grabbing;cursor:-webkit-grabbing}.k-table-row-fallback{opacity:0!important}td.k-table-index-column,td.k-table-options-column,th.k-table-index-column,th.k-table-options-column{width:var(--table-row-height);text-align:center!important}.k-table-index{font-size:var(--text-xs);color:var(--color-gray-500);line-height:1.1em}.k-table-empty{color:var(--color-gray-600);font-size:var(--text-sm)}[data-disabled=true] .k-table{background:var(--color-gray-100)}[data-disabled=true] .k-table tbody td,[data-disabled=true] .k-table th{border-color:var(--color-gray-200)}[data-disabled=true] .k-table td:last-child{overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:65em){.k-table tbody td:not([data-mobile]),.k-table thead th:not([data-mobile]){display:none}}[dir=ltr] .k-table-pagination.k-pagination,[dir=rtl] .k-table-pagination.k-pagination{border-bottom-right-radius:var(--rounded);border-bottom-left-radius:var(--rounded)}.k-table-pagination.k-pagination{border-top:1px solid var(--color-gray-200);background:var(--color-gray-100);display:flex;justify-content:space-between;align-items:center;height:var(--table-row-height)}.k-table-pagination.k-pagination .k-button{padding:0 .75rem;display:flex;align-items:center;line-height:1;height:var(--table-row-height)}.k-table-update-status-cell{padding:0 .75rem;display:flex;align-items:center;height:100%}.k-table-update-status-cell-button,.k-table-update-status-cell-version{font-variant-numeric:tabular-nums}.k-table-update-status-cell-button{display:inline-flex;padding:.25rem 1.5rem .25rem .325rem;border-radius:var(--rounded);line-height:1;align-items:center;background:var(--color-gray-200)}.k-table-update-status-cell-button .k-button-text:after{position:absolute;top:50%;right:.5rem;margin-top:-2px;content:"";border-top:4px solid #000;border-left:4px solid transparent;border-right:4px solid transparent}.k-table-update-status-cell-button .k-icon{color:var(--theme)}.k-plugin-info{padding:1rem}.k-plugin-info div+div{margin-top:.5rem}.k-plugin-info dt{color:var(--color-gray-400);margin-right:.5rem}.k-plugin-info dd[data-theme]{color:var(--theme-light)}.k-plugin-info+.k-dropdown-item{padding-top:.75rem;border-top:1px solid var(--color-gray-700)}@media screen and (min-width:30em){.k-plugin-info{width:20rem}.k-plugin-info div{display:flex}}.k-tabs{position:relative;background:#e9e9e9;border:1px solid var(--color-border);border-radius:var(--rounded)}.k-tabs nav{display:flex;justify-content:center;margin-left:-1px;margin-right:-1px}[dir=ltr] .k-tab-button.k-button{border-left:1px solid transparent}[dir=rtl] .k-tab-button.k-button{border-right:1px solid transparent}[dir=ltr] .k-tab-button.k-button{border-right:1px solid var(--color-border)}[dir=rtl] .k-tab-button.k-button{border-left:1px solid var(--color-border)}.k-tab-button.k-button{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;padding:.625rem .75rem;font-size:var(--text-xs);text-transform:uppercase;text-align:center;font-weight:500;flex-grow:1;flex-shrink:1;flex-direction:column;max-width:15rem}@media screen and (min-width:30em){.k-tab-button.k-button{flex-direction:row}[dir=ltr] .k-tab-button.k-button .k-icon{margin-right:.5rem}[dir=rtl] .k-tab-button.k-button .k-icon{margin-left:.5rem}}[dir=ltr] .k-tab-button.k-button>.k-button-text{padding-left:0}[dir=rtl] .k-tab-button.k-button>.k-button-text{padding-right:0}.k-tab-button.k-button>.k-button-text{padding-top:.375rem;font-size:10px;overflow:hidden;max-width:10rem;text-overflow:ellipsis;opacity:1}@media screen and (min-width:30em){.k-tab-button.k-button>.k-button-text{font-size:var(--text-xs);padding-top:0}}[dir=ltr] .k-tab-button:last-child{border-right:1px solid transparent}[dir=rtl] .k-tab-button:last-child{border-left:1px solid transparent}[dir=ltr] .k-tab-button[aria-current]{border-right:1px solid var(--color-border)}[dir=rtl] .k-tab-button[aria-current]{border-left:1px solid var(--color-border)}.k-tab-button[aria-current]{position:relative;background:var(--color-background);pointer-events:none}[dir=ltr] .k-tab-button[aria-current]:first-child{border-left:1px solid var(--color-border)}[dir=rtl] .k-tab-button[aria-current]:first-child{border-right:1px solid var(--color-border)}.k-tab-button[aria-current]:after,.k-tab-button[aria-current]:before{position:absolute;content:""}.k-tab-button[aria-current]:before{left:-1px;right:-1px;top:-1px;height:2px;background:var(--color-black)}.k-tab-button[aria-current]:after{left:0;right:0;bottom:-1px;height:1px;background:var(--color-background)}[dir=ltr] .k-tabs-dropdown{right:0}[dir=rtl] .k-tabs-dropdown{left:0}.k-tabs-dropdown{top:100%}[dir=ltr] .k-tabs-badge{right:2px}[dir=rtl] .k-tabs-badge{left:2px}.k-tabs-badge{position:absolute;top:3px;font-variant-numeric:tabular-nums;line-height:1.5;padding:0 .25rem;border-radius:2px;font-size:10px;box-shadow:var(--shadow-md)}.k-tabs[data-theme=notice] .k-tabs-badge{background:var(--theme-light);color:var(--color-black)}.k-view{padding-left:1.5rem;padding-right:1.5rem;margin:0 auto;max-width:100rem}@media screen and (min-width:30em){.k-view{padding-left:3rem;padding-right:3rem}}@media screen and (min-width:90em){.k-view{padding-left:6rem;padding-right:6rem}}.k-view[data-align=center]{height:100vh;display:flex;align-items:center;justify-content:center;padding:0 3rem;overflow:auto}.k-view[data-align=center]>*{flex-basis:22.5rem}.k-fatal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-backdrop);display:flex;z-index:var(--z-fatal);align-items:center;justify-content:center;padding:1.5rem}.k-fatal-box{width:100%;height:100%;display:flex;flex-direction:column;color:var(--color-black);background:var(--color-red-400);box-shadow:var(--shadow-xl);border-radius:var(--rounded)}.k-fatal-box .k-headline{line-height:1;font-size:var(--text-sm);padding:.75rem}.k-fatal-box .k-button{padding:.75rem}.k-fatal-iframe{border:0;width:100%;flex-grow:1;background:var(--color-white)}.k-headline{--size:var(--text-base);font-size:var(--size);font-weight:var(--font-bold);line-height:1.5em}.k-headline[data-size=small]{--size:var(--text-sm)}.k-headline[data-size=large]{--size:var(--text-xl);font-weight:var(--font-normal)}@media screen and (min-width:65em){.k-headline[data-size=large]{--size:var(--text-2xl)}}.k-headline[data-size=huge]{--size:var(--text-2xl);line-height:1.15em}@media screen and (min-width:65em){.k-headline[data-size=huge]{--size:var(--text-3xl)}}.k-headline[data-theme]{color:var(--theme)}[dir=ltr] .k-headline abbr{padding-left:.25rem}[dir=rtl] .k-headline abbr{padding-right:.25rem}.k-headline abbr{color:var(--color-gray-500);text-decoration:none}.k-icon{--size:1rem;position:relative;line-height:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--size)}.k-icon[data-size=medium]{--size:2rem}.k-icon[data-size=large]{--size:3rem}.k-icon svg{width:var(--size);height:var(--size);-moz-transform:scale(1)}.k-icon svg *{fill:currentColor}.k-icon[data-back=black]{color:var(--color-white)}.k-icon[data-back=white]{color:var(--color-gray-900)}.k-icon[data-back=pattern]{color:var(--color-white)}[data-disabled=true] .k-icon[data-back=pattern] svg{opacity:1}.k-icon-emoji{display:block;line-height:1;font-style:normal;font-size:var(--size)}@media not all,not all,not all,only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.k-icon-emoji{font-size:1.25em}}.k-icons{position:absolute;width:0;height:0}.k-image span{position:relative;display:block;line-height:0;padding-bottom:100%}.k-image img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}[dir=ltr] .k-image-error{left:50%}[dir=rtl] .k-image-error{right:50%}.k-image-error{position:absolute;top:50%;transform:translate(-50%,-50%);color:var(--color-white);font-size:.9em}.k-image-error svg *{fill:#ffffff4d}.k-image[data-cover=true] img{-o-object-fit:cover;object-fit:cover}.k-image[data-back=black] span{background:var(--color-gray-900)}.k-image[data-back=white] span{background:var(--color-white);color:var(--color-gray-900)}.k-image[data-back=white] .k-image-error{background:var(--color-gray-900);color:var(--color-white)}.k-image[data-back=pattern] span{background:var(--color-gray-800) var(--bg-pattern)}.k-loader{z-index:1}.k-loader-icon{animation:Spin .9s linear infinite}.k-offline-warning{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-offline);background:var(--color-backdrop);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)}.k-progress{-webkit-appearance:none;width:100%;height:.5rem;border-radius:5rem;background:var(--color-border);overflow:hidden;border:0}.k-progress::-webkit-progress-bar{border:0;background:var(--color-border);height:.5rem;border-radius:20px}.k-progress::-webkit-progress-value{border-radius:inherit;background:var(--color-focus);-webkit-transition:width .3s;transition:width .3s}.k-progress::-moz-progress-bar{border-radius:inherit;background:var(--color-focus);-moz-transition:width .3s;transition:width .3s}[dir=ltr] .k-registration,[dir=ltr] .k-registration p{margin-right:1rem}[dir=rtl] .k-registration,[dir=rtl] .k-registration p{margin-left:1rem}.k-registration{display:flex;align-items:center}.k-registration p{color:var(--color-negative-light);font-size:var(--text-sm);font-weight:600}@media screen and (max-width:90em){.k-registration p{display:none}}.k-registration .k-button{color:var(--color-white)}.k-sort-handle{cursor:move;cursor:grab;cursor:-webkit-grab;color:var(--color-gray-900);justify-content:center;align-items:center;line-height:0;width:2rem;height:2rem;display:flex;will-change:opacity,color;transition:opacity .3s;z-index:1}.k-sort-handle svg{width:1rem;height:1rem}.k-sort-handle:active{cursor:grabbing;cursor:-webkit-grabbing}.k-status-icon svg{width:14px;height:14px}.k-status-icon .k-icon{color:var(--theme-light)}.k-status-icon .k-button-text{color:var(--color-black)}.k-status-icon[data-disabled=true]{opacity:1!important}.k-status-icon[data-disabled=true] .k-icon{color:var(--color-gray-400);opacity:.5}.k-text{line-height:1.5em}[dir=ltr] .k-text ol,[dir=ltr] .k-text ul{margin-left:1rem}[dir=rtl] .k-text ol,[dir=rtl] .k-text ul{margin-right:1rem}.k-text li{list-style:inherit}.k-text p,.k-text>ol,.k-text>ul{margin-bottom:1.5em}.k-text a{text-decoration:underline}.k-text>:last-child{margin-bottom:0}.k-text[data-size=tiny]{font-size:var(--text-xs)}.k-text[data-size=small]{font-size:var(--text-sm)}.k-text[data-size=medium]{font-size:var(--text-base)}.k-text[data-size=large]{font-size:var(--text-xl)}.k-text[data-align]{text-align:var(--align)}.k-text[data-theme=help]{font-size:var(--text-sm);color:var(--color-gray-600);line-height:1.25rem}.k-dialog-body .k-text{word-wrap:break-word}.k-user-info{display:flex;align-items:center;line-height:1;font-size:var(--text-sm)}[dir=ltr] .k-user-info .k-image{margin-right:.75rem}[dir=rtl] .k-user-info .k-image{margin-left:.75rem}.k-user-info .k-image{width:1.5rem}[dir=ltr] .k-user-info .k-icon{margin-right:.75rem}[dir=rtl] .k-user-info .k-icon{margin-left:.75rem}.k-user-info .k-icon{width:1.5rem;height:1.5rem;background:var(--color-black);color:var(--color-white)}.k-breadcrumb{padding-left:.5rem;padding-right:.5rem}.k-breadcrumb-dropdown{height:2.5rem;width:2.5rem;display:flex;align-items:center;justify-content:center}.k-breadcrumb ol{display:none;align-items:center}@media screen and (min-width:30em){.k-breadcrumb ol{display:flex}.k-breadcrumb-dropdown{display:none}}.k-breadcrumb li,.k-breadcrumb-link{display:flex;align-items:center;min-width:0}.k-breadcrumb-link{font-size:var(--text-sm);align-self:stretch;padding-top:.625rem;padding-bottom:.625rem;line-height:1.25rem}.k-breadcrumb li{flex-shrink:3}.k-breadcrumb li:last-child{flex-shrink:1}.k-breadcrumb li:not(:last-child):after{content:"/";padding-left:.5rem;padding-right:.5rem;opacity:.5;flex-shrink:0}.k-breadcrumb li:not(:first-child):not(:last-child){max-width:15vw}[dir=ltr] .k-breadcrumb-icon{margin-right:.5rem}[dir=rtl] .k-breadcrumb-icon{margin-left:.5rem}.k-breadcrumb-icon.k-loader{opacity:.5}.k-breadcrumb-link-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}button{line-height:inherit;border:0;font-family:var(--font-sans);font-size:1rem;color:currentColor;background:0 0;cursor:pointer}button::-moz-focus-inner{padding:0;border:0}.k-button{display:inline-block;position:relative;font-size:var(--text-sm);transition:color .3s;outline:0}.k-button:focus,.k-button:hover{outline:0}.k-button *{vertical-align:middle}.k-button[data-responsive=true] .k-button-text{display:none}@media screen and (min-width:30em){.k-button[data-responsive=true] .k-button-text{display:inline}}.k-button[data-theme]{color:var(--theme)}.k-button-icon{display:inline-flex;align-items:center;line-height:0}[dir=ltr] .k-button-icon~.k-button-text{padding-left:.5rem}[dir=rtl] .k-button-icon~.k-button-text{padding-right:.5rem}.k-button-text{opacity:.75}.k-button:focus .k-button-text,.k-button:hover .k-button-text{opacity:1}.k-button-text b,.k-button-text span{vertical-align:baseline}.k-button[data-disabled=true]{opacity:.5;pointer-events:none;cursor:default}.k-card-options>.k-button[data-disabled=true]{display:inline-flex}.k-button-group{--padding-x:.75rem;--padding-y:1rem;--line-height:1rem;font-size:0;margin:0 calc(var(--padding-x)*-1)}.k-button-group>.k-dropdown{height:calc(var(--line-height) + (var(--padding-y)*2));display:inline-block}.k-button-group>.k-button,.k-button-group>.k-dropdown>.k-button{padding:var(--padding-y) var(--padding-x);line-height:var(--line-height)}.k-button-group .k-dropdown-content{top:calc(100% + 1px);margin:0 var(--padding-x)}.k-dropdown{position:relative}[dir=ltr] .k-dropdown-content{text-align:left}[dir=rtl] .k-dropdown-content{text-align:right}.k-dropdown-content{position:absolute;top:100%;background:var(--color-black);color:var(--color-white);z-index:var(--z-dropdown);box-shadow:var(--shadow-lg);border-radius:var(--rounded);margin-bottom:6rem}[dir=ltr] .k-dropdown-content[data-align=left]{left:0}[dir=ltr] .k-dropdown-content[data-align=right],[dir=rtl] .k-dropdown-content[data-align=left]{right:0}[dir=rtl] .k-dropdown-content[data-align=right]{left:0}.k-dropdown-content>.k-dropdown-item:first-child{margin-top:.5rem}.k-dropdown-content>.k-dropdown-item:last-child{margin-bottom:.5rem}.k-dropdown-content[data-dropup=true]{top:auto;bottom:100%;margin-bottom:.5rem}.k-dropdown-content hr{border-color:currentColor;opacity:.2;margin:.5rem 1rem}.k-dropdown-content[data-theme=light]{background:var(--color-white);color:var(--color-black)}.k-dropdown-item{white-space:nowrap;line-height:1;display:flex;width:100%;align-items:center;font-size:var(--text-sm);padding:6px 16px}.k-dropdown-item:focus{outline:0;box-shadow:var(--shadow-outline)}[dir=ltr] .k-dropdown-item .k-button-figure{padding-right:.5rem}[dir=rtl] .k-dropdown-item .k-button-figure{padding-left:.5rem}.k-dropdown-item .k-button-figure{text-align:center}.k-link{outline:0}.k-options-dropdown,.k-options-dropdown-toggle{display:flex;justify-content:center;align-items:center;height:38px}.k-options-dropdown-toggle{min-width:38px;padding:0 .75rem}.k-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;direction:ltr}.k-pagination .k-button{padding:1rem}.k-pagination-details{white-space:nowrap}.k-pagination>span{font-size:var(--text-sm)}.k-pagination[data-align]{text-align:var(--align)}[dir=ltr] .k-dropdown-content.k-pagination-selector{left:50%}[dir=rtl] .k-dropdown-content.k-pagination-selector{right:50%}.k-dropdown-content.k-pagination-selector{position:absolute;top:100%;transform:translate(-50%);background:var(--color-black)}[dir=ltr] .k-dropdown-content.k-pagination-selector{direction:ltr}[dir=rtl] .k-dropdown-content.k-pagination-selector{direction:rtl}.k-pagination-settings{display:flex;align-items:center;justify-content:space-between}.k-pagination-settings .k-button{line-height:1}[dir=ltr] .k-pagination-settings label{border-right:1px solid rgba(255,255,255,.35)}[dir=rtl] .k-pagination-settings label{border-left:1px solid rgba(255,255,255,.35)}.k-pagination-settings label{display:flex;align-items:center;padding:.625rem 1rem;font-size:var(--text-xs)}[dir=ltr] .k-pagination-settings label span{margin-right:.5rem}[dir=rtl] .k-pagination-settings label span{margin-left:.5rem}.k-prev-next{direction:ltr}.k-search{max-width:30rem;margin:2.5rem auto;box-shadow:var(--shadow-lg);background:var(--color-light);border-radius:var(--rounded)}.k-search-input{display:flex}.k-search-types{flex-shrink:0;display:flex}[dir=ltr] .k-search-types>.k-button{padding-left:1rem}[dir=rtl] .k-search-types>.k-button{padding-right:1rem}.k-search-types>.k-button{font-size:var(--text-base);line-height:1;height:2.5rem}.k-search-types>.k-button .k-icon{height:2.5rem}.k-search-types>.k-button .k-button-text{opacity:1;font-weight:500}.k-search-input input{background:0 0;flex-grow:1;font:inherit;padding:.75rem;border:0;height:2.5rem}.k-search-close{width:3rem;line-height:1}.k-search-close .k-icon-loader{animation:Spin 2s linear infinite}.k-search input:focus{outline:0}.k-search-results{padding:.5rem 1rem 1rem}.k-search .k-item:not(:last-child){margin-bottom:.25rem}.k-search .k-item[data-selected=true]{outline:2px solid var(--color-focus)}.k-search .k-item-info,.k-search-empty{font-size:var(--text-xs)}.k-search-empty{text-align:center;color:var(--color-gray-600)}.k-tag{position:relative;font-size:var(--text-sm);line-height:1;cursor:pointer;background-color:var(--color-gray-900);color:var(--color-light);border-radius:var(--rounded);display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;-moz-user-select:none;user-select:none}.k-tag:focus{outline:0;background-color:var(--color-focus);color:#fff}.k-tag-text{padding:.3rem .75rem .375rem;line-height:var(--leading-tight)}[dir=ltr] .k-tag-toggle{padding-right:1px}[dir=rtl] .k-tag-toggle{padding-left:1px}[dir=ltr] .k-tag-toggle{border-left:1px solid rgba(255,255,255,.15)}[dir=rtl] .k-tag-toggle{border-right:1px solid rgba(255,255,255,.15)}.k-tag-toggle{color:#ffffffb3;width:1.75rem;height:100%}.k-tag-toggle:hover{background:rgba(255,255,255,.2);color:#fff}[data-disabled=true] .k-tag{background-color:var(--color-gray-600)}[data-disabled=true] .k-tag .k-tag-toggle{display:none}.k-topbar{--bg:var(--color-gray-900);position:relative;color:var(--color-white);flex-shrink:0;height:2.5rem;line-height:1;background:var(--bg)}.k-topbar-wrapper{position:relative;display:flex;align-items:center;margin-left:-.75rem;margin-right:-.75rem}[dir=ltr] .k-topbar-wrapper:after{left:100%}[dir=rtl] .k-topbar-wrapper:after{right:100%}.k-topbar-wrapper:after{position:absolute;content:"";height:2.5rem;background:var(--bg);width:3rem}.k-topbar-menu{flex-shrink:0}.k-topbar-menu ul{padding:.5rem 0}.k-topbar .k-button[data-theme]{color:var(--theme-light)}.k-topbar .k-button-text{opacity:1}.k-topbar-menu-button{display:flex;align-items:center}.k-topbar-menu .k-link[aria-current]{color:var(--color-focus);font-weight:500}.k-topbar-button{padding:.75rem;line-height:1;font-size:var(--text-sm)}.k-topbar-button .k-button-text{display:flex}[dir=ltr] .k-topbar-view-button{padding-right:0}[dir=rtl] .k-topbar-view-button{padding-left:0}.k-topbar-view-button{flex-shrink:0;display:flex;align-items:center}[dir=ltr] .k-topbar-view-button .k-icon{margin-right:.5rem}[dir=rtl] .k-topbar-view-button .k-icon{margin-left:.5rem}[dir=ltr] .k-topbar-signals{right:0}[dir=rtl] .k-topbar-signals{left:0}.k-topbar-signals{position:absolute;top:0;background:var(--bg);height:2.5rem;display:flex;align-items:center}.k-topbar-signals:before{position:absolute;content:"";top:-.5rem;bottom:0;width:.5rem;background:-webkit-linear-gradient(inline-start,rgba(17,17,17,0),#111)}.k-topbar-signals .k-button{line-height:1}.k-topbar-notification{font-weight:var(--font-bold);line-height:1;display:flex}@media screen and (max-width:30em){.k-topbar .k-button[data-theme=negative] .k-button-text{display:none}}.k-section,.k-sections{padding-bottom:3rem}.k-section-header{position:relative;display:flex;align-items:baseline;z-index:1}[dir=ltr] .k-section-header .k-headline{padding-right:var(--spacing-3)}[dir=rtl] .k-section-header .k-headline{padding-left:var(--spacing-3)}.k-section-header .k-headline{line-height:1.25rem;min-height:2rem;flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[dir=ltr] .k-section-header .k-button-group{right:0}[dir=rtl] .k-section-header .k-button-group{left:0}.k-section-header .k-button-group{position:absolute;top:calc(-.5rem - 1px)}.k-section-header .k-button-group>.k-button{padding:.75rem;display:inline-flex}.k-fields-issue-headline{margin-bottom:.5rem}.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{margin-bottom:var(--spacing-3);background:var(--color-gray-300);padding:var(--spacing-2) var(--spacing-3);height:var(--field-input-height);border-radius:var(--rounded);font-size:var(--text-sm)}.k-info-section-label{margin-bottom:.5rem}.k-user-profile{background:var(--color-white)}.k-user-profile>.k-view{padding-top:3rem;padding-bottom:3rem;display:flex;align-items:center;line-height:0}[dir=ltr] .k-user-profile .k-button-group{margin-left:.75rem}[dir=rtl] .k-user-profile .k-button-group{margin-right:.75rem}.k-user-profile .k-button-group{overflow:hidden}.k-user-profile .k-button-group .k-button{display:block;padding-top:.25rem;padding-bottom:.25rem;overflow:hidden;white-space:nowrap}.k-user-view-image .k-icon,.k-user-view-image .k-image{width:5rem;height:5rem;border-radius:var(--rounded);line-height:0;overflow:hidden}.k-user-view-image[data-disabled=true]{opacity:1}.k-user-view-image .k-image{display:block}.k-user-view-image .k-button-text{opacity:1}.k-user-name-placeholder{color:var(--color-gray-500);transition:color .3s}.k-header[data-editable=true] .k-user-name-placeholder:hover{color:var(--color-gray-900)}.k-error-view{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.k-error-view-content{line-height:1.5em;max-width:25rem;text-align:center}.k-error-view-icon{color:var(--color-negative);display:inline-block}.k-error-view-content p:not(:last-child){margin-bottom:.75rem}.k-installation-view .k-button{display:block;margin-top:1.5rem}.k-installation-view .k-headline{margin-bottom:.75rem}.k-installation-issues{line-height:1.5em;font-size:var(--text-sm)}[dir=ltr] .k-installation-issues li{padding-left:3.5rem}[dir=rtl] .k-installation-issues li{padding-right:3.5rem}.k-installation-issues li{position:relative;padding:1.5rem;background:var(--color-white)}[dir=ltr] .k-installation-issues .k-icon{left:1.5rem}[dir=rtl] .k-installation-issues .k-icon{right:1.5rem}.k-installation-issues .k-icon{position:absolute;top:calc(1.5rem + 2px)}.k-installation-issues .k-icon svg *{fill:var(--color-negative)}.k-installation-issues li:not(:last-child){margin-bottom:2px}.k-installation-issues li code{font:inherit;color:var(--color-negative)}[dir=ltr] .k-installation-view .k-button[type=submit]{margin-left:-1rem}[dir=rtl] .k-installation-view .k-button[type=submit]{margin-right:-1rem}.k-installation-view .k-button[type=submit]{padding:1rem}.k-languages-view .k-header{margin-bottom:1.5rem}.k-languages-view-section-header{margin-bottom:.5rem}.k-languages-view-section{margin-bottom:3rem}.k-login-fields{position:relative}[dir=ltr] .k-login-toggler{right:0}[dir=rtl] .k-login-toggler{left:0}.k-login-toggler{position:absolute;top:0;z-index:1;text-decoration:underline;font-size:.875rem}.k-login-form label abbr{visibility:hidden}.k-login-buttons{display:flex;align-items:center;justify-content:flex-end;padding:1.5rem 0}[dir=ltr] .k-login-button{margin-right:-1rem}[dir=rtl] .k-login-button{margin-left:-1rem}.k-login-button{padding:.5rem 1rem;font-weight:500;transition:opacity .3s}.k-login-button span{opacity:1}.k-login-button[disabled]{opacity:.25}.k-login-back-button,.k-login-checkbox{display:flex;align-items:center;flex-grow:1}[dir=ltr] .k-login-back-button{margin-left:-1rem}[dir=rtl] .k-login-back-button{margin-right:-1rem}.k-login-checkbox{padding:.5rem 0;font-size:var(--text-sm);cursor:pointer}.k-login-checkbox .k-checkbox-text{opacity:.75;transition:opacity .3s}.k-login-checkbox:focus span,.k-login-checkbox:hover span{opacity:1}.k-password-reset-view .k-user-info{height:38px;margin-bottom:2.25rem;padding:.5rem;background:var(--color-white);border-radius:var(--rounded-xs);box-shadow:var(--shadow)}.k-system-view .k-header{margin-bottom:1.5rem}.k-system-view-section-header{margin-bottom:.5rem;display:flex;justify-content:space-between}.k-system-view-section{margin-bottom:3rem}.k-system-info .k-stat-label{color:var(--theme, var(--color-black))}.k-block-type-code-editor{position:relative;font-size:var(--text-sm);line-height:1.5em;background:#000;border-radius:var(--rounded);padding:.5rem .75rem 3rem;color:#fff;font-family:var(--font-mono)}.k-block-type-code-editor .k-editor{white-space:pre-wrap;line-height:1.75em}[dir=ltr] .k-block-type-code-editor-language{right:0}[dir=ltr] .k-block-type-code-editor-language .k-icon,[dir=rtl] .k-block-type-code-editor-language{left:0}.k-block-type-code-editor-language{font-size:var(--text-sm);position:absolute;bottom:0}[dir=rtl] .k-block-type-code-editor-language .k-icon{right:0}.k-block-type-code-editor-language .k-icon{position:absolute;top:0;height:1.5rem;display:flex;width:2rem;z-index:0}.k-block-type-code-editor-language .k-select-input{position:relative;padding:.325rem .75rem .5rem 2rem;z-index:1;font-size:var(--text-xs)}.k-block-type-default .k-block-title{line-height:1.5em}.k-block-type-gallery ul{display:grid;grid-gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));line-height:0;align-items:center;justify-content:center;cursor:pointer}.k-block-type-gallery-placeholder{background:var(--color-background)}.k-block-type-gallery figcaption{padding-top:.5rem;color:var(--color-gray-600);font-size:var(--text-sm);text-align:center}.k-block-type-heading-input{line-height:1.25em;font-weight:var(--font-bold)}.k-block-type-heading-input[data-level=h1]{font-size:var(--text-3xl);line-height:1.125em}.k-block-type-heading-input[data-level=h2]{font-size:var(--text-2xl)}.k-block-type-heading-input[data-level=h3]{font-size:var(--text-xl)}.k-block-type-heading-input[data-level=h4]{font-size:var(--text-lg)}.k-block-type-heading-input[data-level=h5]{line-height:1.5em;font-size:var(--text-base)}.k-block-type-heading-input[data-level=h6]{line-height:1.5em;font-size:var(--text-sm)}.k-block-type-heading-input .ProseMirror strong{font-weight:700}.k-block-type-image .k-block-figure-container{display:block;text-align:center;line-height:0}.k-block-type-image-auto{max-width:100%;max-height:30rem}.k-block-type-line hr{margin-top:.75rem;margin-bottom:.75rem;border:0;border-top:2px solid var(--color-gray-400)}.k-block-type-markdown-input{position:relative;font-size:var(--text-sm);line-height:1.5em;background:var(--color-background);border-radius:var(--rounded);padding:.5rem .5rem 0;font-family:var(--font-mono)}[dir=ltr] .k-block-type-quote-editor{padding-left:1rem}[dir=rtl] .k-block-type-quote-editor{padding-right:1rem}[dir=ltr] .k-block-type-quote-editor{border-left:2px solid var(--color-black)}[dir=rtl] .k-block-type-quote-editor{border-right:2px solid var(--color-black)}.k-block-type-quote-text{font-size:var(--text-xl);margin-bottom:.25rem;line-height:1.25em}.k-block-type-quote-citation{font-style:italic;font-size:var(--text-sm);color:var(--color-gray-600)}.k-block-type-table-preview{cursor:pointer;border:1px solid var(--color-gray-300);border-spacing:0;border-radius:var(--rounded-sm);overflow:hidden}[dir=ltr] .k-block-type-table-preview td,[dir=ltr] .k-block-type-table-preview th{text-align:left}[dir=rtl] .k-block-type-table-preview td,[dir=rtl] .k-block-type-table-preview th{text-align:right}.k-block-type-table-preview td,.k-block-type-table-preview th{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 [class$=-field-preview],.k-block-type-table-preview td>*{padding:0}.k-block-type-text-input{font-size:var(--text-base);line-height:1.5em;height:100%}.k-block-container-type-text,.k-block-type-text,.k-block-type-text .k-writer .ProseMirror{height:100%}.k-block-container{position:relative;padding:.75rem;background:var(--color-white);border-radius:var(--rounded)}.k-block-container:not(:last-of-type){border-bottom:1px dashed rgba(0,0,0,.1)}.k-block-container:focus{outline:0}.k-block-container[data-batched=true],.k-block-container[data-selected=true]{z-index:2;border-bottom-color:transparent}.k-block-container[data-batched=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:rgba(238,242,246,.375);mix-blend-mode:multiply;border:1px solid var(--color-focus)}.k-block-container[data-selected=true]{box-shadow:var(--color-focus) 0 0 0 1px,var(--color-focus-outline) 0 0 0 3px}[dir=ltr] .k-block-container .k-block-options{right:.75rem}[dir=rtl] .k-block-container .k-block-options{left:.75rem}.k-block-container .k-block-options{display:none;position:absolute;top:0;margin-top:calc(-1.75rem + 2px)}.k-block-container[data-last-in-batch=true]>.k-block-options,.k-block-container[data-selected=true]>.k-block-options{display:flex}.k-block-container[data-hidden=true] .k-block{opacity:.25}.k-drawer-options .k-button[data-disabled=true]{vertical-align:middle;display:inline-grid}[data-disabled=true] .k-block-container{background:var(--color-background)}.k-block-importer.k-dialog{background:#313740;color:var(--color-white)}.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-gray-400)}.k-block-importer label kbd{background:rgba(0,0,0,.5);font-family:var(--font-mono);letter-spacing:.1em;padding:.25rem;border-radius:var(--rounded);margin:0 .25rem}.k-block-importer textarea{width:100%;height:20rem;background:0 0;font:inherit;color:var(--color-white);border:0;padding:var(--spacing-6);resize:none}.k-block-importer textarea:focus{outline:0}.k-blocks{background:var(--color-white);box-shadow:var(--shadow);border-radius:var(--rounded)}[data-disabled=true] .k-blocks{background:var(--color-background)}.k-blocks[data-multi-select-key=true] .k-block-container>*{pointer-events:none}.k-blocks[data-empty=true]{padding:0;background:0 0;box-shadow:none}.k-blocks .k-sortable-ghost{outline:2px solid var(--color-focus);box-shadow:#11111140 0 5px 10px;cursor:grabbing;cursor:-webkit-grabbing}.k-blocks-list>.k-blocks-empty{display:flex;align-items:center}.k-blocks-list>.k-blocks-empty:not(:only-child){display:none}.k-block-figure{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-gray-600);font-size:var(--text-sm);text-align:center}.k-block-figure-empty.k-button{display:flex;width:100%;height:6rem;border-radius:var(--rounded-sm);align-items:center;justify-content:center;color:var(--color-gray-600);background:var(--color-background)}.k-block-options{display:flex;align-items:center;background:var(--color-white);z-index:var(--z-dropdown);box-shadow:#0000001a -2px 0 5px,var(--shadow),var(--shadow-xl);color:var(--color-black);border-radius:var(--rounded)}[dir=ltr] .k-block-options-button{border-right:1px solid var(--color-background)}[dir=rtl] .k-block-options-button{border-left:1px solid var(--color-background)}.k-block-options-button{--block-options-button-size:30px;width:var(--block-options-button-size);height:var(--block-options-button-size);line-height:1;display:inline-flex;align-items:center;justify-content:center}[dir=ltr] .k-block-options-button:first-child{border-top-left-radius:var(--rounded)}[dir=rtl] .k-block-options-button:first-child{border-top-right-radius:var(--rounded)}[dir=ltr] .k-block-options-button:first-child{border-bottom-left-radius:var(--rounded)}[dir=rtl] .k-block-options-button:first-child{border-bottom-right-radius:var(--rounded)}[dir=ltr] .k-block-options-button:last-child{border-top-right-radius:var(--rounded)}[dir=rtl] .k-block-options-button:last-child{border-top-left-radius:var(--rounded)}[dir=ltr] .k-block-options-button:last-child{border-bottom-right-radius:var(--rounded)}[dir=rtl] .k-block-options-button:last-child{border-bottom-left-radius:var(--rounded)}[dir=ltr] .k-block-options-button:last-of-type{border-right:0}[dir=rtl] .k-block-options-button:last-of-type{border-left:0}.k-block-options-button[aria-current]{color:var(--color-focus)}.k-block-options-button:hover{background:var(--color-gray-100)}.k-block-options .k-dropdown-content{margin-top:.5rem}.k-block-selector.k-dialog{background:var(--color-dark);color:var(--color-white)}.k-block-selector .k-headline{margin-bottom:1rem}.k-block-selector details:not(:last-of-type){margin-bottom:1.5rem}.k-block-selector summary{font-size:var(--text-xs);cursor:pointer;color:var(--color-gray-400)}.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-green-400)}.k-block-types{display:grid;grid-gap:2px;margin-top:.75rem;grid-template-columns:repeat(1,1fr)}[dir=ltr] .k-block-types .k-button{text-align:left}[dir=rtl] .k-block-types .k-button{text-align:right}.k-block-types .k-button{display:flex;align-items:flex-start;border-radius:var(--rounded);background:rgba(0,0,0,.5);width:100%;padding:0 .75rem 0 0;line-height:1.5em}.k-block-types .k-button:focus{outline:2px solid var(--color-green-300)}.k-block-types .k-button .k-button-text{padding:.5rem 0 .5rem .5rem}.k-block-types .k-button .k-icon{width:38px;height:38px}.k-clipboard-hint{padding-top:1.5rem;font-size:var(--text-xs);color:var(--color-gray-400)}.k-clipboard-hint kbd{background:rgba(0,0,0,.5);font-family:var(--font-mono);letter-spacing:.1em;padding:.25rem;border-radius:var(--rounded);margin:0 .25rem}[dir=ltr] .k-block-title{padding-right:.75rem}[dir=rtl] .k-block-title{padding-left:.75rem}.k-block-title{display:flex;align-items:center;min-width:0;font-size:var(--text-sm);line-height:1}[dir=ltr] .k-block-icon{margin-right:.5rem}[dir=rtl] .k-block-icon{margin-left:.5rem}.k-block-icon{width:1rem;color:var(--color-gray-500)}[dir=ltr] .k-block-name{margin-right:.5rem}[dir=rtl] .k-block-name{margin-left:.5rem}.k-block-label{color:var(--color-gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.k-bubbles-field-preview{padding:.325rem .75rem}.k-text-field-preview{padding:.325rem .75rem;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.k-url-field-preview{padding:.325rem .75rem;overflow-x:hidden;text-overflow:ellipsis}.k-url-field-preview[data-link]{color:var(--color-focus)}.k-url-field-preview a{text-decoration:underline;transition:color .3s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.k-url-field-preview a:hover{color:var(--color-black)}.k-flag-field-preview{height:var(--table-row-height);width:var(--table-row-height);display:flex;justify-content:center;align-items:center}.k-html-field-preview{padding:.325rem .75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5em}.k-html-field-preview p:not(:last-child){margin-bottom:1.5em}[dir=ltr] .k-html-field-preview ol,[dir=ltr] .k-html-field-preview ul{margin-left:1rem}[dir=rtl] .k-html-field-preview ol,[dir=rtl] .k-html-field-preview ul{margin-right:1rem}.k-html-field-preview ul>li{list-style:disc}.k-html-field-preview ol ul>li,.k-html-field-preview ul ul>li{list-style:circle}.k-html-field-preview ol>li{list-style:decimal}.k-html-field-preview ol>li::marker{color:var(--color-gray-500);font-size:var(--text-xs)}.k-toggle-field-preview label{padding:0 .25rem 0 .75rem;display:flex;height:38px;cursor:pointer;overflow:hidden;white-space:nowrap}[dir=ltr] .k-toggle-field-preview .k-toggle-input-label{padding-left:.5rem}[dir=ltr] [data-align=right] .k-toggle-field-preview .k-toggle-input-label,[dir=rtl] .k-toggle-field-preview .k-toggle-input-label{padding-right:.5rem}[dir=rtl] [data-align=right] .k-toggle-field-preview .k-toggle-input-label{padding-left:.5rem}[dir=ltr] .k-toggle-field-preview .k-toggle-input{padding-left:.75rem;padding-right:.25rem}.k-toggle-field-preview .k-toggle-input{padding-top:0;padding-bottom:0}[dir=ltr] [data-align=right] .k-toggle-field-preview .k-toggle-input,[dir=rtl] .k-toggle-field-preview .k-toggle-input{padding-left:.25rem;padding-right:.75rem}[dir=rtl] [data-align=right] .k-toggle-field-preview .k-toggle-input{padding-right:.25rem;padding-left:.75rem}[data-align=right] .k-toggle-field-preview .k-toggle-input{flex-direction:row-reverse}:root{--color-backdrop:rgba(0, 0, 0, .6);--color-black:#000;--color-dark:#313740;--color-light:var(--color-gray-200);--color-white:#fff;--color-gray-100:#f7f7f7;--color-gray-200:#efefef;--color-gray-300:#ddd;--color-gray-400:#ccc;--color-gray-500:#999;--color-gray-600:#777;--color-gray-700:#555;--color-gray-800:#333;--color-gray-900:#111;--color-gray:var(--color-gray-600);--color-red-200:#edc1c1;--color-red-300:#e3a0a0;--color-red-400:#d16464;--color-red-600:#ce1f1f;--color-red:var(--color-red-600);--color-orange-200:#f2d4bf;--color-orange-300:#ebbe9e;--color-orange-400:#de935f;--color-orange-600:#f4861f;--color-orange:var(--color-orange-600);--color-yellow-200:#f9e8c7;--color-yellow-300:#f7e2b8;--color-yellow-400:#f0c674;--color-yellow-600:#cca000;--color-yellow:var(--color-yellow-600);--color-green-200:#dce5c2;--color-green-300:#c6d49d;--color-green-400:#a7bd68;--color-green-600:#678f00;--color-green:var(--color-green-600);--color-aqua-200:#d0e5e2;--color-aqua-300:#bbd9d5;--color-aqua-400:#8abeb7;--color-aqua-600:#398e93;--color-aqua:var(--color-aqua-600);--color-blue-200:#cbd7e5;--color-blue-300:#b1c2d8;--color-blue-400:#7e9abf;--color-blue-600:#4271ae;--color-blue:var(--color-blue-600);--color-purple-200:#e0d4e4;--color-purple-300:#d4c3d9;--color-purple-400:#b294bb;--color-purple-600:#9c48b9;--color-purple:var(--color-purple-600);--container:80rem;--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;--font-normal:400;--font-bold:600;--leading-none:1;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--rounded-xs:1px;--rounded-sm:.125rem;--rounded:.25rem;--rounded-md:.375rem;--shadow:0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md:0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--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, .04);--shadow-outline:currentColor 0 0 0 2px;--shadow-inset:inset 0 2px 4px 0 rgba(0, 0, 0, .06);--spacing-0:0;--spacing-px:1px;--spacing-2px:2px;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--spacing-36:9rem;--text-xs:.75rem;--text-sm:.875rem;--text-base: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;--color-background:var(--color-light);--color-border:var(--color-gray-400);--color-focus:var(--color-blue-600);--color-focus-light:var(--color-blue-400);--color-focus-outline:rgba(113, 143, 183, .25);--color-negative:var(--color-red-600);--color-negative-light:var(--color-red-400);--color-negative-outline:rgba(212, 110, 110, .25);--color-notice:var(--color-orange-600);--color-notice-light:var(--color-orange-400);--color-positive:var(--color-green-600);--color-positive-light:var(--color-green-400);--color-positive-outline:rgba(128, 149, 65, .25);--color-text:var(--color-gray-900);--color-text-light:var(--color-gray-600);--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;--bg-pattern:repeating-conic-gradient( rgba(0, 0, 0, 0) 0% 25%, rgba(0, 0, 0, .2) 0% 50% ) 50% / 20px 20px;--shadow-sticky:rgba(0, 0, 0, .05) 0 2px 5px;--shadow-dropdown:var(--shadow-lg);--shadow-item:var(--shadow);--field-input-padding:.5rem;--field-input-height:2.25rem;--field-input-line-height:1.25rem;--field-input-font-size:var(--text-base);--field-input-color-before:var(--color-gray-700);--field-input-color-after:var(--color-gray-700);--field-input-border:1px solid var(--color-border);--field-input-focus-border:1px solid var(--color-focus);--field-input-focus-outline:2px solid var(--color-focus-outline);--field-input-invalid-border:1px solid var(--color-negative-outline);--field-input-invalid-outline:0;--field-input-invalid-focus-border:1px solid var(--color-negative);--field-input-invalid-focus-outline:2px solid var(--color-negative-outline);--field-input-background:var(--color-white);--field-input-disabled-color:var(--color-gray-500);--field-input-disabled-background:var(--color-white);--field-input-disabled-border:1px solid var(--color-gray-300);--font-family-sans:var(--font-sans);--font-family-mono:var(--font-mono);--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);--box-shadow-dropdown:var(--shadow-dropdown);--box-shadow-item:var(--shadow);--box-shadow-focus:var(--shadow-xl)}*,:after,:before{margin:0;padding:0;box-sizing:border-box}noscript{padding:1.5rem;display:flex;align-items:center;justify-content:center;height:100vh;text-align:center}html{font-family:var(--font-sans);background:var(--color-background)}body,html{color:var(--color-gray-900);height:100%;overflow:hidden}a{color:inherit;text-decoration:none}li{list-style:none}b,strong{font-weight:var(--font-bold)}@keyframes LoadingCursor{to{cursor:progress}}@keyframes Spin{to{transform:rotate(360deg)}}[data-align=left]{--align:start}[data-align=center]{--align:center}[data-align=right]{--align:end}[data-invalid=true]{border:1px solid var(--color-negative-outline);box-shadow:var(--color-negative-outline) 0 0 3px 2px}[data-invalid=true]:focus-within{border:var(--field-input-invalid-focus-border)!important;box-shadow:var(--color-negative-outline) 0 0 0 2px!important}[data-tabbed=true]{box-shadow:var(--shadow-outline);border-radius:var(--rounded)}[data-theme=positive],[data-theme=success]{--theme:var(--color-positive);--theme-light:var(--color-positive-light);--theme-bg:var(--color-green-300)}[data-theme=error],[data-theme=negative]{--theme:var(--color-negative);--theme-light:var(--color-negative-light);--theme-bg:var(--color-red-300)}[data-theme=notice]{--theme:var(--color-notice);--theme-light:var(--color-notice-light);--theme-bg:var(--color-orange-300)}[data-theme=info]{--theme:var(--color-focus);--theme-light:var(--color-focus-light);--theme-bg:var(--color-blue-200)}.scroll-x,.scroll-x-auto,.scroll-y,.scroll-y-auto{-webkit-overflow-scrolling:touch;transform:translateZ(0)}.scroll-x,.scroll-x-auto{overflow-x:scroll;overflow-y:hidden}.scroll-x-auto{overflow-x:auto}.scroll-y,.scroll-y-auto{overflow-x:hidden;overflow-y:scroll}.scroll-y-auto{overflow-y:auto}.input-hidden{position:absolute;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:0;height:0;opacity:0}.k-offscreen,.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}
diff --git a/kirby/panel/dist/js/index.js b/kirby/panel/dist/js/index.js
index fb984ad..fa87b02 100644
--- a/kirby/panel/dist/js/index.js
+++ b/kirby/panel/dist/js/index.js
@@ -1 +1 @@
-import{V as t,s as e,I as s,P as n,S as i,F as o,N as r,a as l,l as a,w as u,c,e as d,t as p,b as h,d as m,f,g,h as k,k as b,D as v,i as y,E as $,j as _,m as x,n as w,T as S,u as C,o as O,p as A,r as T,q as I,v as j,x as E,y as M,z as L,A as B,B as D,C as P,G as N,H as F,J as q,K as R,L as z}from"./vendor.js";const Y=t=>({changeName:async(e,s,n)=>t.patch(e+"/files/"+s+"/name",{name:n}),delete:async(e,s)=>t.delete(e+"/files/"+s),async get(e,s,n){let i=await t.get(e+"/files/"+s,n);return!0===Array.isArray(i.content)&&(i.content={}),i},link(t,e,s){return"/"+this.url(t,e,s)},update:async(e,s,n)=>t.patch(e+"/files/"+s,n),url(t,e,s){let n=t+"/files/"+e;return s&&(n+="/"+s),n}}),H=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,n){return t.patch("pages/"+this.id(e)+"/status",{status:s,position:n})},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,n){return t.post("pages/"+this.id(e)+"/duplicate",{slug:s,children:n.children||!1,files:n.files||!1})},async get(e,s){let n=await t.get("pages/"+this.id(e),s);return!0===Array.isArray(n.content)&&(n.content={}),n},id:t=>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}});const U=t=>({running:0,async request(e,s,n=!1){s=Object.assign(s||{},{credentials:"same-origin",cache:"no-store",headers:{"x-requested-with":"xmlhttprequest","content-type":"application/json",...s.headers}}),t.methodOverwrite&&"GET"!==s.method&&"POST"!==s.method&&(s.headers["x-http-method-override"]=s.method,s.method="POST"),s=t.onPrepare(s);const i=e+"/"+JSON.stringify(s);t.onStart(i,n),this.running++;const o=await fetch([t.endpoint,e].join(t.endpoint.endsWith("/")||e.startsWith("/")?"":"/"),s);try{const e=await async function(t){const e=await t.text();let s;try{s=JSON.parse(e)}catch(n){return window.panel.$vue.$api.onParserError({html:e}),!1}return s}(o);if(o.status<200||o.status>299)throw e;if("error"===e.status)throw e;let s=e;return e.data&&"model"===e.type&&(s=e.data),this.running--,t.onComplete(i),t.onSuccess(e),s}catch(r){if(this.running--,t.onComplete(i),!1!==t.onError(r))throw r}},async get(t,e,s,n=!1){return e&&(t+="?"+Object.keys(e).filter((t=>void 0!==e[t]&&null!==e[t])).map((t=>t+"="+e[t])).join("&")),this.request(t,Object.assign(s||{},{method:"GET"}),n)},async post(t,e,s,n="POST",i=!1){return this.request(t,Object.assign(s||{},{method:n,body:JSON.stringify(e)}),i)},async patch(t,e,s,n=!1){return this.post(t,e,s,"PATCH",n)},async delete(t,e,s,n=!1){return this.post(t,e,s,"DELETE",n)}}),K=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)=>t.patch("users/"+e+"/password",{password:s}),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}}),V={install(t,e){t.prototype.$api=t.$api=((t={})=>{const e={...{endpoint:"/api",methodOverwrite:!0,onPrepare:t=>t,onStart(){},onComplete(){},onSuccess(){},onParserError(){},onError(t){throw window.console.log(t.message),t}},...t.config||{}};let s={...e,...U(e),...t};return s.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})}))(s),s.files=Y(s),s.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)}))(s),s.pages=H(s),s.roles=(t=>({list:async e=>t.get("roles",e),get:async e=>t.get("roles/"+e)}))(s),s.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)}))(s),s.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)}))(s),s.translations=(t=>({list:async()=>t.get("translations"),get:async e=>t.get("translations/"+e)}))(s),s.users=K(s),s})({config:{endpoint:window.panel.$urls.api,onComplete:s=>{t.$api.requests=t.$api.requests.filter((t=>t!==s)),0===t.$api.requests.length&&e.dispatch("isLoading",!1)},onError:e=>{if(window.panel.$config.debug&&window.console.error(e),403===e.code&&("Unauthenticated"===e.message||"access.panel"===e.key))return t.prototype.$go("/logout"),!1},onParserError:({html:t,silent:s})=>{e.dispatch("fatal",{html:t,silent:s})},onPrepare:t=>(window.panel.$language&&(t.headers["x-language"]=window.panel.$language.code),t.headers["x-csrf"]=window.panel.$system.csrf,t),onStart:(s,n=!1)=>{!1===n&&e.dispatch("isLoading",!0),t.$api.requests.push(s)},onSuccess:()=>{clearInterval(t.$api.ping),t.$api.ping=setInterval(t.$api.auth.ping,3e5)}},ping:null,requests:[]}),t.$api.ping=setInterval(t.$api.auth.ping,3e5)}},J={name:"Fiber",data:()=>({component:null,state:window.fiber,key:null}),created(){this.$fiber.init(this.state,{base:document.querySelector("base").href,headers:()=>({"X-CSRF":this.state.$system.csrf}),onFatal({text:t,options:e}){this.$store.dispatch("fatal",{html:t,silent:e.silent})},onFinish:()=>{0===this.$api.requests.length&&this.$store.dispatch("isLoading",!1)},onPushState:t=>{window.history.pushState(t,"",t.$url)},onReplaceState:t=>{window.history.replaceState(t,"",t.$url)},onStart:({silent:t})=>{!0!==t&&this.$store.dispatch("isLoading",!0)},onSwap:async(t,e)=>{e={navigate:!0,replace:!1,...e},this.setGlobals(t),this.setTitle(t),this.setTranslation(t),this.component=t.$view.component,this.state=t,this.key=!0===e.replace?this.key:t.$view.timestamp,!0===e.navigate&&this.navigate()},query:()=>{var t;return{language:null==(t=this.state.$language)?void 0:t.code}}}),window.addEventListener("popstate",this.$reload)},methods:{navigate(){this.$store.dispatch("navigate")},setGlobals(e){["$config","$direction","$language","$languages","$license","$menu","$multilang","$permissions","$searches","$system","$translation","$urls","$user","$view"].forEach((s=>{void 0!==e[s]?t.prototype[s]=window.panel[s]=e[s]:t.prototype[s]=e[s]=window.panel[s]}))},setTitle(t){t.$view.title?document.title=t.$view.title+" | "+t.$system.title:document.title=t.$system.title},setTranslation(t){t.$translation&&(document.documentElement.lang=t.$translation.code)}},render(t){if(this.component)return t(this.component,{key:this.key,props:this.state.$view.props})}};function G(t,e,s,n,i,o,r,l){var a,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=s,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),r?(a=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},u._ssrRegister=a):i&&(a=l?function(){i.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:i),a)if(u.functional){u._injectStyles=a;var c=u.render;u.render=function(t,e){return a.call(e),c(t,e)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,a):[a]}return{exports:t,options:u}}const W=G({props:{autofocus:{type:Boolean,default:!0},cancelButton:{type:[String,Boolean],default:!0},disabled:Boolean,icon:{type:String,default:"check"},size:{type:String,default:"default"},submitButton:{type:[String,Boolean],default:!0},theme:String,visible:Boolean},data:()=>({notification:null}),computed:{buttons(){let t=[];return this.cancelButton&&t.push({icon:"cancel",text:this.cancelButtonLabel,class:"k-dialog-button-cancel",click:this.cancel}),this.submitButtonConfig&&t.push({icon:this.icon,text:this.submitButtonLabel,theme:this.theme,class:"k-dialog-button-submit",click:this.submit,disabled:this.disabled}),t},cancelButtonLabel(){return!1!==this.cancelButton&&(!0===this.cancelButton||0===this.cancelButton.length?this.$t("cancel"):this.cancelButton)},submitButtonConfig(){return void 0!==this.$attrs.button?this.$attrs.button:void 0===this.submitButton||this.submitButton},submitButtonLabel(){return!0===this.submitButton||0===this.submitButton.length?this.$t("confirm"):this.submitButton}},created(){this.$events.$on("keydown.esc",this.close,!1)},destroyed(){this.$events.$off("keydown.esc",this.close,!1)},mounted(){this.visible&&this.$nextTick(this.open)},methods:{onOverlayClose(){this.notification=null,this.$emit("close"),this.$events.$off("keydown.esc",this.close),this.$store.dispatch("dialog",!1)},open(){this.$store.state.dialog||this.$store.dispatch("dialog",!0),this.notification=null,this.$refs.overlay.open(),this.$emit("open"),this.$events.$on("keydown.esc",this.close)},close(){this.$refs.overlay&&this.$refs.overlay.close()},cancel(){this.$emit("cancel"),this.close()},focus(){var t;if(null==(t=this.$refs.dialog)?void 0:t.querySelector){const t=this.$refs.dialog.querySelector(".k-dialog-button-cancel");"function"==typeof(null==t?void 0:t.focus)&&t.focus()}},error(t){this.notification={message:t,type:"error"}},submit(){this.$emit("submit")},success(t){this.notification={message:t,type:"success"}}}},(function(){var t=this,e=t._self._c;return e("k-overlay",{ref:"overlay",attrs:{autofocus:t.autofocus,centered:!0},on:{close:t.onOverlayClose,ready:function(e){return t.$emit("ready")}}},[e("div",{ref:"dialog",staticClass:"k-dialog",class:t.$vnode.data.staticClass,attrs:{"data-size":t.size},on:{mousedown:function(t){t.stopPropagation()}}},[t.notification?e("div",{staticClass:"k-dialog-notification",attrs:{"data-theme":t.notification.type}},[e("p",[t._v(t._s(t.notification.message))]),e("k-button",{attrs:{icon:"cancel"},on:{click:function(e){t.notification=null}}})],1):t._e(),e("div",{staticClass:"k-dialog-body scroll-y-auto"},[t._t("default")],2),t.$slots.footer||t.buttons.length?e("footer",{staticClass:"k-dialog-footer"},[t._t("footer",(function(){return[e("k-button-group",{attrs:{buttons:t.buttons}})]}))],2):t._e()])])}),[],!1,null,null,null,null).exports,X={props:{autofocus:{type:Boolean,default:!0},cancelButton:{type:[String,Boolean],default:!0},icon:String,submitButton:{type:[String,Boolean],default:!0},size:String,theme:String,visible:Boolean},methods:{close(){this.$refs.dialog.close(),this.$emit("close")},error(t){this.$refs.dialog.error(t)},open(){this.$refs.dialog.open(),this.$emit("open")},success(t){this.$refs.dialog.close(),t.route&&this.$go(t.route),t.message&&this.$store.dispatch("notification/success",t.message),t.event&&("string"==typeof t.event&&(t.event=[t.event]),t.event.forEach((e=>{this.$events.$emit(e,t)}))),!1!==Object.prototype.hasOwnProperty.call(t,"emit")&&!1===t.emit||this.$emit("success")}}};const Z=G({mixins:[X],props:{details:[Object,Array],message:String,size:{type:String,default:"medium"}},computed:{detailsList(){return Array.isArray(this.details)?this.details:Object.values(this.details||{})}}},(function(){var t=this,e=t._self._c;return e("k-dialog",{ref:"dialog",staticClass:"k-error-dialog",attrs:{"cancel-button":!1,size:t.size,visible:!0},on:{cancel:function(e){return t.$emit("cancel")},close:function(e){return t.$emit("close")},submit:function(e){return t.$refs.dialog.close()}}},[e("k-text",[t._v(t._s(t.message))]),t.detailsList.length?e("dl",{staticClass:"k-error-details"},[t._l(t.detailsList,(function(s,n){return[e("dt",{key:"detail-label-"+n},[t._v(" "+t._s(s.label)+" ")]),e("dd",{key:"detail-message-"+n},["object"==typeof s.message?[e("ul",t._l(s.message,(function(s,n){return e("li",{key:n},[t._v(" "+t._s(s)+" ")])})),0)]:[t._v(" "+t._s(s.message)+" ")]],2)]}))],2):t._e()],1)}),[],!1,null,null,null,null).exports;const Q=G({props:{code:Number,component:String,path:String,props:Object,referrer:String},data:()=>({isProcessing:!1}),methods:{close(){this.$refs.dialog.close()},onCancel(){"function"==typeof this.$store.state.dialog.cancel&&this.$store.state.dialog.cancel({dialog:this})},async onSubmit(t){if(!0===this.isProcessing)return!1;let e=null;this.isProcessing=!0;try{if("function"==typeof this.$store.state.dialog.submit)e=await this.$store.state.dialog.submit({dialog:this,value:t});else{if(!this.path)throw"The dialog needs a submit action or a dialog route path to be submitted";e=await this.$request(this.path,{body:t,method:"POST",type:"$dialog",headers:{"X-Fiber-Referrer":this.referrer}})}if(!1===e)return!1;this.$refs.dialog.success(e),e.dispatch&&Object.keys(e.dispatch).forEach((t=>{const s=e.dispatch[t];this.$store.dispatch(t,!0===Array.isArray(s)?[...s]:s)})),e.redirect?this.$go(e.redirect):this.$reload(e.reload||{})}catch(s){this.$refs.dialog.error(s)}finally{this.isProcessing=!1}}}},(function(){var t=this;return(0,t._self._c)(t.component,t._b({ref:"dialog",tag:"component",attrs:{disabled:t.isProcessing,visible:!0},on:{cancel:t.onCancel,submit:t.onSubmit}},"component",t.props,!1))}),[],!1,null,null,null,null).exports,tt=(t,e)=>{let s=null;return function(){clearTimeout(s),s=setTimeout((()=>t.apply(this,arguments)),e)}},et={data:()=>({models:[],issue:null,selected:{},options:{endpoint:null,max:null,multiple:!0,parent:null,selected:[],search:!0},search:null,pagination:{limit:20,page:1,total:0}}),computed:{checkedIcon(){return!0===this.multiple?"check":"circle-filled"},collection(){return{empty:this.emptyProps,items:this.items,link:!1,layout:"list",pagination:{details:!0,dropdown:!1,align:"center",...this.pagination},sortable:!1}},items(){return this.models.map(this.item)},multiple(){return!0===this.options.multiple&&1!==this.options.max}},watch:{search(){this.updateSearch()}},created(){this.updateSearch=tt(this.updateSearch,200)},methods:{async fetch(){const t={page:this.pagination.page,search:this.search,...this.fetchData||{}};try{const e=await this.$api.get(this.options.endpoint,t);this.models=e.data,this.pagination=e.pagination,this.onFetched&&this.onFetched(e)}catch(e){this.models=[],this.issue=e.message}},async open(t,s){this.pagination.page=0,this.search=null;let n=!0;Array.isArray(t)?(this.models=t,n=!1):(this.models=[],s=t),this.options={...this.options,...s},this.selected={},this.options.selected.forEach((t=>{e(this.selected,t,{id:t})})),n&&await this.fetch(),this.$refs.dialog.open()},paginate(t){this.pagination.page=t.page,this.pagination.limit=t.limit,this.fetch()},submit(){this.$emit("submit",Object.values(this.selected)),this.$refs.dialog.close()},isSelected(t){return void 0!==this.selected[t.id]},item:t=>t,toggle(t){!1!==this.options.multiple&&1!==this.options.max||(this.selected={}),!0!==this.isSelected(t)?this.options.max&&this.options.max<=Object.keys(this.selected).length||e(this.selected,t.id,t):this.$delete(this.selected,t.id)},toggleBtn(t){const e=this.isSelected(t);return{icon:e?this.checkedIcon:"circle-outline",tooltip:e?this.$t("remove"):this.$t("select"),theme:e?"positive":null}},updateSearch(){this.pagination.page=0,this.fetch()}}};const st=G({mixins:[et],computed:{emptyProps(){return{icon:"image",text:this.$t("dialog.files.empty")}}}},(function(){var t=this,e=t._self._c;return e("k-dialog",{ref:"dialog",staticClass:"k-files-dialog",attrs:{size:"medium"},on:{cancel:function(e){return t.$emit("cancel")},submit:t.submit}},[t.issue?[e("k-box",{attrs:{text:t.issue,theme:"negative"}})]:[t.options.search?e("k-input",{staticClass:"k-dialog-search",attrs:{autofocus:!0,placeholder:t.$t("search")+" …",value:t.search,type:"text",icon:"search"},on:{input:function(e){t.search=e}}}):t._e(),e("k-collection",t._b({on:{item:t.toggle,paginate:t.paginate},scopedSlots:t._u([{key:"options",fn:function({item:s}){return[e("k-button",t._b({on:{click:function(e){return t.toggle(s)}}},"k-button",t.toggleBtn(s),!1))]}}])},"k-collection",t.collection,!1))]],2)}),[],!1,null,null,null,null).exports;const nt=G({mixins:[X],props:{disabled:Boolean,fields:{type:[Array,Object],default:()=>[]},novalidate:{type:Boolean,default:!0},size:{type:String,default:"medium"},submitButton:{type:[String,Boolean],default:()=>window.panel.$t("save")},text:{type:String},theme:{type:String,default:"positive"},value:{type:Object,default:()=>({})}},data(){return{model:this.value}},computed:{hasFields(){return Object.keys(this.fields).length>0}},watch:{value(t){this.model=t}},methods:{onInput(t){this.model=t,this.$emit("input",t)},onSubmit(t){this.$emit("submit",t)}}},(function(){var t=this,e=t._self._c;return e("k-dialog",t._b({ref:"dialog",on:{cancel:function(e){return t.$emit("cancel")},close:function(e){return t.$emit("close")},ready:function(e){return t.$emit("ready")},submit:function(e){return t.$refs.form.submit()}}},"k-dialog",t.$props,!1),[t.text?[e("k-text",{attrs:{html:t.text}})]:t._e(),t.hasFields?e("k-form",{ref:"form",attrs:{value:t.model,fields:t.fields,novalidate:t.novalidate},on:{input:t.onInput,submit:t.onSubmit}}):e("k-box",{attrs:{theme:"negative"}},[t._v(" This form dialog has no fields ")])],2)}),[],!1,null,null,null,null).exports;const it=G({extends:nt,watch:{"model.name"(t){this.fields.code.disabled||this.onNameChanges(t)},"model.code"(t){this.fields.code.disabled||(this.model.code=this.$helper.slug(t,[this.$system.ascii]),this.onCodeChanges(this.model.code))}},methods:{onCodeChanges(t){if(!t)return this.model.locale=null;if(t.length>=2)if(-1!==t.indexOf("-")){let e=t.split("-"),s=[e[0],e[1].toUpperCase()];this.model.locale=s.join("_")}else{let e=this.$system.locales||[];(null==e?void 0:e[t])?this.model.locale=e[t]:this.model.locale=null}},onNameChanges(t){this.model.code=this.$helper.slug(t,[this.model.rules,this.$system.ascii]).substr(0,2)}}},null,null,!1,null,null,null,null).exports;const ot=G({mixins:[et],data(){const t=et.data();return{...t,model:{title:null,parent:null},options:{...t.options,parent:null}}},computed:{emptyProps(){return{icon:"page",text:this.$t("dialog.pages.empty")}},fetchData(){return{parent:this.options.parent}}},methods:{back(){this.options.parent=this.model.parent,this.pagination.page=1,this.fetch()},go(t){this.options.parent=t.id,this.pagination.page=1,this.fetch()},onFetched(t){this.model=t.model}}},(function(){var t=this,e=t._self._c;return e("k-dialog",{ref:"dialog",staticClass:"k-pages-dialog",attrs:{size:"medium"},on:{cancel:function(e){return t.$emit("cancel")},submit:t.submit}},[t.issue?[e("k-box",{attrs:{text:t.issue,theme:"negative"}})]:[t.model?e("header",{staticClass:"k-pages-dialog-navbar"},[e("k-button",{attrs:{disabled:!t.model.id,tooltip:t.$t("back"),icon:"angle-left"},on:{click:t.back}}),e("k-headline",[t._v(t._s(t.model.title))])],1):t._e(),t.options.search?e("k-input",{staticClass:"k-dialog-search",attrs:{autofocus:!0,placeholder:t.$t("search")+" …",value:t.search,type:"text",icon:"search"},on:{input:function(e){t.search=e}}}):t._e(),e("k-collection",t._b({on:{item:t.toggle,paginate:t.paginate},scopedSlots:t._u([{key:"options",fn:function({item:s}){return[e("k-button",t._b({on:{click:function(e){return t.toggle(s)}}},"k-button",t.toggleBtn(s),!1)),t.model?e("k-button",{attrs:{disabled:!s.hasChildren,tooltip:t.$t("open"),icon:"angle-right"},on:{click:function(e){return e.stopPropagation(),t.go(s)}}}):t._e()]}}])},"k-collection",t.collection,!1))]],2)}),[],!1,null,null,null,null).exports;const rt=G({mixins:[X],props:{disabled:Boolean,icon:{type:String,default:"trash"},submitButton:{type:[String,Boolean],default:()=>window.panel.$t("delete")},text:String,theme:{type:String,default:"negative"}}},(function(){var t=this;return(0,t._self._c)("k-text-dialog",t._g(t._b({ref:"dialog"},"k-text-dialog",t.$props,!1),t.$listeners),[t._t("default")],2)}),[],!1,null,null,null,null).exports;const lt=G({mixins:[X],props:{disabled:Boolean,text:String}},(function(){var t=this,e=t._self._c;return e("k-dialog",t._g(t._b({ref:"dialog"},"k-dialog",t.$props,!1),t.$listeners),[t._t("default",(function(){return[t.text?e("k-text",{attrs:{html:t.text}}):e("k-box",{attrs:{theme:"negative"}},[t._v(" This dialog does not define any text ")])]}))],2)}),[],!1,null,null,null,null).exports;const at=G({mixins:[et],computed:{emptyProps(){return{icon:"users",text:this.$t("dialog.users.empty")}}},methods:{item:t=>({...t,key:t.email,info:t.info!==t.text?t.info:null})}},(function(){var t=this,e=t._self._c;return e("k-dialog",{ref:"dialog",staticClass:"k-users-dialog",attrs:{size:"medium"},on:{cancel:function(e){return t.$emit("cancel")},submit:t.submit}},[t.issue?[e("k-box",{attrs:{text:t.issue,theme:"negative"}})]:[t.options.search?e("k-input",{staticClass:"k-dialog-search",attrs:{autofocus:!0,placeholder:t.$t("search")+" …",value:t.search,type:"text",icon:"search"},on:{input:function(e){t.search=e}}}):t._e(),e("k-collection",t._b({on:{item:t.toggle,paginate:t.paginate},scopedSlots:t._u([{key:"options",fn:function({item:s}){return[e("k-button",t._b({on:{click:function(e){return t.toggle(s)}}},"k-button",t.toggleBtn(s),!1))]}}])},"k-collection",t.collection,!1))]],2)}),[],!1,null,null,null,null).exports,ut={install(t){t.component("k-dialog",W),t.component("k-error-dialog",Z),t.component("k-fiber-dialog",Q),t.component("k-files-dialog",st),t.component("k-form-dialog",nt),t.component("k-language-dialog",it),t.component("k-pages-dialog",ot),t.component("k-remove-dialog",rt),t.component("k-text-dialog",lt),t.component("k-users-dialog",at)}};const ct=G({inheritAttrs:!1,props:{id:String,icon:String,tab:String,tabs:Object,title:String},data:()=>({click:!1}),computed:{breadcrumb(){return this.$store.state.drawers.open},hasTabs(){return this.tabs&&Object.keys(this.tabs).length>1},index(){return this.breadcrumb.findIndex((t=>t.id===this._uid))},nested(){return this.index>0}},watch:{index(){-1===this.index&&this.close()}},destroyed(){this.$store.dispatch("drawers/close",this._uid)},methods:{close(){this.$refs.overlay.close()},goTo(t){if(t===this._uid)return!0;this.$store.dispatch("drawers/goto",t)},mouseup(){!0===this.click&&this.close(),this.click=!1},mousedown(t=!1){this.click=t,!0===this.click&&this.$store.dispatch("drawers/close")},onClose(){this.$store.dispatch("drawers/close",this._uid),this.$emit("close")},onOpen(){this.$store.dispatch("drawers/open",{id:this._uid,icon:this.icon,title:this.title}),this.$emit("open")},open(){this.$refs.overlay.open()}}},(function(){var t=this,e=t._self._c;return e("k-overlay",{ref:"overlay",attrs:{dimmed:!1},on:{close:t.onClose,open:t.onOpen}},[e("div",{staticClass:"k-drawer",attrs:{"data-id":t.id,"data-nested":t.nested},on:{mousedown:function(e){return e.stopPropagation(),t.mousedown(!0)},mouseup:t.mouseup}},[e("div",{staticClass:"k-drawer-box",on:{mousedown:function(e){return e.stopPropagation(),t.mousedown(!1)}}},[e("header",{staticClass:"k-drawer-header"},[1===t.breadcrumb.length?e("h2",{staticClass:"k-drawer-title"},[e("k-icon",{attrs:{type:t.icon}}),t._v(" "+t._s(t.title)+" ")],1):e("ul",{staticClass:"k-drawer-breadcrumb"},t._l(t.breadcrumb,(function(s){return e("li",{key:s.id},[e("k-button",{attrs:{icon:s.icon,text:s.title},on:{click:function(e){return t.goTo(s.id)}}})],1)})),0),t.hasTabs?e("nav",{staticClass:"k-drawer-tabs"},t._l(t.tabs,(function(s){return e("k-button",{key:s.name,staticClass:"k-drawer-tab",attrs:{current:t.tab==s.name,text:s.label},on:{click:function(e){return e.stopPropagation(),t.$emit("tab",s.name)}}})})),1):t._e(),e("nav",{staticClass:"k-drawer-options"},[t._t("options"),e("k-button",{staticClass:"k-drawer-option",attrs:{icon:"check"},on:{click:t.close}})],2)]),e("div",{staticClass:"k-drawer-body scroll-y-auto"},[t._t("default")],2)])])])}),[],!1,null,null,null,null).exports;const dt=G({inheritAttrs:!1,props:{empty:{type:String,default:()=>"Missing field setup"},icon:String,id:String,tabs:Object,title:String,type:String,value:Object},data:()=>({tab:null}),computed:{fields(){const t=this.tab||null;return(this.tabs[t]||this.firstTab).fields||{}},firstTab(){return Object.values(this.tabs)[0]}},methods:{close(){this.$refs.drawer.close()},focus(t){var e;"function"==typeof(null==(e=this.$refs.form)?void 0:e.focus)&&this.$refs.form.focus(t)},open(t,e=!0){var s;this.$refs.drawer.open(),this.tab=t||this.firstTab.name,!0===e&&(e=null==(s=Object.values(this.fields).find((t=>!0===t.autofocus)))?void 0:s.name),setTimeout((()=>{this.focus(e)}),10)}}},(function(){var t=this,e=t._self._c;return e("k-drawer",{ref:"drawer",staticClass:"k-form-drawer",attrs:{id:t.id,icon:t.icon,tabs:t.tabs,tab:t.tab,title:t.title},on:{close:function(e){return t.$emit("close")},open:function(e){return t.$emit("open")},tab:function(e){t.tab=e}},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0},{key:"default",fn:function(){return[0===Object.keys(t.fields).length?e("k-box",{attrs:{theme:"info"}},[t._v(" "+t._s(t.empty)+" ")]):e("k-form",{ref:"form",attrs:{autofocus:!0,fields:t.fields,value:t.$helper.clone(t.value)},on:{input:function(e){return t.$emit("input",e)},invalid:function(e){return t.$emit("invalid",e)}}})]},proxy:!0}],null,!0)})}),[],!1,null,null,null,null).exports,pt={install(t){t.component("k-drawer",ct),t.component("k-form-drawer",dt)}};const ht=G({props:{html:{type:Boolean,default:!1},limit:{type:Number,default:10},skip:{type:Array,default:()=>[]},options:Array,query:String},data:()=>({matches:[],selected:{text:null}}),methods:{close(){this.$refs.dropdown.close()},onSelect(t){this.$emit("select",t),this.$refs.dropdown.close()},search(t){if(t.length<1)return;const e=new RegExp(RegExp.escape(t),"ig");this.matches=this.options.filter((t=>!!t.text&&(-1===this.skip.indexOf(t.value)&&null!==t.text.match(e)))).slice(0,this.limit),this.$emit("search",t,this.matches),this.$refs.dropdown.open()}}},(function(){var t=this,e=t._self._c;return e("k-dropdown",{staticClass:"k-autocomplete"},[t._t("default"),e("k-dropdown-content",t._g({ref:"dropdown",attrs:{autofocus:!0}},t.$listeners),t._l(t.matches,(function(s,n){return e("k-dropdown-item",t._b({key:n,on:{mousedown:function(e){return t.onSelect(s)},keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"tab",9,e.key,"Tab")?null:(e.preventDefault(),t.onSelect(s))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.onSelect(s))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"left",37,e.key,["Left","ArrowLeft"])||"button"in e&&0!==e.button?null:(e.preventDefault(),t.close.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"backspace",void 0,e.key,void 0)?null:(e.preventDefault(),t.close.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete","Del"])?null:(e.preventDefault(),t.close.apply(null,arguments))}]}},"k-dropdown-item",s,!1),[e("span",{domProps:{innerHTML:t._s(t.html?s.text:t.$esc(s.text))}})])})),1),t._v(" "+t._s(t.query)+" ")],2)}),[],!1,null,null,null,null).exports;const mt=G({props:{disabled:Boolean,max:String,min:String,value:String},data(){return this.data(this.value)},computed:{numberOfDays(){return this.toDate().daysInMonth()},firstWeekday(){const t=this.toDate().day();return t>0?t:7},weekdays(){return["mon","tue","wed","thu","fri","sat","sun"].map((t=>this.$t("days."+t)))},weeks(){const t=this.firstWeekday-1;return Math.ceil((this.numberOfDays+t)/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)=>{const n=this.toDate(1,s);t.push({value:s,text:e,disabled:n.isBefore(this.current.min,"month")||n.isAfter(this.current.max,"month")})})),t},years(){var t,e,s,n;const i=null!=(e=null==(t=this.current.min)?void 0:t.get("year"))?e:this.current.year-20,o=null!=(n=null==(s=this.current.max)?void 0:s.get("year"))?n:this.current.year+20;return this.toOptions(i,o)}},watch:{value(t){const e=this.data(t);this.dt=e.dt,this.current=e.current}},methods:{data(t){const e=this.$library.dayjs.iso(t),s=this.$library.dayjs();return{dt:e,current:{month:(null!=e?e:s).month(),year:(null!=e?e:s).year(),min:this.$library.dayjs.iso(this.min),max:this.$library.dayjs.iso(this.max)}}},days(t){let e=[];const s=7*(t-1)+1,n=s+7;for(let i=s;i|<\/p>)/gi,""),this.$emit("input",this.html)):this.$emit("input",this.list="")}}},(function(){var t=this;return(0,t._self._c)("k-writer",t._b({ref:"input",staticClass:"k-list-input",attrs:{extensions:t.extensions,nodes:["bulletList","orderedList"],value:t.list},on:{input:t.onInput}},"k-writer",t.$props,!1))}),[],!1,null,null,null,null).exports,Pe={mixins:[_t,wt,At],props:{max:Number,min:Number,layout:String,options:Array,search:[Object,Boolean],separator:{type:String,default:","},sort:Boolean,value:{type:Array,required:!0,default:()=>[]}}};const Ne=G({mixins:[Pe],inheritAttrs:!1,data(){return{state:this.value,q:null,limit:!0,scrollTop:0}},computed:{draggable(){return this.state.length>1&&!this.sort},dragOptions(){return{disabled:!this.draggable,draggable:".k-tag",delay:1}},emptyLabel(){return this.q?this.$t("search.results.none"):this.$t("options.none")},filtered(){var t;return(null==(t=this.q)?void 0:t.length)>=(this.search.min||0)?this.options.filter((t=>this.isFiltered(t))).map((t=>({...t,text:this.toHighlightedString(t.text)}))):this.options},more(){return!this.max||this.state.length |<\/p>)/gi,""),this.$emit("input",this.html)):this.$emit("input",this.list="")}}},(function(){var t=this;return(0,t._self._c)("k-writer",t._b({ref:"input",staticClass:"k-list-input",attrs:{extensions:t.extensions,nodes:["bulletList","orderedList"],value:t.list},on:{input:t.onInput}},"k-writer",t.$props,!1))}),[],!1,null,null,null,null).exports,qe={mixins:[Ct,At,Et],props:{max:Number,min:Number,layout:String,options:Array,search:[Object,Boolean],separator:{type:String,default:","},sort:Boolean,value:{type:Array,required:!0,default:()=>[]}}};const ze=Q({mixins:[qe],inheritAttrs:!1,data(){return{state:this.value,q:null,limit:!0,scrollTop:0}},computed:{draggable(){return this.state.length>1&&!this.sort},dragOptions(){return{disabled:!this.draggable,draggable:".k-tag",delay:1}},emptyLabel(){return this.q?this.$t("search.results.none"):this.$t("options.none")},filtered(){var t;return(null==(t=this.q)?void 0:t.length)>=(this.search.min||0)?this.options.filter((t=>this.isFiltered(t))).map((t=>({...t,text:this.toHighlightedString(t.text)}))):this.options},more(){return!this.max||this.state.lengththis.items.length-1){const t=this.items.filter((t=>!1===t.disabled));this.current=this.items.indexOf(t[t.length-1]);break}if(this.items[this.current]&&!1===this.items[this.current].disabled){this.focus(this.current);break}}break;case"Tab":for(;;){if(this.current++,this.current>this.items.length-1){this.close(),this.$emit("leave",t.code);break}if(this.items[this.current]&&!1===this.items[this.current].disabled)break}}}}},(function(){var t=this,e=t._self._c;return t.isOpen?e("div",{staticClass:"k-dropdown-content",attrs:{"data-align":t.align,"data-dropup":t.dropup,"data-theme":t.theme}},[t._t("default",(function(){return[t._l(t.items,(function(s,n){return["-"===s?e("hr",{key:n+"separator"}):e("k-dropdown-item",t._b({key:n+"-item",ref:n+"-item",refInFor:!0,on:{click:function(e){return t.onOptionClick(s)}}},"k-dropdown-item",s,!1),[t._v(" "+t._s(s.text)+" ")])]}))]}))],2):t._e()}),[],!1,null,null,null,null).exports;const Vn=G({inheritAttrs:!1,props:{disabled:Boolean,icon:String,image:[String,Object],link:String,target:String,theme:String,upload:String,current:[String,Boolean]},data(){return{listeners:{...this.$listeners,click:t=>{this.$parent.close(),this.$emit("click",t)}}}},methods:{focus(){this.$refs.button.focus()},tab(){this.$refs.button.tab()}}},(function(){var t=this;return(0,t._self._c)("k-button",t._g(t._b({ref:"button",staticClass:"k-dropdown-item"},"k-button",t.$props,!1),t.listeners),[t._t("default")],2)}),[],!1,null,null,null,null).exports;const Jn=G({mixins:[zn],props:{disabled:Boolean,rel:String,tabindex:[String,Number],target:String,title:String,to:[String,Function]},data(){return{relAttr:"_blank"===this.target?"noreferrer noopener":this.rel,listeners:{...this.$listeners,click:this.onClick}}},computed:{href(){return"function"==typeof this.to?"":"/"!==this.to[0]||this.target?!0===this.to.includes("@")&&!1===this.to.includes("/")?"mailto:"+this.to:this.to:this.$url(this.to)}},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",t._g({ref:"link",staticClass:"k-link",attrs:{href:t.href,rel:t.relAttr,tabindex:t.tabindex,target:t.target,title:t.title}},t.listeners),[t._t("default")],2):e("span",{staticClass:"k-link",attrs:{title:t.title,"data-disabled":""}},[t._t("default")],2)}),[],!1,null,null,null,null).exports;const Gn=G({computed:{defaultLanguage(){return this.$languages.find((t=>!0===t.default))},language(){return this.$language},languages(){return this.$languages.filter((t=>!1===t.default))}},methods:{change(t){this.$emit("change",t),this.$go(window.location,{query:{language:t.code}})}}},(function(){var t=this,e=t._self._c;return t.languages.length?e("k-dropdown",{staticClass:"k-languages-dropdown"},[e("k-button",{attrs:{text:t.language.name,responsive:!0,icon:"globe"},on:{click:function(e){return t.$refs.languages.toggle()}}}),t.languages?e("k-dropdown-content",{ref:"languages"},[e("k-dropdown-item",{on:{click:function(e){return t.change(t.defaultLanguage)}}},[t._v(" "+t._s(t.defaultLanguage.name)+" ")]),e("hr"),t._l(t.languages,(function(s){return e("k-dropdown-item",{key:s.code,on:{click:function(e){return t.change(s)}}},[t._v(" "+t._s(s.name)+" ")])}))],2):t._e()],1):t._e()}),[],!1,null,null,null,null).exports;const Wn=G({props:{align:{type:String,default:"right"},icon:{type:String,default:"dots"},options:{type:[Array,Function,String],default:()=>[]},text:{type:[Boolean,String],default:!0},theme:{type:String,default:"dark"}},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(){this.$refs.options.toggle()}}},(function(){var t=this,e=t._self._c;return t.hasSingleOption?e("k-button",{staticClass:"k-options-dropdown-toggle",attrs:{icon:t.options[0].icon||t.icon,tooltip:t.options[0].tooltip||t.options[0].text},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("k-dropdown",{staticClass:"k-options-dropdown"},[e("k-button",{staticClass:"k-options-dropdown-toggle",attrs:{icon:t.icon,tooltip:t.$t("options")},on:{click:function(e){return t.$refs.options.toggle()}}},[t.text&&!0!==t.text?[t._v(" "+t._s(t.text)+" ")]:t._e()],2),e("k-dropdown-content",{ref:"options",staticClass:"k-options-dropdown-content",attrs:{align:t.align,options:t.options},on:{action:t.onAction}})],1):t._e()}),[],!1,null,null,null,null).exports;const Xn=G({props:{align:{type:String,default:"left"},details:{type:Boolean,default:!1},dropdown:{type:Boolean,default:!0},keys:{type:Boolean,default:!1},limit:{type:Number,default:10},page:{type:Number,default:1},pageLabel:{type:String,default:()=>window.panel.$t("pagination.page")},total:{type:Number,default:0},prevLabel:{type:String,default:()=>window.panel.$t("prev")},nextLabel:{type:String,default:()=>window.panel.$t("next")},validate:{type:Function,default:()=>Promise.resolve()}},data(){return{currentPage:this.page}},computed:{show(){return this.pages>1},start(){return(this.currentPage-1)*this.limit+1},end(){let t=this.start-1+this.limit;return t>this.total?this.total:t},detailsText(){return 1===this.limit?this.start+" / ":this.start+"-"+this.end+" / "},pages(){return Math.ceil(this.total/this.limit)},hasPrev(){return this.start>1},hasNext(){return this.endthis.$children.length-1){const t=this.$children.filter((t=>!1===t.disabled));this.current=this.$children.indexOf(t[t.length-1]);break}if(this.$children[this.current]&&!1===this.$children[this.current].disabled){this.focus(this.current);break}}break;case"Tab":for(;;){if(this.current++,this.current>this.$children.length-1){this.close(),this.$emit("leave",t.code);break}if(this.$children[this.current]&&!1===this.$children[this.current].disabled)break}}}}},(function(){var t=this,e=t._self._c;return t.isOpen?e("div",{staticClass:"k-dropdown-content",attrs:{"data-align":t.align,"data-dropup":t.dropup,"data-theme":t.theme}},[t._t("default",(function(){return[t._l(t.items,(function(s,n){return["-"===s?e("hr",{key:t._uid+"-item-"+n}):e("k-dropdown-item",t._b({key:t._uid+"-item-"+n,ref:t._uid+"-item-"+n,refInFor:!0,on:{click:function(e){return t.onOptionClick(s)}}},"k-dropdown-item",s,!1),[t._v(" "+t._s(s.text)+" ")])]}))]}))],2):t._e()}),[],!1,null,null,null,null).exports;const Xn=Q({inheritAttrs:!1,props:{disabled:Boolean,icon:String,image:[String,Object],link:String,target:String,theme:String,upload:String,current:[String,Boolean]},data(){return{listeners:{...this.$listeners,click:t=>{this.$parent.close(),this.$emit("click",t)}}}},methods:{focus(){this.$refs.button.focus()},tab(){this.$refs.button.tab()}}},(function(){var t=this;return(0,t._self._c)("k-button",t._g(t._b({ref:"button",staticClass:"k-dropdown-item"},"k-button",t.$props,!1),t.listeners),[t._t("default")],2)}),[],!1,null,null,null,null).exports;const Zn=Q({mixins:[Kn],props:{disabled:Boolean,rel:String,tabindex:[String,Number],target:String,title:String,to:[String,Function]},data(){return{relAttr:"_blank"===this.target?"noreferrer noopener":this.rel,listeners:{...this.$listeners,click:this.onClick}}},computed:{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)}},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",t._g({ref:"link",staticClass:"k-link",attrs:{href:t.href,rel:t.relAttr,tabindex:t.tabindex,target:t.target,title:t.title}},t.listeners),[t._t("default")],2):e("span",{staticClass:"k-link",attrs:{title:t.title,"data-disabled":""}},[t._t("default")],2)}),[],!1,null,null,null,null).exports;const Qn=Q({computed:{defaultLanguage(){return this.$languages.find((t=>!0===t.default))},language(){return this.$language},languages(){return this.$languages.filter((t=>!1===t.default))}},methods:{change(t){this.$emit("change",t),this.$go(window.location,{query:{language:t.code}})}}},(function(){var t=this,e=t._self._c;return t.languages.length?e("k-dropdown",{staticClass:"k-languages-dropdown"},[e("k-button",{attrs:{text:t.language.name,responsive:!0,icon:"globe"},on:{click:function(e){return t.$refs.languages.toggle()}}}),t.languages?e("k-dropdown-content",{ref:"languages"},[e("k-dropdown-item",{on:{click:function(e){return t.change(t.defaultLanguage)}}},[t._v(" "+t._s(t.defaultLanguage.name)+" ")]),e("hr"),t._l(t.languages,(function(s){return e("k-dropdown-item",{key:s.code,on:{click:function(e){return t.change(s)}}},[t._v(" "+t._s(s.name)+" ")])}))],2):t._e()],1):t._e()}),[],!1,null,null,null,null).exports;const ti=Q({props:{align:{type:String,default:"right"},icon:{type:String,default:"dots"},options:{type:[Array,Function,String],default:()=>[]},text:{type:[Boolean,String],default:!0},theme:{type:String,default:"dark"}},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(){this.$refs.options.toggle()}}},(function(){var t=this,e=t._self._c;return t.hasSingleOption?e("k-button",{staticClass:"k-options-dropdown-toggle",attrs:{icon:t.options[0].icon||t.icon,tooltip:t.options[0].tooltip||t.options[0].text},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("k-dropdown",{staticClass:"k-options-dropdown"},[e("k-button",{staticClass:"k-options-dropdown-toggle",attrs:{icon:t.icon,tooltip:t.$t("options")},on:{click:function(e){return t.$refs.options.toggle()}}},[t.text&&!0!==t.text?[t._v(" "+t._s(t.text)+" ")]:t._e()],2),e("k-dropdown-content",{ref:"options",staticClass:"k-options-dropdown-content",attrs:{align:t.align,options:t.options},on:{action:t.onAction}})],1):t._e()}),[],!1,null,null,null,null).exports;const ei=Q({props:{align:{type:String,default:"left"},details:{type:Boolean,default:!1},dropdown:{type:Boolean,default:!0},keys:{type:Boolean,default:!1},limit:{type:Number,default:10},page:{type:Number,default:1},pageLabel:{type:String,default:()=>window.panel.$t("pagination.page")},total:{type:Number,default:0},prevLabel:{type:String,default:()=>window.panel.$t("prev")},nextLabel:{type:String,default:()=>window.panel.$t("next")},validate:{type:Function,default:()=>Promise.resolve()}},data(){return{currentPage:this.page}},computed:{show(){return this.pages>1},start(){return(this.currentPage-1)*this.limit+1},end(){let t=this.start-1+this.limit;return t>this.total?this.total:t},detailsText(){return 1===this.limit?this.start+" / ":this.start+"-"+this.end+" / "},pages(){return Math.ceil(this.total/this.limit)},hasPrev(){return this.start>1},hasNext(){return this.end1?C(n):n;for(var r=C(arguments,1),i='event handler for "'.concat(t,'"'),o=0,s=n.length;oparseInt(this.max)&&Gn(e,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Gn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Yn(t,(function(t){return Un(e,t)}))})),this.$watch("exclude",(function(e){Yn(t,(function(t){return!Un(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=we(t),n=e&&e.componentOptions;if(n){var r=Kn(n),i=this.include,o=this.exclude;if(i&&(!r||!Un(i,r))||o&&r&&Un(o,r))return e;var s=this.cache,a=this.keys,l=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;s[l]?(e.componentInstance=s[l].componentInstance,v(a,l),a.push(l)):(this.vnodeToCache=e,this.keyToCache=l),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return F}};Object.defineProperty(t,"config",e),t.util={warn:Dn,extend:$,mergeOptions:jn,defineReactive:$t},t.set=Nt,t.delete=Tt,t.nextTick=on,t.observable=function(t){return Ct(t),t},t.options=Object.create(null),z.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,$(t.options.components,Xn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=C(arguments,1);return n.unshift(this),s(t.install)?t.install.apply(t,n):s(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=jn(this.options,t),this}}(t),Hn(t),function(t){z.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&c(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&s(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Wn),Object.defineProperty(Wn.prototype,"$isServer",{get:nt}),Object.defineProperty(Wn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Wn,"FunctionalRenderContext",{value:Sn}),Wn.version="2.7.14";var Qn=p("style,class"),tr=p("input,textarea,option,select,progress"),er=function(t,e,n){return"value"===n&&tr(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},nr=p("contenteditable,draggable,spellcheck"),rr=p("events,caret,typing,plaintext-only"),ir=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),or="http://www.w3.org/1999/xlink",sr=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},ar=function(t){return sr(t)?t.slice(6,t.length):""},lr=function(t){return null==t||!1===t};function cr(t){for(var e=t.data,n=t,i=t;r(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(e=ur(i.data,e));for(;r(n=n.parent);)n&&n.data&&(e=ur(e,n.data));return function(t,e){if(r(t)||r(e))return dr(t,fr(e));return""}(e.staticClass,e.class)}function ur(t,e){return{staticClass:dr(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function dr(t,e){return t?e?t+" "+e:t:e||""}function fr(t){return Array.isArray(t)?function(t){for(var e,n="",i=0,o=t.length;i0&&(n="transition",u=s,d=o.length):"animation"===e?c>0&&(n="animation",u=c,d=l.length):d=(n=(u=Math.max(s,c))>0?s>c?"transition":"animation":null)?"transition"===n?o.length:l.length:0,{type:n,timeout:u,propCount:d,hasTransform:"transition"===n&&Qi.test(r[Ji+"Property"])}}function eo(t,e){for(;t.lengthi&&Ya(t,e,i+1),s=r.depth>i&&Ya(n,r,i+1),a=[];return Za(null,t,i,a),o&&s&&e.index(i)==n.index(i)?(Ua(o,s),Ga(Xa(o,Qa(t,e,n,r,i+1)),a)):(o&&Ga(Xa(o,tl(t,e,i+1)),a),Za(e,n,i,a),s&&Ga(Xa(s,tl(n,r,i+1)),a)),Za(r,null,i,a),new za(a)}function tl(t,e,n){let r=[];if(Za(null,t,n,r),t.depth>n){Ga(Xa(Ya(t,e,n+1),tl(t,e,n+1)),r)}return Za(e,null,n,r),new za(r)}qa.empty=new qa(za.empty,0,0);class el{constructor(t,e,n){this.pos=t,this.path=e,this.parentOffset=n,this.depth=e.length/3-1}resolveDepth(t){return null==t?this.depth:t<0?this.depth+t:t}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(t){return this.path[3*this.resolveDepth(t)]}index(t){return this.path[3*this.resolveDepth(t)+1]}indexAfter(t){return t=this.resolveDepth(t),this.index(t)+(t!=this.depth||this.textOffset?1:0)}start(t){return 0==(t=this.resolveDepth(t))?0:this.path[3*t-1]+1}end(t){return t=this.resolveDepth(t),this.start(t)+this.node(t).content.size}before(t){if(!(t=this.resolveDepth(t)))throw new RangeError("There is no position before the top-level node");return t==this.depth+1?this.pos:this.path[3*t-1]}after(t){if(!(t=this.resolveDepth(t)))throw new RangeError("There is no position after the top-level node");return t==this.depth+1?this.pos:this.path[3*t-1]+this.path[3*t].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let t=this.parent,e=this.index(this.depth);if(e==t.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=t.child(e);return n?t.child(e).cut(n):r}get nodeBefore(){let t=this.index(this.depth),e=this.pos-this.path[this.path.length-1];return e?this.parent.child(t).cut(0,e):0==t?null:this.parent.child(t-1)}posAtIndex(t,e){e=this.resolveDepth(e);let n=this.path[3*e],r=0==e?0:this.path[3*e-1]+1;for(let i=0;i{t.state==i&&fd(t)}),50)}function Dd(t,e,n){let r=t.state.selection;if(r instanceof Cc&&!r.empty||n.indexOf("s")>-1)return!1;if(vu&&n.indexOf("m")>-1)return!1;let{$from:i,$to:o}=r;if(!i.parent.inlineContent||t.endOfTextblock(e<0?"up":"down")){let n=kd(t.state,e);if(n&&n instanceof Nc)return Sd(t,n)}if(!i.parent.inlineContent){let n=e<0?i:o,s=r instanceof Dc?Sc.near(n,e):Sc.findFrom(n,e);return!!s&&Sd(t,s)}return!1}function Ad(t,e){if(!(t.state.selection instanceof Cc))return!0;let{$head:n,$anchor:r,empty:i}=t.state.selection;if(!n.sameParent(r))return!0;if(!i)return!1;if(t.endOfTextblock(e>0?"forward":"backward"))return!0;let o=!n.textOffset&&(e<0?n.nodeBefore:n.nodeAfter);if(o&&!o.isText){let r=t.state.tr;return e<0?r.delete(n.pos-o.nodeSize,n.pos):r.delete(n.pos,n.pos+o.nodeSize),t.dispatch(r),!0}return!1}function Ed(t,e,n){t.domObserver.stop(),e.contentEditable=n,t.domObserver.start()}function Pd(t,e){let n=e.keyCode,r=function(t){let e="";return t.ctrlKey&&(e+="c"),t.metaKey&&(e+="m"),t.altKey&&(e+="a"),t.shiftKey&&(e+="s"),e}(e);return 8==n||vu&&72==n&&"c"==r?Ad(t,-1)||Cd(t):46==n||vu&&68==n&&"c"==r?Ad(t,1)||$d(t):13==n||27==n||(37==n||vu&&66==n&&"c"==r?Od(t,-1,r)||Cd(t):39==n||vu&&70==n&&"c"==r?Od(t,1,r)||$d(t):38==n||vu&&80==n&&"c"==r?Dd(t,-1,r)||Cd(t):40==n||vu&&78==n&&"c"==r?function(t){if(!mu||t.state.selection.$head.parentOffset>0)return!1;let{focusNode:e,focusOffset:n}=t.domSelectionRange();if(e&&1==e.nodeType&&0==n&&e.firstChild&&"false"==e.firstChild.contentEditable){let n=e.firstChild;Ed(t,n,"true"),setTimeout((()=>Ed(t,n,"false")),20)}return!1}(t)||Dd(t,1,r)||$d(t):r==(vu?"m":"c")&&(66==n||73==n||89==n||90==n))}function Id(t,e){t.someProp("transformCopied",(n=>{e=n(e,t)}));let n=[],{content:r,openStart:i,openEnd:o}=e;for(;i>1&&o>1&&1==r.childCount&&1==r.firstChild.childCount;){i--,o--;let t=r.firstChild;n.push(t.type.name,t.attrs!=t.type.defaultAttrs?t.attrs:null),r=t.content}let s=t.someProp("clipboardSerializer")||zl.fromSchema(t.state.schema),a=Wd(),l=a.createElement("div");l.appendChild(s.serializeFragment(r,{document:a}));let c,u=l.firstChild,d=0;for(;u&&1==u.nodeType&&(c=qd[u.nodeName.toLowerCase()]);){for(let t=c.length-1;t>=0;t--){let e=a.createElement(c[t]);for(;l.firstChild;)e.appendChild(l.firstChild);l.appendChild(e),d++}u=l.firstChild}return u&&1==u.nodeType&&u.setAttribute("data-pm-slice",`${i} ${o}${d?` -${d}`:""} ${JSON.stringify(n)}`),{dom:l,text:t.someProp("clipboardTextSerializer",(n=>n(e,t)))||e.content.textBetween(0,e.content.size,"\n\n")}}function Rd(t,e,n,r,i){let o,s,a=i.parent.type.spec.code;if(!n&&!e)return null;let l=e&&(r||a||!n);if(l){if(t.someProp("transformPastedText",(n=>{e=n(e,a||r,t)})),a)return e?new qa(za.from(t.state.schema.text(e.replace(/\r\n?/g,"\n"))),0,0):qa.empty;let n=t.someProp("clipboardTextParser",(n=>n(e,i,r,t)));if(n)s=n;else{let n=i.marks(),{schema:r}=t.state,s=zl.fromSchema(r);o=document.createElement("div"),e.split(/(?:\r\n?|\n)+/).forEach((t=>{let e=o.appendChild(document.createElement("p"));t&&e.appendChild(s.serializeNode(r.text(t,n)))}))}}else t.someProp("transformPastedHTML",(e=>{n=e(n,t)})),o=function(t){let e=/^(\s*]*>)*/.exec(t);e&&(t=t.slice(e[0].length));let n,r=Wd().createElement("div"),i=/<([a-z][^>\s]+)/i.exec(t);(n=i&&qd[i[1].toLowerCase()])&&(t=n.map((t=>"<"+t+">")).join("")+t+n.map((t=>""+t+">")).reverse().join(""));if(r.innerHTML=t,n)for(let o=0;o=t){this.children[s]==t&&(n=this.children[s+2]);break}let i=t+1,o=i+e.content.size;for(let s=0;sm;p--)h-=i.child(p).nodeSize,r.delete(h-1,h+1);let o=r.doc.resolve(n.start),s=o.nodeAfter;if(r.mapping.map(n.end)!=n.start+o.nodeAfter.nodeSize)return!1;let a=0==n.startIndex,l=n.endIndex==i.childCount,c=o.node(-1),u=o.index(-1);if(!c.canReplace(u+(a?0:1),u+1,s.content.append(l?za.empty:za.from(i))))return!1;let d=o.pos,f=d+s.nodeSize;return r.step(new tc(d-(a?1:0),f+(l?1:0),d+1,f-1,new qa((a?za.empty:za.from(i.copy(za.empty))).append(l?za.empty:za.from(i.copy(za.empty))),a?0:1,l?0:1),a?0:1)),e(r.scrollIntoView()),!0}(e,n,o)))}}function Kh(t){return function(e,n){let{$from:r,$to:i}=e.selection,o=r.blockRange(i,(e=>e.childCount>0&&e.firstChild.type==t));if(!o)return!1;let s=o.startIndex;if(0==s)return!1;let a=o.parent,l=a.child(s-1);if(l.type!=t)return!1;if(n){let r=l.lastChild&&l.lastChild.type==a.type,i=za.from(r?t.create():null),s=new qa(za.from(t.create(null,za.from(a.type.create(null,i)))),r?3:1,0),c=o.start,u=o.end;n(e.tr.step(new tc(c-(r?3:1),u,c,u,s,1,!0)).scrollIntoView())}return!0}}var Uh=function(){};Uh.prototype.append=function(t){return t.length?(t=Uh.from(t),!this.length&&t||t.length<200&&this.leafAppend(t)||this.length<200&&t.leafPrepend(this)||this.appendInner(t)):this},Uh.prototype.prepend=function(t){return t.length?Uh.from(t).append(this):this},Uh.prototype.appendInner=function(t){return new Gh(this,t)},Uh.prototype.slice=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=this.length),t>=e?Uh.empty:this.sliceInner(Math.max(0,t),Math.min(this.length,e))},Uh.prototype.get=function(t){if(!(t<0||t>=this.length))return this.getInner(t)},Uh.prototype.forEach=function(t,e,n){void 0===e&&(e=0),void 0===n&&(n=this.length),e<=n?this.forEachInner(t,e,n,0):this.forEachInvertedInner(t,e,n,0)},Uh.prototype.map=function(t,e,n){void 0===e&&(e=0),void 0===n&&(n=this.length);var r=[];return this.forEach((function(e,n){return r.push(t(e,n))}),e,n),r},Uh.from=function(t){return t instanceof Uh?t:t&&t.length?new Yh(t):Uh.empty};var Yh=function(t){function e(e){t.call(this),this.values=e}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(t,n){return 0==t&&n==this.length?this:new e(this.values.slice(t,n))},e.prototype.getInner=function(t){return this.values[t]},e.prototype.forEachInner=function(t,e,n,r){for(var i=e;i1?C(n):n;for(var r=C(arguments,1),o='event handler for "'.concat(t,'"'),i=0,s=n.length;iparseInt(this.max)&&Zn(e,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Zn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Gn(t,(function(t){return Yn(e,t)}))})),this.$watch("exclude",(function(e){Gn(t,(function(t){return!Yn(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=xe(t),n=e&&e.componentOptions;if(n){var r=Un(n),o=this.include,i=this.exclude;if(o&&(!r||!Yn(o,r))||i&&r&&Yn(i,r))return e;var s=this.cache,a=this.keys,l=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;s[l]?(e.componentInstance=s[l].componentInstance,v(a,l),a.push(l)):(this.vnodeToCache=e,this.keyToCache=l),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return L}};Object.defineProperty(t,"config",e),t.util={warn:An,extend:$,mergeOptions:Fn,defineReactive:Nt},t.set=Tt,t.delete=Dt,t.nextTick=sn,t.observable=function(t){return $t(t),t},t.options=Object.create(null),j.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,$(t.options.components,Qn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=C(arguments,1);return n.unshift(this),s(t.install)?t.install.apply(t,n):s(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Fn(this.options,t),this}}(t),Kn(t),function(t){j.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&c(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&s(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Hn),Object.defineProperty(Hn.prototype,"$isServer",{get:rt}),Object.defineProperty(Hn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Hn,"FunctionalRenderContext",{value:On}),Hn.version="2.7.14";var tr=p("style,class"),er=p("input,textarea,option,select,progress"),nr=function(t,e,n){return"value"===n&&er(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},rr=p("contenteditable,draggable,spellcheck"),or=p("events,caret,typing,plaintext-only"),ir=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),sr="http://www.w3.org/1999/xlink",ar=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},lr=function(t){return ar(t)?t.slice(6,t.length):""},cr=function(t){return null==t||!1===t};function ur(t){for(var e=t.data,n=t,o=t;r(o.componentInstance);)(o=o.componentInstance._vnode)&&o.data&&(e=dr(o.data,e));for(;r(n=n.parent);)n&&n.data&&(e=dr(e,n.data));return function(t,e){if(r(t)||r(e))return fr(t,hr(e));return""}(e.staticClass,e.class)}function dr(t,e){return{staticClass:fr(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function fr(t,e){return t?e?t+" "+e:t:e||""}function hr(t){return Array.isArray(t)?function(t){for(var e,n="",o=0,i=t.length;o-1?Fr(t,e,n):ir(e)?cr(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):rr(e)?t.setAttribute(e,function(t,e){return cr(e)||"false"===e?"false":"contenteditable"===t&&or(e)?e:"true"}(e,n)):ar(e)?cr(n)?t.removeAttributeNS(sr,lr(e)):t.setAttributeNS(sr,e,n):Fr(t,e,n)}function Fr(t,e,n){if(cr(n))t.removeAttribute(e);else{if(U&&!Y&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Lr={create:zr,update:zr};function Br(t,e){var o=e.elm,i=e.data,s=t.data;if(!(n(i.staticClass)&&n(i.class)&&(n(s)||n(s.staticClass)&&n(s.class)))){var a=ur(e),l=o._transitionClasses;r(l)&&(a=fr(a,hr(l))),a!==o._prevClass&&(o.setAttribute("class",a),o._prevClass=a)}}var Vr,qr,Jr,Wr,Hr,Kr,Ur={create:Br,update:Br},Yr=/[\w).+\-_$\]]/;function Gr(t){var e,n,r,o,i,s=!1,a=!1,l=!1,c=!1,u=0,d=0,f=0,h=0;for(r=0;r0&&(n=Uo,u=s,d=i.length):e===Yo?c>0&&(n=Yo,u=c,d=l.length):d=(n=(u=Math.max(s,c))>0?s>c?Uo:Yo:null)?n===Uo?i.length:l.length:0,{type:n,timeout:u,propCount:d,hasTransform:n===Uo&&ii.test(r[Go+"Property"])}}function ai(t,e){for(;t.length