diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 5f18790..0000000 --- a/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 4 -indent_style = tab -insert_final_newline = false -max_line_length = 120 - -[*.{css,scss}] -tab_width = 2 -indent_size = tab diff --git a/.eleventy.js b/.eleventy.js deleted file mode 100644 index a29e297..0000000 --- a/.eleventy.js +++ /dev/null @@ -1,142 +0,0 @@ -/* jshint strict: false */ - -import fs from 'fs/promises'; -import {HtmlBasePlugin} from "@11ty/eleventy"; -import pluginWebc from "@11ty/eleventy-plugin-webc"; - -async function hasFiles(dirPath) { - try { - const entries = await fs.readdir(dirPath, {withFileTypes: true}); - return entries.some(entry => entry.isFile()); - } catch (err) { - console.error('Error reading directory:', err); - return false; - } -} - -// noinspection JSUnusedGlobalSymbols -export default async function (eleventyConfig) { - eleventyConfig.addPlugin(HtmlBasePlugin); - eleventyConfig.addPlugin(pluginWebc); - - eleventyConfig.setLiquidOptions({ - // greedy: false, - // trimOutputLeft: true, - // trimOutputRight: true, - // trimTagLeft: true, - // trimTagRight : true, - }); - - eleventyConfig.addGlobalData('permalink', () => { - return (data) => `${data.page.filePathStem}.${data.page.outputFileExtension}`; - }); - - // TODO: Demo entfernen - const permalinkPath = await hasFiles('source/view') ? '/demo/' : '/'; - - eleventyConfig.addGlobalData('hippie', { - brand: 'hippie', - titlePrefix: '', - titlePostfix: ' - HIPPIE', - placeholders: { - name: 'Vorname Nachname', - address: 'Straße Nr., PLZ Ort', - phone: '+49 (0)101 1337 48', - mail: 'name@domain.tld', - domain: 'https://domain.tld' - }, - permalink: permalinkPath, - debugMode: true, - legacyMode: false - }); - - eleventyConfig.addShortcode('text', function (text, attrId, attrClass) { - return `${text}`; - }); - - eleventyConfig.addShortcode('link', function (target, text, attrId, attrClass) { - if (!text || text === '') { - text = target; - } - - if (target.indexOf('@') !== -1) { - target = 'mailto:' + target; - } - - return `${text}`; - }); - - eleventyConfig.addPairedShortcode('brand', function (content, attrClass = 'brand', direction = 'first') { - const logo = ` - - - - - - - - - -`; - let output = ''; - - switch (direction) { - case 'first': - output = logo + `${content}`; - break; - case 'last': - output = `${content}` + logo; - break; - } - - return `
` + output + `
`; - }); - - eleventyConfig.addPassthroughCopy({'source/art/images': 'art'}); - eleventyConfig.addPassthroughCopy({'source/art/favicons/**/*.+(ico|png|svg)': '.'}); - eleventyConfig.addPassthroughCopy({'source/code/**/*.js': 'js'}); - eleventyConfig.addPassthroughCopy({'source/data/**/*.json': 'json'}); - - eleventyConfig.addPassthroughCopy('vendor'); - eleventyConfig.addPassthroughCopy({'node_modules/bootstrap-icons': 'vendor/bootstrap-icons'}); - eleventyConfig.addPassthroughCopy({ - 'node_modules/jquery/dist/jquery.min.js': 'vendor/jquery.min.js', - 'node_modules/jquery/dist/jquery.min.map': 'vendor/jquery.min.map' - }); - eleventyConfig.addPassthroughCopy({'node_modules/hippie-script/index.js': 'vendor/hippie-script.js'}); - - eleventyConfig.addWatchTarget('./source/style/'); -} - -// noinspection JSUnusedGlobalSymbols -export const config = { - dir: { - input: 'source/view', - output: 'build' - }, - templateFormats: ['html', 'liquid', 'md', 'njk'] -}; \ No newline at end of file diff --git a/.gitignore b/.gitignore index 6ae690a..94abb41 100644 --- a/.gitignore +++ b/.gitignore @@ -1,186 +1,200 @@ -# HIPPIE -################### -build/** -deploy/** -reports/** -source/art/sprites/ -source/art/images/sprite.* - -# IDE -.idea/ - -# https://gist.github.com/octocat/9257657 -################### -################### - -# Compiled source # -################### -*.com -*.class -*.dll -*.exe -*.o -*.so - -# Packages # -############ -# it's better to unpack these files and commit the raw source -# git has its own built in compression methods -*.7z -*.dmg -*.gz -*.iso -*.jar -*.rar -*.tar -*.zip - -# Logs and databases # -###################### -*.log -*.sql -*.sqlite - -# OS generated files # -###################### -.DS_Store -.DS_Store? -._* -.Spotlight-V100 -.Trashes - -# https://github.com/github/gitignore -################### -################### - -# https://github.com/github/gitignore/blob/master/Global/Windows.gitignore -################### -# Windows thumbnail cache files -Thumbs.db -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# https://github.com/github/gitignore/blob/master/Global/macOS.gitignore -################### -# General -*.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.TemporaryItems -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -https://github.com/github/gitignore/blob/master/Global/Linux.gitignore -################### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -# https://github.com/github/gitignore/blob/master/Node.gitignore -################### -# Logs -logs -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Typescript v1 declaration files -typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env - -# https://github.com/github/gitignore/blob/master/Sass.gitignore -################### -.sass-cache/ -*.css.map -*.sass.map -*.scss.map \ No newline at end of file +# hippie +################### +################### + +build/** +reports/** +source/art/*.* +source/art/images/** +source/art/sprites/** +source/style/hippie-style/mixins/_sprite.scss +!source/art/**/demo/ +source/templates/data.json +source/data/** +!source/data/**/demo.json + + + +# https://gist.github.com/octocat/9257657 +################### +################### + +# Compiled source # +################### +*.com +*.class +*.dll +*.exe +*.o +*.so + +# Packages # +############ +# it's better to unpack these files and commit the raw source +# git has its own built in compression methods +*.7z +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip + +# Logs and databases # +###################### +*.log +*.sql +*.sqlite + +# OS generated files # +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + + + +# https://github.com/github/gitignore +################### +################### + +# https://github.com/github/gitignore/blob/master/Global/Windows.gitignore +################### +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# https://github.com/github/gitignore/blob/master/Global/macOS.gitignore +################### +# General +*.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +https://github.com/github/gitignore/blob/master/Global/Linux.gitignore +################### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +# https://github.com/github/gitignore/blob/master/Node.gitignore +################### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# https://github.com/github/gitignore/blob/master/Sass.gitignore +################### +.sass-cache/ +*.css.map diff --git a/.gitmodules b/.gitmodules index 410b0db..75c5b90 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,4 @@ [submodule "source/style/hippie-style"] path = source/style/hippie-style url = https://quelltext.interaktionsweise.de/interaktionsweise/hippie-style.git - branch = development -[submodule "source/view/_includes/hippie-view"] - path = source/view/_includes/hippie-view - url = https://quelltext.interaktionsweise.de/interaktionsweise/hippie-view.git + branch = main diff --git a/.jshintrc b/.jshintrc index 13fcfa1..7554aff 100644 --- a/.jshintrc +++ b/.jshintrc @@ -1,33 +1,96 @@ { - "bitwise": true, - "curly": false, - "devel": true, - "eqeqeq": true, - "esversion": 11, - "forin": true, - "freeze": true, - "jquery": true, - "noarg": true, - "noempty": true, - "strict": true, - "undef": true, - "unused": false, - "browser": true, - "globals": { - "DateDisplay": true, - "HIPPIE": false, - "HippieTaskBar": true, - "TimeDisplay": true, - "basicEase": true, - "centerElementUnderCursor": false, - "checkButtonAndTarget": false, - "debugOn": true, - "getClosestEdgeToElement": false, - "getClosestEdgeToMouse": false, - "hippie": true, - "randomIntFrom": false, - "readJsonFile": false, - "replaceLineBreaks": false, - "viewHover": true - } + // JSHint Default Configuration File (as on JSHint website) + // See http://jshint.com/docs/ for more details + + "maxerr" : 50, // {int} Maximum error before stopping + + // Enforcing + "bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.) + "camelcase" : false, // true: Identifiers must be in camelCase + "curly" : true, // true: Require {} for every new block or scope + "eqeqeq" : true, // true: Require triple equals (===) for comparison + "forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty() + "freeze" : true, // true: prohibits overwriting prototypes of native objects such as Array, Date etc. + "immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());` + "latedef" : false, // true: Require variables/functions to be defined before being used + "newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()` + "noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee` + "noempty" : true, // true: Prohibit use of empty blocks + "nonbsp" : true, // true: Prohibit `non-breaking whitespace` characters. + "nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment) + "plusplus" : false, // true: Prohibit use of `++` and `--` + "quotmark" : false, // Quotation mark consistency: + // false : do nothing (default) + // true : ensure whatever is used is consistent + // "single" : require single quotes + // "double" : require double quotes + "undef" : true, // true: Require all non-global variables to be declared (prevents global leaks) + "unused" : false, // Unused variables: + // true : all variables, last function parameter + // "vars" : all variables only + // "strict" : all variables, all function parameters + "strict" : true, // true: Requires all functions run in ES5 Strict Mode + "maxparams" : false, // {int} Max number of formal params allowed per function + "maxdepth" : false, // {int} Max depth of nested blocks (within functions) + "maxstatements" : false, // {int} Max number statements per function + "maxcomplexity" : false, // {int} Max cyclomatic complexity per function + "maxlen" : false, // {int} Max number of characters per line + "varstmt" : false, // true: Disallow any var statements. Only `let` and `const` are allowed. + + // Relaxing + "asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons) + "boss" : false, // true: Tolerate assignments where comparisons would be expected + "debug" : false, // true: Allow debugger statements e.g. browser breakpoints. + "eqnull" : false, // true: Tolerate use of `== null` + "esversion" : 6, // {int} Specify the ECMAScript version to which the code must adhere. + "moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features) + // (ex: `for each`, multiple try/catch, function expression…) + "evil" : false, // true: Tolerate use of `eval` and `new Function()` + "expr" : false, // true: Tolerate `ExpressionStatement` as Programs + "funcscope" : false, // true: Tolerate defining variables inside control statements + "globalstrict" : false, // true: Allow global "use strict" (also enables 'strict') + "iterator" : false, // true: Tolerate using the `__iterator__` property + "lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block + "laxbreak" : false, // true: Tolerate possibly unsafe line breakings + "laxcomma" : false, // true: Tolerate comma-first style coding + "loopfunc" : false, // true: Tolerate functions being defined in loops + "multistr" : false, // true: Tolerate multi-line strings + "noyield" : false, // true: Tolerate generator functions with no yield statement in them. + "notypeof" : false, // true: Tolerate invalid typeof operator values + "proto" : false, // true: Tolerate using the `__proto__` property + "scripturl" : false, // true: Tolerate script-targeted URLs + "shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;` + "sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation + "supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;` + "validthis" : false, // true: Tolerate using this in a non-constructor function + + // Environments + "browser" : true, // Web Browser (window, document, etc) + "browserify" : false, // Browserify (node.js code in the browser) + "couch" : false, // CouchDB + "devel" : true, // Development/debugging (alert, confirm, etc) + "dojo" : false, // Dojo Toolkit + "jasmine" : false, // Jasmine + "jquery" : true, // jQuery + "mocha" : true, // Mocha + "mootools" : false, // MooTools + "node" : false, // Node.js + "nonstandard" : false, // Widely adopted globals (escape, unescape, etc) + "phantom" : false, // PhantomJS + "prototypejs" : false, // Prototype and Scriptaculous + "qunit" : false, // QUnit + "rhino" : false, // Rhino + "shelljs" : false, // ShellJS + "typed" : false, // Globals for typed array constructions + "worker" : false, // Web Workers + "wsh" : false, // Windows Scripting Host + "yui" : false, // Yahoo User Interface + + // Custom globals + "globals" : { // additional predefined global variables + "debugOn": true, + "hippie": true, + "viewHover": true, + "basicEase": true + } } diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 4e82455..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,52 +0,0 @@ -| Commit | Version | Description | -|:-----------------------------------------|:-------:|:------------------------------------------------| -| 6095870ce33fd3775718a1de3d33f604fd0630ab | 0.4.2 | Javascript again | -| 50a1a6d9257b272e076c2e3b5bac39c7d17b2793 | 0.5.0 | Changes to content | -| e2bbe9273a292a3806de1599f752258a2721d067 | 0.5.1 | | -| 3d4eef5eb0a1632b43e1e3372e38a70cd4b58914 | 0.5.2 | | -| 371cb450f81cd0d692c9005952af35ec066e01e1 | 0.6.0 | New es6 coding standard | -| 175816c3595d783e7d8b48f5336fbdd54dae145b | 0.6.1 | | -| 67e3cc1eca359bc2b927b8e971ccd7ba71f4c5a2 | 0.6.2 | | -| abeb843718988fab978de7c75d6d45806f5d35a7 | 0.6.3 | | -| 4401761a6bec9db19293353942479aea7bb8ead1 | 0.6.4 | | -| 83464a1cf4ba3efc6382eafb6f68f106c6650161 | 0.6.5 | | -| 6f95393409b502fef9ad9677b3c1ed1fe07ecc28 | 0.6.6 | | -| 63b54f2749ed5a4d9a7a53c27540e7d6f8dff63d | 0.6.7 | | -| 830037f5e5237d33ad66fe89ba45167a62d87829 | 0.6.8 | | -| d205031fff29ee4d48251e30b17090143ae5458c | 0.7.0 | switched to style submodule usage | -| d18254b61d87eb3d09d17b93783117dad7d13686 | 0.7.1 | | -| 9b9b0cb1c631273f574d3cd7618bd799f561db6c | 0.7.2 | | -| 11b30671d4948dfd30b7da14fe7295f386b54257 | 0.7.3 | | -| 767b3024fa3bbededab2a8d665b4b35b55854a1c | 0.7.4 | | -| 5c3cda58b147f16e1b9fdf1ed7b5499651df943d | 0.8.0 | changes to license file and submodule update | -| 8567604ea6b129ded8b0e6108362a30d039235a7 | 0.8.1 | | -| b2ea5b01aa47783b5f797310e16f1897e1839eb9 | 0.9.0 | Requirements updated and new nunjucks variables | -| df064b8a942f00dd3277a9dde696e91324dfd166 | 0.9.1 | | -| d812ed62084c90d4fac18b6c56a6dd3bf9bd7cba | 0.9.2 | | -| 84957f75a017d5d06a32874282d9eb9f3d537534 | 0.9.3 | | -| 489786aadc30bb589be769fe627389611c4f71f5 | 0.9.4 | | -| 003a1159231241140a262ae67bb1236978b22ec0 | 0.9.5 | | -| 731c19dd61215b8f373af9100ad5c23f19a4c2a3 | 0.9.6 | | -| dd5ff43e1695d2de0b5a0a9614c1f31ad7e7b85b | 0.9.7 | | -| dde26ec45eeb8d28a986093b8b5b29d8165e5a11 | 0.9.8 | | -| 06ba1113929183f51e8501d440c950e4b4d9f0d2 | 0.9.9 | | -| 827e6c1cde0aa4ca65e6c170174eae91da9aa4c9 | 0.9.10 | | -| 202729f9ba098b5ff07f6af43acce7a67007cd1b | 0.9.11 | | -| d22828400125f8572cfbe6243e2521ffab519adf | 0.9.12 | | -| bf1a6ca7421a0385f664f864a82850f0805522c0 | 0.9.13 | | -| 32215de810546f6ebd7f552816fc5bf3281a0a13 | 0.9.14 | | -| f7dd7c93e3a06bc430fcf4e12f4be3d3b1aa29c6 | 0.10.0 | Added card and portal modules | -| f54dbe92d912b9e7553a3a2263b009ed05017b0b | 0.10.1 | | -| 6b217b6ebbfcfa2f3e14bdf41e21bb36f88050a5 | 0.10.2 | | -| 534115ff282de4648c294ae78fe768d79e23d379 | 0.10.3 | | -| f7a5481fd2e1d1c96f7e9d82eb2c3db9483b5784 | 0.10.4 | | -| 31e896462e7693a4a6ba10d52657caf919e7f482 | 0.10.5 | | -| 778d7d14d5e8d4dbcce2f9cb996afbc4d7accf27 | 0.11.0 | logPerf without JQuery | -| 1d7f2eb839472524d73f395365ffb43e8fc5d115 | 0.12.0 | Migration to new home | -| 69c04c32349d3d11820da933ed2bbd648fabb040 | 0.12.1 | | -| 9415d4d9573a4f2a4e1c479c74c59abe3a69cd57 | 0.12.2 | | -| 6e7615b44d9ef26ade73a00102878804272cf717 | 0.12.3 | | -| b6ec313f26dde6b379da16edb65de082c6ca9b65 | 0.12.4 | | -| e856e5311439d5a64478f7cda79998476ebdfe33 | 0.12.5 | | -| ef9d665849f370b2284ae8d985d9625b5083fe37 | 0.13.0 | Introduced 11ty | -| 3358e1858bc764e520dad65cc614c842b4f66245 | 0.13.1 | | \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md index 7f1b2db..ba18326 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,21 +1,21 @@ -The MIT License (MIT) - -Copyright (c) 2016 till today Stephan Hagedorn - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +The MIT License (MIT) + +Copyright (c) 2016 till today Stephan Hagedorn + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 3f4beda..ed3beb7 100644 --- a/README.md +++ b/README.md @@ -1,108 +1,45 @@ # HIPPIE -Hippie interweaves preeminent personal interface elements - > WORK IN PROGRESS (it is not ready to be used) -This is a [Node.js](https://nodejs.org/) based generator for static HTML documents. -It uses the [Eleventy](https://www.11ty.dev/) project to fiddle everything together. +This is a [node.js](https://nodejs.org/) based generator for static HTML based sites. -Styling is powered by the CSS extension language [Sass](https://sass-lang.com/). The HTML pages are written with -templating engines or directly as HTML files. Mainly [Liquid](https://liquidjs.com/) is used, -but [Markdown](https://daringfireball.net/projects/markdown/) and [Nunjucks](https://mozilla.github.io/nunjucks/) are -also options. +It uses the [gulp](https://gulpjs.com/) module to fiddle everything together. Styling is powered by the CSS extension language [SASS](https://sass-lang.com/). The HTML pages itself are made with the templating engine [Nunjucks](https://mozilla.github.io/nunjucks/). -## Installing +## INSTALLATION -Clone the repository `https://quelltext.interaktionsweise.de/interaktionsweise/hippie.git` to a folder to create your -build environment. +Clone the repo `https://github.com/sthag/hippie.git` to a folder to create your build environment. -Change to the newly created folder. By default, this would be *hippie*. +Change to the newly created folder. By default this would be *hippie*. Run the command `git submodule update --init`. This will load the submodules. Run the command `npm install`. -This will install all dependencies into the folder *node_modules*. +This will install all node.js dependencies into the folder *node_modules*. -## Usage +## USAGE -Different *scripts* are provided through `package.json`: +The command `gulp --tasks` will give you an overview of possible actions. -Run the command `npm run serve` for a live development environment. -This will create a folder `/build` with the resulting files. -Also, the source files will be watched for changes which are reflected live at [localhost:8080](http://localhost:8080) -and the `/build` directory. +Run the command `gulp` for a live development environment. +This will create a folder *build* with the resulting files. +Also the source files will be watched for changes which are reflected live at [localhost:3000](htpp://localhost:3000) and the *build* directory. -`npm run build` will just create the resulting `/build` directory and `npm run deploy` will use a path prefix (*hippie* -by default) and create the results in `/deploy` ready for deployment. +`gulp build` will create the resulting *build* directory ready for deployment. -HIPPIE is intended to be used as a basis when creating HTML sites. It can be used without changes. It can be modified to -have a different look and feel. It also can be used to build a new basis on top of it. +HIPPIE is intended to be used as a basis when creating HTML sites. It can be used without changes. It can be modified to have a different look and feel. It also can be used to build a new basis on top of it. -## Content +## LOGIC ### Intro -There is an *intro* page which explains the main elements and their intended usage. It uses the default styling methods -and also shows variations. The page is written in german language. However, it has a semantic structure and the text -itself can also just be seen as example content. +There is an *intro* page which explains the main elements and their intended usage. It uses the default styling methods and also shows variations. The page is written in german language. However it has a semantic structure and the text itself can also just be seen as example content. -### Sass (CSS) +### SASS (CSS) Everything has its default style. - -CSS classes follow a naming scheme of `_`. - -- *Object* usually is the name of the HTML element. If it is not an element directly it is the thing which receives the - styling -- *Description* is a name of the style e.g. what it does, how it looks - -### JavaScript (JS) - -The codebase uses ECMAScript 2023 Language Specification (14th edition). -However, currently the JSHint configuration only allows 11 as highest version. - -ID values are written in *camelCase*. The scheme further uses parts for specific contexts. - -If the ID is for an interactive element the first part is an abbreviation of the action. - -- `add` - Add -- `qry` - Query -- `rmv` - Remove -- `set` - Set -- `slt` - Select -- `tgl` - Toggle - -## Versioning - -This project uses [SemVer](http://semver.org/) for versioning. For the versions available, see -the [tags on this repository](https://quelltext.interaktionsweise.de/interaktionsweise/hippie/tags). - -## Contribution - -For contribution please use the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) -specification. -The commit *type* can include the following: - -- feat – A new feature is introduced with the changes -- fix – A bug fix has occurred -- chore – Changes that do not relate to a fix or feature and don't modify src or test files (for example updating - dependencies) -- refactor – Refactored code that neither fixes a bug nor adds a feature -- docs – Updates to documentation such as the README or other Markdown files -- style – Changes that do not affect the meaning of the code, likely related to code formatting such as white-space, - missing semicolons, and so on. -- test – Including new or correcting previous tests -- perf – Performance improvements -- ci – Continuous integration related -- build – Changes that affect the build system or external dependencies -- revert – Reverts a previous commit - -## Authors - -**Stephan Hagedorn** - *Initial work* - [Interaktionsweise](https://interaktionsweise.de) - -## License - -This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details. \ No newline at end of file +The lo +Class enthalten Objektnamen und Funktionen +> Sie sind mit `-` und `_` unterteilt. +> Der Bindestrich `-` trennt Objektnamen von Funktionen. Der Unterstrich `_` wiederum unterteilt Funktionsbezeichnungen. diff --git a/TODO.md b/TODO.md index 2c1ec95..44ca180 100644 --- a/TODO.md +++ b/TODO.md @@ -1,150 +1,4 @@ -# General - -- Better README with more info for the content section - - Explain eleventy usage -- Complete CHANGELOG -- Automatic versioning for package.json and CHANGELOG -- Add dynamic content to robots.txt during build process -- Add dynamic content to sitemap.xml - -# 11ty - -- Look into teh difference of layouts and templates - -# CSS - -- Check style for every basic element -- Uniform spelling of classes and identifiers -- Direct class dependencies instead of repeating element names in classes -- Change io stuff - - Find name for styled interactive elements - - Find name for io module with nested class names -- Change demo module - - Keep placeholder and demo stuff - - Move other things - - Prevent styles to be global -- Adapt bootstrap utility API - - https://github.com/twbs/bootstrap/blob/main/scss/utilities/_api.scss - - https://github.com/twbs/bootstrap/blob/main/scss/_utilities.scss - -# JS - -- Use delegation for action attributes like: https://javascript.info/event-delegation#delegation-example-actions-in-markup -- Proxy for class options: https://javascript.info/proxy - -# Content - -- *Intro* - - Complete with description for all basic elements, according to [HTML Standard - The elements of HTML](https://html.spec.whatwg.org/multipage/semantics.html#semantics) - - Sections - - [x] body - - [x] article - - [x] section - - [x] nav - - [x] aside - - [x] h1-h6 - - [x] hgroup - - [x] header - - [x] footer - - [x] address (put to grouping content) - - Grouping content - - [x] p - - [x] hr - - [x] pre - - [x] blockquote - - [x] ol - - [x] ul - - [ ] menu (new) - - [x] li - - [x] dl - - [x] dt - - [x] dd - - [x] figure - - [x] figcaption - - [x] main - - [ ] search (new) - - [x] div - - Text-level semantics - - [x] a - - [x] em - - [x] strong - - [x] small - - [x] s - - [x] cite - - [x] q - - [x] dfn - - [x] abbr - - [x] ruby - - [x] rb (deprecated) - - [x] rt - - [x] rtc (deprecated) - - [x] rp - - [x] data - - [x] time - - [x] code - - [x] var - - [x] samp - - [x] kbd - - [x] sub - - [x] sup - - [x] i - - [x] b - - [x] u - - [x] mark - - [x] bdi - - [x] bdo - - [x] span - - [x] br (mentioned in grouping content) - - [x] wbr - - Edits - - [x] ins - - [x] del - - Embedded content - - [x] picture - - [x] source - - [x] img - - [ ] iframe - - [ ] embed - - [ ] object - - [ ] param (deprecated) - - [ ] video - - [ ] audio - - [ ] track - - [ ] map - - [ ] area - - Tabular data - - [ ] table - - [ ] caption - - [ ] colgroup - - [ ] col - - [ ] tbody - - [ ] thead - - [ ] tfoot - - [ ] tr - - [ ] td - - [ ] th - - Forms - - [x] form - - [x] label - - [x] input - - [x] button - - [ ] select - - [ ] datalist - - [ ] optgroup - - [ ] option - - [ ] textarea - - [ ] output - - [ ] progress - - [ ] meter (new) - - [x] fieldset - - [x] legend - - Interactive elements - - [ ] details - - [ ] summary - - [ ] dialog - - Scripting - - [ ] script - - [ ] noscript - - [ ] template - - [ ] slot - - [ ] canvas \ No newline at end of file +- add dynamic content to robots.txt during build process +- add dynamic content to sitemap.xml +- add build process for normalize.css from github.com/necolas/normalize.css +- add build process for bourbon from https://github.com/thoughtbot/bourbon \ No newline at end of file diff --git a/deploy/css/demo.css b/deploy/css/demo.css new file mode 100644 index 0000000..65e5e2d --- /dev/null +++ b/deploy/css/demo.css @@ -0,0 +1,2 @@ +@charset "UTF-8";.sym_glass:before{content:"\f000"}.sym_music:before{content:"\f001"}.sym_search:before{content:"\f002"}.sym_envelope-o:before{content:"\f003"}.sym_heart:before{content:"\f004"}[tabindex]:focus,a[href]:focus,area[href]:focus,button:not([disabled]):focus,input:not([disabled]):focus,select:not([disabled]):focus,textarea:not([disabled]):focus{outline:0}.hide{display:none}.space_even_auto{margin-left:auto;margin-right:auto}.space_even_half{margin-left:25%;margin-right:25%}.space_even_fourth{margin-left:37.5%;margin-right:37.5%}.space_top_basic{margin-top:8px}.space_right_basic{margin-right:8px}.space_bottom_basic{margin-bottom:8px}.space_left_basic{margin-left:8px}.space_top_small{margin-top:32px}.space_right_small{margin-right:32px}.space_bottom_small{margin-bottom:32px}.space_left_small{margin-left:32px}.space_top_medium{margin-top:64px}.space_right_medium{margin-right:64px}.space_bottom_medium{margin-bottom:64px}.space_left_medium{margin-left:64px}.space_top_large{margin-top:128px}.space_right_large{margin-right:128px}.space_bottom_large{margin-bottom:128px}.space_left_large{margin-left:128px}.space_left_fourth{margin-left:25%}.table_file_simple,.width_full{margin-left:0;margin-right:0;width:100%}.width_half{width:50%}.width_half,.width_third{margin-left:0;margin-right:0}.width_third{width:33.3%}.h_basic{height:1024px}.body_portal,.h_full_view{height:100vh}.h_100{height:100%}.body_status .main_site>*,.wrap_center>*{margin-left:2%;margin-right:2%}@media (min-width:1024px){.body_status .main_site>*,.wrap_center>*{margin-left:10%;margin-left:20%;margin-right:10%;margin-right:20%}}@media (min-width:1680px){.body_status .main_site>*,.wrap_center>*{margin-left:26%;margin-right:26%}}.clear,.clear:after,.clear:before{clear:both}.header_page nav ul,.nav_center_old ul,.nav_horizontal ul,.overflow{overflow:auto}.box_file_tile,.float_left,.float_space_left,.header_page nav ul li,.list_horizontal li,.nav_center_old ul li,.nav_horizontal ul li{float:left}.float_right{float:right}.box_file_tile,.float_space_left,.header_page nav ul li,.list_horizontal li,.nav_center_old ul li,.nav_horizontal ul li{margin-right:32px}.float_half_size{float:left;width:50%}.x_long{overflow-x:scroll}.inline{display:inline-block}.mouse_over,.pos_full_view{height:100vh;left:0;position:fixed;top:0;width:100vw}.exp_overlay,.html_card body .card_bkg,.pos_full_page{bottom:0;left:0;position:absolute;right:0;top:0}.pos_abs{position:absolute}.pos_rel{position:relative}.pos_fix{position:fixed}.pin_top{top:0}.pin_right{right:0}.pin_bottom{bottom:0}.pin_left{left:0}.pos_full_view{background-color:rgba(250,216,3,.5)}.pos_full_page{background-color:rgba(39,63,139,.25)}.hover_back_change{background-color:#616161;transition:background-color .2s ease-in-out}.hover_back_change:hover{background-color:grey}.mouse_over{background-color:rgba(0,0,0,.5);pointer-events:none;transition:background-color 2s ease-out 2s;z-index:100}.txt_color_light{color:#9f9f9f}.txt_color_dark{color:#616161}.txt_tiny{font-size:.5em!important}.txt_smaller{font-size:.75em!important}.txt_larger{font-size:1.2em!important}.txt_huge{font-size:3em!important}.txt_hero{font-size:9.3em}.txt_center{text-align:center!important}.txt_right{text-align:right!important}.txt_left{text-align:left!important}.txt_top{vertical-align:top!important}.txt_bottom{vertical-align:bottom!important}.txt_white{color:#fff}.txt_black{color:#000}.txt_gradient{-webkit-text-fill-color:transparent;background:linear-gradient(165deg,#fad803 30%,#d30a51 45%,#273f8b 50%,#b7e0f0,#52bed1 80%,#0c85ff);background-clip:text;-webkit-background-clip:text}.column_2,.column_3,.io_button,.span_solo,caption,dd,dt,figcaption,h6,label,legend,li,p,td,th{font-family:Roboto,Segoe UI,Liberation Sans,Source Sans,Trebuchet MS,Helvetica,Arial,sans-serif,sans;font-size:1em;line-height:1.28}.code_solo,.demo__query_example:after,code,input:not([type]),input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=range],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],kbd,pre,samp,select,textarea{font-family:Courier New,monospace;font-size:1em;line-height:1.1}.print_body [class^=din] .column_2,.print_body [class^=din] .column_3,.print_body [class^=din] caption,.print_body [class^=din] p{font-family:Times New Roman,times;font-size:1em;line-height:1.28}.portal__entry h2,h1,h2,h3,h4,h5,h6{font-family:Roboto,Segoe UI,Liberation Sans,Source Sans,Trebuchet MS,Helvetica,Arial,sans-serif,sans;line-height:1.28}.print_body .page_date,.print_body .page_no,h1{font-size:3.1em;font-weight:300}h2{font-size:2.5em;font-weight:300}.portal__entry h2,h3,h4{font-size:1.8em;font-weight:300}h5{font-size:1.35em;font-weight:300}.table_link .cell_text .shorten{overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}body{background-color:grey;box-sizing:border-box;color:#000;font-family:Roboto,Segoe UI,Liberation Sans,Source Sans,Trebuchet MS,Helvetica,Arial,sans-serif,sans;font-size:17px;line-height:1;line-height:1.28;margin:0;position:relative}body *,body :after,body :before{box-sizing:inherit}body:hover .mouse_over{background-color:transparent!important;transition:background-color .5s ease-out 0s!important}.demo__intro,.sec_main_center{margin:0 auto;padding-top:32px;width:96%}@media (min-width:1024px){.demo__intro,.sec_main_center{width:80%;width:60%}}@media (min-width:1680px){.demo__intro,.sec_main_center{width:48%}}.body_status,.demo__intro,.demo__status,.sec_main_status{border-top:8px solid;border-color:#1f1f1f;padding-top:32px}aside{width:20%}aside.right+.bside{margin-right:calc(20% + 8px)}aside.left+.bside{margin-left:calc(20% + 8px)}aside.right{float:right}aside.left{float:left}aside :first-child{margin-top:0}h1{margin:128px 0 32px}h1+h1{margin-top:0}h2{margin:64px 0 32px}h2+h2{margin-top:0}h3{margin:16px 0;text-transform:uppercase}.portal__entry h2,h4{margin:16px 0;text-transform:none}h5{margin:16px 0 8px}h5,h6{text-transform:none}h6{font-weight:700;margin:8px 0}.header_page{overflow:auto}.header_txt{border-bottom:1px dotted #1f1f1f;margin-bottom:32px}.header_txt h1{border-top:1px solid #1f1f1f}.column_2,.column_3,caption,p{margin-bottom:8px;margin-top:8px}.column_2 .demo__query_example:after,.column_2 code,.column_3 .demo__query_example:after,.column_3 code,caption .demo__query_example:after,caption code,p .demo__query_example:after,p code{font-size:1em;line-height:1;padding:1px 4px}.column_line{-moz-column-rule:1px solid #1f1f1f;column-rule:1px solid #1f1f1f}.column_2{-moz-column-count:2;column-count:2;-moz-column-gap:32px;column-gap:32px}.column_3{-moz-column-count:3;column-count:3;-moz-column-gap:64px;column-gap:64px}address{margin-bottom:16px;margin-top:16px}.hr_dotted,.hr_hidden,hr{border:solid #1f1f1f;border-width:1px 0 0;margin-bottom:32px;margin-top:32px}.hr_hidden{border-color:transparent}.hr_dotted{border-style:dotted}pre{white-space:pre-wrap}.pre_code{background-color:#8a8a8a;border:dotted #767676;border-radius:2px;border-width:0 0 0 4px;overflow-x:auto;padding:8px}.pre_code .demo__query_example:after,.pre_code code{background-color:transparent}blockquote{margin:8px 0;padding-left:2em;padding-right:2em}.quote_mark .column_2:before,.quote_mark .column_3:before,.quote_mark caption:before,.quote_mark p:before{content:"„ "}.quote_mark .column_2:after,.quote_mark .column_3:after,.quote_mark caption:after,.quote_mark p:after{content:" “"}.quote_mark .quote_source:after,.quote_mark .quote_source:before{content:""}dl,ol,ul{margin:16px 0}ol,ul{padding-left:2em}dl{margin-left:2em}.list_basic li,dd{margin-bottom:8px}dd{margin-left:2em}ul li{list-style:square}.list_dash li{list-style:none;position:relative}.list_dash li:before{content:"_";left:-1em;position:absolute}.list_link li,.portal__list li{margin-bottom:2px;text-transform:uppercase}.list_link li a,.portal__list li a{color:#000;display:block;padding:5px 8px}.list_link li a img,.portal__list li a img{margin-right:8px;padding-bottom:.2em;vertical-align:text-bottom}.list_link li a:active,.list_link li a:focus,.list_link li a:hover,.portal__list li a:active,.portal__list li a:focus,.portal__list li a:hover{background-color:#0c85ff;color:#fff}.list_horizontal{overflow:auto}figure{margin:16px 2em}figcaption{color:#616161}.div_info{background-color:rgba(82,190,209,.1)!important;border-right:8px solid rgba(82,190,209,.6);padding:16px 2em}.box_space{position:relative;width:100%}.box_cube{display:table;float:left;text-align:center;vertical-align:middle;width:64px}.box_cube span{display:table-cell}.box_placeholder{background-color:rgba(250,216,3,.8);border:4px solid rgba(250,216,3,.9);border-radius:2px;height:64px;width:100%}.box_placeholder_bkg{background:url("data:image/svg+xml;utf8,") no-repeat;background-color:hsla(0,0%,100%,.9);border:4px solid hsla(0,0%,100%,.9);border-radius:2px;height:128px;padding:8px;width:100%}.flex,.flex_column_wrap,.flex_row,.flex_wrap,.nav_column ul{display:flex}.flex_column_wrap,.flex_wrap{flex-wrap:wrap}.flex_row{flex-direction:column;justify-content:flex-start}.flex_child,.flex_column_wrap .flex_column,.nav_column ul li{flex:0 1 auto}.flex_child_one{flex:1}.flex_child_end{align-self:flex-end}.flex_column_wrap .flex_column{flex-grow:1}.grid{grid-gap:8px;display:grid}.grid>input,.grid>select,.grid>textarea{margin:0}.grid>label{margin:2px;padding:4px}.grid_column_2{grid-template-columns:-webkit-max-content -webkit-max-content;grid-template-columns:max-content max-content}.grid_column_4{grid-template-columns:-webkit-max-content -webkit-max-content -webkit-max-content -webkit-max-content;grid-template-columns:max-content max-content max-content max-content}.sprite_img{display:inline-block}a{color:#b7e0f0;text-decoration:none}a:active,a:focus,a:hover{color:#fff}.a_internal{color:#273f8b}.a_external{color:#b7e0f0}.a_discreet,.a_line{color:#000}.a_line{background-color:transparent;border-bottom:1px dotted;border-color:#1f1f1f;transition:color .25s ease-out}.a_line:active,.a_line:focus,.a_line:hover{background-color:#0c85ff;color:#fff}.a_button,.a_button_border,.a_button_text{background-color:rgba(183,224,240,.2);border-radius:2px;display:inline-block;padding:5px 8px}.a_button:active,.a_button:focus,.a_button:hover,.a_button_border:active,.a_button_border:focus,.a_button_border:hover,.a_button_text:active,.a_button_text:focus,.a_button_text:hover{background-color:hsla(0,0%,100%,.2);border-color:transparent}.a_button_border,.a_button_text{background-color:transparent;color:#000;padding:7px 16px}.a_button_border{border:1px solid #1f1f1f}em,i{font-style:italic}.i_bright{color:#fff;font-style:normal}b,strong{font-weight:500}cite{font-style:italic}.demo__query_example:after,code{background-color:#8a8a8a;color:#1f1f1f}.code_solo{color:#000;padding:1px 4px}kbd{border:1px solid #616161;border-radius:2px;color:#1f1f1f;padding:0 4px}mark{background-color:#fad803}.mark_cursor{background-color:#000;color:#fff}::-moz-selection{background-color:#000;color:#fff}::selection{background-color:#000;color:#fff}img{vertical-align:top}table{border:1px solid #1f1f1f;border-collapse:collapse;margin:16px 0}.table_blank,.table_blank td,.table_blank th,.table_free{border:1px solid transparent}.table_stripe td{border-bottom:0;border-top:0}.table_stripe tr:nth-child(2n) td{background-color:#8a8a8a}.table_fix{table-layout:fixed}caption{border:1px dotted #1f1f1f;padding:4px 0;text-align:center}tfoot tr:first-child td{border-top:1px solid #1f1f1f}td,th{padding:4px}th{border:1px solid #1f1f1f;text-align:left}td{border-bottom:1px solid #1f1f1f;border-right:1px solid #1f1f1f}td:last-child{border-right:0}td:last-child td{border-bottom:0}.cell_pre{background-color:#8a8a8a}input+label,label button,label input,label select,label textarea{margin-left:8px}.label{line-height:2.5}.label>input,.label>select,.label>textarea{margin:0 8px}label+input{margin-left:8px}button,input,select,textarea{margin:0 32px 0 0}button[disabled=disabled],button[disabled],input[disabled=disabled],input[disabled],select[disabled=disabled],select[disabled],textarea[disabled=disabled],textarea[disabled]{cursor:not-allowed}td>button,td>input,td>select,td>textarea{margin:0}input:not([type]),input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=range],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{line-height:1}.io_input,.io_select,.io_textarea{background-color:#e0e0e0;color:#1f1f1f;padding:4px}.io_input:hover,.io_select:hover,.io_textarea:hover{background-color:#fff}.io_input[readonly=readonly],.io_input[readonly],.io_select[readonly=readonly],.io_select[readonly],.io_textarea[readonly=readonly],.io_textarea[readonly]{background-color:#a3a3a3}.io_input[disabled=disabled]:hover,.io_input[disabled]:hover,.io_select[disabled=disabled]:hover,.io_select[disabled]:hover,.io_textarea[disabled=disabled]:hover,.io_textarea[disabled]:hover{background-color:#e0e0e0}.io_input[type=date],.io_input[type=datetime-local],.io_input[type=month],.io_input[type=time],.io_input[type=week]{padding-bottom:0;padding-top:0}.io_input,.io_textarea{border:2px solid #fff}.io_input[readonly=readonly],.io_input[readonly],.io_textarea[readonly=readonly],.io_textarea[readonly]{border-color:#c2c2c2}.io_input[disabled=disabled],.io_input[disabled],.io_textarea[disabled=disabled],.io_textarea[disabled]{border-color:transparent}fieldset{border:1px solid #1f1f1f;margin:16px 0;padding:8px}legend{padding:0 4px}.io_button{background-color:#616161;border:2px solid #3d3d3d;color:#000;padding:5px 8px}.io_button:hover{background-color:#0c85ff;border-color:transparent;color:#fff}.io_button[disabled=disabled],.io_button[disabled]{border-color:transparent;color:#3d3d3d}.io_button[disabled=disabled]:hover,.io_button[disabled]:hover{background-color:#616161}select{border:none}.io_textarea{line-height:1.2}.table_link{border:0;table-layout:auto;width:100%}.table_link tbody{border-bottom:1px solid #1f1f1f}.table_link tbody:hover{background-color:#c2c2c2}.table_link td,.table_link th{border:0}.table_link .cell_icon{text-align:center;width:48px}.table_link .cell_icon img{vertical-align:text-top}.table_link .cell_link{padding-left:8px;padding-right:8px}.table_link .cell_link:hover{background-color:#0c85ff}.table_link .cell_link:hover a:first-child{display:none}.table_link .cell_link:hover a:last-child{color:#fff;display:block}.table_link .cell_link a{display:block}.table_link .cell_link a:last-child{display:none}.table_link .cell_date,.table_link th:last-child{text-align:center;width:16%}.table_link .cell_text{padding-left:8px;padding-right:8px}.table_link .cell_text div{width:100%}.table_link .cell_text .shorten{max-height:44px}.body_status{border-color:#0c85ff;height:100vh}.body_status .main_site>h1:first-of-type{font-weight:700;line-height:1;margin-bottom:0;margin-top:0}.body_status .main_site>h1+h3{margin-bottom:32px;margin-top:0}nav ul{padding-left:0}nav li{list-style:none;margin-bottom:8px}.header_page nav ul ul,.nav_center_old ul ul,.nav_horizontal ul ul{margin:8px 0}.header_page nav ul li,.nav_center_old ul li,.nav_horizontal ul li{margin-bottom:0;margin-right:8px}.header_page nav ul li:last-child,.nav_center_old ul li:last-child,.nav_horizontal ul li:last-child{margin-right:0}.nav_right{float:right;margin-left:8px}.nav_right .align_parent{margin-right:-8px}.nav_separate li{padding-left:1px;position:relative}.nav_separate li:not(:first-child):before{background-color:#1f1f1f;content:"";height:100%;left:0;position:absolute;top:0;width:1px}.nav_separate_right{float:right}.nav_separate_right li{position:relative}.nav_separate_right li:first-child{padding-left:17px}.nav_separate_right li:first-child:before{background-color:#fff;content:"";height:100%;left:0;margin:0 8px;position:absolute;top:0;width:1px}.nav_center_old{float:right;left:-50%;position:relative}.nav_center_old ul{left:50%;position:relative;text-align:center}.nav_column{margin:8px 0;position:relative}.nav_column ul{margin:0 128px}.nav_column ul li{flex-grow:1;margin:0;text-align:center}.nav_column ul li a{display:block}.nav_page_meta{bottom:16px;position:fixed;right:4px}.nav_page_meta ul{margin:8px 0}.nav_page_meta li{line-height:1;margin-bottom:0}.nav_page_meta button{margin-left:0;margin-right:0;width:32px}.nav_page_meta .a_button_meta{display:inline-block}.nav_page_meta .a_button_meta:active,.nav_page_meta .a_button_meta:focus{background-color:transparent}.nav_page_meta .a_button_meta:hover{background-color:#0c85ff}.nav_page_meta .sprite_img{vertical-align:top}.header_page nav a:active,.header_page nav a:focus,.header_page nav a:hover{background-color:rgba(0,0,0,.2);color:#000}.wip,.wip_txt{background-color:rgba(220,20,60,.1)!important;border-right:8px solid rgba(220,20,60,.8)}.wip:after,.wip:before{content:"";display:block;height:48px}.exp_expose:after,.exp_expose:before,.exp_expose_post:before,.exp_expose_pre:after{background-color:rgba(183,224,240,.1)!important;content:"";display:block;height:48px}.exp_pop{display:none}.exp_wrap{position:relative}.exp_overlay{background-color:rgba(250,216,3,.4)}.exp_pop{background-color:grey;border:4px solid grey;border-radius:4px;left:128px;padding:4px;pointer-events:none;position:absolute;top:128px;z-index:100}.exp_marker_pop{background-color:#000;border:1px solid #fff;border-radius:17px;color:#fff;height:17px;position:absolute;right:-8.5px;top:-12.75px;width:17px}.exp_overlay_btn{cursor:pointer;height:2em;position:fixed;width:3em}.exp_help_btn{background-color:rgba(0,0,0,.4);bottom:16px;display:table;right:16px}.exp_help_btn:hover{background-color:#fff}.exp_help_btn:hover>.span_solo{color:#000}.exp_help_btn .span_solo{color:hsla(0,0%,100%,.8);display:table-cell;font-family:Courier New,monospace;font-size:1.4em;text-align:center;vertical-align:middle}.expose_height{background-color:rgba(183,224,240,.1)!important;bottom:0;left:0;position:absolute;right:0;top:0;transition:height .5s ease}.print_body [class^=din]{background-color:#fff}.print_body{font-size:10pt;margin:10vh 20vw}@page{.print_body{size:A4;margin:1.2cm}}@page :first{.print_body{size:A4;margin:0}}.print_body .dina4{padding:1.2cm 1.2cm 1.2cm 2.4cm}.print_body .dina4 .page_foot,.print_body .dina4 .page_head{left:2.4cm;right:1.2cm}.print_body .dina4 .page_head{top:1.2cm}.print_body .dina4 .page_foot{bottom:1.2cm}.print_body .dina5{padding:0 0 0 1.2cm}.print_body .dina5 .page_foot,.print_body .dina5 .page_head{left:1.2cm;right:0}.print_body .dina5 .page_head{top:0}.print_body .dina5 .page_foot{bottom:0}.print_body .dina6{padding:0 0 0 1.2cm}.print_body .dina6 .page_foot,.print_body .dina6 .page_head{left:1.2cm;right:0}.print_body .dina6 .page_head{top:0}.print_body .dina6 .page_foot{bottom:0}.print_body [class^=din]{margin:32px auto;overflow:auto;position:relative}.print_body [class^=din] .page_foot,.print_body [class^=din] .page_head{position:absolute}.print_body [class^=din] .page_head{page:cover}.print_body [class^=din] .page_foot{display:flex;flex-direction:row}.print_body [class^=din] .page_foot :last-child{margin-bottom:0}.print_body [class^=din] .page_foot .column_2,.print_body [class^=din] .page_foot .column_3,.print_body [class^=din] .page_foot caption,.print_body [class^=din] .page_foot p{flex:1 0 auto;font-size:8pt;line-height:10pt;margin:0;text-align:center}.print_body [class^=din] .page_foot .page_no{flex:1 0 auto;font-size:20pt;line-height:1;text-align:right}.print_body [class^=din] .page_foot .column_2:first-child,.print_body [class^=din] .page_foot .column_3:first-child,.print_body [class^=din] .page_foot caption:first-child,.print_body [class^=din] .page_foot p:first-child{text-align:left}.print_body [class^=din] .page_content{margin-bottom:2cm;margin-top:10cm}.print_body .page_date,.print_body .page_title{font-size:14pt}.print_body .page_title{margin:0}.print_body .page_date,.print_body .page_no{float:right}.print_body .page_author{position:absolute;right:0;text-align:right;top:5cm}.print_body .page_recipient{left:0;position:absolute;top:5cm}.html_card{height:100%}.html_card body{min-height:100%}.html_card body .card_bkg{overflow:hidden;transition-duration:.8s;vertical-align:top;z-index:-1}.html_card body .card_bkg>svg{position:relative}.html_card body .card_box{align-items:center;display:flex;height:100vh;justify-content:center}.html_card body .card_box *{font-family:Trebuchet MS,Roboto,Segoe UI,Liberation Sans,Source Sans,Helvetica,Arial,sans-serif,sans}.html_card body .card_box>div{background-color:#f5f5f5;border:1px solid #fff;padding:64px 64px 24px;position:relative;z-index:40}.html_card body h1{color:#1e1e1e;font-size:24px;font-weight:400;line-height:1.4em;margin:16px 0}.html_card body .column_2,.html_card body .column_3,.html_card body caption,.html_card body p{font-size:12px;line-height:1.4em;margin-bottom:16px;margin-top:0}.html_card body .marked:before{content:"* "}.html_card body .decent{color:#666}.html_card body a{color:#000;text-decoration:none}.html_card body a:hover{background-color:#0c85ff;color:#f4f9fa;text-decoration:none}.portal{display:flex;height:100vh}.portal__entry{align-items:center;display:flex;flex:1;padding-left:16px;padding-right:16px;transition:flex .5s cubic-bezier(0,0,.2,1.4),background .8s ease}.portal__entry:hover{background-color:#999;flex:2}.portal__entry:hover .portal__list{display:block}.portal__entry section{padding:32px 0;width:100%}.portal__entry h2{margin-top:0;overflow:hidden;position:relative;text-align:center;text-overflow:ellipsis;white-space:nowrap}.portal__link{background-position:50%;background-repeat:no-repeat;border:1px solid transparent;display:block;height:128px;margin:0 auto;position:relative;width:128px}.portal__link:hover{background-color:hsla(0,0%,100%,.8);border-color:#fff}.portal__link:focus{outline:0}.portal__link img{height:64px;left:50%;-o-object-fit:cover;object-fit:cover;-o-object-position:0 0;object-position:0 0;position:absolute;top:50%;transform:translate(-50%,-50%);width:64px}.portal__link--bibo{background-image:url(../../art/portal/bibo.png)}.portal__link--portfolio{background-image:url(../../art/portal/portfolio.png)}.portal__link--found{background-image:url(../../art/portal/gems.png)}.portal__link--flux{background-image:url(../../art/portal/flux.png)}.portal__link--blog{background-image:url(../../art/portal/notes.png)}.portal__link--tools{background-image:url(../../art/portal/tools.png)}.portal__link--safe{background-image:url(../../art/portal/safe.png)}.portal__link--game:hover{background-image:url(../../art/portal/games.png)}.portal__link--game:hover>img{display:none}.portal__list{display:none;margin:48px auto 0;padding-left:0;position:relative;width:80%}.portal__list li{list-style:none}.portal__list li a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.portal__list li a img{height:auto;width:16px}.demo__status{border-color:#0c85ff;min-height:50vh;position:relative}.demo__status h1:first-of-type{font-weight:700;margin-top:0}@media (max-height:512px){.demo__status .pos_abs{position:static!important}}.demo__header{padding:16px}.demo__header nav ul{margin:0}.header_fancy{background-color:rgba(211,10,81,.6)}.header_fancy nav a{background-color:rgba(250,216,3,.6);color:#fad803}.header_fancy nav a:active,.header_fancy nav a:focus,.header_fancy nav a:hover{background-color:hsla(0,0%,100%,.2);color:#fff}.header_fix{background-color:rgba(39,63,139,.6);left:0;position:relative;top:0;width:100%}.header_fix nav a:active,.header_fix nav a:focus,.header_fix nav a:hover{background-color:hsla(0,0%,100%,.2);color:#fff}.demo__footer{background-color:#3d3d3d;color:#c2c2c2;padding:16px 0;width:100%}.demo__footer nav a{color:#fff}.demo__sprite_down{background-position:-64px 0;height:32px}.demo__sprite_down,.demo__sprite_up{background-image:url(../art/sprite.png);width:32px}.demo__sprite_up{background-position:0 0;height:64px}.demo__sprite_meta{background-image:url(../art/sprite.png);background-position:-64px -32px;height:32px;width:32px}.demo__avatar img{background-color:#b7e0f0;border-radius:50%;height:auto;min-height:128px;min-width:128px;opacity:1;width:128px}.demo__flag{height:40vh}.demo__credits{margin:32px 0 8px}.demo__button_32{height:32px;width:32px}.demo__queries>.column_2,.demo__queries>.column_3,.demo__queries>caption,.demo__queries>p{padding:5px 8px}@media (min-width:767px){.query_phoneUp{background-color:rgba(0,0,0,.2)}}@media (max-width:767px){.query_phoneOnly{background-color:rgba(0,0,0,.2)}}@media (min-width:768px) and (max-width:1023px){.query_tabletPortaitOnly{background-color:rgba(0,0,0,.2)}}@media (min-width:1024px){.query_tabletPortraitUp{background-color:rgba(0,0,0,.2)}}@media (min-width:1024px) and (max-width:1279px){.query_tabletLandscapeOnly{background-color:rgba(0,0,0,.2)}}@media (min-width:1024px){.query_tabletLandscapeUp{background-color:rgba(0,0,0,.2)}}@media (min-width:1280px) and (max-width:1679px){.query_desktopOnly{background-color:rgba(0,0,0,.2)}}@media (min-width:1280px){.query_desktopUp{background-color:rgba(0,0,0,.2)}}@media (min-width:1680px){.query_bigDesktopUp{background-color:rgba(0,0,0,.2)}}.demo__query_example{margin-bottom:32px;padding:32px;text-align:center}@media (min-width:768px){.demo__query_example{background-color:#fad803}}@media (min-width:1024px){.demo__query_example{background-color:#d30a51}}@media (min-width:1280px){.demo__query_example{background-color:#273f8b}}@media (min-width:1440px){.demo__query_example{background-color:#b7e0f0}}@media (min-width:1680px){.demo__query_example{background-color:#52bed1}}@media (min-width:1920px){.demo__query_example{background-color:#0c85ff}}.demo__query_example:after{background-color:hsla(0,0%,100%,.2);border-radius:2px;color:#fff;content:"< 768px";padding:5px 8px}@media (min-width:768px){.demo__query_example:after{content:"768px"}}@media (min-width:1024px){.demo__query_example:after{content:"1024px"}}@media (min-width:1280px){.demo__query_example:after{content:"1280px"}}@media (min-width:1680px){.demo__query_example:after{content:"1680px"}}@media (min-width:1920px){.demo__query_example:after{content:"1920px"}}.demo__td_no_bl{border-left:none}.demo__td_no_br{border-right:none}.demo__td_pr{padding-right:16px}.demo__td_pl{padding-left:16px}.wrap{align-items:center;display:flex;justify-content:center}.hello{flex:0 1 auto;width:80%}.hello ul{background-color:#616161;padding:1em 5em} +/*# sourceMappingURL=demo.css.map */ \ No newline at end of file diff --git a/deploy/css/demo_basic.css b/deploy/css/demo_basic.css new file mode 100644 index 0000000..a4ccebd --- /dev/null +++ b/deploy/css/demo_basic.css @@ -0,0 +1,2 @@ +@charset "UTF-8";.sym_glass:before{content:"\f000"}.sym_music:before{content:"\f001"}.sym_search:before{content:"\f002"}.sym_envelope-o:before{content:"\f003"}.sym_heart:before{content:"\f004"}[tabindex]:focus,a[href]:focus,area[href]:focus,button:not([disabled]):focus,input:not([disabled]):focus,select:not([disabled]):focus,textarea:not([disabled]):focus{outline:0}.hide{display:none}.space_even_auto{margin-left:auto;margin-right:auto}.space_even_half{margin-left:25%;margin-right:25%}.space_even_fourth{margin-left:37.5%;margin-right:37.5%}.space_top_basic{margin-top:8px}.space_right_basic{margin-right:8px}.space_bottom_basic{margin-bottom:8px}.space_left_basic{margin-left:8px}.space_top_small{margin-top:32px}.space_right_small{margin-right:32px}.space_bottom_small{margin-bottom:32px}.space_left_small{margin-left:32px}.space_top_medium{margin-top:64px}.space_right_medium{margin-right:64px}.space_bottom_medium{margin-bottom:64px}.space_left_medium{margin-left:64px}.space_top_large{margin-top:128px}.space_right_large{margin-right:128px}.space_bottom_large{margin-bottom:128px}.space_left_large{margin-left:128px}.space_left_fourth{margin-left:25%}.table_file_simple,.width_full{margin-left:0;margin-right:0;width:100%}.width_half{width:50%}.width_half,.width_third{margin-left:0;margin-right:0}.width_third{width:33.3%}.h_basic{height:1024px}.h_full_view{height:100vh}.h_100{height:100%}.body_status .main_site>*,.wrap_center>*{margin-left:2%;margin-right:2%}@media (min-width:1024px){.body_status .main_site>*,.wrap_center>*{margin-left:10%;margin-left:20%;margin-right:10%;margin-right:20%}}@media (min-width:1680px){.body_status .main_site>*,.wrap_center>*{margin-left:26%;margin-right:26%}}.clear,.clear:after,.clear:before{clear:both}.overflow{overflow:auto}.box_file_tile,.float_left,.float_space_left,.list_horizontal li{float:left}.float_right{float:right}.box_file_tile,.float_space_left,.list_horizontal li{margin-right:32px}.float_half_size{float:left;width:50%}.x_long{overflow-x:scroll}.inline{display:inline-block}.mouse_over,.pos_full_view{height:100vh;left:0;position:fixed;top:0;width:100vw}.pos_full_page{bottom:0;left:0;right:0;top:0}.pos_abs,.pos_full_page{position:absolute}.pos_rel{position:relative}.pos_fix{position:fixed}.pin_top{top:0}.pin_right{right:0}.pin_bottom{bottom:0}.pin_left{left:0}.pos_full_view{background-color:rgba(250,216,3,.5)}.pos_full_page{background-color:rgba(39,63,139,.25)}.hover_back_change{background-color:#616161;transition:background-color .2s ease-in-out}.hover_back_change:hover{background-color:grey}.mouse_over{background-color:rgba(0,0,0,.5);pointer-events:none;transition:background-color 2s ease-out 2s;z-index:100}.txt_color_light{color:#9f9f9f}.txt_color_dark{color:#616161}.txt_tiny{font-size:.5em!important}.txt_smaller{font-size:.75em!important}.txt_larger{font-size:1.2em!important}.txt_huge{font-size:3em!important}.txt_hero{font-size:9.3em}.txt_center{text-align:center!important}.txt_right{text-align:right!important}.txt_left{text-align:left!important}.txt_top{vertical-align:top!important}.txt_bottom{vertical-align:bottom!important}.txt_white{color:#fff}.txt_black{color:#000}.txt_gradient{-webkit-text-fill-color:transparent;background:linear-gradient(165deg,#fad803 30%,#d30a51 45%,#273f8b 50%,#b7e0f0,#52bed1 80%,#0c85ff);background-clip:text;-webkit-background-clip:text}.column_2,.column_3,.io_button,.span_solo,caption,dd,dt,figcaption,h6,label,legend,li,p,td,th{font-family:Roboto,Segoe UI,Liberation Sans,Source Sans,Trebuchet MS,Helvetica,Arial,sans-serif,sans;font-size:1em;line-height:1.28}.code_solo,code,input:not([type]),input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=range],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],kbd,pre,samp,select,textarea{font-family:Courier New,monospace;font-size:1em;line-height:1.1}h1,h2,h3,h4,h5,h6{font-family:Roboto,Segoe UI,Liberation Sans,Source Sans,Trebuchet MS,Helvetica,Arial,sans-serif,sans;line-height:1.28}h1{font-size:3.1em}h1,h2{font-weight:300}h2{font-size:2.5em}h3,h4{font-size:1.8em}h3,h4,h5{font-weight:300}h5{font-size:1.35em}.table_link .cell_text .shorten{overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}body{background-color:grey;box-sizing:border-box;color:#000;font-family:Roboto,Segoe UI,Liberation Sans,Source Sans,Trebuchet MS,Helvetica,Arial,sans-serif,sans;font-size:17px;line-height:1;line-height:1.28;margin:0;position:relative}body *,body :after,body :before{box-sizing:inherit}body:hover .mouse_over{background-color:transparent!important;transition:background-color .5s ease-out 0s!important}.sec_main_center{margin:0 auto;padding-top:32px;width:96%}@media (min-width:1024px){.sec_main_center{width:80%;width:60%}}@media (min-width:1680px){.sec_main_center{width:48%}}.body_status,.sec_main_status{border-top:8px solid;border-color:#1f1f1f;padding-top:32px}aside{width:20%}aside.right+.bside{margin-right:calc(20% + 8px)}aside.left+.bside{margin-left:calc(20% + 8px)}aside.right{float:right}aside.left{float:left}aside :first-child{margin-top:0}h1{margin:128px 0 32px}h1+h1{margin-top:0}h2{margin:64px 0 32px}h2+h2{margin-top:0}h3{text-transform:uppercase}h3,h4{margin:16px 0}h4,h5{text-transform:none}h5{margin:16px 0 8px}h6{font-weight:700;margin:8px 0;text-transform:none}.header_page{overflow:auto}.header_txt{border-bottom:1px dotted #1f1f1f;margin-bottom:32px}.header_txt h1{border-top:1px solid #1f1f1f}.column_2,.column_3,caption,p{margin-bottom:8px;margin-top:8px}.column_2 code,.column_3 code,caption code,p code{font-size:1em;line-height:1;padding:1px 4px}.column_line{-moz-column-rule:1px solid #1f1f1f;column-rule:1px solid #1f1f1f}.column_2{-moz-column-count:2;column-count:2;-moz-column-gap:32px;column-gap:32px}.column_3{-moz-column-count:3;column-count:3;-moz-column-gap:64px;column-gap:64px}address{margin-bottom:16px;margin-top:16px}.hr_dotted,.hr_hidden,hr{border:solid #1f1f1f;border-width:1px 0 0;margin-bottom:32px;margin-top:32px}.hr_hidden{border-color:transparent}.hr_dotted{border-style:dotted}pre{white-space:pre-wrap}.pre_code{background-color:#8a8a8a;border:dotted #767676;border-radius:2px;border-width:0 0 0 4px;overflow-x:auto;padding:8px}.pre_code code{background-color:transparent}blockquote{margin:8px 0;padding-left:2em;padding-right:2em}.quote_mark .column_2:before,.quote_mark .column_3:before,.quote_mark caption:before,.quote_mark p:before{content:"„ "}.quote_mark .column_2:after,.quote_mark .column_3:after,.quote_mark caption:after,.quote_mark p:after{content:" “"}.quote_mark .quote_source:after,.quote_mark .quote_source:before{content:""}dl,ol,ul{margin:16px 0}ol,ul{padding-left:2em}dl{margin-left:2em}.list_basic li,dd{margin-bottom:8px}dd{margin-left:2em}ul li{list-style:square}.list_dash li{list-style:none;position:relative}.list_dash li:before{content:"_";left:-1em;position:absolute}.list_link li{margin-bottom:2px;text-transform:uppercase}.list_link li a{color:#000;display:block;padding:5px 8px}.list_link li a img{margin-right:8px;padding-bottom:.2em;vertical-align:text-bottom}.list_link li a:active,.list_link li a:focus,.list_link li a:hover{background-color:#0c85ff;color:#fff}.list_horizontal{overflow:auto}figure{margin:16px 2em}figcaption{color:#616161}.div_info{background-color:rgba(82,190,209,.1)!important;border-right:8px solid rgba(82,190,209,.6);padding:16px 2em}.box_space{position:relative;width:100%}.box_cube{display:table;float:left;text-align:center;vertical-align:middle;width:64px}.box_cube span{display:table-cell}.box_placeholder{background-color:rgba(250,216,3,.8);border:4px solid rgba(250,216,3,.9);border-radius:2px;height:64px;width:100%}.box_placeholder_bkg{background:url("data:image/svg+xml;utf8,") no-repeat;background-color:hsla(0,0%,100%,.9);border:4px solid hsla(0,0%,100%,.9);border-radius:2px;height:128px;padding:8px;width:100%}.flex,.flex_column_wrap,.flex_row,.flex_wrap{display:flex}.flex_column_wrap,.flex_wrap{flex-wrap:wrap}.flex_row{flex-direction:column;justify-content:flex-start}.flex_child,.flex_column_wrap .flex_column{flex:0 1 auto}.flex_child_one{flex:1}.flex_child_end{align-self:flex-end}.flex_column_wrap .flex_column{flex-grow:1}.grid{grid-gap:8px;display:grid}.grid>input,.grid>select,.grid>textarea{margin:0}.grid>label{margin:2px;padding:4px}.grid_column_2{grid-template-columns:-webkit-max-content -webkit-max-content;grid-template-columns:max-content max-content}.grid_column_4{grid-template-columns:-webkit-max-content -webkit-max-content -webkit-max-content -webkit-max-content;grid-template-columns:max-content max-content max-content max-content}.sprite_img{display:inline-block}a{color:#b7e0f0;text-decoration:none}a:active,a:focus,a:hover{color:#fff}.a_internal{color:#273f8b}.a_external{color:#b7e0f0}.a_discreet,.a_line{color:#000}.a_line{background-color:transparent;border-bottom:1px dotted;border-color:#1f1f1f;transition:color .25s ease-out}.a_line:active,.a_line:focus,.a_line:hover{background-color:#0c85ff;color:#fff}.a_button,.a_button_border,.a_button_text{background-color:rgba(183,224,240,.2);border-radius:2px;display:inline-block;padding:5px 8px}.a_button:active,.a_button:focus,.a_button:hover,.a_button_border:active,.a_button_border:focus,.a_button_border:hover,.a_button_text:active,.a_button_text:focus,.a_button_text:hover{background-color:hsla(0,0%,100%,.2);border-color:transparent}.a_button_border,.a_button_text{background-color:transparent;color:#000;padding:7px 16px}.a_button_border{border:1px solid #1f1f1f}em,i{font-style:italic}.i_bright{color:#fff;font-style:normal}b,strong{font-weight:500}cite{font-style:italic}code{background-color:#8a8a8a;color:#1f1f1f}.code_solo{color:#000;padding:1px 4px}kbd{border:1px solid #616161;border-radius:2px;color:#1f1f1f;padding:0 4px}mark{background-color:#fad803}.mark_cursor{background-color:#000;color:#fff}::-moz-selection{background-color:#000;color:#fff}::selection{background-color:#000;color:#fff}img{vertical-align:top}table{border:1px solid #1f1f1f;border-collapse:collapse;margin:16px 0}.table_blank,.table_blank td,.table_blank th,.table_free{border:1px solid transparent}.table_stripe td{border-bottom:0;border-top:0}.table_stripe tr:nth-child(2n) td{background-color:#8a8a8a}.table_fix{table-layout:fixed}caption{border:1px dotted #1f1f1f;padding:4px 0;text-align:center}tfoot tr:first-child td{border-top:1px solid #1f1f1f}td,th{padding:4px}th{border:1px solid #1f1f1f;text-align:left}td{border-bottom:1px solid #1f1f1f;border-right:1px solid #1f1f1f}td:last-child{border-right:0}td:last-child td{border-bottom:0}.cell_pre{background-color:#8a8a8a}input+label,label button,label input,label select,label textarea{margin-left:8px}.label{line-height:2.5}.label>input,.label>select,.label>textarea{margin:0 8px}label+input{margin-left:8px}button,input,select,textarea{margin:0 32px 0 0}button[disabled=disabled],button[disabled],input[disabled=disabled],input[disabled],select[disabled=disabled],select[disabled],textarea[disabled=disabled],textarea[disabled]{cursor:not-allowed}td>button,td>input,td>select,td>textarea{margin:0}input:not([type]),input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=range],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{line-height:1}.io_input,.io_select,.io_textarea{background-color:#e0e0e0;color:#1f1f1f;padding:4px}.io_input:hover,.io_select:hover,.io_textarea:hover{background-color:#fff}.io_input[readonly=readonly],.io_input[readonly],.io_select[readonly=readonly],.io_select[readonly],.io_textarea[readonly=readonly],.io_textarea[readonly]{background-color:#a3a3a3}.io_input[disabled=disabled]:hover,.io_input[disabled]:hover,.io_select[disabled=disabled]:hover,.io_select[disabled]:hover,.io_textarea[disabled=disabled]:hover,.io_textarea[disabled]:hover{background-color:#e0e0e0}.io_input[type=date],.io_input[type=datetime-local],.io_input[type=month],.io_input[type=time],.io_input[type=week]{padding-bottom:0;padding-top:0}.io_input,.io_textarea{border:2px solid #fff}.io_input[readonly=readonly],.io_input[readonly],.io_textarea[readonly=readonly],.io_textarea[readonly]{border-color:#c2c2c2}.io_input[disabled=disabled],.io_input[disabled],.io_textarea[disabled=disabled],.io_textarea[disabled]{border-color:transparent}fieldset{border:1px solid #1f1f1f;margin:16px 0;padding:8px}legend{padding:0 4px}.io_button{background-color:#616161;border:2px solid #3d3d3d;color:#000;padding:5px 8px}.io_button:hover{background-color:#0c85ff;border-color:transparent;color:#fff}.io_button[disabled=disabled],.io_button[disabled]{border-color:transparent;color:#3d3d3d}.io_button[disabled=disabled]:hover,.io_button[disabled]:hover{background-color:#616161}select{border:none}.io_textarea{line-height:1.2}.table_link{border:0;table-layout:auto;width:100%}.table_link tbody{border-bottom:1px solid #1f1f1f}.table_link tbody:hover{background-color:#c2c2c2}.table_link td,.table_link th{border:0}.table_link .cell_icon{text-align:center;width:48px}.table_link .cell_icon img{vertical-align:text-top}.table_link .cell_link{padding-left:8px;padding-right:8px}.table_link .cell_link:hover{background-color:#0c85ff}.table_link .cell_link:hover a:first-child{display:none}.table_link .cell_link:hover a:last-child{color:#fff;display:block}.table_link .cell_link a{display:block}.table_link .cell_link a:last-child{display:none}.table_link .cell_date,.table_link th:last-child{text-align:center;width:16%}.table_link .cell_text{padding-left:8px;padding-right:8px}.table_link .cell_text div{width:100%}.table_link .cell_text .shorten{max-height:44px}.body_status{border-color:#0c85ff;height:100vh}.body_status .main_site>h1:first-of-type{font-weight:700;line-height:1;margin-bottom:0;margin-top:0}.body_status .main_site>h1+h3{margin-bottom:32px;margin-top:0} +/*# sourceMappingURL=demo_basic.css.map */ \ No newline at end of file diff --git a/gulp/config.js b/gulp/config.js new file mode 100644 index 0000000..257f453 --- /dev/null +++ b/gulp/config.js @@ -0,0 +1,25 @@ +const src = 'source/'; +const dev = 'build/'; +const dpl = 'deploy/'; +const rep = 'reports/'; + +const config = { + src: src, + dev: dev, + dpl: dpl, + rep: rep, + + demo: true, + //these are not used while demo: true is set + index: 'index.html', + templateData: src + 'templates/data.json', + frontendData: src + 'data/**/*.json', + + hippie: { + brand: 'hippie', + titlePrefix: ' - HIPPIE', + pageBase: './' + } +}; + +module.exports = config; \ No newline at end of file diff --git a/gulp/modules/plumber.js b/gulp/modules/plumber.js new file mode 100644 index 0000000..cbb5dc9 --- /dev/null +++ b/gulp/modules/plumber.js @@ -0,0 +1,25 @@ +const plumber = require('gulp-plumber'); +// const notify = require('gulp-notify'); + +// function catchErrors(errTitle) { +// return plumber({ +// errorHandler: notify.onError({ +// // Customizing error title +// title: errTitle || "GULP GENERAL PROBLEM", +// message: "<%= error.message %>" +// }) +// }); +// } + +function catchErrors() { + return plumber({ + errorHandler: function (err) { + // Logs error in console + console.log(err.message); + // Ends the current pipe, so Gulp watch doesn't break + this.emit('end'); + } + }); +} + +module.exports = catchErrors; \ No newline at end of file diff --git a/gulp/tasks/clean.js b/gulp/tasks/clean.js new file mode 100644 index 0000000..667f6a3 --- /dev/null +++ b/gulp/tasks/clean.js @@ -0,0 +1,9 @@ +const config = require('../config'); +const del = require('del'); + +// Clean output folders +function clean() { + return del([config.dev + '**', config.rep + '**', config.dpl + '**']); +} + +module.exports = clean; \ No newline at end of file diff --git a/gulp/tasks/hello.js b/gulp/tasks/hello.js new file mode 100644 index 0000000..bf1ef7e --- /dev/null +++ b/gulp/tasks/hello.js @@ -0,0 +1,6 @@ +function hello (cb) { + console.log('He Stephan', cb); + cb(); +} + +module.exports = hello; \ No newline at end of file diff --git a/gulp/tasks/sync.js b/gulp/tasks/sync.js new file mode 100644 index 0000000..5f65a4f --- /dev/null +++ b/gulp/tasks/sync.js @@ -0,0 +1,26 @@ +const config = require('../config'); +// const browserSync = require('browser-sync'), server = browserSync.create(); +const server = require('browser-sync').create(); + +// Automagically reload browsers +function reload(done) { + server.reload; + + done(); +} + +// Serve files to the browser +function serve(done) { + server.init({ + index: config.index, + open: false, + server: config.dev + }); + + done(); +} + +module.exports = { + serve: serve, + reload: reload +}; \ No newline at end of file diff --git a/gulp/tasks/validate.js b/gulp/tasks/validate.js new file mode 100644 index 0000000..0293245 --- /dev/null +++ b/gulp/tasks/validate.js @@ -0,0 +1,13 @@ +const { src } = require('gulp'); +const config = require('../config'); +const plumber = require('../modules/plumber'); +const htmlValidator = require('gulp-w3c-html-validator'); + +function validate() { + return src(config.dev + '**/*.html') + .pipe(plumber()) + .pipe(htmlValidator()) + .pipe(htmlValidator.reporter()); +} + +module.exports = validate; \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..f6cbecd --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,305 @@ +// Use hippie +// const hippie = require('hippie/hippie'); + +// Setup project +const config = require('./gulp/config'); + +const hello = require('./gulp/tasks/hello'); +const plumber = require('./gulp/modules/plumber'); +const { serve, reload } = require('./gulp/tasks/sync'); +const clean = require('./gulp/tasks/clean'); +// const validate = require("./gulp/tasks/validate"); + +// Gulp requirements +const { watch, series, parallel } = require('gulp'); +const { src, dest } = require('gulp'); + +const fs = require('fs'); + +const nunjucksRender = require('gulp-nunjucks-render'); +// const nunjucks = require('gulp-nunjucks'); +const data = require('gulp-data'); +const jsonConcat = require('gulp-json-concat'); +const sass = require('gulp-sass')(require('sass')); +const autoprefixer = require('gulp-autoprefixer'); +const sassLint = require('gulp-sass-lint'); +const rename = require('gulp-rename'); +const cleanCss = require('gulp-clean-css'); +const pump = require('pump'); +const cached = require('gulp-cached'); +// const remember = require('gulp-remember'); +// const concat = require('gulp-concat'); +const uglify = require('gulp-uglify'); +const jshint = require('gulp-jshint'); +const gulpIf = require('gulp-if'); +const changed = require('gulp-changed'); +const merge = require('merge-stream'); +const spritesmith = require('gulp.spritesmith'); +// const babel = require('gulp-babel'); +// const buffer = require('vinyl-buffer'); +// const imagemin = require('gulp-imagemin'); +const useref = require('gulp-useref'); + +// Data variables +const input = { + screens: config.src + 'screens/**/*.+(njk|html)', + templates: config.src + 'templates/', + data: config.src + 'data/**/*.json', + style: config.src + 'style/**/*.s+(a|c)ss', + code: [ + // config.src + 'code/hippie/config.js', + // config.src + 'code/hippie/main.js', + config.src + 'code/hippie/variables.js', + config.src + 'code/hippie/functions.js', + config.src + 'code/hippie/global.js', + // config.src + 'code/**/*.js', + '!' + config.src + 'vendor/**/*' + ], + fonts: 'node_modules/@fortawesome/fontawesome-free/webfonts/**/*', + art: { + favicons: config.src + 'art/favicons/**/*.+(ico|png)', + sprites: config.src + 'art/sprites/**/*.png', + images: config.src + 'art/images/**/*.+(png|gif|jpg|svg|webp)' + }, + vendor: 'vendor/**/*' +}; + +const output = { + data: config.dev + 'json', + style: config.dev + 'css', + code: config.dev + 'js', + fonts: config.dev + 'fonts', + art: config.dev + 'art', + vendor: config.dev + 'vendor' +}; + +// Show demo content if configured +if (config.demo === true) { + config.index = 'demo.html'; + config.templateData = config.src + 'templates/demo/data.json'; +} else { + config.frontendData = [config.src + 'data/**/*.json', '!' + config.src + 'data/demo.json']; +} + +// Create tasks + +// Concatenate JSON files +function json() { + return src(config.frontendData) + .pipe(plumber()) + .pipe(jsonConcat('db.json', function (data) { + return new Buffer.from(JSON.stringify(data)); + })) + .pipe(dest(output.data)); +} + +function manageEnvironment(environment) { + environment.addFilter('slug', function (str) { + return str && str.replace(/\s/g, '-', str).toLowerCase(); + }); + + environment.addGlobal('hippie', config.hippie); +} + +// function getDataForTemplates (file) { +// const template = JSON.parse(fs.readFileSync(config.templateData)); +// const hippie = config.hippie; +// // console.log(file.relative); +// return { hippie, template }; +// } +function getDataForTemplates() { + const data = JSON.parse(fs.readFileSync(config.templateData)); + return { data }; +} + +// Transpile HTML +function nunjucks() { + return src(input.screens) + .pipe(plumber()) + // TODO only add data to pipe for necessary files + .pipe(data(getDataForTemplates)) + .pipe(nunjucksRender({ + path: input.templates, + envOptions: { + trimBlocks: true + }, + manageEnv: manageEnvironment + })) + .pipe(dest(config.dev)); +} + +// This is for the looks +function style() { + return src(input.style) + .pipe(plumber()) + // .pipe(sass.sync({ + .pipe(sass({ + includePaths: [input.vendor + '/**/*.s+(a|c)ss'] + }).on('error', sass.logError)) + .pipe(autoprefixer(['>= 4%', 'last 2 version'])) + .pipe(dest(output.style)) + .pipe(cleanCss()) + .pipe(rename({ + suffix: '.min' + })) + .pipe(dest(output.style)); +} +// Linting +function styleLint() { + const dir = config.rep; + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + let file = fs.createWriteStream(config.rep + 'sass-lint.html'); + let stream = src(input.style) + .pipe(plumber()) + .pipe(sassLint({ + configFile: '.sasslintrc', + files: { + ignore: input.vendor + '/**/*.s+(a|c)ss' + } + })) + .pipe(sassLint.format(file)); + + stream.on('finish', function () { + file.end(); + }); + + return stream; +} + +// Javascript for the win +function code(cb) { + pump([ + src(input.code, { + sourcemaps: true, + allowEmpty: true + }), + plumber(), + // cache('code'), + // babel({ presets: ['@babel/env'] }), + // concat(config.hippie.jsFile + 'main.js'), + dest(output.code), + uglify(), + // remember('code'), + rename({ + suffix: '.min' + }), + dest(output.code, { sourcemaps: '.' }) + ], cb); +} + +// Linting +function codeLint() { + return src(input.code, { allowEmpty: true }) + .pipe(plumber()) + .pipe(jshint()) + .pipe(jshint.reporter('jshint-stylish')) + .pipe(jshint.reporter('fail', { + ignoreWarning: true, + ignoreInfo: true + })); +} + +// Fonts +function fonts() { + return src(input.fonts) + .pipe(plumber()) + .pipe(dest(output.fonts)); +} + +// Add art +function art() { + // Move favicons to the root folder + let favicons = src(input.art.favicons) + .pipe(plumber()) + .pipe(changed(output.art)) + .pipe(dest(config.dev)); + + // Move images to the root folder + let images = src(input.art.images) + .pipe(plumber()) + .pipe(changed(output.art)) + .pipe(dest(output.art)); + + return merge(favicons, images); +} +// function art() { +// // Move favicons and images to the root folder +// return src(input.art.favicons) +// .pipe(plumber()) +// .pipe(changed(config.dev)) +// .pipe(dest(config.dev)) +// .pipe(src(input.art.images)) +// .pipe(changed(output.art)) +// .pipe(dest(output.art)); +// } + + +function sprites() { + // Assemble sprites + let sprites = src(input.art.sprites) + .pipe(plumber()) + .pipe(changed(output.art)) + .pipe(spritesmith({ + imgName: 'sprite.png', + imgPath: '../art/sprite.png', + cssName: '_sprite.scss' + })); + + const imgStream = sprites.img + // DEV: We must buffer our stream into a Buffer for `imagemin` + // .pipe(buffer()) + // .pipe(imagemin()) + .pipe(dest(output.art)); + + const cssStream = sprites.css + .pipe(dest(config.src + 'style/hippie-style/mixins/')); + + return merge(imgStream, cssStream); +} + +// Gather dependencies for tools +function vendor() { + return src(input.vendor) + .pipe(plumber()) + .pipe(dest(output.vendor)); +} + +// TODO for distribution +function code2() { + return src(config.dev + '**/*.html') + .pipe(useref()) + .pipe(cached('useref')) + .pipe(gulpIf('*.js', uglify())) + .pipe(dest('dist')); +} + + + +function overview() { + watch([input.templates, input.screens, config.frontendData + 'data/**/*.json'], series(nunjucks, reload)); + // watch(input.style, series(styleLint, style, reload)); + watch(input.style, series(style, reload)); + // watch(input.code, series(codeLint, code, reload)); + watch(input.code, series(code, reload)); + watch(input.fonts, series(fonts, reload)); + watch(input.art.sprites, series(sprites, style, reload)); + watch([input.art.favicons, input.art.images], series(art, reload)); + watch(config.frontendData, series(json, reload)); +} + +const assets = parallel(fonts, art, sprites, json, vendor); +const build = series(clean, assets, parallel(nunjucks, style, code)); +// const dev = series(clean, assets, parallel(nunjucks, series(styleLint, style), series(codeLint, code))); +const dev = series(clean, assets, parallel(nunjucks, style, code)); + +exports.lint = parallel(series(style, styleLint), series(code, codeLint)); +// exports.validate = series(nunjucks, validate); +exports.assets = assets; +exports.build = build; +exports.dev = dev; +exports.dist = series(clean, assets, parallel(nunjucks, style), code2); +exports.default = series(dev, serve, overview); + +exports.hello = hello; diff --git a/package-lock.json b/package-lock.json index 0c46b1f..6f94eb4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,2212 +1,7047 @@ { - "name": "hippie", - "version": "0.13.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "hippie", - "version": "0.13.1", - "license": "MIT", - "dependencies": { - "@11ty/eleventy": "^3.1.5", - "@11ty/eleventy-plugin-webc": "^0.11.2", - "bootstrap-icons": "^1.13.1", - "hippie-script": "git+https://quelltext.interaktionsweise.de/interaktionsweise/hippie-script.git", - "jquery": "^4.0.0", - "sass": "^1.99.0" - }, - "devDependencies": { - "normalize.css": "^8.0.1" - } - }, - "node_modules/@11ty/dependency-tree": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-4.0.2.tgz", - "integrity": "sha512-RTF6VTZHatYf7fSZBUN3RKwiUeJh5dhWV61gDPrHhQF2/gzruAkYz8yXuvGLx3w3ZBKreGrR+MfYpSVkdbdbLA==", - "license": "MIT", - "dependencies": { - "@11ty/eleventy-utils": "^2.0.1" - } - }, - "node_modules/@11ty/dependency-tree-esm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@11ty/dependency-tree-esm/-/dependency-tree-esm-2.0.4.tgz", - "integrity": "sha512-MYKC0Ac77ILr1HnRJalzKDlb9Z8To3kXQCltx299pUXXUFtJ1RIONtULlknknqW8cLe19DLVgmxVCtjEFm7h0A==", - "license": "MIT", - "dependencies": { - "@11ty/eleventy-utils": "^2.0.7", - "acorn": "^8.15.0", - "dependency-graph": "^1.0.0", - "normalize-path": "^3.0.0" - } - }, - "node_modules/@11ty/eleventy": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.1.5.tgz", - "integrity": "sha512-hZ0g6MwZyRxCqXsPm82gIM304LraKbUz3ZmezOSjsqxttZG6cHTib3Qq8QkESJoKwnr+yX1eyfOkPC5/mEgZnQ==", - "license": "MIT", - "dependencies": { - "@11ty/dependency-tree": "^4.0.2", - "@11ty/dependency-tree-esm": "^2.0.4", - "@11ty/eleventy-dev-server": "^2.0.8", - "@11ty/eleventy-plugin-bundle": "^3.0.7", - "@11ty/eleventy-utils": "^2.0.7", - "@11ty/lodash-custom": "^4.17.21", - "@11ty/posthtml-urls": "^1.0.2", - "@11ty/recursive-copy": "^4.0.4", - "@sindresorhus/slugify": "^2.2.1", - "bcp-47-normalize": "^2.3.0", - "chokidar": "^3.6.0", - "debug": "^4.4.3", - "dependency-graph": "^1.0.0", - "entities": "^6.0.1", - "filesize": "^10.1.6", - "gray-matter": "^4.0.3", - "iso-639-1": "^3.1.5", - "js-yaml": "^4.1.1", - "kleur": "^4.1.5", - "liquidjs": "^10.25.0", - "luxon": "^3.7.2", - "markdown-it": "^14.1.1", - "minimist": "^1.2.8", - "moo": "0.5.2", - "node-retrieve-globals": "^6.0.1", - "nunjucks": "^3.2.4", - "picomatch": "^4.0.3", - "please-upgrade-node": "^3.2.0", - "posthtml": "^0.16.7", - "posthtml-match-helper": "^2.0.3", - "semver": "^7.7.4", - "slugify": "^1.6.8", - "tinyglobby": "^0.2.15" - }, - "bin": { - "eleventy": "cmd.cjs" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy-dev-server": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.8.tgz", - "integrity": "sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA==", - "license": "MIT", - "dependencies": { - "@11ty/eleventy-utils": "^2.0.1", - "chokidar": "^3.6.0", - "debug": "^4.4.0", - "finalhandler": "^1.3.1", - "mime": "^3.0.0", - "minimist": "^1.2.8", - "morphdom": "^2.7.4", - "please-upgrade-node": "^3.2.0", - "send": "^1.1.0", - "ssri": "^11.0.0", - "urlpattern-polyfill": "^10.0.0", - "ws": "^8.18.1" - }, - "bin": { - "eleventy-dev-server": "cmd.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy-plugin-bundle": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.7.tgz", - "integrity": "sha512-QK1tRFBhQdZASnYU8GMzpTdsMMFLVAkuU0gVVILqNyp09xJJZb81kAS3AFrNrwBCsgLxTdWHJ8N64+OTTsoKkA==", - "license": "MIT", - "dependencies": { - "@11ty/eleventy-utils": "^2.0.2", - "debug": "^4.4.0", - "posthtml-match-helper": "^2.0.3" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy-plugin-webc": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-webc/-/eleventy-plugin-webc-0.11.2.tgz", - "integrity": "sha512-oa/XlAqI5KtVO7M14qaN92D2yJfBEMMSb66YWY6YZVbRqFSVbjO4WmRJ2Ti2ZZb1FNvxj4ypGNV8VJleGE69xw==", - "license": "MIT", - "dependencies": { - "@11ty/eleventy-plugin-bundle": "^1.0.4", - "@11ty/webc": "^0.11.0" - }, - "engines": { - "node": ">=14.18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy-plugin-webc/node_modules/@11ty/eleventy-plugin-bundle": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-1.0.5.tgz", - "integrity": "sha512-Esv97j+mOo/yfxjaWl4j8CyszOBsRjU/DOUWOBqVnnDLM8VDXeus2LTJUxF70nAU0g+z+b6fRn8fKnm6b2a/UQ==", - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy-utils": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-2.0.7.tgz", - "integrity": "sha512-6QE+duqSQ0GY9rENXYb4iPR4AYGdrFpqnmi59tFp9VrleOl0QSh8VlBr2yd6dlhkdtj7904poZW5PvGr9cMiJQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/@11ty/eleventy/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/@11ty/eleventy/node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@11ty/eleventy/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@11ty/lodash-custom": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz", - "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/posthtml-urls": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.2.tgz", - "integrity": "sha512-0vaV3Wt0surZ+oS1VdKKe0axeeupuM+l7W/Z866WFQwF+dGg2Tc/nmhk/5l74/Y55P8KyImnLN9CdygNw2huHg==", - "license": "MIT", - "dependencies": { - "evaluate-value": "^2.0.0", - "http-equiv-refresh": "^2.0.1", - "list-to-array": "^1.1.0", - "parse-srcset": "^1.0.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@11ty/recursive-copy": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.4.tgz", - "integrity": "sha512-oI7m8pa7/IAU/3lqRU9vjBbs20iKFo7x+1K9kT3aVira6scc1X9MjBdgLCHzLJeJ7iB6wydioA+kr9/qPnvmlQ==", - "license": "ISC", - "dependencies": { - "errno": "^1.0.0", - "junk": "^3.1.0", - "minimatch": "^3.1.5", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@11ty/webc": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/@11ty/webc/-/webc-0.11.4.tgz", - "integrity": "sha512-q1GMcjNnx9PxUr6jyTT5CdDFma3JWkT5D45wRNYUQ/B4cxTTxpC15b2rYdzNaGuSqB6tsArQ9Qh4BPqg6Xo9cA==", - "license": "MIT", - "dependencies": { - "@11ty/eleventy-utils": "^1.0.1", - "css-tree": "^2.3.1", - "dependency-graph": "^0.11.0", - "entities": "^4.4.0", - "fast-glob": "^3.2.12", - "is-glob": "^4.0.3", - "nanoid": "^4.0.1", - "node-retrieve-globals": "^2.0.7", - "parse5": "^7.1.2" - }, - "engines": { - "node": ">=14.18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/webc/node_modules/@11ty/eleventy-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.3.tgz", - "integrity": "sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==", - "license": "MIT", - "dependencies": { - "normalize-path": "^3.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/webc/node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/@11ty/webc/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/@11ty/webc/node_modules/node-retrieve-globals": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-retrieve-globals/-/node-retrieve-globals-2.0.8.tgz", - "integrity": "sha512-mVimS/m8H28kyMdvOIfyMCM8wFNiKXM83ag1yHYP297iVmlCSmCh7Ih4b+ig9/DZ2+LbXZCPLDSZO4yRa5ttyg==", - "license": "MIT", - "dependencies": { - "acorn": "^8.8.2", - "acorn-walk": "^8.2.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@sindresorhus/slugify": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", - "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==", - "license": "MIT", - "dependencies": { - "@sindresorhus/transliterate": "^1.0.0", - "escape-string-regexp": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sindresorhus/transliterate": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz", - "integrity": "sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/a-sync-waterfall": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", - "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==" - }, - "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", - "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/bcp-47": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", - "integrity": "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/bcp-47-match": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", - "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/bcp-47-normalize": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-2.3.0.tgz", - "integrity": "sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q==", - "license": "MIT", - "dependencies": { - "bcp-47": "^2.0.0", - "bcp-47-match": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bootstrap-icons": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.13.1.tgz", - "integrity": "sha512-ijombt4v6bv5CLeXvRWKy7CuM3TRTuPEuGaGKvTV5cz65rQSY8RQ2JcHt6b90cBBAC7s8fsf2EkQDldzCoXUjw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/twbs" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - } - ], - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dependency-graph": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", - "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "license": "Apache-2.0", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/errno": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-1.0.0.tgz", - "integrity": "sha512-3zV5mFS1E8/1bPxt/B0xxzI1snsg3uSCIh6Zo1qKg6iMw93hzPANk9oBFzSFBFrwuVoQuE3rLoouAUfwOAj1wQ==", - "license": "MIT", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esm-import-transformer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/esm-import-transformer/-/esm-import-transformer-3.0.5.tgz", - "integrity": "sha512-1GKLvfuMnnpI75l8c6sHoz0L3Z872xL5akGuBudgqTDPv4Vy6f2Ec7jEMKTxlqWl/3kSvNbHELeimJtnqgYniw==", - "license": "MIT", - "dependencies": { - "acorn": "^8.15.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/evaluate-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/evaluate-value/-/evaluate-value-2.0.0.tgz", - "integrity": "sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/filesize": { - "version": "10.1.6", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", - "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 10.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", - "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "statuses": "~2.0.2", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/hippie-script": { - "version": "1.2.1", - "resolved": "git+https://quelltext.interaktionsweise.de/interaktionsweise/hippie-script.git#dfc13e61586fbf466a7bbdb5667c5b02f41abd44", - "license": "MIT" - }, - "node_modules/htmlparser2": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", - "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "entities": "^3.0.1" - } - }, - "node_modules/http-equiv-refresh": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-2.0.1.tgz", - "integrity": "sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/immutable": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz", - "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==", - "license": "MIT" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-json": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", - "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==" - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/iso-639-1": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-3.1.5.tgz", - "integrity": "sha512-gXkz5+KN7HrG0Q5UGqSMO2qB9AsbEeyLP54kF1YrMsIxmu+g4BdB7rflReZTSTZGpfj8wywu6pfPBCylPIzGQA==", - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/jquery": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-4.0.0.tgz", - "integrity": "sha512-TXCHVR3Lb6TZdtw1l3RTLf8RBWVGexdxL6AC8/e0xZKEpBflBsjh9/8LXw+dkNFuOyW9B7iB3O1sP7hS0Kiacg==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/junk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", - "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/liquidjs": { - "version": "10.25.5", - "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.25.5.tgz", - "integrity": "sha512-GKiKeZjJDdVoQAu+S9rzkYsYnYhcep5W3WwZXgb5f+yq484P/k9JqamBbGYu+LBEixcUAXZr2jogdAIjB3ki1w==", - "license": "MIT", - "dependencies": { - "commander": "^10.0.0" - }, - "bin": { - "liquid": "bin/liquid.js", - "liquidjs": "bin/liquid.js" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/liquidjs" - } - }, - "node_modules/list-to-array": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz", - "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==", - "license": "MIT" - }, - "node_modules/luxon": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", - "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/markdown-it": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", - "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, - "node_modules/markdown-it/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "license": "CC0-1.0" - }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/moo": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" - }, - "node_modules/morphdom": { - "version": "2.7.8", - "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.8.tgz", - "integrity": "sha512-D/fR4xgGUyVRbdMGU6Nejea1RFzYxYtyurG4Fbv2Fi/daKlWKuXGLOdXtl+3eIwL110cI2hz1ZojGICjjFLgTg==", - "license": "MIT" - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.js" - }, - "engines": { - "node": "^14 || ^16 || >=18" - } - }, - "node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "license": "MIT", - "optional": true - }, - "node_modules/node-retrieve-globals": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/node-retrieve-globals/-/node-retrieve-globals-6.0.1.tgz", - "integrity": "sha512-j0DeFuZ/Wg3VlklfbxUgZF/mdHMTEiEipBb3q0SpMMbHaV3AVfoUQF8UGxh1s/yjqO0TgRZd4Pi/x2yRqoQ4Eg==", - "license": "MIT", - "dependencies": { - "acorn": "^8.14.1", - "acorn-walk": "^8.3.4", - "esm-import-transformer": "^3.0.3" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize.css": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", - "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==", - "dev": true, - "license": "MIT" - }, - "node_modules/nunjucks": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", - "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", - "dependencies": { - "a-sync-waterfall": "^1.0.0", - "asap": "^2.0.3", - "commander": "^5.1.0" - }, - "bin": { - "nunjucks-precompile": "bin/precompile" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "chokidar": "^3.3.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/nunjucks/node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/parse-srcset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", - "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==", - "license": "MIT" - }, - "node_modules/parse5": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", - "license": "MIT", - "dependencies": { - "entities": "^6.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "license": "MIT", - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/posthtml": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.7.tgz", - "integrity": "sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==", - "license": "MIT", - "dependencies": { - "posthtml-parser": "^0.11.0", - "posthtml-render": "^3.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/posthtml-match-helper": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.3.tgz", - "integrity": "sha512-p9oJgTdMF2dyd7WE54QI1LvpBIkNkbSiiECKezNnDVYhGhD1AaOnAkw0Uh0y5TW+OHO8iBdSqnd8Wkpb6iUqmw==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "posthtml": "^0.16.6" - } - }, - "node_modules/posthtml-parser": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", - "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", - "dependencies": { - "htmlparser2": "^7.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/posthtml-render": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", - "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", - "dependencies": { - "is-json": "^2.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "license": "MIT" - }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/sass": { - "version": "1.99.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.99.0.tgz", - "integrity": "sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==", - "license": "MIT", - "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.1.5", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" - } - }, - "node_modules/sass/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "license": "MIT" - }, - "node_modules/send": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", - "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.3", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^2.0.0", - "http-errors": "^2.0.1", - "mime-types": "^3.0.2", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slugify": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.9.tgz", - "integrity": "sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/ssri": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz", - "integrity": "sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "license": "MIT" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/urlpattern-polyfill": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz", - "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==", - "license": "MIT" - }, - "node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - } - } + "name": "hippie", + "version": "0.4.2", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "hippie", + "version": "0.4.2", + "license": "MIT", + "devDependencies": { + "autoprefixer": "^10.4.8", + "browser-sync": "^2.27.10", + "cssnano": "^5.1.13", + "jshint": "~2", + "jshint-stylish": "^2.2.1", + "nunjucks-cli": "^1.0.0", + "postcss": "^8.4.16", + "postcss-cli": "^10.0.0", + "sass": "^1.54.4" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz", + "integrity": "sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==", + "dev": true + }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.8.tgz", + "integrity": "sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.3", + "caniuse-lite": "^1.0.30001373", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync": { + "version": "2.27.10", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.10.tgz", + "integrity": "sha512-xKm+6KJmJu6RuMWWbFkKwOCSqQOxYe3nOrFkKI5Tr/ZzjPxyU3pFShKK3tWnazBo/3lYQzN7fzjixG8fwJh1Xw==", + "dev": true, + "dependencies": { + "browser-sync-client": "^2.27.10", + "browser-sync-ui": "^2.27.10", + "bs-recipes": "1.3.4", + "bs-snippet-injector": "^2.0.1", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "3.1.0", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "qs": "6.2.3", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "1.0.2", + "yargs": "^17.3.1" + }, + "bin": { + "browser-sync": "dist/bin.js" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/browser-sync-client": { + "version": "2.27.10", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.10.tgz", + "integrity": "sha512-KCFKA1YDj6cNul0VsA28apohtBsdk5Wv8T82ClOZPZMZWxPj4Ny5AUbrj9UlAb/k6pdxE5HABrWDhP9+cjt4HQ==", + "dev": true, + "dependencies": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3", + "rxjs": "^5.5.6", + "typescript": "^4.6.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/browser-sync-ui": { + "version": "2.27.10", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.10.tgz", + "integrity": "sha512-elbJILq4Uo6OQv6gsvS3Y9vRAJlWu+h8j0JDkF0X/ua+3S6SVbbiWnZc8sNOFlG7yvVGIwBED3eaYQ0iBo1Dtw==", + "dev": true, + "dependencies": { + "async-each-series": "0.1.1", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + } + }, + "node_modules/browserslist": { + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "dev": true + }, + "node_modules/bs-snippet-injector": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001377", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001377.tgz", + "integrity": "sha512-I5XeHI1x/mRSGl96LFOaSk528LA/yZG3m3iQgImGujjO8gotd/DL8QaI1R1h1dg5ATeI2jqPblMpKq4Tr5iKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "dependencies": { + "exit": "0.1.2", + "glob": "^7.1.1" + }, + "engines": { + "node": ">=0.2.5" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "dependencies": { + "date-now": "^0.1.4" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cors/node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz", + "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.2.12", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.0", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "dev": true, + "bin": { + "dev-ip": "lib/dev-ip.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/eazy-logger": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", + "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", + "dev": true, + "dependencies": { + "tfunk": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.221", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.221.tgz", + "integrity": "sha512-aWg2mYhpxZ6Q6Xvyk7B2ziBca4YqrCDlXzmcD7wuRs65pVEVkMT1u2ifdjpAQais2O2o0rW964ZWWWYRlAL/kw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz", + "integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "dependencies": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + } + }, + "node_modules/htmlparser2/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/htmlparser2/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/htmlparser2/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/irregular-plurals": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz", + "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "dependencies": { + "lodash.isfinite": "^3.3.2" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jshint": { + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.5.tgz", + "integrity": "sha512-dB2n1w3OaQ35PLcBGIWXlszjbPZwsgZoxsg6G8PtNf2cFMC1l0fObkYLUuXqTTdi6tKw4sAjfUseTdmDMHQRcg==", + "dev": true, + "dependencies": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.21", + "minimatch": "~3.0.2", + "strip-json-comments": "1.0.x" + }, + "bin": { + "jshint": "bin/jshint" + } + }, + "node_modules/jshint-stylish": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-2.2.1.tgz", + "integrity": "sha1-JCCCosA1rgP9gQROBXDMQgjPbmE=", + "dev": true, + "dependencies": { + "beeper": "^1.1.0", + "chalk": "^1.0.0", + "log-symbols": "^1.0.0", + "plur": "^2.1.0", + "string-length": "^1.0.0", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jshint-stylish/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jshint-stylish/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jshint-stylish/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "node_modules/localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "dependencies": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "bin": { + "lt": "bin/lt.js" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/localtunnel/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/localtunnel/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/localtunnel/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/localtunnel/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/localtunnel/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/localtunnel/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/localtunnel/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/localtunnel/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/localtunnel/node_modules/yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/localtunnel/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "dependencies": { + "chalk": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true, + "bin": { + "mime": "cli.js" + } + }, + "node_modules/mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "dev": true, + "dependencies": { + "mime-db": "1.46.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nunjucks": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz", + "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==", + "dev": true, + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/nunjucks-cli": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nunjucks-cli/-/nunjucks-cli-1.0.0.tgz", + "integrity": "sha512-Yo6Ti/2Ja7XQiAXWwgjNnvNV8yn6xjr7ySAou+n23L9h6aKcIPyOmQZTl/PL6kK8irtwXDvG8PLEhsYCDhK8YQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "chokidar": "^3.0.1", + "glob": "^7.0.3", + "mkdirp": "^0.5.1", + "nunjucks": "^3.2.0", + "yargs": "^13.2.4" + }, + "bin": { + "nunjucks": "main.js" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/nunjucks-cli/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nunjucks-cli/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/nunjucks-cli/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nunjucks-cli/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nunjucks-cli/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nunjucks-cli/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/nunjucks/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "dev": true + }, + "node_modules/opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plur": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", + "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", + "dev": true, + "dependencies": { + "irregular-plurals": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, + "dependencies": { + "async": "^2.6.0", + "is-number-like": "^1.0.3" + }, + "engines": { + "node": ">=0.4", + "npm": ">=1.0.0" + } + }, + "node_modules/portscanner/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-cli": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.0.0.tgz", + "integrity": "sha512-Wjy/00wBBEgQqnSToznxLWDnATznokFGXsHtF/3G8glRZpz5KYlfHcBW/VMJmWAeF2x49zjgy4izjM3/Wx1dKA==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^13.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^4.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-cli/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss-cli/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/postcss-cli/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/resp-modifier/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/resp-modifier/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, + "node_modules/rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "dependencies": { + "symbol-observable": "1.0.1" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.54.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz", + "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass/node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, + "node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/send/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", + "dev": true + }, + "node_modules/socket.io-client": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz", + "integrity": "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.2.1", + "socket.io-parser": "~4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz", + "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==", + "dev": true, + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "dev": true, + "dependencies": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + }, + "bin": { + "throttleproxy": "bin/throttleproxy.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/string-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", + "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", + "dev": true, + "dependencies": { + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true, + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/tfunk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", + "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "dlv": "^1.1.3" + } + }, + "node_modules/tfunk/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tfunk/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tfunk/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", + "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/yargs/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/yargs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/yargs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/yargs/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, + "@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "@types/node": { + "version": "18.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz", + "integrity": "sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==", + "dev": true + }, + "a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.8.tgz", + "integrity": "sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==", + "dev": true, + "requires": { + "browserslist": "^4.21.3", + "caniuse-lite": "^1.0.30001373", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-sync": { + "version": "2.27.10", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.10.tgz", + "integrity": "sha512-xKm+6KJmJu6RuMWWbFkKwOCSqQOxYe3nOrFkKI5Tr/ZzjPxyU3pFShKK3tWnazBo/3lYQzN7fzjixG8fwJh1Xw==", + "dev": true, + "requires": { + "browser-sync-client": "^2.27.10", + "browser-sync-ui": "^2.27.10", + "bs-recipes": "1.3.4", + "bs-snippet-injector": "^2.0.1", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "3.1.0", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "qs": "6.2.3", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "1.0.2", + "yargs": "^17.3.1" + } + }, + "browser-sync-client": { + "version": "2.27.10", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.10.tgz", + "integrity": "sha512-KCFKA1YDj6cNul0VsA28apohtBsdk5Wv8T82ClOZPZMZWxPj4Ny5AUbrj9UlAb/k6pdxE5HABrWDhP9+cjt4HQ==", + "dev": true, + "requires": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3", + "rxjs": "^5.5.6", + "typescript": "^4.6.2" + } + }, + "browser-sync-ui": { + "version": "2.27.10", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.10.tgz", + "integrity": "sha512-elbJILq4Uo6OQv6gsvS3Y9vRAJlWu+h8j0JDkF0X/ua+3S6SVbbiWnZc8sNOFlG7yvVGIwBED3eaYQ0iBo1Dtw==", + "dev": true, + "requires": { + "async-each-series": "0.1.1", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + } + }, + "browserslist": { + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + } + }, + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "dev": true + }, + "bs-snippet-injector": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "dev": true + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001377", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001377.tgz", + "integrity": "sha512-I5XeHI1x/mRSGl96LFOaSk528LA/yZG3m3iQgImGujjO8gotd/DL8QaI1R1h1dg5ATeI2jqPblMpKq4Tr5iKfQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "^7.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + } + } + }, + "css-declaration-sorter": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", + "dev": true, + "requires": {} + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "dependencies": { + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + } + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz", + "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==", + "dev": true, + "requires": { + "cssnano-preset-default": "^5.2.12", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "dependencies": { + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + } + } + }, + "cssnano-preset-default": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.3.0", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "eazy-logger": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", + "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", + "dev": true, + "requires": { + "tfunk": "^4.0.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.221", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.221.tgz", + "integrity": "sha512-aWg2mYhpxZ6Q6Xvyk7B2ziBca4YqrCDlXzmcD7wuRs65pVEVkMT1u2ifdjpAQais2O2o0rW964ZWWWYRlAL/kw==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + } + }, + "engine.io-client": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz", + "integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "dev": true + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "irregular-plurals": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz", + "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "requires": { + "lodash.isfinite": "^3.3.2" + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "jshint": { + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.5.tgz", + "integrity": "sha512-dB2n1w3OaQ35PLcBGIWXlszjbPZwsgZoxsg6G8PtNf2cFMC1l0fObkYLUuXqTTdi6tKw4sAjfUseTdmDMHQRcg==", + "dev": true, + "requires": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.21", + "minimatch": "~3.0.2", + "strip-json-comments": "1.0.x" + } + }, + "jshint-stylish": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-2.2.1.tgz", + "integrity": "sha1-JCCCosA1rgP9gQROBXDMQgjPbmE=", + "dev": true, + "requires": { + "beeper": "^1.1.0", + "chalk": "^1.0.0", + "log-symbols": "^1.0.0", + "plur": "^2.1.0", + "string-length": "^1.0.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true + }, + "limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "requires": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "dev": true, + "requires": { + "mime-db": "1.46.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "nunjucks": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz", + "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==", + "dev": true, + "requires": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "dependencies": { + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + } + } + }, + "nunjucks-cli": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nunjucks-cli/-/nunjucks-cli-1.0.0.tgz", + "integrity": "sha512-Yo6Ti/2Ja7XQiAXWwgjNnvNV8yn6xjr7ySAou+n23L9h6aKcIPyOmQZTl/PL6kK8irtwXDvG8PLEhsYCDhK8YQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "chokidar": "^3.0.1", + "glob": "^7.0.3", + "mkdirp": "^0.5.1", + "nunjucks": "^3.2.0", + "yargs": "^13.2.4" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + } + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "dev": true + }, + "opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "plur": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", + "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", + "dev": true, + "requires": { + "irregular-plurals": "^1.0.0" + } + }, + "portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "is-number-like": "^1.0.3" + }, + "dependencies": { + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-cli": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.0.0.tgz", + "integrity": "sha512-Wjy/00wBBEgQqnSToznxLWDnATznokFGXsHtF/3G8glRZpz5KYlfHcBW/VMJmWAeF2x49zjgy4izjM3/Wx1dKA==", + "dev": true, + "requires": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^13.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^4.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "requires": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "requires": {} + }, + "postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + } + }, + "postcss-merge-longhand": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + } + }, + "postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true + }, + "qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, + "requires": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.54.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz", + "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "dependencies": { + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + } + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + }, + "socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + } + }, + "socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", + "dev": true + }, + "socket.io-client": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz", + "integrity": "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.2.1", + "socket.io-parser": "~4.2.0" + }, + "dependencies": { + "socket.io-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + } + } + } + }, + "socket.io-parser": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz", + "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==", + "dev": true, + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "dev": true, + "requires": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + } + }, + "string-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", + "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", + "dev": true, + "requires": { + "strip-ansi": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + }, + "stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "tfunk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", + "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "dlv": "^1.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "ua-parser-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", + "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true, + "requires": {} + }, + "xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "dev": true + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } } diff --git a/package.json b/package.json index 99e61a7..ecf96b2 100644 --- a/package.json +++ b/package.json @@ -1,47 +1,60 @@ { - "name": "hippie", - "version": "0.13.1", - "description": "Hippie interweaves preeminent personal interface elements", - "keywords": [ - "hippie", - "www site template" - ], - "homepage": "https://quelltext.interaktionsweise.de/interaktionsweise/hippie", - "bugs": "https://quelltext.interaktionsweise.de/interaktionsweise/hippie/issues", - "license": "MIT", - "author": "Stephan Hagedorn (https://karte.interaktionsweise.de)", - "main": "", - "repository": { - "type": "git", - "url": "https://quelltext.interaktionsweise.de/interaktionsweise/hippie.git" - }, - "type": "module", - "scripts": { - "hello": "echo -n \"This is \" && node -p \"process.env.npm_package_name\" | tr '[:lower:]' '[:upper:]'", - "test": "echo \"Error: no test specified\" && exit 1", - "clean": "npm run clean:build & npm run clean:deploy & npm run clean:report & npm run clean:test", - "clean:build": "rm -rf build/*", - "clean:deploy": "rm -rf deploy/*", - "clean:report": "rm -rf report/*", - "clean:test": "rm -rf test/*", - "style:compile": "sass source/style:build/css --load-path=vendor", - "style:deploy": "sass source/style:deploy/css --load-path=vendor", - "style:watch": "sass --watch source/style:build/css --load-path=vendor", - "build:new": "npm run clean:build && npx @11ty/eleventy && npm run style:compile", - "build": "npx @11ty/eleventy && npm run style:compile", - "deploy": "npm run clean:deploy && npx @11ty/eleventy --output=deploy --pathprefix=hippie && npm run style:deploy", - "serve": "npm run style:watch & npx @11ty/eleventy --serve" - }, - "private": true, - "devDependencies": { - "normalize.css": "^8.0.1" - }, - "dependencies": { - "@11ty/eleventy": "^3.1.5", - "@11ty/eleventy-plugin-webc": "^0.11.2", - "bootstrap-icons": "^1.13.1", - "hippie-script": "git+https://quelltext.interaktionsweise.de/interaktionsweise/hippie-script.git", - "jquery": "^4.0.0", - "sass": "^1.99.0" - } + "name": "hippie", + "version": "0.4.2", + "description": "Hippie interweaves preeminent personal interface elements", + "keywords": [ + "web", + "frontend", + "framework", + "sass", + "css", + "html", + "js" + ], + "homepage": "https://github.com/sthag/hippie#readme", + "bugs": { + "url": "https://github.com/sthag/hippie/issues", + "email": "klarsichtweise@gmail.com" + }, + "license": "MIT", + "author": "Stephan Hagedorn", + "repository": { + "type": "git", + "url": "git+https://github.com/sthag/hippie.git" + }, + "scripts": { + "hello": "echo -n \"This is \" && node -p \"process.env.npm_package_name\" | tr '[:lower:]' '[:upper:]'", + "test": "echo \"Error: no test specified\" && exit 1", + "preversion": "npm test", + "version": "gulp build && git add -A dist", + "postversion": "git push && git push --tags", + "clean": "npm run clean:build & npm run clean:deploy & npm run clean:report & npm run clean:test", + "clean:build": "rm -rf build/*", + "clean:deploy": "rm -rf deploy/*", + "clean:report": "rm -rf report/*", + "clean:test": "rm -rf test/*", + "serve": "browser-sync start --no-open --index 'demo.html' --server 'build'", + "serve:watch": "browser-sync start --open false --index 'demo.html' --files 'build' --server 'build'", + "style": "npm run style:compile & npm run style:post", + "style:compile": "sass source/style:build/css --load-path=vendor", + "style:post": "postcss build/css/*.css -d deploy/css", + "style:watch": "sass --watch source/style:build/css --load-path=vendor", + "nunjucks": "nunjucks source/screens/**/*.njk -p source/templates -o build/test", + "develop": "npm run style:watch & npm run serve:watch" + }, + "config": { + "port": "3000" + }, + "devDependencies": { + "autoprefixer": "^10.4.8", + "browser-sync": "^2.27.10", + "cssnano": "^5.1.13", + "jshint": "~2", + "jshint-stylish": "^2.2.1", + "nunjucks-cli": "^1.0.0", + "postcss": "^8.4.16", + "postcss-cli": "^10.0.0", + "sass": "^1.54.4" + }, + "private": true } diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..215f7ae --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,10 @@ +module.exports = { + plugins: [ + require('autoprefixer')({ + env: '>= 4%, last 2 version' + }), + require('cssnano')({ + preset: 'default', + }), + ], +}; \ No newline at end of file diff --git a/source/art/images/bullet.gif b/source/art/images/bullet.gif deleted file mode 100644 index 55a84ab..0000000 Binary files a/source/art/images/bullet.gif and /dev/null differ diff --git a/source/art/images/flag_websafe_128x80.gif b/source/art/images/demo/flag_websafe_128x80.gif similarity index 100% rename from source/art/images/flag_websafe_128x80.gif rename to source/art/images/demo/flag_websafe_128x80.gif diff --git a/source/art/images/flag_websafe_128x80.webp b/source/art/images/demo/flag_websafe_128x80.webp similarity index 100% rename from source/art/images/flag_websafe_128x80.webp rename to source/art/images/demo/flag_websafe_128x80.webp diff --git a/source/code/drag.js b/source/code/drag.js deleted file mode 100644 index 7bdd8e9..0000000 --- a/source/code/drag.js +++ /dev/null @@ -1,115 +0,0 @@ -// Creates a div element which is draggable -class NewDiv { - constructor(x, y, width, height, backgroundColor, content) { - this.x = x; - this.y = y; - this.width = width; - this.height = height; - this.backgroundColor = backgroundColor; - this.element = null; - this.content = content; - } - - // Create the div element - createDiv() { - this.element = this._content; - this.element.style.position = 'absolute'; - this.element.style.left = `${this.x}px`; - this.element.style.top = `${this.y}px`; - this.element.style.width = `${this.width}px`; - this.element.style.height = `${this.height}px`; - this.element.style.background = this.backgroundColor; - this.element.style.cursor = 'move'; - - // Add event listeners for dragging - let isDown = false; - let offset = [0, 0]; - - this - .element - .addEventListener('mousedown', (event) => { - if (event.button === 0) { // Left mouse button - isDown = true; - offset = [ - this.element.offsetLeft - event.clientX, - this.element.offsetTop - event.clientY - ]; - } - }); - - document.addEventListener('mouseup', () => { - isDown = false; - }); - - document.addEventListener('mousemove', (event) => { - if (isDown) { - const maxX = window.innerWidth - this.element.offsetWidth; - const maxY = window.innerHeight - this.element.offsetHeight; - let x = event.clientX + offset[0]; - let y = event.clientY + offset[1]; - - // Boundary checks - if (x < 0) - x = 0; - if (y < 0) - y = 0; - if (x > maxX) - x = maxX; - if (y > maxY) - y = maxY; - - this.element.style.left = `${x}px`; - this.element.style.top = `${y}px`; - } - }); - - // Save position and size - const saveData = () => { - const data = { - x: this.element.offsetLeft, - y: this.element.offsetTop, - width: this.element.offsetWidth, - height: this.element.offsetHeight - }; - // Save data to local storage or a database - localStorage.setItem(`divData${this.element.id}`, JSON.stringify(data)); - }; - - // Load saved data - const loadData = () => { - const data = localStorage.getItem(`divData${this.element.id}`); - if (data) { - const parsedData = JSON.parse(data); - this.element.style.left = `${parsedData.x}px`; - this.element.style.top = `${parsedData.y}px`; - this.element.style.width = `${parsedData.width}px`; - this.element.style.height = `${parsedData.height}px`; - } - }; - - // Call the save function when the user stops dragging - document.addEventListener('mouseup', saveData); - - // Load saved data on page load - loadData(); - } - - // FIXME: this.element wird von appendToFrame() verwendet - get content() { - return this._content = this.content; - } - - set content(value) { - if (!value) { - value = document.createElement('div'); - } - - this._content = value; - } - - // Append the div to the space - appendToFrame(space) { - this.element.id = `newDiv${space.children.length}`; - space.appendChild(this.element); - } -} diff --git a/source/code/game.js b/source/code/game.js deleted file mode 100644 index b961fdb..0000000 --- a/source/code/game.js +++ /dev/null @@ -1,313 +0,0 @@ -class HippieCrosshair { - constructor(canvas, options = {}) { - this.canvas = canvas; - this.ctx = canvas.getContext('2d'); - - this.debug = options.debug || false; - - const defaults = { - crosshair: { - size: 16, - thickness: 2, - color: '#000', - gapSize: 8, - style: 'cross' - }, - connector: { - distance: 128, // Distance to draw next symbol - spacing: 64, // Space between symbols - size: 8, - color: '#000', - style: 'arrow', - visibility: true - }, - line: { - color: 'rgba(0, 0, 0, 0.1)', - width: 1 - } - }; - const merged = this.mergeOptions(defaults, options); - const { crosshair, connector, line } = merged; - - // Crosshair options - this.size = crosshair.size; - this.thickness = crosshair.thickness; - this.color = crosshair.color; - this.gapSize = crosshair.gapSize; - this.style = crosshair.style; - - // Connector options - this.distance = connector.distance; - this.spacing = connector.spacing; - this.connectorSize = connector.size; - this.connectorColor = connector.color; - this.connectorStyle = connector.style; - this.connectorShow = connector.visibility; - - // Line options - this.lineColor = line.color || '#fff'; - this.lineWidth = line.width || 1; - - this.mouseX = canvas.width / 2; - this.mouseY = canvas.height / 2; - - // Animation control - this.isAnimating = true; - this.animationFrameId = null; - - this.setupEventListeners(); - this.animate(); - } - - mergeOptions(defaults, options) { - const merged = JSON.parse(JSON.stringify(defaults)); - - if (options.crosshair) { - Object.assign(merged.crosshair, options.crosshair); - } - if (options.connector) { - Object.assign(merged.connector, options.connector); - } - if (options.line) { - Object.assign(merged.line, options.line); - } - - return merged; - } - - setupEventListeners() { - document.addEventListener('mousemove', (event) => { - this.mouseX = event.clientX; - this.mouseY = event.clientY; - }); - } - - animate() { - if (!this.isAnimating) { - this.animationFrameId = requestAnimationFrame(() => this.animate()); - return; - } - - this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); - - if (this.connectorShow) { - if (this.debug) this.drawLine(); - this.drawConnector(); - } - - // TODO: Autom. Zug zum Zentrum hin ermöglichen - this.drawCrosshair(); - - this.animationFrameId = requestAnimationFrame(() => this.animate()); - } - - drawLine() { - const centerX = this.canvas.width / 2; - const centerY = this.canvas.height / 2; - - this.ctx.strokeStyle = this.lineColor; - this.ctx.lineWidth = this.lineWidth; - this.ctx.beginPath(); - this.ctx.moveTo(centerX, centerY); - this.ctx.lineTo(this.mouseX, this.mouseY); - this.ctx.stroke(); - } - - // TODO: Ausblenden nach Distanz - drawConnector() { - const centerX = this.canvas.width / 2; - const centerY = this.canvas.height / 2; - - const dx = this.mouseX - centerX; - const dy = this.mouseY - centerY; - const delta = Math.sqrt(dx * dx + dy * dy); - - // Only draw connectors if cursor is far enough from center - if (delta < this.distance) { - return; - } - - const angle = Math.atan2(dy, dx); - const count = Math.floor((delta - this.distance) / this.spacing); - - for (let i = 0; i < count; i++) { - const distance = this.distance + (i * this.spacing); - const x = centerX + Math.cos(angle) * distance; - const y = centerY + Math.sin(angle) * distance; - - this.drawSymbol(x, y, angle); - } - } - - drawSymbol(x, y, angle = 0) { - this.ctx.fillStyle = this.connectorColor; - this.ctx.strokeStyle = this.connectorColor; - this.ctx.lineWidth = 1; - - switch (this.connectorStyle) { - case 'circle': - this.ctx.beginPath(); - this.ctx.arc(x, y, this.connectorSize / 2, 0, Math.PI * 2); - this.ctx.fill(); - break; - case 'diamond': - const size = this.connectorSize - (this.connectorSize / 4); - this.ctx.beginPath(); - this.ctx.moveTo(x, y - size); - this.ctx.lineTo(x + size, y); - this.ctx.lineTo(x, y + size); - this.ctx.lineTo(x - size, y); - this.ctx.closePath(); - this.ctx.fill(); - break; - case 'square': - this.ctx.fillRect( - x - this.connectorSize / 2, - y - this.connectorSize / 2, - this.connectorSize, - this.connectorSize - ); - break; - case 'arrow': - this.arrow(x, y, angle); - break; - } - } - - arrow(x, y, angle) { - const size = this.connectorSize - (this.connectorSize / 4); - - this.ctx.save(); - this.ctx.translate(x, y); - this.ctx.rotate(angle); - - // Arrow pointing right - this.ctx.beginPath(); - this.ctx.moveTo(size, 0); // Tip - this.ctx.lineTo(-size, -size); // Back left - // this.ctx.lineTo(-size * 0.4, 0); // Middle - this.ctx.lineTo(-size, size); // Back right - this.ctx.closePath(); - this.ctx.fill(); - - this.ctx.restore(); - } - - drawCrosshair() { - this.ctx.strokeStyle = this.color; - this.ctx.lineWidth = this.thickness; - this.ctx.lineCap = 'round'; - - switch (this.style) { - case 'cross': - this.cross(); - break; - case 'circle': - this.circle(); - break; - case 'dot': - this.dot(); - break; - case 'level': - this.level(); - break; - } - } - - cross() { - // Horizontal line - this.ctx.beginPath(); - this.ctx.moveTo(this.mouseX - this.size, this.mouseY); - this.ctx.lineTo(this.mouseX - this.gapSize, this.mouseY); - this.ctx.stroke(); - - this.ctx.beginPath(); - this.ctx.moveTo(this.mouseX + this.gapSize, this.mouseY); - this.ctx.lineTo(this.mouseX + this.size, this.mouseY); - this.ctx.stroke(); - - // Vertical line - this.ctx.beginPath(); - this.ctx.moveTo(this.mouseX, this.mouseY - this.size); - this.ctx.lineTo(this.mouseX, this.mouseY - this.gapSize); - this.ctx.stroke(); - - this.ctx.beginPath(); - this.ctx.moveTo(this.mouseX, this.mouseY + this.gapSize); - this.ctx.lineTo(this.mouseX, this.mouseY + this.size); - this.ctx.stroke(); - } - - circle() { - // Outer circle - this.ctx.beginPath(); - this.ctx.arc(this.mouseX, this.mouseY, this.size, 0, Math.PI * 2); - this.ctx.stroke(); - - // Inner dot - this.ctx.fillStyle = this.color; - this.ctx.beginPath(); - this.ctx.arc(this.mouseX, this.mouseY, this.thickness, 0, Math.PI * 2); - this.ctx.fill(); - } - - dot() { - this.ctx.fillStyle = this.color; - this.ctx.beginPath(); - this.ctx.arc(this.mouseX, this.mouseY, this.size / 4, 0, Math.PI * 2); - this.ctx.fill(); - } - - level() { - this.ctx.beginPath(); - this.ctx.moveTo(this.mouseX - this.size * 2, this.mouseY); - this.ctx.lineTo(this.mouseX - this.gapSize * 2, this.mouseY); - this.ctx.stroke(); - - this.ctx.beginPath(); - this.ctx.arc(this.mouseX, this.mouseY, this.size, 0, Math.PI); - this.ctx.stroke(); - - this.ctx.beginPath(); - this.ctx.moveTo(this.mouseX + this.gapSize * 2, this.mouseY); - this.ctx.lineTo(this.mouseX + this.size * 2, this.mouseY); - this.ctx.stroke(); - - this.ctx.fillStyle = this.color; - this.ctx.beginPath(); - this.ctx.arc(this.mouseX, this.mouseY, this.thickness, 0, Math.PI * 2); - this.ctx.fill(); - } - - setCrosshairStyle(style) { - this.style = style; - } - - setCrosshairColor(color) { - this.color = color; - } - - setConnectorStyle(style) { - this.connectorStyle = style; - } - - setConnectorColor(color) { - this.connectorColor = color; - } - - setConnectorVisibility(visible) { - this.connectorShow = visible; - } - - startAnimation() { - this.isAnimating = true; - } - - stopAnimation() { - this.isAnimating = false; - } - - toggleAnimation() { - this.isAnimating = !this.isAnimating; - } -} diff --git a/source/code/hippie/app.js b/source/code/hippie/app.js deleted file mode 100644 index 89af792..0000000 --- a/source/code/hippie/app.js +++ /dev/null @@ -1,760 +0,0 @@ -/* jshint strict: false */ - -// TODO: Inhalte angleichen nach Zusammenfassung von app.js und function.js. -// Benennung und Beschreibungen verbessern. - -// This is called everytime -function setup() { - 'use strict'; - - console.group('Document information'); - console.info('\n', HIPPIE.brand, '\n\n'); - console.info('HTML:', hippie.screen, '\nBODY:', hippie.body); - console.groupEnd(); - if (debugOn) { - console.group('Debug information'); - console.dir(hippie); - console.groupEnd(); - } -} - -// MODULE Scroll navigation -// Using constructor function -function HippieScroll($tp, $dn) { - 'use strict'; - - // this.$tp = $tp; - // Define initial situation - let initLeft = false; - const initY = hippie.screen.vh; - - $tp.addClass('di_none'); - - // Check scroll position and toggle element - this.check = function () { - hippie.screen.y = Math.min($(document).scrollTop(), document.documentElement.scrollTop); - if (hippie.screen.y > initY) { - if (!initLeft) { - $tp.removeClass('di_none'); - console.info('Initial viewport left'); - } - initLeft = true; - } else { - if (initLeft) { - $tp.addClass('di_none'); - console.info('Initial viewport entered'); - } - initLeft = false; - } - }; - - // Add events to navigation elements - $tp.click(function (event) { - event.preventDefault(); - $('html, body').stop().animate({ - scrollTop: 0 - }, basicEase); - // console.log('Scrolled to top'); - }); - $dn.click(function (event) { - event.preventDefault(); - const pos = Math.max(hippie.screen.dh, hippie.body.h) - hippie.screen.vh; - $('html').scrollTop(pos); - // document.documentElement.scrollTop = pos; - console.info('Scrolled down to', pos); - }); -} - -function HippieFade(toggleElement, initState) { - 'use strict'; - - const fragment = document.createDocumentFragment(); - const overlay = document.createElement('div'); - - overlay.id = 'mouse_overlay'; - - if (initState) { - overlay.classList.add('active'); - } - - toggleElement.addEventListener('click', function () { - overlay.classList.toggle('active'); - }); - - fragment.appendChild(overlay); - document.body.style.position = 'relative'; - document.body.prepend(fragment); -} - -// MODULE Meta elements -function HippieMeta($ma, $pp) { - 'use strict'; - - let metaOn = false; - - $ma.click(function () { - let $wrap, $pop; - - // if (metaOn !== true) { - if (!metaOn) { - metaOn = true; - - $pp.each(function () { - // if ($(this).css('position') === 'static') { - // $(this).addClass('js_changed_pos'); - // $(this).css('position', 'relative'); - // } - // $pop = $(this).next('.exp_pop').detach(); - // $wrap = $(this).wrap('').parent().prepend('').prepend(''); - // $wrap.after($pop); - - $('
').addClass('exp_overlay').css({ - position: 'absolute', - width: '100%', - height: '100%', - top: 0, - left: 0 - }).appendTo($(this).addClass('exp_wrap')); - - // Displays explanation popup following the mouse - $(this).on({ - mouseenter: function () { - // if ($(this).attr('emmet')) { - // - // } - $(this).next('.exp_pop').show(); - }, - mouseleave: function () { - $(this).next('.exp_pop').hide(); - }, - mousemove: function (event) { - $(this).next('.exp_pop').css({ - 'top': event.pageY - $(this).next('.exp_pop').outerHeight() - 4, - 'left': event.pageX + 8 - // 'left': event.pageX - $(this).offset().left + 8 - }); - } - }); - }); - - } else { - $pp.each(function () { - $(this).off('mouseenter mouseleave mousemove'); - - $(this).removeClass('exp_wrap').find('.exp_overlay').remove(); - // $wrap = $(this).parent('.exp_wrap'); - // $pop = $wrap.next('.exp_pop').detach(); - // $wrap.find('.exp_marker_pop').remove(); - // $(this).unwrap('.exp_wrap'); - // $(this).after($pop); - // if ($(this).hasClass('js_changed_pos')) { - // $(this).css('position', ''); - // if ($(this).attr('style') === '') { - // $(this).removeAttr('style'); - // } - // $(this).removeClass('js_changed_pos'); - // } - }); - - metaOn = false; - } - console.log('Explanation mode', metaOn); - }); -} - -// Sets the href attribute to mailto: with given information -function composeMail(tag, name, prov, suffix, text, topic) { - 'use strict'; - - let trigger = tag.indexOf('.'); - let mailString = name + '@' + prov + '.' + suffix; - let textString = mailString.replace(/@/g, '(at)'); - let descString = 'Nachricht an ' + mailString; - - if (!text) { - text = mailString; - } else if (text === 'at') { - text = textString; - } else if (text === 'to') { - text = descString; - } - - if (topic) { - topic = '?subject=' + topic; - } else { - topic = ''; - } - - if (trigger === -1) { - const el = document.getElementById(tag); - const elContent = el.innerHTML; - - el.innerHTML = elContent + text; - el.setAttribute('href', 'mailto:' + mailString + topic); - } else { - const elements = document.getElementsByClassName(tag.slice(1)); - - for (const element of elements) { - const content = element.innerHTML; - - element.innerHTML = content + text; - element.setAttribute('href', 'mailto:' + mailString + topic); - } - } -} - -// get document coordinates of the element -// function getCoords (elem) { -// let box = elem.getBoundingClientRect(); -// -// return { -// top: box.top + pageYOffset, -// left: box.left + pageXOffset -// }; -// } - -// https://stackoverflow.com/a/488073/1444149 -// function Utils () {} -// -// Utils.prototype = { -// constructor: Utils, -// isElementInView: function (element, fullyInView) { -// var pageTop = $(window).scrollTop(); -// var pageBottom = pageTop + $(window).height(); -// var elementTop = $(element).offset().top; -// var elementBottom = elementTop + $(element).height(); -// -// if (fullyInView === true) { -// return ((pageTop < elementTop) && (pageBottom > elementBottom)); -// } else { -// return ((elementTop <= pageBottom) && (elementBottom >= pageTop)); -// } -// } -// }; -// -// var Utils = new Utils(); - -class TimeDisplay { - constructor(element, options, interval) { - this.element = element; - this.options = options || {hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false}; - this.interval = interval || 1000; - this.isPaused = false; - this.locale = navigator.language || 'en-US'; - - this.updateTime(); - - console.group('Time information'); - console.info('\nOptions:', this.options, '\n\n'); - console.info('Interval:', this.interval); - console.groupEnd(); - } - - formatTime(time) { - return time.toLocaleTimeString(this.locale, this.options); - } - - // TODO: Zeit nur im Sekundentakt aktualisieren wenn Sekunden angezeigt werden - async updateTime() { - while (true) { - if (!this.isPaused) { - const now = new Date(); - this.element.textContent = this.formatTime(now); - } - await new Promise(resolve => setTimeout(resolve, this.interval)); - } - } - - pause() { - this.isPaused = true; - } - - resume() { - this.isPaused = false; - } -} - -class DateDisplay { - constructor(element, options, direction) { - this.element = element; - this.options = options || {year: 'numeric', month: 'long', day: 'numeric'}; - this.direction = direction || 0; - - this.updateDate(); - this.checkForDateChange(); - - console.group('Date information'); - console.info('\nOptions:', this.options, '\n\n'); - console.info('Remaining minutes:', Math.floor(this.getTimeUntilNextMidnight() / 3600)); - console.groupEnd(); - } - - formatDate(date) { - const formatter = new Intl.DateTimeFormat(navigator.language, this.options); - - switch (this.direction) { - case 1: - const dateString = formatter - .formatToParts(date) - .map(({type, value}) => { - // if (type === 'day' || type === 'month') { - if (type === 'literal') { - return `${value}
`; - } else { - return value; - } - }) - .join(''); - - return dateString; - case 0: - default: - return formatter.format(date); - } - } - - updateDate() { - const now = new Date(); - - this.element.innerHTML = this.formatDate(now); - } - - changeFormat(format, direction) { - this.options = format; - this.direction = direction; - - this.updateDate(); - } - - getTimeUntilNextMidnight() { - const now = new Date(); - const nextMidnight = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1); - - return nextMidnight - now; - } - - checkForDateChange() { - const timeUntilNextMidnight = this.getTimeUntilNextMidnight(); - - setTimeout(() => { - this.updateDate(); - this.checkForDateChange(); - }, timeUntilNextMidnight); - } -} - -// TODO: Kompatibilität für Zeiger -function checkButtonAndTarget(event, element, button = 0) { - return ( - event.button === button && - event.target === element - ); -} - -function getClosestEdgeToElement(element) { - 'use strict'; - - const bounding = element.getBoundingClientRect(); - const distances = { - top: bounding.top, - right: window.innerWidth - bounding.right, - bottom: window.innerHeight - bounding.bottom, - left: bounding.left - }; - - return Object.keys(distances).reduce((a, b) => distances[a] < distances[b] ? a : b); -} - -function getClosestEdgeToMouse(event) { - 'use strict'; - - const mouseX = event.clientX; - const mouseY = event.clientY; - const distances = { - left: mouseX, - right: window.innerWidth - mouseX, - top: mouseY, - bottom: window.innerHeight - mouseY - }; - - return Object.keys(distances).reduce((a, b) => - distances[a] < distances[b] ? a : b - ); -} - -function centerElementUnderCursor(event, element) { - 'use strict'; - - const offsetX = element.getBoundingClientRect().width / 2; - const offsetY = element.getBoundingClientRect().height / 2; - const x = event.clientX - offsetX; - const y = event.clientY - offsetY; - - element.style.left = `${x}px`; - element.style.top = `${y}px`; -} - -/** - * Gibt eine Zahl zwischen und aus. - * Die Werte und sind dabei mit eingeschlossen. - * Mit kann der Exponent für eine 10er-Teilung angegeben werden. - * - * @param {number} min - * @param {number} max - * @param {number} pos - * @returns {number} - */ -function randomIntFrom(min, max, pos = 0) { - pos = Math.pow(10, pos); - min = Math.ceil(min); - max = Math.floor(max); - - return Math.floor((Math.random() * (max - min + 1) + min) / pos) * pos; -} - -function randomFloatFrom(min, max, dec = 1) { - dec = Math.pow(10, dec); - - return Math.round((Math.random() * (max - min) + min) * dec) / dec; -} - -/** - * Ersetzt \n durch
. - * - * @param {string} text - * @returns {string} - */ -function replaceLineBreaks(text) { - if (text === '' || !text.includes('\n')) { - return text; - } - - return text.split('\n').join('
'); -} - -/** - * Gibt eine zufällige Farbe als HEX-Wert aus. - * - * @returns {string} - */ -function getRandomColor() { - const letters = '0123456789ABCDEF'; - let color = '#'; - - for (let i = 0; i < 6; i++) { - color += letters[Math.floor(Math.random() * 16)]; - } - - return color; -} - -function getRandomFormattedString(chars = 2, digits = 6, separator = '-') { - const getRandomUppercase = () => String.fromCharCode(Math.floor(Math.random() * 26) + 65); - const getRandomDigit = () => Math.floor(Math.random() * 10); - let string = ''; - - for (let i = 0; i < chars; i++) { - string += getRandomUppercase(); - } - - string += separator; - - for (let i = 0; i < digits; i++) { - string += getRandomDigit(); - } - - return string; -} - -function toggleColumn(table, index) { - const rows = table.rows; - const isHidden = rows[0].cells[index].classList.contains('di_none'); - - for (let i = 0; i < rows.length; i++) { - const cell = rows[i].cells[index]; - - if (isHidden) { - cell.classList.remove('di_none'); - } else { - cell.classList.add('di_none'); - } - } -} - -function convertToRomanNumeral(num) { - const romanNumeralMap = [ - {value: 1000, numeral: 'M'}, - {value: 900, numeral: 'CM'}, - {value: 500, numeral: 'D'}, - {value: 400, numeral: 'CD'}, - {value: 100, numeral: 'C'}, - {value: 90, numeral: 'XC'}, - {value: 50, numeral: 'L'}, - {value: 40, numeral: 'XL'}, - {value: 10, numeral: 'X'}, - {value: 9, numeral: 'IX'}, - {value: 5, numeral: 'V'}, - {value: 4, numeral: 'IV'}, - {value: 1, numeral: 'I'} - ]; - - let result = ''; - for (let i = 0; i < romanNumeralMap.length; i++) { - while (num >= romanNumeralMap[i].value) { - result += romanNumeralMap[i].numeral; - num -= romanNumeralMap[i].value; - } - } - return result; -} - -function capitalizeFirstLetter(text) { - return text.charAt(0).toUpperCase() + text.slice(1); -} - -function mapRange(value, inMin, inMax, outMin, outMax, reverse = false, clamp = false) { - let min = outMin; - let max = outMax; - - if (reverse) { - [min, max] = [max, min]; - } - - const mapped = (value - inMin) * (max - min) / (inMax - inMin) + min; - - if (clamp) { - return Math.max(Math.min(min, max), Math.min(Math.max(min, max), mapped)); - } - return mapped; -} - -function zeroFill(number, width) { - width -= number.toString().length; - - if (width > 0) { - return new Array(width + (/\./.test(number) ? 2 : 1)).join('0') + number; - } - return number + ''; // always return a string -} - -// Source - https://stackoverflow.com/a/47480429 -// Posted by Etienne Martin, modified by community. See post 'Timeline' for change history -// Retrieved 2026-03-08, License - CC BY-SA 4.0 -const delay = ms => new Promise(res => setTimeout(res, ms)); - -async function readJsonFile(file) { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - - reader.readAsText(file); - reader.onload = function () { - try { - resolve(JSON.parse(reader.result)); - } catch (error) { - reject(error); - } - }; - reader.onerror = function () { - reject(reader.error); - }; - }); -} - -async function loadJson(filePath) { - try { - const response = await fetch(filePath); - - if (!response.ok) throw new Error(`Failed to load file: ${response.status}`); - - return await response.json(); - } catch (error) { - console.error('Error loading file:', error); - throw error; - } -} - -class RandomPixelPlaceholder { - constructor(parent, options = {}) { - this.container = parent; - this.width = options.width || 400; - this.height = options.height || 300; - this.colors = options.colors || ['#000000', '#ffffff']; - this.filter = options.filter || ''; - this.type = options.type || 'canvas'; // 'canvas' or 'img' - this.element = this.createElement(); - - this.addContextToElement(); - } - - createElement() { - if (this.type === 'img') { - const img = document.createElement('img'); - img.style.filter = this.filter; - - this.container.appendChild(img); - - return img; - } else { - const canvas = document.createElement('canvas'); - canvas.width = this.width; - canvas.height = this.height; - canvas.style.filter = this.filter; - - this.container.appendChild(canvas); - - return canvas; - } - } - - addContextToElement() { - if (this.type === 'img') { - // Create intermediate canvas - const canvas = document.createElement('canvas'); - canvas.width = this.width; - canvas.height = this.height; - - this.fillWithRandomPixels(canvas); - - // Convert canvas to image data URL and set as img src - this.element.src = canvas.toDataURL(); - this.element.width = this.width; - this.element.height = this.height; - } else { - this.fillWithRandomPixels(this.element); - } - } - - fillWithRandomPixels(canvas) { - const ctx = canvas.getContext('2d'); - const imageData = ctx.createImageData(this.width, this.height); - const data = imageData.data; - - for (let i = 0; i < data.length; i += 4) { - const color = this.getRandomColor(); - const rgb = this.hexToRgb(color); - - data[i] = rgb.r; // Red - data[i + 1] = rgb.g; // Green - data[i + 2] = rgb.b; // Blue - data[i + 3] = 255; // Alpha - } - - ctx.putImageData(imageData, 0, 0); - } - - getRandomColor() { - return this.colors[Math.floor(Math.random() * this.colors.length)]; - } - - hexToRgb(hex) { - const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); - - return result ? { - r: parseInt(result[1], 16), - g: parseInt(result[2], 16), - b: parseInt(result[3], 16) - } : {r: 0, g: 0, b: 0}; - } -} - -function sample(array) { - return array[Math.floor(Math.random() * array.length)]; -} - -// CONCEPTS - -// NOTE: Benutzt private Zuweisungen -class elementBinder { - #element; - - constructor(element) { - this.#setElement(element); - } - - #setElement(value) { - if (!value) { - throw new Error('No element found'); - } - this.#element = value; - this.#element.style.background = "hotpink"; - } - - get element() { - return this.#element; - } - - set element(value) { - this.#setElement(value); - } -} - -//OLD - -function Clock(id) { - 'use strict'; - - this.id = id; - const that = this; - - setInterval(function () { - that.updateClock(); - }, 1000); - this.updateClock(); -} - -Clock.prototype.updateClock = function () { - 'use strict'; - - const date = new Date(); - const clock = document.getElementById(this.id); - //console.log(this); - clock.innerHTML = this.formatDigits(date.getHours()) + ':' + this.formatDigits(date.getMinutes()) + ":" + this.formatDigits(date.getSeconds()); -}; - -Clock.prototype.formatDigits = function (val) { - 'use strict'; - - if (val < 10) val = '0' + val; - - return val; -}; - -//Länge der Balken im Diagram berechnen -function barwidth(size, G, W) { - var s = size; - var g = G; - var w = W; - var p = (w / g) * 100; - var newW = s * (p / 100); - - return newW; -} - -//String Element erweitern -String.prototype.transform = function () { - return parseFloat(this.replace(',', '.')); -} -//Array Element erweitern -Array.prototype.arrayAdd = function () { - return eval(this.join('+')); -} - -//Speicherplatz in Prozent berechnen -function percentage(total, gigs, round) { - var totalSpace = total; - var singleSpace = gigs; - var z = round; - var p = singleSpace / (totalSpace / 100); - - return p; -} - -//Speicherplatz in GB berechnen -function gigabytes(percent, total, round) { - var occupiedPercent = percent; - var singleSpace = total; - var z = round; - var g = (singleSpace / 100) * occupiedPercent; - - return g; -} diff --git a/source/code/hippie/config.js b/source/code/hippie/config.js new file mode 100644 index 0000000..379a767 --- /dev/null +++ b/source/code/hippie/config.js @@ -0,0 +1,22 @@ +var hippie = { + brand: "|-| | |^ |^ | [- ", + screen: { + w: Math.max(document.documentElement.offsetWidth, document.documentElement.clientWidth, window.innerWidth, 0), + vh: Math.max(document.documentElement.clientHeight, window.innerHeight, 0), + dh: Math.max(document.documentElement.offsetHeight, document.documentElement.clientHeight, 0), + y: Math.min($(document).scrollTop(), document.documentElement.scrollTop) + // hippie.screen.y: document.documentElement.scrollTop + }, + body: { + w: Math.max(document.body.offsetWidth, document.body.clientWidth, window.innerWidth, 0), + h: Math.max(document.body.offsetHeight, document.body.clientHeight, 0), + } +}; + +var viewHover = true; +var basicEase = 600; + +var onerowAlphabet = "/\\ ]3 ( |) [- /= (_, |-| | _T /< |_ |\\/| |\\| () |^ ()_ /? _\\~ ~|~ |_| \\/ \\/\\/ >< `/ ~/_ "; +var onerowDigits = "\'| ^/_ -} +| ;~ (o \"/ {} \"| (\\) "; + +export { hippie }; \ No newline at end of file diff --git a/source/code/hippie/functions.js b/source/code/hippie/functions.js new file mode 100644 index 0000000..2e80761 --- /dev/null +++ b/source/code/hippie/functions.js @@ -0,0 +1,178 @@ +// This is called everytime +function setup() { + 'use strict'; + + console.group('Document information'); + console.info('\n', hippie.brand, '\n\n'); + console.info('HTML:', hippie.screen, '\nBODY:', hippie.body); + console.groupEnd(); + if (debugOn) { + console.group('Debug information'); + console.dir(hippie); + console.groupEnd(); + } + + // WANNABE MODULE Mouse over effect + // With CSS only + if ($('#js_mob').length && viewHover) { + $('#js_mob').addClass('mouse_over'); + } + // if (viewHover) { + // $('body').prepend('
'); + // } + // With JS +} + +// MODULE Scroll navigation +// Using constructor function +function HippieScroll($tp, $dn) { + 'use strict'; + + // this.$tp = $tp; + // Define initial situation + let initLeft = false; + const initY = hippie.screen.vh; + + $tp.addClass('hide'); + + // Check scroll position and toggle element + this.check = function () { + hippie.screen.y = Math.min($(document).scrollTop(), document.documentElement.scrollTop); + if (hippie.screen.y > initY) { + if (!initLeft) { + $tp.removeClass('hide'); + console.info('Initial viewport left'); + } + initLeft = true; + } else { + if (initLeft) { + $tp.addClass('hide'); + console.info('Initial viewport entered'); + } + initLeft = false; + } + }; + + // Add events to navigation elements + $tp.click(function (event) { + event.preventDefault(); + $('html, body').stop().animate({ + scrollTop: 0 + }, basicEase); + // console.log('Scrolled to top'); + }); + $dn.click(function (event) { + event.preventDefault(); + var pos = Math.max(hippie.screen.dh, hippie.body.h) - hippie.screen.vh; + $('html').scrollTop(pos); + // document.documentElement.scrollTop = pos; + console.info('Scrolled down to', pos); + }); +} + +// MODULE Meta elements +function HippieMeta($ma, $pp) { + 'use strict'; + + let metaOn = false; + + $ma.click(function () { + var $wrap, $pop; + + // if (metaOn !== true) { + if (!metaOn) { + metaOn = true; + + $pp.each(function () { + // if ($(this).css('position') === 'static') { + // $(this).addClass('js_changed_pos'); + // $(this).css('position', 'relative'); + // } + // $pop = $(this).next('.exp_pop').detach(); + // $wrap = $(this).wrap('').parent().prepend('').prepend(''); + // $wrap.after($pop); + + $('
').addClass('exp_overlay').css({ + position: 'absolute', + width: '100%', + height: '100%', + top: 0, + left: 0 + }).appendTo($(this).addClass('exp_wrap')); + + // Displays explanation popup following the mouse + $(this).on({ + mouseenter: function () { + // if ($(this).attr('emmet')) { + // + // } + $(this).next('.exp_pop').show(); + }, + mouseleave: function () { + $(this).next('.exp_pop').hide(); + }, + mousemove: function (event) { + $(this).next('.exp_pop').css({ + 'top': event.pageY - $(this).next('.exp_pop').outerHeight() - 4, + 'left': event.pageX + 8 + // 'left': event.pageX - $(this).offset().left + 8 + }); + } + }); + }); + + } else { + $pp.each(function () { + $(this).off('mouseenter mouseleave mousemove'); + + $(this).removeClass('exp_wrap').find('.exp_overlay').remove(); + // $wrap = $(this).parent('.exp_wrap'); + // $pop = $wrap.next('.exp_pop').detach(); + // $wrap.find('.exp_marker_pop').remove(); + // $(this).unwrap('.exp_wrap'); + // $(this).after($pop); + // if ($(this).hasClass('js_changed_pos')) { + // $(this).css('position', ''); + // if ($(this).attr('style') === '') { + // $(this).removeAttr('style'); + // } + // $(this).removeClass('js_changed_pos'); + // } + }); + + metaOn = false; + } + console.log('Explanation mode', metaOn); + }); +} + +// get document coordinates of the element +// function getCoords (elem) { +// let box = elem.getBoundingClientRect(); +// +// return { +// top: box.top + pageYOffset, +// left: box.left + pageXOffset +// }; +// } + +// https://stackoverflow.com/a/488073/1444149 +// function Utils () {} +// +// Utils.prototype = { +// constructor: Utils, +// isElementInView: function (element, fullyInView) { +// var pageTop = $(window).scrollTop(); +// var pageBottom = pageTop + $(window).height(); +// var elementTop = $(element).offset().top; +// var elementBottom = elementTop + $(element).height(); +// +// if (fullyInView === true) { +// return ((pageTop < elementTop) && (pageBottom > elementBottom)); +// } else { +// return ((elementTop <= pageBottom) && (elementBottom >= pageTop)); +// } +// } +// }; +// +// var Utils = new Utils(); diff --git a/source/code/hippie/global.js b/source/code/hippie/global.js new file mode 100644 index 0000000..ef61ad7 --- /dev/null +++ b/source/code/hippie/global.js @@ -0,0 +1,3 @@ +// Setup +// ----------------------------------------------------------------------------- +// setup(); diff --git a/source/code/hippie/globals.js b/source/code/hippie/globals.js deleted file mode 100644 index 638c7ba..0000000 --- a/source/code/hippie/globals.js +++ /dev/null @@ -1,27 +0,0 @@ -let hippie = { - screen: { - w: Math.max(document.documentElement.offsetWidth, document.documentElement.clientWidth, window.innerWidth, 0), - vh: Math.max(document.documentElement.clientHeight, window.innerHeight, 0), - dh: Math.max(document.documentElement.offsetHeight, document.documentElement.clientHeight, 0), - y: document.documentElement.scrollTop - // hippie.screen.y: document.documentElement.scrollTop - }, - body: { - w: Math.max(document.body.offsetWidth, document.body.clientWidth, window.innerWidth, 0), - h: Math.max(document.body.offsetHeight, document.body.clientHeight, 0), - } -}; -let viewHover = true; -let basicEase = 600; - -const flagColors = [ - 'fad803', - 'f2af13', - 'd30a51', - '8e1f68', - '273f8b', - '3c579a', - 'b7e0f0', - '6bc7d9', - '52bed1' -]; \ No newline at end of file diff --git a/source/code/hippie/main.js b/source/code/hippie/main.js new file mode 100644 index 0000000..6de9686 --- /dev/null +++ b/source/code/hippie/main.js @@ -0,0 +1,29 @@ +// Setup +// ----------------------------------------------------------------------------- +import { hippie } from './config.js'; + +// This is called everytime +function setup() { + 'use strict'; + + console.group('Document information'); + console.info('\n', config.brand, '\n\n'); + console.info('\n', hippie.brand, '\n\n'); + console.info('HTML:', hippie.screen, '\nBODY:', hippie.body); + console.groupEnd(); + if (debugOn) { + console.group('Debug information'); + console.dir(hippie); + console.groupEnd(); + } + + // WANNABE MODULE Mouse over effect + // With CSS only + if ($('#js_mob').length && viewHover) { + $('#js_mob').addClass('mouse_over'); + } + // if (viewHover) { + // $('body').prepend('
'); + // } + // With JS +} diff --git a/source/code/hippie/variables.js b/source/code/hippie/variables.js new file mode 100644 index 0000000..bf6f4bc --- /dev/null +++ b/source/code/hippie/variables.js @@ -0,0 +1,20 @@ +var hippie = { + brand: "|-| | |^ |^ | [- ", + screen: { + w: Math.max(document.documentElement.offsetWidth, document.documentElement.clientWidth, window.innerWidth, 0), + vh: Math.max(document.documentElement.clientHeight, window.innerHeight, 0), + dh: Math.max(document.documentElement.offsetHeight, document.documentElement.clientHeight, 0), + y: Math.min($(document).scrollTop(), document.documentElement.scrollTop) + // hippie.screen.y: document.documentElement.scrollTop + }, + body: { + w: Math.max(document.body.offsetWidth, document.body.clientWidth, window.innerWidth, 0), + h: Math.max(document.body.offsetHeight, document.body.clientHeight, 0), + } +}; + +var viewHover = true; +var basicEase = 600; + +var onerowAlphabet = "/\\ ]3 ( |) [- /= (_, |-| | _T /< |_ |\\/| |\\| () |^ ()_ /? _\\~ ~|~ |_| \\/ \\/\\/ >< `/ ~/_ "; +var onerowDigits = "\'| ^/_ -} +| ;~ (o \"/ {} \"| (\\) "; diff --git a/source/code/intro.js b/source/code/intro.js deleted file mode 100644 index 68dcda0..0000000 --- a/source/code/intro.js +++ /dev/null @@ -1,318 +0,0 @@ -class Intro { - constructor(name) { - this.name = name; - } - - init() { - return new Promise((resolve) => { - console.log('%s Init', this.name); - - resolve(); - }); - } -} - -class UI { - constructor() { - this.introDelay = 6; - this.hintDelay = 1; - this.isAgree = false; - this.steps = { - agreement: { - element: document.getElementById('agreement'), - msgIn: 'Agreement shown.', - msgOut: 'Agreement accepted.', - msgNo: 'No agreement today.' - } - }; - this.intro = document.getElementById('init'); - this.agreement = this.steps.agreement.element; - this.hint = { - element: document.getElementById('hint'), - delay: this.hintDelay * 1000 - }; - this.loader = document.getElementById('loader'); - } - - showIntro() { - const el = this.intro; - const dy = this.introDelay * 1000; - - document.addEventListener('click', hintHandler, false); - document.addEventListener('keydown', hintHandler, false); - - return new Promise((resolve, reject) => { - if (el) { - console.info("Intro begin."); - - el.classList.replace('op_hide', 'op_show'); - setTimeout( - () => { - el.classList.replace('op_show', 'op_hide'); - el.addEventListener('transitionend', () => { - console.info("Intro fin."); - - el.classList.add('di_none'); - resolve("Intro fin."); - }); - }, - dy - ); - } else { - reject('No intro available.'); - } - }); - } - - showHint() { - if (typeof this.hint.timeoutId === 'number') { - this.cancelHint(); - } - - this.hint.element.classList.remove('di_none'); - - this.hint.timeoutId = setTimeout( - () => { - this.dismissHint(); - }, - this.hint.delay - ); - } - - dismissHint() { - this.hint.element.classList.add('di_none'); - this.hint.timeoutId = undefined; - } - - cancelHint() { - clearTimeout(this.hint.timeoutId); - } - - showIdle() { - const el = document.getElementById('idle'); - - return new Promise((resolve, reject) => { - if (el) { - console.info('Idle.'); - - el.classList.replace('op_hide', 'op_show'); - resolve('Idle.'); - } else { - reject(); - } - }); - } - - init() { - return new Promise((resolve) => { - console.log('Init'); - - resolve(); - }); - } -} - -function init() { - return new Promise((resolve) => { - console.log('Init'); - - // Set all steps to not receive pointer events - document.querySelectorAll('.step').forEach(element => { - console.log(element); - - element.style.pointerEvents = 'none'; - }); - - resolve(); - }); -} - -function showIntro() { - const el = intro; - const dy = introDelay * 1000; - - document.addEventListener('click', hintHandler, false); - document.addEventListener('keydown', hintHandler, false); - - return new Promise((resolve, reject) => { - if (el) { - console.info("Intro begin."); - - el.classList.replace('op_hide', 'op_show'); - setTimeout( - () => { - el.classList.replace('op_show', 'op_hide'); - el.addEventListener('transitionend', () => { - console.info("Intro fin."); - - el.classList.add('di_none'); - - resolve("Intro fin."); - }); - }, - dy - ); - } else { - document.removeEventListener('click', hintHandler); - document.removeEventListener('keydown', hintHandler); - - reject('No intro available.'); - } - }); -} - -function showAgreement() { - document.removeEventListener('click', hintHandler); - document.removeEventListener('keydown', hintHandler); - const el = agreement; - const dy = introDelay * 1000; - - return new Promise((resolve, reject) => { - if (el) { - console.info(steps.agreement.msgIn); - - el.classList.replace('op_hide', 'op_show'); - el.style.pointerEvents = ''; - - el.addEventListener('click', agreeHandler); - document.addEventListener('keydown', agreeHandler); - } else { - reject(steps.agreement.msgNo); - } - - function agreeHandler() { - const el = agreement; - - isAgree = true; - - el.classList.replace('op_show', 'op_hide'); - el.addEventListener('transitionend', function endListener() { - console.info(steps.agreement.msgOut); - - el.removeEventListener('transitionend', endListener); - el.removeEventListener('click', agreeHandler); - document.removeEventListener('keydown', agreeHandler); - el.classList.add('di_none'); - - resolve(steps.agreement.msgOut); - }); - } - }); -} - -function showIdle() { - const el = document.getElementById('idle'); - - document.addEventListener('mouseleave', idleStart, false); - document.addEventListener('mouseenter', idleStop, false); - - return new Promise((resolve, reject) => { - if (el) { - console.info('Idle.'); - - el.classList.replace('op_hide', 'op_show'); - el.style.pointerEvents = ''; - el.addEventListener('contextmenu', (event) => { - event.preventDefault(); - }); - el.addEventListener('click', (event) => { - if (checkButtonAndTarget(event, event.target)) { - console.log('OK go', event.target); - resolve('Idle fin.'); - } else { - event.preventDefault(); - } - }, false); - } else { - document.removeEventListener('mouseleave', idleStart); - document.removeEventListener('mouseenter', idleStop); - - reject(); - } - }); -} - -function loadCore() { - const el = loader; - const bar = loader.querySelector('#progress'); - const status = loader.querySelector('#status'); - const spinner = loader.querySelector('#spinner'); - const sp = spinner.querySelector('span'); - - let progress = 0; - - return new Promise((resolve) => { - console.info("Core loading."); - - updateProgressBar(); - - function updateProgressBar() { - const maxChunk = 33; - const time = 400; - let increment = randomIntFrom(1, maxChunk); - - progress += increment; - - if (progress >= 100) progress = 100; - // console.log(progress); - - bar.style.width = progress + '%'; - status.textContent = progress + '%'; - - if (progress < 100) { - setTimeout(updateProgressBar, time); - } else { - bar.style.width = '100%'; - sp.style.animationPlayState = 'paused'; - spinner.style.color = 'white'; - spinner.style.backgroundColor = 'black'; - el.classList.replace('op_show', 'op_hide'); - el.addEventListener('transitionend', function endListener() { - console.info("Core loaded."); - - el.removeEventListener('transitionend', endListener); - el.classList.add('di_none'); - - resolve("Core loaded."); - }); - } - } - }); -} - -/** - * Erstellt Kontext für hint-Objekt und ermöglicht das Entfernen des Ereignis. - */ -function hintHandler() { - hint.show(); -} - -function idleStart() { - idle.cycle(); -} - -function idleStop() { - idle.cancel(); -} - -/** - * Blendet einen Schritt aus. - * - * @param {*} e - * @returns - */ -function stepHandler(e) { - const el = e.target; - const msg = steps[el.id].msgOut; - - return new Promise(function (resolve) { - el.classList.replace('op_show', 'op_hide'); - el.addEventListener('transitionend', function endListener() { - console.info(msg); - - el.removeEventListener('transitionend', endListener); - - resolve(msg); - }); - }); -} \ No newline at end of file diff --git a/source/code/windows.js b/source/code/windows.js deleted file mode 100644 index ca85af2..0000000 --- a/source/code/windows.js +++ /dev/null @@ -1,224 +0,0 @@ -class HippieTaskBar { - constructor(element, placeholder, options) { - this.element = element; - this.placeholder = placeholder; - this.date = null; - this.time = null; - this.isDragging = false; - this.barSize = ''; - // TODO: Ergänzen und nicht ersetzen - this.options = options || { - direction: 0, - position: 'bottom', - date: { - year: 'numeric', - month: '2-digit', - day: '2-digit' - }, - time: {hour: '2-digit', minute: '2-digit'} - }; - - this.init(); - } - - // TODO: Ereignisse besser delegieren - init() { - this.element.addEventListener('pointerdown', this.onDown.bind(this)); - document.addEventListener('pointermove', this.onMove.bind(this)); - document.addEventListener('pointerup', this.onUp.bind(this)); - - const clock = this.element.querySelector('.clock'); - const dateElement = document.createElement('span'); - const timeElement = document.createElement('span'); - const br = document.createElement('br'); - - dateElement.id = 'date'; - timeElement.id = 'time'; - this.date = new DateDisplay(dateElement, this.options.date); - this.time = new TimeDisplay(timeElement, this.options.time); - - // TODO: Reihenfolge anpassbar machen - clock.appendChild(timeElement); - clock.appendChild(br); - clock.appendChild(dateElement); - - this.setOptions(this.options.position); - } - - onDown(event) { - if (checkButtonAndTarget(event, this.element, 0)) { - console.debug('Drag mode enabled'); - - this.isDragging = true; - - this.showPlaceholder(); - - centerElementUnderCursor(event, this.placeholder); - } - - event.preventDefault(); - } - - onMove(event) { - if (this.isDragging) { - this.options.position = getClosestEdgeToMouse(event); - const borderRadius = '4px'; - const attributes = { - top: { - className: 'top', - styles: { - flexDirection: 'row', - borderStyle: '', - borderColor: '', - borderTopStyle: 'solid', - borderTopColor: 'white', - borderTopRightRadius: '', - borderBottomRightRadius: borderRadius, - borderBottomLeftRadius: borderRadius, - borderTopLeftRadius: '' - } - }, - right: { - className: 'right', - styles: { - flexDirection: 'column', - borderStyle: '', - borderColor: '', - borderRightStyle: 'solid', - borderRightColor: 'white', - borderTopRightRadius: '', - borderBottomRightRadius: '', - borderBottomLeftRadius: borderRadius, - borderTopLeftRadius: borderRadius - } - }, - bottom: { - className: 'bottom', - styles: { - flexDirection: 'row', - borderStyle: '', - borderColor: '', - borderBottomStyle: 'solid', - borderBottomColor: 'white', - borderTopRightRadius: borderRadius, - borderBottomRightRadius: '', - borderBottomLeftRadius: '', - borderTopLeftRadius: borderRadius - } - }, - left: { - className: 'left', - styles: { - flexDirection: 'column', - borderStyle: '', - borderColor: '', - borderLeftStyle: 'solid', - borderLeftColor: 'white', - borderTopRightRadius: borderRadius, - borderBottomRightRadius: borderRadius, - borderBottomLeftRadius: '', - borderTopLeftRadius: '' - } - } - }; - - this.setAttributesAccordingToPosition(this.placeholder, this.options.position, attributes); - centerElementUnderCursor(event, this.placeholder); - } - } - - onUp() { - if (event.target === this.placeholder) { - console.debug('Drag mode disabled'); - - this.isDragging = false; - - this.snapToEdges(); - this.hidePlaceholder(); - } - } - - showPlaceholder() { - this.element.style.display = 'none'; - this.placeholder.style.display = 'flex'; - } - - hidePlaceholder() { - this.placeholder.style.display = 'none'; - this.element.style.display = ''; - } - - snapToEdges() { - this.setOptions(this.options.position); - this.date.changeFormat(this.options.date, this.options.direction); - } - - setAttributesAccordingToPosition(element, position, attributes) { - element.classList.remove(...Object.values(attributes).map(pos => pos.className)); - Object.keys(attributes[position].styles).forEach(key => { - element.style[key] = ''; - }); - - element.classList.add(attributes[position].className); - Object.entries(attributes[position].styles).forEach(([key, value]) => { - element.style[key] = value; - }); - } - - setOptions(position) { - const attributes = { - top: { - className: 'top', - styles: { - top: '0', right: '0', bottom: '', left: '0', - width: '', height: this.barSize, - flexDirection: 'row' - } - }, - right: { - className: 'right', - styles: { - top: '0', right: '0', bottom: '0', left: '', - width: this.barSize, height: '', - flexDirection: 'column' - } - }, - bottom: { - className: 'bottom', - styles: { - top: '', right: '0', bottom: '0', left: '0', - width: '', height: this.barSize, - flexDirection: 'row' - } - }, - left: { - className: 'left', - styles: { - top: '0', - right: '', - bottom: '0', - left: '0', - width: this.barSize, - height: '', - flexDirection: 'column' - } - } - }; - - this.setAttributesAccordingToPosition(this.element, position, attributes); - - switch (position) { - case 'right': - case 'left': - this.options.date = {year: '2-digit', month: '2-digit', day: '2-digit'}; - this.options.direction = 1; - break; - case 'top': - case 'bottom': - default: - this.options.date = {year: 'numeric', month: '2-digit', day: '2-digit'}; - this.options.direction = 0; - break; - } - } -} diff --git a/source/data/demo.json b/source/data/demo.json new file mode 100644 index 0000000..3ce74bb --- /dev/null +++ b/source/data/demo.json @@ -0,0 +1,22 @@ +{ + "demo": [ + { + "demo1": "1", + "demo2": "2" + }, + { + "demo1": "1", + "demo2": "2" + }, + { + "demo1": "1", + "demo2": "2" + } + ], + "test": [ + { + "test1": "3", + "test2": "4" + } + ] +} diff --git a/source/data/windows.json b/source/data/windows.json deleted file mode 100644 index 565adaa..0000000 --- a/source/data/windows.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "taskbar": { - "position": "top", - "color": "white", - "hover": { - "active": true, - "color": "#52bed1" - } - }, - "window": { - "name": "Custom" - } -} \ No newline at end of file diff --git a/source/screens/demo.njk b/source/screens/demo.njk new file mode 100644 index 0000000..31143f1 --- /dev/null +++ b/source/screens/demo.njk @@ -0,0 +1,80 @@ + +{% set pageBase = hippie.pageBase %} +{% set pageId = "index" %} +{% set pageClass = "h_full_view" %} + +{% extends "demo/_default.njk" %} + +{% block title %}Index{% endblock %} +{% block head %} + {{ super() }} +{% endblock %} + +{% block body %} +
+
+

This is + {{ hippie.brand | upper }}

+

You can start using it by replacing this file with your own index page.

+

To do this you need to create a file + /index.njk + inside the + source/screens + folder. You can also create a + data.json + file inside the + source/templates + folder as a data source for your nunjucks files.

+

For a very basic start you can make a copy of the demo page + blank.njk. You can find it at + /source/screens/demo.

+

The + source/demo + folder contains an overview of all HTML elements and also examples for CSS style combinations and even whole page layouts.
Follow the white rabbit.

+
+
  ()()
(..)
c(")(")
+

Overview

+
+ +

Demo Pages

+ +
+
+{% endblock %} + +{% block script %} + {{ super() }} + {# #} + + + + + + +{% endblock %} \ No newline at end of file diff --git a/source/screens/demo/blank.njk b/source/screens/demo/blank.njk new file mode 100644 index 0000000..b68613e --- /dev/null +++ b/source/screens/demo/blank.njk @@ -0,0 +1,16 @@ + +{% set pageBase = "../" %} +{% set pageId = "blank" %} +{% set pageClass = "h_full_view" %} + +{% extends "demo/_default.njk" %} + +{% block title %}Blank{% endblock %} + +{% block head %} +{{ super() }} +{% endblock %} + +{% block body %} + +{% endblock %} diff --git a/source/screens/demo/card.njk b/source/screens/demo/card.njk new file mode 100644 index 0000000..28ca934 --- /dev/null +++ b/source/screens/demo/card.njk @@ -0,0 +1,109 @@ + +{% set pageBase = "../" %} +{% set pageId = "card" %} +{% set pageClass = "html_card" %} + +{% extends "demo/_default.njk" %} + +{% block title %}Karte{% endblock %} + +{% block head %} + {{ super() }} +{% endblock %} + +{% block body %} +
+
+ + {# + + + + + + + + + + + #} + + + + + + + + + + + {# Background flag dithered #} +
+
+
+

Titel
and description

+

Prename Surname

+

+ name@domain.tld
+ site.tld + · + Street No., Postcode City

+
+
+{% endblock %} + +{% block script %} + {{ super() }} + {# #} + + + + + + +{% endblock %} \ No newline at end of file diff --git a/source/screens/demo/elements.njk b/source/screens/demo/elements.njk new file mode 100644 index 0000000..e94105f --- /dev/null +++ b/source/screens/demo/elements.njk @@ -0,0 +1,81 @@ + +{% set pageBase = "../" %} +{% set pageId = "elements" %} + +{% extends "demo/_extended.njk" %} + +{% block title %}Elements{% endblock %} +{% block head %} + {{ super() }} +{% endblock %} + +{% block main %} +
+ + {% include "hippie/partials/_body_nav.njk" %} +
+
+
+
+

Medienformat Abfragen

+
+
+
Umbruch bei 
+
+

Telefone und größer

+

Nur Telefone

+

Nur Schreibtafeln hochkant

+

Schreibtafeln und größer

+

Schreibtafeln im Querformat

+

Schreibtafeln quer und größer

+

Nur Arbeitsplatzrechner

+

Arbeitsplatzrechner und größer

+

Richtige Monitore und größer

+
+
+
+ +
+
+

Übersicht aller Elemente

+

Es werden alle grundlegenden Elemente sowie ihre gestalteten Varianten angegeben. Die Elemente sind in Gruppen eingeteilt, die auch das W3Consortium (www.w3.org/TR/2017/REC-html52-20171214/index.html#contents) verwendet.

+

Zu jedem Element werden alle Attribute aufgelistet und die Umsetzung im HTML Dokument als Emmet Syntax dargestellt.

+
+
+

Bereiche

+

Elemente:

+
// body
// article
// section
// nav
// aside
// h1-h6
// header
// footer
+

<body>

+

Keine speziellen Attribute. Bekommt überlicherweise allgemeine Klassen zur Steuerung der Abmessungen zugewiesen.

+

<article>

+

Keine speziellen Attribute. Bekommt überlicherweise allgemeine Klassen zur Steuerung der Abmessungen zugewiesen.

+

<section>

+

Keine speziellen Attribute. Bekommt überlicherweise allgemeine Klassen zur Steuerung der Abmessungen zugewiesen.

+

Varianten

+
section.sec_main_center
+
section.sec_main_status
+

<h3>

+

<h4>

+
+
+
+{% endblock %} + +{% block script %} + {{ super() }} + + {# #} + + + + + + +{% endblock %} \ No newline at end of file diff --git a/source/screens/demo/error/304.njk b/source/screens/demo/error/304.njk new file mode 100644 index 0000000..9b504b6 --- /dev/null +++ b/source/screens/demo/error/304.njk @@ -0,0 +1,24 @@ + +{% set pageBase = "../../" %} +{% set pageId = "304" %} +{% set bodyClass = "body_status" %} + +{% extends "demo/_maintenance.njk" %} + +{% block title %}{{ pageId }}{% endblock %} +{% block head %} +{{ super() }} +{% endblock %} + +{% block main %} +
+

{{ pageId }}

+

Umleitung

+

Unverändert Not Modified

+
+

Der Inhalt der angeforderten Ressource hat sich seit der letzten Abfrage des Clients nicht verändert und wird deshalb nicht übertragen. Zu den Einzelheiten siehe Browser-Cache-Versionsvergleich.

+

Wikipedia

+
+
+{{ super() }} +{% endblock %} diff --git a/source/screens/demo/error/400.njk b/source/screens/demo/error/400.njk new file mode 100644 index 0000000..d0032c1 --- /dev/null +++ b/source/screens/demo/error/400.njk @@ -0,0 +1,24 @@ + +{% set pageBase = "../../" %} +{% set pageId = "400" %} +{% set bodyClass = "body_status" %} + +{% extends "demo/_maintenance.njk" %} + +{% block title %}{{ pageId }}{% endblock %} +{% block head %} +{{ super() }} +{% endblock %} + +{% block main %} +
+

{{ pageId }}

+

Client-Fehler

+

Fehlerhafte Anfrage! Bad Request

+
+

Die Anfrage-Nachricht war fehlerhaft aufgebaut.

+

Wikipedia

+
+
+{{ super() }} +{% endblock %} diff --git a/source/screens/demo/error/401.njk b/source/screens/demo/error/401.njk new file mode 100644 index 0000000..6a18d75 --- /dev/null +++ b/source/screens/demo/error/401.njk @@ -0,0 +1,24 @@ + +{% set pageBase = "../../" %} +{% set pageId = "401" %} +{% set bodyClass = "body_status" %} + +{% extends "demo/_maintenance.njk" %} + +{% block title %}{{ pageId }}{% endblock %} +{% block head %} +{{ super() }} +{% endblock %} + +{% block main %} +
+

{{ pageId }}

+

Client-Fehler

+

Nicht autorisiert! Unauthorized

+
+

Die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden. Wie die Authentifizierung durchgeführt werden soll, wird im „WWW-Authenticate“-Header-Feld der Antwort übermittelt.

+

Wikipedia

+
+
+{{ super() }} +{% endblock %} diff --git a/source/screens/demo/error/403.njk b/source/screens/demo/error/403.njk new file mode 100644 index 0000000..c3dccc2 --- /dev/null +++ b/source/screens/demo/error/403.njk @@ -0,0 +1,24 @@ + +{% set pageBase = "../../" %} +{% set pageId = "403" %} +{% set bodyClass = "body_status" %} + +{% extends "demo/_maintenance.njk" %} + +{% block title %}{{ pageId }}{% endblock %} +{% block head %} +{{ super() }} +{% endblock %} + +{% block main %} +
+

{{ pageId }}

+

Client-Fehler

+

Nicht erlaubt! Forbidden

+
+

Die Anfrage wurde mangels Berechtigung des Clients nicht durchgeführt, bspw. weil der authentifizierte Benutzer nicht berechtigt ist, oder eine als HTTPS konfigurierte URL nur mit HTTP aufgerufen wurde.

+

Wikipedia

+
+
+{{ super() }} +{% endblock %} diff --git a/source/screens/demo/error/404.njk b/source/screens/demo/error/404.njk new file mode 100644 index 0000000..95b6beb --- /dev/null +++ b/source/screens/demo/error/404.njk @@ -0,0 +1,24 @@ + +{% set pageBase = "../../" %} +{% set pageId = "404" %} +{% set bodyClass = "body_status" %} + +{% extends "demo/_maintenance.njk" %} + +{% block title %}{{ pageId }}{% endblock %} +{% block head %} +{{ super() }} +{% endblock %} + +{% block main %} +
+

{{ pageId }}

+

Client-Fehler

+

Hier ist nichts. Not Found

+
+

Die angeforderte Ressource wurde nicht gefunden. Dieser Statuscode kann ebenfalls verwendet werden, um eine Anfrage ohne näheren Grund abzuweisen. Links, welche auf solche Fehlerseiten verweisen, werden auch als Tote Links bezeichnet.

+

Wikipedia

+
+
+{{ super() }} +{% endblock %} diff --git a/source/screens/demo/error/408.njk b/source/screens/demo/error/408.njk new file mode 100644 index 0000000..40275ff --- /dev/null +++ b/source/screens/demo/error/408.njk @@ -0,0 +1,24 @@ + +{% set pageBase = "../../" %} +{% set pageId = "408" %} +{% set bodyClass = "body_status" %} + +{% extends "demo/_maintenance.njk" %} + +{% block title %}{{ pageId }}{% endblock %} +{% block head %} +{{ super() }} +{% endblock %} + +{% block main %} +
+

{{ pageId }}

+

Client-Fehler

+

Zeitüberschreitung der Anforderung. Request Timeout

+
+

Innerhalb der vom Server erlaubten Zeitspanne wurde keine vollständige Anfrage des Clients empfangen.

+

Wikipedia

+
+
+{{ super() }} +{% endblock %} diff --git a/source/screens/demo/error/500.njk b/source/screens/demo/error/500.njk new file mode 100644 index 0000000..6a0d750 --- /dev/null +++ b/source/screens/demo/error/500.njk @@ -0,0 +1,24 @@ + +{% set pageBase = "../../" %} +{% set pageId = "500" %} +{% set bodyClass = "body_status" %} + +{% extends "demo/_maintenance.njk" %} + +{% block title %}{{ pageId }}{% endblock %} +{% block head %} +{{ super() }} +{% endblock %} + +{% block main %} +
+

{{ pageId }}

+

Server-Fehler

+

Allgemeiner Server Fehler!!! Internal Server Error

+
+

Dies ist ein „Sammel-Statuscode“ für unerwartete Serverfehler.

+

Wikipedia

+
+
+{{ super() }} +{% endblock %} diff --git a/source/screens/demo/examples.njk b/source/screens/demo/examples.njk new file mode 100644 index 0000000..b598d75 --- /dev/null +++ b/source/screens/demo/examples.njk @@ -0,0 +1,334 @@ + +{% set pageBase = "../" %} +{% set pageId = "examples" %} + +{% extends "demo/_extended.njk" %} + +{% block title %}Examples{% endblock %} +{% block head %} + {{ super() }} +{% endblock %} + +{% block main %} +
+ + {% include "hippie/partials/_body_nav.njk" %} +
+
+
+
+

Sammlung formatierter Elemente

+

Die Elemente werden fortlaufend komplexer

+
+
+

<h3>

+

Beispiele

+
h3.txt_color_dark+p
+

Dunkle Überschrift

+

Mit normalem Textabsatz

+

<h4>

+

Beispiele

+
a>h4
+ +

Überschrift als Block-Verweis

+
+

<section>

+
section>div.float_space_left>img^p+p
+
+
Fahne von interaktionsweise
+

Vorname Name
Straße 1, 01234 Stadt

+

+49 (0)123 1337 0000
+ name@domain.tld +

+
+
div.space_left_fourth
+
+
+

Eingerückter Inhalt

+
+
+
nav>ul>(li>a.a_button{punkt $})*4nav>ul>(li>a.a_button_border{stufe $})*4
+
+ + +
+
nav.nav_horizontal>ul>(li>a.a_button{abschnitt $})*4nav.nav_center_old>ul>(li>a.a_button{typ $})*4
+ +
+ +
+
header.header_page>h1+p+nav.nav_separate_right>ul>(li>a.a_button{nav $})*4^+nav.nav_right>ul>(li>a.a_button{nav $})*4
+
+

Aufmacher

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis nec consectetur diam. Sed nisl odio, volutpat nec nisi sit amet, commodo faucibus est. Donec lacinia vestibulum sapien. Morbi porttitor nibh quis imperdiet scelerisque. Praesent rutrum quam eu sodales luctus.

+ + +
+
header.header_page>nav.nav_right>ul>(li>a.a_button{nav $})*4
+
+
+ +
+
+
footer.pos_abs.pin_bottom>nav.nav_column>ul>(li>a.a_button_text)*4
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ Show me a + + Sorted by + + + + Matching + + +

+
+ +

Gruppierung

+
ul.list_link>(li>a>img)*2+li>a
+ + +

Tabellen

+
table.table_link>thead>tr>th{&nbsp;}+th{ab / zy}+th{neu / alt}^^(tbody>tr>td.cell_icon[rowspan="2"]>img[width=16  height=16]^+td.cell_link>a[target=_blank]{name}+a[target=_blank]{url}^+td.cell_date[rowspan="2"]{yyy-mm-dd}^tr>td.cell_text>div.shorten{beschreibung})*2
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Eingebettet

+
+ + Background flag + + + + + + + + + + +
+
+
+
+{% endblock %} + +{% block script %} + {{ super() }} + + {# #} + + + + + + +{% endblock %} \ No newline at end of file diff --git a/source/screens/demo/intro.njk b/source/screens/demo/intro.njk new file mode 100644 index 0000000..232a3b9 --- /dev/null +++ b/source/screens/demo/intro.njk @@ -0,0 +1,990 @@ + +{% set pageBase = "../" %} +{% set pageId = "intro" %} + +{% extends "demo/_extended.njk" %} + +{% block title %}Intro{% endblock %} +{% block head %} + {{ super() }} +{% endblock %} + +{% block main %} + {% include "hippie/partials/_body_nav.njk" %} + +
+ Dies ist einfach nur Text.
Weniger wäre Nichts, denn dieser Text ist nicht durch ein spezifisches Element umschlossen.
Dies ist normalerweise nicht vorgesehen und wird hier nur zur Einführung und Anschauung verwendet.

+
+

Es wirken nur die Eigenschaften des + <body> + Elements. Dieses Element umschließt den gesamten Inhalt des Dokumentes und kommt daher nur einmal vor. Inhalte sind normalerweise durch Elemente definiert. Grundlegende Elemente teilen das Dokument zunächst in Abschnitte.

+

Bereiche

+ {# // body // article // section // nav // aside // h1-h6 // header // footer #} +
+

Einen Abschnitt, welcher für sich alleine stehen kann, definiert sich durch + <article>. Solch ein Element wird oft detailliert gestaltet, kommt aber auch ohne jegliche Gestaltung aus.

+

Noch allgemeiner ist das + <section> + Element. Es schafft Bereiche um Inhalte zu strukturieren.

+

Bestimmte Bereiche haben einen vorgegebene Zweck.
Folgende Bereiche sind vorgegeben:

+
+ + +
+
+

Um einleitenden Inhalt festzuhalten, wird das + <header> + Element eingesetzt. Es beinhaltet häufig auch Navigationselemente. Dabei bezieht es sich auf den nächsten, umgebenden Abschnitt.

+ +
+
+

Auch abschließender Inhalt kann für einen Abschnitt definiert werden. Dazu wird + <footer> + eingesetzt.

+
+
+ +

Zur feineren Strukturierung und Gliederung von Texten sind einige weitere Elemente verfügbar. Diese werden nun der Reihe nach aufgeführt. Zu Beginn die Überschriften, da sie noch zu den Abschnitten gehören. Das kommt vermutlich daher, da Abschnitte häufig eine kennzeichnende Überschrift beinhalten.

+

Überschrift 1

+

Eine Überschrift erster Ordnung + <h1> + ist sehr groß und steht daher oft außerhalb eines Textflusses. Sie schafft eine deutliche Trennung sowohl inhaltlich wie auch optisch. Sie erzeugt einen Abstand gleich der horizontalen Linie über sich.

+

Überschrift 2

+

Die weiteren Überschriften + <h2> + bis + <h6> + gliedern Text und werden auch als Titel für andere Elemente eingesetzt.

+

Überschrift 3 ist in Großbuchstaben gesetzt

+

Überschrift 4 verwendet normale Buchstaben und gleicht ansonsten Überschrift 3

+
Überschrift 5 ist Überschrift 5
+
Überschrift 6
+

Schließlich eine Überschrift in der Größe des Fließtextes. Allerdings in fett.

+
+
+

Gruppierung

+ {# // p // address // hr // pre // blockquote // ol // ul // li // dl // dt // dd // figure // figcaption // main // div #} +

Ein Absatz + <p>. Zugegeben ein kurzer.

+

Aus mehreren Absätzen wird ein ganzer Text. Solche Texte haben gelegentlich großen informativen oder unterhaltsamen Charakter.
Einfache Zeilenumbrüche werden darin mit + <br> + erreicht. Dies ist allerdings ein Element der Textebene und keine Gruppierung.

+

Die Unterteilung in Absätze ist eine von vielen Möglichkeiten Texte zu gruppieren und ihnen Struktur zu verleihen. In diesem Dokument flattert Text normalerweise von Links daher. Er ist schwarz und in einer serifenlosen Schrift gesetzt. Zu weiteren Formatierungen, die eher auf einer Ebene der Zeichen einzuordnen ist, wird im Verlauf näher eingegangen. Zunächst die Struktur:

+

Text sitzt gerne auch mal zentriert.

+
+ p.txt_center +
+

Rechtsbündig ist schon eher eine Ausnahme bzw. Besonderheit.

+
+ p.txt_right +
+
Das Element + <address> + hat den Zweck, Kontaktinformationen bereit zu stellen. Diese werden, je nach Position des Elements im Kontext der gesamten Seite, anders gewertet.
+

Texte können auf verschiedene Arten unterteilt werden. Dafür werden unterschiedlich formatierte + <hr> + Elemente verwendet. Die horizontale Linie ist die Ausgangsformatierung, daher auch der abgekürzte Name des Elements. Eine Linie ist schwarz und durchgezogen.

+
+

Es ist auch eine unsichtbare Unterteilung möglich:

+
+
+ hr.hr_hidden +
+

Die Linie darf auch gepunkted sein. Zudem sind verschiedene Längen möglich. Diese sind immer ein Prozentwert der verfügbaren Breite. Hier in gleicher Reihenfolge 100%, 50% und 25%:

+
+
+ hr.hr_dotted +
+ +
+
+ hr.space_even_half +
+
+
+ hr.hr_dotted.space_even_fourth +
+

Zur horizontalen Unterteilung kommt natürlich auch eine vertikale Trennung hinzu. Text kann so zum Beispiel in mehrere Spalten unterteilt werden. Dies ist hilfreich, wenn ein Text durch eine breite Fläche sehr lange Zeilen bekommen würde. Es ist dann schwer den neuen Zeilanfang zu finden. Die vertikale Trennung dient in erster Linie dazu, diesem Umstand zu begegnen. Auch hier kann die Unterteilung viele Formen annehmen.

+
+ p.column_2 +
+

Drei Spalten gilt es jetzt also zu Füllen. Dann erst wird die Trennung der Spalten durch eine Linie sichtbar.

+
+ p.column_3.column_line +
+

Ist der Text nicht lang genug bleibt eventuell eine Spalte leer. Diesmal wird dies aber nicht passieren, denn das Anschauungsbeispiel ist ja nun durch den vorherigen Absatz schon gegeben.
Oft ist es sinnvoll, Absätze mit mehreren Spalten deutlich von nachfolgenden Absätzen zu trennen. Da der Textfluss spaltenweise verläuft, liest man eventuell an der falschen Stelle weiter.
Auch das zeigen diese beiden Absätze ganz gut.

+

Es gibt die Möglichkeit vorformatierten Text darzustellen + <pre>.

+
dadurch
bleiben
einrückungen
durch
tabulatoren
erhalten.
+

Wird Bezug auf fremde Inhalte genommen, kommt ein Zitat + <blockquote> + zur Anwendung. Es besteht aus der Aussage und der Quelle.

+
+

Ein Zitat (das, lateinisch citatum „Angeführtes, Aufgerufenes“ zu lat. citāre „in Bewegung setzen, vorladen“, vgl. „jemanden vor Gericht zitieren“) ist eine wörtlich übernommene Stelle aus einem Text oder ein Hinweis auf eine bestimmte Textstelle.

+

+ Wikipedia +

+
+
+ blockquote>p+p.quote_source +
+

Gerade bei wörtlichen Zitierungen kommt häufig das Anführungszeichen zum Einsatz. Es kann durch die Formatierung automatisch ergänzt werden.

+
+

Das kannst du schon so machen aber dann isses halt Kacke.

+

o. V.

+
+
+ blockquote.quote_mark>p+p.quote_source +
+

Listen

+

Text bekommt durch Listen besondere optische wie auch inhaltliche Struktur. Es gibt ungeordnete + <ul> + und geordnete Listen + <ol> + sowie Beschreibungslisten + <dl>. Die beiden ersten Varianten beinhalten das Listenelement + <li>. Beschreibungslisten beinhalten jeweils das Paar von Ausdruck + <dt> + und Beschreibung + <dd>. Im Folgenden eine Liste der Listen in ihrer Ausgangskonfiguration:

+
    +
  • Ungeordnete
  • +
  • Listen
  • +
+
    +
  • Verschiedener
  • +
  • Art
  • +
+
    +
  1. Geordnete
  2. +
  3. Liste
  4. +
+
+
Beschreibungsliste
+
Auch Definitionslisten genannt
+
Ausdruck
+
Beschreibung
+
+

Auch Inhalte, die nicht in Textform sind, können durch einen Bezug integriert werden. Wie diese Fahne werden sie mit + <figure> + umschlossen und tragen eine Bezeichnung, welche mit + <figcaption> + ausgezeichnet wird.

+
+
Fahne
+ + Flag + + + + + + + + + + +
+
+ figure>figcaption+{element} +
+

Eine sehr klar definierte Gruppierung stellt das Element + <main> + dar. Es umschließt den hauptsächlichen Inhalt des Dokumentes.

+

Eine von sich aus undefinierte Möglichkeit zur Gruppierung von Text besteht durch + <div>. Dieses Element hat, ohne weitere Klassifizierung keine Auswirkungen auf die Erscheinung oder die inhaltliche Aussage. Daher der allgemeine Einsatz.

+
+

Es wird allerdings häufig eingesetzt und bekommt vielfältige Funktionen zugeordnet wie diese hervorgehobene Information zeigt.

+
+
+
+

Textebene

+ {# // a // em // strong // small // s // cite // q // dfn // abbr // ruby // rb // rt // rtc // rp // data // time // code // var // samp // kbd // sub // sup // i // b // u // mark // bdi // bdo // span // br // wbr // -- Edits -- // ins // del #} +

Verweise

+

Ein wesentlicher Bestandteil von Hypertext sind Verweise + <a>. Sie dienen als Sprungmarken innerhalb des Netzwerks. Es kann grob zwischen internen und externen Verweisen unterschieden werden. + Interne Verweise + + a.a_line + + können Verknüpfungen innerhalb des aktuellen Dokumentes sein oder auch Funktionen aktivieren. + Externe Verweise + verknüpfen Inhalte über das gesamte Netzwerk hinweg. Sie können zum Beispiel auch auf E-Mail Adressen oder Dateien zeigen. Theoretisch kann solch ein Verweis + Alles + auslösen. Anweisungen werden im + URL Standard + übergeben.

+

Nicht nur Text kann als Verweis verwendet werden. Auch andere Elemente wie Bilder können verknüpft werden. Abhängig von ihrer Funktion und ihrem Zweck, werden Verweise unterschiedlich formatiert. + Farbige + oder + unterstrichene Varianten + sind einfache Beispiele.

+

Wird der Verweis innerhalb eines + <nav> + Elementes notiert, bekommt er die spezielle Bedeutung eines Navigationsverweises innerhalb des Dokumentes oder der Anwendung. Verweise werden dann durchaus auch wie Schaltflächen dargestellt.

+ + +

Formatierungen

+

Texte, Wörter oder Zeichen können vielfältig formatiert werden.

+

Sie können + fett + <b> + oder + kursiv + <i> + geschrieben sein. + + Auch beides ist möglich!?! Sollen sie nicht nur anders + aussehen, sondern auch + eine besondere inhaltliche Bedeutung + bekommen, werden sie mit + <strong> + und + <em> + ausgezeichnet.

+

Das + <u> + Element stellt eine Spanne von Text mit einer unartikulierten, wenn auch explizit dargestellten, nicht-textuellen Anmerkung dar, wie z.B. die Beschriftung des Textes als Eigenname wie + Interaktionsweise, oder die Beschriftung des Textes als + flasch + (falsch) geschrieben.

+

Ähnlich ist es mit dem Element + <small>. + Es steht für Randnotizen wird aber häufig auch kleiner dargestellt. +

+

Ist ein Text nicht mehr korrekt oder relevant kann er mit + <s> + markiert werden:
+ Die Erde ist eine Scheibe. +

+

Ein besonderer inhaltlicher Bezug ist der Titel eines Werkes. Sowas kann mit + <cite> + ausgezeichnet werden. + Pulp Fiction, ist ein super Film - zum Beispiel.

+

Um ein Zitat direkt im Text zu verwenden benutzt man das + <q> + Element. Es platziert Anführungszeichen um die Aussage:

+

Sie sagte: + Du wolltest staubsaugen!
Er sagte: + Mach' ich morgen. +

+

Mit dem + <dfn> + Element werden Begriffe definiert. Es wird häufig mit dem Element für Abkürzungen + <abbr> + gemeinsam verwendet. Die eigentliche Definition kann dabei auch im Attribut + title + stehen.

+

+ + HIPPIE + + is an recursive acronym for + Hippie interweaves preeminent personal interface elements.

+

Die besondere Auszeichnungen + <ruby> + bezeichnet ein Anmerkungssystem, bei dem der Text zusammen mit seiner Anmerkung in einer Zeile erscheint. + Das System verwendet die folgenden weiteren Elemente mit spezifischer Bedeutung:

+
+
+ <rb> +
+
Basis Textkomponente
+
+ <rt> +
+
Annotation
+
+ <rtc> +
+
Einzelne Komponente einer Annotation
+
+ <rp> +
+
Alternative bei fehlender Unterstützung
+
+
+
+ + Basis + Auszeichnung + + + 今日 + きょう + + + ♥: + + Herz + , + + + Cœur + + . + ☘: + + Kleeblatt + , + + + Trèfle + + . + ✶: + + Stern + , + + + Étoile + + . + +
+
+

Wikipedia erklärt dies ausführlicher unter + Ruby Annotation.

+

Es gibt auch mehrere besondere Elemente um Maschinensprache oder Programmiersprache zu bezeichnen. Dabei wird unterschieden, ob der Inhalt nur für Menschen ausgezeichnet wird oder auch maschinen-lesbar sein soll. Die Elemente + <data> + und + <time> + enthalten eine maschinen-lesbare Repräsentation des Inhaltes:

+
+
+ 0 + ≠ + NULL +
+
+ <data>0</data> ≠ <data>NULL</data> +
+
Der Wert + NULL + mit Attribut
+
+ <data value="NULL">NULL</data> +
+
+ +
+
+ <time>2018-10-08</time> +
+
Die Zeitangabe + + + + mit Attribut
+
+ <time datetime="2018-10-08">Gestern</time> +
+
+

Die Auszeichnung + <code> + wurde bis hier hin schon verwendet. Sie markiert ebenfalls Maschinensprache. Allerdings dient sie dazu von Menschen gelesen zu werden. In diesem Dokument werden alle Elemente, die erklärt werden wiederum mit diesem Element markiert.

+

Für zusammenhängende Blöcke wird die Auszeichnung oft in Kombination mit dem Element + <pre> + verwendet:

+
<html>
<head>
<title>hyper text markup language</title>
</head>
<body id="root">
<!-- content goes here -->
<p class="example">just like this.</p>
</body>
</html>
+

Dabei bleiben vorhandene Textformatierungen wie Zeilenumbrüche und Einrückung erhalten.

+

+ var def = "Definition einer Variablen"; +

+

In diesem Beispiel wird die Variable + def + definiert. Solch ein spezieller Typ Text kann mit dem dafür vorgesehenen Element + <var> + ausgezeichnet werden.

+

Soll beispielhaft auf Ausgaben von Computern verwiesen werden, wird das + <samp> + Element verwendet. Der Computer hat gesagt: + Ich kann das angegebene Objekt nicht finden.

+

Benutzereingaben haben ebenfalls ein eigenes Element + <kbd>. Damit werden Eingaben durch den Nutzer, wie zum Beispiel + Drücken Sie gleichzeitig + Strg + und + A + , gekennzeichnet.

+

Hoch- und Tiefgestellte Zeichen werden durch die Elemente + <sup> + und + <sub> + repräsentiert. Sie dienen nicht dazu rein optische Auszeichnungen zu erreichen sondern werden für ihren jeweiligen Zweck eingesetzt. In der Mathematik oder Chemie sind sie üblich:

+

Beispielsweise die Formel + E=m + c + 2 + oder das Element H2O

+

Die Zeichen in Absätzen bis hin zu ganzen Texten können, mit einem geeigneten Eingabegerät, markiert werden. Dies stellt sich wie folgt dar:

+

Beispiel zum markieren 😉.

+

Eine Markierung kann, mittels + <mark>, auch durch den Autor geschehen. Diese stellt sich ein wenig anders dar: + Diese Worte sind markiert. +

+

Um Text, dessen schreibweise nicht vorhersehbar ist, zu markieren wie z.B. Benutzernamen + كائن بشري, die auch rechtsbündig geschrieben sein können, wird das + <bdi> + Element eingesetzt.
Die Schreibweise kann auch auch vom Author vorgegeben und expliziert geändert werden. Dies wird dem + <bdo> + Element umgesetzt. Die Richtung wird dann mit dem Attribut + dir + angegeben.

+
    +
  • + كائن بشري +
  • +
  • + إنسان آلي +
  • +
+

Neben den vielen speziellen Elementen gibt es auch ein Element, das keine vordefinierte Bedeutung hat. Es ist das + <span> + Element.
Es dient dazu ganz individuelle Auszeichnungen zu ermöglichen die eher optische Auswirkungen haben und eben keine inhaltlichen. Mit den Attributen + id + oder + class + werden dazu eigene Typen des Elements definiert. Diese Möglichkeit der Definition von individuellen Elementen ist ein Grundprinzip der Auszeichnungssprache + HTML.

+

Mit der Einführung von Absätzen wurde auch schon das + <br> + Element erwähnt und seitdem häufig benutzt. Es erzeugt einen Zeilenumbruch. Es wird dadurch kein neuer Absatz erstellt. Es dient auch nicht dazu optischen Abstand zu erzeugen, sondern innerhalb eines Absatzes den Text umzubrechen.

+

Eine besondere Form des Zeilenumbruchs kann mit + <wbr> + eingesetzt werden. Es stellt die Möglichkeit für einen Zeilenumbruch dar. Da das Format eines HTML-Dokumentes häufig nicht vorhersehbar ist, kann solch ein Element einen Umbruch erzeugen falls ein Wort zu lang für eine Textzeile sein sollte.

+

Und der Löwe brüllte "RRRRrrrrooooooooaaaaAAAAAAAAHHHHhhhhrrrrrrrrr"! +

+

Es kann auch innerhalb von vorformatierten Texten Zeilenumbrüche ermöglichen

+

Änderungen

+

Werden Texte geändert, können solche Änderungen sichtbar gemacht werden. Somit können sie besser nachvollzogen werden.
Zum Beispiel eine Ergänzung von Inhalt.

+ +

Der Inhalt wird dann mit + <ins> + ausgezeichnet. Wird Text entfernt, kommt das + <del> + zum Einsatz.

+
Zu Tun
+
    +
  • Fahrrad reparieren
  • +
  • + Staubsaugen +
  • +
  • Tisch bauen
  • +
+
+
+

Eingebundene Inhalte

+ {# // picture // source // img // iframe // embed // object // param // video // audio // track // map // area #} + Fahne von Interaktionsweise +

Dies ist ein Bild. Es wird mit dem Element + <img> + eingebunden. Solch ein Bild hat üblicherweise die Attribute + width + und + height. Mit ihnen werden die Abmessungen (Breite und Höhe) festgelegt. Außerdem sollte immer das Attribut + alt + für eine alternative Beschreibung in Textform verwendet werden.

+

Das Bild selbst liegt normalerweise als Datei vor. Die Quelle wird mit dem Attribut + src + angegeben. Es können einige Alternativen zur Angabe einer konkreten Datei eingesetzt werden. Zum Beispiel können mehrere Dateien in Abhängigkeit zur Darstellung oder dem unterstützen Format angegeben werden. Dafür können dann die Elemente + <source> + und + <picture> + in Kombination verwendet werden.

+ + + + +
+
+

Tabellen

+

Tabellen bieten besonders geordnete Struktur. Häufig werden in ihnen Text und Daten kombiniert dargestellt. Dies erfordert individuelle Formatierungen. Einige grundlegende Eigenschaften werden im folgenden aufgezeigt. Tabellen sind in ihrer Größe entweder vordefiniert (fixiert) oder richten sich nach ihrem Inhalt. Das bedeutet, die Spaltenbreite entspricht der breitesten ihrer Zellen.

+ + + + + + + + +
Eineeinfache
Tabelle
+
+ table.width_full>tr>td*2^tr>td[colspan=2] +
+
+ + + + + + + + +
Einefreie (nicht fixierte)
Tabelle
+
+ table>tr>td*2^tr>td[colspan=2] +
+ + + + + + + + +
Mitohne
Linien
+
+ table.table_blank>tr>td*2^tr>td[colspan=2] +
+
+

Die nächste Tabelle verwendet alle zur Auszeichnung verfügbaren Elemente und hat eine starre Zellverteilung:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Beschreibung bzw. Zusammenhang der Tabelle
KopfzeileAB
Tabelle
mitTitel
Kopf-und
Fußzeile
FußzeileAB
+
+ table.width_full.table_fix>caption+thead>tr>th*3^^tbody>(tr>td*3)*3^^tfoot>tr>td*3 +
+
+

Viele weitere Formate sind möglich. Hier nur einige typische Beispiele:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KopfzeileAB
VorspalteEine
1erweiterte
2Tabelle
+
+ table.width_full.table_stripe.table_free>tr>td*3 +
+ + + + + + + + + + + + + + + + + + + + + +
Tabelle
ohneRahmen
jedochmit
Streifen
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Die Verteilung der Zellen ist hier von ihrem Inhalt abhängig.
BezeichnungMenge>9000
Alpha18990
Bravo101
Charlie11
Summe9001
+
+
+

Formulare

+

Spätestens hier werden Betrachter zu Benutzern. Texteingabefelder und verschiedene Bedienelemente geben Möglichkeiten zur Interaktion. Diese Elemente sind in vielerlei Hinsicht besonders. Werden sie nicht explizit gestaltet, ist ihre Erscheinung system- bzw. browserabhängig.
Üblicherweise stehen alle Bedienelemente innerhalb eines + <form> + Elementes. Dieses ist notwendig um Angaben zur Kommunikation mit dem Server zu setzen. Es hat normalerweise keine gestalterische Funktion.

+

Grundlegend ist das Element + <input>. Es hat viele Attribute um den Typ der Eingabe anzupassen. Ist es undefiniert nimmt es jegliche textbasierte Information auf und erhält eine Standardgröße.

+

+

Ein spezieller Typ des Eingabefeldes hat die Funktion einer Schaltfläche + <input[type="button"]>. Es gibt allerdings auch ein eigenes Element + <button> + dafür.

+

+ +

+

+ +

+

Interaktive Elemente können durch das Attribut + readonly + nur lesbar gemacht werden oder mittels + disabled + gänzlich deaktiviert werden.

+

+ +

+

+ +

+

Das Element + <label> + ergänzt interaktive Elemente um eine Beschriftung. Wichtig ist hier, dass die Beziehung beider Elemente zu einander deutlich ist.

+

+ +

+
+
+ + + + + + + + + +
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+
+

Zusätzlich zur Beschriftung einzelner Elemente gibt es auch die Möglichkeit Gruppierungen zu schaffen. Diese werden mit + <fieldset> + realisiert.

+
+
+ + +
+
+

Sie können mittels + <legend> + auch eine eigene Beschriftung erhalten.

+
+ Einfache Eingabeelemente +
+ +
+
+ +
+ +
+ +
+ +
+ + +
+ + +
+
+
+ Einfache Eingabeelemente mit Stil +
+ +
+
+ +
+ +
+ +
+ +
+ + +
+ + +
+
+
+ Weitere Eingabemöglichkeiten +

Innerhalb einer Gruppe können nicht nur Ein- und Ausgabefelder platziert werden. Andere Elemente ergänzen Information oder lockern das Erscheinungsbild auf.

+

Hier nun eine Liste weiterer Arten von Eingabefeldern:

+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +

Interaktive Elemente

+
+
+

Struktur

+
+
+
+ + + + +
+
+
+
+
+

Medien

+
+
+

Druck

+
+ +
+
+

Ende der Einführung

+

Dies war eine Übersicht der grundlegenden Elemente. Nun folgen weitere Elemente mit besonderen Formatierungen.

+
+
+
+ +
+
+

HIPPIE Erklärung

+

Aufbau, Standardwerte

+
+
+

+
+
+ +{% endblock %} + +{% block script %} + {{ super() }} + {# #} + + + + + + +{% endblock %} \ No newline at end of file diff --git a/source/screens/demo/maintenance.njk b/source/screens/demo/maintenance.njk new file mode 100644 index 0000000..d5914ed --- /dev/null +++ b/source/screens/demo/maintenance.njk @@ -0,0 +1,18 @@ + +{% set pageBase = "../" %} +{% set pageId = "blank" %} +{% set pageClass = "h_full_view" %} + +{% extends "demo/_maintenance.njk" %} + +{% block title %}Maintenance{% endblock %} + +{% block head %} +{{ super() }} +{% endblock %} + +{% block main %} +
+

HIPPIE

+
+{% endblock %} diff --git a/source/screens/demo/portal.njk b/source/screens/demo/portal.njk new file mode 100644 index 0000000..c6e7b45 --- /dev/null +++ b/source/screens/demo/portal.njk @@ -0,0 +1,37 @@ + +{% set pageBase = "../" %} +{% set pageId = "index" %} +{% set bodyClass = "body_portal" %} + +{% extends "demo/_default.njk" %} + +{% import "demo/macros/_gates.njk" as gate %} + +{% block title %}Portal{% endblock %} + +{% block head %} + {{ super() }} +{% endblock %} + +{% block body %} +
+ {{ gate.list( + 'Tor mit Symbol und Liste', + '../demo', { + src: '/art/demo/flag_websafe_128x80.gif', + alt: 'Flag of Interaktionsweise' + }, [ + { + name: '1', + href: 'http://domain.tld', + img: '../art/bullet.gif' + }, { + name: 'Zwei', + href: 'http://domain.tld', + img: '../art/bullet.gif' + } + ] + ) }} + {{ gate.simple('Tor', '../demo') }} +
+{% endblock %} \ No newline at end of file diff --git a/source/style/demo.scss b/source/style/demo.scss index 85090ad..e46a622 100644 --- a/source/style/demo.scss +++ b/source/style/demo.scss @@ -1,20 +1,15 @@ // Start a new project by creating YOUR-PROJECT.scss and _YOUR-CONFIG.scss // Then import your config and hippie -// NOTE: No css rules allowed in here +// NOTE // No css rules allowed in here // ------------------------------------------------------------------------------ -@use "demo_config"; -@use "hippie-style/hippie"; +@import "demo_config"; +@import "hippie-style/hippie"; // Additional Modules and variables // in dependency to other basic styles // could be defined here // ----------------------------------------------------------------------------- -@use "modules/card/card_module"; -@use "modules/portal/portal_module"; -@use "modules/songbook/songbook_module"; -@use "modules/demo/demo_module"; -@use "modules/start"; -@use "modules/clock"; -@use "modules/game"; -@use "modules/login"; -// @use "modules/YOUR-MODULE/YOUR-FILES"; +@import "modules/card/card_module"; +@import "modules/portal/portal_module"; +@import "modules/demo/demo_module"; +// @import "modules/YOUR-MODULE/YOUR-FILES"; diff --git a/source/style/demo_basic.scss b/source/style/demo_basic.scss index 0cb7771..3efdbf1 100644 --- a/source/style/demo_basic.scss +++ b/source/style/demo_basic.scss @@ -2,12 +2,12 @@ // Then import your config and hippie // NOTE // No css rules allowed in here // ------------------------------------------------------------------------------ -@use "demo_config"; -@use "hippie-style/basic"; +@import "demo_config"; +@import "hippie-style/basic"; // Additional Modules and variables // in dependency to other basic styles // could be defined here // ----------------------------------------------------------------------------- -// @use "modules/YOUR-MODULE/YOUR-FILES"; +// @import "modules/YOUR-MODULE/YOUR-FILES"; diff --git a/source/style/hippie-style b/source/style/hippie-style index 08b2054..bf81860 160000 --- a/source/style/hippie-style +++ b/source/style/hippie-style @@ -1 +1 @@ -Subproject commit 08b2054d437e3ff45ed790f3da0742f8fa8fa30f +Subproject commit bf818600f866abb2e1541aa70acc03ca2ebcd148 diff --git a/source/style/modules/_clock.scss b/source/style/modules/_clock.scss deleted file mode 100644 index 6ffbc12..0000000 --- a/source/style/modules/_clock.scss +++ /dev/null @@ -1,19 +0,0 @@ -@use "sass:map"; - -@use "../hippie-style/hippie"; - -.body_clock { - header { - z-index: map.get(hippie.$z-indexes, "content-top"); - } - - main { - display: flex; - flex-flow: column nowrap; - justify-content: center; - align-items: center; - height: 100vh; - width: 100%; - overflow: hidden; - } -} \ No newline at end of file diff --git a/source/style/modules/_game.scss b/source/style/modules/_game.scss deleted file mode 100644 index 0c679d5..0000000 --- a/source/style/modules/_game.scss +++ /dev/null @@ -1,30 +0,0 @@ -@use 'sass:list'; -@use "sass:map"; - -@use "../hippie-style/hippie"; - -.body_menu { - @extend .h_full_view; - background-color: hippie.basic_color(delta); - - footer { - @extend .pos_abs; - @extend .pin_bottom; - @extend .width_full; - - .brand { - display: flex; - flex-flow: row nowrap; - align-items: center; - justify-content: flex-end; - gap: hippie.$space_half hippie.$space_basic; - - margin: hippie.$space_basic hippie.$space_double; - - & > svg { - height: 32px; - width: 32px; - } - } - } -} diff --git a/source/style/modules/_login.scss b/source/style/modules/_login.scss deleted file mode 100644 index 42c57a0..0000000 --- a/source/style/modules/_login.scss +++ /dev/null @@ -1,29 +0,0 @@ -@use "sass:color"; - -@use "../hippie-style/hippie"; - -form[name="login"] { - display: flex; - align-items: center; - justify-content: center; - - & > div { - padding: hippie.$space_double; - background-color: color.adjust(hippie.basic_color(echo), $alpha: -0.4); - - p { - margin-top: 0; - color: hippie.$color_brightest; - } - - & > input { - display: block; - width: 100%; - margin-inline: 0; - } - - input:first-of-type { - margin-bottom: hippie.$space_basic; - } - } -} \ No newline at end of file diff --git a/source/style/modules/_start.scss b/source/style/modules/_start.scss deleted file mode 100644 index d2f31f9..0000000 --- a/source/style/modules/_start.scss +++ /dev/null @@ -1,111 +0,0 @@ -@use "sass:color"; - -@use "../hippie-style/hippie"; - -$module_top_height: 32px; -$body_top_space: $module_top_height + hippie.$space_basic; - -.body_start { - @extend .h_full_view; - - padding: $body_top_space hippie.$space_basic hippie.$space_basic; - - main { - @extend .sec_main_center; - @extend %flex_column; - - height: 100%; - } - - form { - flex: 1; - - input[type="text"] { - flex: 1; - padding: hippie.$padding_basic; - line-height: hippie.$line_text_basic; - } - } - - .area { - display: grid; - grid-gap: hippie.$space_basic; - flex: 1; - // grid-template-rows: repeat(2, 1fr); - // grid-template-columns: repeat(2, 1fr); - grid-template-areas: "a a"; - grid-auto-rows: 1fr; - grid-auto-columns: 1fr; - transition: hippie.$transition_best; - - &:hover { - background-color: #999; - } - - & > div { - // height: unset; - border-color: color.scale(hippie.$color_back_basic, $lightness: -4%); - border-style: dotted; - border-width: hippie.$width_border_8; - border-radius: hippie.$width_border_8; - padding: hippie.$space_basic; - background-color: rgb(hippie.$color_back_basic, .5); - // background-color: lighten(hippie.$color_back_basic, hippie.$color_diff_tiny); - // background-color: gold; - } - } -} - -#top { - position: fixed; - top: 0; - left: 0; - display: flex; - width: 100%; - height: $module_top_height; - background-color: rgb(0, 0, 0, .8); - z-index: hippie.$z_top; - - div:last-child { - flex: 1; - } - - p, - li { - color: #fff; - } - - h1 a { - color: #000; - } - - p, - li { - margin-top: 8px; - margin-bottom: 7px; - padding: 0 4px; - font-size: 12px; - line-height: 17px; - } - - nav ul { - display: flex; - margin: 0 0 0 16px; - } - - .brand { - height: 36px; - background-color: #fff; - margin: 0 0 0 128px; - padding: 7px 24px; - font-size: 16px; - line-height: 22px; - font-weight: bold; - text-align: center; - } - - .state { - margin-right: 16px; - text-align: right; - } -} \ No newline at end of file diff --git a/source/style/modules/card/_card_module.scss b/source/style/modules/card/_card_module.scss index 86ab09c..36b7424 100644 --- a/source/style/modules/card/_card_module.scss +++ b/source/style/modules/card/_card_module.scss @@ -1,5 +1,3 @@ -@use "../../hippie-style/hippie"; - // Card module styles // ------------------------------------------------------------------------------ @@ -28,11 +26,11 @@ height: 100vh; * { - font-family: hippie.$family_text_card; + font-family: $family_text_card; // text-align: center; } - & > main { + & > div { position: relative; padding: 64px 64px 24px 64px; border: 1px solid #FFF; @@ -60,14 +58,10 @@ // padding-left: 1em; // text-indent: -1em; - &::before { - content: "*\0000a0" - } + &::before { content: "*\0000a0" } } - .decent { - color: #666 - } + .decent { color: #666 } a { color: #000; diff --git a/source/style/modules/demo/_demo_module.scss b/source/style/modules/demo/_demo_module.scss index 247c61b..0266f6c 100644 --- a/source/style/modules/demo/_demo_module.scss +++ b/source/style/modules/demo/_demo_module.scss @@ -1,7 +1,3 @@ -@use "sass:color"; - -@use "../../hippie-style/hippie"; - .demo__intro { @extend .sec_main_center; @extend .sec_main_status; @@ -11,7 +7,7 @@ @extend .sec_main_status; position: relative; min-height: 50vh; - border-color: hippie.basic_color(foxtrot); + border-color: $foxtrot_color; h1:first-of-type { margin-top: 0; @@ -26,7 +22,7 @@ } .demo__header { - padding: hippie.$space_double; + padding: $space_double; nav { @@ -37,19 +33,19 @@ } .header_fancy { - background-color: color.adjust(hippie.basic_color(bravo), $alpha: -0.4); + background-color: transparentize($bravo_color, 0.4); nav { a { - background-color: color.adjust(hippie.basic_color(alpha), $alpha: -0.4); - color: hippie.basic_color(alpha); + background-color: transparentize($alpha_color, 0.4); + color: $alpha_color; &:active, &:focus, &:hover { - background-color: rgba(hippie.$color_brightest, 0.2); - color: hippie.$color_brightest; + background-color: rgba($color_brightest, 0.2); + color: $color_brightest; } } } @@ -60,7 +56,7 @@ top: 0; left: 0; width: 100%; - background-color: color.adjust(hippie.basic_color(charlie), $alpha: -0.4); + background-color: transparentize($charlie_color, 0.4); nav { @@ -69,8 +65,8 @@ &:active, &:focus, &:hover { - background-color: rgba(hippie.$color_brightest, 0.2); - color: hippie.$color_brightest; + background-color: rgba($color_brightest, 0.2); + color: $color_brightest; } } } @@ -79,20 +75,20 @@ .demo__footer { width: 100%; // height: 128px; - padding: hippie.$space_double 0; - background-color: hippie.$color_dark; - color: hippie.$color_bright; + padding: $space_double 0; + background-color: $color_dark; + color: $color_bright; nav { a { - color: hippie.$color_brightest; + color: $color_brightest; } } } .demo__sprite_down { - @include hippie.sprite(hippie.$down); + @include sprite($down); // width: 32px; // height: 32px; // background-image: url(../art/sprites.png); @@ -100,7 +96,7 @@ } .demo__sprite_up { - @include hippie.sprite(hippie.$up); + @include sprite($up); // width: 32px; // height: 64px; // background-image: url(../art/sprites.png); @@ -108,7 +104,7 @@ } .demo__sprite_meta { - @include hippie.sprite(hippie.$meta); + @include sprite($meta); // width: 32px; // height: 32px; // background-image: url(../art/sprites.png); @@ -124,7 +120,7 @@ min-width: 128px; min-height: 128px; border-radius: 50%; - background-color: hippie.basic_color(delta); + background-color: $delta_color; } } @@ -133,123 +129,89 @@ } .demo__credits { - margin: hippie.$space_small 0 hippie.$space_basic 0; + margin: $space_small 0 $space_basic 0; } +.demo__button_32 { + width: 32px; + height: 32px; +} + + + .demo__queries > p { - padding: hippie.$padding_basic; + padding: $padding_basic; } .query_phoneUp { - @include hippie.forPhoneUp { - background-color: rgba(hippie.$color_text_basic, 0.2) - } -; + @include forPhoneUp {background-color: rgba($color_text_basic, 0.2)}; } .query_phoneOnly { - @include hippie.forPhoneOnly { - background-color: rgba(hippie.$color_text_basic, 0.2); - } + @include forPhoneOnly { background-color: rgba($color_text_basic, 0.2); } } -.query_tabletPortraitOnly { - @include hippie.forTabletPortraitOnly { - background-color: rgba(hippie.$color_text_basic, 0.2); - } +.query_tabletPortaitOnly { + @include forTabletPortraitOnly { background-color: rgba($color_text_basic, 0.2); } } .query_tabletPortraitUp { - @include hippie.forTabletPortraitUp { - background-color: rgba(hippie.$color_text_basic, 0.2); - } + @include forTabletPortraitUp { background-color: rgba($color_text_basic, 0.2); } } .query_tabletLandscapeOnly { - @include hippie.forTabletLandscapeOnly { - background-color: rgba(hippie.$color_text_basic, 0.2); - } + @include forTabletLandscapeOnly { background-color: rgba($color_text_basic, 0.2); } } .query_tabletLandscapeUp { - @include hippie.forTabletLandscapeUp { - background-color: rgba(hippie.$color_text_basic, 0.2); - } + @include forTabletLandscapeUp { background-color: rgba($color_text_basic, 0.2); } } .query_desktopOnly { - @include hippie.forDesktopOnly { - background-color: rgba(hippie.$color_text_basic, 0.2); - } + @include forDesktopOnly { background-color: rgba($color_text_basic, 0.2); } } .query_desktopUp { - @include hippie.forDesktopUp { - background-color: rgba(hippie.$color_text_basic, 0.2); - } + @include forDesktopUp { background-color: rgba($color_text_basic, 0.2); } } .query_bigDesktopUp { - @include hippie.forBigDesktopUp { - background-color: rgba(hippie.$color_text_basic, 0.2); - } + @include forBigDesktopUp { background-color: rgba($color_text_basic, 0.2); } } .demo__query_example { - @include hippie.goingLarge(hippie.$screen_tiny) { - background-color: hippie.basic_color(alpha); - } - @include hippie.goingLarge(hippie.$screen_small) { - background-color: hippie.basic_color(bravo); - } - @include hippie.goingLarge(hippie.$screen_medium) { - background-color: hippie.basic_color(charlie); - } - @include hippie.goingLarge(hippie.$screen_large) { - background-color: hippie.basic_color(delta); - } - @include hippie.goingLarge(hippie.$screen_huge) { - background-color: hippie.basic_color(echo); - } - @include hippie.goingLarge(hippie.$screen_gigantic) { - background-color: hippie.basic_color(foxtrot); - } - margin-bottom: hippie.$space_small; - padding: hippie.$space_small; + @include goingLarge($screen_tiny) {background-color: $alpha_color; } + @include goingLarge($screen_small) {background-color: $bravo_color; } + @include goingLarge($screen_medium) {background-color: $charlie_color; } + @include goingLarge($screen_large) {background-color: $delta_color; } + @include goingLarge($screen_huge) {background-color: $echo_color; } + @include goingLarge($screen_gigantic) {background-color: $foxtrot_color; } + margin-bottom: $space_small; + padding: $space_small; text-align: center; &:after { @extend code; - @include hippie.goingLarge(hippie.$screen_tiny) { - & { - content: '768px'; - } + @include goingLarge($screen_tiny) { + & { content: '768px'; } } - @include hippie.goingLarge(hippie.$screen_small) { - & { - content: '1024px'; - } + @include goingLarge($screen_small) { + & { content: '1024px'; } } - @include hippie.goingLarge(hippie.$screen_medium) { - & { - content: '1280px'; - } + @include goingLarge($screen_medium) { + & { content: '1280px'; } } - @include hippie.goingLarge(hippie.$screen_huge) { - & { - content: '1680px'; - } + @include goingLarge($screen_huge) { + & { content: '1680px'; } } - @include hippie.goingLarge(hippie.$screen_gigantic) { - & { - content: '1920px'; - } + @include goingLarge($screen_gigantic) { + & { content: '1920px'; } } content: '< 768px'; - padding: hippie.$padding_basic; - border-radius: hippie.$radius_basic; - color: hippie.$color_brightest; - background-color: rgba(hippie.$color_front_basic, 0.2); + padding: $padding_basic; + border-radius: $radius_basic; + color: $color_brightest; + background-color: rgba($color_front_basic, 0.2); } } @@ -263,37 +225,28 @@ } .demo__td_pr { - padding-right: hippie.$space_double; + padding-right: $space_double; } .demo__td_pl { - padding-left: hippie.$space_double; + padding-left: $space_double; } -#demo { - .wrap { - display: flex; - // height: 100%; - align-items: center; - justify-content: center; - } +// Index +// ----------------------------------------------------------------------------- +.wrap { + display: flex; + // height: 100%; + align-items: center; + justify-content: center; +} - .hello { - flex: 0 1 auto; - width: 80%; - } +.hello { + flex: 0 1 auto; + width: 80%; - .responsive { - @include hippie.forTabletPortraitUp { - display: flex; - flex-flow: row wrap; - align-items: stretch; - justify-content: space-between; - gap: hippie.$space_half hippie.$space_basic; - - & > * { - flex: auto; - } - } + ul { + padding: 1em 5em; + background-color: $color_darker; } -} \ No newline at end of file +} diff --git a/source/style/modules/game/_mwo.scss b/source/style/modules/game/_mwo.scss deleted file mode 100644 index 89259ff..0000000 --- a/source/style/modules/game/_mwo.scss +++ /dev/null @@ -1,48 +0,0 @@ -@use 'sass:list'; -@use "sass:map"; - -@use "../../hippie-style/hippie"; - -$colors: hippie.$color_palette; -$steps: (0, 14.28, 28.57, 42.85, 57.14, 71.43, 100); - -@function getColor($index, $colors) { - $color_keys: map.keys($colors); - $key_count: list.length($color_keys); - $cycled_index: ($index % $key_count) + 1; - $key: list.nth($color_keys, $cycled_index); - @return map.get($colors, $key); -} - -@mixin fadeColors($steps, $colors) { - @keyframes fadeColor { - @for $i from 1 through list.length($steps) { - $percent: list.nth($steps, $i); - $color: getColor($i - 1, $colors); - - #{$percent}% { - background-color: $color; - } - } - } - - animation: fadeColor 16s infinite linear; -} - -.body_mwo { - @extend .h_full_view; - - canvas { - @include fadeColors($steps, $colors); - - display: block; - cursor: none; - } - - .controls { - position: fixed; - top: 0; - left: 0; - border-radius: hippie.$radius_basic; - } -} diff --git a/source/style/modules/game/_tfw.scss b/source/style/modules/game/_tfw.scss deleted file mode 100644 index 81f9312..0000000 --- a/source/style/modules/game/_tfw.scss +++ /dev/null @@ -1,206 +0,0 @@ -@use 'sass:list'; -@use "sass:map"; - -@use "../../hippie-style/hippie"; - -.body_tfw { - @extend .h_full_view; - - display: flex; - flex-flow: column nowrap; - - th, - .important, - .subtle, - button, - input[type="text"], - select { - text-transform: uppercase; - } - - th, - .important { - color: white; - background-color: hippie.basic_color(echo); - } - - .important { - padding: hippie.$space_half; - border-block: hippie.$width_border_basic solid hippie.$color_back_basic; - font-weight: bold; - } - - .subtle, - hgroup p { - @extend .txt_smaller; - - color: hippie.$color_darkest; - } - - .complete .subtle, - button[data-action="claim"] { - color: hippie.basic_color(alpha); - } - - .background { - position: relative; - overflow: hidden; - - h2, span { - color: white; - } - - *:not(canvas, img) { - z-index: map.get(hippie.$z-indexes, "content-bottom"); - position: relative; - } - - canvas, img { - z-index: map.get(hippie.$z-indexes, "default"); - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - } - } - - & > header { - & > button.active { - border-color: hippie.$color_highlight_basic; - color: hippie.$color_highlight_basic; - background-color: hippie.$color_action_basic; - } - - & > button:not(:first-child, :last-child, :nth-child(2)) { - flex: 1; - } - } - - .view { - flex: auto; - display: flex; - flex-flow: column nowrap; - min-height: 0; - - & > main { - flex: auto; - display: flex; - flex-flow: row nowrap; - gap: hippie.$space_double; - min-height: 0; - - nav { - flex: 1; - display: flex; - flex-flow: column nowrap; - gap: hippie.$space_basic; - min-height: 0; - - input:not([type="checkbox"], [type="range"]) { - @extend .input_io; - } - - select { - @extend .io_select; - } - } - - & > div { - flex: 4; - display: flex; - flex-flow: column nowrap; - gap: hippie.$space_basic; - min-height: 0; - - div:first-child { - flex: auto; - overflow: auto; - min-height: 0; - } - - div:last-child { - flex: 0 0 auto; - } - } - - aside { - flex: 2; - - .background { - border-bottom: 1px solid hippie.basic_color(echo); - } - - & > div { - display: none; - } - } - - table { - table-layout: fixed; - width: 100%; - margin: 0; - - th { - text-align: center; - } - - td { - vertical-align: top; - - span { - z-index: map.get(hippie.$z-indexes, "content-bottom"); - position: relative; - color: white; - } - - &.subtle { - text-align: center; - vertical-align: middle; - } - } - - &#questSelection { - display: none; - } - - &[data-type="faction"] td { - height: 6em; - } - - &[data-type="quest"] td { - height: 4em; - } - - .l { - width: 30%; - } - - .q { - width: 50%; - } - - .g { - width: 40%; - } - - .t, .s, .c, .f { - width: 20%; - } - } - } - - & > footer { - justify-content: space-between; - padding: hippie.$space_basic; - - & > button:not(:first-child) { - padding-inline: 2em; - } - } - } - - footer *:not(button[data-action="back"]) { - display: none; - } -} \ No newline at end of file diff --git a/source/style/modules/portal/_portal_module.scss b/source/style/modules/portal/_portal_module.scss index f4bd18e..8cb116f 100644 --- a/source/style/modules/portal/_portal_module.scss +++ b/source/style/modules/portal/_portal_module.scss @@ -1,9 +1,5 @@ -@use "sass:color"; - -@use "../../hippie-style/hippie"; - -$portal_highlight: hippie.$color_highlight_basic; -$portal_margin: hippie.$space_double; +$portal_highlight: $color_highlight_basic; +$portal_margin: $space_double; $portal_link_size: 128px; $portal_icon_size: 64px; @@ -13,7 +9,6 @@ $portal_icon_size: 64px; .portal { display: flex; - overflow: hidden; height: 100vh; } @@ -23,12 +18,12 @@ $portal_icon_size: 64px; align-items: center; padding-right: $portal_margin; padding-left: $portal_margin; - overflow-x: hidden; - overflow-y: auto; - transition: hippie.$transition_best; + // overflow-x: hidden; + // overflow-y: auto; + transition: flex 500ms cubic-bezier(0, 0, 0.2, 1.4), background 800ms ease; &:hover { - flex: 3; + flex: 2; background-color: #999; // h2 { @@ -60,7 +55,7 @@ $portal_icon_size: 64px; .portal__link { display: block; position: relative; - max-width: $portal_link_size; + width: $portal_link_size; height: $portal_link_size; margin: 0 auto; border-width: 1px; @@ -70,7 +65,7 @@ $portal_icon_size: 64px; background-position: center; &:hover { - background-color: color.adjust($portal_highlight, $alpha: -0.2); + background-color: transparentize($portal_highlight, $amount: 0.2); border-color: $portal_highlight; } @@ -129,7 +124,7 @@ $portal_icon_size: 64px; } .portal__list { - @extend .link; + @extend .list_link; display: none; position: relative; diff --git a/source/style/modules/songbook/_songbook_module.scss b/source/style/modules/songbook/_songbook_module.scss deleted file mode 100755 index 46d6bbe..0000000 --- a/source/style/modules/songbook/_songbook_module.scss +++ /dev/null @@ -1,22 +0,0 @@ -@use "../../hippie-style/hippie"; - -.songbook_song { - pre { - @extend .pre_code - } - - header { - h2 { - margin-bottom: hippie.$space_basic; - } - - h6 { - color: hippie.$color_brightest; - } - - h2+h6 { - margin-top: 0; - margin-bottom: hippie.$space_small; - } - } -} \ No newline at end of file diff --git a/source/style/modules/ui/_drag_module.scss b/source/style/modules/ui/_drag_module.scss deleted file mode 100644 index 83f1abb..0000000 --- a/source/style/modules/ui/_drag_module.scss +++ /dev/null @@ -1,8 +0,0 @@ -#space { - position: relative; - height: 100%; - - .body_frame { - background-color: white; - } -} \ No newline at end of file diff --git a/source/style/modules/ui/_form_module.scss b/source/style/modules/ui/_form_module.scss deleted file mode 100644 index a826693..0000000 --- a/source/style/modules/ui/_form_module.scss +++ /dev/null @@ -1,23 +0,0 @@ -@use "../../hippie-style/hippie"; - -#grid { - display: grid; - gap: 8px; - grid-template-columns: repeat(4, 1fr); - grid-auto-rows: minmax(64px, auto); - margin-inline: hippie.$space_small; -} - -#grid>div { - display: flex; - align-items: center; - justify-content: center; - width: 100%; - height: 100%; - background-color: aquamarine; -} - -#grid>div:first-child { - grid-column: 1 / 3; - background-color: violet; -} \ No newline at end of file diff --git a/source/style/modules/ui/_frame_module.scss b/source/style/modules/ui/_frame_module.scss deleted file mode 100755 index 9742af3..0000000 --- a/source/style/modules/ui/_frame_module.scss +++ /dev/null @@ -1,136 +0,0 @@ -@use "sass:color"; - -@use "../../hippie-style/hippie"; - -@mixin nav-spacer($name, $size, $orientation) { - .spacer.#{$name} { - width: $size; - } -} - -.body_frame { - @extend %flex_column; - - background-color: hippie.$color_back_basic; - - position: relative; - height: 100%; - - header, - aside, - footer { - border: 1px solid transparent; - } - - & > header { - background-color: rgba(0, 0, 0, .1); - } - - main { - @extend %flex_row; - - flex: 1; - - // aside { - // background-color: rgba(255, 255, 255, .1); - // } - - section { - - & > header, - & > footer { - background-color: color.adjust(hippie.$color_back_io, $alpha: -.5); - - &:hover { - background-color: hippie.$color_back_io; - } - } - } - - section, - section > div { - flex: 1; - } - - section { - @extend %flex_column; - gap: 0; - } - } -} - -.body_cli { - @extend .body_frame; - - background-color: black; -} - -#cli { - @extend %flex_column; - - background-color: black; - - #line { - @extend %flex_row; - } - - #prompt { - flex: 1; - } - - pre { - margin: .5em 0; - color: white; - } - - textarea { - resize: none; - max-height: 128px; - margin: hippie.$margin_io; - border: 0; - padding: hippie.$space_half; - // color: hippie.$color_text_io; - color: white; - // background-color: hippie.$color_back_io; - background-color: transparent; - line-height: 1.2; - } -} - - -#content { - background-color: hippie.$color_back_io; - - & > table { - width: 100%; - margin: 0; - border: 0; - - tr:hover td { - background-color: hippie.$color_highlight_basic; - } - - th { - border: 1px solid hippie.$color_border_io; - } - - td { - border-width: 0 1px; - border-style: solid; - border-color: hippie.$color_border_io; - } - } -} - - -.io { - .spacer { - margin: 0; - border: hippie.$border_dotted; - padding: 0; - opacity: .25; - } - - @include nav-spacer('a', hippie.$space_double, false); - @include nav-spacer('b', hippie.$space_small, false); -} \ No newline at end of file diff --git a/source/style/modules/ui/_gallery_module.scss b/source/style/modules/ui/_gallery_module.scss deleted file mode 100644 index 06803fb..0000000 --- a/source/style/modules/ui/_gallery_module.scss +++ /dev/null @@ -1,18 +0,0 @@ -@use "../../hippie-style/hippie"; - -main.io section > .gallery { - display: flex; - flex-wrap: wrap; - justify-content: left; - align-items: start; - gap: 10px; - background-color: hippie.$color_back_io; - - & > div { - background-color: hotpink; - aspect-ratio: 2 / 3; - width: 128px; - transition: width 0.3s ease; - } -} - diff --git a/source/style/modules/ui/_table_module.scss b/source/style/modules/ui/_table_module.scss deleted file mode 100644 index 51896f4..0000000 --- a/source/style/modules/ui/_table_module.scss +++ /dev/null @@ -1,17 +0,0 @@ -@use "../../hippie-style/hippie"; - -main.io section > table { - table-layout: auto; - width: 100%; - margin: 0; - background-color: hippie.$color_back_io; - - thead > tr > th:first-child { - width: 1%; - } - - tr > th:first-child { - text-align: center; - } -} - diff --git a/source/style/modules/ui/_windows_module.scss b/source/style/modules/ui/_windows_module.scss deleted file mode 100644 index 98475c4..0000000 --- a/source/style/modules/ui/_windows_module.scss +++ /dev/null @@ -1,164 +0,0 @@ -@use "sass:map"; - -@use "../../hippie-style/hippie"; - -$padding_half: calc(#{hippie.$space_half} - 3px) hippie.$space_half; - -%flex-bar { - display: flex; - flex-direction: row; - flex-wrap: wrap; - align-items: center; - justify-content: flex-start; - gap: hippie.$space_half hippie.$space_basic; -} - -#task-bar { - @extend %flex-bar; - z-index: map.get(hippie.$z-indexes, "content-top"); - position: fixed; - //right: 0; - //bottom: 0; - //left: 0; - border: 1px solid transparent; - padding: hippie.$space_basic; - background-color: rgba(0, 0, 0, .1); - - &.top, - &.bottom { - nav, - & > div { - &:last-child { - margin-top: unset; - margin-left: auto; - } - } - - .clock { - text-align: end; - } - } - - &.right, - &.left { - nav, - & > div { - &:last-child { - margin-top: auto; - margin-left: unset; - } - } - - .clock { - text-align: center; - - & > span { - display: inline-block; - word-wrap: anywhere; - } - } - } - - nav, - & > div { - @extend %flex-bar; - flex-direction: inherit; - } - - button { - @extend .button_io; - overflow: hidden; - - * { - pointer-events: none; - } - } - - nav.small { - //font-size: .8em; - - button { - border: none; - padding: $padding_half; - - &:hover { - background-color: transparent; - } - } - } - - nav.big { - font-size: 1.5em; - - button { - border: none; - padding: 0; - - &:hover { - background-color: transparent; - } - } - } - - .clock { - &, - & > * { - line-height: 1; - } - } -} - -#screen-space { - position: relative; - height: 100%; -} - -#placeholder { - @extend %flex-bar; - display: none; - z-index: map.get(hippie.$z-indexes, "toast"); - position: fixed; - border: 1px dashed black; - border-radius: 2px; - background-color: rgba(0, 0, 0, .4); - padding: 16px; - - &.top, - &.bottom { - span { - writing-mode: unset; - } - } - - &.right, - &.left { - span { - writing-mode: vertical-rl; - } - } - - * { - pointer-events: none; - } - - & > div { - @extend %flex-bar; - flex-direction: inherit; - flex-wrap: nowrap; - } - - .box, - .box_brd { - width: 16px; - height: 16px; - } - - .box { - background-color: black; - } - - .box_brd { - border: 2px solid black; - background-color: transparent; - } -} \ No newline at end of file diff --git a/source/style/ui.scss b/source/style/ui.scss deleted file mode 100644 index 97d7c8f..0000000 --- a/source/style/ui.scss +++ /dev/null @@ -1,210 +0,0 @@ -@use "sass:map"; - -@use "demo_config"; -@use "hippie-style/hippie"; - -@use "modules/ui/frame_module"; -@use "modules/ui/drag_module"; -@use "modules/ui/form_module"; -@use "modules/ui/gallery_module"; -@use "modules/ui/windows_module"; -@use "modules/ui/table_module"; -@use "modules/game/mwo"; -@use "modules/game/tfw"; - -$color_gui_back: hippie.$color_dark; -$space_gui_half: hippie.$space_half; - -.op_show { - transition: hippie.$transition_show; -} - -.op_hide { - transition: hippie.$transition_hide; -} - -.html_ui { - height: 100%; - - body { - position: relative; - min-height: 100%; - } -} - -.body_intro { - background-color: black; - - .step { - @extend %full_parent; - } - - #loader { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background-color: white; - } - - #bar { - display: flex; - justify-content: space-between; - width: 50%; - } - - #wrap { - flex: 1; - background-color: hippie.$color_back_basic; - } - - #progress { - width: 0; - height: 100%; - background-color: black; - } - - #status, - #spinner { - @extend %basic; - - display: flex; - flex-grow: 0; - flex-shrink: 0; - justify-content: center; - align-items: center; - margin-inline: $space_gui_half; - padding-block: calc($space_gui_half - 1px) $space_gui_half; - line-height: hippie.$line_basic; - text-align: center; - } - - #status { - width: 4em; - background-color: black; - color: white; - } - - #spinner { - width: 2.5em; - background-color: hippie.$color_back_basic; - color: black; - - span { - animation: rotate 1s linear infinite; - } - } - - @keyframes rotate { - from { - transform: rotate(0deg); - } - - to { - transform: rotate(360deg); - } - } - - #init { - z-index: map.get(hippie.$z-indexes, "content-top"); - overflow: hidden; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background-color: black; - - h1, - p, - li { - color: white; - } - } - - .brand { - text-align: center; - - svg { - height: 128px; - width: 128px; - - rect, circle, path { - stroke: white !important; - } - } - - img { - display: inline-block; - width: 128px; - height: 128px; - background-color: white; - } - - * + h1 { - margin-top: hippie.$space_small; - margin-bottom: hippie.$space_large; - } - } - - .tech-stack { - display: flex; - padding-left: 0; - - li { - list-style: none; - padding-inline: hippie.$space_double; - } - } - - #agreement, - #idle { - display: flex; - align-items: center; - justify-content: center; - height: 100vh; - } - - #agreement { - flex-direction: column; - background-color: map.get(hippie.$color_palette, bravo); - user-select: none; - - h1 { - margin-top: 0; - color: hippie.$color_brightest; - } - } - - #idle { - background-color: hippie.$color_back_basic; - transition: background-color 4s; - - &:hover > .mouse_overlay { - background-color: transparent !important; - transition: background-color hippie.$duration_basic hippie.$timing_basic 0s !important; - } - - .hello { - flex: 0 1 auto; - padding: 1em 2em; - background-color: rgba(hippie.$color_bright, .5); - font-family: hippie.$family_text_mono; - } - } -} - -.toast { - z-index: map.get(hippie.$z-indexes, "toast"); - position: fixed; - right: $space_gui_half; - bottom: hippie.$space_double; - - p { - color: white; - } - - kbd { - border-color: hippie.$color_brighter; - color: hippie.$color_back_io; - } -} diff --git a/source/templates/demo/_default.njk b/source/templates/demo/_default.njk new file mode 100644 index 0000000..902d5fb --- /dev/null +++ b/source/templates/demo/_default.njk @@ -0,0 +1,52 @@ + + + + + + + {% block head %} + + {% block title %}{% endblock %}{{ hippie.titlePrefix }} + + {% include "demo/partials/_meta.njk" %} + {# #} + {% block meta %}{% endblock %} + + {% include "hippie/partials/_head_script.njk" %} + + + {% include "demo/partials/_links.njk" %} + {% block links %} + {# #} + {# #} + + {% endblock %} + + {% endblock %} + + + + + {% block body %}{% endblock %} + + {% block script %} + + + {% endblock %} + + + \ No newline at end of file diff --git a/source/templates/demo/_extended.njk b/source/templates/demo/_extended.njk new file mode 100644 index 0000000..39fdcb4 --- /dev/null +++ b/source/templates/demo/_extended.njk @@ -0,0 +1,67 @@ + + + + + + + {% block head %} + + {% block title %}{% endblock %} + - HIPPIE + + {% include "demo/partials/_meta.njk" %} + {% block meta %}{% endblock %} + + {% include "hippie/partials/_head_script.njk" %} + + + {% include "demo/partials/_links.njk" %} + {% block links %} + + + + + + + + + {% endblock %} + + {% endblock %} + + + + + {% include "hippie/partials/_body_hover.njk" %} +
+ {% include "hippie/partials/_header.njk" %} + +
+ {% block main %}{% endblock %} +
+ + {% include "hippie/partials/_footer.njk" %} +
+ + {% block script %} + + + {# #} + {% endblock %} + + + \ No newline at end of file diff --git a/source/templates/demo/_maintenance.njk b/source/templates/demo/_maintenance.njk new file mode 100644 index 0000000..af00cb7 --- /dev/null +++ b/source/templates/demo/_maintenance.njk @@ -0,0 +1,30 @@ + + + + + + + {% block head %} + + {% block title %}{% endblock %} + - HIPPIE + + {% include "demo/partials/_meta.njk" %} + {% block meta %}{% endblock %} + + {% block links %} + + + + {% endblock %} + {% endblock %} + + + + {% block main %} + + {% import "hippie/macros/footer-status.njk" as status %} + {{ status.footer() }} + {% endblock %} + + \ No newline at end of file diff --git a/source/templates/demo/data.json b/source/templates/demo/data.json new file mode 100644 index 0000000..a41c8b2 --- /dev/null +++ b/source/templates/demo/data.json @@ -0,0 +1,66 @@ +{ + "demoadditionallinks": [ + { + "href": "demo.html", + "text": "Index" + }, + { + "href": "demo/intro.html", + "text": "Intro" + }, + { + "href": "demo/elements.html", + "text": "Elements" + }, + { + "href": "demo/examples.html", + "text": "Examples" + } + ], + "demolinks": [ + { + "href": "demo/blank.html", + "text": "Blank" + }, + { + "href": "demo/card.html", + "text": "Card" + }, + { + "href": "demo/portal.html", + "text": "Portal" + }, + { + "href": "demo/maintenance.html", + "text": "Maintenance" + }, + { + "href": "demo/error/304.html", + "text": "304" + }, + { + "href": "demo/error/400.html", + "text": "400" + }, + { + "href": "demo/error/401.html", + "text": "401" + }, + { + "href": "demo/error/403.html", + "text": "403" + }, + { + "href": "demo/error/404.html", + "text": "404" + }, + { + "href": "demo/error/408.html", + "text": "408" + }, + { + "href": "demo/error/500.html", + "text": "500" + } + ] +} \ No newline at end of file diff --git a/source/templates/demo/macros/_gates.njk b/source/templates/demo/macros/_gates.njk new file mode 100644 index 0000000..f273edb --- /dev/null +++ b/source/templates/demo/macros/_gates.njk @@ -0,0 +1,31 @@ + +{% macro list(name, url, image, links) %} + +{% endmacro %} +{% macro simple(name, url) %} + +{% endmacro %} \ No newline at end of file diff --git a/source/templates/demo/partials/_links.njk b/source/templates/demo/partials/_links.njk new file mode 100644 index 0000000..c95a39b --- /dev/null +++ b/source/templates/demo/partials/_links.njk @@ -0,0 +1,4 @@ + +{# #} + + diff --git a/source/templates/demo/partials/_meta.njk b/source/templates/demo/partials/_meta.njk new file mode 100644 index 0000000..dd00970 --- /dev/null +++ b/source/templates/demo/partials/_meta.njk @@ -0,0 +1,9 @@ + + + + + + + +{# #} +{# #} diff --git a/source/templates/demo/partials/exp-colors.njk b/source/templates/demo/partials/exp-colors.njk new file mode 100644 index 0000000..286b30f --- /dev/null +++ b/source/templates/demo/partials/exp-colors.njk @@ -0,0 +1,7 @@ + +{# var colors = [{name: "alpha", class: "alpha_color"}] #} + +{% set cls = cycler("odd", "even") %} +{% for row in rows %} +
{{ row.name }}
+{% endfor %} diff --git a/source/templates/hippie/macros/_nav.njk b/source/templates/hippie/macros/_nav.njk new file mode 100644 index 0000000..0178835 --- /dev/null +++ b/source/templates/hippie/macros/_nav.njk @@ -0,0 +1,10 @@ + +{% macro main(data, active='') %} + +{% endmacro %} diff --git a/source/templates/hippie/macros/footer-status.njk b/source/templates/hippie/macros/footer-status.njk new file mode 100644 index 0000000..3f2e790 --- /dev/null +++ b/source/templates/hippie/macros/footer-status.njk @@ -0,0 +1,13 @@ + +{% macro footer(email='admin@domain.tld', app='Application', version='ver.s.ion', system='System Name', domain='domain.tld:port', type) %} + +{% if not type or type == 'status' %} +
+
Kontakt: {{ email }} * Server: {{ app }}/{{ version }} ({{ system }}) * Domain: {{ domain }}
+
+{% else %} +
+

Platzhalter unten fixiert

+
+{% endif %} +{% endmacro %} diff --git a/source/templates/hippie/macros/top-macro.njk b/source/templates/hippie/macros/top-macro.njk new file mode 100644 index 0000000..3b681c0 --- /dev/null +++ b/source/templates/hippie/macros/top-macro.njk @@ -0,0 +1,5 @@ +{% macro field(name, value='', type='text') %} +
+ +
+{% endmacro %} diff --git a/source/templates/hippie/partials/_body_hover.njk b/source/templates/hippie/partials/_body_hover.njk new file mode 100644 index 0000000..b76167d --- /dev/null +++ b/source/templates/hippie/partials/_body_hover.njk @@ -0,0 +1,2 @@ + +
\ No newline at end of file diff --git a/source/templates/hippie/partials/_body_nav.njk b/source/templates/hippie/partials/_body_nav.njk new file mode 100644 index 0000000..7d500b3 --- /dev/null +++ b/source/templates/hippie/partials/_body_nav.njk @@ -0,0 +1,28 @@ + +
+ +
+{#
+? +
#} \ No newline at end of file diff --git a/source/templates/hippie/partials/_footer.njk b/source/templates/hippie/partials/_footer.njk new file mode 100644 index 0000000..30fb517 --- /dev/null +++ b/source/templates/hippie/partials/_footer.njk @@ -0,0 +1,4 @@ + +
+
+
\ No newline at end of file diff --git a/source/templates/hippie/partials/_head_script.njk b/source/templates/hippie/partials/_head_script.njk new file mode 100644 index 0000000..e00bacc --- /dev/null +++ b/source/templates/hippie/partials/_head_script.njk @@ -0,0 +1,101 @@ + + \ No newline at end of file diff --git a/source/templates/hippie/partials/_header.njk b/source/templates/hippie/partials/_header.njk new file mode 100644 index 0000000..d21c54c --- /dev/null +++ b/source/templates/hippie/partials/_header.njk @@ -0,0 +1,2 @@ + +
\ No newline at end of file diff --git a/source/view/_data/menu.json b/source/view/_data/menu.json deleted file mode 100644 index f437630..0000000 --- a/source/view/_data/menu.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "text": "New", - "href": "#new" - }, - { - "text": "Continue", - "href": "#continue" - }, - { - "text": "Settings", - "href": "#options" - }, - { - "text": "Leave", - "href": "/" - } -] \ No newline at end of file diff --git a/source/view/_data/start.json b/source/view/_data/start.json deleted file mode 100644 index 65bfb14..0000000 --- a/source/view/_data/start.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "text": "Index", - "href": "/" - }, - { - "text": "Basics", - "href": "/demo/basics.html" - }, - { - "text": "Portal", - "href": "/demo/examples/portal.html" - } -] \ No newline at end of file diff --git a/source/view/_includes/hippie-view b/source/view/_includes/hippie-view deleted file mode 160000 index 49fa858..0000000 --- a/source/view/_includes/hippie-view +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 49fa85800392bc217653e6a90573feda4a1dc0ed diff --git a/source/view/demo/art/10print.liquid b/source/view/demo/art/10print.liquid deleted file mode 100644 index 2a62d3d..0000000 --- a/source/view/demo/art/10print.liquid +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: 10print -tags: -- demoArt ---- -{% layout 'hippie-view/simple.liquid' %} - -{% block style %} - -{% endblock %} - -{% block body %} - -{% endblock %} - -{% block script %} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/art/matrix.liquid b/source/view/demo/art/matrix.liquid deleted file mode 100644 index 326c77e..0000000 --- a/source/view/demo/art/matrix.liquid +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: Matrix -tags: -- demoArt ---- -{% layout 'hippie-view/simple.liquid' %} - -{% block style %} - -{% endblock %} - -{% block body %} - -{% endblock %} - -{% block script %} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/art/squares2.liquid b/source/view/demo/art/squares2.liquid deleted file mode 100644 index fb44db9..0000000 --- a/source/view/demo/art/squares2.liquid +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: Squares² -tags: -- demoArt ---- -{% layout 'hippie-view/simple.liquid' %} - -{% block style %} - -{% endblock %} - -{% block body %}{% endblock %} - -{% block script %} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/basics.liquid b/source/view/demo/basics.liquid deleted file mode 100644 index a43bd90..0000000 --- a/source/view/demo/basics.liquid +++ /dev/null @@ -1,975 +0,0 @@ ---- -title: Basics -tags: -- demoIndex -order: 2 ---- -{% layout 'hippie-view/page.liquid' %} - -{% block title %}Grundlagen{% endblock %} - -{% block main %} -
- Dies ist einfach nur Text.
Weniger wäre nichts, denn dieser Text ist nicht durch ein spezifisches Element - umschlossen.
Das ist normalerweise nicht vorgesehen und wird hier nur zur Einführung und Anschauung - verwendet.

-
-

Es wirken nur die Eigenschaften des - <body> - Elements. Dieses Element umschließt den gesamten Inhalt des Dokumentes und kommt daher nur einmal vor. - Inhalte sind normalerweise durch Elemente definiert. Grundlegende Elemente teilen das Dokument zunächst in - Abschnitte.

-

Bereiche

-
-

Ein Abschnitt, welcher für sich alleine stehen kann, definiert sich durch - <article>. Solch ein Element wird oft detailliert gestaltet, kommt aber auch ohne - jegliche Gestaltung aus.

-

Noch allgemeiner ist das - <section> - Element. Es schafft Bereiche, um Inhalte zu strukturieren.

-

Bestimmte Bereiche haben einen vorgegebenen Zweck.
Folgende Bereiche sind vorgegeben:

-
- - -
-
-

Um einleitenden Inhalt festzuhalten, wird das - <header> - Element eingesetzt. Es beinhaltet häufig auch Navigationselemente. Dabei bezieht es sich auf den - nächsten, umgebenden Abschnitt.

- -
-
-

Auch abschließender Inhalt kann für einen Abschnitt definiert werden. Dazu wird - <footer> - eingesetzt.

-
-
- -

Zur feineren Strukturierung und Gliederung von Texten sind einige weitere Elemente verfügbar. Diese werden - nun der Reihe nach aufgeführt. Zu Beginn die Überschriften, da sie noch zu den Abschnitten gehören. Das - kommt vermutlich daher, da Abschnitte häufig eine kennzeichnende Überschrift beinhalten.

-

Überschrift 1

-

Eine Überschrift erster Ordnung - <h1> - ist sehr groß und steht daher oft außerhalb eines Textflusses. Sie schafft eine deutliche Trennung sowohl - inhaltlich wie auch optisch. Sie erzeugt einen Abstand gleich der horizontalen Linie über sich.

-

Überschrift 2

-

Die weiteren Überschriften - <h2> - bis - <h6> - gliedern Text und werden auch als Titel für andere Elemente eingesetzt.

-

Überschrift 3 ist in Großbuchstaben gesetzt

-

Überschrift 4 verwendet normale Buchstaben und gleicht ansonsten Überschrift 3

-
Überschrift 5 ist Überschrift 5
-
-
Überschrift 6
-

Überschriften können mit dem Element <hgroup> mit Absätzen gruppiert werden, um - beispielsweise Untertitel abzubilden.

-
-
-
-

Gruppierung

-

Ein Absatz - <p>. Zugegeben ein kurzer.

-

Aus mehreren Absätzen wird ein ganzer Text. Solche Texte haben gelegentlich großen informativen oder - unterhaltsamen Charakter.
Einfache Zeilenumbrüche werden darin mit - <br> - erreicht. Dies ist allerdings ein Element der Textebene und keine Gruppierung.

-

Die Unterteilung in Absätze ist eine von vielen Möglichkeiten Texte zu gruppieren und ihnen Struktur zu - verleihen. In diesem Dokument flattert Text normalerweise von Links daher. Er ist schwarz und in einer - serifenlosen Schrift gesetzt. Zu weiteren Formatierungen, die eher auf einer Ebene der Zeichen einzuordnen - ist, wird im Verlauf näher eingegangen. Zunächst die Struktur:

-

Text sitzt gerne auch mal zentriert.

-
- p.txt_center -
-

Rechtsbündig ist schon eher eine Ausnahme bzw. Besonderheit.

-
- p.txt_right -
-
Das Element - <address> - hat den Zweck, Kontaktinformationen bereitzustellen. Diese werden, je nach Position des Elements im - Kontext der gesamten Seite, anders gewertet. -
-

Texte können auf verschiedene Arten unterteilt werden. Dafür werden unterschiedlich formatierte - <hr> - Elemente verwendet. Die horizontale Linie ist die Ausgangsformatierung, daher auch der abgekürzte Name des - Elements. Eine Linie ist schwarz und durchgezogen.

-
-

Es ist auch eine unsichtbare Unterteilung möglich:

- -
- hr.hidden -
-

Die Linie darf auch gepunktet sein. Zudem sind verschiedene Längen möglich. Diese sind immer ein Prozentwert - der verfügbaren Breite. Hier in gleicher Reihenfolge 100%, 50% und 25%:

-
-
- hr.dotted -
-
-
- hr.space_even_half -
-
-
- hr.dotted.space_even_fourth -
-

Zur horizontalen Unterteilung kommt natürlich auch eine vertikale Trennung hinzu. - Text kann so zum Beispiel in mehrere Spalten unterteilt werden. Dies ist hilfreich, wenn ein Text durch eine - breite Fläche sehr lange Zeilen bekommen würde. Es ist dann schwer den neuen Zeilenanfang zu finden. Die - vertikale Trennung dient in erster Linie dazu, diesem Umstand zu begegnen. Auch hier kann die Unterteilung - viele Formen annehmen.

-
- p.column_2 -
-

Drei Spalten gilt es jetzt also zu füllen. Dann erst wird die Trennung - der Spalten durch eine Linie sichtbar.

-
- p.column_3.column_line -
-

Ist der Text nicht lang genug bleibt eventuell eine Spalte leer. Diesmal wird - dies aber nicht passieren, denn das Anschauungsbeispiel ist ja nun durch den vorherigen Absatz schon - gegeben.
Oft ist es sinnvoll, Absätze mit mehreren Spalten deutlich von nachfolgenden Absätzen zu - trennen. Da der Textfluss spaltenweise verläuft, liest man eventuell an der falschen Stelle weiter.
Auch - das zeigen diese beiden Absätze ganz gut.

-

Es gibt die Möglichkeit vorformatierten Text darzustellen - <pre>.

-
dadurch
bleiben
einrückungen
durch
tabulatoren
erhalten.
-

Wird Bezug auf fremde Inhalte genommen, kommt ein Zitat - <blockquote> - zur Anwendung. Es besteht aus der Aussage und der Quelle.

-
-

Ein Zitat (das, lateinisch citatum „Angeführtes, Aufgerufenes“ zu lat. citāre „in Bewegung setzen, - vorladen“, vgl. „jemanden vor Gericht zitieren“) ist eine wörtlich übernommene Stelle aus einem Text - oder ein Hinweis auf eine bestimmte Textstelle.

-

- Wikipedia -

-
-
- blockquote>p+p.quote_source -
-

Gerade bei wörtlichen Zitierungen kommt häufig das Anführungszeichen zum Einsatz. Es kann durch die - Formatierung automatisch ergänzt werden.

-
-

Das kannst du schon so machen aber dann isses halt Kacke.

-

o. V.

-
-
- blockquote.quote_mark>p+p.quote_source -
-

Listen

-

Text bekommt durch Listen besondere optische wie auch inhaltliche Struktur. Es gibt ungeordnete - <ul> - und geordnete Listen - <ol> - sowie Beschreibungslisten - <dl>. Die beiden ersten Varianten beinhalten das Listenelement - <li>. Beschreibungslisten beinhalten jeweils das Paar von Ausdruck - <dt> - und Beschreibung - <dd>. Im Folgenden eine Liste der Listen in ihrer Ausgangskonfiguration:

-
    -
  • Ungeordnete
  • -
  • Listen
  • -
-
    -
  • Verschiedener
  • -
  • Art
  • -
-
    -
  1. Geordnete
  2. -
  3. Liste
  4. -
-
-
Beschreibungsliste
-
Auch Definitionslisten genannt
-
Ausdruck
-
Beschreibung
-
-

Auch Inhalte, die nicht in Textform sind, können durch einen Bezug integriert werden. Wie diese Fahne werden - sie mit - <figure> - umschlossen und tragen eine Bezeichnung, welche mit - <figcaption> - ausgezeichnet wird.

-
-
Fahne
- {% comment %}// TODO: Durch Platzhalter ersetzten und Prozentangaben ermöglichen{% endcomment %} - - Flag - - - - - - - - - - -
-
- figure>figcaption+{element} -
- -

Eine sehr klar definierte Gruppierung stellt das Element - <main> - dar. Es umschließt den hauptsächlichen Inhalt des Dokumentes.

-

Eine von sich aus undefinierte Möglichkeit zur Gruppierung von Text besteht durch - <div>. Dieses Element hat, ohne weitere Klassifizierung keine Auswirkungen auf die - Erscheinung oder die inhaltliche Aussage. Daher der allgemeine Einsatz.

-
-

Es wird allerdings häufig eingesetzt und bekommt vielfältige Funktionen zugeordnet wie diese - hervorgehobene Information zeigt.

-
-
- div.div_info>p -
-
-
-

Textebene

-

Verweise

- -

Nicht nur Text kann als Verweis verwendet werden. Auch andere Elemente wie Bilder können verknüpft werden. - Abhängig von ihrer Funktion und ihrem Zweck werden Verweise unterschiedlich formatiert. - Farbige - oder - unterstrichene Varianten - sind einfache Beispiele.

-

Wird der Verweis innerhalb eines - <nav> - Elementes notiert, bekommt er die spezielle Bedeutung eines Navigationsverweises innerhalb des Dokumentes - oder der Anwendung. Verweise werden dann durchaus auch wie Schaltflächen dargestellt.

- - -

Formatierungen

-

Texte, Wörter oder Zeichen können vielfältig formatiert werden.

-

Sie können - fett - <b> - oder - kursiv - <i> - geschrieben sein. - - Auch beides ist möglich!?! Sollen sie nicht nur anders - aussehen, sondern auch - eine besondere inhaltliche Bedeutung - bekommen, werden sie mit - <strong> - und - <em> - ausgezeichnet.

-

Das - <u> - Element stellt eine Spanne von Text mit einer unartikulierten, wenn auch explizit dargestellten, - nicht-textuellen Anmerkung dar, wie z.B. die Beschriftung des Textes als Eigenname wie - Interaktionsweise, oder die Beschriftung des Textes als - flasch - (falsch) geschrieben.

-

Ähnlich ist es mit dem Element - <small>. - Es steht für Randnotizen, wird aber häufig auch kleiner dargestellt. -

-

Ist ein Text nicht mehr korrekt oder relevant kann er mit - <s> - markiert werden:
- Die Erde ist eine Scheibe. -

-

Ein besonderer inhaltlicher Bezug ist der Titel eines Werkes. So was kann mit - <cite> - ausgezeichnet werden. - Pulp Fiction, ist ein super Film - zum Beispiel.

-

Um ein Zitat direkt im Text zu verwenden benutzt man das - <q> - Element. Es platziert Anführungszeichen um die Aussage:

-

Sie sagte: - Du wolltest staubsaugen!
Er sagte: - Mach' ich morgen. -

-

Mit dem - <dfn> - Element werden Begriffe definiert. Es wird häufig mit dem Element für Abkürzungen - <abbr> - gemeinsam verwendet. Die eigentliche Definition kann dabei auch im Attribut - title - stehen. Dies ist ein globales Attribut, das erklärende Informationen zu dem Element enthält. Diese wird - typischerweise beim darauf Zeigen eingeblendet.

-

- - HIPPIE - - is a recursive acronym for - Hippie interweaves preeminent personal interface elements.

-

Die besondere Auszeichnung - <ruby> - bezeichnet ein Anmerkungssystem, bei dem der Text - zusammen mit seiner Anmerkung in einer Zeile erscheint. - Das System verwendet die folgenden weiteren Elemente mit spezifischer Bedeutung:

-
-
- <rb> -
-
Basis Textkomponente
-
- <rt> -
-
Annotation
-
- <rtc> -
-
Einzelne Komponente einer Annotation
-
- <rp> -
-
Alternative bei fehlender Unterstützung
-
-
-
- - Basis - Auszeichnung - - - 今日 - きょう - - - ♥ - : - - Herz - , - - - Cœur - - . - ☘ - : - - Kleeblatt - , - - - Trèfle - - . - ✶ - : - - Stern - , - - - Étoile - - . - -
-
-

Wikipedia erklärt dies ausführlicher unter - Ruby Annotation.

-

Es gibt auch mehrere besondere Elemente um Maschinensprache oder Programmiersprache zu bezeichnen. Dabei wird - unterschieden, ob der Inhalt nur für Menschen ausgezeichnet wird oder auch maschinen-lesbar sein soll. Die - Elemente - <data> - und - <time> - enthalten eine maschinen-lesbare Repräsentation des Inhaltes:

-
-
- 0 - ≠ - NULL -
-
- <data>0</data> ≠ <data>NULL</data> -
-
Der Wert - NULL - mit Attribut -
-
- <data value="NULL">NULL</data> -
-
- -
-
- <time>2018-10-08</time> -
-
Die Zeitangabe - - - - mit Attribut -
-
- <time datetime="2018-10-08">Gestern</time> -
-
-

Die Auszeichnung - <code> - wurde bis hier hin schon verwendet. Sie markiert ebenfalls Maschinensprache. Allerdings dient sie dazu von - Menschen gelesen zu werden. In diesem Dokument werden alle Elemente, die erklärt werden wiederum mit diesem - Element markiert.

-

Für zusammenhängende Blöcke wird die Auszeichnung oft in Kombination mit dem Element - <pre> - verwendet:

-
<html>
<head>
<title>hyper text markup language</title>
</head>
<body id="root">
<!-- content goes here -->
<p class="example">just like this.</p>
</body>
</html>
-

Dabei bleiben vorhandene Textformatierungen wie Zeilenumbrüche und Einrückung erhalten.

-

- var def = "Definition einer Variablen"; -

-

In diesem Beispiel wird die Variable - def - definiert. Solch ein spezieller Typ Text kann mit dem dafür vorgesehenen Element - <var> - ausgezeichnet werden.

-

Soll beispielhaft auf Ausgaben von Computern verwiesen werden, wird das - <samp> - Element verwendet. Der Computer hat gesagt: - Ich kann das angegebene Objekt nicht finden.

-

Benutzereingaben haben ebenfalls ein eigenes Element - <kbd>. Damit werden Eingaben durch den Nutzer, wie zum Beispiel - Drücken Sie gleichzeitig Strg und A, gekennzeichnet.

-

Hoch- und Tiefgestellte Zeichen werden durch die Elemente - <sup> - und - <sub> - repräsentiert. Sie dienen nicht dazu rein optische Auszeichnungen zu erreichen, sondern werden für ihren - jeweiligen Zweck eingesetzt. In der Mathematik oder Chemie sind sie üblich:

-

Beispielsweise die Formel - E=m - c - 2 - oder das Element H2O

-

Die Zeichen in Absätzen bis hin zu ganzen Texten können, mit einem geeigneten Eingabegerät, markiert werden. - Dies stellt sich wie folgt dar:

-

Beispiel zum markieren 😉.

-

Eine Markierung kann, mittels - <mark>, auch durch den Autor geschehen. Diese stellt sich ein wenig anders dar: - Diese Worte sind markiert. -

-

Um Text, dessen schreibweise nicht vorhersehbar ist, zu markieren wie z.B. Benutzernamen - كائن بشري - , die auch rechtsbündig geschrieben sein können, wird das - <bdi> - Element eingesetzt.
Die Schreibweise kann auch vom Author vorgegeben und expliziert geändert werden. - Dies wird dem - <bdo> - Element umgesetzt. Die Richtung wird dann mit dem Attribut - dir - angegeben. -

-
    -
  • - كائن بشري -
  • -
  • - إنسان آلي -
  • -
-

Neben den vielen speziellen Elementen gibt es auch ein Element, das keine vordefinierte Bedeutung hat. Es ist - das - <span> - Element.
Es dient dazu ganz individuelle Auszeichnungen zu ermöglichen die eher optische Auswirkungen - haben und eben keine inhaltlichen. Mit den Attributen - id - oder - class - werden dazu eigene Typen des Elements definiert. Diese Möglichkeit der Definition von individuellen - Elementen ist ein Grundprinzip der Auszeichnungssprache - HTML.

-

Mit der Einführung von Absätzen wurde auch schon das - <br> - Element erwähnt und seitdem häufig benutzt. Es erzeugt einen Zeilenumbruch. Es wird dadurch kein neuer - Absatz erstellt. Es dient auch nicht dazu optischen Abstand zu erzeugen, sondern innerhalb eines Absatzes - den Text umzubrechen.

-

Eine besondere Form des Zeilenumbruchs kann mit - <wbr> - eingesetzt werden. Es stellt die Möglichkeit für einen Zeilenumbruch dar. Da das Format eines - HTML-Dokumentes häufig nicht vorhersehbar ist, kann solch ein Element einen Umbruch erzeugen, falls ein Wort - zu lang für eine Textzeile sein sollte.

-

Und der Löwe brüllte "RRRR - - rrrr - - oooooooo - - aaaa - - AAAAAAAA - - HHHH - - hhhh - - rrrrrrrrr"! -

-

Es kann auch innerhalb von vorformatierten Texten Zeilenumbrüche ermöglichen

-

Änderungen

-

Werden Texte geändert, können solche Änderungen sichtbar gemacht werden. Somit können sie besser - nachvollzogen werden.
Zum Beispiel eine Ergänzung von Inhalt.

- -

Der Inhalt wird dann mit - <ins> - ausgezeichnet. Wird Text entfernt, kommt - <del> - zum Einsatz.

-
Zu Tun
-
    -
  • Fahrrad reparieren
  • -
  • - Staubsaugen -
  • -
  • Tisch bauen
  • -
-
-
-

Eingebundene Inhalte

- {% render 'hippie-view/partials/placeholder-flag.liquid', type: 'img', width: '128', desc: 'Fahne von Interaktionsweise' %} -

Dies ist ein Bild. Es wird mit dem Element - <img> - eingebunden. Solch ein Bild hat üblicherweise die Attribute - width - und - height. Mit ihnen werden die Abmessungen (Breite und Höhe) festgelegt. Außerdem sollte immer - das Attribut - alt - für eine alternative Beschreibung in Textform verwendet werden.

-

Das Bild selbst liegt normalerweise als Datei vor. Die Quelle wird mit dem Attribut - src - angegeben. Es können einige Alternativen zur Angabe einer konkreten Datei eingesetzt werden. Zum Beispiel - können mehrere Dateien in Abhängigkeit zur Darstellung oder dem unterstützen Format angegeben werden. Dafür - können dann die Elemente - <source> - und - <picture> - in Kombination verwendet werden.

- {% render 'hippie-view/partials/placeholder-flag.liquid', type: 'img', src: 'file', width: '128', desc: 'Fahne von Interaktionsweise' %} -
-
-

Tabellen

-

Tabellen bieten besonders geordnete Struktur. Häufig werden in ihnen Text und Daten kombiniert dargestellt. - Dies erfordert individuelle Formatierungen. Einige grundlegende Eigenschaften werden im Folgenden - aufgezeigt. Tabellen sind in ihrer Größe entweder vordefiniert (fixiert) oder richten sich nach ihrem - Inhalt. Das bedeutet, die Spaltenbreite entspricht der breitesten ihrer Zellen.

- - - - - - - - -
Eineeinfache
Tabelle
-
- table.width_full>tr>td*2^tr>td[colspan=2] -
-
- - - - - - - - -
Einefreie (nicht fixierte)
Tabelle
-
- table>tr>td*2^tr>td[colspan=2] -
- - - - - - - - -
Mitohne
Linien
-
- table.blank>tr>td*2^tr>td[colspan=2] -
-
-

Die nächste Tabelle verwendet alle zur Auszeichnung verfügbaren Elemente und hat eine starre - Zellverteilung:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Beschreibung bzw. Zusammenhang der Tabelle
KopfzeileAB
Tabelle
mitTitel
Kopf-und
Fußzeile
FußzeileAB
-
- table.width_full.fix>caption+thead>tr>th[scope="col"]*3^^tbody>(tr>td*3)*3^^tfoot>tr>th[scope="row"]+td*2 -
-

Viele weitere Formate sind möglich.

-
-
-

Formulare

-

Spätestens hier werden Betrachter zu Benutzern. Texteingabefelder und verschiedene Bedienelemente geben - Möglichkeiten zur Interaktion. Diese Elemente sind in vielerlei Hinsicht besonders. Werden sie nicht - explizit gestaltet, ist ihre Erscheinung system- bzw. browserabhängig.
Üblicherweise stehen alle - Bedienelemente innerhalb eines - <form> - Elementes. Dieses ist notwendig um Angaben zur Kommunikation mit dem Server zu setzen. Es hat normalerweise - keine gestalterische Funktion.

-

Grundlegend ist das Element - <input>. Es hat viele Attribute um den Typ der Eingabe anzupassen. Ist es undefiniert, - nimmt es jegliche textbasierte Information auf und erhält eine Standardgröße.

-

-

Ein spezieller Typ des Eingabefeldes hat die Funktion einer Schaltfläche - <input[type="button"]>. Es gibt allerdings auch ein eigenes Element - <button> - dafür.

-

- -

-

- -

-

Interaktive Elemente können durch das Attribut - readonly - nur lesbar gemacht werden oder mittels - disabled - gänzlich deaktiviert werden.

- {% comment %}// TODO: Abstände, besonders margin generell überarbeiten{% endcomment %} -

- -

-

- -

-

Das Element - <label> - ergänzt interaktive Elemente um eine Beschriftung. Wichtig ist hier, dass die Beziehung beider Elemente - zueinander deutlich ist.

-

- -

-
-
- - - - - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
-
-

Zusätzlich zur Beschriftung einzelner Elemente gibt es auch die Möglichkeit Gruppierungen zu schaffen. Diese - werden mit - <fieldset> - realisiert.

-
-
- - -
-
-

Sie können mittels - <legend> - auch eine eigene Beschriftung erhalten.

-
- Einfache Eingabeelemente -
- -
- -
- -
- -
- -
- -
- - -
- - -
-
-
- Einfache Eingabeelemente mit Stil -
- -
- -
- -
-
- -
- -
- -
- -
- - -
-
-
- Weitere Eingabemöglichkeiten -

Innerhalb einer Gruppe können nicht nur Ein- und Ausgabefelder platziert werden. Andere Elemente ergänzen - Information oder lockern das Erscheinungsbild auf.

-

Hier nun eine Liste weiterer Arten von Eingabefeldern:

-
-
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
- -

Interaktive Elemente

-
-
-

Struktur

-
- -
- - - - -
- -
-
-
-

Medien

-
-
-

Druck

-
- -
-
-

Ende der Einführung

-

Dies war eine Übersicht der grundlegenden Elemente. Nun folgen Komponenten mit Kombinationen und - erweiterten Formatierungen.

-
-
-
-{% endblock %} diff --git a/source/view/demo/components.liquid b/source/view/demo/components.liquid deleted file mode 100644 index 40aad04..0000000 --- a/source/view/demo/components.liquid +++ /dev/null @@ -1,397 +0,0 @@ ---- -title: Components -tags: -- demoIndex -order: 3 ---- -{% layout 'hippie-view/page.liquid' %} - -{% block title %}Komponenten{% endblock %} - -{% block main %} -
-
-

Medienformat Abfragen

-
-
-
Umbruch bei 
-
-

Telefone und größer

-

Nur Telefone

-

Nur Schreibtafeln hochkant

-

Schreibtafeln und größer

-

Schreibtafeln im Querformat

-

Schreibtafeln quer und größer

-

Nur Arbeitsplatzrechner

-

Arbeitsplatzrechner und größer

-

Richtige Monitore und größer

-
-
-
- -
-
-

Übersicht aller Elemente

-

Es werden alle grundlegenden Elemente sowie ihre gestalteten Varianten angegeben. Die Elemente sind in - Gruppen eingeteilt, die auch das W3Consortium (html.spec.whatwg.org/multipage/#toc-semantics) - verwendet.

-

Zu jedem Element werden alle Attribute aufgelistet und die Umsetzung im HTML-Dokument als Emmet-Syntax - dargestellt.

-
-
article>h1+p{Elemente:}+pre+h2{<tag>}+h4{Varianten}
-
-

Bereiche

-

Elemente:

-
// body
// article
// section
// nav
// aside
// h1-h6
// header
// footer
-

<body>

-

Keine speziellen Attribute. Bekommt üblicherweise allgemeine Klassen zur Steuerung der Abmessungen - zugewiesen.

-

<article>

-
Ein Artikel.
-

<section>

-
Ein Bereich.
-

Varianten

-
section.sec_main_center
-
-

Ende.

-

Zentrierter Bereich.

-
-
section.sec_main_status
-
Status-Bereich
-

<nav>

- -

<aside>

-

Fließt um andere Inhalte. Klassen zur Positionierung und Kombination mit .bside.

-
aside.right+div.bside
-
- -
Hauptbereich
-
-

<h*>

-

Überschrift 1

-

Überschrift 2

-

Überschrift 3

-

Überschrift 4

-
Überschrift 5
-
-
Überschrift 6
-

Mit Absatz innerhalb von <hgroup>.

-
-
-

Überschrift 1 oder 2

-

Mit Absatz innerhalb von <hgroup>.

-
-

<header>

-
Kopfbereich
-
header.header_page
-
header.header_txt>h1
-
-

Überschrift 1

-

Innerhalb eines <header>.

-
-

<footer>

-

Bekommt üblicherweise Klassen zur Positionierung und der Abmessungen zugewiesen.

-
Fußbereich
-
- {% render 'hippie-view/partials/footer-pinned.liquid' %} -
-
-
-

Gruppierung

-

Elemente:

-
// p // address // hr // pre // blockquote // ol // ul // li // dl // dt // dd // figure // figcaption // main // div
-

<p>

-

Ein Absatz. Ein code Element innerhalb wird besonders behandelt.

-

Varianten

-
p.column_2
-

Spalten können angegeben werden.

-
p.column_3.column_line
-

Spalten können angegeben werden.

-

<address>

-
Anschrift, mit bestimmtem, ##### Format.
-

<hr>

-
-

Varianten

-
hr.hidden+hr.dotted+hr.double
- -
-
-
hr.vertical
-
-

<pre>

-
Vorformatierter Text.
-	erhält Umbrüche und Einrückung.
-			
-
pre.pre_code>code*2
-
let variable = true;
-()(){}
-

<blockquote>

-
Ein Zitat ist eingerückt.
-
blockquote.quote_mark>p+p.quote_source
-
-

Zitat mit automatischen Anführungszeichen

-

und Quellenangabe.

-
-

<dl>, <ol>, <ul>

-
-
Begriff
-
Definition
-
-
    -
  1. Eins
  2. -
  3. Zwei
  4. -
-
    -
  • Obst
  • -
  • Gemüse
  • -
-

Varianten

-
ul.list_basic.list_dash>li*2
-
    -
  • Mehr Abstand und
  • -
  • mit Unterstrichen.
  • -
-
ul.link>(li>a)*2
- -

<figure>

-
figure>figcaption+{element}
-
-
Bezeichnung
- Grafisches Element. -
-

<main>

-
Hauptbereich
-

<div>

-

Varianten

-
div.div_info>p
-
-

Absatz in einer Box mit dem Typ Information.

-
-
div.box_space>div.box_cube>span
-
-
Text
-
-
div.box_placeholder+hr+div.box_placeholder_bkg
-
-
-
-
-
-

Tabellen

-

Elemente:

-
// table // caption // colgroup // col // tbody // thead // tfoot // tr // td // th
-

<table>

-

Varianten

-
table.width_full.fix>(thead>tr>th.pre[scope="col"]+th[scope="col"]*3)+tbody>tr>td.pre+td*3
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KopfzeileAB
VorspalteEine
1erweiterte
2Tabelle
-
table.width_full.striped.fix.free>tr>td*3
- - - - - - - - - - - - - - - - - - - - - -
Tabelle
ohneRahmen
jedochmit
Streifen
-
table>(thead>tr>th[scope="col"]*3)+(tbody>tr>td*2+td.txt_right)+tfoot>tr>th[colspan="2"]+td.txt_right
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Die Verteilung der Zellen ist hier von ihrem Inhalt abhängig.
BezeichnungMengeWert
Alpha18990
Bravo101
Charlie11
Summe9001
-
table.width_full.fix>tr>td+td.ellipsis+td[style="width: 50%"]
- - - - - - -
IndexZelle mit viel Inhalt der nicht umbricht und eingeschränkt wird.Zelle mit Angabe der Breite.
-
table.grid>(tr>td+td.ellipsis+td)*2
- - - - - - - - - - - -
IndexZelle mit viel Inhalt der nicht umbricht und eingeschränkt wird.Inhalt bestimmt die Breite
101Zelle mit viel Inhalt der nicht umbricht und eingeschränkt wird.Zelle
-
-
-

Formulare

-

Elemente:

-
// form // label // input // button // select // datalist // optgroup // option // textarea // output // progress // meter // fieldset // legend
-

<input>

-
- - - - - -
-

Varianten

-
input.button_io+button.button_io
-
- - -
-
- - - -
-
-
- - -
- - CapsLock is on. -
-
-

<select>

- -
-
-{% endblock %} - -{% block script %} -{{ block.super -}} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/blog.liquid b/source/view/demo/examples/blog.liquid deleted file mode 100644 index a3fad21..0000000 --- a/source/view/demo/examples/blog.liquid +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Blog -tags: -- demoExample ---- -{% layout 'hippie-view/simple.liquid' %} - -{% block body %} -
-
-

Blog

-
- -
- {%- for post in collections.article -%} -
- {{ post.content }} -
- {%- endfor -%} -
-
{% text hippie.placeholders.name %}
-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/blog/article.md b/source/view/demo/examples/blog/article.md deleted file mode 100644 index 99b92e2..0000000 --- a/source/view/demo/examples/blog/article.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -tags: - - blog - - article -title: "Artikel" -publishDate: JJJJ -description: Text ---- -# Titel - -Inhalt diff --git a/source/view/demo/examples/card.liquid b/source/view/demo/examples/card.liquid deleted file mode 100644 index 9ffbd07..0000000 --- a/source/view/demo/examples/card.liquid +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Card -tags: -- demoExample ---- -{% assign pageClass = "html_card" %} -{% layout 'hippie-view/simple.liquid' %} - -{% block body %} -
-
- {% render 'hippie-view/partials/placeholder-flag.liquid', type: '', id: 'flag' %} - {% comment %}Background flag dithered{% endcomment %} -
-
-
-

Titel
und Beschreibung

-

{% text hippie.placeholders.name %}

-

- {% link hippie.placeholders.mail, '', '', 'card_address' %}
- {% link hippie.placeholders.domain, 'site.tld', '', 'decent' %} - · - {% text hippie.placeholders.address, '', 'decent' %}

-
-
-{% endblock %} - -{% block script %} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/clock.liquid b/source/view/demo/examples/clock.liquid deleted file mode 100644 index cc44610..0000000 --- a/source/view/demo/examples/clock.liquid +++ /dev/null @@ -1,488 +0,0 @@ ---- -title: Clock -tags: -- demoExample ---- -{% assign bodyClass = 'body_clock' -%} -{% layout 'hippie-view/simple.liquid' %} - -{% block body %} -
- - -
-
-{% endblock %} - -{% block assets %} - - - -{% endblock %} - -{% block script %} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/game/index.liquid b/source/view/demo/examples/game/index.liquid deleted file mode 100644 index 38eb6b6..0000000 --- a/source/view/demo/examples/game/index.liquid +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Game -tags: -- demoExample -- index ---- -{% layout 'hippie-view/simple.liquid' %} - -{% block body %} -
- -
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/game/intro.liquid b/source/view/demo/examples/game/intro.liquid deleted file mode 100644 index 9dd0ede..0000000 --- a/source/view/demo/examples/game/intro.liquid +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: Intro -tags: -- game ---- -{% assign bodyClass = 'body_intro' -%} -{% layout 'hippie-view/app.liquid' %} - -{% block body %} -
-
-
- I -
-
-
-
-
0%
-
-
-
- - {% brand 'brand' %} -

Marke

- {% endbrand %} -

Powered by

-
    -
  • Vendor
  • -
  • IDE
  • -
  • Engine
  • -
-
-
-

Agreement

-

This needs to be seen and acknowledged.
So an interaction must be made to continue.

-
-
-
-
Hello World!
-

Only left mouse click or any key

-
-{% endblock %} - -{% block assets %} -{{ block.super -}} - -{% endblock %} - -{%- block script %} -{{ block.super -}} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/game/menu.liquid b/source/view/demo/examples/game/menu.liquid deleted file mode 100644 index fb778f7..0000000 --- a/source/view/demo/examples/game/menu.liquid +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Menu -tags: -- game ---- -{% assign bodyClass = 'body_menu' -%} -{% layout 'hippie-view/simple.liquid' %} - -{% block body %} -{% render 'hippie-view/partials/game-menu.liquid', links: menu %} -
- {% brand 'brand', 'last' %} -

Marke

- {% endbrand %} -
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/game/mwo.liquid b/source/view/demo/examples/game/mwo.liquid deleted file mode 100644 index eb8f574..0000000 --- a/source/view/demo/examples/game/mwo.liquid +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: MWO -tags: -- game ---- -{% assign bodyClass = 'body_mwo' -%} -{% layout 'hippie-view/game.liquid' %} - -{% block links %} -{{ block.super -}} - -{% endblock %} - -{% block body %} - - -
- - - - - -
-{% endblock %} - -{% block assets %} - -{% endblock %} - -{% block script %} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/game/tfw.liquid b/source/view/demo/examples/game/tfw.liquid deleted file mode 100644 index 35d97ca..0000000 --- a/source/view/demo/examples/game/tfw.liquid +++ /dev/null @@ -1,351 +0,0 @@ ---- -title: TFW -tags: -- game ---- -{% assign bodyClass = 'body_tfw' -%} -{% layout 'hippie-view/game.liquid' %} - -{% block body %} -
- - - - - - - - - - - - -
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GiverCategoryFactionStatus
- Scavengers - AllScavOpen
- Eastern Consulate - AllEurasiaClosed
- СПЕЦНАЗ Commission - AllEuruskaOpen
- - - - - - - - - - - - - - - - - - - - - -
LocationQuestType
- Scorched Earth - ...Available
- Location name - ...Available
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
Active quests (Max.: 4)
King Of KingsActive
Garage Days Pt. 1Complete
-
-
- -
-
- - - - -
-
-
-
-{% endblock %} - -{%- block script %} -{{ block.super -}} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/hello.md b/source/view/demo/examples/hello.md deleted file mode 100644 index bd3cc65..0000000 --- a/source/view/demo/examples/hello.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Hello World" -layout: hippie-view/world.liquid -tags: -- demoExample ---- - -# {{ title }} - -This is a simple example for a *screen* written in Markdown, using Liquid *templates*. \ No newline at end of file diff --git a/source/view/demo/examples/portal.liquid b/source/view/demo/examples/portal.liquid deleted file mode 100644 index fb4dff0..0000000 --- a/source/view/demo/examples/portal.liquid +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Portal -tags: -- demoExample -image: - src: '/art/flag_websafe_128x80.gif' - alt: 'Flag of Interaktionsweise' -links: -- name: '1' - href: 'http://domain.tld' - img: '/art/bullet.gif' -- name: 'Zwei' - href: 'http://domain.tld' - img: '/art/bullet.gif' ---- -{% assign bodyClass = "body_portal" %} -{% layout 'hippie-view/simple.liquid' %} - -{% block body %} -
- {% render 'hippie-view/partials/gate-list', - name: 'Tor mit Symbol und Liste', - url: '../demo', - image: image, - links: links - %} - {% render 'hippie-view/partials/gate-simple', name: 'Tor', url: '../demo' %} -
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/songbook.liquid b/source/view/demo/examples/songbook.liquid deleted file mode 100644 index 06b7e47..0000000 --- a/source/view/demo/examples/songbook.liquid +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Songbook -tags: -- demoExample ---- -{% layout 'hippie-view/simple.liquid' %} - -{% block body %} -
-
-

Titel

-

Jahr

-
- -

Vorwort

-

Liederbuch für - Name.

-

Gibt es gebunden und hier - {% link hippie.placeholders.domain %}.
- Bestellungen bitte an - {% text hippie.placeholders.name %} - richten.

-
- {%- for piece in collections.song -%} - {% render 'hippie-view/partials/song.liquid', index: forloop.index0, data: piece.data, content: piece.content %} - {%- endfor -%} -
-
{% text hippie.placeholders.name %}
-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/songbook/0_artist-title.md b/source/view/demo/examples/songbook/0_artist-title.md deleted file mode 100755 index ccf1b5c..0000000 --- a/source/view/demo/examples/songbook/0_artist-title.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -tags: - - songbook - - song -title: "Interpret - Titel" -releaseDate: JJJJ -description: Text ---- -~~~ -[verse 1] -strophe 1 - -[chorus] -refrain - -[verse 2] -strophe 2 - -[chorus] -[bridge] -überleitung - -[interlude] -[chorus] -[outro] -~~~ diff --git a/source/view/demo/examples/start.liquid b/source/view/demo/examples/start.liquid deleted file mode 100644 index b8677cc..0000000 --- a/source/view/demo/examples/start.liquid +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: Start -tags: -- demoExample ---- -{% assign pageId = page.fileSlug -%} -{% assign bodyClass = 'body_start' -%} -{% layout 'hippie-view/simple.liquid' %} - -{% block body %} -{% render 'hippie-view/partials/header-status', hippie: hippie, links: start %} -
-
-
- - -
- -
-
-
1
-
2
-
3
-
4
-
-
-{% endblock %} - -{% block assets %} - - - -{% endblock %} - -{% block script %} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/ui/cli.liquid b/source/view/demo/examples/ui/cli.liquid deleted file mode 100644 index 7ffb5e5..0000000 --- a/source/view/demo/examples/ui/cli.liquid +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: CLI -tags: -- ui ---- -{% assign bodyClass = 'body_cli' -%} -{% layout 'hippie-view/app.liquid' %} - -{% block body %} -
-
-
Previous prompt
-
-
- - -
-
-{% endblock %} - -{%- block script %} -{{ block.super -}} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/ui/drag.liquid b/source/view/demo/examples/ui/drag.liquid deleted file mode 100755 index 051e866..0000000 --- a/source/view/demo/examples/ui/drag.liquid +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Drag -tags: -- ui ---- -{% layout 'hippie-view/app.liquid' %} - -{% block body %} -
- -
-
-
-
-
- {% render 'hippie-view/partials/frame-header.liquid' %} -
- {% render 'hippie-view/partials/frame-mode.liquid' %} -
-
-
-{% endblock %} - -{% block assets %} -{{ block.super -}} - -{% endblock %} - -{%- block script %} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/ui/explorer.liquid b/source/view/demo/examples/ui/explorer.liquid deleted file mode 100644 index 7bb21cf..0000000 --- a/source/view/demo/examples/ui/explorer.liquid +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: Explorer -tags: -- ui ---- -{% assign bodyClass = 'body_frame' -%} -{% layout 'hippie-view/app.liquid' %} - -{% block body %} -{% render 'hippie-view/partials/frame-header.liquid' %} -
- -
-
- - -
-
- -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - -
namedatetypesize
folderYYYY-MM-DDfolder4KB
fileYYYY-MM-DDfolder1B
-
- {% render 'hippie-view/partials/frame-status.liquid' %} -
-
-{% render 'hippie-view/partials/frame-mode.liquid' %} -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/ui/form.liquid b/source/view/demo/examples/ui/form.liquid deleted file mode 100644 index 65fe244..0000000 --- a/source/view/demo/examples/ui/form.liquid +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Form -tags: -- ui ---- -{% assign bodyClass = 'body_frame' -%} -{% layout 'hippie-view/app.liquid' %} - -{% block body %} -{% render 'hippie-view/partials/frame-header.liquid' %} -
-

Formulare

- - -
-
-
-
-
a
-
b
-
c
-
-
-{% endblock %} - -{%- block script %} -{{ block.super -}} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/ui/gallery.liquid b/source/view/demo/examples/ui/gallery.liquid deleted file mode 100755 index 8eadece..0000000 --- a/source/view/demo/examples/ui/gallery.liquid +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Gallery -tags: -- ui ---- -{% assign bodyClass = 'body_frame' -%} -{% layout 'hippie-view/app.liquid' %} - -{% block body %} -{% render 'hippie-view/partials/frame-header.liquid' %} -
-
-
- - -
- - {% render 'hippie-view/partials/frame-status.liquid' %} -
-
-{% render 'hippie-view/partials/frame-mode.liquid' %} -{% endblock %} - -{%- block script %} -{{ block.super -}} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/ui/index.liquid b/source/view/demo/examples/ui/index.liquid deleted file mode 100644 index 063daa5..0000000 --- a/source/view/demo/examples/ui/index.liquid +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: UI -tags: -- demoExample -- index ---- -{% layout 'hippie-view/simple.liquid' %} - -{% block title %}{{ title }}{% endblock %} - -{% block body %} -
- -
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/ui/table.liquid b/source/view/demo/examples/ui/table.liquid deleted file mode 100755 index 960ce8f..0000000 --- a/source/view/demo/examples/ui/table.liquid +++ /dev/null @@ -1,462 +0,0 @@ ---- -title: Table -tags: -- ui ---- -{% assign bodyClass = 'body_frame' -%} -{% layout 'hippie-view/app.liquid' %} - -{% block body %} -{% render 'hippie-view/partials/frame-header.liquid' %} -
-
-
- - -
- - - - - - - - - - - - - - - - - -
##NumberNameDescriptionAmountUnitPriceSum
- {% render 'hippie-view/partials/frame-status.liquid' %} -
-
- - - - - -{% render 'hippie-view/partials/frame-mode.liquid' %} -{% endblock %} - -{%- block script %} -{{ block.super -}} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/ui/tui.liquid b/source/view/demo/examples/ui/tui.liquid deleted file mode 100644 index 96d6486..0000000 --- a/source/view/demo/examples/ui/tui.liquid +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: TUI -tags: -- ui ---- -{% assign bodyClass = 'body_frame' -%} -{% layout 'hippie-view/app.liquid' %} - -{% block body %} -{% render 'hippie-view/partials/frame-header.liquid' %} -
-{% render 'hippie-view/partials/frame-mode.liquid' %} -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/examples/ui/windows.liquid b/source/view/demo/examples/ui/windows.liquid deleted file mode 100644 index 9e346aa..0000000 --- a/source/view/demo/examples/ui/windows.liquid +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Windows -tags: -- ui ---- -{% assign bodyClass = 'body_frame' -%} -{% layout 'hippie-view/app.liquid' %} - -{% block body %} -
- - - -
- -
- -
-
-
-
-
-
-
- task bar -
-
-
-{% endblock %} - -{% block assets %} -{{ block.super -}} - -{% endblock %} - -{%- block script %} -{{ block.super -}} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/index.liquid b/source/view/demo/index.liquid deleted file mode 100644 index 686ed94..0000000 --- a/source/view/demo/index.liquid +++ /dev/null @@ -1,81 +0,0 @@ ---- -permalink: "{{ hippie.permalink }}" -title: Index ---- -{% assign pageId = page.fileSlug -%} -{% assign pageClass = 'h_full_view' -%} -{% layout 'hippie-view/full.liquid' %} - -{% block body %} -
-
-

This is {{ hippie.brand | upcase }}

-

You can start using it by replacing this file with your own index page.

-

To do this you need to create a file - index.liquid|njk - inside the - source/view - folder. You can also create a - data.json - file inside the - source/view - folder as a global data source for your template files.

-

For a very basic start you can make a copy of the demo page - blank.liquid|njk. You can find it at - /source/view/demo/pages.

-

The - source/demo - folder contains an overview of all HTML elements and also examples for CSS style combinations and even whole - page layouts.
Follow the white rabbit.

-
-
  ()()
(..)
c(")(")
-

Overview

-
- -
-
-

Page

- -
-
-

Example

- -
-
-

Art

- -
-
-
-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/introduction.liquid b/source/view/demo/introduction.liquid deleted file mode 100644 index 5dea827..0000000 --- a/source/view/demo/introduction.liquid +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Introduction -tags: -- demoIndex -order: 1 ---- -{% layout 'hippie-view/page.liquid' %} - -{% block title %}Einführung{% endblock %} - -{% block main %} -
-
-
-

Introduction to HIPPIE

-

Hippie interweaves preeminent personal interface elements.

-
-
-
-

-

Contact: -

-

More: , -

-
-
-{% endblock %} - -{% block script %} -{{ block.super -}} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/layouts.liquid b/source/view/demo/layouts.liquid deleted file mode 100644 index 3f1e56a..0000000 --- a/source/view/demo/layouts.liquid +++ /dev/null @@ -1,329 +0,0 @@ ---- -title: Layouts -tags: -- demoIndex -order: 4 ---- -{% layout 'hippie-view/page.liquid' %} - -{% block title %}Gestaltungen{% endblock %} - -{% block main %} -
-
-

Sammlung formatierter Elemente

-

Die Elemente werden fortlaufend komplexer

-
-
-

Bereiche (sections)

-

section

-
section.overflow>div.float_space_left>img^p+p>br+a.lineLink
-
-
- {% render 'hippie-view/partials/placeholder-flag.liquid', type: 'img', src: 'file', width: '256', desc: 'Avatar' %} -
-

{% text hippie.placeholders.name %}
{% text hippie.placeholders.address %}

-

{% text hippie.placeholders.phone %}
{% link hippie.placeholders.mail, '', '', 'a_line' %}

-
-

nav

-
div.overflow>(nav.float_space_left>ul>(li>a.a_button{punkt $})*4+nav>ul>(li>a.a_button_border{stufe $})*4)
-
- - -
-
nav.nav_horizontal>ul>(li>a.a_button{abschnitt $})*4
- -
div.overflow>nav.nav_center_old>ul>(li>a.a_button{typ $})*4
-
- -
-

header

-
header.header_page>h1+p+nav.nav_separate_right>ul>(li>a.a_button{nav $})*4^+nav.nav_right>ul>(li>a.a_button{nav $})*4
-
-

Aufmacher

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis nec consectetur diam. Sed nisl odio, - volutpat nec nisi sit amet, commodo faucibus est. Donec lacinia vestibulum sapien. Morbi porttitor nibh - quis imperdiet scelerisque. Praesent rutrum quam eu sodales luctus.

- - -
-
header.header_page>nav.nav_right>ul>(li>a.a_button{nav $})*4
-
-
- -
-
-
footer.pos_abs.pin_bottom>nav.nav_column>ul>(li>a.a_button_text)*4
- -
-
-
-
-

Gruppierung (grouping)

-

p

-
p.txt_right+p.txt_center+p.txt_left
-

Rechts

-

Mittig

-

Links

-

h*

-
h3.txt_color_dark+p.txt_tiny
-

Dunkle Überschrift

-

Mit winzigem Textabsatz

-
a>h4
- -

Überschrift als Block-Verweis

-
-

Überschrift 1

-

Kann mehrmals, ohne großen Abstand oberhalb, untereinander stehen.

-

Überschrift 2

-

kann das ebenso.

-

hr

-
hr.space_even_half
-
-
hr.dotted.space_even_fourth
-
-

ul

-
nav>ul.link>(li>a)+li>a>img+span
- -

div

-
div.space_left_fourth>(hr+p+hr)
-
-
-

Eingerückter Inhalt

-
-
-
-
-

Eingebettet

-
- {% render 'hippie-view/partials/placeholder-flag.liquid', type: '', width: '128', desc: 'Fahne von Interaktionsweise' %} -
-
-
-

Tabellen (tabular data)

-
table.link>thead>tr>th{&nbsp;}+th{ab / zy}+th{neu / alt}^^(tbody>tr>td.icon[rowspan="2"]>img[width=16 height=16]^+td.link>span{name}+a[target=_blank]{url}^+td[rowspan="2"]{yyy-mm-dd}^tr>td.text>div.shorten{beschreibung})*2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Formulare (forms)

-

form

-
-

Show me a - - Sorted by - - - - Matching - - -

-
- -
-
-

Anmeldung

- - -
-
-

input

-
- - - - - -
-
-
-

Interaktiv (interactive)

-
-
-{% endblock %} - -{% block assets %} -{{ block.super -}} - -{% endblock %} -{% block script %} -{{ block.super -}} - -{% endblock %} \ No newline at end of file diff --git a/source/view/demo/pages/blank.liquid b/source/view/demo/pages/blank.liquid deleted file mode 100644 index 36a6802..0000000 --- a/source/view/demo/pages/blank.liquid +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Blank ---- -{% assign pageId = page.fileSlug -%} -{% layout 'hippie-view/simple.liquid' %} diff --git a/source/view/demo/pages/default.liquid b/source/view/demo/pages/default.liquid deleted file mode 100644 index b4d1c3d..0000000 --- a/source/view/demo/pages/default.liquid +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Default ---- -{% assign pageId = page.fileSlug -%} -{% assign pageClass = 'default' -%} -{% assign bodyClass = 'default' -%} -{% layout 'hippie-view/default.liquid' %} - -{% block title %}{{ title }}{% endblock %} - -{% block body %} - -{% endblock %} diff --git a/source/view/demo/pages/error/304.liquid b/source/view/demo/pages/error/304.liquid deleted file mode 100644 index b8280b2..0000000 --- a/source/view/demo/pages/error/304.liquid +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: 304 ---- -{% assign bodyClass = 'body_status' %} -{% layout 'hippie-view/status.liquid' %} - -{% block main %} -{{ block.super -}} -

Umleitung

-

Unverändert Not Modified

-
-

Der Inhalt der angeforderten Ressource hat sich seit der letzten Abfrage des Clients nicht verändert und wird - deshalb nicht übertragen. Zu den Einzelheiten siehe Browser-Cache-Versionsvergleich. -

-

Wikipedia

-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/pages/error/400.liquid b/source/view/demo/pages/error/400.liquid deleted file mode 100644 index 1bc9865..0000000 --- a/source/view/demo/pages/error/400.liquid +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: 400 ---- -{% assign bodyClass = 'body_status' %} -{% layout 'hippie-view/status.liquid' %} - -{% block main %} -{{ block.super -}} -

Client-Fehler

-

Fehlerhafte Anfrage! Bad Request

-
-

Die Anfrage-Nachricht war fehlerhaft aufgebaut.

-

Wikipedia -

-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/pages/error/401.liquid b/source/view/demo/pages/error/401.liquid deleted file mode 100644 index 78a9e98..0000000 --- a/source/view/demo/pages/error/401.liquid +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: 401 ---- -{% assign bodyClass = 'body_status' %} -{% layout 'hippie-view/status.liquid' %} - -{% block main %} -{{ block.super -}} -

Client-Fehler

-

Nicht autorisiert! Unauthorized

-
-

Die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden. Wie die Authentifizierung durchgeführt - werden soll, wird im „WWW-Authenticate“-Header-Feld der Antwort übermittelt.

-

Wikipedia -

-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/pages/error/403.liquid b/source/view/demo/pages/error/403.liquid deleted file mode 100644 index 6061132..0000000 --- a/source/view/demo/pages/error/403.liquid +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: 403 ---- -{% assign bodyClass = 'body_status' %} -{% layout 'hippie-view/status.liquid' %} - -{% block main %} -{{ block.super -}} -

Client-Fehler

-

Nicht erlaubt! Forbidden

-
-

Die Anfrage wurde mangels Berechtigung des Clients nicht durchgeführt, bspw. weil der authentifizierte Benutzer - nicht berechtigt ist, oder eine als HTTPS konfigurierte URL nur mit HTTP aufgerufen wurde.

-

Wikipedia -

-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/pages/error/404.liquid b/source/view/demo/pages/error/404.liquid deleted file mode 100644 index b52db3b..0000000 --- a/source/view/demo/pages/error/404.liquid +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 404 ---- -{% assign bodyClass = 'body_status' %} -{% layout 'hippie-view/status.liquid' %} - -{% block main %} -{{ block.super -}} -

Client-Fehler

-

Hier ist nichts. Not Found

-
-

Die angeforderte Ressource wurde nicht gefunden. Dieser Statuscode kann ebenfalls verwendet werden, um eine - Anfrage ohne näheren Grund abzuweisen. Links, welche auf solche Fehlerseiten verweisen, werden auch als Tote - Links bezeichnet.

-

Wikipedia -

-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/pages/error/408.liquid b/source/view/demo/pages/error/408.liquid deleted file mode 100644 index 79f4335..0000000 --- a/source/view/demo/pages/error/408.liquid +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: 408 ---- -{% assign bodyClass = 'body_status' %} -{% layout 'hippie-view/status.liquid' %} - -{% block main %} -{{ block.super -}} -

Client-Fehler

-

Zeitüberschreitung der Anforderung. Request Timeout

-
-

Innerhalb der vom Server erlaubten Zeitspanne wurde keine vollständige Anfrage des Clients empfangen.

-

Wikipedia -

-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/pages/error/500.liquid b/source/view/demo/pages/error/500.liquid deleted file mode 100644 index 1d59368..0000000 --- a/source/view/demo/pages/error/500.liquid +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: 500 ---- -{% assign bodyClass = 'body_status' %} -{% layout 'hippie-view/status.liquid' %} - -{% block main %} -{{ block.super -}} -

Server-Fehler

-

Allgemeiner Server Fehler!!! Internal Server Error

-
-

Dies ist ein „Sammel-Statuscode“ für unerwartete Serverfehler.

-

Wikipedia -

-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/pages/error/503.liquid b/source/view/demo/pages/error/503.liquid deleted file mode 100644 index 16ee802..0000000 --- a/source/view/demo/pages/error/503.liquid +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 503 ---- -{% assign bodyClass = 'body_status' %} -{% layout 'hippie-view/status.liquid' %} - -{% block main %} -{{ block.super -}} -

Server-Fehler

-

Dienst nicht verfügbar. Service Unavailable

-
-

Der Server steht temporär nicht zur Verfügung, zum Beispiel wegen Überlastung oder Wartungsarbeiten. Ein - „Retry-After“-Header-Feld in der Antwort kann den Client auf einen Zeitpunkt hinweisen, zu dem die Anfrage - eventuell bearbeitet werden könnte.

-

Wikipedia -

-
-{% endblock %} \ No newline at end of file diff --git a/source/view/demo/pages/maintenance.liquid b/source/view/demo/pages/maintenance.liquid deleted file mode 100644 index 35261ed..0000000 --- a/source/view/demo/pages/maintenance.liquid +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Maintenance ---- -{% assign pageClass = 'h_full_view' -%} -{% layout 'hippie-view/status.liquid' %} - -{% block body %} -
-

HIPPIE

-

Diese Seite wird gerade gewartet.

-
-{% endblock %} diff --git a/source/view/demo/pages/pages.json b/source/view/demo/pages/pages.json deleted file mode 100644 index 22cec81..0000000 --- a/source/view/demo/pages/pages.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "tags": "demoPage" -} diff --git a/vendor/normalizecss/normalize.css b/vendor/normalizecss/normalize.css new file mode 100644 index 0000000..b1d74e5 --- /dev/null +++ b/vendor/normalizecss/normalize.css @@ -0,0 +1,447 @@ +/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers (opinionated). + */ + +body { + margin: 0; +} + +/** + * Add the correct display in IE 9-. + */ + +article, +aside, +footer, +header, +nav, +section { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + * 1. Add the correct display in IE. + */ + +figcaption, +figure, +main { /* 1 */ + display: block; +} + +/** + * Add the correct margin in IE 8. + */ + +figure { + margin: 1em 40px; +} + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ + +a { + background-color: transparent; /* 1 */ + -webkit-text-decoration-skip: objects; /* 2 */ +} + +/** + * 1. Remove the bottom border in Chrome 57- and Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ + +b, +strong { + font-weight: inherit; +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font style in Android 4.3-. + */ + +dfn { + font-style: italic; +} + +/** + * Add the correct background and color in IE 9-. + */ + +mark { + background-color: #ff0; + color: #000; +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + */ + +audio, +video { + display: inline-block; +} + +/** + * Add the correct display in iOS 4-7. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Remove the border on images inside links in IE 10-. + */ + +img { + border-style: none; +} + +/** + * Hide the overflow in IE. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ + +button, +html [type="button"], /* 1 */ +[type="reset"], +[type="submit"] { + -webkit-appearance: button; /* 2 */ +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Remove the default vertical scrollbar in IE. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + */ + +details, /* 1 */ +menu { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Scripting + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + */ + +canvas { + display: inline-block; +} + +/** + * Add the correct display in IE. + */ + +template { + display: none; +} + +/* Hidden + ========================================================================== */ + +/** + * Add the correct display in IE 10-. + */ + +[hidden] { + display: none; +}