commit 388079e6bb5c8635e4c108ac920fbd04f450b620 Author: sarahgarcin1 Date: Mon Jan 5 19:33:15 2026 +0100 Initial commit diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..31cb096 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +[*.{css,scss,less,js,json,ts,sass,html,hbs,mustache,phtml,html.twig,md,yml}] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +indent_size = 4 +trim_trailing_whitespace = false + +[site/templates/**.php] +indent_size = 2 + +[site/snippets/**.php] +indent_size = 2 + +[package.json,.{babelrc,editorconfig,eslintrc,lintstagedrc,stylelintrc}] +indent_style = space +indent_size = 2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4908164 --- /dev/null +++ b/.gitignore @@ -0,0 +1,55 @@ +job-log.md + +# System files +# ------------ + +Icon +.DS_Store + +# Temporary files +# --------------- + +/media/* +!/media/index.html + +# Lock files +# --------------- + +.lock + +# Editors +# (sensitive workspace files) +# --------------------------- +*.sublime-workspace +/.vscode +/.idea + +# -------------SECURITY------------- +# NEVER publish these files via Git! +# -------------SECURITY------------- + +# Cache Files +# --------------- + +/site/cache/* +!/site/cache/index.html + +# Accounts +# --------------- + +/site/accounts/* +!/site/accounts/index.html + +# Sessions +# --------------- + +/site/sessions/* +!/site/sessions/index.html + +# License +# --------------- + +/site/config/.license + + + diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..5fe5c71 --- /dev/null +++ b/.htaccess @@ -0,0 +1,67 @@ +# Kirby .htaccess +# revision 2023-07-22 + +# rewrite rules + + +# enable awesome urls. i.e.: +# http://yourdomain.com/about-us/team +RewriteEngine on + +# make sure to set the RewriteBase correctly +# if you are running the site in a subfolder; +# otherwise links or the entire site will break. +# +# If your homepage is http://yourdomain.com/mysite, +# set the RewriteBase to: +# +# RewriteBase /mysite + +# In some environments it's necessary to +# set the RewriteBase to: +# +# RewriteBase / + +# block files and folders beginning with a dot, such as .git +# except for the .well-known folder, which is used for Let's Encrypt and security.txt +RewriteRule (^|/)\.(?!well-known\/) index.php [L] + +# block all files in the content folder from being accessed directly +RewriteRule ^content/(.*) index.php [L] + +# block all files in the site folder from being accessed directly +RewriteRule ^site/(.*) index.php [L] + +# block direct access to Kirby and the Panel sources +RewriteRule ^kirby/(.*) index.php [L] + +# make site links work +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule ^(.*) index.php [L] + + + +# pass the Authorization header to PHP +SetEnvIf Authorization "(.+)" HTTP_AUTHORIZATION=$1 + +# compress text file responses + +AddOutputFilterByType DEFLATE text/plain +AddOutputFilterByType DEFLATE text/html +AddOutputFilterByType DEFLATE text/css +AddOutputFilterByType DEFLATE text/javascript +AddOutputFilterByType DEFLATE application/json +AddOutputFilterByType DEFLATE application/javascript +AddOutputFilterByType DEFLATE application/x-javascript + + +# set security headers in all responses + + +# serve files as plain text if the actual content type is not known +# (hardens against attacks from malicious file uploads) +Header set Content-Type "text/plain" "expr=-z %{CONTENT_TYPE}" +Header set X-Content-Type-Options "nosniff" + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..7772e95 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ + + +**Kirby: the CMS that adapts to any project, loved by developers and editors alike.** +The Plainkit is a minimal Kirby setup with the basics you need to start a project from scratch. It is the ideal choice if you are already familiar with Kirby and want to start step-by-step. + +You can learn more about Kirby at [getkirby.com](https://getkirby.com). + +### Try Kirby for free + +You can try Kirby and the Plainkit 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). + +### Get going + +Read our guide on [how to get started with Kirby](https://getkirby.com/docs/guide/quickstart). + +You can [download the latest version](https://github.com/getkirby/plainkit/archive/main.zip) of the Plainkit. +If you are familiar with Git, you can clone Kirby's Plainkit repository from Github. + + git clone https://github.com/getkirby/plainkit.git + +## 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. +- **[Documentation](https://getkirby.com/docs/guide)** – Read the official guide, reference and cookbook recipes. +- **[Issues](https://github.com/getkirby/kirby/issues)** – Report bugs and other problems. +- **[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. +- **[Mastodon](https://mastodon.social/@getkirby)** – Spread the word. +- **[Bluesky](https://bsky.app/profile/getkirby.com)** – Spread the word. + +--- + +© 2009 Bastian Allgeier +[getkirby.com](https://getkirby.com) · [License agreement](https://getkirby.com/license) diff --git a/assets/css/libs/flexboxgrid.css b/assets/css/libs/flexboxgrid.css new file mode 100644 index 0000000..5153eb8 --- /dev/null +++ b/assets/css/libs/flexboxgrid.css @@ -0,0 +1,1196 @@ +.container-fluid, +.container { + margin-right: auto; + margin-left: auto; +} + +.container-fluid { + padding-right: 2rem; + padding-left: 2rem; +} + +.row { + box-sizing: border-box; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -0.8rem; + margin-left: -0.8rem; +} + +.row.reverse { + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; +} + +.col.reverse { + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; +} + +.col-xs, +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-xs-offset-0, +.col-xs-offset-1, +.col-xs-offset-2, +.col-xs-offset-3, +.col-xs-offset-4, +.col-xs-offset-5, +.col-xs-offset-6, +.col-xs-offset-7, +.col-xs-offset-8, +.col-xs-offset-9, +.col-xs-offset-10, +.col-xs-offset-11, +.col-xs-offset-12 { + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + padding-right: 0.8rem; + padding-left: 0.8rem; +} + +.col-xs { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100%; +} + +.col-xs-1 { + -ms-flex-preferred-size: 8.33333333%; + flex-basis: 8.33333333%; + max-width: 8.33333333%; +} + +.col-xs-2 { + -ms-flex-preferred-size: 16.66666667%; + flex-basis: 16.66666667%; + max-width: 16.66666667%; +} + +.col-xs-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25%; +} + +.col-xs-4 { + -ms-flex-preferred-size: 33.33333333%; + flex-basis: 33.33333333%; + max-width: 33.33333333%; +} + +.col-xs-5 { + -ms-flex-preferred-size: 41.66666667%; + flex-basis: 41.66666667%; + max-width: 41.66666667%; +} + +.col-xs-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50%; +} + +.col-xs-7 { + -ms-flex-preferred-size: 58.33333333%; + flex-basis: 58.33333333%; + max-width: 58.33333333%; +} + +.col-xs-8 { + -ms-flex-preferred-size: 66.66666667%; + flex-basis: 66.66666667%; + max-width: 66.66666667%; +} + +.col-xs-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75%; +} + +.col-xs-10 { + -ms-flex-preferred-size: 83.33333333%; + flex-basis: 83.33333333%; + max-width: 83.33333333%; +} + +.col-xs-11 { + -ms-flex-preferred-size: 91.66666667%; + flex-basis: 91.66666667%; + max-width: 91.66666667%; +} + +.col-xs-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100%; +} + +.col-xs-offset-0 { + margin-left: 0; +} + +.col-xs-offset-1 { + margin-left: 8.33333333%; +} + +.col-xs-offset-2 { + margin-left: 16.66666667%; +} + +.col-xs-offset-3 { + margin-left: 25%; +} + +.col-xs-offset-4 { + margin-left: 33.33333333%; +} + +.col-xs-offset-5 { + margin-left: 41.66666667%; +} + +.col-xs-offset-6 { + margin-left: 50%; +} + +.col-xs-offset-7 { + margin-left: 58.33333333%; +} + +.col-xs-offset-8 { + margin-left: 66.66666667%; +} + +.col-xs-offset-9 { + margin-left: 75%; +} + +.col-xs-offset-10 { + margin-left: 83.33333333%; +} + +.col-xs-offset-11 { + margin-left: 91.66666667%; +} + +.start-xs { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: start; +} + +.center-xs { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; +} + +.end-xs { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: end; +} + +.top-xs { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; +} + +.middle-xs { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.bottom-xs { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; +} + +.around-xs { + -ms-flex-pack: distribute; + justify-content: space-around; +} + +.between-xs { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.first-xs { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; +} + +.last-xs { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; +} + +@media only screen and (min-width: 48em) { + .container { + width: 49rem; + } + + .col-sm, + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12, + .col-sm-offset-0, + .col-sm-offset-1, + .col-sm-offset-2, + .col-sm-offset-3, + .col-sm-offset-4, + .col-sm-offset-5, + .col-sm-offset-6, + .col-sm-offset-7, + .col-sm-offset-8, + .col-sm-offset-9, + .col-sm-offset-10, + .col-sm-offset-11, + .col-sm-offset-12 { + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + padding-right: 0.8rem; + padding-left: 0.8rem; + } + + .col-sm { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100%; + } + + .col-sm-1 { + -ms-flex-preferred-size: 8.33333333%; + flex-basis: 8.33333333%; + max-width: 8.33333333%; + } + + .col-sm-2 { + -ms-flex-preferred-size: 16.66666667%; + flex-basis: 16.66666667%; + max-width: 16.66666667%; + } + + .col-sm-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25%; + } + + .col-sm-4 { + -ms-flex-preferred-size: 33.33333333%; + flex-basis: 33.33333333%; + max-width: 33.33333333%; + } + + .col-sm-5 { + -ms-flex-preferred-size: 41.66666667%; + flex-basis: 41.66666667%; + max-width: 41.66666667%; + } + + .col-sm-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50%; + } + + .col-sm-7 { + -ms-flex-preferred-size: 58.33333333%; + flex-basis: 58.33333333%; + max-width: 58.33333333%; + } + + .col-sm-8 { + -ms-flex-preferred-size: 66.66666667%; + flex-basis: 66.66666667%; + max-width: 66.66666667%; + } + + .col-sm-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75%; + } + + .col-sm-10 { + -ms-flex-preferred-size: 83.33333333%; + flex-basis: 83.33333333%; + max-width: 83.33333333%; + } + + .col-sm-11 { + -ms-flex-preferred-size: 91.66666667%; + flex-basis: 91.66666667%; + max-width: 91.66666667%; + } + + .col-sm-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100%; + } + + .col-sm-offset-0 { + margin-left: 0; + } + + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + + .col-sm-offset-3 { + margin-left: 25%; + } + + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + + .col-sm-offset-6 { + margin-left: 50%; + } + + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + + .col-sm-offset-9 { + margin-left: 75%; + } + + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + + .start-sm { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: start; + } + + .center-sm { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; + } + + .end-sm { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: end; + } + + .top-sm { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + } + + .middle-sm { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + } + + .bottom-sm { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + } + + .around-sm { + -ms-flex-pack: distribute; + justify-content: space-around; + } + + .between-sm { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + } + + .first-sm { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .last-sm { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } +} + +@media only screen and (min-width: 64em) { + .container { + width: 65rem; + } + + .col-md, + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12, + .col-md-offset-0, + .col-md-offset-1, + .col-md-offset-2, + .col-md-offset-3, + .col-md-offset-4, + .col-md-offset-5, + .col-md-offset-6, + .col-md-offset-7, + .col-md-offset-8, + .col-md-offset-9, + .col-md-offset-10, + .col-md-offset-11, + .col-md-offset-12 { + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + padding-right: 0.8rem; + padding-left: 0.8rem; + } + + .col-md { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100%; + } + + .col-md-1 { + -ms-flex-preferred-size: 8.33333333%; + flex-basis: 8.33333333%; + max-width: 8.33333333%; + } + + .col-md-2 { + -ms-flex-preferred-size: 16.66666667%; + flex-basis: 16.66666667%; + max-width: 16.66666667%; + } + + .col-md-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25%; + } + + .col-md-4 { + -ms-flex-preferred-size: 33.33333333%; + flex-basis: 33.33333333%; + max-width: 33.33333333%; + } + + .col-md-5 { + -ms-flex-preferred-size: 41.66666667%; + flex-basis: 41.66666667%; + max-width: 41.66666667%; + } + + .col-md-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50%; + } + + .col-md-7 { + -ms-flex-preferred-size: 58.33333333%; + flex-basis: 58.33333333%; + max-width: 58.33333333%; + } + + .col-md-8 { + -ms-flex-preferred-size: 66.66666667%; + flex-basis: 66.66666667%; + max-width: 66.66666667%; + } + + .col-md-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75%; + } + + .col-md-10 { + -ms-flex-preferred-size: 83.33333333%; + flex-basis: 83.33333333%; + max-width: 83.33333333%; + } + + .col-md-11 { + -ms-flex-preferred-size: 91.66666667%; + flex-basis: 91.66666667%; + max-width: 91.66666667%; + } + + .col-md-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100%; + } + + .col-md-offset-0 { + margin-left: 0; + } + + .col-md-offset-1 { + margin-left: 8.33333333%; + } + + .col-md-offset-2 { + margin-left: 16.66666667%; + } + + .col-md-offset-3 { + margin-left: 25%; + } + + .col-md-offset-4 { + margin-left: 33.33333333%; + } + + .col-md-offset-5 { + margin-left: 41.66666667%; + } + + .col-md-offset-6 { + margin-left: 50%; + } + + .col-md-offset-7 { + margin-left: 58.33333333%; + } + + .col-md-offset-8 { + margin-left: 66.66666667%; + } + + .col-md-offset-9 { + margin-left: 75%; + } + + .col-md-offset-10 { + margin-left: 83.33333333%; + } + + .col-md-offset-11 { + margin-left: 91.66666667%; + } + + .start-md { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: start; + } + + .center-md { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; + } + + .end-md { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: end; + } + + .top-md { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + } + + .middle-md { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + } + + .bottom-md { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + } + + .around-md { + -ms-flex-pack: distribute; + justify-content: space-around; + } + + .between-md { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + } + + .first-md { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .last-md { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } +} + +@media only screen and (min-width: 75em) { + .container { + width: 76rem; + } + + .col-lg, + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12, + .col-lg-offset-0, + .col-lg-offset-1, + .col-lg-offset-2, + .col-lg-offset-3, + .col-lg-offset-4, + .col-lg-offset-5, + .col-lg-offset-6, + .col-lg-offset-7, + .col-lg-offset-8, + .col-lg-offset-9, + .col-lg-offset-10, + .col-lg-offset-11, + .col-lg-offset-12 { + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + padding-right: 0.8rem; + padding-left: 0.8rem; + } + + .col-lg { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100%; + } + + .col-lg-1 { + -ms-flex-preferred-size: 8.33333333%; + flex-basis: 8.33333333%; + max-width: 8.33333333%; + } + + .col-lg-2 { + -ms-flex-preferred-size: 16.66666667%; + flex-basis: 16.66666667%; + max-width: 16.66666667%; + } + + .col-lg-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25%; + } + + .col-lg-4 { + -ms-flex-preferred-size: 33.33333333%; + flex-basis: 33.33333333%; + max-width: 33.33333333%; + } + + .col-lg-5 { + -ms-flex-preferred-size: 41.66666667%; + flex-basis: 41.66666667%; + max-width: 41.66666667%; + } + + .col-lg-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50%; + } + + .col-lg-7 { + -ms-flex-preferred-size: 58.33333333%; + flex-basis: 58.33333333%; + max-width: 58.33333333%; + } + + .col-lg-8 { + -ms-flex-preferred-size: 66.66666667%; + flex-basis: 66.66666667%; + max-width: 66.66666667%; + } + + .col-lg-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75%; + } + + .col-lg-10 { + -ms-flex-preferred-size: 83.33333333%; + flex-basis: 83.33333333%; + max-width: 83.33333333%; + } + + .col-lg-11 { + -ms-flex-preferred-size: 91.66666667%; + flex-basis: 91.66666667%; + max-width: 91.66666667%; + } + + .col-lg-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100%; + } + + .col-lg-offset-0 { + margin-left: 0; + } + + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + + .col-lg-offset-3 { + margin-left: 25%; + } + + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + + .col-lg-offset-6 { + margin-left: 50%; + } + + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + + .col-lg-offset-9 { + margin-left: 75%; + } + + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + + .start-lg { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: start; + } + + .center-lg { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; + } + + .end-lg { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: end; + } + + .top-lg { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + } + + .middle-lg { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + } + + .bottom-lg { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + } + + .around-lg { + -ms-flex-pack: distribute; + justify-content: space-around; + } + + .between-lg { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + } + + .first-lg { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .last-lg { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } +} + + +@media only screen and (min-width: 90em) { + .container { + width: 91rem; + } + + .col-xl, + .col-xl-1, + .col-xl-2, + .col-xl-3, + .col-xl-4, + .col-xl-5, + .col-xl-6, + .col-xl-7, + .col-xl-8, + .col-xl-9, + .col-xl-10, + .col-xl-11, + .col-xl-12, + .col-xl-offset-0, + .col-xl-offset-1, + .col-xl-offset-2, + .col-xl-offset-3, + .col-xl-offset-4, + .col-xl-offset-5, + .col-xl-offset-6, + .col-xl-offset-7, + .col-xl-offset-8, + .col-xl-offset-9, + .col-xl-offset-10, + .col-xl-offset-11, + .col-xl-offset-12 { + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + padding-right: 0.8rem; + padding-left: 0.8rem; + } + + .col-xl { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100%; + } + + .col-xl-1 { + -ms-flex-preferred-size: 8.33333333%; + flex-basis: 8.33333333%; + max-width: 8.33333333%; + } + + .col-xl-2 { + -ms-flex-preferred-size: 16.66666667%; + flex-basis: 16.66666667%; + max-width: 16.66666667%; + } + + .col-xl-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25%; + } + + .col-xl-4 { + -ms-flex-preferred-size: 33.33333333%; + flex-basis: 33.33333333%; + max-width: 33.33333333%; + } + + .col-xl-5 { + -ms-flex-preferred-size: 41.66666667%; + flex-basis: 41.66666667%; + max-width: 41.66666667%; + } + + .col-xl-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50%; + } + + .col-xl-7 { + -ms-flex-preferred-size: 58.33333333%; + flex-basis: 58.33333333%; + max-width: 58.33333333%; + } + + .col-xl-8 { + -ms-flex-preferred-size: 66.66666667%; + flex-basis: 66.66666667%; + max-width: 66.66666667%; + } + + .col-xl-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75%; + } + + .col-xl-10 { + -ms-flex-preferred-size: 83.33333333%; + flex-basis: 83.33333333%; + max-width: 83.33333333%; + } + + .col-xl-11 { + -ms-flex-preferred-size: 91.66666667%; + flex-basis: 91.66666667%; + max-width: 91.66666667%; + } + + .col-xl-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100%; + } + + .col-xl-offset-0 { + margin-left: 0; + } + + .col-xl-offset-1 { + margin-left: 8.33333333%; + } + + .col-xl-offset-2 { + margin-left: 16.66666667%; + } + + .col-xl-offset-3 { + margin-left: 25%; + } + + .col-xl-offset-4 { + margin-left: 33.33333333%; + } + + .col-xl-offset-5 { + margin-left: 41.66666667%; + } + + .col-xl-offset-6 { + margin-left: 50%; + } + + .col-xl-offset-7 { + margin-left: 58.33333333%; + } + + .col-xl-offset-8 { + margin-left: 66.66666667%; + } + + .col-xl-offset-9 { + margin-left: 75%; + } + + .col-xl-offset-10 { + margin-left: 83.33333333%; + } + + .col-xl-offset-11 { + margin-left: 91.66666667%; + } + + .start-xl { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: start; + } + + .center-xl { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; + } + + .end-xl { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: end; + } + + .top-xl { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + } + + .middle-xl { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + } + + .bottom-xl { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + } + + .around-xl { + -ms-flex-pack: distribute; + justify-content: space-around; + } + + .between-xl { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + } + + .first-xl { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .last-xl { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } +} + + + + diff --git a/assets/css/libs/glightbox.min.css b/assets/css/libs/glightbox.min.css new file mode 100644 index 0000000..3c9ff87 --- /dev/null +++ b/assets/css/libs/glightbox.min.css @@ -0,0 +1 @@ +.glightbox-container{width:100%;height:100%;position:fixed;top:0;left:0;z-index:999999!important;overflow:hidden;-ms-touch-action:none;touch-action:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:0}.glightbox-container.inactive{display:none}.glightbox-container .gcontainer{position:relative;width:100%;height:100%;z-index:9999;overflow:hidden}.glightbox-container .gslider{-webkit-transition:-webkit-transform .4s ease;transition:-webkit-transform .4s ease;transition:transform .4s ease;transition:transform .4s ease,-webkit-transform .4s ease;height:100%;left:0;top:0;width:100%;position:relative;overflow:hidden;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.glightbox-container .gslide{width:100%;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;opacity:0}.glightbox-container .gslide.current{opacity:1;z-index:99999;position:relative}.glightbox-container .gslide.prev{opacity:1;z-index:9999}.glightbox-container .gslide-inner-content{width:100%}.glightbox-container .ginner-container{position:relative;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;margin:auto;height:100vh}.glightbox-container .ginner-container.gvideo-container{width:100%}.glightbox-container .ginner-container.desc-bottom,.glightbox-container .ginner-container.desc-top{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.glightbox-container .ginner-container.desc-left,.glightbox-container .ginner-container.desc-right{max-width:100%!important}.gslide iframe,.gslide video{outline:0!important;border:none;min-height:165px;-webkit-overflow-scrolling:touch;-ms-touch-action:auto;touch-action:auto}.gslide:not(.current){pointer-events:none}.gslide-image{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.gslide-image img{max-height:100vh;display:block;padding:0;float:none;outline:0;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:100vw;width:auto;height:auto;-o-object-fit:cover;object-fit:cover;-ms-touch-action:none;touch-action:none;margin:auto;min-width:200px}.desc-bottom .gslide-image img,.desc-top .gslide-image img{width:auto}.desc-left .gslide-image img,.desc-right .gslide-image img{width:auto;max-width:100%}.gslide-image img.zoomable{position:relative}.gslide-image img.dragging{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-transition:none;transition:none}.gslide-video{position:relative;max-width:100vh;width:100%!important}.gslide-video .plyr__poster-enabled.plyr--loading .plyr__poster{display:none}.gslide-video .gvideo-wrapper{width:100%;margin:auto}.gslide-video::before{content:'';position:absolute;width:100%;height:100%;background:rgba(255,0,0,.34);display:none}.gslide-video.playing::before{display:none}.gslide-video.fullscreen{max-width:100%!important;min-width:100%;height:75vh}.gslide-video.fullscreen video{max-width:100%!important;width:100%!important}.gslide-inline{background:#fff;text-align:left;max-height:calc(100vh - 40px);overflow:auto;max-width:100%;margin:auto}.gslide-inline .ginlined-content{padding:20px;width:100%}.gslide-inline .dragging{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-transition:none;transition:none}.ginlined-content{overflow:auto;display:block!important;opacity:1}.gslide-external{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;min-width:100%;background:#fff;padding:0;overflow:auto;max-height:75vh;height:100%}.gslide-media{display:-webkit-box;display:-ms-flexbox;display:flex;width:auto}.zoomed .gslide-media{-webkit-box-shadow:none!important;box-shadow:none!important}.desc-bottom .gslide-media,.desc-top .gslide-media{margin:0 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.gslide-description{position:relative;-webkit-box-flex:1;-ms-flex:1 0 100%;flex:1 0 100%}.gslide-description.description-left,.gslide-description.description-right{max-width:100%}.gslide-description.description-bottom,.gslide-description.description-top{margin:0 auto;width:100%}.gslide-description p{margin-bottom:12px}.gslide-description p:last-child{margin-bottom:0}.zoomed .gslide-description{display:none}.glightbox-button-hidden{display:none}.glightbox-mobile .glightbox-container .gslide-description{height:auto!important;width:100%;position:absolute;bottom:0;padding:19px 11px;max-width:100vw!important;-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important;max-height:78vh;overflow:auto!important;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.75)));background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.75) 100%);-webkit-transition:opacity .3s linear;transition:opacity .3s linear;padding-bottom:50px}.glightbox-mobile .glightbox-container .gslide-title{color:#fff;font-size:1em}.glightbox-mobile .glightbox-container .gslide-desc{color:#a1a1a1}.glightbox-mobile .glightbox-container .gslide-desc a{color:#fff;font-weight:700}.glightbox-mobile .glightbox-container .gslide-desc *{color:inherit}.glightbox-mobile .glightbox-container .gslide-desc .desc-more{color:#fff;opacity:.4}.gdesc-open .gslide-media{-webkit-transition:opacity .5s ease;transition:opacity .5s ease;opacity:.4}.gdesc-open .gdesc-inner{padding-bottom:30px}.gdesc-closed .gslide-media{-webkit-transition:opacity .5s ease;transition:opacity .5s ease;opacity:1}.greset{-webkit-transition:all .3s ease;transition:all .3s ease}.gabsolute{position:absolute}.grelative{position:relative}.glightbox-desc{display:none!important}.glightbox-open{overflow:hidden}.gloader{height:25px;width:25px;-webkit-animation:lightboxLoader .8s infinite linear;animation:lightboxLoader .8s infinite linear;border:2px solid #fff;border-right-color:transparent;border-radius:50%;position:absolute;display:block;z-index:9999;left:0;right:0;margin:0 auto;top:47%}.goverlay{width:100%;height:calc(100vh + 1px);position:fixed;top:-1px;left:0;background:#000;will-change:opacity}.glightbox-mobile .goverlay{background:#000}.gclose,.gnext,.gprev{z-index:99999;cursor:pointer;width:26px;height:44px;border:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.gclose svg,.gnext svg,.gprev svg{display:block;width:25px;height:auto;margin:0;padding:0}.gclose.disabled,.gnext.disabled,.gprev.disabled{opacity:.1}.gclose .garrow,.gnext .garrow,.gprev .garrow{stroke:#fff}.gbtn.focused{outline:2px solid #0f3d81}iframe.wait-autoplay{opacity:0}.glightbox-closing .gclose,.glightbox-closing .gnext,.glightbox-closing .gprev{opacity:0!important}.glightbox-clean .gslide-description{background:#fff}.glightbox-clean .gdesc-inner{padding:22px 20px}.glightbox-clean .gslide-title{font-size:1em;font-weight:400;font-family:arial;color:#000;margin-bottom:19px;line-height:1.4em}.glightbox-clean .gslide-desc{font-size:.86em;margin-bottom:0;font-family:arial;line-height:1.4em}.glightbox-clean .gslide-video{background:#000}.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgba(0,0,0,.75);border-radius:4px}.glightbox-clean .gclose path,.glightbox-clean .gnext path,.glightbox-clean .gprev path{fill:#fff}.glightbox-clean .gprev{position:absolute;top:-100%;left:30px;width:40px;height:50px}.glightbox-clean .gnext{position:absolute;top:-100%;right:30px;width:40px;height:50px}.glightbox-clean .gclose{width:35px;height:35px;top:15px;right:10px;position:absolute}.glightbox-clean .gclose svg{width:18px;height:auto}.glightbox-clean .gclose:hover{opacity:1}.gfadeIn{-webkit-animation:gfadeIn .5s ease;animation:gfadeIn .5s ease}.gfadeOut{-webkit-animation:gfadeOut .5s ease;animation:gfadeOut .5s ease}.gslideOutLeft{-webkit-animation:gslideOutLeft .3s ease;animation:gslideOutLeft .3s ease}.gslideInLeft{-webkit-animation:gslideInLeft .3s ease;animation:gslideInLeft .3s ease}.gslideOutRight{-webkit-animation:gslideOutRight .3s ease;animation:gslideOutRight .3s ease}.gslideInRight{-webkit-animation:gslideInRight .3s ease;animation:gslideInRight .3s ease}.gzoomIn{-webkit-animation:gzoomIn .5s ease;animation:gzoomIn .5s ease}.gzoomOut{-webkit-animation:gzoomOut .5s ease;animation:gzoomOut .5s ease}@-webkit-keyframes lightboxLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lightboxLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes gfadeIn{from{opacity:0}to{opacity:1}}@keyframes gfadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes gfadeOut{from{opacity:1}to{opacity:0}}@keyframes gfadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes gslideInLeft{from{opacity:0;-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0)}to{visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes gslideInLeft{from{opacity:0;-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0)}to{visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes gslideOutLeft{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0);opacity:0;visibility:hidden}}@keyframes gslideOutLeft{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0);opacity:0;visibility:hidden}}@-webkit-keyframes gslideInRight{from{opacity:0;visibility:visible;-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes gslideInRight{from{opacity:0;visibility:visible;-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes gslideOutRight{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0);opacity:0}}@keyframes gslideOutRight{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0);opacity:0}}@-webkit-keyframes gzoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:1}}@keyframes gzoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:1}}@-webkit-keyframes gzoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes gzoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@media (min-width:769px){.glightbox-container .ginner-container{width:auto;height:auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.glightbox-container .ginner-container.desc-top .gslide-description{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.glightbox-container .ginner-container.desc-top .gslide-image,.glightbox-container .ginner-container.desc-top .gslide-image img{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.glightbox-container .ginner-container.desc-left .gslide-description{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.glightbox-container .ginner-container.desc-left .gslide-image{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.gslide-image img{max-height:97vh;max-width:100%}.gslide-image img.zoomable{cursor:-webkit-zoom-in;cursor:zoom-in}.zoomed .gslide-image img.zoomable{cursor:-webkit-grab;cursor:grab}.gslide-inline{max-height:95vh}.gslide-external{max-height:100vh}.gslide-description.description-left,.gslide-description.description-right{max-width:275px}.glightbox-open{height:auto}.goverlay{background:rgba(0,0,0,.92)}.glightbox-clean .gslide-media{-webkit-box-shadow:1px 2px 9px 0 rgba(0,0,0,.65);box-shadow:1px 2px 9px 0 rgba(0,0,0,.65)}.glightbox-clean .description-left .gdesc-inner,.glightbox-clean .description-right .gdesc-inner{position:absolute;height:100%;overflow-y:auto}.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgba(0,0,0,.32)}.glightbox-clean .gclose:hover,.glightbox-clean .gnext:hover,.glightbox-clean .gprev:hover{background-color:rgba(0,0,0,.7)}.glightbox-clean .gprev{top:45%}.glightbox-clean .gnext{top:45%}}@media (min-width:992px){.glightbox-clean .gclose{opacity:.7;right:20px}}@media screen and (max-height:420px){.goverlay{background:#000}} \ No newline at end of file diff --git a/assets/css/main.css b/assets/css/main.css new file mode 100644 index 0000000..8329496 --- /dev/null +++ b/assets/css/main.css @@ -0,0 +1,267 @@ +/* MOBILE FIRST */ + +* { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + box-sizing: border-box; +} + + +body{ + font-family: var(--fontFamily); + font-size: var(--textSize); + line-height: 1.3; +} + +a{ + text-decoration: none; + color: #000; +} + +a:hover{text-decoration: underline;} + +p{ margin-bottom: 1rem;} +img{ width: 100%;} +main{ margin-bottom: 150px; } + + +h1{ + font-weight: normal; + font-size: 3em; + margin-top: 0; + text-transform: uppercase; + margin-bottom: 0; + string-set: title content(text); +} + +h2{ + string-set: chapter content(text); + text-align: center; +} + +h2, h3{ + font-size: 3em; + font-weight: normal; + text-transform: uppercase; +} + +h3{ + font-size: 1em; +} + +h2 + h3{ + margin-top: 0.5em; + opacity: 0.8; + font-weight: normal; +} + +h5, h6{ + font-size: var(--textSize); + margin-top: 1mm; + margin-bottom: 0; + font-weight: normal; +} + +p, li{ + text-align: justify; + hyphens: auto; + line-height: 1.45; + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + -webkit-hyphenate-limit-before: 3; + -webkit-hyphenate-limit-after: 4; + -ms-hyphenate-limit-chars: 7 3 4; + hyphenate-limit-chars: 7 3 4; + word-wrap: break-word; + overflow-wrap: break-word; + /* veuves et orphelines (bancal) */ + widows: 3; + orphans: 3; +} + +li p{ + margin: 0; + text-align: left; +} + +p a { + white-space: pre-wrap; /* CSS3 */ + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ + word-break: break-all; +} + + +ul, figure, ol{ + margin: 0; + padding: 0 +} + +figure{ + margin-bottom: 1em; +} + +figcaption{ + font-size: 0.8em; + margin-top: 0.5em; +} + +figcaption p{ + margin: 0; +} + +figure[data-ratio] { + position: relative; + width: 100%; + aspect-ratio: var(--ratio); +} + +figure[data-crop="true"] img { + width: 100%; + height: 100%; + object-fit: cover; + object-position: center; +} + +figure[data-crop="false"] img { + width: 100%; + height: auto; + object-fit: contain; +} + +.pagedjs_page_content table{ + column-width: auto!important; +} + +table { + border-collapse: collapse; + width: 100%; + border: 1px solid grey; + font-size: 12px; + table-layout: fixed; + margin-top: 2em; +} + +th { + color: var(--green); + font-weight: bold; + text-align: left; + border-bottom: 1px solid grey; +} + +th, td { + padding: 12px 8px; + padding-bottom: 12px !important; + border-right: 1px solid lightgrey; +} + +tr{ + border-bottom: 1px solid lightgrey; +} + +tr:last-child{ + border: none; +} + +tr > th:first-child, +tr > th:nth-child(2){ + width:20%; +} + +tr > td:first-child, +tr > td:nth-child(2){ + width:20%; +} + +td:last-child{ + display: none; +} + + +/* fade entre les pages */ +#fade{ + opacity: 0; + transition: opacity 1s ease-out; +} + +#fade.loaded{ + opacity: 1; +} + +.glightbox-clean .gslide-title{ + font-family: var(--fontFamily); + font-weight: 600; + line-height: 1.2; +} + +.show-for-small-only{ + display: block; +} + +.hide-for-small-only{ + display: none; +} + +/* ---- H E A D E R -----*/ +header{ + position: fixed; + width: 100%; + top:0; + left:0; + right: 0; + padding: 15px; + z-index: 1000; + background: #FFF; +} + +header.row{ + margin:0; +} + +header .mobile__menu_btn { + display: block; + position: absolute; + right: 15px; + top: 15px; + cursor: pointer; + height: 24px; + width: 24px; +} + +header .mobile__menu_btn span { + display: block; + background: #000; + height: 2px; + width: 26px; + position: absolute; + transition: all 0.5s ease; +} + +header .mobile__menu_btn span:nth-child(1) { top: 0px; } +header .mobile__menu_btn span:nth-child(2) { top: 8px; } +header .mobile__menu_btn span:nth-child(3) { top: 16px; } +header .mobile__menu_btn .transparent { opacity: 0; } + +header .mobile__menu_btn .rotate-top { + -ms-transform: rotate(45deg); + transform: rotatez(45deg); + -webkit-transform-origin: 0%; + left: 2px; +} + +header .mobile__menu_btn .rotate-bottom { + -ms-transform: rotate(-45deg); + transform: rotatez(-45deg); + -webkit-transform-origin: 15%; +} + + + + + + + diff --git a/assets/css/print-template.css b/assets/css/print-template.css new file mode 100644 index 0000000..4c1686a --- /dev/null +++ b/assets/css/print-template.css @@ -0,0 +1,452 @@ +/* -------- styles des images -------- s */ +figure img.fill{ object-fit: fill; width:100%; height:100%;} +figure img.contain{ object-fit: contain; max-width: none; width:100%; height:100%;} +figure img.cover{ object-fit: cover; max-width: none; width:100%; height:100%;} + + +/* -------- sauts de pages -------- */ +/* Class pour l‘ajout d'une page */ +.page{ + page-break-after: always; +} + +/* Classe pour l'ajout d'un saut de page */ +.pagebreak{ + page-break-after: always; +} + +/* Classe pour l'ajout d'une page blanche */ +.blank-page{ + page-break-after: always; + page: blank; +} + +@page blank{ + background: #FFF; + @top-left-corner {content: none;} + @top-left {content: none;} + @top-center {content: none;} + @top-right {content: none;} + @top-right-corner {content: none;} + @left-top {content: none;} + @left-middle {content: none;} + @left-bottom {content: none;} + @right-top {content: none;} + @right-middle {content: none;} + @right-bottom {content: none;} + @bottom-left-corner {content: none;} + @bottom-left {content: none;} + @bottom-center {content: none;} + @bottom-right {content: none;} + @bottom-right-corner {content: none;} +} + +/* --------- Alignment for blocks ------- */ +.chapter .content div.alignment-left, +.chapter .content div.alignment-left p{ + text-align: left !important; + hyphens: none !important; +} + +.chapter .content div.alignment-right, +.chapter .content div.alignment-right p{ + text-align: right !important; + hyphens: none !important; +} + +.chapter .content div.alignment-center, +.chapter .content div.alignment-center p{ + text-align: center !important; + hyphens: none !important; +} + +.chapter .content div.alignment-justify, +.chapter .content div.alignment-justify p{ + text-align: justify !important; + hyphens: auto !important; +} + + +/* -------- BACKGROUND IMAGE --------- */ +.spread-image { + --pagedjs-full-page: spread; +} + +.full-bleed-image.full-page{ + top: calc(var(--pagedjs-margin-top)*-1 - var(--pagedjs-bleed-top)); + height: var(--pagedjs-height); +} + +.pagedjs_left_page .full-bleed-image.full-page{ + left: calc(var(--pagedjs-margin-left)*-1 - var(--pagedjs-bleed-left)); + right: calc(var(--pagedjs-margin-right)*-1); +} + +.pagedjs_right_page .full-bleed-image.full-page{ + left: calc(var(--pagedjs-margin-left)*-1); + right: calc(var(--pagedjs-margin-right)*-1 - var(--pagedjs-bleed-right)); +} + +.spread-interval-image-left{ + break-before: left; + page: spreadinterval; +} + +.spread-interval-image-right{ + page: spreadinterval; + position: relative; +} + +.spread-interval-image-left figure, +.spread-interval-image-right figure{ + width:200%; +} + +.spread-interval-image-right figure{ + margin-left: -100%; +} + +.spread-interval-image-right .chapter-title-wrapper{ + position: absolute; + bottom: 20mm; + right: 20mm; +} + +.spread-interval-image-right .chapter-title-wrapper h1, +.spread-interval-image-right .chapter-title-wrapper .chapter-number{ + color: #FFF; + border-color: #FFF; + vertical-align: middle; +} + +.spread-interval-image-right .chapter-title-spanish{ + margin-left: 10mm; +} + +@page spreadinterval{ + background: var(--backgroundImage); + margin:0; + @top-left-corner {content: none;} + @top-left {content: none;} + @top-center {content: none;} + @top-right {content: none;} + @top-right-corner {content: none;} + @left-top {content: none;} + @left-middle {content: none;} + @left-bottom {content: none;} + @right-top {content: none;} + @right-middle {content: none;} + @right-bottom {content: none;} + @bottom-left-corner {content: none;} + @bottom-left {content: none;} + @bottom-center {content: none;} + @bottom-right {content: none;} + @bottom-right-corner {content: none;} +} + +.pagedjs_spreadinterval_page .chapter{ + margin-top: 0 !important; +} + +.interval-image{ + break-before: left; + page: interval; +} + +@page interval{ + background: var(--backgroundImage); + margin:0; + @top-left-corner {content: none;} + @top-left {content: none;} + @top-center {content: none;} + @top-right {content: none;} + @top-right-corner {content: none;} + @left-top {content: none;} + @left-middle {content: none;} + @left-bottom {content: none;} + @right-top {content: none;} + @right-middle {content: none;} + @right-bottom {content: none;} + @bottom-left-corner {content: none;} + @bottom-left {content: none;} + @bottom-center {content: none;} + @bottom-right {content: none;} + @bottom-right-corner {content: none;} +} + +.interval-image figcaption{ + background: rgba(255, 255, 255, 1); + border-radius: 10px; + position: absolute; + margin-top: 0; + padding: 1mm 3mm; + color: var(--green); + border: 1px solid var(--green); + max-width: calc(var(--pagedjs-width) - 30mm); + bottom: 8mm; + left: 15mm; +} + +.pagedjs_interval_page .chapter{ + margin-top: 0 !important; +} + +.spread-image, +.full-bleed-image.full-page { + height: var(--pagedjs-height); + top: auto; + display: flex; + align-items: center; + justify-content: center; +} + +.spread-image figure, +.full-bleed-image figure{ + height: calc(var(--pagedjs-height) + var(--pagedjs-margin-top) + var(--pagedjs-margin-bottom)); +} + +.spread-image figure.full-width, +.full-bleed-image figure.full-width{ + height: auto; + width: calc(100% - 12mm); + margin: 6mm; +} + + +.spread-image figure.full-width img; +.full-bleed-image figure.full-width img{ + max-width: 100%; + height: auto; +} + +.full-bleed-image figure img{ + object-fit: cover; + max-width: none; + width:100%; + height:100%; +} + +.spread-image figure img{ + object-fit: cover; + max-width: none; + width:100%; + height:100%; +} + +.full-bleed-image figcaption, +.spread-image figcaption{ + background: rgba(255, 255, 255, 1); + border-radius: 10px; + position: absolute; + margin-top: 0; + padding: 1mm 3mm; + color: var(--green); + border: 1px solid var(--green); + max-width: calc(var(--pagedjs-width) - 30mm); +} + +.pagedjs_left_page .full-bleed-image figcaption { + left: 8mm; +} + +.pagedjs_right_page .full-bleed-image figcaption{ + right: 8mm; +} + +.full-bleed-image figcaption { + bottom: -7mm; +} + +.spread-image figcaption{ + bottom: 15mm; + left: 15mm; +} + +.background-image{ + page: backgroundImage; +/* page-break-after: always;*/ + margin-top: -1cm; + position: relative; +} + +.background-image figcaption{ + background: rgba(255, 255, 255, 0.9); + position: absolute; + margin-top: 0; + padding: 1mm 1mm; + top: 0; +/* left: 10mm;*/ +/* top: calc(9in - 15mm);*/ +} + +.background-image figcaption p{ + margin:0; +} + +.pagedjs_page.pagedjs_right_page .background-image figure{ + position: absolute; + top: calc(var(--pagedjs-bleed-top) * -1); + left:0; + width: calc(var(--pagedjs-width-right) - var(--pagedjs-bleed-right)); + height: calc(var(--pagedjs-height-right)); +} + +.pagedjs_page.pagedjs_left_page .background-image figure{ + position: absolute; + top: calc(var(--pagedjs-bleed-top) * -1); + left: calc(var(--pagedjs-bleed-left) * -1); + width: calc(var(--pagedjs-width-left) - var(--pagedjs-bleed-left)); + height: var(--pagedjs-height-left); +} + +@page backgroundImage{ + margin: 0; + @top-left-corner {content: none;} + @top-left {content: none;} + @top-center {content: none;} + @top-right {content: none;} + @top-right-corner {content: none;} + @left-top {content: none;} + @left-middle {content: none;} + @left-bottom {content: none;} + @right-top {content: none;} + @right-middle {content: none;} + @right-bottom {content: none;} + @bottom-left-corner {content: none;} + @bottom-left {content: none;} + @bottom-center {content: none;} + @bottom-right {content: none;} + @bottom-right-corner {content: none;} +} + +/* -------- FULL PAGE --------- */ + +.full-page{ + position: absolute; +} + +.full-page.bottom{ + bottom: 0; + transform: none; + top: inherit; +} + +/* ------ Colonnes de texte ------ */ + +.col-2{ + columns: 2; + column-gap: 0.5cm; +} + +.col-3{ + columns: 3; + column-gap: 0.5cm; +} + +/* ------- IMAGES --------- */ + + .grid { + display: grid; + grid-template-columns: repeat(12,1fr); + grid-gap: 0.5cm; + align-content: start; + } + + .grid figure { + grid-column: span 3; + align-self: start; + justify-self: start; + margin: 0; + padding: 0; + } + + /* largeur des .figure */ + figure.offset2 { grid-column: 3 / span 3; } + figure.offset4 { grid-column: 5 / span 3; } + figure.offset6 { grid-column: 7 / span 3; } + figure.offset8 { grid-column: 9 / span 3; } + figure.third { grid-column: span 4; } + figure.third.offset2 { grid-column: 3 / span 4; } + figure.third.offset4 { grid-column: 5 / span 4; } + figure.third.offset6 { grid-column: 7 / span 4; } + figure.third.offset8 { grid-column: 9 / span 4; } + figure.half { grid-column: span 6; } + figure.half.offset2 { grid-column: 3 / span 6; } + figure.half.offset4 { grid-column: 5 / span 6; } + figure.half.offset6 { grid-column: 7 / span 6; } + figure.twothird { grid-column: span 8; } + figure.twothird.offset2 { grid-column: 3 / span 8; } + figure.twothird.offset4 { grid-column: 5 / span 8; } + figure.threequarter { grid-column: span 9; } + figure.threequarter.offset2 { grid-column: 3 / span 9; } + figure.full { grid-column: 1 / span 12; } + + /* alignement vertical des figure */ + figure.top { align-self: start;} + figure.center { align-self: center;} + figure.bottom { align-self: end;} + + +/* ------- TABLE OF CONTENTS --------- */ + +.toc{ + break-before: right; +} + +/* counters */ + +#list-toc-generated{ + counter-reset: counterTocLevel1; + list-style: none; + overflow-x: visible !important; +} + +#list-toc-generated .toc-element-level-1{ + counter-increment: counterTocLevel1; + counter-reset: counterTocLevel2; +} + +#list-toc-generated a{ + text-decoration: none; +} + +#list-toc-generated .toc-element a::after{ + content: target-counter(attr(href), page); + position: absolute; + right:0; + font-size: 13pt; + text-align: right; +} + +#list-toc-generated .toc-element-level-2 a::after{ + font-size: 10pt; +} + +#list-toc-generated .toc-element-level-1{ + font-size: 13pt; +} + +#list-toc-generated .toc-element-level-2{ + font-weight: bold; + margin-bottom: 20px; +} + +#list-toc-generated li span{ + display: block; +} + +/* -------- FOOTNOTES ---------- */ +span.footnote { + float: footnote; +} + +.footnote::footnote-call { + content: counter(footnote, decimal) " "; +} + + + + + + + diff --git a/assets/css/print.css b/assets/css/print.css new file mode 100644 index 0000000..e9b7ce5 --- /dev/null +++ b/assets/css/print.css @@ -0,0 +1,54 @@ +@media print{ + +/* --------- Paramètres de base ---------- */ + @page{ + size: 165mm 240mm +/* bleed: 6mm; + marks: crop;*/ + } + + @page :left { + margin: 16mm 25mm 10mm 10mm; + @top-left-corner { + content: counter(page); + font-size: 7pt; + text-align: center; + font-family: var(--fontFamily); + } + @top-center{ + content: string(title); + font-size: 7pt; + text-align: center; + text-transform: uppercase; + width: 105%; + margin-left: 0%; + } + } + + @page :right { + margin: 16mm 10mm 10mm 25mm; + @top-right-corner { + content: counter(page); + font-size: 7pt; + text-align: center; + font-family: var(--fontFamily); + } + @top-center{ + content: string(chapter); + font-size: 7pt; + text-align: center; + text-transform: uppercase; + width: 105%; + margin-left: -9%; + } + } + + .chapter{ + break-before: right; + } + + .chapter h2{ + page-break-after: always; + } + +} diff --git a/assets/css/reset.css b/assets/css/reset.css new file mode 100644 index 0000000..432833d --- /dev/null +++ b/assets/css/reset.css @@ -0,0 +1,5 @@ +html {box-sizing: border-box;}*,*::before,*::after {box-sizing: inherit;}body,h1,h2,h3,h4,h5,h6,ul,ol,li,p,pre,blockquote,figure,hr {margin: 0;padding: 0; font-size:100%; font-weight: normal;}ul {list-style: none;}input,textarea,select,button {color: inherit;font: inherit;letter-spacing: inherit;}input,textarea,button {border: 1px solid gray;}button {border-radius: 0;padding: 0.75em 1em;background-color: transparent;}button * {pointer-events: none;}embed,iframe,img,object,video {display: block;max-width: 100%;}table {table-layout: fixed;width: 100%;}[hidden] {display: none !important;}noscript {display: block;margin-bottom: 1em;margin-top: 1em;} +/* Buttons and input buttons */ +[role="button"],input[type="submit"],input[type="reset"],input[type="button"],button { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box;} +input[type="submit"], input[type="reset"], input[type="button"], button { background: none; border: 0; color: inherit; font: inherit; line-height: normal; overflow: visible; padding: 0; -webkit-appearance: button; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; } +input::-moz-focus-inner, button::-moz-focus-inner { border: 0; padding: 0;} diff --git a/assets/css/responsive.css b/assets/css/responsive.css new file mode 100644 index 0000000..51af03a --- /dev/null +++ b/assets/css/responsive.css @@ -0,0 +1,45 @@ +/* sm size */ +@media only screen and (min-width: 48em) { + .show-for-small-only{ display: none;} + .hide-for-small-only{ display: block;} + + header{ + padding: 15px 30px; + padding-right: 0px; + } + + header .mobile__menu_btn { + display: none; + } + + header nav { + height: auto; + min-height: auto; + max-height: none; + } + +} + +/* md size */ +@media only screen and (min-width: 64em) { + header nav ul.row{ + margin-left: 30px; + margin-right: 0; + } +} + +/* lg size */ +@media only screen and (min-width: 75em) { + +} + +/* xl size */ +@media only screen and (min-width: 90em) { + :root{ + --textSize: 20px; + } + body{ + line-height: 1.4; + } +} + diff --git a/assets/css/variables.css b/assets/css/variables.css new file mode 100644 index 0000000..5ce72cb --- /dev/null +++ b/assets/css/variables.css @@ -0,0 +1,8 @@ +:root{ + --margin: 1em; + + --fontFamily: sans-serif; + --textSize: 17px; + --ratio : auto; + +} \ No newline at end of file diff --git a/assets/css/web.css b/assets/css/web.css new file mode 100644 index 0000000..30f996f --- /dev/null +++ b/assets/css/web.css @@ -0,0 +1,8 @@ +@media screen{ + main{ + padding-top: 250px; + max-width: 42em; + margin: auto; + } + +} \ No newline at end of file diff --git a/assets/csspageweaver/.gitignore b/assets/csspageweaver/.gitignore new file mode 100644 index 0000000..496ee2c --- /dev/null +++ b/assets/csspageweaver/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/assets/csspageweaver/.gitlab-ci.yml b/assets/csspageweaver/.gitlab-ci.yml new file mode 100644 index 0000000..6ba6a80 --- /dev/null +++ b/assets/csspageweaver/.gitlab-ci.yml @@ -0,0 +1,104 @@ +stages: + - prepare + - release + +# This job compile CSS Page Weaver and few plugins +prepare_job: + stage: prepare + image: ubuntu:latest + rules: + - if: $CI_COMMIT_TAG + before_script: + - apt-get update && apt-get install -y git curl jq zip bash + - git config --global user.email "csspageweaver@csspageweaver.org" + - git config --global user.name "Automated Releaser" + script: + + - | + # Store Job ID since next stage (release_job) link to current job artifacts + echo "ARTIFACTS_JOB=$CI_JOB_ID" >> build.env + + - | + # create plugins folder if needed + mkdir -p plugins + + - | + # Set plugins list + REPO_LIST=( + "baseline" + "grid" + "imposition" + "marginBox" + "spread" + "previewPage" + "reloadInPlace" + ) + + - | + # Add listed plugins as git subtree. Need deployment tokens if repos are private + for REPO in "${REPO_LIST[@]}"; do + SUBTREE_URL="https://gitlab.com/csspageweaver/plugins/${REPO}.git" + git subtree add --prefix="plugins/$REPO" "$SUBTREE_URL" main --squash + done + + - | + # Define the pluginsParameters object + PLUGINS_PARAMETERS='{ + "baseline": { + "size": 16, + "position": 0 + }, + "reloadInPlace": { + "blur": false, + "behavior": "instant" + } + }' + + - | + # Add plugin list to manifest + MANIFEST_PATH="manifest.json" + PLUGINS_ENTRY=$(jq --arg repos "${REPO_LIST[*]}" '.plugins = ($repos | split(" "))' "$MANIFEST_PATH") + echo "$PLUGINS_ENTRY" > "$MANIFEST_PATH" + + - | + # Add plugin parameters to manifest + PARAMETERS_PLUGINS_ENTRY=$(jq --argjson pluginsParameters "$PLUGINS_PARAMETERS" '.pluginsParameters = $pluginsParameters' "$MANIFEST_PATH") + echo "$PARAMETERS_PLUGINS_ENTRY" > "$MANIFEST_PATH" + + - | + # create folder + mkdir -p csspageweaver + + # Copy releveant folder and file to a csspageweaver folder + cp -r interface/ lib/ modules/ plugins/ csspageweaver/ + cp main.js manifest.json README.md .gitignore csspageweaver/ + + + artifacts: + name: csspageweaver-core-$CI_COMMIT_TAG + paths: + - csspageweaver/ + reports: + dotenv: build.env + expire_in: never + +# This job create a release based on previous artifact +release_job: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + needs: + - job: prepare_job + artifacts: true + rules: + - if: $CI_COMMIT_TAG + script: + - echo "running release_job for $CI_COMMIT_TAG " + release: + name: 'Release $CI_COMMIT_TAG' + tag_name: '$CI_COMMIT_TAG' + ref: '$CI_COMMIT_SHA' + description: 'Auto release' + assets: + links: + - name: '👉 CSS Page Weaver with plugins embed' + url: 'https://gitlab.com/csspageweaver/csspageweaver/-/jobs/$ARTIFACTS_JOB/artifacts/download' diff --git a/assets/csspageweaver/README.md b/assets/csspageweaver/README.md new file mode 100644 index 0000000..6d48bef --- /dev/null +++ b/assets/csspageweaver/README.md @@ -0,0 +1,177 @@ +# CSS Page Weaver + +![Interface](https://gitlab.com/csspageweaver/csspageweaver/-/wikis/uploads/e724d6782600c30bc1b8d1ad56b24217/_screen_copie.webp) + +CSS Page Weaver is a browser-based publishing tool, made up of [PagedJs](https://pagedjs.org/about/) library and modulars additionals features. While it's design to ease installation for beginners CSS Page Weaver also bring elegant and extendable solution for more advanced users. + +## ✨ Features + +- **Streamlined and Ready-to-Use**: Get started quickly with a standardized way to integrate features. +- **Extensive Plugin Library**: No need to reinvent the wheel with the available plugins. +- **WYSIWYG Editor**: Streamline your design pratice with an extandable interface. +- **Create and Share Plugins**: Develop and share your own plugins easily. + +## ⛵ Getting Started + +### Prerequisites + +- A local web server + +### 🪴 Installation (fastest way) + +If you feel a bit lost with following instruction, you should probably look at the [CSS Page Weaver compiled with a few plugins](https://gitlab.com/csspageweaver/csspageweaver/-/releases) + +Integrate it at the root level of your page and add a link to `csspageweaver` main _module_ into your HTML template + +```html + +``` + +*Do you need to also install PagedJs? Nope! CSS Page Weaver already embed it.* + +### Use + +Run a simple server. That's it! + +### Boilerplate + +Don't have a project to test it? There is [a ready-to-use boilerplate](https://gitlab.com/csspageweaver//boilerplate). Download, unzip & run a server! + + +## 🚀 Going further + +### 🌲 Installation (complete way) + +Released version on CSS Page Weaver is compiled with few plugins. You can install the package yourself for greater control. + +#### Clone CSS Page Weaver repo in your project [option A]. + +```bash +# With HTTPS +git clone https://gitlab.com/csspageweaver/csspageweaver.git + +# With SSH +git clone git@gitlab.com:csspageweaver/csspageweaver.git +``` +#### Clone CSS Page Weaver as a git subtree [option B]. + +Subtree are great to: +- embed CSS Page Weaver repo in another repo +- get updates + +```bash + git subtree add --prefix csspageweaver/ git@gitlab.com:csspageweaver/cssPageWeaver.git --squash +``` + +### 🔌 Dependencies + +CSS Page Weaver is designed to work with plugins. In this complete installation, you need to install plugins by yourself. If you've downloaded [the last release of CSS Page Weaver](https://gitlab.com/csspageweaver/csspageweaver/-/releases), few plugins are already embedded. + +**Here is a [list of all plugins](https://gitlab.com/csspageweaver//plugins) known.** + +**Steps** + +1. Download and place plugin folder in `csspageweaver/plugins` +2. Add plugin to manifest + +#### Installation as subtree + +We prefer to install plugins using Git Subtree because it allows us to easily preserve the filiation link with the plugin directory (and to obtain updates!). + +Bear in mind, if you're not comfortable with command lines, that *step 1* can easily be replaced by a simple *download, drag and drop*. + +Otherwise, here is how it works. + +##### (Step 1) Clone plugin as a subtree + +Install plugin as a submodule of `csspageweaver` + +```bash + git subtree add --prefix="csspageweaver/plugins/{{PLUGIN_FOLDER_NAME}}" git@gitlab.com:csspageweaver/plugins/{{PLUGIN_NAME}}.git --squash +``` + +##### (Step 2) Add plugin to manifest + +Almost done. Add a mention to `csspageweaver/manifest.json` + +```json +{ + "plugins": [ + // existing plugin, + "PLUGIN_FOLDER_NAME" + ], +} +``` + +Look at complete [plugins list](https://gitlab.com/csspageweaver/plugins) and [plugins installation guide](https://gitlab.com/csspageweaver/csspageweaver/-/wikis/design/plugins/install) + +#### Update as subtree + +This is where Git subtrees are wonderful + +```bash +git subtree pull --prefix="csspageweaver/plugins/{{PLUGIN_NAME}}" main --squash +``` + +A bit dazed? Don't worry. Once again, you can update your plugins with your favorite *download, unzip, drag and drop* shady method. + +### 🎁 Package manager + +You already like the principle of subtrees, but you think (rightly) that the multiplication of command lines can be a bit tedious in the long run? Installation and dependencies can me handle with our [Package Manager](https://gitlab.com/csspageweaver/package-manager) + +**Install CSS Page Weaver and plugins with package manager** + +```bash +./weaver_manager.sh --install +``` + +**Get update with package manager** + +```bash +./weaver_manager.sh --pull +``` + +See [Package Manager repository](https://gitlab.com/csspageweaver-toolkit/package_manager) and [further documentation on managing your installation](https://gitlab.com/csspageweaver/csspageweaver/-/wikis/maintain_and_develop/core/5-manage_csspageweaver_integration) + + + +## 🔄 Customization + +### Basic Information + +Edit `csspageweaver/manifest.json` to declare: +- Plugins +- Plugins configuration +- Stylesheets +- Your custom hooks + +### CSS Page Weaver behavior (advanced) + +Edit `csspageweaver/main.js` to: +- disable Common dictionary +- disable Interface +- Choose render method + +## 🎓 Documentation + +A complete [documentation is available](https://gitlab.com/csspageweaver/csspageweaver/-/wikis/home) + +## 📝 License + +This project is licensed under the MIT License + +## 👏 Acknowledgements + +CSS Page Weaver is based on [PagedJs](https://pagedjs.org/about/) by Coko Foundation. + +CSS Page Weaver is an original idea of Julie Blanc ehanced by Benjamin G. +Julien Taquet was a great help in reimagining the rendering module. Finally, Nicolas Taffin and Julien Bidoret helped to oversee this tool. + +All CSS Page Weaver plugins remains linked to their original creators. +Without them, GUI would remain an empty shell. Thanks 🙏 + +## 🙌 Contributing + +Features and documentation requests are welcome! Feel free to check the [issues page](https://gitlab.com/csspageweaver/csspageweaver/-/issues). + +Contributions must follow our [code of conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) \ No newline at end of file diff --git a/assets/csspageweaver/interface/css/grid.css b/assets/csspageweaver/interface/css/grid.css new file mode 100644 index 0000000..561d174 --- /dev/null +++ b/assets/csspageweaver/interface/css/grid.css @@ -0,0 +1,46 @@ +@media print { + + + + /* Size and marin for all pages ------------- */ + @page { + size: 148mm 210mm; + margin-top: 20mm; + margin-bottom: 20mm; + bleed: 6mm; + marks: crop; + @bottom-center{ + content: counter(page); + } + } + + figure, img{ + width: 100%; + } + + +} + + +*{ + margin: 0; + padding: 0; +} + + +#image-full{ + --pagedjs-full-page: spread; + width: 100%; + height: 100%; +} + +#image-full img{ + width: 100%; + height: 100%; + object-fit: cover; +} + + +.pagedjs_note{ + color: red; +} \ No newline at end of file diff --git a/assets/csspageweaver/interface/css/interface.css b/assets/csspageweaver/interface/css/interface.css new file mode 100644 index 0000000..dda88e6 --- /dev/null +++ b/assets/csspageweaver/interface/css/interface.css @@ -0,0 +1,136 @@ +/* CSS for Paged.js interface – v0.2 +Julie Blanc - 2020 +MIT License https://opensource.org/licenses/MIT +A simple stylesheet to see pages on screen (with baseline included) +Adapted for this project */ + + +/* Change the look */ +:root { + --color-background: #efefef; + --color-pageSheet: #cfcfcf; + --color-pageBox: violet; + --color-paper: white; + --pagedjs-crop-color: #000; + --pagedjs-crop-stroke: 1px; + --color-preview: #222; + --pagedjs-margin-interface: 20px; + --pagedjs-header-height: 80px; + + /* --pagedjs-bleed-left-right: 0mm!important; */ +} + +.pagedjs_marks-crop{ + z-index: 999999999999; +} + +/* To define how the book look on the screen: */ +@media screen, pagedjs-ignore { + body { + background-color: var(--color-background); + padding-left: var(--pagedjs-margin-interface); + padding-right: var(--pagedjs-margin-interface); + min-width: calc(var(--pagedjs-width) * 2 + var(--pagedjs-margin-interface)*2); + } + body.no-spread{ + min-width: calc(var(--pagedjs-width) + var(--pagedjs-margin-interface)*2); + + } + + .pagedjs_pages { + display: flex; + width: calc(var(--pagedjs-width) * 2); + flex: 0; + flex-wrap: wrap; + margin: 0 auto; + margin-bottom: var(--pagedjs-header-height); + margin-top: var(--pagedjs-header-height); + + } + + .pagedjs_page { + background-color: var(--color-paper); + box-shadow: 0 0 0 1px var(--color-pageSheet); + margin: 0; + flex-shrink: 0; + flex-grow: 0; + margin-top: 10mm; + } + + .pagedjs_first_page { + margin-left: calc(var(--pagedjs-width) - var(--pagedjs-bleed-left)); + } + + .pagedjs_page:last-of-type { + margin-bottom: 10mm; + } + + .pagedjs_pagebox{ + box-shadow: 0 0 0 1px var(--color-pageBox); + } + + .pagedjs_left_page{ + z-index: 20; + width: calc(var(--pagedjs-bleed-left) + var(--pagedjs-pagebox-width))!important; + } + + /* .pagedjs_left_page .pagedjs_sheet{ + z-index: 20; + width: calc(var(--pagedjs-bleed-left) + var(--pagedjs-pagebox-width) + 1px)!important; + } */ + + .pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-crop { + border-color: transparent; + } + + + .pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-middle{ + width: 0; + } + + .pagedjs_right_page{ + z-index: 10; + position: relative; + left: calc(var(--pagedjs-bleed-left)*-1); + } + + /* show the margin-box */ + + .pagedjs_margin-top-left-corner-holder, + .pagedjs_margin-top, + .pagedjs_margin-top-left, + .pagedjs_margin-top-center, + .pagedjs_margin-top-right, + .pagedjs_margin-top-right-corner-holder, + .pagedjs_margin-bottom-left-corner-holder, + .pagedjs_margin-bottom, + .pagedjs_margin-bottom-left, + .pagedjs_margin-bottom-center, + .pagedjs_margin-bottom-right, + .pagedjs_margin-bottom-right-corner-holder, + .pagedjs_margin-right, + .pagedjs_margin-right-top, + .pagedjs_margin-right-middle, + .pagedjs_margin-right-bottom, + .pagedjs_margin-left, + .pagedjs_margin-left-top, + .pagedjs_margin-left-middle, + .pagedjs_margin-left-bottom { + box-shadow: 0 0 0 1px inset var(--color-marginBox); + } + +} + + + +.note { + float: footnote; +} + +/* define the position of the footnote on the page (only bottom is possible for now) */ + +@page { + @footnote { + float: bottom; + } +} \ No newline at end of file diff --git a/assets/csspageweaver/interface/css/panel.css b/assets/csspageweaver/interface/css/panel.css new file mode 100644 index 0000000..f7abe62 --- /dev/null +++ b/assets/csspageweaver/interface/css/panel.css @@ -0,0 +1,532 @@ +@import url("../fonts/IBM_Plex_Mono/stylesheet.css"); + +@media print{ + csspageweaver-gui{ + display: none; + } +} + +@media screen, pagedjs-ignore { + + + /* TOGGLE PANEL ----------------------------------- */ + #cssPageWeaver_toggle-panel ~ #cssPageWeaver_panel{ display: none; } + #cssPageWeaver_toggle-panel + label #panel-open{ display: none; } + + #cssPageWeaver_toggle-panel:checked ~ #cssPageWeaver_panel{ display: block; } + #cssPageWeaver_toggle-panel:checked + label #panel-open{ display: block; } + #cssPageWeaver_toggle-panel:checked + label #panel-closed{ display: none; } + + #cssPageWeaver_toggle-panel{ display: none; } + + + /* STYLE ----------------------------------- */ + :root{ + --cssPageWeaver-font:'IBM Plex Mono'; + --cssPageWeaver-size: 16px; + --cssPageWeaver-fixed: 30px; + + /* --cssPageWeaver-color-border: #8fb6b0; + --cssPageWeaver-color-accent: #EE6C4D; + --cssPageWeaver-color-accent-hover: #852811; + --cssPageWeaver-color-text: #464f4e; + --cssPageWeaver-color-bg: #f8f8f2; */ + + + /* --cssPageWeaver-color-accent: #EE6C4D; + --cssPageWeaver-color-accent-hover: #852811; + --cssPageWeaver-color-border: #86766e; + --cssPageWeaver-color-text: #4f4946; + --cssPageWeaver-color-bg: #efefef; */ + + --cssPageWeaver-color-accent: RebeccaPurple; + --cssPageWeaver-color-accent-hover: BlueViolet; + --cssPageWeaver-color-border: #836e86; + --cssPageWeaver-color-border-light: #999999; + --cssPageWeaver-color-text: #4e464f; + --cssPageWeaver-color-bg: #f1f0f0; + + --cssPageWeaver-radius: 5px; + } + + + /* Toggle button -------------------------------------------- */ + + #cssPageWeaver_toggle-panel + label{ + background-color: var(--cssPageWeaver-color-bg); + border: 2px solid var(--cssPageWeaver-color-border); + border-radius: var(--cssPageWeaver-color-radius); + + --size: 30px; + width: var(--size); + height: var(--size); + + display: flex; + align-items: center; + justify-content: center; + font-size: 1.25em; + + color: var(--cssPageWeaver-color-text); + //border-radius: var(--cssPageWeaver-radius); + + transition: border-radius .25s ease-in-out; + + } + + #cssPageWeaver_toggle-panel:checked + label{ + border-top-left-radius: var(--cssPageWeaver-radius); + } + + + /* CONTAINER -------------------------------------------- */ + + csspageweaver-gui *{ + margin: 0; + padding: 0; + + } + + + csspageweaver-gui{ + font-family: var(--cssPageWeaver-font); + color: var(--cssPageWeaver-color-text); + font-size: var(--cssPageWeaver-size); + } + + csspageweaver-gui label, + csspageweaver-gui button{ + cursor: pointer!important; + } + + #cssPageWeaver_toggle-panel + label{ + position: fixed; + left: var(--cssPageWeaver-fixed); + top: var(--cssPageWeaver-fixed); + width: 30px; + left: 30px; + z-index: 9000; + } + + #cssPageWeaver_panel{ + width: 296px; + background-color: var(--cssPageWeaver-color-bg); + border: 2px solid var(--cssPageWeaver-color-border); + border-radius: var(--cssPageWeaver-radius); + position: fixed; + left: var(--cssPageWeaver-fixed); + top: var(--cssPageWeaver-fixed); + z-index: 8900; + padding: 1em 1em .5em 1em; + + max-height: 80vh; + max-height: calc(100vh - 5rem); + overflow: scroll; + + } + + + /* panel-group ------------------------------------- */ + + + #cssPageWeaver_panel .panel-group{ + margin: 0; + padding-top: 1.25em; + } + #cssPageWeaver_panel .panel-group:not(:last-of-type){ + border-bottom: 1px solid var(--cssPageWeaver-color-border); + padding-bottom: 1.25em; + } + + + + /* panel-group-title ------------------------------------- */ + + #cssPageWeaver_panel h1, + #cssPageWeaver_panel button, + #cssPageWeaver_panel p, + #cssPageWeaver_panel svg, + #cssPageWeaver_panel label{ + all: initial; + all: unset; + } + + + #cssPageWeaver_panel .panel-group-title{ + display: grid; + grid-template-columns: auto 1ch 1fr; + grid-gap: .5ch; + } + + #cssPageWeaver_panel h1 span{ + font-size: 0.75em; + } + + + #cssPageWeaver_panel .panel-group-title:not(:empty) + *{ + margin-top: 1.25em; + } + + #cssPageWeaver_panel .panel-group-title h1{ + font-size: 1em; + font-weight: 600; + margin: 0; + } + + #cssPageWeaver_panel .panel-group-title input{ + display: none; + } + #cssPageWeaver_panel .panel-group-title label{ + grid-column: -1; + } + + #cssPageWeaver_panel .panel-group-title label span{ + /* color: var(--cssPageWeaver-color-accent); */ + font-size: 16px; + border: 1.5px solid var(--cssPageWeaver-color-accent); + padding: 0.25ch 1ch 0.5ch 1ch; + min-width: 4ch; + text-align: center; + + font-size: 0.8em; + font-weight: 500; + border-radius: var(--cssPageWeaver-radius); + + background-color: var(--cssPageWeaver-color-accent); + border-color: var(--cssPageWeaver-color-accent); + color: var(--cssPageWeaver-color-bg); + + font-style: italic; + + } + + #cssPageWeaver_panel .panel-group-title label span:hover{ + background-color: var(--cssPageWeaver-color-accent-hover); + border-color: var(--cssPageWeaver-color-accent-hover); + color: var(--cssPageWeaver-color-bg); + + } + + #cssPageWeaver_panel .panel-group-title input:not(:checked) + label[id*="toggle"] span.button-see{ + background-color: var(--cssPageWeaver-color-bg); + color: var(--cssPageWeaver-color-accent); + } + + #cssPageWeaver_panel .panel-group-title input:checked + label[id*="toggle"] span.button-hide{ + background-color: var(--cssPageWeaver-color-bg); + color: var(--cssPageWeaver-color-accent); + } + + /* INFO BOX ---------------------------------- */ + #cssPageWeaver_panel .panel-group-title details{ + position: relative; + } + #cssPageWeaver_panel .panel-group-title summary{ + color: var(--cssPageWeaver-color-text); + //border: 1px solid black; + //border-radius: 1rem; + width: 1rem; + font-size: .8em; + height: 1rem; + text-align: center; + cursor: pointer; + opacity: .3; + line-height: 160%; + } + + #cssPageWeaver_panel .panel-group-title details summary::marker { + display: none; + content: ""; + border: 1px solid currentColor; + } + +} + +#cssPageWeaver_panel .panel-group-title details p{ + position: absolute; + background: var(--cssPageWeaver-color-bg); + padding: .5ch; + width: max-content; + max-width: 10rem; + font-size: .7rem; + margin-top: .5ch; + border: 1px solid var(--cssPageWeaver-color-accent); + border-radius: .2ch; + top: -50%; + left: 2em; + transform: translateX(0%); +} + + +/* panel-group-values ---------------------------------- */ + +#cssPageWeaver_panel .panel-group-values{ + margin-top: 0.5em; + margin-bottom: 0.5em; + display: flex; + align-items: center; + justify-content: space-between; +} + + +/* INPUT NUMBER ---------------------------------- */ + + +#cssPageWeaver_panel input[type="number"]{ + font-family: var(--cssPageWeaver-font)!important; + color: var(--cssPageWeaver-color-text); + width: 8ch; + background-color: transparent!important; + border: 1px solid var(--cssPageWeaver-color-text); + font-size: calc(var(--cssPageWeaver-size)*0.9); + padding-left: 0.5ch; +} + +#cssPageWeaver_panel input[type="number"]:focus, +#cssPageWeaver_panel input[type="number"]:focus-visible{ + border: 1px solid var(--cssPageWeaver-color-accent)!important; + outline: none; +} + + +/* INPUT CHECKBOX ---------------------------------- */ + +#cssPageWeaver_panel input[type="checkbox"], +#cssPageWeaver_panel input[type="radio"]{ display: none; } + +#cssPageWeaver_panel input + label:not([id*="toggle"])::before{ + content: ""; + --size: 12px; + width: var(--size); + height: var(--size); + display: inline-block; + box-sizing: border-box; + border: 1.5px solid var(--cssPageWeaver-color-text); + margin-right: 1ch; + +} + +#cssPageWeaver_panel input:checked + label{ + color: var(--cssPageWeaver-color-accent); +} + +#cssPageWeaver_panel input:checked + label::before{ + border: 5px solid var(--cssPageWeaver-color-accent); +} + +#cssPageWeaver_panel input + label:hover{ + color: var(--cssPageWeaver-color-accent-hover); +} + +#cssPageWeaver_panel input + label:hover::before{ + border: 1.5px solid var(--cssPageWeaver-color-accent-hover); +} + +#cssPageWeaver_panel input[type="radio"]:checked + label:hover::before{ + border: 5px solid var(--cssPageWeaver-color-accent); +} +#cssPageWeaver_panel input[type="radio"]:checked + label:hover{ + color: var(--cssPageWeaver-color-accent); +} +#cssPageWeaver_panel input[type="checkbox"] + label:hover::before{ + border: 5px solid var(--cssPageWeaver-color-accent-hover); +} + +/* INPUT RADIO ---------------------------------- */ + + #cssPageWeaver_panel input[type="radio"] + label{ + margin-bottom: 0.5em; +} + +/* exception */ +/*#cssPageWeaver_panel #baseline-toggle + label::before{ display: none; } +*/ + +/* BUTTONS-GROUP ------------------------------------------- */ + +#cssPageWeaver_panel .buttons-group button, +#cssPageWeaver_panel .buttons-group .button{ + display: inline-block; + --size: 40px; + background-color: transparent; + border: 1.5px solid var(--cssPageWeaver-color-accent); + border-radius: var(--cssPageWeaver-radius); + box-sizing: border-box; + + color: var(--cssPageWeaver-color-accent); + + width: var(--size); + height: var(--size); + + text-align: center; + vertical-align: middle; + text-decoration: none; +} + +#cssPageWeaver_panel .buttons-group .button:not(:has(*)){ + padding: .5em 0; +} + +#cssPageWeaver_panel .buttons-group input{ + display: none; +} + +#cssPageWeaver_panel .buttons-group button svg, +#cssPageWeaver_panel .buttons-group .button svg{ + fill: var(--cssPageWeaver-color-accent); + padding: 0.25em; +} + +#cssPageWeaver_panel .buttons-group{ + display: flex; + justify-content: flex-start; + align-items: center; + gap: 1ch; +} + +#cssPageWeaver_panel .buttons-group.align-right{ + justify-content: flex-end; +} + +#cssPageWeaver_panel .panel-group-title:not(:empty) + .buttons-group{ + padding-top: 0.25em; + margin-top: .5em; +} + +#cssPageWeaver_panel .buttons-group .force-right{ + text-align: right; + flex-grow: 1; +} + +#panel-buttons .buttons-group{ + padding-top: 1.25em; + display: flex; +} + + +#panel-buttons .buttons-group button, +#panel-buttons .buttons-group .button{ + margin-left: 0.5em; +} + +#cssPageWeaver_panel input + label.label-block{ + display: block; + margin-top: 1rem; +} + +#cssPageWeaver_panel .panel-group-title.button-toggle label::before{ display: none!important; } + +/* CHECKED BUTTONS --------------------------------------- */ + +#cssPageWeaver_panel .buttons-group input:checked + button, +#cssPageWeaver_panel .buttons-group input:checked + .button{ + background-color: var(--cssPageWeaver-color-accent); + border-color: var(--cssPageWeaver-color-accent); + cursor: pointer; +} +#cssPageWeaver_panel .buttons-group input:checked + button svg, +#cssPageWeaver_panel .buttons-group input:checked + .button svg{ + fill: var(--cssPageWeaver-color-bg); +} + +/* TOGGLE LABEL ICONS --------------------------------------- */ + +#cssPageWeaver_panel input[id*="toggle"] + .buttons-group{ + margin-top: 1rem; +} + +#cssPageWeaver_panel input[id*="toggle"]:checked + .buttons-group .button:nth-of-type(1), +#cssPageWeaver_panel input[id*="toggle"]:not(:checked) + .buttons-group .button:nth-of-type(2){ + background-color: var(--cssPageWeaver-color-accent); + border-color: var(--cssPageWeaver-color-accent); +} + +#cssPageWeaver_panel input[id*="toggle"]:checked + .buttons-group .button:nth-of-type(1) svg, +#cssPageWeaver_panel input[id*="toggle"]:not(:checked) + .buttons-group .button:nth-of-type(2) svg{ + fill: var(--cssPageWeaver-color-bg); +} + +/* DETAILS CONTAINER< ------------------- */ + +[data-open-container*="details"] ~ [id*="details"]{ + box-sizing: border-box; + position: relative; + top: 1em; + + max-height: 0px; + overflow: hidden; + transition: max-height 1s; +} + +[data-open-container*="details"]:checked ~ [id*="details"]{ + max-height: 100vh; + margin-bottom: 0.5em; + border-top: .5px solid var(--cssPageWeaver-color-border-light); +} + + +/* HOVER BUTTONS ------------------------------------------------------------ */ + +#cssPageWeaver_panel .buttons-group button:hover, +#cssPageWeaver_panel .buttons-group .button:hover{ + background-color: var(--cssPageWeaver-color-accent-hover)!important; + border-color: var(--cssPageWeaver-color-accent-hover)!important; +} +#cssPageWeaver_panel .buttons-group button:hover svg, +#cssPageWeaver_panel .buttons-group .button:hover svg{ + fill: var(--cssPageWeaver-color-bg)!important; +} + +/* SHORTCUT ------------------------------------------------------------ */ + +#cssPageWeaver_panel .shortcut-list{ + list-style: none; + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: .25em; + margin-top: .5em; +} +#cssPageWeaver_panel .shortcut-list li{ + font-size: .75em; + color: var(--cssPageWeaver-color-text); + border: 1px solid; + border-radius: .25em; + padding: .2em; + cursor: help; + opacity: .5; +} + +/* List hidden hooks ------------------------------------------------------------ */ + +#cssPageWeaver_panel #hidden-features h1 { + font-weight: bold; + margin-bottom: .5em; + +} +#cssPageWeaver_panel #hidden-features summary { + display: flex; + flex-direction: row; + justify-content: space-between; + padding-top: 1em; + font-size: .75rem; + cursor: pointer; +} +#cssPageWeaver_panel #hidden-features ul{ + list-style: none; + font-size: .75rem; + display: flex; + flex-wrap: wrap; + gap: .75em; +} +#cssPageWeaver_panel #hidden-features ul li{ + margin-bottom: .25em; + color: var(--cssPageWeaver-color-bg); + padding: .2em .4em; + border-radius: .2em; + background: var(--cssPageWeaver-color-accent); + font-style: italic; +} + +#cssPageWeaver_panel #hidden-features summary::marker { + display: none; +} \ No newline at end of file diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Italic.woff b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Italic.woff new file mode 100644 index 0000000..4074b47 Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Italic.woff differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Italic.woff2 b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Italic.woff2 new file mode 100644 index 0000000..88e4e8b Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Italic.woff2 differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Medium.woff b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Medium.woff new file mode 100644 index 0000000..fc65a67 Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Medium.woff differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Medium.woff2 b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Medium.woff2 new file mode 100644 index 0000000..c352e40 Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Medium.woff2 differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-MediumItalic.woff b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-MediumItalic.woff new file mode 100644 index 0000000..2c11f2e Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-MediumItalic.woff differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-MediumItalic.woff2 b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-MediumItalic.woff2 new file mode 100644 index 0000000..f0d77ab Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-MediumItalic.woff2 differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Regular.woff b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Regular.woff new file mode 100644 index 0000000..7d63d89 Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Regular.woff differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Regular.woff2 b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Regular.woff2 new file mode 100644 index 0000000..d0d7ded Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-Regular.woff2 differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBold.woff b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBold.woff new file mode 100644 index 0000000..1da7753 Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBold.woff differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBold.woff2 b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBold.woff2 new file mode 100644 index 0000000..79dffdb Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBold.woff2 differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBoldItalic.woff b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBoldItalic.woff new file mode 100644 index 0000000..9f92825 Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBoldItalic.woff differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBoldItalic.woff2 b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBoldItalic.woff2 new file mode 100644 index 0000000..0aa811e Binary files /dev/null and b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/IBMPlexMono-SemiBoldItalic.woff2 differ diff --git a/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/stylesheet.css b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/stylesheet.css new file mode 100644 index 0000000..46f5086 --- /dev/null +++ b/assets/csspageweaver/interface/fonts/IBM_Plex_Mono/stylesheet.css @@ -0,0 +1,42 @@ +@font-face { + src: url('IBMPlexMono-Regular.woff2') format("woff2"), + url('IBMPlexMono-Regular.woff') format("woff"); + font-family: 'IBM Plex Mono'; + font-style: normal; + font-weight: 400; +} +@font-face { + src: url('IBMPlexMono-Italic.woff2') format("woff2"), + url('IBMPlexMono-Italic.woff') format("woff"); + font-family: 'IBM Plex Mono'; + font-style: italic; + font-weight: 400; +} +@font-face { + src: url('IBMPlexMono-Medium.woff2') format("woff2"), + url('IBMPlexMono-Medium.woff') format("woff"); + font-family: 'IBM Plex Mono'; + font-style: normal; + font-weight: 500; +} +@font-face { + src: url('IBMPlexMono-MediumItalic.woff2') format("woff2"), + url('IBMPlexMono-MediumItalic.woff') format("woff"); + font-family: 'IBM Plex Mono'; + font-style: italic; + font-weight: 500; +} +@font-face { + src: url('IBMPlexMono-SemiBold.woff2') format("woff2"), + url('IBMPlexMono-SemiBold.woff') format("woff"); + font-family: 'IBM Plex Mono'; + font-style: normal; + font-weight: 600; +} +@font-face { + src: url('IBMPlexMono-SemiBoldItalic.woff2') format("woff2"), + url('IBMPlexMono-SemiBoldItalic.woff') format("woff"); + font-family: 'IBM Plex Mono'; + font-style: italic; + font-weight: 600; +} diff --git a/assets/csspageweaver/lib/csstree.min.js b/assets/csspageweaver/lib/csstree.min.js new file mode 100644 index 0000000..a1c5dd7 --- /dev/null +++ b/assets/csspageweaver/lib/csstree.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).csstree=t()}(this,(function(){"use strict";function e(e){return{prev:null,next:null,data:e}}function t(e,t,n){var i;return null!==r?(i=r,r=r.cursor,i.prev=t,i.next=n,i.cursor=e.cursor):i={prev:t,next:n,cursor:e.cursor},e.cursor=i,i}function n(e){var t=e.cursor;e.cursor=t.cursor,t.prev=null,t.next=null,t.cursor=r,r=t}var r=null,i=function(){this.cursor=null,this.head=null,this.tail=null};i.createItem=e,i.prototype.createItem=e,i.prototype.updateCursors=function(e,t,n,r){for(var i=this.cursor;null!==i;)i.prev===e&&(i.prev=t),i.next===n&&(i.next=r),i=i.cursor},i.prototype.getSize=function(){for(var e=0,t=this.head;t;)e++,t=t.next;return e},i.prototype.fromArray=function(t){var n=null;this.head=null;for(var r=0;rs&&(p=a-l+3,a=l-2);for(var d=o;d<=u;d++)d>=0&&d0&&r[d].length>p?"…":"")+r[d].substr(p,s-2)+(r[d].length>p+s-1?"…":""));return[n(o,i),new Array(a+h+2).join("-")+"^",n(i,u)].filter(Boolean).join("\n")}var h=function(e,t,n,r,i){var a=o("SyntaxError",e);return a.source=t,a.offset=n,a.line=r,a.column=i,a.sourceFragment=function(e){return u(a,isNaN(e)?0:e)},Object.defineProperty(a,"formattedMessage",{get:function(){return"Parse error: "+a.message+"\n"+u(a,2)}}),a.parseError={offset:n,line:r,column:i},a},p={EOF:0,Ident:1,Function:2,AtKeyword:3,Hash:4,String:5,BadString:6,Url:7,BadUrl:8,Delim:9,Number:10,Percentage:11,Dimension:12,WhiteSpace:13,CDO:14,CDC:15,Colon:16,Semicolon:17,Comma:18,LeftSquareBracket:19,RightSquareBracket:20,LeftParenthesis:21,RightParenthesis:22,LeftCurlyBracket:23,RightCurlyBracket:24,Comment:25},d=Object.keys(p).reduce((function(e,t){return e[p[t]]=t,e}),{}),m={TYPE:p,NAME:d},g=0;function f(e){return e>=48&&e<=57}function b(e){return e>=65&&e<=90}function y(e){return e>=97&&e<=122}function k(e){return b(e)||y(e)}function v(e){return e>=128}function x(e){return k(e)||v(e)||95===e}function w(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e}function S(e){return 10===e||13===e||12===e}function C(e){return S(e)||32===e||9===e}function z(e,t){return 92===e&&(!S(t)&&t!==g)}var A=new Array(128);T.Eof=128,T.WhiteSpace=130,T.Digit=131,T.NameStart=132,T.NonPrintable=133;for(var P=0;P=65&&e<=70||e>=97&&e<=102},isUppercaseLetter:b,isLowercaseLetter:y,isLetter:k,isNonAscii:v,isNameStart:x,isName:function(e){return x(e)||f(e)||45===e},isNonPrintable:w,isNewline:S,isWhiteSpace:C,isValidEscape:z,isIdentifierStart:function(e,t,n){return 45===e?x(t)||45===t||z(t,n):!!x(e)||92===e&&z(e,t)},isNumberStart:function(e,t,n){return 43===e||45===e?f(t)?2:46===t&&f(n)?3:0:46===e?f(t)?2:0:f(e)?1:0},isBOM:function(e){return 65279===e?1:65534===e?1:0},charCodeCategory:T},E=L.isDigit,D=L.isHexDigit,O=L.isUppercaseLetter,B=L.isName,I=L.isWhiteSpace,N=L.isValidEscape;function M(e,t){return te.length)return!1;for(var i=t;i=0&&I(e.charCodeAt(t));t--);return t+1},findWhiteSpaceEnd:function(e,t){for(;t>24:H},lookupOffset:function(e){return(e+=this.tokenIndex)0?e>24,this.source,i)){case 1:break e;case 2:r++;break e;default:i=16777215&this.offsetAndType[r],this.balance[n]===r&&(r=n)}return r-this.tokenIndex},isBalanceEdge:function(e){return this.balance[this.tokenIndex]>24===V;e++,t++);t>0&&this.skip(t)},skipSC:function(){for(;this.tokenType===V||this.tokenType===G;)this.next()},skip:function(e){var t=this.tokenIndex+e;t>24,this.tokenEnd=16777215&t):(this.tokenIndex=this.tokenCount,this.next())},next:function(){var e=this.tokenIndex+1;e>24,this.tokenEnd=16777215&e):(this.tokenIndex=this.tokenCount,this.eof=!0,this.tokenType=H,this.tokenStart=this.tokenEnd=this.source.length)},dump:function(){var e=this.firstCharOffset;return Array.prototype.slice.call(this.offsetAndType,0,this.tokenCount).map((function(t,n){var r=e,i=16777215&t;return e=i,{idx:n,type:Y[t>>24],chunk:this.source.substring(r,i),balance:this.balance[n]}}),this)}};var Q=K;function X(e){return e}function Z(e,t,n,r){var i,a;switch(e.type){case"Group":i=function(e,t,n,r){var i=" "===e.combinator||r?e.combinator:" "+e.combinator+" ",a=e.terms.map((function(e){return Z(e,t,n,r)})).join(i);return(e.explicit||n)&&(a=(r||","===a[0]?"[":"[ ")+a+(r?"]":" ]")),a}(e,t,n,r)+(e.disallowEmpty?"!":"");break;case"Multiplier":return Z(e.term,t,n,r)+t(0===(a=e).min&&0===a.max?"*":0===a.min&&1===a.max?"?":1===a.min&&0===a.max?a.comma?"#":"+":1===a.min&&1===a.max?"":(a.comma?"#":"")+(a.min===a.max?"{"+a.min+"}":"{"+a.min+","+(0!==a.max?a.max:"")+"}"),e);case"Type":i="<"+e.name+(e.opts?t(function(e){switch(e.type){case"Range":return" ["+(null===e.min?"-∞":e.min)+","+(null===e.max?"∞":e.max)+"]";default:throw new Error("Unknown node type `"+e.type+"`")}}(e.opts),e.opts):"")+">";break;case"Property":i="<'"+e.name+"'>";break;case"Keyword":i=e.name;break;case"AtKeyword":i="@"+e.name;break;case"Function":i=e.name+"(";break;case"String":case"Token":i=e.value;break;case"Comma":i=",";break;default:throw new Error("Unknown node type `"+e.type+"`")}return t(i,e)}var $=function(e,t){var n=X,r=!1,i=!1;return"function"==typeof t?n=t:t&&(r=Boolean(t.forceBraces),i=Boolean(t.compact),"function"==typeof t.decorate&&(n=t.decorate)),Z(e,n,r,i)};function J(e,t){var n=e&&e.loc&&e.loc[t];return n?{offset:n.offset,line:n.line,column:n.column}:null}var ee=function(e,t){var n=o("SyntaxReferenceError",e+(t?" `"+t+"`":""));return n.reference=t,n},te=function(e,t,n,r){var i=o("SyntaxMatchError",e),a=function(e){for(var t=e.tokens,n=e.longestMatch,r=n1}}(r),s=a.mismatchOffset||0,l=a.node||n,c=J(l,"end"),u=a.last?c:J(l,"start"),h=a.css;return i.rawMessage=e,i.syntax=t?$(t):"",i.css=h,i.mismatchOffset=s,i.loc={source:l&&l.loc&&l.loc.source||"",start:u,end:c},i.line=u?u.line:void 0,i.column=u?u.column:void 0,i.offset=u?u.offset:void 0,i.message=e+"\n syntax: "+i.syntax+"\n value: "+(i.css||"")+"\n --------"+new Array(i.mismatchOffset+1).join("-")+"^",i},ne=Object.prototype.hasOwnProperty,re=Object.create(null),ie=Object.create(null),ae=45;function oe(e,t){return t=t||0,e.length-t>=2&&e.charCodeAt(t)===ae&&e.charCodeAt(t+1)===ae}function se(e,t){if(t=t||0,e.length-t>=3&&e.charCodeAt(t)===ae&&e.charCodeAt(t+1)!==ae){var n=e.indexOf("-",t+2);if(-1!==n)return e.substring(t,n+1)}return""}var le={keyword:function(e){if(ne.call(re,e))return re[e];var t=e.toLowerCase();if(ne.call(re,t))return re[e]=re[t];var n=oe(t,0),r=n?"":se(t,0);return re[e]=Object.freeze({basename:t.substr(r.length),name:t,vendor:r,prefix:r,custom:n})},property:function(e){if(ne.call(ie,e))return ie[e];var t=e,n=e[0];"/"===n?n="/"===e[1]?"//":"/":"_"!==n&&"*"!==n&&"$"!==n&&"#"!==n&&"+"!==n&&"&"!==n&&(n="");var r=oe(t,n.length);if(!r&&(t=t.toLowerCase(),ne.call(ie,t)))return ie[e]=ie[t];var i=r?"":se(t,n.length),a=t.substr(0,n.length+i.length);return ie[e]=Object.freeze({basename:t.substr(a.length),name:t.substr(n.length),hack:n,vendor:i,prefix:a,custom:r})},isCustomProperty:oe,vendorPrefix:se},ce="undefined"!=typeof Uint32Array?Uint32Array:Array,ue=function(e,t){return null===e||e.length=e.length?void(h>Pe,l[c]=m,l[m++]=c;m0?6:0;if(!He(a))return 0;if(++i>6)return 0}return i}function rt(e,t,n){if(!e)return 0;for(;et(n(t),Je);){if(++e>6)return 0;t++}return t}var it=Le.isIdentifierStart,at=Le.isHexDigit,ot=Le.isDigit,st=Le.cmpStr,lt=Le.consumeNumber,ct=Le.TYPE,ut=["unset","initial","inherit"],ht=["calc(","-moz-calc(","-webkit-calc("];function pt(e,t){return te.max)return!0}return!1}function bt(e,t){var n=e.index,r=0;do{if(r++,e.balance<=n)break}while(e=t(r));return r}function yt(e){return function(t,n,r){return null===t?0:t.type===ct.Function&&mt(t.value,ht)?bt(t,n):e(t,n,r)}}function kt(e){return function(t){return null===t||t.type!==e?0:1}}function vt(e){return function(t,n,r){if(null===t||t.type!==ct.Dimension)return 0;var i=lt(t.value,0);if(null!==e){var a=t.value.indexOf("\\",i),o=-1!==a&>(t.value,a)?t.value.substring(i,a):t.value.substr(i);if(!1===e.hasOwnProperty(o.toLowerCase()))return 0}return ft(r,t.value,i)?0:1}}function xt(e){return"function"!=typeof e&&(e=function(){return 0}),function(t,n,r){return null!==t&&t.type===ct.Number&&0===Number(t.value)?1:e(t,n,r)}}var wt,St={"ident-token":kt(ct.Ident),"function-token":kt(ct.Function),"at-keyword-token":kt(ct.AtKeyword),"hash-token":kt(ct.Hash),"string-token":kt(ct.String),"bad-string-token":kt(ct.BadString),"url-token":kt(ct.Url),"bad-url-token":kt(ct.BadUrl),"delim-token":kt(ct.Delim),"number-token":kt(ct.Number),"percentage-token":kt(ct.Percentage),"dimension-token":kt(ct.Dimension),"whitespace-token":kt(ct.WhiteSpace),"CDO-token":kt(ct.CDO),"CDC-token":kt(ct.CDC),"colon-token":kt(ct.Colon),"semicolon-token":kt(ct.Semicolon),"comma-token":kt(ct.Comma),"[-token":kt(ct.LeftSquareBracket),"]-token":kt(ct.RightSquareBracket),"(-token":kt(ct.LeftParenthesis),")-token":kt(ct.RightParenthesis),"{-token":kt(ct.LeftCurlyBracket),"}-token":kt(ct.RightCurlyBracket),string:kt(ct.String),ident:kt(ct.Ident),"custom-ident":function(e){if(null===e||e.type!==ct.Ident)return 0;var t=e.value.toLowerCase();return mt(t,ut)?0:dt(t,"default")?0:1},"custom-property-name":function(e){return null===e||e.type!==ct.Ident?0:45!==pt(e.value,0)||45!==pt(e.value,1)?0:1},"hex-color":function(e){if(null===e||e.type!==ct.Hash)return 0;var t=e.value.length;if(4!==t&&5!==t&&7!==t&&9!==t)return 0;for(var n=1;ne.index||e.balancee.index||e.balance=128||0===$t[n])break}return e.pos===t&&e.error("Expect a keyword"),e.substringToPos(t)}function nn(e){for(var t=e.pos;t57)break}return e.pos===t&&e.error("Expect a number"),e.substringToPos(t)}function rn(e){var t=e.str.indexOf("'",e.pos+1);return-1===t&&(e.pos=e.str.length,e.error("Expect an apostrophe")),e.substringToPos(t+1)}function an(e){var t,n=null;return e.eat(Kt),t=nn(e),e.charCode()===Ft?(e.pos++,e.charCode()!==Xt&&(n=nn(e))):n=t,e.eat(Xt),{min:Number(t),max:n?Number(n):0}}function on(e,t){var n=function(e){var t=null,n=!1;switch(e.charCode()){case _t:e.pos++,t={min:0,max:0};break;case jt:e.pos++,t={min:1,max:0};break;case Ut:e.pos++,t={min:0,max:1};break;case Bt:e.pos++,n=!0,t=e.charCode()===Kt?an(e):{min:1,max:0};break;case Kt:t=an(e);break;default:return null}return{type:"Multiplier",comma:n,min:t.min,max:t.max,term:null}}(e);return null!==n?(n.term=t,n):t}function sn(e){var t=e.peek();return""===t?null:{type:"Token",value:t}}function ln(e){var t,n=null;return e.eat(qt),t=tn(e),e.charCode()===Mt&&e.nextCharCode()===Rt&&(e.pos+=2,t+="()"),e.charCodeAt(e.findWsEnd(e.pos))===Vt&&(en(e),n=function(e){var t=null,n=null,r=1;return e.eat(Vt),e.charCode()===Wt&&(e.peek(),r=-1),-1==r&&e.charCode()===Zt?e.peek():t=r*Number(nn(e)),en(e),e.eat(Ft),en(e),e.charCode()===Zt?e.peek():(r=1,e.charCode()===Wt&&(e.peek(),r=-1),n=r*Number(nn(e))),e.eat(Gt),null===t&&null===n?null:{type:"Range",min:t,max:n}}(e)),e.eat(Yt),on(e,{type:"Type",name:t,opts:n})}function cn(e,t){function n(e,t){return{type:"Group",terms:e,combinator:t,disallowEmpty:!1,explicit:!1}}for(t=Object.keys(t).sort((function(e,t){return Jt[e]-Jt[t]}));t.length>0;){for(var r=t.shift(),i=0,a=0;i1&&(e.splice(a,i-a,n(e.slice(a,i),r)),i=a+1),a=-1))}-1!==a&&t.length&&e.splice(a,i-a,n(e.slice(a,i),r))}return r}function un(e){for(var t,n=[],r={},i=null,a=e.pos;t=hn(e);)"Spaces"!==t.type&&("Combinator"===t.type?(null!==i&&"Combinator"!==i.type||(e.pos=a,e.error("Unexpected combinator")),r[t.value]=!0):null!==i&&"Combinator"!==i.type&&(r[" "]=!0,n.push({type:"Combinator",value:" "})),n.push(t),i=t,a=e.pos);return null!==i&&"Combinator"===i.type&&(e.pos-=a,e.error("Unexpected combinator")),{type:"Group",terms:n,combinator:cn(n,r)||" ",disallowEmpty:!1,explicit:!1}}function hn(e){var t=e.charCode();if(t<128&&1===$t[t])return function(e){var t;return t=tn(e),e.charCode()===Mt?(e.pos++,{type:"Function",name:t}):on(e,{type:"Keyword",name:t})}(e);switch(t){case Gt:break;case Vt:return on(e,function(e){var t;return e.eat(Vt),t=un(e),e.eat(Gt),t.explicit=!0,e.charCode()===Ot&&(e.pos++,t.disallowEmpty=!0),t}(e));case qt:return e.nextCharCode()===Nt?function(e){var t;return e.eat(qt),e.eat(Nt),t=tn(e),e.eat(Nt),e.eat(Yt),on(e,{type:"Property",name:t})}(e):ln(e);case Qt:return{type:"Combinator",value:e.substringToPos(e.nextCharCode()===Qt?e.pos+2:e.pos+1)};case It:return e.pos++,e.eat(It),{type:"Combinator",value:"&&"};case Ft:return e.pos++,{type:"Comma"};case Nt:return on(e,{type:"String",value:rn(e)});case Dt:case Pt:case Tt:case Et:case Lt:return{type:"Spaces",value:en(e)};case Ht:return(t=e.nextCharCode())<128&&1===$t[t]?(e.pos++,{type:"AtKeyword",name:tn(e)}):sn(e);case _t:case jt:case Ut:case Bt:case Ot:break;case Kt:if((t=e.nextCharCode())<48||t>57)return sn(e);break;default:return sn(e)}}function pn(e){var t=new At(e),n=un(t);return t.pos!==e.length&&t.error("Unexpected input"),1===n.terms.length&&"Group"===n.terms[0].type&&(n=n.terms[0]),n}pn("[a&&#|<'c'>*||e() f{2} /,(% g#{1,2} h{2,})]!");var dn=pn,mn=function(){};function gn(e){return"function"==typeof e?e:mn}var fn=function(e,t,n){var r=mn,i=mn;if("function"==typeof t?r=t:t&&(r=gn(t.enter),i=gn(t.leave)),r===mn&&i===mn)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");!function e(t){switch(r.call(n,t),t.type){case"Group":t.terms.forEach(e);break;case"Multiplier":e(t.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+t.type)}i.call(n,t)}(e)},bn=new Q,yn={decorator:function(e){var t=null,n={len:0,node:null},r=[n],i="";return{children:e.children,node:function(n){var r=t;t=n,e.node.call(this,n),t=r},chunk:function(e){i+=e,n.node!==t?r.push({len:e.length,node:t}):n.len+=e.length},result:function(){return kn(i,r)}}}};function kn(e,t){var n=[],r=0,i=0,a=t?t[i].node:null;for(Le(e,bn);!bn.eof;){if(t)for(;i2&&e.charCodeAt(e.length-2)===Cn&&e.charCodeAt(e.length-1)===zn}function Tn(e){return"Keyword"===e.type||"AtKeyword"===e.type||"Function"===e.type||"Type"===e.type&&Pn(e.name)}function Ln(e){if("function"==typeof e)return{type:"Generic",fn:e};switch(e.type){case"Group":var t=function e(t,n,r){switch(t){case" ":for(var i=xn,a=n.length-1;a>=0;a--){i=An(l=n[a],i,wn)}return i;case"|":i=wn;var o=null;for(a=n.length-1;a>=0;a--){if(Tn(l=n[a])&&(null===o&&a>0&&Tn(n[a-1])&&(i=An({type:"Enum",map:o=Object.create(null)},xn,i)),null!==o)){var s=(Pn(l.name)?l.name.slice(0,-1):l.name).toLowerCase();if(s in o==!1){o[s]=l;continue}}o=null,i=An(l,xn,i)}return i;case"&&":if(n.length>5)return{type:"MatchOnce",terms:n,all:!0};for(i=wn,a=n.length-1;a>=0;a--){var l=n[a];c=n.length>1?e(t,n.filter((function(e){return e!==l})),!1):xn,i=An(l,c,i)}return i;case"||":if(n.length>5)return{type:"MatchOnce",terms:n,all:!1};for(i=r?xn:wn,a=n.length-1;a>=0;a--){var c;l=n[a];c=n.length>1?e(t,n.filter((function(e){return e!==l})),!0):xn,i=An(l,c,i)}return i}}(e.combinator,e.terms.map(Ln),!1);return e.disallowEmpty&&(t=An(t,Sn,wn)),t;case"Multiplier":return function(e){var t=xn,n=Ln(e.term);if(0===e.max)n=An(n,Sn,wn),(t=An(n,null,wn)).then=An(xn,xn,t),e.comma&&(t.then.else=An({type:"Comma",syntax:e},t,wn));else for(var r=e.min||1;r<=e.max;r++)e.comma&&t!==xn&&(t=An({type:"Comma",syntax:e},t,wn)),t=An(n,An(xn,xn,t),wn);if(0===e.min)t=An(xn,xn,t);else for(r=0;r=65&&r<=90&&(r|=32),r!==t.charCodeAt(n))return!1}return!0}function Vn(e){return null===e||(e.type===Nn.Comma||e.type===Nn.Function||e.type===Nn.LeftParenthesis||e.type===Nn.LeftSquareBracket||e.type===Nn.LeftCurlyBracket||e.type===Nn.Delim)}function Gn(e){return null===e||(e.type===Nn.RightParenthesis||e.type===Nn.RightSquareBracket||e.type===Nn.RightCurlyBracket||e.type===Nn.Delim)}function Kn(e,t,n){function r(){do{f=++by&&(y=b)}function c(){k=k.type===_n?k.prev:{type:jn,syntax:u.syntax,token:k.token,prev:k},u=u.prev}var u=null,h=null,p=null,d=null,m=0,g=null,f=null,b=-1,y=0,k={type:Mn,syntax:null,token:null,prev:null};for(r();null===g&&++mp.tokenIndex)&&(p=d,d=!1);else if(null===p){g=Wn;break}t=p.nextState,h=p.thenStack,u=p.syntaxStack,k=p.matchStack,b=p.tokenIndex,f=bb){for(;b":"<'"+t.name+"'>"));if(!1!==d&&null!==f&&"Type"===t.type)if("custom-ident"===t.name&&f.type===Nn.Ident||"length"===t.name&&"0"===f.value){null===d&&(d=a(t,p)),t=Bn;break}u={syntax:t.syntax,opts:t.syntax.opts||null!==u&&u.opts||null,prev:u},k={type:_n,syntax:t.syntax,token:k.token,prev:k},t=z.match;break;case"Keyword":var A=t.name;if(null!==f){var P=f.value;if(-1!==P.indexOf("\\")&&(P=P.replace(/\\[09].*$/,"")),Hn(P,A)){l(),t=On;break}}t=Bn;break;case"AtKeyword":case"Function":if(null!==f&&Hn(f.value,t.name)){l(),t=On;break}t=Bn;break;case"Token":if(null!==f&&f.value===t.value){l(),t=On;break}t=Bn;break;case"Comma":null!==f&&f.type===Nn.Comma?Vn(k.token)?t=Bn:(l(),t=Gn(f)?Bn:On):t=Vn(k.token)||Gn(f)?On:Bn;break;case"String":var T="";for(S=b;S=0}function nr(e){return Boolean(e)&&tr(e.offset)&&tr(e.line)&&tr(e.column)}function rr(e,t){return function(n,r){if(!n||n.constructor!==Object)return r(n,"Type of node should be an Object");for(var i in n){var o=!0;if(!1!==er.call(n,i)){if("type"===i)n.type!==e&&r(n,"Wrong node type `"+n.type+"`, expected `"+e+"`");else if("loc"===i){if(null===n.loc)continue;if(n.loc&&n.loc.constructor===Object)if("string"!=typeof n.loc.source)i+=".source";else if(nr(n.loc.start)){if(nr(n.loc.end))continue;i+=".end"}else i+=".start";o=!1}else if(t.hasOwnProperty(i)){var s=0;for(o=!1;!o&&s");else{if(!Array.isArray(c))throw new Error("Wrong value `"+c+"` in `"+e+"."+a+"` structure definition");o.push("List")}}i[a]=o.join(" | ")}return{docs:i,check:rr(e,r)}}var ar=ee,or=te,sr=En.buildMatchGraph,lr=Qn,cr=function(e){var t={};if(e.node)for(var n in e.node)if(er.call(e.node,n)){var r=e.node[n];if(!r.structure)throw new Error("Missed `structure` field in `"+n+"` node type definition");t[n]=ir(n,r)}return t},ur=sr("inherit | initial | unset"),hr=sr("inherit | initial | unset | <-ms-legacy-expression>");function pr(e,t,n){var r={};for(var i in e)e[i].syntax&&(r[i]=n?e[i].syntax:$(e[i].syntax,{compact:t}));return r}function dr(e,t,n){return{matched:e,iterations:n,error:t,getTrace:$n.getTrace,isType:$n.isType,isProperty:$n.isProperty,isKeyword:$n.isKeyword}}function mr(e,t,n,r){var i,a=vn(n,e.syntax);return function(e){for(var t=0;t(e[n]=this.createDescriptor(t.descriptors[n],"AtruleDescriptor",n),e),{}):null}},addProperty_:function(e,t){this.properties[e]=this.createDescriptor(t,"Property",e)},addType_:function(e,t){this.types[e]=this.createDescriptor(t,"Type",e),t===St["-ms-legacy-expression"]&&(this.valueCommonSyntax=hr)},matchAtrulePrelude:function(e,t){var n=le.keyword(e),r=n.vendor?this.getAtrulePrelude(n.name)||this.getAtrulePrelude(n.basename):this.getAtrulePrelude(n.name);return r?mr(this,r,t,!0):n.basename in this.atrules?dr(null,new Error("At-rule `"+e+"` should not contain a prelude")):dr(null,new ar("Unknown at-rule",e))},matchAtruleDescriptor:function(e,t,n){var r=le.keyword(e),i=le.keyword(t),a=r.vendor?this.atrules[r.name]||this.atrules[r.basename]:this.atrules[r.name];if(!a)return dr(null,new ar("Unknown at-rule",e));if(!a.descriptors)return dr(null,new Error("At-rule `"+e+"` has no known descriptors"));var o=i.vendor?a.descriptors[i.name]||a.descriptors[i.basename]:a.descriptors[i.name];return o?mr(this,o,n,!0):dr(null,new ar("Unknown at-rule descriptor",t))},matchDeclaration:function(e){return"Declaration"!==e.type?dr(null,new Error("Not a Declaration node")):this.matchProperty(e.property,e.value)},matchProperty:function(e,t){var n=le.property(e);if(n.custom)return dr(null,new Error("Lexer matching doesn't applicable for custom properties"));var r=n.vendor?this.getProperty(n.name)||this.getProperty(n.basename):this.getProperty(n.name);return r?mr(this,r,t,!0):dr(null,new ar("Unknown property",e))},matchType:function(e,t){var n=this.getType(e);return n?mr(this,n,t,!1):dr(null,new ar("Unknown type",e))},match:function(e,t){return"string"==typeof e||e&&e.type?("string"!=typeof e&&e.match||(e=this.createDescriptor(e,"Type","anonymous")),mr(this,e,t,!1)):dr(null,new ar("Bad syntax"))},findValueFragments:function(e,t,n,r){return Jn.matchFragments(this,t,this.matchProperty(e,t),n,r)},findDeclarationValueFragments:function(e,t,n){return Jn.matchFragments(this,e.value,this.matchDeclaration(e),t,n)},findAllFragments:function(e,t,n){var r=[];return this.syntax.walk(e,{visit:"Declaration",enter:function(e){r.push.apply(r,this.findDeclarationValueFragments(e,t,n))}.bind(this)}),r},getAtrulePrelude:function(e){return this.atrules.hasOwnProperty(e)?this.atrules[e].prelude:null},getAtruleDescriptor:function(e,t){return this.atrules.hasOwnProperty(e)&&this.atrules.declarators&&this.atrules[e].declarators[t]||null},getProperty:function(e){return this.properties.hasOwnProperty(e)?this.properties[e]:null},getType:function(e){return this.types.hasOwnProperty(e)?this.types[e]:null},validate:function(){function e(r,i,a,o){if(a.hasOwnProperty(i))return a[i];a[i]=!1,null!==o.syntax&&fn(o.syntax,(function(o){if("Type"===o.type||"Property"===o.type){var s="Type"===o.type?r.types:r.properties,l="Type"===o.type?t:n;s.hasOwnProperty(o.name)&&!e(r,o.name,l,s[o.name])||(a[i]=!0)}}),this)}var t={},n={};for(var r in this.types)e(this,r,t,this.types[r]);for(var r in this.properties)e(this,r,n,this.properties[r]);return t=Object.keys(t).filter((function(e){return t[e]})),n=Object.keys(n).filter((function(e){return n[e]})),t.length||n.length?{types:t,properties:n}:null},dump:function(e,t){return{generic:this.generic,types:pr(this.types,!t,e),properties:pr(this.properties,!t,e)}},toString:function(){return JSON.stringify(this.dump())}};var fr=gr,br={SyntaxError:Ct,parse:dn,generate:$,walk:fn},yr=Le.isBOM,kr=10,vr=12,xr=13;var wr=function(){this.lines=null,this.columns=null,this.linesAndColumnsComputed=!1};wr.prototype={setSource:function(e,t,n,r){this.source=e,this.startOffset=void 0===t?0:t,this.startLine=void 0===n?1:n,this.startColumn=void 0===r?1:r,this.linesAndColumnsComputed=!1},ensureLinesAndColumnsComputed:function(){this.linesAndColumnsComputed||(!function(e,t){for(var n=t.length,r=ue(e.lines,n),i=e.startLine,a=ue(e.columns,n),o=e.startColumn,s=t.length>0?yr(t.charCodeAt(0)):0;s",needPositions:!1,onParseError:Lr,onParseErrorThrow:!1,parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:Pr,createList:function(){return new a},createSingleNodeList:function(e){return(new a).appendData(e)},getFirstListNode:function(e){return e&&e.first()},getLastListNode:function(e){return e.last()},parseWithFallback:function(e,t){var n=this.scanner.tokenIndex;try{return e.call(this)}catch(e){if(this.onParseErrorThrow)throw e;var r=t.call(this,n);return this.onParseErrorThrow=!0,this.onParseError(e,r),this.onParseErrorThrow=!1,r}},lookupNonWSType:function(e){do{var t=this.scanner.lookupType(e++);if(t!==Or)return t}while(0!==t);return 0},eat:function(e){if(this.scanner.tokenType!==e){var t=this.scanner.tokenStart,n=Dr[e]+" is expected";switch(e){case Br:this.scanner.tokenType===Ir||this.scanner.tokenType===Nr?(t=this.scanner.tokenEnd-1,n="Identifier is expected but function found"):n="Identifier is expected";break;case Mr:this.scanner.isDelim(35)&&(this.scanner.next(),t++,n="Name is expected");break;case Rr:this.scanner.tokenType===_r&&(t=this.scanner.tokenEnd,n="Percent sign is expected");break;default:this.scanner.source.charCodeAt(this.scanner.tokenStart)===e&&(t+=1)}this.error(n,t)}this.scanner.next()},consume:function(e){var t=this.scanner.getTokenValue();return this.eat(e),t},consumeFunctionName:function(){var e=this.scanner.source.substring(this.scanner.tokenStart,this.scanner.tokenEnd-1);return this.eat(Ir),e},getLocation:function(e,t){return this.needPositions?this.locationMap.getLocationRange(e,t,this.filename):null},getLocationFromList:function(e){if(this.needPositions){var t=this.getFirstListNode(e),n=this.getLastListNode(e);return this.locationMap.getLocationRange(null!==t?t.loc.start.offset-this.locationMap.startOffset:this.scanner.tokenStart,null!==n?n.loc.end.offset-this.locationMap.startOffset:this.scanner.tokenStart,this.filename)}return null},error:function(e,t){var n=void 0!==t&&t",t.needPositions=Boolean(n.positions),t.onParseError="function"==typeof n.onParseError?n.onParseError:Lr,t.onParseErrorThrow=!1,t.parseAtrulePrelude=!("parseAtrulePrelude"in n)||Boolean(n.parseAtrulePrelude),t.parseRulePrelude=!("parseRulePrelude"in n)||Boolean(n.parseRulePrelude),t.parseValue=!("parseValue"in n)||Boolean(n.parseValue),t.parseCustomProperty="parseCustomProperty"in n&&Boolean(n.parseCustomProperty),!t.context.hasOwnProperty(i))throw new Error("Unknown context `"+i+"`");return r=t.context[i].call(t,n),t.scanner.eof||t.error(),r}},Wr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),qr=function(e){if(0<=e&&e>>=5)>0&&(t|=32),n+=qr(t)}while(r>0);return n};var Ur=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){t.getArg=function(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')};var n=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,r=/^data:.+\,.+$/;function i(e){var t=e.match(n);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function a(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function o(e){var n=e,r=i(e);if(r){if(!r.path)return e;n=r.path}for(var o,s=t.isAbsolute(n),l=n.split(/\/+/),c=0,u=l.length-1;u>=0;u--)"."===(o=l[u])?l.splice(u,1):".."===o?c++:c>0&&(""===o?(l.splice(u+1,c),c=0):(l.splice(u,2),c--));return""===(n=l.join("/"))&&(n=s?"/":"."),r?(r.path=n,a(r)):n}function s(e,t){""===e&&(e="."),""===t&&(t=".");var n=i(t),s=i(e);if(s&&(e=s.path||"/"),n&&!n.scheme)return s&&(n.scheme=s.scheme),a(n);if(n||t.match(r))return t;if(s&&!s.host&&!s.path)return s.host=t,a(s);var l="/"===t.charAt(0)?t:o(e.replace(/\/+$/,"")+"/"+t);return s?(s.path=l,a(s)):l}t.urlParse=i,t.urlGenerate=a,t.normalize=o,t.join=s,t.isAbsolute=function(e){return"/"===e.charAt(0)||n.test(e)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var r=e.lastIndexOf("/");if(r<0)return t;if((e=e.slice(0,r)).match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)};var l=!("__proto__"in Object.create(null));function c(e){return e}function u(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var n=t-10;n>=0;n--)if(36!==e.charCodeAt(n))return!1;return!0}function h(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}t.toSetString=l?c:function(e){return u(e)?"$"+e:e},t.fromSetString=l?c:function(e){return u(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,n){var r=h(e.source,t.source);return 0!==r?r:0!==(r=e.originalLine-t.originalLine)?r:0!==(r=e.originalColumn-t.originalColumn)||n?r:0!==(r=e.generatedColumn-t.generatedColumn)?r:0!==(r=e.generatedLine-t.generatedLine)?r:h(e.name,t.name)},t.compareByGeneratedPositionsDeflated=function(e,t,n){var r=e.generatedLine-t.generatedLine;return 0!==r?r:0!==(r=e.generatedColumn-t.generatedColumn)||n?r:0!==(r=h(e.source,t.source))?r:0!==(r=e.originalLine-t.originalLine)?r:0!==(r=e.originalColumn-t.originalColumn)?r:h(e.name,t.name)},t.compareByGeneratedPositionsInflated=function(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n?n:0!==(n=e.generatedColumn-t.generatedColumn)?n:0!==(n=h(e.source,t.source))?n:0!==(n=e.originalLine-t.originalLine)?n:0!==(n=e.originalColumn-t.originalColumn)?n:h(e.name,t.name)},t.parseSourceMapInput=function(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))},t.computeSourceURL=function(e,t,n){if(t=t||"",e&&("/"!==e[e.length-1]&&"/"!==t[0]&&(e+="/"),t=e+t),n){var r=i(n);if(!r)throw new Error("sourceMapURL could not be parsed");if(r.path){var l=r.path.lastIndexOf("/");l>=0&&(r.path=r.path.substring(0,l+1))}t=s(a(r),t)}return o(t)}})),Hr=(Ur.getArg,Ur.urlParse,Ur.urlGenerate,Ur.normalize,Ur.join,Ur.isAbsolute,Ur.relative,Ur.toSetString,Ur.fromSetString,Ur.compareByOriginalPositions,Ur.compareByGeneratedPositionsDeflated,Ur.compareByGeneratedPositionsInflated,Ur.parseSourceMapInput,Ur.computeSourceURL,Object.prototype.hasOwnProperty),Vr="undefined"!=typeof Map;function Gr(){this._array=[],this._set=Vr?new Map:Object.create(null)}Gr.fromArray=function(e,t){for(var n=new Gr,r=0,i=e.length;r=0)return t}else{var n=Ur.toSetString(e);if(Hr.call(this._set,n))return this._set[n]}throw new Error('"'+e+'" is not in the set.')},Gr.prototype.at=function(e){if(e>=0&&er||i==r&&o>=a||Ur.compareByGeneratedPositionsInflated(t,n)<=0?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},Qr.prototype.toArray=function(){return this._sorted||(this._array.sort(Ur.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};var Xr=Kr.ArraySet,Zr={MappingList:Qr}.MappingList;function $r(e){e||(e={}),this._file=Ur.getArg(e,"file",null),this._sourceRoot=Ur.getArg(e,"sourceRoot",null),this._skipValidation=Ur.getArg(e,"skipValidation",!1),this._sources=new Xr,this._names=new Xr,this._mappings=new Zr,this._sourcesContents=null}$r.prototype._version=3,$r.fromSourceMap=function(e){var t=e.sourceRoot,n=new $r({file:e.file,sourceRoot:t});return e.eachMapping((function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=Ur.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)})),e.sources.forEach((function(r){var i=r;null!==t&&(i=Ur.relative(t,r)),n._sources.has(i)||n._sources.add(i);var a=e.sourceContentFor(r);null!=a&&n.setSourceContent(r,a)})),n},$r.prototype.addMapping=function(e){var t=Ur.getArg(e,"generated"),n=Ur.getArg(e,"original",null),r=Ur.getArg(e,"source",null),i=Ur.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,n,r,i),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},$r.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=Ur.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[Ur.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[Ur.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},$r.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var i=this._sourceRoot;null!=i&&(r=Ur.relative(i,r));var a=new Xr,o=new Xr;this._mappings.unsortedForEach((function(t){if(t.source===r&&null!=t.originalLine){var s=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=s.source&&(t.source=s.source,null!=n&&(t.source=Ur.join(n,t.source)),null!=i&&(t.source=Ur.relative(i,t.source)),t.originalLine=s.line,t.originalColumn=s.column,null!=s.name&&(t.name=s.name))}var l=t.source;null==l||a.has(l)||a.add(l);var c=t.name;null==c||o.has(c)||o.add(c)}),this),this._sources=a,this._names=o,e.sources.forEach((function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=Ur.join(n,t)),null!=i&&(t=Ur.relative(i,t)),this.setSourceContent(t,r))}),this)},$r.prototype._validateMapping=function(e,t,n,r){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},$r.prototype._serializeMappings=function(){for(var e,t,n,r,i=0,a=1,o=0,s=0,l=0,c=0,u="",h=this._mappings.toArray(),p=0,d=h.length;p0){if(!Ur.compareByGeneratedPositionsInflated(t,h[p-1]))continue;e+=","}e+=Yr(t.generatedColumn-i),i=t.generatedColumn,null!=t.source&&(r=this._sources.indexOf(t.source),e+=Yr(r-c),c=r,e+=Yr(t.originalLine-1-s),s=t.originalLine-1,e+=Yr(t.originalColumn-o),o=t.originalColumn,null!=t.name&&(n=this._names.indexOf(t.name),e+=Yr(n-l),l=n)),u+=e}return u},$r.prototype._generateSourcesContent=function(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=Ur.relative(t,e));var n=Ur.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null}),this)},$r.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},$r.prototype.toString=function(){return JSON.stringify(this.toJSON())};var Jr={SourceMapGenerator:$r}.SourceMapGenerator,ei={Atrule:!0,Selector:!0,Declaration:!0},ti=Object.prototype.hasOwnProperty;function ni(e,t){var n=e.children,r=null;"function"!=typeof t?n.forEach(this.node,this):n.forEach((function(e){null!==r&&t.call(this,r),this.node(e),r=e}),this)}var ri=function(e){function t(e){if(!ti.call(n,e.type))throw new Error("Unknown node type: "+e.type);n[e.type].call(this,e)}var n={};if(e.node)for(var r in e.node)n[r]=e.node[r].generate;return function(e,n){var r="",i={children:ni,node:t,chunk:function(e){r+=e},result:function(){return r}};return n&&("function"==typeof n.decorator&&(i=n.decorator(i)),n.sourceMap&&(i=function(e){var t=new Jr,n=1,r=0,i={line:1,column:0},a={line:0,column:0},o=!1,s={line:1,column:0},l={generated:s},c=e.node;e.node=function(e){if(e.loc&&e.loc.start&&ei.hasOwnProperty(e.type)){var u=e.loc.start.line,h=e.loc.start.column-1;a.line===u&&a.column===h||(a.line=u,a.column=h,i.line=n,i.column=r,o&&(o=!1,i.line===s.line&&i.column===s.column||t.addMapping(l)),o=!0,t.addMapping({source:e.loc.source,original:a,generated:i}))}c.call(this,e),o&&ei.hasOwnProperty(e.type)&&(s.line=n,s.column=r)};var u=e.chunk;e.chunk=function(e){for(var t=0;t|","angle-percentage":"|","angular-color-hint":"","angular-color-stop":"&&?","angular-color-stop-list":"[ [, ]?]# , ","animateable-feature":"scroll-position|contents|",attachment:"scroll|fixed|local","attr()":"attr( ? [, ]? )","attr-matcher":"['~'|'|'|'^'|'$'|'*']? '='","attr-modifier":"i|s","attribute-selector":"'[' ']'|'[' [|] ? ']'","auto-repeat":"repeat( [auto-fill|auto-fit] , [? ]+ ? )","auto-track-list":"[? [|]]* ? [? [|]]* ?","baseline-position":"[first|last]? baseline","basic-shape":"|||","bg-image":"none|","bg-layer":"|| [/ ]?||||||||","bg-position":"[[left|center|right|top|bottom|]|[left|center|right|] [top|center|bottom|]|[center|[left|right] ?]&&[center|[top|bottom] ?]]","bg-size":"[|auto]{1,2}|cover|contain","blur()":"blur( )","blend-mode":"normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity",box:"border-box|padding-box|content-box","brightness()":"brightness( )","calc()":"calc( )","calc-sum":" [['+'|'-'] ]*","calc-product":" ['*' |'/' ]*","calc-value":"|||( )","cf-final-image":"|","cf-mixing-image":"?&&","circle()":"circle( []? [at ]? )","clamp()":"clamp( #{3} )","class-selector":"'.' ","clip-source":"",color:"||||||currentcolor|","color-stop":"|","color-stop-angle":"{1,2}","color-stop-length":"{1,2}","color-stop-list":"[ [, ]?]# , ",combinator:"'>'|'+'|'~'|['||']","common-lig-values":"[common-ligatures|no-common-ligatures]",compat:"searchfield|textarea|push-button|button-bevel|slider-horizontal|checkbox|radio|square-button|menulist|menulist-button|listbox|meter|progress-bar","composite-style":"clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor","compositing-operator":"add|subtract|intersect|exclude","compound-selector":"[? * [ *]*]!","compound-selector-list":"#","complex-selector":" [? ]*","complex-selector-list":"#","conic-gradient()":"conic-gradient( [from ]? [at ]? , )","contextual-alt-values":"[contextual|no-contextual]","content-distribution":"space-between|space-around|space-evenly|stretch","content-list":"[|contents||||counter( , <'list-style-type'>? )]+","content-position":"center|start|end|flex-start|flex-end","content-replacement":"","contrast()":"contrast( [] )","counter()":"counter( , [|none]? )","counter-style":"|symbols( )","counter-style-name":"","counters()":"counters( , , [|none]? )","cross-fade()":"cross-fade( , ? )","cubic-bezier-timing-function":"ease|ease-in|ease-out|ease-in-out|cubic-bezier( , , , )","deprecated-system-color":"ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText","discretionary-lig-values":"[discretionary-ligatures|no-discretionary-ligatures]","display-box":"contents|none","display-inside":"flow|flow-root|table|flex|grid|ruby","display-internal":"table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container","display-legacy":"inline-block|inline-list-item|inline-table|inline-flex|inline-grid","display-listitem":"?&&[flow|flow-root]?&&list-item","display-outside":"block|inline|run-in","drop-shadow()":"drop-shadow( {2,3} ? )","east-asian-variant-values":"[jis78|jis83|jis90|jis04|simplified|traditional]","east-asian-width-values":"[full-width|proportional-width]","element()":"element( )","ellipse()":"ellipse( [{2}]? [at ]? )","ending-shape":"circle|ellipse","env()":"env( , ? )","explicit-track-list":"[? ]+ ?","family-name":"|+","feature-tag-value":" [|on|off]?","feature-type":"@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation","feature-value-block":" '{' '}'","feature-value-block-list":"+","feature-value-declaration":" : + ;","feature-value-declaration-list":"","feature-value-name":"","fill-rule":"nonzero|evenodd","filter-function":"|||||||||","filter-function-list":"[|]+","final-bg-layer":"<'background-color'>|||| [/ ]?||||||||","fit-content()":"fit-content( [|] )","fixed-breadth":"","fixed-repeat":"repeat( [] , [? ]+ ? )","fixed-size":"|minmax( , )|minmax( , )","font-stretch-absolute":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|","font-variant-css21":"[normal|small-caps]","font-weight-absolute":"normal|bold|","frequency-percentage":"|","general-enclosed":"[ )]|( )","generic-family":"serif|sans-serif|cursive|fantasy|monospace|-apple-system","generic-name":"serif|sans-serif|cursive|fantasy|monospace","geometry-box":"|fill-box|stroke-box|view-box",gradient:"|||||<-legacy-gradient>","grayscale()":"grayscale( )","grid-line":"auto||[&&?]|[span&&[||]]","historical-lig-values":"[historical-ligatures|no-historical-ligatures]","hsl()":"hsl( [/ ]? )|hsl( , , , ? )","hsla()":"hsla( [/ ]? )|hsla( , , , ? )",hue:"|","hue-rotate()":"hue-rotate( )",image:"|||||","image()":"image( ? [? , ?]! )","image-set()":"image-set( # )","image-set-option":"[|] ","image-src":"|","image-tags":"ltr|rtl","inflexible-breadth":"||min-content|max-content|auto","inset()":"inset( {1,4} [round <'border-radius'>]? )","invert()":"invert( )","keyframes-name":"|","keyframe-block":"# { }","keyframe-block-list":"+","keyframe-selector":"from|to|","leader()":"leader( )","leader-type":"dotted|solid|space|","length-percentage":"|","line-names":"'[' * ']'","line-name-list":"[|]+","line-style":"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset","line-width":"|thin|medium|thick","linear-color-hint":"","linear-color-stop":" ?","linear-gradient()":"linear-gradient( [|to ]? , )","mask-layer":"|| [/ ]?||||||[|no-clip]||||","mask-position":"[|left|center|right] [|top|center|bottom]?","mask-reference":"none||","mask-source":"","masking-mode":"alpha|luminance|match-source","matrix()":"matrix( #{6} )","matrix3d()":"matrix3d( #{16} )","max()":"max( # )","media-and":" [and ]+","media-condition":"|||","media-condition-without-or":"||","media-feature":"( [||] )","media-in-parens":"( )||","media-not":"not ","media-or":" [or ]+","media-query":"|[not|only]? [and ]?","media-query-list":"#","media-type":"","mf-boolean":"","mf-name":"","mf-plain":" : ","mf-range":" ['<'|'>']? '='? | ['<'|'>']? '='? | '<' '='? '<' '='? | '>' '='? '>' '='? ","mf-value":"|||","min()":"min( # )","minmax()":"minmax( [|||min-content|max-content|auto] , [|||min-content|max-content|auto] )","named-color":"transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|<-non-standard-color>","namespace-prefix":"","ns-prefix":"[|'*']? '|'","number-percentage":"|","numeric-figure-values":"[lining-nums|oldstyle-nums]","numeric-fraction-values":"[diagonal-fractions|stacked-fractions]","numeric-spacing-values":"[proportional-nums|tabular-nums]",nth:"|even|odd","opacity()":"opacity( [] )","overflow-position":"unsafe|safe","outline-radius":"|","page-body":"? [; ]?| ","page-margin-box":" '{' '}'","page-margin-box-type":"@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom","page-selector-list":"[#]?","page-selector":"+| *","perspective()":"perspective( )","polygon()":"polygon( ? , [ ]# )",position:"[[left|center|right]||[top|center|bottom]|[left|center|right|] [top|center|bottom|]?|[[left|right] ]&&[[top|bottom] ]]","pseudo-class-selector":"':' |':' ')'","pseudo-element-selector":"':' ","pseudo-page":": [left|right|first|blank]",quote:"open-quote|close-quote|no-open-quote|no-close-quote","radial-gradient()":"radial-gradient( [||]? [at ]? , )","relative-selector":"? ","relative-selector-list":"#","relative-size":"larger|smaller","repeat-style":"repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}","repeating-linear-gradient()":"repeating-linear-gradient( [|to ]? , )","repeating-radial-gradient()":"repeating-radial-gradient( [||]? [at ]? , )","rgb()":"rgb( {3} [/ ]? )|rgb( {3} [/ ]? )|rgb( #{3} , ? )|rgb( #{3} , ? )","rgba()":"rgba( {3} [/ ]? )|rgba( {3} [/ ]? )|rgba( #{3} , ? )|rgba( #{3} , ? )","rotate()":"rotate( [|] )","rotate3d()":"rotate3d( , , , [|] )","rotateX()":"rotateX( [|] )","rotateY()":"rotateY( [|] )","rotateZ()":"rotateZ( [|] )","saturate()":"saturate( )","scale()":"scale( , ? )","scale3d()":"scale3d( , , )","scaleX()":"scaleX( )","scaleY()":"scaleY( )","scaleZ()":"scaleZ( )","self-position":"center|start|end|self-start|self-end|flex-start|flex-end","shape-radius":"|closest-side|farthest-side","skew()":"skew( [|] , [|]? )","skewX()":"skewX( [|] )","skewY()":"skewY( [|] )","sepia()":"sepia( )",shadow:"inset?&&{2,4}&&?","shadow-t":"[{2,3}&&?]",shape:"rect( , , , )|rect( )","shape-box":"|margin-box","side-or-corner":"[left|right]||[top|bottom]","single-animation":"