From fd4ca28a742f6dcdf94af200dad8b53cbe09da89 Mon Sep 17 00:00:00 2001 From: Jakub Jankiewicz Date: Sun, 21 Apr 2024 12:27:02 +0200 Subject: [PATCH] version 2.40.0 --- Makefile | 2 +- README.md | 18 +- assets/ascii_art.svg | 2 +- bower.json | 2 +- css/emoji.css | 4 +- css/jquery.terminal-2.40.0.css | 1210 ++ css/jquery.terminal-2.40.0.min.css | 19 + css/jquery.terminal.css | 4 +- css/jquery.terminal.min.css | 4 +- css/jquery.terminal.min.css.map | 2 +- js/jquery.terminal-2.40.0.js | 12609 ++++++++++++++++ ...3.min.js => jquery.terminal-2.40.0.min.js} | 6 +- js/jquery.terminal.js | 8 +- js/jquery.terminal.min.js | 6 +- js/jquery.terminal.min.js.map | 2 +- js/terminal.widget.js | 6 +- package-lock.json | 16 +- package.json | 2 +- terminal.jquery.json | 2 +- 19 files changed, 13881 insertions(+), 43 deletions(-) create mode 100644 css/jquery.terminal-2.40.0.css create mode 100644 css/jquery.terminal-2.40.0.min.css create mode 100644 js/jquery.terminal-2.40.0.js rename js/{jquery.terminal-2.39.3.min.js => jquery.terminal-2.40.0.min.js} (99%) diff --git a/Makefile b/Makefile index 0dd6a7e9..fca03aa7 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -VERSION=2.39.3 +VERSION=2.40.0 SED=sed CD=cd NPM=npm diff --git a/README.md b/README.md index b69c855f..5f966dc3 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@

- ASCII Art that represent text jQuery Terminal - JavaScript Library for Web Based Terminal Emulators

[JavaScript Library for Web Based Terminal Emulators](https://terminal.jcubic.pl) -[![npm](https://img.shields.io/badge/npm-2.39.3-blue.svg)](https://www.npmjs.com/package/jquery.terminal) -![bower](https://img.shields.io/badge/bower-2.39.3-yellow.svg) +[![npm](https://img.shields.io/badge/npm-2.40.0-blue.svg)](https://www.npmjs.com/package/jquery.terminal) +![bower](https://img.shields.io/badge/bower-2.40.0-yellow.svg) [![Build and test](https://github.com/jcubic/jquery.terminal/actions/workflows/build.yaml/badge.svg?branch=master&event=push)](https://github.com/jcubic/jquery.terminal/actions/workflows/build.yaml) [![Coverage Status](https://coveralls.io/repos/github/jcubic/jquery.terminal/badge.svg?branch=master&b68a7df0dd0c8bfd4f7e9bbbc513838b)](https://coveralls.io/github/jcubic/jquery.terminal?branch=master) ![NPM Downloads](https://img.shields.io/npm/dm/jquery.terminal.svg?style=flat) @@ -87,7 +87,7 @@ You can test current version at this URL: or if it doesn't use latest version (because of jsDelivr cache) you can force it with this URL: -* [https://jcubic.github.io/jquery.terminal/?ver=2.39.3](https://jcubic.github.io/jquery.terminal/?ver=2.39.3) +* [https://jcubic.github.io/jquery.terminal/?ver=2.40.0](https://jcubic.github.io/jquery.terminal/?ver=2.40.0) And development version using: @@ -106,20 +106,20 @@ or use jsDelivr: ``` -Then include js/jquery.terminal-2.39.3.min.js and css/jquery.terminal-2.39.3.min.css +Then include js/jquery.terminal-2.40.0.min.js and css/jquery.terminal-2.40.0.min.css You can grab the files from CDN: ```html - - + + ``` or ```html - - + + ``` If you always want latest version, you can get it from [unpkg](https://unpkg.com/) without specifying version, diff --git a/assets/ascii_art.svg b/assets/ascii_art.svg index 5030b632..5316882b 100644 --- a/assets/ascii_art.svg +++ b/assets/ascii_art.svg @@ -14,7 +14,7 @@ / / / // / // / ___/ // // / / / ___/ // / / / / /\ / // / /__ \___/____ \\__/____/_/ \__ / /_/____/_//_/_/_/_/_/ \/\__\_\___/ \/ /____/ - version 2.39.3 + version 2.40.0 diff --git a/bower.json b/bower.json index 43963afa..450ed4e4 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery.terminal", - "version": "2.39.3", + "version": "2.40.0", "main": [ "js/jquery.terminal.min.js", "js/jquery.mousewheel-min.js", diff --git a/css/emoji.css b/css/emoji.css index 74992c4c..d1908131 100644 --- a/css/emoji.css +++ b/css/emoji.css @@ -1,8 +1,8 @@ /* * Autogenerated by mkemoji script from jQuery Terminal * Copyright (C) Jakub T. Jankiewicz - * ship with version: 2.39.3 - * build: Sun, 21 Apr 2024 10:20:58 GMT + * ship with version: 2.40.0 + * build: Sun, 21 Apr 2024 10:26:16 GMT */ .terminal-output .emoji.hash,.cmd .emoji.hash{background-image:url(https://cdn.jsdelivr.net/npm/emoji-datasource-twitter/img/twitter/64/0023-fe0f-20e3.png);} .terminal-output .emoji.keycap_star,.cmd .emoji.keycap_star{background-image:url(https://cdn.jsdelivr.net/npm/emoji-datasource-twitter/img/twitter/64/002a-fe0f-20e3.png);} diff --git a/css/jquery.terminal-2.40.0.css b/css/jquery.terminal-2.40.0.css new file mode 100644 index 00000000..95b3b1e8 --- /dev/null +++ b/css/jquery.terminal-2.40.0.css @@ -0,0 +1,1210 @@ +/*! + * __ _____ ________ __ + * / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / / + * __ / // // // // // _ // _// // / / // _ // _// // // \/ // _ \/ / + * / / // // // // // ___// / / // / / // ___// / / / / // // /\ // // / /__ + * \___//____ \\___//____//_/ _\_ / /_//____//_/ /_/ /_//_//_/ /_/ \__\_\___/ + * \/ /____/ version 2.40.0 + * http://terminal.jcubic.pl + * + * This file is part of jQuery Terminal. + * + * Copyright (c) 2011-2023 Jakub T. Jankiewicz + * Released under the MIT license + * + * Date: Sun, 21 Apr 2024 10:26:15 +0000 + */ +.terminal .terminal-output .format, .cmd .format, +.cmd-prompt, .cmd-prompt div { + display: inline-block; +} +.terminal h1, .terminal h2, .terminal h3, .terminal h4, .terminal h5, .terminal h6, .terminal pre, .cmd { + margin: 0; +} +.cmd .cmd-clipboard { + position: absolute !important; + let: -16px; + left: calc(-16px / var(--pixel-density, 1)) !important; + top: 0 !important; + width: 16px; + height: 16px; + width: calc(16px / var(--pixel-density, 1)) !important; + height: calc(16px / var(--pixel-density, 1)) !important; + background: transparent !important; + border: none !important; + color: transparent !important; + outline: none !important; + padding: 0 !important; + resize: none !important; + box-shadow: none !important; + z-index: 1000 !important; + overflow: hidden !important; + white-space: pre !important; + text-indent: -9999em !important; /* better cursor hiding for Safari and IE */ + top: calc(var(--cursor-line, 0) * var(--size, 1) * (14px / var(--pixel-density, 1))) !important; +} +.visually-hidden { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + user-select: none; + width: 1px; + top: 0; + left: 0; +} +.cmd span.cmd-end-line, +.cmd span.cmd-end-line span, +.cmd div.cmd-end-line span[data-text]:last-child, +.cmd div.cmd-end-line span[data-text]:last-child span, +.cmd textarea, +.cmd .cursor + span:empty { + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Safari */ + -khtml-user-select: none; /* Konqueror HTML */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */ +} +.terminal img, .terminal audio, .terminal object, .terminal canvas { + cursor: default; +} +.terminal { + position: relative; + line-height: initial; + --base-background: var(--background, #000); + --base-color: var(--color); + contain: content; +} +.terminal-scroller { + position: relative; + overflow-y: auto; + scrollbar-gutter: stable; + height: 100%; + box-sizing: border-box; + overflow-x: hidden; +} +terminal.terminal-temp { + visibility: hidden; +} +body.terminal { + min-height: 100vh; + height: 100%; +} +html { + height: 100%; +} +body.terminal, body.full-screen-terminal { + margin: 0; + height: 100%; +} +body.full-screen-terminal .terminal { + height: 100%; +} +body.full-screen-terminal { + height: 100%; + height: var(--terminal-force-height, 100dvh); +} +.terminal > div.terminal-fill { + min-height: 100%; + height: 100%; +} +.terminal > .terminal-pixel { + position: absolute; + display: inline; + left: -2px; + top: -2px; + width: 1px; + height: 1px; +} +.terminal > .terminal-resizer, +.terminal > .terminal-font .terminal-resizer { + position: absolute !important; + top: 0 !important; + right: 0 !important; + bottom: 0 !important; + left: 0 !important; + overflow: hidden !important; + pointer-events: none !important; + z-index: -1 !important; + height: 100% !important; + border: none !important; + padding: 0 !important; + width: 100% !important; +} +.cmd { + padding: 0; + position: relative; + width: 100%; + z-index: 300; +} +.terminal .cmd, .terminal .cmd div { + background: transparent !important; +} +.terminal a[tabindex="1000"], +.terminal a[tabindex="1000"]:active, +.terminal a[tabindex="1000"]:focus { + outline: none; +} +.terminal .inverted, .cmd.cmd.cmd .inverted, +.terminal .terminal-inverted, .cmd.cmd.cmd .cmd-inverted { + background-color: #aaa !important; + color: #000 !important; +} +.terminal .terminal-output > :not(.raw) a[href], +.cmd a[href], +.terminal.external a[href] { + color: #3377FF; + color: var(--link-color, #3377FF); + cursor: pointer; +} +.cmd a[href]:not(.terminal-inverted), +.terminal .terminal-output > :not(.raw) a[href]:not(.terminal-inverted), +.terminal.external a[href]:not(.terminal-inverted) { + --color: var(--link-color, #3377FF); + /* conditionals: https://www.kizu.ru/conditions-for-css-variables/ */ + /* --glow: 0; */ + text-shadow: 0 0 calc(var(--glow) * 5px) var(--color, #ccc); +} +.terminal .terminal-output > :not(.raw) a[href].terminal-inverted, +.terminal.external a[href].terminal-inverted { + background: var(--color, #ccc); + /* conditionals: https://www.kizu.ru/conditions-for-css-variables/ */ + /* --glow: 0; */ + text-shadow: 0 0 calc(var(--glow) * 5px) var(--background, #000); +} +.terminal .terminal-output > :not(.raw) a[href]:hover, +.cmd a[href]:hover, +.terminal.external a[href]:hover { + background-color: #3377FF; + background-color: var(--link-color, #3377FF) !important; + color: #000; + color: var(--base-background, #000) !important; + text-decoration: none; +} +.terminal .terminal-output > :not(.raw) a[href] span, +.cmd a[href] span, +.terminal.external a[href] span { + /* + * shorter and simple solution + * it's hard to overwrite long :not selector (:not(a span) don't work) + */ + color: #3377FF !important; + --color: var(--link-color, #3377FF); + color: var(--link-color, #3377FF) !important; + text-decoration: underline; +} +.terminal .terminal-output > :not(.raw) a[href]:hover span, +.cmd a[href]:hover span, +.terminal.external a[href]:hover span { + background-color: #3377FF !important; + background-color: var(--link-color, #3377FF) !important; + color: #000 !important; + color: var(--background, #000) !important; + text-decoration: none; +} +.terminal a[href] { + transition-property: color, background-color; + transition-duration: 0.2s; + transition-timing-function: ease-out; +} +.cmd .cmd-cursor { + display: inline-block; +} +.cmd .cmd-cursor-line > span, +.cmd .cmd-cursor-line img { + display: inline-block; +} +.cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span, +.cmd .cmd-cursor.cmd-blink a, +.cmd .cmd-cursor.cmd-blink .fa, +.cmd .cmd-cursor.cmd-blink .far, +.cmd .cmd-cursor.cmd-blink .fas, +.cmd .cmd-cursor .emoji { + -webkit-animation: terminal-blink 1s infinite linear; + -moz-animation: terminal-blink 1s infinite linear; + -ms-animation: terminal-blink 1s infinite linear; + animation: terminal-blink 1s infinite linear; +} +.bar.terminal .inverted, .bar.cmd .cmd-inverted { + box-shadow: -2px 0 0 -1px #aaa; + box-shadow: -2px 0 0 -1px var(--original-color, #aaa); +} +.terminal, .terminal .terminal-output > div > div, .cmd .cmd-prompt { + display: block; + height: auto; +} +.terminal .terminal-output > div:not(.raw) div { + white-space: nowrap; + clear: both; +} +.cmd .cmd-prompt > span, .cmd .cmd-prompt > a, .cmd .cmd-prompt:empty { + float: left; +} +.cmd-prompt [data-text] > span, .cmd-wrapper > div { + white-space: pre; +} +.cmd [data-text] span, +.terminal [data-text] span { + display: inline-block; +} +.terminal-ouput span[style*="width"] { + min-height: 14px; + min-height: calc(var(--size, 1) * (14px / var(--pixel-density, 1))); +} +.terminal .terminal-output > :not(.raw) > div, +.cmd div, +.terminal.external div { + line-height: 1em; + line-height: calc((var(--size) * (16px / var(--pixel-density, 1))) + (1px / var(--pixel-density, 1))); +} +.cmd .cmd-prompt span.fa::before, +.cmd .cmd-prompt span.fab::before, +.cmd .cmd-prompt span.fad::before, +.cmd .cmd-prompt span.fal::before, +.cmd .cmd-prompt span.far::before, +.cmd .cmd-prompt span.fas { + position: relative; + top: 2px; +} +.terminal, +.terminal-output > :not(.raw), +.terminal-output > :not(.raw) span:not(.fas):not(.far):not(.fa), +.terminal-output > :not(.raw) a, +.cmd, +.terminal-font-forcer, +.cmd span:not(.fas):not(.far):not(.fa) { + font-family: monospace; + font-family: var(--font, monospace); +} +.terminal, +.cmd { + font-size: 12px; +} +.terminal-output > div:not(.raw) div::before, +.cmd .cmd-line::before { + content: '\0200B'; + width: 0; + display: inline-block; +} +.cmd .cmd-line { + white-space: nowrap; +} +.terminal span[data-text], +.cmd span[data-text] { + display: inline-block; +} +.terminal, terminal-output > div:not(.raw) div > span:not(.token):not(.inverted):not(.terminal-inverted):not(.cmd-inverted):not(.terminal-error):not(.emoji), +.cmd span[data-text]:not(.cmd-inverted):not(.token):not(.emoji) { + color: #aaa; + background-color: #000; +} +.terminal span[data-text] span, .cmd span[data-text] span { + text-decoration: inherit; +} +.terminal .ansi > div { + line-height: 13px !important; + line-height: calc(var(--size, 1) * (13px / var(--pixel-density, 1))) !important; +} +.cmd span.cmd-prompt, .cmd .cmd-prompt span { + --background: transparent; +} +.terminal-output .emoji, .cmd .emoji { + height: 12px; + height: calc(12px / var(--pixel-density, 1)); + background-size: contain; + background-repeat: no-repeat; + color: transparent; + position: relative; +} +.terminal .terminal-output .fa span, +.terminal .terminal-output .fas span, +.terminal .terminal-output .far span, +.cmd .fa span, +.cmd .fas span, +.cmd .far span { + background: transparent !important; + color: transparent !important; + clip: rect(1px,1px,1px,1px); + position: absolute; +} +.terminal-output .emoji, +.terminal-output .emoji span, +.cmd .emoji, .cmd .emoji span { + display: inline-block; + width: 2ch; +} +.terminal, .cmd { + box-sizing: border-box; +} +.cmd .cmd-cursor span:not(.token):not(.inverted) { + color: inherit; + background-color: inherit; +} +.cmd .emoji.emoji.emoji.emoji, .cmd .emoji.emoji.emoji.emoji span { + color: transparent; + background-color: transparent; +} +.cmd .cmd-cursor * { + background-color: transparent; +} +.terminal span[style*="width"] span, +.cmd span[style*="width"] span { + width: inherit; +} +.cmd div { + clear: both; +} +.cmd .cmd-prompt + div { + clear: right; +} +terminal .terminal-output > div { + margin-top: -1px; +} +.terminal-output > div.raw > div * { + overflow-wrap: break-word; + word-wrap: break-word; +} +.terminal .terminal-font { + position: absolute; + float: left; + font-size: inherit; + line-height: inherit; + top: -100%; + left: 0; + margin-bottom: 1px; +} +.cmd > span:not(.cmd-prompt) { + float: left; +} +.cmd .cmd-prompt span.cmd-line { + display: block; + float: none; +} +.terminal table { + border-collapse: collapse; +} +.terminal td { + border: 1px solid #aaa; +} +.cmd span[data-text]:not(.emoji):not(.fa):not(.fas):not(.far) span { + background-color: inherit; + color: inherit; +} +/* fix for underline on middle line */ +.cmd [role="presentation"].cmd-cursor-line { + position: relative; + z-index: 100; + cursor: text; +} +/* prompt above cursor line */ +.cmd .cmd-prompt { + position: relative; + z-index: 200; +} +.cmd [role="presentation"]:not(.cmd-cursor-line) { + overflow: hidden; +} +/* + * this is set so animation can select original color as backgound for cursor + * so span can have --color for selection + */ +.cmd { + --original-color: var( + --color, #aaa); +--original-background: var( + --background); +} +.cmd a[href] { + --original-color: var(--link-color, #3377FF); +} +/* DEFAULT ANIMATION */ +@-webkit-keyframes terminal-blink { + 0%, 50% { + background-color: #aaa; + background-color: var(--original-color, #aaa); + color: #000; + color: var(--original-background, #000); + -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + } + 50.1%, 100% { + background-color: inherit; + /* original background is set in emoji that need different style */ + color: inherit; + color: var(--original-color, #aaa) + } +} +@-moz-keyframes terminal-blink { + 0%, 50% { + background-color: #aaa; + background-color: var(--original-color, #aaa); + color: #000; + color: var(--original-background, #000); + -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + } + 50.1%, 100% { + background-color: inherit; + color: inherit; + color: var(--original-color, #aaa); + } +} +@keyframes terminal-blink { + 0%, 50% { + background-color: #aaa; + background-color: var(--original-color, #aaa); + color: #000; + color: var(--original-background, #000); + -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + } + 50.1%, 100% { + background-color: inherit; + color: inherit; + color: var(--original-color, #aaa); + -webkit-box-shadow: none; + box-shadow: none; + } +} +/* GLOW ANIMATION */ +@-webkit-keyframes terminal-glow { + 0%, 50% { + background-color: #aaa; + background-color: var(--original-color, #aaa); + color: #000; + color: var(--original-background, #000); + box-shadow: 0 0 3px #aaa; + -webkit-box-shadow: 0 0 3px var(--color, #aaa); + box-shadow: 0 0 3px var(--color, #aaa); + } + 50.1%, 100% { + background-color: inherit; + color: inherit; + -webkit-box-shadow: none; + box-shadow: none; + } +} +@-moz-keyframes terminal-glow { + 0%, 50% { + background-color: #aaa; + background-color: var(--original-color, #aaa); + color: #000; + color: var(--original-background, #000); + box-shadow: 0 0 3px #aaa; + -moz-box-shadow: 0 0 3px var(--color, #aaa); + box-shadow: 0 0 3px var(--color, #aaa); + } + 50.1%, 100% { + background-color: inherit; + color: inherit; + -moz-box-shadow: none; + box-shadow: none; + } +} +@keyframes terminal-glow { + 0%, 50% { + background-color: #aaa; + background-color: var(--original-color, #aaa); + color: #000; + color: var(--original-background, #000); + box-shadow: 0 0 3px #aaa; + box-shadow: 0 0 3px var(--color, #aaa); + } + 50.1%, 100% { + background-color: inherit; + color: inherit; + box-shadow: none; + } +} +/* BAR ANIMATION */ +@-webkit-keyframes terminal-bar { + 0%, 50% { + box-shadow: -2px 0 0 -1px #aaa; + box-shadow: calc(var(--line-thickness, 2) * -1px) 0 0 -1px var(--original-color, #aaa); + } + 50.1%, 100% { + box-shadow: none; + } +} +@-moz-keyframes terminal-bar { + 0%, 50% { + box-shadow: -2px 0 0 -1px #aaa; + box-shadow: calc(var(--line-thickness, 2) * -1px) 0 0 -1px var(--original-color, #aaa); + } + 50.1%, 100% { + box-shadow: none; + } +} +@keyframes terminal-bar { + 0%, 50% { + box-shadow: -2px 0 0 -1px #aaa; + box-shadow: calc(var(--line-thickness, 2) * -1px) 0 0 -1px var(--original-color, #aaa); + } + 50.1%, 100% { + box-shadow: none; + } +} +/* UNDERLINE ANIMATION */ +@-webkit-keyframes terminal-underline { + 0%, 50% { + box-shadow: 0 2px 0 #aaa; + box-shadow: 0 calc(var(--line-thickness, 2) * 1px) 0 var(--original-color, #aaa); + } + 50.1%, 100% { + box-shadow: none; + } +} +@-moz-keyframes terminal-underline { + 0%, 50% { + box-shadow: 0 2px 0 #aaa; + box-shadow: 0 calc(var(--line-thickness, 2) * 1px) 0 var(--original-color, #aaa); + } + 50.1%, 100% { + box-shadow: none; + } +} +@keyframes terminal-underline { + 0%, 50% { + box-shadow: 0 2px 0 #aaa; + box-shadow: 0 calc(var(--line-thickness, 2) * 1px) 0 var(--original-color, #aaa); + } + 50.1%, 100% { + box-shadow: none; + } +} +/* NONE ANIMATION */ +@-webkit-keyframes terminal-none { + 0%, 100% { + background-color: #aaa; + background-color: var(--original-color, #aaa); + color: #000; + color: var(--original-background, #000); + -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + } +} +@-moz-keyframes terminal-none { + 0%, 100% { + background-color: #aaa; + background-color: var(--original-color, #aaa); + color: #000; + color: var(--background, #000); + -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + } +} +@keyframes terminal-none { + 0%, 100% { + background-color: #aaa; + background-color: var(--original-color, #aaa); + color: #000; + color: var(--original-background, #000); + -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa); + } +} +.underline-animation .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span, +.underline-animation .cmd .cmd-cursor.cmd-blink a, +.underline-animation .cmd .cmd-cursor.cmd-blink .fa, +.underline-animation .cmd .cmd-cursor.cmd-blink .far, +.underline-animation .cmd .cmd-cursor.cmd-blink .fas, +.underline-animation .cmd .cmd-cursor .emoji { + -webkit-animation-name: terminal-underline; + -moz-animation-name: terminal-underline; + -ms-animation-name: terminal-underline; + animation-name: terminal-underline; +} +.glow-animation .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span, +.glow-animation .cmd .cmd-cursor.cmd-blink a, +.glow-animation .cmd .cmd-cursor.cmd-blink .fa, +.glow-animation .cmd .cmd-cursor.cmd-blink .far, +.glow-animation .cmd .cmd-cursor.cmd-blink .fas, +.glow-animation .cmd .cmd-cursor .emoji { + -webkit-animation-name: terminal-glow; + -moz-animation-name: terminal-glow; + -ms-animation-name: terminal-glow; + animation-name: terminal-glow; +} +.bar-animation .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span, +.bar-animation .cmd .cmd-cursor.cmd-blink a, +.bar-animation .cmd .cmd-cursor.cmd-blink .fa, +.bar-animation .cmd .cmd-cursor.cmd-blink .far, +.bar-animation .cmd .cmd-cursor.cmd-blink .fas, +.bar-animation .cmd .cmd-cursor .emoji { + -webkit-animation-name: terminal-bar; + -moz-animation-name: terminal-bar; + -ms-animation-name: terminal-bar; + animation-name: terminal-bar; +} +/* + Internet Explorer & Edge *, Safari ≤ 6 + source: https://w3reign.com/internet-explorer-edge-css-hacks/ +*/ + + +@supports (-ms-ime-align:auto) { + .cmd .cmd-clipboard { + margin-left: -9999px; + } + @keyframes terminal-blink { + 0%, 50% { + background-color: var(--original-color, #aaa); + color: var(--background, #000); + } + 50.1%, 100% { + background-color: var(--background, #000); + color: var(--original-color, #aaa); + } + } + @keyframes terminal-bar { + 0%, 50% { + border-left-color: var(--color, #aaa); + } + 50.1%, 100% { + border-left-color: var(--background, #000); + } + } + @keyframes terminal-underline { + 0%, 50% { + border-bottom-color: var(--color, #aaa); + line-height: 12px; + line-height: calc(var(--size, 1) * (12px / var(--pixel-density, 1))); + } + 50.1%, 100% { + border-bottom-color: var(--background, #000); + line-height: 12px; + line-height: calc(var(--size, 1) * (12px / var(--pixel-density, 1))); + } + } +} +/* IE hack Edge one don't work in IE11 */ +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .cmd .cmd-clipboard { + margin-left: -9999px; + } + .underline-animation .cursor.blink span span { + margin-top: 1px; + } + @-ms-keyframes terminal-blink { + 0%, 50% { + background-color: #aaa; + color: #000; + } + 50.1%, 100% { + background-color: #000; + color: #aaa; + } + } +} +.terminal h1::-moz-selection, +.terminal h2::-moz-selection, +.terminal h3::-moz-selection, +.terminal h4::-moz-selection, +.terminal h5::-moz-selection, +.terminal h6::-moz-selection, +.terminal pre::-moz-selection, +.terminal td::-moz-selection, +.terminal .terminal-output::-moz-selection, +.terminal .terminal-output div div::-moz-selection, +.terminal .terminal-output div div a::-moz-selection, +.terminal .terminal-output span[data-text]::-moz-selection, +.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas) span::-moz-selection, +.terminal .terminal-output .raw div::-moz-selection, +.cmd span[data-text]::-moz-selection, +.cmd span[data-text]:not(.far):not(.fa):not(.fas) span::-moz-selection { + background-color: #aaa; + color: #000; +} +/* this don't work in Chrome +.terminal tr td::-moz-selection { + border-color: #000; +} +.terminal tr td::selection { + border-color: #000; +} +*/ +/* fix selection/click on text that was echo without newline while prompt is relocated */ +.terminal .cmd { + pointer-events: none; +} +.terminal .cmd-prompt * { + pointer-events: visible; +} +.cmd-prompt > span:first-child { + margin-left: var(--prompt-offset); +} +.terminal .cmd-wrapper > div:not(.cmd-cursor-line), +.terminal .cmd-cursor-line > span, +.terminal .cmd textarea { + pointer-events: visible; +} +.terminal h1::selection, +.terminal h2::selection, +.terminal h3::selection, +.terminal h4::selection, +.terminal h5::selection, +.terminal h6::selection, +.terminal pre::selection, +.terminal td::selection, +.terminal .terminal-output::selection, +.terminal .terminal-output div div::selection, +.terminal .terminal-output div div a::selection, +.terminal .terminal-output span[data-text]::selection, +.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas) span::selection, +.terminal .terminal-output .raw div::selection, +.cmd span[data-text]:not(.far):not(.fa):not(.fas) span::selection { + /* + * use rgba to fix transparent selection in chrome + * http://stackoverflow.com/questions/7224445/css3-selection-behaves-differently-in-ff-chrome + */ + background-color: rgba(170, 170, 170, 0.99); + color: #000; +} +.terminal-output .emoji::-moz-selection, +.terminal-output .emoji span::-moz-selection, +.cmd .emoji::-moz-selection, +.cmd .emoji span::-moz-selection, +.cmd textarea::-moz-selection { + background-color: transparent !important; + color: transparent !important; +} +.terminal-output .emoji::selection, +.terminal-output .emoji span::selection, +.cmd .emoji span::selection, +.cmd .emoji::selection, +.cmd textarea::selection { + background-color: transparent !important; + color: transparent !important; +} + +.terminal .terminal-output > :not(.raw) .terminal-error, +.terminal .terminal-output > :not(.raw) .terminal-error * { + color: red; + color: var(--error-color, red); +} +.tilda { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 1100; +} +.ui-dialog-content .terminal { + width: 100%; + height: 100%; + box-sizing: border-box; +} +.ui-dialog .ui-dialog-content.dterm { + padding: 0; +} +.clear { + clear: both; +} +.terminal .terminal-fill { + position: absolute; + left: 0; + top: -100%; + width: 100%; + height: 100%; + margin: 1px 0 0; + border: none; + opacity: 0.01; + pointer-events: none; + box-sizing: border-box; +} +.terminal-scroller, .terminal .terminal-fill, .cmd-editable { + padding: calc(1px * var(--padding, 10) / var(--pixel-density, 1)); +} +.cmd-editable { + padding-top: 0; +} +/* padding added as margin to .cmd to fix FireFox bug see: https://stackoverflow.com/q/29986977/387194 */ +.terminal-scroller { + padding-bottom: 0; +} +.terminal .terminal-output > :not(.raw) .terminal-error, +.terminal .terminal-output > :not(.raw) .terminal-error * { + --color: var(--error-color, red); + text-shadow: 0 0 calc(var(--glow) * 5px) var(--color); +} +.terminal .terminal-output > :not(.raw) a[href] { + text-shadow: 0 0 calc(var(--glow) * 5px) var(--color); +} +.terminal .cmd { + margin-bottom: calc(1px * var(--padding, 10) / var(--pixel-density, 1)); + position: relative; +} +.terminal .partial, .terminal .partial > div { + display: inline-block; +} +@supports (--css: variables) { + .terminal, + .terminal-output > :not(.raw) span[data-text]:not(.token):not(.inverted):not(.terminal-inverted):not(.cmd-inverted):not(.terminal-error):not(.emoji), + .terminal-output > :not(.raw) a, + .terminal-output > :not(.raw) div, + .cmd, + .cmd span[data-text]:not(.cmd-inverted):not(.token):not(.emoji), + .terminal.external [data-text], + .cmd div { + color: var(--color, #aaa); + background-color: var(--background, #000); + } + .terminal [data-text], .cmd [data-text] { + /* conditionals: https://www.kizu.ru/conditions-for-css-variables/ */ + /* --glow: 0; */ + text-shadow: var(--text-shadow, 0 0 calc(var(--glow) * 5px) var(--color, #ccc)); + } + .terminal span[style*="--length"] { + /* + * default value for char-width taken from Google Chrome for default font + * to silence warning in webpack #371 + */ + width: calc(var(--length, 1) * var(--char-width, 7.23438) * 1px); + display: inline-block; + } + .terminal, + .terminal-output > :not(.raw) span, + .terminal-output > :not(.raw) a, + .terminal-output > :not(.raw) div, + .cmd, + .cmd span, + .cmd div { + font-size: calc(var(--size, 1) * (12px / var(--pixel-density, 1))); + } + .terminal-output .emoji, .cmd .emoji { + height: calc(var(--size, 1) * (12px / var(--pixel-density, 1))); + } + .cmd .clipboard { + top: calc(var(--size, 1) * (14 / var(--pixel-density, 1)) * var(--cursor-line, 0) * 1px); + } + .terminal .inverted, .cmd.cmd.cmd .inverted, .cmd.cmd.cmd .cmd-inverted { + --background: #000; + background-color: var(--color, #aaa) !important; + color: var(--background, #000) !important; + } + .cmd .cmd-cursor.cmd-blink { + color: var(--color, #aaa); + background-color: var(--background, #000); + } + .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span, + .cmd .cmd-cursor.cmd-blink a, + .cmd .cmd-cursor.cmd-blink .fa, + .cmd .cmd-cursor.cmd-blink .far, + .cmd .cmd-cursor.cmd-blink .fas, + .cmd .cmd-cursor.cmd-blink .emoji { + -webkit-animation: var(--animation, terminal-blink) 1s infinite linear; + -moz-animation: var(--animation, terminal-blink) 1s infinite linear; + -ms-animation: var(--animation, terminal-blink) 1s infinite linear; + animation: var(--animation, terminal-blink) 1s infinite linear; + --original-background: inherit; + } + .cmd .cmd-cursor.cmd-blink .emoji span { + color: transparent; + background: transparent; + } + .terminal h1::-moz-selection, + .terminal h2::-moz-selection, + .terminal h3::-moz-selection, + .terminal h4::-moz-selection, + .terminal h5::-moz-selection, + .terminal h6::-moz-selection, + .terminal pre::-moz-selection, + .terminal td::-moz-selection, + .terminal .terminal-output::-moz-selection, + .terminal .terminal-output div div::-moz-selection, + .terminal .terminal-output div div a::-moz-selection, + .terminal .terminal-output span[data-text]::-moz-selection, + /* + * font icons (fontawesome) don't render selection we make emoji the same becuase, + * selection on emoji looks weird + */ + .terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::-moz-selection, + .terminal .terminal-output .raw div::-moz-selection, + .cmd span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::-moz-selection { + background-color: var(--color, #aaa); + color: var(--background, #000); + } + .terminal .terminal-output div div a::-moz-selection { + background-color: var(--link-color, rgba(15, 96, 255, 0.99)) !important; + color: var(--background, #000) !important; + } + .terminal .terminal-output div div a:hover::-moz-selection { + background-color: var(--link-color, rgba(2, 50, 144, 0.99)) !important; + } + .terminal h1::selection, + .terminal h2::selection, + .terminal h3::selection, + .terminal h4::selection, + .terminal h5::selection, + .terminal h6::selection, + .terminal pre::selection, + .terminal td::selection, + .terminal .terminal-output::selection, + .terminal .terminal-output div div::selection, + .terminal .terminal-output div div a::selection, + .terminal .terminal-output span[data-text]:not(.emoji)::selection, + .terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::selection, + .terminal .terminal-output .raw div::selection, + .cmd span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::selection { + background-color: var(--color, rgba(170, 170, 170, 0.99)) !important; + color: var(--background, #000) !important; + } + .terminal .terminal-output div div a::selection { + background-color: var(--link-color, rgba(15, 96, 255, 0.99)) !important; + color: var(--background, #000) !important; + } + .terminal .terminal-output div div a:hover::selection { + background-color: var(--link-color, rgba(2, 50, 144, 0.99)) !important; + } +} +/* + * overwrite css variables that don't work with selection in Edge + */ +@property --color { + syntax: ''; + inherits: true; + initial-value: rgba(170, 170, 170, 0.99); +} +@property --background { + syntax: ''; + inherits: true; + initial-value: #000; +} +@property --link-color { + syntax: ''; + inherits: true; + initial-value: #3377FF; +} +@property --size { + syntax: ''; + inherits: true; + initial-value: 1; +} +@property --padding { + syntax: ''; + inherits: true; + initial-value: 10; +} +@supports (-ms-ime-align:auto) { + .terminal h1::selection, + .terminal h2::selection, + .terminal h3::selection, + .terminal h4::selection, + .terminal h5::selection, + .terminal h6::selection, + .terminal pre::selection, + .terminal td::selection, + .terminal .terminal-output div div::selection, + .terminal .terminal-output div div a::selection, + .cmd span[data-text]::selection { + background-color: rgba(170, 170, 170, 0.99); + color: #000; + } +} +/* PrismJS style overwrites */ +.terminal .token.token, +.terminal .token.operator, +.terminal .token.entity, +.terminal .token.variable, +.terminal .token.url, +.terminal .token.string, +.terminal .style .token.string, +.terminal .token.token, +.cmd .token.operator, +.cmd .token.entity, +.cmd .token.variable, +.cmd .token.url, +.cmd .token.string, +.cmd .style .token.string, +.cmd .token.token { + background-color: inherit; +} +/* FireFox hack +@supports (-moz-animation: foo) { + .terminal, + .terminal .terminal-output > :not(.raw) span, + .terminal .terminal-output > :not(.raw) a, + .terminal .terminal-output > :not(.raw) div, + .cmd, + .cmd span, + .cmd div { + line-height: calc(var(--size, 1) * 13px); + } +} +*/ +/* style for autocomplete menu */ +.cmd .cursor-wrapper ul { + list-style: none; + margin: 0; + padding: 0; + float: left; + position: absolute; + top: 14px; + left: 0; +} +.cmd .cursor-wrapper li { + cursor: pointer; + white-space: nowrap; +} +.cmd .cursor-wrapper li:hover { + background: #aaa; + color: #000; +} +.cursor-wrapper { + position: relative; +} +.terminal-output img { + vertical-align: top; +} +.cmd img { + height: 14px; + height: calc(var(--size, 1) * (14px / var(--pixel-density, 1))); + border: 1px solid transparent; +} +.cmd-cursor img { + border-color: #ccc; + border-color: var(--color, #ccc); +} +.terminal-output svg.terminal-broken-image { + height: calc(var(--size, 1) * (14px / var(--pixel-density, 1))); +} +.terminal-output svg.terminal-broken-image use { + fill: var(--color, #ccc); +} +.terminal-error { + --color: var(--error-color); +} +.terminal-glow { + --animation: terminal-glow; +} +.terminal-glow span[data-text], +.terminal-glow .cmd-prompt > span, +.terminal-glow a[data-text], +.terminal-glow [data-text] span, +.terminal-glow .terminal-output > div span, +.terminal-glow .terminal-output > div a[href] { + text-shadow: 1px 1px 5px #ccc; + text-shadow: 1px 1px 5px var(--color, #ccc); +} +/* is_bottom detection */ +.terminal-scroll-marker { + position: relative; + height: 1px; + height: calc(1px / var(--pixel-density, 1)); + margin-top: -1px; + margin-top: calc(-1px / var(--pixel-density, 1)); + z-index: 100; +} +.terminal-scroll-marker div { + position: absolute; + bottom: 0; + left: 0; + right: 0; + z-index: 200; +} +.terminal-less { + touch-action: none; + overscroll-behavior-y: contain; +} +/* + * mobile scroll fix, with help from StackOverflow + * https://stackoverflow.com/a/60535925/387194 + */ +.terminal-mobile.terminal-less .terminal-wrapper { + pointer-events: none; +} +.terminal-mobile.terminal-less .terminal-output a, .cmd-editable { + pointer-events: visible; +} +.cmd-editable::before { + content: attr(data-cmd-prompt); + display: inline-block; +} +.cmd-editable { + position: absolute; + top: calc(var(--cmd-top) * 1px); + bottom: 0; + right: 0; + left: 0; + z-index: 500; + color: transparent; + background: transparent; + opacity: 0.01; + outline: 0px solid transparent; +} +/* Scrollbar */ +.terminal-scroller::-webkit-scrollbar { + width: calc(6px / var(--pixel-density, 1)); + height: calc(6px / var(--pixel-density, 1)); + background: var(--background, #000); +} +.terminal-scroller::-webkit-scrollbar-thumb { + background: var(--color, #aaa); +} +.terminal-scroller::-webkit-scrollbar-thumb:hover { + background: var(--color, #aaa); +} +.terminal-scroller { + scrollbar-color: #aaa #000; + scrollbar-color: var(--color, #aaa) var(--background, #000); + scrollbar-width: thin; +} + +/* visially hidden */ +.terminal-hidden { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0,0,0,0) !important; + white-space: nowrap !important; + border: 0 !important; +} +/* + * Allow to change scrollbar color + */ +.terminal-wrapper { + --color: var(--base-color); + --background: var(--base-background); +} +.cmd .token { + --original-color: var(--color); +} +.terminal .terminal-blink, .cmd .terminal-blink { + animation: terminal-ansi-blink 1s steps(2, start) infinite; + -webkit-animation: terminal-ansi-blink 1s steps(2, start) infinite; +} +/* Allow transparent background #698 */ +.terminal .terminal-output, +.terminal .terminal-output * { + --background: transparent; +} +.terminal .cmd * { + --background: transparent; +} +.terminal .cmd::selection, +.terminal .cmd *::selection, +.terminal .terminal-output::selection, +.terminal .terminal-output *::selection { + --background: var(--base-background); +} +@keyframes terminal-ansi-blink { + to { + color: var(--background); + } +} +@-webkit-keyframes terminal-ansi-blink { + to { + color: var(--background); + } +} +@media (prefers-reduced-motion) { + :root { + --animation: terminal-none; + } +} diff --git a/css/jquery.terminal-2.40.0.min.css b/css/jquery.terminal-2.40.0.min.css new file mode 100644 index 00000000..eb9c7cb3 --- /dev/null +++ b/css/jquery.terminal-2.40.0.min.css @@ -0,0 +1,19 @@ +/*! + * __ _____ ________ __ + * / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / / + * __ / // // // // // _ // _// // / / // _ // _// // // \/ // _ \/ / + * / / // // // // // ___// / / // / / // ___// / / / / // // /\ // // / /__ + * \___//____ \\___//____//_/ _\_ / /_//____//_/ /_/ /_//_//_/ /_/ \__\_\___/ + * \/ /____/ version 2.40.0 + * http://terminal.jcubic.pl + * + * This file is part of jQuery Terminal. + * + * Copyright (c) 2011-2023 Jakub T. Jankiewicz + * Released under the MIT license + * + * Date: Sun, 21 Apr 2024 10:26:15 +0000 + */.cmd .format,.cmd-prompt,.cmd-prompt div,.terminal .terminal-output .format{display:inline-block}.cmd,.terminal h1,.terminal h2,.terminal h3,.terminal h4,.terminal h5,.terminal h6,.terminal pre{margin:0}.cmd .cmd-clipboard{let:-16px;background:transparent!important;border:none!important;box-shadow:none!important;color:transparent!important;height:16px;height:calc(16px/var(--pixel-density, 1))!important;left:calc(-16px/var(--pixel-density, 1))!important;outline:none!important;overflow:hidden!important;padding:0!important;position:absolute!important;resize:none!important;text-indent:-9999em!important;top:0!important;top:calc(var(--cursor-line, 0)*var(--size, 1)*(14px/var(--pixel-density, 1)))!important;white-space:pre!important;width:16px;width:calc(16px/var(--pixel-density, 1))!important;z-index:1000!important}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;left:0;overflow:hidden;position:absolute;top:0;user-select:none;white-space:nowrap;width:1px}.cmd .cursor+span:empty,.cmd div.cmd-end-line span[data-text]:last-child,.cmd div.cmd-end-line span[data-text]:last-child span,.cmd span.cmd-end-line,.cmd span.cmd-end-line span,.cmd textarea{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.terminal audio,.terminal canvas,.terminal img,.terminal object{cursor:default}.terminal{--base-background:var(--background,#000);--base-color:var(--color);contain:content;line-height:normal;position:relative}.terminal-scroller{scrollbar-gutter:stable;box-sizing:border-box;height:100%;overflow-x:hidden;overflow-y:auto;position:relative}terminal.terminal-temp{visibility:hidden}body.terminal{height:100%;min-height:100vh}html{height:100%}body.full-screen-terminal,body.terminal{height:100%;margin:0}body.full-screen-terminal .terminal{height:100%}body.full-screen-terminal{height:100%;height:var(--terminal-force-height,100dvh)}.terminal>div.terminal-fill{height:100%;min-height:100%}.terminal>.terminal-pixel{display:inline;height:1px;left:-2px;position:absolute;top:-2px;width:1px}.terminal>.terminal-font .terminal-resizer,.terminal>.terminal-resizer{border:none!important;bottom:0!important;height:100%!important;left:0!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;right:0!important;top:0!important;width:100%!important;z-index:-1!important}.cmd{padding:0;position:relative;width:100%;z-index:300}.terminal .cmd,.terminal .cmd div{background:transparent!important}.terminal a[tabindex="1000"],.terminal a[tabindex="1000"]:active,.terminal a[tabindex="1000"]:focus{outline:none}.cmd.cmd.cmd .cmd-inverted,.cmd.cmd.cmd .inverted,.terminal .inverted,.terminal .terminal-inverted{background-color:#aaa!important;color:#000!important}.cmd a[href],.terminal .terminal-output>:not(.raw) a[href],.terminal.external a[href]{color:#37f;color:var(--link-color,#37f);cursor:pointer}.cmd a[href]:not(.terminal-inverted),.terminal .terminal-output>:not(.raw) a[href]:not(.terminal-inverted),.terminal.external a[href]:not(.terminal-inverted){--color:var(--link-color,#37f);text-shadow:0 0 calc(var(--glow)*5px) var(--color,#ccc)}.terminal .terminal-output>:not(.raw) a[href].terminal-inverted,.terminal.external a[href].terminal-inverted{background:var(--color,#ccc);text-shadow:0 0 calc(var(--glow)*5px) var(--background,#000)}.cmd a[href]:hover,.terminal .terminal-output>:not(.raw) a[href]:hover,.terminal.external a[href]:hover{background-color:#37f;background-color:var(--link-color,#37f)!important;color:#000;color:var(--base-background,#000)!important;text-decoration:none}.cmd a[href] span,.terminal .terminal-output>:not(.raw) a[href] span,.terminal.external a[href] span{--color:var(--link-color,#37f);color:#37f!important;color:var(--link-color,#37f)!important;text-decoration:underline}.cmd a[href]:hover span,.terminal .terminal-output>:not(.raw) a[href]:hover span,.terminal.external a[href]:hover span{background-color:#37f!important;background-color:var(--link-color,#37f)!important;color:#000!important;color:var(--background,#000)!important;text-decoration:none}.terminal a[href]{transition-duration:.2s;transition-property:color,background-color;transition-timing-function:ease-out}.cmd .cmd-cursor,.cmd .cmd-cursor-line img,.cmd .cmd-cursor-line>span{display:inline-block}.cmd .cmd-cursor .emoji,.cmd .cmd-cursor.cmd-blink .fa,.cmd .cmd-cursor.cmd-blink .far,.cmd .cmd-cursor.cmd-blink .fas,.cmd .cmd-cursor.cmd-blink a,.cmd .cmd-cursor.cmd-blink>span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span{-webkit-animation:terminal-blink 1s linear infinite;-moz-animation:terminal-blink 1s linear infinite;-ms-animation:terminal-blink 1s linear infinite;animation:terminal-blink 1s linear infinite}.bar.cmd .cmd-inverted,.bar.terminal .inverted{box-shadow:-2px 0 0 -1px #aaa;box-shadow:-2px 0 0 -1px var(--original-color,#aaa)}.cmd .cmd-prompt,.terminal,.terminal .terminal-output>div>div{display:block;height:auto}.terminal .terminal-output>div:not(.raw) div{clear:both;white-space:nowrap}.cmd .cmd-prompt:empty,.cmd .cmd-prompt>a,.cmd .cmd-prompt>span{float:left}.cmd-prompt [data-text]>span,.cmd-wrapper>div{white-space:pre}.cmd [data-text] span,.terminal [data-text] span{display:inline-block}.terminal-ouput span[style*=width]{min-height:14px;min-height:calc(var(--size, 1)*(14px/var(--pixel-density, 1)))}.cmd div,.terminal .terminal-output>:not(.raw)>div,.terminal.external div{line-height:1em;line-height:calc(var(--size)*(16px/var(--pixel-density, 1)) + 1px/var(--pixel-density, 1))}.cmd .cmd-prompt span.fa:before,.cmd .cmd-prompt span.fab:before,.cmd .cmd-prompt span.fad:before,.cmd .cmd-prompt span.fal:before,.cmd .cmd-prompt span.far:before,.cmd .cmd-prompt span.fas{position:relative;top:2px}.cmd,.cmd span:not(.fas):not(.far):not(.fa),.terminal,.terminal-font-forcer,.terminal-output>:not(.raw),.terminal-output>:not(.raw) a,.terminal-output>:not(.raw) span:not(.fas):not(.far):not(.fa){font-family:monospace;font-family:var(--font,monospace)}.cmd,.terminal{font-size:12px}.cmd .cmd-line:before,.terminal-output>div:not(.raw) div:before{content:"\0200B";display:inline-block;width:0}.cmd .cmd-line{white-space:nowrap}.cmd span[data-text],.terminal span[data-text]{display:inline-block}.cmd span[data-text]:not(.cmd-inverted):not(.token):not(.emoji),.terminal,terminal-output>div:not(.raw) div>span:not(.token):not(.inverted):not(.terminal-inverted):not(.cmd-inverted):not(.terminal-error):not(.emoji){background-color:#000;color:#aaa}.cmd span[data-text] span,.terminal span[data-text] span{text-decoration:inherit}.terminal .ansi>div{line-height:13px!important;line-height:calc(var(--size, 1)*(13px/var(--pixel-density, 1)))!important}.cmd .cmd-prompt span,.cmd span.cmd-prompt{--background:transparent}.cmd .emoji,.terminal-output .emoji{background-repeat:no-repeat;background-size:contain;color:transparent;height:12px;height:calc(12px/var(--pixel-density, 1));position:relative}.cmd .fa span,.cmd .far span,.cmd .fas span,.terminal .terminal-output .fa span,.terminal .terminal-output .far span,.terminal .terminal-output .fas span{clip:rect(1px,1px,1px,1px);background:transparent!important;color:transparent!important;position:absolute}.cmd .emoji,.cmd .emoji span,.terminal-output .emoji,.terminal-output .emoji span{display:inline-block;width:2ch}.cmd,.terminal{box-sizing:border-box}.cmd .cmd-cursor span:not(.token):not(.inverted){background-color:inherit;color:inherit}.cmd .emoji.emoji.emoji.emoji,.cmd .emoji.emoji.emoji.emoji span{background-color:transparent;color:transparent}.cmd .cmd-cursor *{background-color:transparent}.cmd span[style*=width] span,.terminal span[style*=width] span{width:inherit}.cmd div{clear:both}.cmd .cmd-prompt+div{clear:right}terminal .terminal-output>div{margin-top:-1px}.terminal-output>div.raw>div *{word-wrap:break-word;overflow-wrap:break-word}.terminal .terminal-font{float:left;font-size:inherit;left:0;line-height:inherit;margin-bottom:1px;position:absolute;top:-100%}.cmd>span:not(.cmd-prompt){float:left}.cmd .cmd-prompt span.cmd-line{display:block;float:none}.terminal table{border-collapse:collapse}.terminal td{border:1px solid #aaa}.cmd span[data-text]:not(.emoji):not(.fa):not(.fas):not(.far) span{background-color:inherit;color:inherit}.cmd [role=presentation].cmd-cursor-line{cursor:text;position:relative;z-index:100}.cmd .cmd-prompt{position:relative;z-index:200}.cmd [role=presentation]:not(.cmd-cursor-line){overflow:hidden}.cmd{--original-color:var( + --color,#aaa);--original-background:var( + --background)}.cmd a[href]{--original-color:var(--link-color,#37f)}@-webkit-keyframes terminal-blink{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;color:inherit;color:var(--original-color,#aaa)}}@-moz-keyframes terminal-blink{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;color:inherit;color:var(--original-color,#aaa)}}@keyframes terminal-blink{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;-webkit-box-shadow:none;box-shadow:none;color:inherit;color:var(--original-color,#aaa)}}@-webkit-keyframes terminal-glow{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);box-shadow:0 0 3px #aaa;-webkit-box-shadow:0 0 3px var(--color,#aaa);box-shadow:0 0 3px var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;-webkit-box-shadow:none;box-shadow:none;color:inherit}}@-moz-keyframes terminal-glow{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);box-shadow:0 0 3px #aaa;-moz-box-shadow:0 0 3px var(--color,#aaa);box-shadow:0 0 3px var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;-moz-box-shadow:none;box-shadow:none;color:inherit}}@keyframes terminal-glow{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);box-shadow:0 0 3px #aaa;box-shadow:0 0 3px var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;box-shadow:none;color:inherit}}@-webkit-keyframes terminal-bar{0%,50%{box-shadow:-2px 0 0 -1px #aaa;box-shadow:calc(var(--line-thickness, 2)*-1px) 0 0 -1px var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@-moz-keyframes terminal-bar{0%,50%{box-shadow:-2px 0 0 -1px #aaa;box-shadow:calc(var(--line-thickness, 2)*-1px) 0 0 -1px var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@keyframes terminal-bar{0%,50%{box-shadow:-2px 0 0 -1px #aaa;box-shadow:calc(var(--line-thickness, 2)*-1px) 0 0 -1px var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@-webkit-keyframes terminal-underline{0%,50%{box-shadow:0 2px 0 #aaa;box-shadow:0 calc(var(--line-thickness, 2)*1px) 0 var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@-moz-keyframes terminal-underline{0%,50%{box-shadow:0 2px 0 #aaa;box-shadow:0 calc(var(--line-thickness, 2)*1px) 0 var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@keyframes terminal-underline{0%,50%{box-shadow:0 2px 0 #aaa;box-shadow:0 calc(var(--line-thickness, 2)*1px) 0 var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@-webkit-keyframes terminal-none{0%,to{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--original-background,#000)}}@-moz-keyframes terminal-none{0%,to{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--background,#000)}}@keyframes terminal-none{0%,to{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--original-background,#000)}}.underline-animation .cmd .cmd-cursor .emoji,.underline-animation .cmd .cmd-cursor.cmd-blink .fa,.underline-animation .cmd .cmd-cursor.cmd-blink .far,.underline-animation .cmd .cmd-cursor.cmd-blink .fas,.underline-animation .cmd .cmd-cursor.cmd-blink a,.underline-animation .cmd .cmd-cursor.cmd-blink>span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span{-webkit-animation-name:terminal-underline;-moz-animation-name:terminal-underline;-ms-animation-name:terminal-underline;animation-name:terminal-underline}.glow-animation .cmd .cmd-cursor .emoji,.glow-animation .cmd .cmd-cursor.cmd-blink .fa,.glow-animation .cmd .cmd-cursor.cmd-blink .far,.glow-animation .cmd .cmd-cursor.cmd-blink .fas,.glow-animation .cmd .cmd-cursor.cmd-blink a,.glow-animation .cmd .cmd-cursor.cmd-blink>span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span{-webkit-animation-name:terminal-glow;-moz-animation-name:terminal-glow;-ms-animation-name:terminal-glow;animation-name:terminal-glow}.bar-animation .cmd .cmd-cursor .emoji,.bar-animation .cmd .cmd-cursor.cmd-blink .fa,.bar-animation .cmd .cmd-cursor.cmd-blink .far,.bar-animation .cmd .cmd-cursor.cmd-blink .fas,.bar-animation .cmd .cmd-cursor.cmd-blink a,.bar-animation .cmd .cmd-cursor.cmd-blink>span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span{-webkit-animation-name:terminal-bar;-moz-animation-name:terminal-bar;-ms-animation-name:terminal-bar;animation-name:terminal-bar}@supports (-ms-ime-align:auto){.cmd .cmd-clipboard{margin-left:-9999px}@keyframes terminal-blink{0%,50%{background-color:var(--original-color,#aaa);color:var(--background,#000)}50.1%,to{background-color:var(--background,#000);color:var(--original-color,#aaa)}}@keyframes terminal-bar{0%,50%{border-left-color:var(--color,#aaa)}50.1%,to{border-left-color:var(--background,#000)}}@keyframes terminal-underline{0%,50%{border-bottom-color:var(--color,#aaa);line-height:12px;line-height:calc(var(--size, 1)*(12px/var(--pixel-density, 1)))}50.1%,to{border-bottom-color:var(--background,#000);line-height:12px;line-height:calc(var(--size, 1)*(12px/var(--pixel-density, 1)))}}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.cmd .cmd-clipboard{margin-left:-9999px}.underline-animation .cursor.blink span span{margin-top:1px}@-ms-keyframes terminal-blink{0%,50%{background-color:#aaa;color:#000}50.1%,to{background-color:#000;color:#aaa}}}.cmd span[data-text]::-moz-selection,.cmd span[data-text]:not(.far):not(.fa):not(.fas) span::-moz-selection,.terminal .terminal-output .raw div::-moz-selection,.terminal .terminal-output div div a::-moz-selection,.terminal .terminal-output div div::-moz-selection,.terminal .terminal-output span[data-text]::-moz-selection,.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas) span::-moz-selection,.terminal .terminal-output::-moz-selection,.terminal h1::-moz-selection,.terminal h2::-moz-selection,.terminal h3::-moz-selection,.terminal h4::-moz-selection,.terminal h5::-moz-selection,.terminal h6::-moz-selection,.terminal pre::-moz-selection,.terminal td::-moz-selection{background-color:#aaa;color:#000}.terminal .cmd{pointer-events:none}.terminal .cmd-prompt *{pointer-events:visible}.cmd-prompt>span:first-child{margin-left:var(--prompt-offset)}.terminal .cmd textarea,.terminal .cmd-cursor-line>span,.terminal .cmd-wrapper>div:not(.cmd-cursor-line){pointer-events:visible}.cmd span[data-text]:not(.far):not(.fa):not(.fas) span::selection,.terminal .terminal-output .raw div::selection,.terminal .terminal-output div div a::selection,.terminal .terminal-output div div::selection,.terminal .terminal-output span[data-text]::selection,.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas) span::selection,.terminal .terminal-output::selection,.terminal h1::selection,.terminal h2::selection,.terminal h3::selection,.terminal h4::selection,.terminal h5::selection,.terminal h6::selection,.terminal pre::selection,.terminal td::selection{background-color:hsla(0,0%,67%,.99);color:#000}.cmd .emoji span::-moz-selection,.cmd .emoji::-moz-selection,.cmd textarea::-moz-selection,.terminal-output .emoji span::-moz-selection,.terminal-output .emoji::-moz-selection{background-color:transparent!important;color:transparent!important}.cmd .emoji span::selection,.cmd .emoji::selection,.cmd textarea::selection,.terminal-output .emoji span::selection,.terminal-output .emoji::selection{background-color:transparent!important;color:transparent!important}.terminal .terminal-output>:not(.raw) .terminal-error,.terminal .terminal-output>:not(.raw) .terminal-error *{color:red;color:var(--error-color,red)}.tilda{left:0;position:fixed;top:0;width:100%;z-index:1100}.ui-dialog-content .terminal{box-sizing:border-box;height:100%;width:100%}.ui-dialog .ui-dialog-content.dterm{padding:0}.clear{clear:both}.terminal .terminal-fill{border:none;box-sizing:border-box;height:100%;left:0;margin:1px 0 0;opacity:.01;pointer-events:none;position:absolute;top:-100%;width:100%}.cmd-editable,.terminal .terminal-fill,.terminal-scroller{padding:calc(1px*var(--padding, 10)/var(--pixel-density, 1))}.cmd-editable{padding-top:0}.terminal-scroller{padding-bottom:0}.terminal .terminal-output>:not(.raw) .terminal-error,.terminal .terminal-output>:not(.raw) .terminal-error *{--color:var(--error-color,red);text-shadow:0 0 calc(var(--glow)*5px) var(--color)}.terminal .terminal-output>:not(.raw) a[href]{text-shadow:0 0 calc(var(--glow)*5px) var(--color)}.terminal .cmd{margin-bottom:calc(1px*var(--padding, 10)/var(--pixel-density, 1));position:relative}.terminal .partial,.terminal .partial>div{display:inline-block}@supports (--css:variables){.cmd,.cmd div,.cmd span[data-text]:not(.cmd-inverted):not(.token):not(.emoji),.terminal,.terminal-output>:not(.raw) a,.terminal-output>:not(.raw) div,.terminal-output>:not(.raw) span[data-text]:not(.token):not(.inverted):not(.terminal-inverted):not(.cmd-inverted):not(.terminal-error):not(.emoji),.terminal.external [data-text]{background-color:var(--background,#000);color:var(--color,#aaa)}.cmd [data-text],.terminal [data-text]{text-shadow:var(--text-shadow,0 0 calc(var(--glow)*5px) var(--color,#ccc))}.terminal span[style*="--length"]{display:inline-block;width:calc(var(--length, 1)*var(--char-width, 7.23438)*1px)}.cmd,.cmd div,.cmd span,.terminal,.terminal-output>:not(.raw) a,.terminal-output>:not(.raw) div,.terminal-output>:not(.raw) span{font-size:calc(var(--size, 1)*(12px/var(--pixel-density, 1)))}.cmd .emoji,.terminal-output .emoji{height:calc(var(--size, 1)*(12px/var(--pixel-density, 1)))}.cmd .clipboard{top:calc(var(--size, 1)*(14/var(--pixel-density, 1))*var(--cursor-line, 0)*1px)}.cmd.cmd.cmd .cmd-inverted,.cmd.cmd.cmd .inverted,.terminal .inverted{--background:#000;background-color:var(--color,#aaa)!important;color:var(--background,#000)!important}.cmd .cmd-cursor.cmd-blink{background-color:var(--background,#000);color:var(--color,#aaa)}.cmd .cmd-cursor.cmd-blink .emoji,.cmd .cmd-cursor.cmd-blink .fa,.cmd .cmd-cursor.cmd-blink .far,.cmd .cmd-cursor.cmd-blink .fas,.cmd .cmd-cursor.cmd-blink a,.cmd .cmd-cursor.cmd-blink>span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span{--original-background:inherit;-webkit-animation:var(--animation,terminal-blink) 1s infinite linear;-moz-animation:var(--animation,terminal-blink) 1s infinite linear;-ms-animation:var(--animation,terminal-blink) 1s infinite linear;animation:var(--animation,terminal-blink) 1s infinite linear}.cmd .cmd-cursor.cmd-blink .emoji span{background:transparent;color:transparent}.cmd span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::-moz-selection,.terminal .terminal-output .raw div::-moz-selection,.terminal .terminal-output div div a::-moz-selection,.terminal .terminal-output div div::-moz-selection,.terminal .terminal-output span[data-text]::-moz-selection,.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::-moz-selection,.terminal .terminal-output::-moz-selection,.terminal h1::-moz-selection,.terminal h2::-moz-selection,.terminal h3::-moz-selection,.terminal h4::-moz-selection,.terminal h5::-moz-selection,.terminal h6::-moz-selection,.terminal pre::-moz-selection,.terminal td::-moz-selection{background-color:var(--color,#aaa);color:var(--background,#000)}.terminal .terminal-output div div a::-moz-selection{background-color:var(--link-color,rgba(15,96,255,.99))!important;color:var(--background,#000)!important}.terminal .terminal-output div div a:hover::-moz-selection{background-color:var(--link-color,rgba(2,50,144,.99))!important}.cmd span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::selection,.terminal .terminal-output .raw div::selection,.terminal .terminal-output div div a::selection,.terminal .terminal-output div div::selection,.terminal .terminal-output span[data-text]:not(.emoji)::selection,.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::selection,.terminal .terminal-output::selection,.terminal h1::selection,.terminal h2::selection,.terminal h3::selection,.terminal h4::selection,.terminal h5::selection,.terminal h6::selection,.terminal pre::selection,.terminal td::selection{background-color:var(--color,hsla(0,0%,67%,.99))!important;color:var(--background,#000)!important}.terminal .terminal-output div div a::selection{background-color:var(--link-color,rgba(15,96,255,.99))!important;color:var(--background,#000)!important}.terminal .terminal-output div div a:hover::selection{background-color:var(--link-color,rgba(2,50,144,.99))!important}}@property --color{syntax:"";inherits:true;initial-value:hsla(0,0%,67%,.99)}@property --background{syntax:"";inherits:true;initial-value:#000}@property --link-color{syntax:"";inherits:true;initial-value:#37f}@property --size{syntax:"";inherits:true;initial-value:1}@property --padding{syntax:"";inherits:true;initial-value:10}@supports (-ms-ime-align:auto){.cmd span[data-text]::selection,.terminal .terminal-output div div a::selection,.terminal .terminal-output div div::selection,.terminal h1::selection,.terminal h2::selection,.terminal h3::selection,.terminal h4::selection,.terminal h5::selection,.terminal h6::selection,.terminal pre::selection,.terminal td::selection{background-color:hsla(0,0%,67%,.99);color:#000}}.cmd .style .token.string,.cmd .token.entity,.cmd .token.operator,.cmd .token.string,.cmd .token.token,.cmd .token.url,.cmd .token.variable,.terminal .style .token.string,.terminal .token.entity,.terminal .token.operator,.terminal .token.string,.terminal .token.token,.terminal .token.url,.terminal .token.variable{background-color:inherit}.cmd .cursor-wrapper ul{float:left;left:0;list-style:none;margin:0;padding:0;position:absolute;top:14px}.cmd .cursor-wrapper li{cursor:pointer;white-space:nowrap}.cmd .cursor-wrapper li:hover{background:#aaa;color:#000}.cursor-wrapper{position:relative}.terminal-output img{vertical-align:top}.cmd img{border:1px solid transparent;height:14px;height:calc(var(--size, 1)*(14px/var(--pixel-density, 1)))}.cmd-cursor img{border-color:#ccc;border-color:var(--color,#ccc)}.terminal-output svg.terminal-broken-image{height:calc(var(--size, 1)*(14px/var(--pixel-density, 1)))}.terminal-output svg.terminal-broken-image use{fill:var(--color,#ccc)}.terminal-error{--color:var(--error-color)}.terminal-glow{--animation:terminal-glow}.terminal-glow .cmd-prompt>span,.terminal-glow .terminal-output>div a[href],.terminal-glow .terminal-output>div span,.terminal-glow [data-text] span,.terminal-glow a[data-text],.terminal-glow span[data-text]{text-shadow:1px 1px 5px #ccc;text-shadow:1px 1px 5px var(--color,#ccc)}.terminal-scroll-marker{height:1px;height:calc(1px/var(--pixel-density, 1));margin-top:-1px;margin-top:calc(-1px/var(--pixel-density, 1));position:relative;z-index:100}.terminal-scroll-marker div{bottom:0;left:0;position:absolute;right:0;z-index:200}.terminal-less{overscroll-behavior-y:contain;touch-action:none}.terminal-mobile.terminal-less .terminal-wrapper{pointer-events:none}.cmd-editable,.terminal-mobile.terminal-less .terminal-output a{pointer-events:visible}.cmd-editable:before{content:attr(data-cmd-prompt);display:inline-block}.cmd-editable{background:transparent;bottom:0;color:transparent;left:0;opacity:.01;outline:0 solid transparent;position:absolute;right:0;top:calc(var(--cmd-top)*1px);z-index:500}.terminal-scroller::-webkit-scrollbar{background:var(--background,#000);height:calc(6px/var(--pixel-density, 1));width:calc(6px/var(--pixel-density, 1))}.terminal-scroller::-webkit-scrollbar-thumb,.terminal-scroller::-webkit-scrollbar-thumb:hover{background:var(--color,#aaa)}.terminal-scroller{scrollbar-color:#aaa #000;scrollbar-color:var(--color,#aaa) var(--background,#000);scrollbar-width:thin}.terminal-hidden{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.terminal-wrapper{--color:var(--base-color);--background:var(--base-background)}.cmd .token{--original-color:var(--color)}.cmd .terminal-blink,.terminal .terminal-blink{animation:terminal-ansi-blink 1s steps(2,start) infinite;-webkit-animation:terminal-ansi-blink 1s steps(2,start) infinite}.terminal .cmd *,.terminal .terminal-output,.terminal .terminal-output *{--background:transparent}.terminal .cmd ::selection,.terminal .cmd::selection,.terminal .terminal-output ::selection,.terminal .terminal-output::selection{--background:var(--base-background)}@keyframes terminal-ansi-blink{to{color:var(--background)}}@-webkit-keyframes terminal-ansi-blink{to{color:var(--background)}}@media (prefers-reduced-motion){:root{--animation:terminal-none}} +/*# sourceMappingURL=jquery.terminal.min.css.map */ \ No newline at end of file diff --git a/css/jquery.terminal.css b/css/jquery.terminal.css index ad2c0683..95b3b1e8 100644 --- a/css/jquery.terminal.css +++ b/css/jquery.terminal.css @@ -4,7 +4,7 @@ * __ / // // // // // _ // _// // / / // _ // _// // // \/ // _ \/ / * / / // // // // // ___// / / // / / // ___// / / / / // // /\ // // / /__ * \___//____ \\___//____//_/ _\_ / /_//____//_/ /_/ /_//_//_/ /_/ \__\_\___/ - * \/ /____/ version 2.39.3 + * \/ /____/ version 2.40.0 * http://terminal.jcubic.pl * * This file is part of jQuery Terminal. @@ -12,7 +12,7 @@ * Copyright (c) 2011-2023 Jakub T. Jankiewicz * Released under the MIT license * - * Date: Sun, 21 Apr 2024 10:23:57 +0000 + * Date: Sun, 21 Apr 2024 10:26:15 +0000 */ .terminal .terminal-output .format, .cmd .format, .cmd-prompt, .cmd-prompt div { diff --git a/css/jquery.terminal.min.css b/css/jquery.terminal.min.css index d7292510..eb9c7cb3 100644 --- a/css/jquery.terminal.min.css +++ b/css/jquery.terminal.min.css @@ -4,7 +4,7 @@ * __ / // // // // // _ // _// // / / // _ // _// // // \/ // _ \/ / * / / // // // // // ___// / / // / / // ___// / / / / // // /\ // // / /__ * \___//____ \\___//____//_/ _\_ / /_//____//_/ /_/ /_//_//_/ /_/ \__\_\___/ - * \/ /____/ version 2.39.3 + * \/ /____/ version 2.40.0 * http://terminal.jcubic.pl * * This file is part of jQuery Terminal. @@ -12,7 +12,7 @@ * Copyright (c) 2011-2023 Jakub T. Jankiewicz * Released under the MIT license * - * Date: Sun, 21 Apr 2024 10:23:57 +0000 + * Date: Sun, 21 Apr 2024 10:26:15 +0000 */.cmd .format,.cmd-prompt,.cmd-prompt div,.terminal .terminal-output .format{display:inline-block}.cmd,.terminal h1,.terminal h2,.terminal h3,.terminal h4,.terminal h5,.terminal h6,.terminal pre{margin:0}.cmd .cmd-clipboard{let:-16px;background:transparent!important;border:none!important;box-shadow:none!important;color:transparent!important;height:16px;height:calc(16px/var(--pixel-density, 1))!important;left:calc(-16px/var(--pixel-density, 1))!important;outline:none!important;overflow:hidden!important;padding:0!important;position:absolute!important;resize:none!important;text-indent:-9999em!important;top:0!important;top:calc(var(--cursor-line, 0)*var(--size, 1)*(14px/var(--pixel-density, 1)))!important;white-space:pre!important;width:16px;width:calc(16px/var(--pixel-density, 1))!important;z-index:1000!important}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;left:0;overflow:hidden;position:absolute;top:0;user-select:none;white-space:nowrap;width:1px}.cmd .cursor+span:empty,.cmd div.cmd-end-line span[data-text]:last-child,.cmd div.cmd-end-line span[data-text]:last-child span,.cmd span.cmd-end-line,.cmd span.cmd-end-line span,.cmd textarea{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.terminal audio,.terminal canvas,.terminal img,.terminal object{cursor:default}.terminal{--base-background:var(--background,#000);--base-color:var(--color);contain:content;line-height:normal;position:relative}.terminal-scroller{scrollbar-gutter:stable;box-sizing:border-box;height:100%;overflow-x:hidden;overflow-y:auto;position:relative}terminal.terminal-temp{visibility:hidden}body.terminal{height:100%;min-height:100vh}html{height:100%}body.full-screen-terminal,body.terminal{height:100%;margin:0}body.full-screen-terminal .terminal{height:100%}body.full-screen-terminal{height:100%;height:var(--terminal-force-height,100dvh)}.terminal>div.terminal-fill{height:100%;min-height:100%}.terminal>.terminal-pixel{display:inline;height:1px;left:-2px;position:absolute;top:-2px;width:1px}.terminal>.terminal-font .terminal-resizer,.terminal>.terminal-resizer{border:none!important;bottom:0!important;height:100%!important;left:0!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;right:0!important;top:0!important;width:100%!important;z-index:-1!important}.cmd{padding:0;position:relative;width:100%;z-index:300}.terminal .cmd,.terminal .cmd div{background:transparent!important}.terminal a[tabindex="1000"],.terminal a[tabindex="1000"]:active,.terminal a[tabindex="1000"]:focus{outline:none}.cmd.cmd.cmd .cmd-inverted,.cmd.cmd.cmd .inverted,.terminal .inverted,.terminal .terminal-inverted{background-color:#aaa!important;color:#000!important}.cmd a[href],.terminal .terminal-output>:not(.raw) a[href],.terminal.external a[href]{color:#37f;color:var(--link-color,#37f);cursor:pointer}.cmd a[href]:not(.terminal-inverted),.terminal .terminal-output>:not(.raw) a[href]:not(.terminal-inverted),.terminal.external a[href]:not(.terminal-inverted){--color:var(--link-color,#37f);text-shadow:0 0 calc(var(--glow)*5px) var(--color,#ccc)}.terminal .terminal-output>:not(.raw) a[href].terminal-inverted,.terminal.external a[href].terminal-inverted{background:var(--color,#ccc);text-shadow:0 0 calc(var(--glow)*5px) var(--background,#000)}.cmd a[href]:hover,.terminal .terminal-output>:not(.raw) a[href]:hover,.terminal.external a[href]:hover{background-color:#37f;background-color:var(--link-color,#37f)!important;color:#000;color:var(--base-background,#000)!important;text-decoration:none}.cmd a[href] span,.terminal .terminal-output>:not(.raw) a[href] span,.terminal.external a[href] span{--color:var(--link-color,#37f);color:#37f!important;color:var(--link-color,#37f)!important;text-decoration:underline}.cmd a[href]:hover span,.terminal .terminal-output>:not(.raw) a[href]:hover span,.terminal.external a[href]:hover span{background-color:#37f!important;background-color:var(--link-color,#37f)!important;color:#000!important;color:var(--background,#000)!important;text-decoration:none}.terminal a[href]{transition-duration:.2s;transition-property:color,background-color;transition-timing-function:ease-out}.cmd .cmd-cursor,.cmd .cmd-cursor-line img,.cmd .cmd-cursor-line>span{display:inline-block}.cmd .cmd-cursor .emoji,.cmd .cmd-cursor.cmd-blink .fa,.cmd .cmd-cursor.cmd-blink .far,.cmd .cmd-cursor.cmd-blink .fas,.cmd .cmd-cursor.cmd-blink a,.cmd .cmd-cursor.cmd-blink>span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span{-webkit-animation:terminal-blink 1s linear infinite;-moz-animation:terminal-blink 1s linear infinite;-ms-animation:terminal-blink 1s linear infinite;animation:terminal-blink 1s linear infinite}.bar.cmd .cmd-inverted,.bar.terminal .inverted{box-shadow:-2px 0 0 -1px #aaa;box-shadow:-2px 0 0 -1px var(--original-color,#aaa)}.cmd .cmd-prompt,.terminal,.terminal .terminal-output>div>div{display:block;height:auto}.terminal .terminal-output>div:not(.raw) div{clear:both;white-space:nowrap}.cmd .cmd-prompt:empty,.cmd .cmd-prompt>a,.cmd .cmd-prompt>span{float:left}.cmd-prompt [data-text]>span,.cmd-wrapper>div{white-space:pre}.cmd [data-text] span,.terminal [data-text] span{display:inline-block}.terminal-ouput span[style*=width]{min-height:14px;min-height:calc(var(--size, 1)*(14px/var(--pixel-density, 1)))}.cmd div,.terminal .terminal-output>:not(.raw)>div,.terminal.external div{line-height:1em;line-height:calc(var(--size)*(16px/var(--pixel-density, 1)) + 1px/var(--pixel-density, 1))}.cmd .cmd-prompt span.fa:before,.cmd .cmd-prompt span.fab:before,.cmd .cmd-prompt span.fad:before,.cmd .cmd-prompt span.fal:before,.cmd .cmd-prompt span.far:before,.cmd .cmd-prompt span.fas{position:relative;top:2px}.cmd,.cmd span:not(.fas):not(.far):not(.fa),.terminal,.terminal-font-forcer,.terminal-output>:not(.raw),.terminal-output>:not(.raw) a,.terminal-output>:not(.raw) span:not(.fas):not(.far):not(.fa){font-family:monospace;font-family:var(--font,monospace)}.cmd,.terminal{font-size:12px}.cmd .cmd-line:before,.terminal-output>div:not(.raw) div:before{content:"\0200B";display:inline-block;width:0}.cmd .cmd-line{white-space:nowrap}.cmd span[data-text],.terminal span[data-text]{display:inline-block}.cmd span[data-text]:not(.cmd-inverted):not(.token):not(.emoji),.terminal,terminal-output>div:not(.raw) div>span:not(.token):not(.inverted):not(.terminal-inverted):not(.cmd-inverted):not(.terminal-error):not(.emoji){background-color:#000;color:#aaa}.cmd span[data-text] span,.terminal span[data-text] span{text-decoration:inherit}.terminal .ansi>div{line-height:13px!important;line-height:calc(var(--size, 1)*(13px/var(--pixel-density, 1)))!important}.cmd .cmd-prompt span,.cmd span.cmd-prompt{--background:transparent}.cmd .emoji,.terminal-output .emoji{background-repeat:no-repeat;background-size:contain;color:transparent;height:12px;height:calc(12px/var(--pixel-density, 1));position:relative}.cmd .fa span,.cmd .far span,.cmd .fas span,.terminal .terminal-output .fa span,.terminal .terminal-output .far span,.terminal .terminal-output .fas span{clip:rect(1px,1px,1px,1px);background:transparent!important;color:transparent!important;position:absolute}.cmd .emoji,.cmd .emoji span,.terminal-output .emoji,.terminal-output .emoji span{display:inline-block;width:2ch}.cmd,.terminal{box-sizing:border-box}.cmd .cmd-cursor span:not(.token):not(.inverted){background-color:inherit;color:inherit}.cmd .emoji.emoji.emoji.emoji,.cmd .emoji.emoji.emoji.emoji span{background-color:transparent;color:transparent}.cmd .cmd-cursor *{background-color:transparent}.cmd span[style*=width] span,.terminal span[style*=width] span{width:inherit}.cmd div{clear:both}.cmd .cmd-prompt+div{clear:right}terminal .terminal-output>div{margin-top:-1px}.terminal-output>div.raw>div *{word-wrap:break-word;overflow-wrap:break-word}.terminal .terminal-font{float:left;font-size:inherit;left:0;line-height:inherit;margin-bottom:1px;position:absolute;top:-100%}.cmd>span:not(.cmd-prompt){float:left}.cmd .cmd-prompt span.cmd-line{display:block;float:none}.terminal table{border-collapse:collapse}.terminal td{border:1px solid #aaa}.cmd span[data-text]:not(.emoji):not(.fa):not(.fas):not(.far) span{background-color:inherit;color:inherit}.cmd [role=presentation].cmd-cursor-line{cursor:text;position:relative;z-index:100}.cmd .cmd-prompt{position:relative;z-index:200}.cmd [role=presentation]:not(.cmd-cursor-line){overflow:hidden}.cmd{--original-color:var( --color,#aaa);--original-background:var( --background)}.cmd a[href]{--original-color:var(--link-color,#37f)}@-webkit-keyframes terminal-blink{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;color:inherit;color:var(--original-color,#aaa)}}@-moz-keyframes terminal-blink{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;color:inherit;color:var(--original-color,#aaa)}}@keyframes terminal-blink{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;-webkit-box-shadow:none;box-shadow:none;color:inherit;color:var(--original-color,#aaa)}}@-webkit-keyframes terminal-glow{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);box-shadow:0 0 3px #aaa;-webkit-box-shadow:0 0 3px var(--color,#aaa);box-shadow:0 0 3px var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;-webkit-box-shadow:none;box-shadow:none;color:inherit}}@-moz-keyframes terminal-glow{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);box-shadow:0 0 3px #aaa;-moz-box-shadow:0 0 3px var(--color,#aaa);box-shadow:0 0 3px var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;-moz-box-shadow:none;box-shadow:none;color:inherit}}@keyframes terminal-glow{0%,50%{background-color:#aaa;background-color:var(--original-color,#aaa);box-shadow:0 0 3px #aaa;box-shadow:0 0 3px var(--color,#aaa);color:#000;color:var(--original-background,#000)}50.1%,to{background-color:inherit;box-shadow:none;color:inherit}}@-webkit-keyframes terminal-bar{0%,50%{box-shadow:-2px 0 0 -1px #aaa;box-shadow:calc(var(--line-thickness, 2)*-1px) 0 0 -1px var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@-moz-keyframes terminal-bar{0%,50%{box-shadow:-2px 0 0 -1px #aaa;box-shadow:calc(var(--line-thickness, 2)*-1px) 0 0 -1px var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@keyframes terminal-bar{0%,50%{box-shadow:-2px 0 0 -1px #aaa;box-shadow:calc(var(--line-thickness, 2)*-1px) 0 0 -1px var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@-webkit-keyframes terminal-underline{0%,50%{box-shadow:0 2px 0 #aaa;box-shadow:0 calc(var(--line-thickness, 2)*1px) 0 var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@-moz-keyframes terminal-underline{0%,50%{box-shadow:0 2px 0 #aaa;box-shadow:0 calc(var(--line-thickness, 2)*1px) 0 var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@keyframes terminal-underline{0%,50%{box-shadow:0 2px 0 #aaa;box-shadow:0 calc(var(--line-thickness, 2)*1px) 0 var(--original-color,#aaa)}50.1%,to{box-shadow:none}}@-webkit-keyframes terminal-none{0%,to{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--original-background,#000)}}@-moz-keyframes terminal-none{0%,to{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--background,#000)}}@keyframes terminal-none{0%,to{background-color:#aaa;background-color:var(--original-color,#aaa);-webkit-box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);box-shadow:0 0 calc(var(--glow)*3px) var(--color,#aaa);color:#000;color:var(--original-background,#000)}}.underline-animation .cmd .cmd-cursor .emoji,.underline-animation .cmd .cmd-cursor.cmd-blink .fa,.underline-animation .cmd .cmd-cursor.cmd-blink .far,.underline-animation .cmd .cmd-cursor.cmd-blink .fas,.underline-animation .cmd .cmd-cursor.cmd-blink a,.underline-animation .cmd .cmd-cursor.cmd-blink>span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span{-webkit-animation-name:terminal-underline;-moz-animation-name:terminal-underline;-ms-animation-name:terminal-underline;animation-name:terminal-underline}.glow-animation .cmd .cmd-cursor .emoji,.glow-animation .cmd .cmd-cursor.cmd-blink .fa,.glow-animation .cmd .cmd-cursor.cmd-blink .far,.glow-animation .cmd .cmd-cursor.cmd-blink .fas,.glow-animation .cmd .cmd-cursor.cmd-blink a,.glow-animation .cmd .cmd-cursor.cmd-blink>span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span{-webkit-animation-name:terminal-glow;-moz-animation-name:terminal-glow;-ms-animation-name:terminal-glow;animation-name:terminal-glow}.bar-animation .cmd .cmd-cursor .emoji,.bar-animation .cmd .cmd-cursor.cmd-blink .fa,.bar-animation .cmd .cmd-cursor.cmd-blink .far,.bar-animation .cmd .cmd-cursor.cmd-blink .fas,.bar-animation .cmd .cmd-cursor.cmd-blink a,.bar-animation .cmd .cmd-cursor.cmd-blink>span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span{-webkit-animation-name:terminal-bar;-moz-animation-name:terminal-bar;-ms-animation-name:terminal-bar;animation-name:terminal-bar}@supports (-ms-ime-align:auto){.cmd .cmd-clipboard{margin-left:-9999px}@keyframes terminal-blink{0%,50%{background-color:var(--original-color,#aaa);color:var(--background,#000)}50.1%,to{background-color:var(--background,#000);color:var(--original-color,#aaa)}}@keyframes terminal-bar{0%,50%{border-left-color:var(--color,#aaa)}50.1%,to{border-left-color:var(--background,#000)}}@keyframes terminal-underline{0%,50%{border-bottom-color:var(--color,#aaa);line-height:12px;line-height:calc(var(--size, 1)*(12px/var(--pixel-density, 1)))}50.1%,to{border-bottom-color:var(--background,#000);line-height:12px;line-height:calc(var(--size, 1)*(12px/var(--pixel-density, 1)))}}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.cmd .cmd-clipboard{margin-left:-9999px}.underline-animation .cursor.blink span span{margin-top:1px}@-ms-keyframes terminal-blink{0%,50%{background-color:#aaa;color:#000}50.1%,to{background-color:#000;color:#aaa}}}.cmd span[data-text]::-moz-selection,.cmd span[data-text]:not(.far):not(.fa):not(.fas) span::-moz-selection,.terminal .terminal-output .raw div::-moz-selection,.terminal .terminal-output div div a::-moz-selection,.terminal .terminal-output div div::-moz-selection,.terminal .terminal-output span[data-text]::-moz-selection,.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas) span::-moz-selection,.terminal .terminal-output::-moz-selection,.terminal h1::-moz-selection,.terminal h2::-moz-selection,.terminal h3::-moz-selection,.terminal h4::-moz-selection,.terminal h5::-moz-selection,.terminal h6::-moz-selection,.terminal pre::-moz-selection,.terminal td::-moz-selection{background-color:#aaa;color:#000}.terminal .cmd{pointer-events:none}.terminal .cmd-prompt *{pointer-events:visible}.cmd-prompt>span:first-child{margin-left:var(--prompt-offset)}.terminal .cmd textarea,.terminal .cmd-cursor-line>span,.terminal .cmd-wrapper>div:not(.cmd-cursor-line){pointer-events:visible}.cmd span[data-text]:not(.far):not(.fa):not(.fas) span::selection,.terminal .terminal-output .raw div::selection,.terminal .terminal-output div div a::selection,.terminal .terminal-output div div::selection,.terminal .terminal-output span[data-text]::selection,.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas) span::selection,.terminal .terminal-output::selection,.terminal h1::selection,.terminal h2::selection,.terminal h3::selection,.terminal h4::selection,.terminal h5::selection,.terminal h6::selection,.terminal pre::selection,.terminal td::selection{background-color:hsla(0,0%,67%,.99);color:#000}.cmd .emoji span::-moz-selection,.cmd .emoji::-moz-selection,.cmd textarea::-moz-selection,.terminal-output .emoji span::-moz-selection,.terminal-output .emoji::-moz-selection{background-color:transparent!important;color:transparent!important}.cmd .emoji span::selection,.cmd .emoji::selection,.cmd textarea::selection,.terminal-output .emoji span::selection,.terminal-output .emoji::selection{background-color:transparent!important;color:transparent!important}.terminal .terminal-output>:not(.raw) .terminal-error,.terminal .terminal-output>:not(.raw) .terminal-error *{color:red;color:var(--error-color,red)}.tilda{left:0;position:fixed;top:0;width:100%;z-index:1100}.ui-dialog-content .terminal{box-sizing:border-box;height:100%;width:100%}.ui-dialog .ui-dialog-content.dterm{padding:0}.clear{clear:both}.terminal .terminal-fill{border:none;box-sizing:border-box;height:100%;left:0;margin:1px 0 0;opacity:.01;pointer-events:none;position:absolute;top:-100%;width:100%}.cmd-editable,.terminal .terminal-fill,.terminal-scroller{padding:calc(1px*var(--padding, 10)/var(--pixel-density, 1))}.cmd-editable{padding-top:0}.terminal-scroller{padding-bottom:0}.terminal .terminal-output>:not(.raw) .terminal-error,.terminal .terminal-output>:not(.raw) .terminal-error *{--color:var(--error-color,red);text-shadow:0 0 calc(var(--glow)*5px) var(--color)}.terminal .terminal-output>:not(.raw) a[href]{text-shadow:0 0 calc(var(--glow)*5px) var(--color)}.terminal .cmd{margin-bottom:calc(1px*var(--padding, 10)/var(--pixel-density, 1));position:relative}.terminal .partial,.terminal .partial>div{display:inline-block}@supports (--css:variables){.cmd,.cmd div,.cmd span[data-text]:not(.cmd-inverted):not(.token):not(.emoji),.terminal,.terminal-output>:not(.raw) a,.terminal-output>:not(.raw) div,.terminal-output>:not(.raw) span[data-text]:not(.token):not(.inverted):not(.terminal-inverted):not(.cmd-inverted):not(.terminal-error):not(.emoji),.terminal.external [data-text]{background-color:var(--background,#000);color:var(--color,#aaa)}.cmd [data-text],.terminal [data-text]{text-shadow:var(--text-shadow,0 0 calc(var(--glow)*5px) var(--color,#ccc))}.terminal span[style*="--length"]{display:inline-block;width:calc(var(--length, 1)*var(--char-width, 7.23438)*1px)}.cmd,.cmd div,.cmd span,.terminal,.terminal-output>:not(.raw) a,.terminal-output>:not(.raw) div,.terminal-output>:not(.raw) span{font-size:calc(var(--size, 1)*(12px/var(--pixel-density, 1)))}.cmd .emoji,.terminal-output .emoji{height:calc(var(--size, 1)*(12px/var(--pixel-density, 1)))}.cmd .clipboard{top:calc(var(--size, 1)*(14/var(--pixel-density, 1))*var(--cursor-line, 0)*1px)}.cmd.cmd.cmd .cmd-inverted,.cmd.cmd.cmd .inverted,.terminal .inverted{--background:#000;background-color:var(--color,#aaa)!important;color:var(--background,#000)!important}.cmd .cmd-cursor.cmd-blink{background-color:var(--background,#000);color:var(--color,#aaa)}.cmd .cmd-cursor.cmd-blink .emoji,.cmd .cmd-cursor.cmd-blink .fa,.cmd .cmd-cursor.cmd-blink .far,.cmd .cmd-cursor.cmd-blink .fas,.cmd .cmd-cursor.cmd-blink a,.cmd .cmd-cursor.cmd-blink>span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span{--original-background:inherit;-webkit-animation:var(--animation,terminal-blink) 1s infinite linear;-moz-animation:var(--animation,terminal-blink) 1s infinite linear;-ms-animation:var(--animation,terminal-blink) 1s infinite linear;animation:var(--animation,terminal-blink) 1s infinite linear}.cmd .cmd-cursor.cmd-blink .emoji span{background:transparent;color:transparent}.cmd span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::-moz-selection,.terminal .terminal-output .raw div::-moz-selection,.terminal .terminal-output div div a::-moz-selection,.terminal .terminal-output div div::-moz-selection,.terminal .terminal-output span[data-text]::-moz-selection,.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::-moz-selection,.terminal .terminal-output::-moz-selection,.terminal h1::-moz-selection,.terminal h2::-moz-selection,.terminal h3::-moz-selection,.terminal h4::-moz-selection,.terminal h5::-moz-selection,.terminal h6::-moz-selection,.terminal pre::-moz-selection,.terminal td::-moz-selection{background-color:var(--color,#aaa);color:var(--background,#000)}.terminal .terminal-output div div a::-moz-selection{background-color:var(--link-color,rgba(15,96,255,.99))!important;color:var(--background,#000)!important}.terminal .terminal-output div div a:hover::-moz-selection{background-color:var(--link-color,rgba(2,50,144,.99))!important}.cmd span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::selection,.terminal .terminal-output .raw div::selection,.terminal .terminal-output div div a::selection,.terminal .terminal-output div div::selection,.terminal .terminal-output span[data-text]:not(.emoji)::selection,.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::selection,.terminal .terminal-output::selection,.terminal h1::selection,.terminal h2::selection,.terminal h3::selection,.terminal h4::selection,.terminal h5::selection,.terminal h6::selection,.terminal pre::selection,.terminal td::selection{background-color:var(--color,hsla(0,0%,67%,.99))!important;color:var(--background,#000)!important}.terminal .terminal-output div div a::selection{background-color:var(--link-color,rgba(15,96,255,.99))!important;color:var(--background,#000)!important}.terminal .terminal-output div div a:hover::selection{background-color:var(--link-color,rgba(2,50,144,.99))!important}}@property --color{syntax:"";inherits:true;initial-value:hsla(0,0%,67%,.99)}@property --background{syntax:"";inherits:true;initial-value:#000}@property --link-color{syntax:"";inherits:true;initial-value:#37f}@property --size{syntax:"";inherits:true;initial-value:1}@property --padding{syntax:"";inherits:true;initial-value:10}@supports (-ms-ime-align:auto){.cmd span[data-text]::selection,.terminal .terminal-output div div a::selection,.terminal .terminal-output div div::selection,.terminal h1::selection,.terminal h2::selection,.terminal h3::selection,.terminal h4::selection,.terminal h5::selection,.terminal h6::selection,.terminal pre::selection,.terminal td::selection{background-color:hsla(0,0%,67%,.99);color:#000}}.cmd .style .token.string,.cmd .token.entity,.cmd .token.operator,.cmd .token.string,.cmd .token.token,.cmd .token.url,.cmd .token.variable,.terminal .style .token.string,.terminal .token.entity,.terminal .token.operator,.terminal .token.string,.terminal .token.token,.terminal .token.url,.terminal .token.variable{background-color:inherit}.cmd .cursor-wrapper ul{float:left;left:0;list-style:none;margin:0;padding:0;position:absolute;top:14px}.cmd .cursor-wrapper li{cursor:pointer;white-space:nowrap}.cmd .cursor-wrapper li:hover{background:#aaa;color:#000}.cursor-wrapper{position:relative}.terminal-output img{vertical-align:top}.cmd img{border:1px solid transparent;height:14px;height:calc(var(--size, 1)*(14px/var(--pixel-density, 1)))}.cmd-cursor img{border-color:#ccc;border-color:var(--color,#ccc)}.terminal-output svg.terminal-broken-image{height:calc(var(--size, 1)*(14px/var(--pixel-density, 1)))}.terminal-output svg.terminal-broken-image use{fill:var(--color,#ccc)}.terminal-error{--color:var(--error-color)}.terminal-glow{--animation:terminal-glow}.terminal-glow .cmd-prompt>span,.terminal-glow .terminal-output>div a[href],.terminal-glow .terminal-output>div span,.terminal-glow [data-text] span,.terminal-glow a[data-text],.terminal-glow span[data-text]{text-shadow:1px 1px 5px #ccc;text-shadow:1px 1px 5px var(--color,#ccc)}.terminal-scroll-marker{height:1px;height:calc(1px/var(--pixel-density, 1));margin-top:-1px;margin-top:calc(-1px/var(--pixel-density, 1));position:relative;z-index:100}.terminal-scroll-marker div{bottom:0;left:0;position:absolute;right:0;z-index:200}.terminal-less{overscroll-behavior-y:contain;touch-action:none}.terminal-mobile.terminal-less .terminal-wrapper{pointer-events:none}.cmd-editable,.terminal-mobile.terminal-less .terminal-output a{pointer-events:visible}.cmd-editable:before{content:attr(data-cmd-prompt);display:inline-block}.cmd-editable{background:transparent;bottom:0;color:transparent;left:0;opacity:.01;outline:0 solid transparent;position:absolute;right:0;top:calc(var(--cmd-top)*1px);z-index:500}.terminal-scroller::-webkit-scrollbar{background:var(--background,#000);height:calc(6px/var(--pixel-density, 1));width:calc(6px/var(--pixel-density, 1))}.terminal-scroller::-webkit-scrollbar-thumb,.terminal-scroller::-webkit-scrollbar-thumb:hover{background:var(--color,#aaa)}.terminal-scroller{scrollbar-color:#aaa #000;scrollbar-color:var(--color,#aaa) var(--background,#000);scrollbar-width:thin}.terminal-hidden{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.terminal-wrapper{--color:var(--base-color);--background:var(--base-background)}.cmd .token{--original-color:var(--color)}.cmd .terminal-blink,.terminal .terminal-blink{animation:terminal-ansi-blink 1s steps(2,start) infinite;-webkit-animation:terminal-ansi-blink 1s steps(2,start) infinite}.terminal .cmd *,.terminal .terminal-output,.terminal .terminal-output *{--background:transparent}.terminal .cmd ::selection,.terminal .cmd::selection,.terminal .terminal-output ::selection,.terminal .terminal-output::selection{--background:var(--base-background)}@keyframes terminal-ansi-blink{to{color:var(--background)}}@-webkit-keyframes terminal-ansi-blink{to{color:var(--background)}}@media (prefers-reduced-motion){:root{--animation:terminal-none}} diff --git a/css/jquery.terminal.min.css.map b/css/jquery.terminal.min.css.map index 69ddc394..26d65df9 100644 --- a/css/jquery.terminal.min.css.map +++ b/css/jquery.terminal.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["jquery.terminal.css"],"names":[],"mappings":"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","file":"jquery.terminal.min.css","sourcesContent":["/*!\n * __ _____ ________ __\n * / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / /\n * __ / // // // // // _ // _// // / / // _ // _// // // \\/ // _ \\/ /\n * / / // // // // // ___// / / // / / // ___// / / / / // // /\\ // // / /__\n * \\___//____ \\\\___//____//_/ _\\_ / /_//____//_/ /_/ /_//_//_/ /_/ \\__\\_\\___/\n * \\/ /____/ version 2.39.3\n * http://terminal.jcubic.pl\n *\n * This file is part of jQuery Terminal.\n *\n * Copyright (c) 2011-2023 Jakub T. Jankiewicz \n * Released under the MIT license\n *\n * Date: Sun, 21 Apr 2024 10:23:57 +0000\n */\n.terminal .terminal-output .format, .cmd .format,\n.cmd-prompt, .cmd-prompt div {\n display: inline-block;\n}\n.terminal h1, .terminal h2, .terminal h3, .terminal h4, .terminal h5, .terminal h6, .terminal pre, .cmd {\n margin: 0;\n}\n.cmd .cmd-clipboard {\n position: absolute !important;\n let: -16px;\n left: calc(-16px / var(--pixel-density, 1)) !important;\n top: 0 !important;\n width: 16px;\n height: 16px;\n width: calc(16px / var(--pixel-density, 1)) !important;\n height: calc(16px / var(--pixel-density, 1)) !important;\n background: transparent !important;\n border: none !important;\n color: transparent !important;\n outline: none !important;\n padding: 0 !important;\n resize: none !important;\n box-shadow: none !important;\n z-index: 1000 !important;\n overflow: hidden !important;\n white-space: pre !important;\n text-indent: -9999em !important; /* better cursor hiding for Safari and IE */\n top: calc(var(--cursor-line, 0) * var(--size, 1) * (14px / var(--pixel-density, 1))) !important;\n}\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n user-select: none;\n width: 1px;\n top: 0;\n left: 0;\n}\n.cmd span.cmd-end-line,\n.cmd span.cmd-end-line span,\n.cmd div.cmd-end-line span[data-text]:last-child,\n.cmd div.cmd-end-line span[data-text]:last-child span,\n.cmd textarea,\n.cmd .cursor + span:empty {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */\n}\n.terminal img, .terminal audio, .terminal object, .terminal canvas {\n cursor: default;\n}\n.terminal {\n position: relative;\n line-height: initial;\n --base-background: var(--background, #000);\n --base-color: var(--color);\n contain: content;\n}\n.terminal-scroller {\n position: relative;\n overflow-y: auto;\n scrollbar-gutter: stable;\n height: 100%;\n box-sizing: border-box;\n overflow-x: hidden;\n}\nterminal.terminal-temp {\n visibility: hidden;\n}\nbody.terminal {\n min-height: 100vh;\n height: 100%;\n}\nhtml {\n height: 100%;\n}\nbody.terminal, body.full-screen-terminal {\n margin: 0;\n height: 100%;\n}\nbody.full-screen-terminal .terminal {\n height: 100%;\n}\nbody.full-screen-terminal {\n height: 100%;\n height: var(--terminal-force-height, 100dvh);\n}\n.terminal > div.terminal-fill {\n min-height: 100%;\n height: 100%;\n}\n.terminal > .terminal-pixel {\n position: absolute;\n display: inline;\n left: -2px;\n top: -2px;\n width: 1px;\n height: 1px;\n}\n.terminal > .terminal-resizer,\n.terminal > .terminal-font .terminal-resizer {\n position: absolute !important;\n top: 0 !important;\n right: 0 !important;\n bottom: 0 !important;\n left: 0 !important;\n overflow: hidden !important;\n pointer-events: none !important;\n z-index: -1 !important;\n height: 100% !important;\n border: none !important;\n padding: 0 !important;\n width: 100% !important;\n}\n.cmd {\n padding: 0;\n position: relative;\n width: 100%;\n z-index: 300;\n}\n.terminal .cmd, .terminal .cmd div {\n background: transparent !important;\n}\n.terminal a[tabindex=\"1000\"],\n.terminal a[tabindex=\"1000\"]:active,\n.terminal a[tabindex=\"1000\"]:focus {\n outline: none;\n}\n.terminal .inverted, .cmd.cmd.cmd .inverted,\n.terminal .terminal-inverted, .cmd.cmd.cmd .cmd-inverted {\n background-color: #aaa !important;\n color: #000 !important;\n}\n.terminal .terminal-output > :not(.raw) a[href],\n.cmd a[href],\n.terminal.external a[href] {\n color: #3377FF;\n color: var(--link-color, #3377FF);\n cursor: pointer;\n}\n.cmd a[href]:not(.terminal-inverted),\n.terminal .terminal-output > :not(.raw) a[href]:not(.terminal-inverted),\n.terminal.external a[href]:not(.terminal-inverted) {\n --color: var(--link-color, #3377FF);\n /* conditionals: https://www.kizu.ru/conditions-for-css-variables/ */\n /* --glow: 0; */\n text-shadow: 0 0 calc(var(--glow) * 5px) var(--color, #ccc);\n}\n.terminal .terminal-output > :not(.raw) a[href].terminal-inverted,\n.terminal.external a[href].terminal-inverted {\n background: var(--color, #ccc);\n /* conditionals: https://www.kizu.ru/conditions-for-css-variables/ */\n /* --glow: 0; */\n text-shadow: 0 0 calc(var(--glow) * 5px) var(--background, #000);\n}\n.terminal .terminal-output > :not(.raw) a[href]:hover,\n.cmd a[href]:hover,\n.terminal.external a[href]:hover {\n background-color: #3377FF;\n background-color: var(--link-color, #3377FF) !important;\n color: #000;\n color: var(--base-background, #000) !important;\n text-decoration: none;\n}\n.terminal .terminal-output > :not(.raw) a[href] span,\n.cmd a[href] span,\n.terminal.external a[href] span {\n /*\n * shorter and simple solution\n * it's hard to overwrite long :not selector (:not(a span) don't work)\n */\n color: #3377FF !important;\n --color: var(--link-color, #3377FF);\n color: var(--link-color, #3377FF) !important;\n text-decoration: underline;\n}\n.terminal .terminal-output > :not(.raw) a[href]:hover span,\n.cmd a[href]:hover span,\n.terminal.external a[href]:hover span {\n background-color: #3377FF !important;\n background-color: var(--link-color, #3377FF) !important;\n color: #000 !important;\n color: var(--background, #000) !important;\n text-decoration: none;\n}\n.terminal a[href] {\n transition-property: color, background-color;\n transition-duration: 0.2s;\n transition-timing-function: ease-out;\n}\n.cmd .cmd-cursor {\n display: inline-block;\n}\n.cmd .cmd-cursor-line > span,\n.cmd .cmd-cursor-line img {\n display: inline-block;\n}\n.cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span,\n.cmd .cmd-cursor.cmd-blink a,\n.cmd .cmd-cursor.cmd-blink .fa,\n.cmd .cmd-cursor.cmd-blink .far,\n.cmd .cmd-cursor.cmd-blink .fas,\n.cmd .cmd-cursor .emoji {\n -webkit-animation: terminal-blink 1s infinite linear;\n -moz-animation: terminal-blink 1s infinite linear;\n -ms-animation: terminal-blink 1s infinite linear;\n animation: terminal-blink 1s infinite linear;\n}\n.bar.terminal .inverted, .bar.cmd .cmd-inverted {\n box-shadow: -2px 0 0 -1px #aaa;\n box-shadow: -2px 0 0 -1px var(--original-color, #aaa);\n}\n.terminal, .terminal .terminal-output > div > div, .cmd .cmd-prompt {\n display: block;\n height: auto;\n}\n.terminal .terminal-output > div:not(.raw) div {\n white-space: nowrap;\n clear: both;\n}\n.cmd .cmd-prompt > span, .cmd .cmd-prompt > a, .cmd .cmd-prompt:empty {\n float: left;\n}\n.cmd-prompt [data-text] > span, .cmd-wrapper > div {\n white-space: pre;\n}\n.cmd [data-text] span,\n.terminal [data-text] span {\n display: inline-block;\n}\n.terminal-ouput span[style*=\"width\"] {\n min-height: 14px;\n min-height: calc(var(--size, 1) * (14px / var(--pixel-density, 1)));\n}\n.terminal .terminal-output > :not(.raw) > div,\n.cmd div,\n.terminal.external div {\n line-height: 1em;\n line-height: calc((var(--size) * (16px / var(--pixel-density, 1))) + (1px / var(--pixel-density, 1)));\n}\n.cmd .cmd-prompt span.fa::before,\n.cmd .cmd-prompt span.fab::before,\n.cmd .cmd-prompt span.fad::before,\n.cmd .cmd-prompt span.fal::before,\n.cmd .cmd-prompt span.far::before,\n.cmd .cmd-prompt span.fas {\n position: relative;\n top: 2px;\n}\n.terminal,\n.terminal-output > :not(.raw),\n.terminal-output > :not(.raw) span:not(.fas):not(.far):not(.fa),\n.terminal-output > :not(.raw) a,\n.cmd,\n.terminal-font-forcer,\n.cmd span:not(.fas):not(.far):not(.fa) {\n font-family: monospace;\n font-family: var(--font, monospace);\n}\n.terminal,\n.cmd {\n font-size: 12px;\n}\n.terminal-output > div:not(.raw) div::before,\n.cmd .cmd-line::before {\n content: '\\0200B';\n width: 0;\n display: inline-block;\n}\n.cmd .cmd-line {\n white-space: nowrap;\n}\n.terminal span[data-text],\n.cmd span[data-text] {\n display: inline-block;\n}\n.terminal, terminal-output > div:not(.raw) div > span:not(.token):not(.inverted):not(.terminal-inverted):not(.cmd-inverted):not(.terminal-error):not(.emoji),\n.cmd span[data-text]:not(.cmd-inverted):not(.token):not(.emoji) {\n color: #aaa;\n background-color: #000;\n}\n.terminal span[data-text] span, .cmd span[data-text] span {\n text-decoration: inherit;\n}\n.terminal .ansi > div {\n line-height: 13px !important;\n line-height: calc(var(--size, 1) * (13px / var(--pixel-density, 1))) !important;\n}\n.cmd span.cmd-prompt, .cmd .cmd-prompt span {\n --background: transparent;\n}\n.terminal-output .emoji, .cmd .emoji {\n height: 12px;\n height: calc(12px / var(--pixel-density, 1));\n background-size: contain;\n background-repeat: no-repeat;\n color: transparent;\n position: relative;\n}\n.terminal .terminal-output .fa span,\n.terminal .terminal-output .fas span,\n.terminal .terminal-output .far span,\n.cmd .fa span,\n.cmd .fas span,\n.cmd .far span {\n background: transparent !important;\n color: transparent !important;\n clip: rect(1px,1px,1px,1px);\n position: absolute;\n}\n.terminal-output .emoji,\n.terminal-output .emoji span,\n.cmd .emoji, .cmd .emoji span {\n display: inline-block;\n width: 2ch;\n}\n.terminal, .cmd {\n box-sizing: border-box;\n}\n.cmd .cmd-cursor span:not(.token):not(.inverted) {\n color: inherit;\n background-color: inherit;\n}\n.cmd .emoji.emoji.emoji.emoji, .cmd .emoji.emoji.emoji.emoji span {\n color: transparent;\n background-color: transparent;\n}\n.cmd .cmd-cursor * {\n background-color: transparent;\n}\n.terminal span[style*=\"width\"] span,\n.cmd span[style*=\"width\"] span {\n width: inherit;\n}\n.cmd div {\n clear: both;\n}\n.cmd .cmd-prompt + div {\n clear: right;\n}\nterminal .terminal-output > div {\n margin-top: -1px;\n}\n.terminal-output > div.raw > div * {\n overflow-wrap: break-word;\n word-wrap: break-word;\n}\n.terminal .terminal-font {\n position: absolute;\n float: left;\n font-size: inherit;\n line-height: inherit;\n top: -100%;\n left: 0;\n margin-bottom: 1px;\n}\n.cmd > span:not(.cmd-prompt) {\n float: left;\n}\n.cmd .cmd-prompt span.cmd-line {\n display: block;\n float: none;\n}\n.terminal table {\n border-collapse: collapse;\n}\n.terminal td {\n border: 1px solid #aaa;\n}\n.cmd span[data-text]:not(.emoji):not(.fa):not(.fas):not(.far) span {\n background-color: inherit;\n color: inherit;\n}\n/* fix for underline on middle line */\n.cmd [role=\"presentation\"].cmd-cursor-line {\n position: relative;\n z-index: 100;\n cursor: text;\n}\n/* prompt above cursor line */\n.cmd .cmd-prompt {\n position: relative;\n z-index: 200;\n}\n.cmd [role=\"presentation\"]:not(.cmd-cursor-line) {\n overflow: hidden;\n}\n/*\n * this is set so animation can select original color as backgound for cursor\n * so span can have --color for selection\n */\n.cmd {\n --original-color: var(\n --color, #aaa);\n--original-background: var(\n --background);\n}\n.cmd a[href] {\n --original-color: var(--link-color, #3377FF);\n}\n/* DEFAULT ANIMATION */\n@-webkit-keyframes terminal-blink {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n /* original background is set in emoji that need different style */\n color: inherit;\n color: var(--original-color, #aaa)\n }\n}\n@-moz-keyframes terminal-blink {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n color: inherit;\n color: var(--original-color, #aaa);\n }\n}\n@keyframes terminal-blink {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n color: inherit;\n color: var(--original-color, #aaa);\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n/* GLOW ANIMATION */\n@-webkit-keyframes terminal-glow {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n box-shadow: 0 0 3px #aaa;\n -webkit-box-shadow: 0 0 3px var(--color, #aaa);\n box-shadow: 0 0 3px var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n color: inherit;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n@-moz-keyframes terminal-glow {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n box-shadow: 0 0 3px #aaa;\n -moz-box-shadow: 0 0 3px var(--color, #aaa);\n box-shadow: 0 0 3px var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n color: inherit;\n -moz-box-shadow: none;\n box-shadow: none;\n }\n}\n@keyframes terminal-glow {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n box-shadow: 0 0 3px #aaa;\n box-shadow: 0 0 3px var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n color: inherit;\n box-shadow: none;\n }\n}\n/* BAR ANIMATION */\n@-webkit-keyframes terminal-bar {\n 0%, 50% {\n box-shadow: -2px 0 0 -1px #aaa;\n box-shadow: calc(var(--line-thickness, 2) * -1px) 0 0 -1px var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n@-moz-keyframes terminal-bar {\n 0%, 50% {\n box-shadow: -2px 0 0 -1px #aaa;\n box-shadow: calc(var(--line-thickness, 2) * -1px) 0 0 -1px var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n@keyframes terminal-bar {\n 0%, 50% {\n box-shadow: -2px 0 0 -1px #aaa;\n box-shadow: calc(var(--line-thickness, 2) * -1px) 0 0 -1px var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n/* UNDERLINE ANIMATION */\n@-webkit-keyframes terminal-underline {\n 0%, 50% {\n box-shadow: 0 2px 0 #aaa;\n box-shadow: 0 calc(var(--line-thickness, 2) * 1px) 0 var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n@-moz-keyframes terminal-underline {\n 0%, 50% {\n box-shadow: 0 2px 0 #aaa;\n box-shadow: 0 calc(var(--line-thickness, 2) * 1px) 0 var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n@keyframes terminal-underline {\n 0%, 50% {\n box-shadow: 0 2px 0 #aaa;\n box-shadow: 0 calc(var(--line-thickness, 2) * 1px) 0 var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n/* NONE ANIMATION */\n@-webkit-keyframes terminal-none {\n 0%, 100% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n}\n@-moz-keyframes terminal-none {\n 0%, 100% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n}\n@keyframes terminal-none {\n 0%, 100% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n}\n.underline-animation .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span,\n.underline-animation .cmd .cmd-cursor.cmd-blink a,\n.underline-animation .cmd .cmd-cursor.cmd-blink .fa,\n.underline-animation .cmd .cmd-cursor.cmd-blink .far,\n.underline-animation .cmd .cmd-cursor.cmd-blink .fas,\n.underline-animation .cmd .cmd-cursor .emoji {\n -webkit-animation-name: terminal-underline;\n -moz-animation-name: terminal-underline;\n -ms-animation-name: terminal-underline;\n animation-name: terminal-underline;\n}\n.glow-animation .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span,\n.glow-animation .cmd .cmd-cursor.cmd-blink a,\n.glow-animation .cmd .cmd-cursor.cmd-blink .fa,\n.glow-animation .cmd .cmd-cursor.cmd-blink .far,\n.glow-animation .cmd .cmd-cursor.cmd-blink .fas,\n.glow-animation .cmd .cmd-cursor .emoji {\n -webkit-animation-name: terminal-glow;\n -moz-animation-name: terminal-glow;\n -ms-animation-name: terminal-glow;\n animation-name: terminal-glow;\n}\n.bar-animation .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span,\n.bar-animation .cmd .cmd-cursor.cmd-blink a,\n.bar-animation .cmd .cmd-cursor.cmd-blink .fa,\n.bar-animation .cmd .cmd-cursor.cmd-blink .far,\n.bar-animation .cmd .cmd-cursor.cmd-blink .fas,\n.bar-animation .cmd .cmd-cursor .emoji {\n -webkit-animation-name: terminal-bar;\n -moz-animation-name: terminal-bar;\n -ms-animation-name: terminal-bar;\n animation-name: terminal-bar;\n}\n/*\n Internet Explorer & Edge *, Safari ≤ 6\n source: https://w3reign.com/internet-explorer-edge-css-hacks/\n*/\n\n\n@supports (-ms-ime-align:auto) {\n .cmd .cmd-clipboard {\n margin-left: -9999px;\n }\n @keyframes terminal-blink {\n 0%, 50% {\n background-color: var(--original-color, #aaa);\n color: var(--background, #000);\n }\n 50.1%, 100% {\n background-color: var(--background, #000);\n color: var(--original-color, #aaa);\n }\n }\n @keyframes terminal-bar {\n 0%, 50% {\n border-left-color: var(--color, #aaa);\n }\n 50.1%, 100% {\n border-left-color: var(--background, #000);\n }\n }\n @keyframes terminal-underline {\n 0%, 50% {\n border-bottom-color: var(--color, #aaa);\n line-height: 12px;\n line-height: calc(var(--size, 1) * (12px / var(--pixel-density, 1)));\n }\n 50.1%, 100% {\n border-bottom-color: var(--background, #000);\n line-height: 12px;\n line-height: calc(var(--size, 1) * (12px / var(--pixel-density, 1)));\n }\n }\n}\n/* IE hack Edge one don't work in IE11 */\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .cmd .cmd-clipboard {\n margin-left: -9999px;\n }\n .underline-animation .cursor.blink span span {\n margin-top: 1px;\n }\n @-ms-keyframes terminal-blink {\n 0%, 50% {\n background-color: #aaa;\n color: #000;\n }\n 50.1%, 100% {\n background-color: #000;\n color: #aaa;\n }\n }\n}\n.terminal h1::-moz-selection,\n.terminal h2::-moz-selection,\n.terminal h3::-moz-selection,\n.terminal h4::-moz-selection,\n.terminal h5::-moz-selection,\n.terminal h6::-moz-selection,\n.terminal pre::-moz-selection,\n.terminal td::-moz-selection,\n.terminal .terminal-output::-moz-selection,\n.terminal .terminal-output div div::-moz-selection,\n.terminal .terminal-output div div a::-moz-selection,\n.terminal .terminal-output span[data-text]::-moz-selection,\n.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas) span::-moz-selection,\n.terminal .terminal-output .raw div::-moz-selection,\n.cmd span[data-text]::-moz-selection,\n.cmd span[data-text]:not(.far):not(.fa):not(.fas) span::-moz-selection {\n background-color: #aaa;\n color: #000;\n}\n/* this don't work in Chrome\n.terminal tr td::-moz-selection {\n border-color: #000;\n}\n.terminal tr td::selection {\n border-color: #000;\n}\n*/\n/* fix selection/click on text that was echo without newline while prompt is relocated */\n.terminal .cmd {\n pointer-events: none;\n}\n.terminal .cmd-prompt * {\n pointer-events: visible;\n}\n.cmd-prompt > span:first-child {\n margin-left: var(--prompt-offset);\n}\n.terminal .cmd-wrapper > div:not(.cmd-cursor-line),\n.terminal .cmd-cursor-line > span,\n.terminal .cmd textarea {\n pointer-events: visible;\n}\n.terminal h1::selection,\n.terminal h2::selection,\n.terminal h3::selection,\n.terminal h4::selection,\n.terminal h5::selection,\n.terminal h6::selection,\n.terminal pre::selection,\n.terminal td::selection,\n.terminal .terminal-output::selection,\n.terminal .terminal-output div div::selection,\n.terminal .terminal-output div div a::selection,\n.terminal .terminal-output span[data-text]::selection,\n.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas) span::selection,\n.terminal .terminal-output .raw div::selection,\n.cmd span[data-text]:not(.far):not(.fa):not(.fas) span::selection {\n /*\n * use rgba to fix transparent selection in chrome\n * http://stackoverflow.com/questions/7224445/css3-selection-behaves-differently-in-ff-chrome\n */\n background-color: rgba(170, 170, 170, 0.99);\n color: #000;\n}\n.terminal-output .emoji::-moz-selection,\n.terminal-output .emoji span::-moz-selection,\n.cmd .emoji::-moz-selection,\n.cmd .emoji span::-moz-selection,\n.cmd textarea::-moz-selection {\n background-color: transparent !important;\n color: transparent !important;\n}\n.terminal-output .emoji::selection,\n.terminal-output .emoji span::selection,\n.cmd .emoji span::selection,\n.cmd .emoji::selection,\n.cmd textarea::selection {\n background-color: transparent !important;\n color: transparent !important;\n}\n\n.terminal .terminal-output > :not(.raw) .terminal-error,\n.terminal .terminal-output > :not(.raw) .terminal-error * {\n color: red;\n color: var(--error-color, red);\n}\n.tilda {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 1100;\n}\n.ui-dialog-content .terminal {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n}\n.ui-dialog .ui-dialog-content.dterm {\n padding: 0;\n}\n.clear {\n clear: both;\n}\n.terminal .terminal-fill {\n position: absolute;\n left: 0;\n top: -100%;\n width: 100%;\n height: 100%;\n margin: 1px 0 0;\n border: none;\n opacity: 0.01;\n pointer-events: none;\n box-sizing: border-box;\n}\n.terminal-scroller, .terminal .terminal-fill, .cmd-editable {\n padding: calc(1px * var(--padding, 10) / var(--pixel-density, 1));\n}\n.cmd-editable {\n padding-top: 0;\n}\n/* padding added as margin to .cmd to fix FireFox bug see: https://stackoverflow.com/q/29986977/387194 */\n.terminal-scroller {\n padding-bottom: 0;\n}\n.terminal .terminal-output > :not(.raw) .terminal-error,\n.terminal .terminal-output > :not(.raw) .terminal-error * {\n --color: var(--error-color, red);\n text-shadow: 0 0 calc(var(--glow) * 5px) var(--color);\n}\n.terminal .terminal-output > :not(.raw) a[href] {\n text-shadow: 0 0 calc(var(--glow) * 5px) var(--color);\n}\n.terminal .cmd {\n margin-bottom: calc(1px * var(--padding, 10) / var(--pixel-density, 1));\n position: relative;\n}\n.terminal .partial, .terminal .partial > div {\n display: inline-block;\n}\n@supports (--css: variables) {\n .terminal,\n .terminal-output > :not(.raw) span[data-text]:not(.token):not(.inverted):not(.terminal-inverted):not(.cmd-inverted):not(.terminal-error):not(.emoji),\n .terminal-output > :not(.raw) a,\n .terminal-output > :not(.raw) div,\n .cmd,\n .cmd span[data-text]:not(.cmd-inverted):not(.token):not(.emoji),\n .terminal.external [data-text],\n .cmd div {\n color: var(--color, #aaa);\n background-color: var(--background, #000);\n }\n .terminal [data-text], .cmd [data-text] {\n /* conditionals: https://www.kizu.ru/conditions-for-css-variables/ */\n /* --glow: 0; */\n text-shadow: var(--text-shadow, 0 0 calc(var(--glow) * 5px) var(--color, #ccc));\n }\n .terminal span[style*=\"--length\"] {\n /*\n * default value for char-width taken from Google Chrome for default font\n * to silence warning in webpack #371\n */\n width: calc(var(--length, 1) * var(--char-width, 7.23438) * 1px);\n display: inline-block;\n }\n .terminal,\n .terminal-output > :not(.raw) span,\n .terminal-output > :not(.raw) a,\n .terminal-output > :not(.raw) div,\n .cmd,\n .cmd span,\n .cmd div {\n font-size: calc(var(--size, 1) * (12px / var(--pixel-density, 1)));\n }\n .terminal-output .emoji, .cmd .emoji {\n height: calc(var(--size, 1) * (12px / var(--pixel-density, 1)));\n }\n .cmd .clipboard {\n top: calc(var(--size, 1) * (14 / var(--pixel-density, 1)) * var(--cursor-line, 0) * 1px);\n }\n .terminal .inverted, .cmd.cmd.cmd .inverted, .cmd.cmd.cmd .cmd-inverted {\n --background: #000;\n background-color: var(--color, #aaa) !important;\n color: var(--background, #000) !important;\n }\n .cmd .cmd-cursor.cmd-blink {\n color: var(--color, #aaa);\n background-color: var(--background, #000);\n }\n .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span,\n .cmd .cmd-cursor.cmd-blink a,\n .cmd .cmd-cursor.cmd-blink .fa,\n .cmd .cmd-cursor.cmd-blink .far,\n .cmd .cmd-cursor.cmd-blink .fas,\n .cmd .cmd-cursor.cmd-blink .emoji {\n -webkit-animation: var(--animation, terminal-blink) 1s infinite linear;\n -moz-animation: var(--animation, terminal-blink) 1s infinite linear;\n -ms-animation: var(--animation, terminal-blink) 1s infinite linear;\n animation: var(--animation, terminal-blink) 1s infinite linear;\n --original-background: inherit;\n }\n .cmd .cmd-cursor.cmd-blink .emoji span {\n color: transparent;\n background: transparent;\n }\n .terminal h1::-moz-selection,\n .terminal h2::-moz-selection,\n .terminal h3::-moz-selection,\n .terminal h4::-moz-selection,\n .terminal h5::-moz-selection,\n .terminal h6::-moz-selection,\n .terminal pre::-moz-selection,\n .terminal td::-moz-selection,\n .terminal .terminal-output::-moz-selection,\n .terminal .terminal-output div div::-moz-selection,\n .terminal .terminal-output div div a::-moz-selection,\n .terminal .terminal-output span[data-text]::-moz-selection,\n /*\n * font icons (fontawesome) don't render selection we make emoji the same becuase,\n * selection on emoji looks weird\n */\n .terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::-moz-selection,\n .terminal .terminal-output .raw div::-moz-selection,\n .cmd span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::-moz-selection {\n background-color: var(--color, #aaa);\n color: var(--background, #000);\n }\n .terminal .terminal-output div div a::-moz-selection {\n background-color: var(--link-color, rgba(15, 96, 255, 0.99)) !important;\n color: var(--background, #000) !important;\n }\n .terminal .terminal-output div div a:hover::-moz-selection {\n background-color: var(--link-color, rgba(2, 50, 144, 0.99)) !important;\n }\n .terminal h1::selection,\n .terminal h2::selection,\n .terminal h3::selection,\n .terminal h4::selection,\n .terminal h5::selection,\n .terminal h6::selection,\n .terminal pre::selection,\n .terminal td::selection,\n .terminal .terminal-output::selection,\n .terminal .terminal-output div div::selection,\n .terminal .terminal-output div div a::selection,\n .terminal .terminal-output span[data-text]:not(.emoji)::selection,\n .terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::selection,\n .terminal .terminal-output .raw div::selection,\n .cmd span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::selection {\n background-color: var(--color, rgba(170, 170, 170, 0.99)) !important;\n color: var(--background, #000) !important;\n }\n .terminal .terminal-output div div a::selection {\n background-color: var(--link-color, rgba(15, 96, 255, 0.99)) !important;\n color: var(--background, #000) !important;\n }\n .terminal .terminal-output div div a:hover::selection {\n background-color: var(--link-color, rgba(2, 50, 144, 0.99)) !important;\n }\n}\n/*\n * overwrite css variables that don't work with selection in Edge\n */\n@property --color {\n syntax: '';\n inherits: true;\n initial-value: rgba(170, 170, 170, 0.99);\n}\n@property --background {\n syntax: '';\n inherits: true;\n initial-value: #000;\n}\n@property --link-color {\n syntax: '';\n inherits: true;\n initial-value: #3377FF;\n}\n@property --size {\n syntax: '';\n inherits: true;\n initial-value: 1;\n}\n@property --padding {\n syntax: '';\n inherits: true;\n initial-value: 10;\n}\n@supports (-ms-ime-align:auto) {\n .terminal h1::selection,\n .terminal h2::selection,\n .terminal h3::selection,\n .terminal h4::selection,\n .terminal h5::selection,\n .terminal h6::selection,\n .terminal pre::selection,\n .terminal td::selection,\n .terminal .terminal-output div div::selection,\n .terminal .terminal-output div div a::selection,\n .cmd span[data-text]::selection {\n background-color: rgba(170, 170, 170, 0.99);\n color: #000;\n }\n}\n/* PrismJS style overwrites */\n.terminal .token.token,\n.terminal .token.operator,\n.terminal .token.entity,\n.terminal .token.variable,\n.terminal .token.url,\n.terminal .token.string,\n.terminal .style .token.string,\n.terminal .token.token,\n.cmd .token.operator,\n.cmd .token.entity,\n.cmd .token.variable,\n.cmd .token.url,\n.cmd .token.string,\n.cmd .style .token.string,\n.cmd .token.token {\n background-color: inherit;\n}\n/* FireFox hack\n@supports (-moz-animation: foo) {\n .terminal,\n .terminal .terminal-output > :not(.raw) span,\n .terminal .terminal-output > :not(.raw) a,\n .terminal .terminal-output > :not(.raw) div,\n .cmd,\n .cmd span,\n .cmd div {\n line-height: calc(var(--size, 1) * 13px);\n }\n}\n*/\n/* style for autocomplete menu */\n.cmd .cursor-wrapper ul {\n list-style: none;\n margin: 0;\n padding: 0;\n float: left;\n position: absolute;\n top: 14px;\n left: 0;\n}\n.cmd .cursor-wrapper li {\n cursor: pointer;\n white-space: nowrap;\n}\n.cmd .cursor-wrapper li:hover {\n background: #aaa;\n color: #000;\n}\n.cursor-wrapper {\n position: relative;\n}\n.terminal-output img {\n vertical-align: top;\n}\n.cmd img {\n height: 14px;\n height: calc(var(--size, 1) * (14px / var(--pixel-density, 1)));\n border: 1px solid transparent;\n}\n.cmd-cursor img {\n border-color: #ccc;\n border-color: var(--color, #ccc);\n}\n.terminal-output svg.terminal-broken-image {\n height: calc(var(--size, 1) * (14px / var(--pixel-density, 1)));\n}\n.terminal-output svg.terminal-broken-image use {\n fill: var(--color, #ccc);\n}\n.terminal-error {\n --color: var(--error-color);\n}\n.terminal-glow {\n --animation: terminal-glow;\n}\n.terminal-glow span[data-text],\n.terminal-glow .cmd-prompt > span,\n.terminal-glow a[data-text],\n.terminal-glow [data-text] span,\n.terminal-glow .terminal-output > div span,\n.terminal-glow .terminal-output > div a[href] {\n text-shadow: 1px 1px 5px #ccc;\n text-shadow: 1px 1px 5px var(--color, #ccc);\n}\n/* is_bottom detection */\n.terminal-scroll-marker {\n position: relative;\n height: 1px;\n height: calc(1px / var(--pixel-density, 1));\n margin-top: -1px;\n margin-top: calc(-1px / var(--pixel-density, 1));\n z-index: 100;\n}\n.terminal-scroll-marker div {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 200;\n}\n.terminal-less {\n touch-action: none;\n overscroll-behavior-y: contain;\n}\n/*\n * mobile scroll fix, with help from StackOverflow\n * https://stackoverflow.com/a/60535925/387194\n */\n.terminal-mobile.terminal-less .terminal-wrapper {\n pointer-events: none;\n}\n.terminal-mobile.terminal-less .terminal-output a, .cmd-editable {\n pointer-events: visible;\n}\n.cmd-editable::before {\n content: attr(data-cmd-prompt);\n display: inline-block;\n}\n.cmd-editable {\n position: absolute;\n top: calc(var(--cmd-top) * 1px);\n bottom: 0;\n right: 0;\n left: 0;\n z-index: 500;\n color: transparent;\n background: transparent;\n opacity: 0.01;\n outline: 0px solid transparent;\n}\n/* Scrollbar */\n.terminal-scroller::-webkit-scrollbar {\n width: calc(6px / var(--pixel-density, 1));\n height: calc(6px / var(--pixel-density, 1));\n background: var(--background, #000);\n}\n.terminal-scroller::-webkit-scrollbar-thumb {\n background: var(--color, #aaa);\n}\n.terminal-scroller::-webkit-scrollbar-thumb:hover {\n background: var(--color, #aaa);\n}\n.terminal-scroller {\n scrollbar-color: #aaa #000;\n scrollbar-color: var(--color, #aaa) var(--background, #000);\n scrollbar-width: thin;\n}\n\n/* visially hidden */\n.terminal-hidden {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0,0,0,0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n/*\n * Allow to change scrollbar color\n */\n.terminal-wrapper {\n --color: var(--base-color);\n --background: var(--base-background);\n}\n.cmd .token {\n --original-color: var(--color);\n}\n.terminal .terminal-blink, .cmd .terminal-blink {\n animation: terminal-ansi-blink 1s steps(2, start) infinite;\n -webkit-animation: terminal-ansi-blink 1s steps(2, start) infinite;\n}\n/* Allow transparent background #698 */\n.terminal .terminal-output,\n.terminal .terminal-output * {\n --background: transparent;\n}\n.terminal .cmd * {\n --background: transparent;\n}\n.terminal .cmd::selection,\n.terminal .cmd *::selection,\n.terminal .terminal-output::selection,\n.terminal .terminal-output *::selection {\n --background: var(--base-background);\n}\n@keyframes terminal-ansi-blink {\n to {\n color: var(--background);\n }\n}\n@-webkit-keyframes terminal-ansi-blink {\n to {\n color: var(--background);\n }\n}\n@media (prefers-reduced-motion) {\n :root {\n --animation: terminal-none;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["jquery.terminal.css"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;EAeE,CACF,4EAEI,oBACJ,CACA,iGACI,QACJ,CACA,oBAEI,SAAU,CAOV,gCAAkC,CAClC,qBAAuB,CAKvB,yBAA2B,CAJ3B,2BAA6B,CAL7B,WAAY,CAEZ,mDAAuD,CALvD,kDAAsD,CAStD,sBAAwB,CAKxB,yBAA2B,CAJ3B,mBAAqB,CAZrB,2BAA6B,CAa7B,qBAAuB,CAKvB,6BAA+B,CAf/B,eAAiB,CAgBjB,uFAA+F,CAF/F,yBAA2B,CAb3B,UAAW,CAEX,kDAAsD,CAStD,sBAKJ,CACA,iBACI,kBAAmB,CACnB,oBAAqB,CACrB,UAAW,CAOX,MAAO,CANP,eAAgB,CAChB,iBAAkB,CAIlB,KAAM,CAFN,gBAAiB,CADjB,kBAAmB,CAEnB,SAGJ,CACA,gMAMI,0BAA2B,CACzB,wBAAyB,CACxB,uBAAwB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACd,CACA,gEACI,cACJ,CACA,UAGI,wCAA0C,CAC1C,yBAA0B,CAC1B,eAAgB,CAHhB,kBAAoB,CADpB,iBAKJ,CACA,mBAGI,uBAAwB,CAExB,qBAAsB,CADtB,WAAY,CAEZ,iBAAkB,CAJlB,eAAgB,CADhB,iBAMJ,CACA,uBACI,iBACJ,CACA,cAEI,WAAY,CADZ,gBAEJ,CACA,KACI,WACJ,CACA,wCAEI,WAAY,CADZ,QAEJ,CACA,oCACI,WACJ,CACA,0BACI,WAAY,CACZ,0CACJ,CACA,4BAEI,WAAY,CADZ,eAEJ,CACA,0BAEI,cAAe,CAIf,UAAW,CAHX,SAAU,CAFV,iBAAkB,CAGlB,QAAS,CACT,SAEJ,CACA,uEAWI,qBAAuB,CANvB,kBAAoB,CAKpB,qBAAuB,CAJvB,gBAAkB,CAClB,yBAA2B,CAK3B,mBAAqB,CAJrB,6BAA+B,CAN/B,2BAA6B,CAE7B,iBAAmB,CADnB,eAAiB,CAUjB,oBAAsB,CAJtB,oBAKJ,CACA,KACI,SAAU,CACV,iBAAkB,CAClB,UAAW,CACX,WACJ,CACA,kCACI,gCACJ,CACA,oGAGI,YACJ,CACA,mGAEI,+BAAiC,CACjC,oBACJ,CACA,sFAGI,UAAc,CACd,4BAAiC,CACjC,cACJ,CACA,8JAGI,8BAAmC,CAGnC,uDACJ,CACA,6GAEI,4BAA8B,CAG9B,4DACJ,CACA,wGAGI,qBAAyB,CACzB,iDAAuD,CACvD,UAAW,CACX,2CAA8C,CAC9C,oBACJ,CACA,qGAQI,8BAAmC,CADnC,oBAAyB,CAEzB,sCAA4C,CAC5C,yBACJ,CACA,uHAGI,+BAAoC,CACpC,iDAAuD,CACvD,oBAAsB,CACtB,sCAAyC,CACzC,oBACJ,CACA,kBAEI,uBAAyB,CADzB,0CAA4C,CAE5C,mCACJ,CAIA,sEAEI,oBACJ,CACA,6OAMQ,mDAAoD,CACjD,gDAAiD,CAChD,+CAAgD,CAC5C,2CAChB,CACA,+CACI,6BAA8B,CAC9B,mDACJ,CACA,8DACI,aAAc,CACd,WACJ,CACA,6CAEI,UAAW,CADX,kBAEJ,CACA,gEACI,UACJ,CACA,8CACI,eACJ,CACA,iDAEI,oBACJ,CACA,mCACI,eAAgB,CAChB,8DACJ,CACA,0EAGI,eAAgB,CAChB,0FACJ,CACA,8LAMI,iBAAkB,CAClB,OACJ,CACA,oMAOI,qBAAsB,CACtB,iCACJ,CACA,eAEI,cACJ,CACA,gEAEI,gBAAiB,CAEjB,oBAAqB,CADrB,OAEJ,CACA,eACI,kBACJ,CACA,+CAEI,oBACJ,CACA,wNAGI,qBAAsB,CADtB,UAEJ,CACA,yDACI,uBACJ,CACA,oBACI,0BAA4B,CAC5B,yEACJ,CACA,2CACI,wBACJ,CACA,oCAII,2BAA4B,CAD5B,uBAAwB,CAExB,iBAAkB,CAJlB,WAAY,CACZ,yCAA4C,CAI5C,iBACJ,CACA,0JAQI,0BAA2B,CAF3B,gCAAkC,CAClC,2BAA6B,CAE7B,iBACJ,CACA,kFAGI,oBAAqB,CACrB,SACJ,CACA,eACI,qBACJ,CACA,iDAEI,wBAAyB,CADzB,aAEJ,CACA,iEAEI,4BAA6B,CAD7B,iBAEJ,CACA,mBACI,4BACJ,CACA,+DAEI,aACJ,CACA,SACI,UACJ,CACA,qBACI,WACJ,CACA,8BACI,eACJ,CACA,+BAEI,oBAAqB,CADrB,wBAEJ,CACA,yBAEI,UAAW,CACX,iBAAkB,CAGlB,MAAO,CAFP,mBAAoB,CAGpB,iBAAkB,CANlB,iBAAkB,CAIlB,SAGJ,CACA,2BACI,UACJ,CACA,+BACI,aAAc,CACd,UACJ,CACA,gBACI,wBACJ,CACA,aACI,qBACJ,CACA,mEACI,wBAAyB,CACzB,aACJ,CAEA,yCAGI,WAAY,CAFZ,iBAAkB,CAClB,WAEJ,CAEA,iBACI,iBAAkB,CAClB,WACJ,CACA,+CACI,eACJ,CAKA,KACI;iBACc,CAClB;iBAEA,CACA,aACI,uCACJ,CAEA,kCACI,OACI,qBAAsB,CACtB,2CAA6C,CAG7C,8DAAkE,CAClE,sDAA0D,CAH1D,UAAW,CACX,qCAGJ,CACA,SACI,wBAAyB,CAEzB,aAAc,CACd,gCACJ,CACJ,CACA,+BACI,OACI,qBAAsB,CACtB,2CAA6C,CAG7C,8DAAkE,CAClE,sDAA0D,CAH1D,UAAW,CACX,qCAGJ,CACA,SACI,wBAAyB,CACzB,aAAc,CACd,gCACJ,CACJ,CACA,0BACI,OACI,qBAAsB,CACtB,2CAA6C,CAG7C,8DAAkE,CAClE,sDAA0D,CAH1D,UAAW,CACX,qCAGJ,CACA,SACI,wBAAyB,CAGzB,uBAAwB,CACxB,eAAgB,CAHhB,aAAc,CACd,gCAGJ,CACJ,CAEA,iCACI,OACI,qBAAsB,CACtB,2CAA6C,CAG7C,uBAAwB,CACxB,4CAA8C,CAC9C,oCAAsC,CAJtC,UAAW,CACX,qCAIJ,CACA,SACI,wBAAyB,CAEzB,uBAAwB,CACxB,eAAgB,CAFhB,aAGJ,CACJ,CACA,8BACI,OACI,qBAAsB,CACtB,2CAA6C,CAG7C,uBAAwB,CACxB,yCAA2C,CAC3C,oCAAsC,CAJtC,UAAW,CACX,qCAIJ,CACA,SACI,wBAAyB,CAEzB,oBAAqB,CACrB,eAAgB,CAFhB,aAGJ,CACJ,CACA,yBACI,OACI,qBAAsB,CACtB,2CAA6C,CAG7C,uBAAwB,CACxB,oCAAsC,CAHtC,UAAW,CACX,qCAGJ,CACA,SACI,wBAAyB,CAEzB,eAAgB,CADhB,aAEJ,CACJ,CAEA,gCACE,OACI,6BAA8B,CAC9B,kFACJ,CACA,SACI,eACJ,CACF,CACA,6BACE,OACI,6BAA8B,CAC9B,kFACJ,CACA,SACI,eACJ,CACF,CACA,wBACE,OACI,6BAA8B,CAC9B,kFACJ,CACA,SACI,eACJ,CACF,CAEA,sCACE,OACI,uBAAwB,CACxB,4EACJ,CACA,SACI,eACJ,CACF,CACA,mCACE,OACI,uBAAwB,CACxB,4EACJ,CACA,SACI,eACJ,CACF,CACA,8BACE,OACI,uBAAwB,CACxB,4EACJ,CACA,SACI,eACJ,CACF,CAEA,iCACI,MACI,qBAAsB,CACtB,2CAA6C,CAG7C,8DAAkE,CAClE,sDAA0D,CAH1D,UAAW,CACX,qCAGJ,CACJ,CACA,8BACI,MACI,qBAAsB,CACtB,2CAA6C,CAG7C,8DAAkE,CAClE,sDAA0D,CAH1D,UAAW,CACX,4BAGJ,CACJ,CACA,yBACI,MACI,qBAAsB,CACtB,2CAA6C,CAG7C,8DAAkE,CAClE,sDAA0D,CAH1D,UAAW,CACX,qCAGJ,CACJ,CACA,2WAMI,yCAA0C,CACvC,sCAAuC,CACtC,qCAAsC,CAClC,iCACZ,CACA,6UAMI,oCAAqC,CAClC,iCAAkC,CACjC,gCAAiC,CAC7B,4BACZ,CACA,uUAMI,mCAAoC,CACjC,gCAAiC,CAChC,+BAAgC,CAC5B,2BACZ,CAOA,+BACI,oBACI,mBACJ,CACA,0BACI,OACI,2CAA6C,CAC7C,4BACJ,CACA,SACI,uCAAyC,CACzC,gCACJ,CACJ,CACA,wBACI,OACI,mCACJ,CACA,SACI,wCACJ,CACJ,CACA,8BACI,OACI,qCAAuC,CACvC,gBAAiB,CACjB,+DACJ,CACA,SACI,0CAA4C,CAC5C,gBAAiB,CACjB,+DACJ,CACJ,CACJ,CAEA,2DACI,oBACI,mBACJ,CACA,6CACI,cACJ,CACA,8BACI,OACI,qBAAsB,CACtB,UACJ,CACA,SACI,qBAAsB,CACtB,UACJ,CACJ,CACJ,CACA,orBAgBI,qBAAsB,CACtB,UACJ,CAUA,eACI,mBACJ,CACA,wBACI,sBACJ,CACA,6BACI,gCACJ,CACA,yGAGI,sBACJ,CACA,okBAmBI,mCAA2C,CAC3C,UACJ,CACA,gLAKI,sCAAwC,CACxC,2BACJ,CACA,uJAKI,sCAAwC,CACxC,2BACJ,CAEA,8GAEI,SAAU,CACV,4BACJ,CACA,OAGI,MAAO,CAFP,cAAe,CACf,KAAM,CAEN,UAAW,CACX,YACJ,CACA,6BAGI,qBAAsB,CADtB,WAAY,CADZ,UAGJ,CACA,oCACI,SACJ,CACA,OACI,UACJ,CACA,yBAOI,WAAY,CAGZ,qBAAsB,CALtB,WAAY,CAHZ,MAAO,CAIP,cAAe,CAEf,WAAa,CACb,mBAAoB,CARpB,iBAAkB,CAElB,SAAU,CACV,UAOJ,CACA,0DACI,4DACJ,CACA,cACI,aACJ,CAEA,mBACI,gBACJ,CACA,8GAEI,8BAAgC,CAChC,kDACJ,CACA,8CACI,kDACJ,CACA,eACI,kEAAuE,CACvE,iBACJ,CACA,0CACI,oBACJ,CACA,4BACI,wUASI,uCAAyC,CADzC,uBAEJ,CACA,uCAGI,0EACJ,CACA,kCAMI,oBAAqB,CADrB,2DAEJ,CACA,iIAOI,6DACJ,CACA,oCACI,0DACJ,CACA,gBACI,+EACJ,CACA,sEACI,iBAAkB,CAClB,4CAA+C,CAC/C,sCACJ,CACA,2BAEI,uCAAyC,CADzC,uBAEJ,CACA,uPAUI,6BAA8B,CAJ9B,oEAAsE,CACnE,iEAAmE,CAClE,gEAAkE,CAC9D,4DAEZ,CACA,uCAEI,sBAAuB,CADvB,iBAEJ,CACA,uqBAmBI,kCAAoC,CACpC,4BACJ,CACA,qDACI,gEAAuE,CACvE,sCACJ,CACA,2DACI,+DACJ,CACA,wmBAeI,0DAAoE,CACpE,sCACJ,CACA,gDACI,gEAAuE,CACvE,sCACJ,CACA,sDACI,+DACJ,CACJ,CAIA,kBACE,gBAAiB,CACjB,aAAc,CACd,gCACF,CACA,uBACE,gBAAiB,CACjB,aAAc,CACd,kBACF,CACA,uBACE,gBAAiB,CACjB,aAAc,CACd,kBACF,CACA,iBACE,iBAAkB,CAClB,aAAc,CACd,eACF,CACA,oBACE,iBAAkB,CAClB,aAAc,CACd,gBACF,CACA,+BACI,+TAWI,mCAA2C,CAC3C,UACJ,CACJ,CAEA,2TAeI,wBACJ,CAeA,wBAII,UAAW,CAGX,MAAO,CANP,eAAgB,CAChB,QAAS,CACT,SAAU,CAEV,iBAAkB,CAClB,QAEJ,CACA,wBACI,cAAe,CACf,kBACJ,CACA,8BACI,eAAgB,CAChB,UACJ,CACA,gBACI,iBACJ,CACA,qBACI,kBACJ,CACA,SAGI,4BAA6B,CAF7B,WAAY,CACZ,0DAEJ,CACA,gBACI,iBAAkB,CAClB,8BACJ,CACA,2CACI,0DACJ,CACA,+CACI,sBACJ,CACA,gBACI,0BACJ,CACA,eACI,yBACJ,CACA,gNAMI,4BAA6B,CAC7B,yCACJ,CAEA,wBAEI,UAAW,CACX,wCAA2C,CAC3C,eAAgB,CAChB,6CAAgD,CAJhD,iBAAkB,CAKlB,WACJ,CACA,4BAEI,QAAS,CACT,MAAO,CAFP,iBAAkB,CAGlB,OAAQ,CACR,WACJ,CACA,eAEI,6BAA8B,CAD9B,iBAEJ,CAKA,iDACI,mBACJ,CACA,gEACI,sBACJ,CACA,qBACI,6BAA8B,CAC9B,oBACJ,CACA,cAQI,sBAAuB,CALvB,QAAS,CAIT,iBAAkB,CAFlB,MAAO,CAIP,WAAa,CACb,2BAA8B,CAT9B,iBAAkB,CAGlB,OAAQ,CAFR,4BAA+B,CAI/B,WAKJ,CAEA,sCAGI,iCAAmC,CADnC,wCAA2C,CAD3C,uCAGJ,CAIA,8FACI,4BACJ,CACA,mBACI,yBAA0B,CAC1B,wDAA2D,CAC3D,oBACJ,CAGA,iBAOI,4BAA8B,CAE9B,kBAAoB,CANpB,oBAAsB,CAEtB,qBAAuB,CACvB,yBAA2B,CAF3B,mBAAqB,CAHrB,2BAA6B,CAO7B,4BAA8B,CAN9B,mBAQJ,CAIA,kBACI,yBAA0B,CAC1B,mCACJ,CACA,YACI,6BACJ,CACA,+CACI,wDAA0D,CAC1D,gEACJ,CAMA,yEACE,wBACF,CACA,kIAIE,mCACF,CACA,+BACI,GACI,uBACJ,CACJ,CACA,uCACI,GACI,uBACH,CACL,CACA,gCACI,MACI,yBACJ,CACJ","file":"jquery.terminal.min.css","sourcesContent":["/*!\n * __ _____ ________ __\n * / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / /\n * __ / // // // // // _ // _// // / / // _ // _// // // \\/ // _ \\/ /\n * / / // // // // // ___// / / // / / // ___// / / / / // // /\\ // // / /__\n * \\___//____ \\\\___//____//_/ _\\_ / /_//____//_/ /_/ /_//_//_/ /_/ \\__\\_\\___/\n * \\/ /____/ version 2.40.0\n * http://terminal.jcubic.pl\n *\n * This file is part of jQuery Terminal.\n *\n * Copyright (c) 2011-2023 Jakub T. Jankiewicz \n * Released under the MIT license\n *\n * Date: Sun, 21 Apr 2024 10:26:15 +0000\n */\n.terminal .terminal-output .format, .cmd .format,\n.cmd-prompt, .cmd-prompt div {\n display: inline-block;\n}\n.terminal h1, .terminal h2, .terminal h3, .terminal h4, .terminal h5, .terminal h6, .terminal pre, .cmd {\n margin: 0;\n}\n.cmd .cmd-clipboard {\n position: absolute !important;\n let: -16px;\n left: calc(-16px / var(--pixel-density, 1)) !important;\n top: 0 !important;\n width: 16px;\n height: 16px;\n width: calc(16px / var(--pixel-density, 1)) !important;\n height: calc(16px / var(--pixel-density, 1)) !important;\n background: transparent !important;\n border: none !important;\n color: transparent !important;\n outline: none !important;\n padding: 0 !important;\n resize: none !important;\n box-shadow: none !important;\n z-index: 1000 !important;\n overflow: hidden !important;\n white-space: pre !important;\n text-indent: -9999em !important; /* better cursor hiding for Safari and IE */\n top: calc(var(--cursor-line, 0) * var(--size, 1) * (14px / var(--pixel-density, 1))) !important;\n}\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n user-select: none;\n width: 1px;\n top: 0;\n left: 0;\n}\n.cmd span.cmd-end-line,\n.cmd span.cmd-end-line span,\n.cmd div.cmd-end-line span[data-text]:last-child,\n.cmd div.cmd-end-line span[data-text]:last-child span,\n.cmd textarea,\n.cmd .cursor + span:empty {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */\n}\n.terminal img, .terminal audio, .terminal object, .terminal canvas {\n cursor: default;\n}\n.terminal {\n position: relative;\n line-height: initial;\n --base-background: var(--background, #000);\n --base-color: var(--color);\n contain: content;\n}\n.terminal-scroller {\n position: relative;\n overflow-y: auto;\n scrollbar-gutter: stable;\n height: 100%;\n box-sizing: border-box;\n overflow-x: hidden;\n}\nterminal.terminal-temp {\n visibility: hidden;\n}\nbody.terminal {\n min-height: 100vh;\n height: 100%;\n}\nhtml {\n height: 100%;\n}\nbody.terminal, body.full-screen-terminal {\n margin: 0;\n height: 100%;\n}\nbody.full-screen-terminal .terminal {\n height: 100%;\n}\nbody.full-screen-terminal {\n height: 100%;\n height: var(--terminal-force-height, 100dvh);\n}\n.terminal > div.terminal-fill {\n min-height: 100%;\n height: 100%;\n}\n.terminal > .terminal-pixel {\n position: absolute;\n display: inline;\n left: -2px;\n top: -2px;\n width: 1px;\n height: 1px;\n}\n.terminal > .terminal-resizer,\n.terminal > .terminal-font .terminal-resizer {\n position: absolute !important;\n top: 0 !important;\n right: 0 !important;\n bottom: 0 !important;\n left: 0 !important;\n overflow: hidden !important;\n pointer-events: none !important;\n z-index: -1 !important;\n height: 100% !important;\n border: none !important;\n padding: 0 !important;\n width: 100% !important;\n}\n.cmd {\n padding: 0;\n position: relative;\n width: 100%;\n z-index: 300;\n}\n.terminal .cmd, .terminal .cmd div {\n background: transparent !important;\n}\n.terminal a[tabindex=\"1000\"],\n.terminal a[tabindex=\"1000\"]:active,\n.terminal a[tabindex=\"1000\"]:focus {\n outline: none;\n}\n.terminal .inverted, .cmd.cmd.cmd .inverted,\n.terminal .terminal-inverted, .cmd.cmd.cmd .cmd-inverted {\n background-color: #aaa !important;\n color: #000 !important;\n}\n.terminal .terminal-output > :not(.raw) a[href],\n.cmd a[href],\n.terminal.external a[href] {\n color: #3377FF;\n color: var(--link-color, #3377FF);\n cursor: pointer;\n}\n.cmd a[href]:not(.terminal-inverted),\n.terminal .terminal-output > :not(.raw) a[href]:not(.terminal-inverted),\n.terminal.external a[href]:not(.terminal-inverted) {\n --color: var(--link-color, #3377FF);\n /* conditionals: https://www.kizu.ru/conditions-for-css-variables/ */\n /* --glow: 0; */\n text-shadow: 0 0 calc(var(--glow) * 5px) var(--color, #ccc);\n}\n.terminal .terminal-output > :not(.raw) a[href].terminal-inverted,\n.terminal.external a[href].terminal-inverted {\n background: var(--color, #ccc);\n /* conditionals: https://www.kizu.ru/conditions-for-css-variables/ */\n /* --glow: 0; */\n text-shadow: 0 0 calc(var(--glow) * 5px) var(--background, #000);\n}\n.terminal .terminal-output > :not(.raw) a[href]:hover,\n.cmd a[href]:hover,\n.terminal.external a[href]:hover {\n background-color: #3377FF;\n background-color: var(--link-color, #3377FF) !important;\n color: #000;\n color: var(--base-background, #000) !important;\n text-decoration: none;\n}\n.terminal .terminal-output > :not(.raw) a[href] span,\n.cmd a[href] span,\n.terminal.external a[href] span {\n /*\n * shorter and simple solution\n * it's hard to overwrite long :not selector (:not(a span) don't work)\n */\n color: #3377FF !important;\n --color: var(--link-color, #3377FF);\n color: var(--link-color, #3377FF) !important;\n text-decoration: underline;\n}\n.terminal .terminal-output > :not(.raw) a[href]:hover span,\n.cmd a[href]:hover span,\n.terminal.external a[href]:hover span {\n background-color: #3377FF !important;\n background-color: var(--link-color, #3377FF) !important;\n color: #000 !important;\n color: var(--background, #000) !important;\n text-decoration: none;\n}\n.terminal a[href] {\n transition-property: color, background-color;\n transition-duration: 0.2s;\n transition-timing-function: ease-out;\n}\n.cmd .cmd-cursor {\n display: inline-block;\n}\n.cmd .cmd-cursor-line > span,\n.cmd .cmd-cursor-line img {\n display: inline-block;\n}\n.cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span,\n.cmd .cmd-cursor.cmd-blink a,\n.cmd .cmd-cursor.cmd-blink .fa,\n.cmd .cmd-cursor.cmd-blink .far,\n.cmd .cmd-cursor.cmd-blink .fas,\n.cmd .cmd-cursor .emoji {\n -webkit-animation: terminal-blink 1s infinite linear;\n -moz-animation: terminal-blink 1s infinite linear;\n -ms-animation: terminal-blink 1s infinite linear;\n animation: terminal-blink 1s infinite linear;\n}\n.bar.terminal .inverted, .bar.cmd .cmd-inverted {\n box-shadow: -2px 0 0 -1px #aaa;\n box-shadow: -2px 0 0 -1px var(--original-color, #aaa);\n}\n.terminal, .terminal .terminal-output > div > div, .cmd .cmd-prompt {\n display: block;\n height: auto;\n}\n.terminal .terminal-output > div:not(.raw) div {\n white-space: nowrap;\n clear: both;\n}\n.cmd .cmd-prompt > span, .cmd .cmd-prompt > a, .cmd .cmd-prompt:empty {\n float: left;\n}\n.cmd-prompt [data-text] > span, .cmd-wrapper > div {\n white-space: pre;\n}\n.cmd [data-text] span,\n.terminal [data-text] span {\n display: inline-block;\n}\n.terminal-ouput span[style*=\"width\"] {\n min-height: 14px;\n min-height: calc(var(--size, 1) * (14px / var(--pixel-density, 1)));\n}\n.terminal .terminal-output > :not(.raw) > div,\n.cmd div,\n.terminal.external div {\n line-height: 1em;\n line-height: calc((var(--size) * (16px / var(--pixel-density, 1))) + (1px / var(--pixel-density, 1)));\n}\n.cmd .cmd-prompt span.fa::before,\n.cmd .cmd-prompt span.fab::before,\n.cmd .cmd-prompt span.fad::before,\n.cmd .cmd-prompt span.fal::before,\n.cmd .cmd-prompt span.far::before,\n.cmd .cmd-prompt span.fas {\n position: relative;\n top: 2px;\n}\n.terminal,\n.terminal-output > :not(.raw),\n.terminal-output > :not(.raw) span:not(.fas):not(.far):not(.fa),\n.terminal-output > :not(.raw) a,\n.cmd,\n.terminal-font-forcer,\n.cmd span:not(.fas):not(.far):not(.fa) {\n font-family: monospace;\n font-family: var(--font, monospace);\n}\n.terminal,\n.cmd {\n font-size: 12px;\n}\n.terminal-output > div:not(.raw) div::before,\n.cmd .cmd-line::before {\n content: '\\0200B';\n width: 0;\n display: inline-block;\n}\n.cmd .cmd-line {\n white-space: nowrap;\n}\n.terminal span[data-text],\n.cmd span[data-text] {\n display: inline-block;\n}\n.terminal, terminal-output > div:not(.raw) div > span:not(.token):not(.inverted):not(.terminal-inverted):not(.cmd-inverted):not(.terminal-error):not(.emoji),\n.cmd span[data-text]:not(.cmd-inverted):not(.token):not(.emoji) {\n color: #aaa;\n background-color: #000;\n}\n.terminal span[data-text] span, .cmd span[data-text] span {\n text-decoration: inherit;\n}\n.terminal .ansi > div {\n line-height: 13px !important;\n line-height: calc(var(--size, 1) * (13px / var(--pixel-density, 1))) !important;\n}\n.cmd span.cmd-prompt, .cmd .cmd-prompt span {\n --background: transparent;\n}\n.terminal-output .emoji, .cmd .emoji {\n height: 12px;\n height: calc(12px / var(--pixel-density, 1));\n background-size: contain;\n background-repeat: no-repeat;\n color: transparent;\n position: relative;\n}\n.terminal .terminal-output .fa span,\n.terminal .terminal-output .fas span,\n.terminal .terminal-output .far span,\n.cmd .fa span,\n.cmd .fas span,\n.cmd .far span {\n background: transparent !important;\n color: transparent !important;\n clip: rect(1px,1px,1px,1px);\n position: absolute;\n}\n.terminal-output .emoji,\n.terminal-output .emoji span,\n.cmd .emoji, .cmd .emoji span {\n display: inline-block;\n width: 2ch;\n}\n.terminal, .cmd {\n box-sizing: border-box;\n}\n.cmd .cmd-cursor span:not(.token):not(.inverted) {\n color: inherit;\n background-color: inherit;\n}\n.cmd .emoji.emoji.emoji.emoji, .cmd .emoji.emoji.emoji.emoji span {\n color: transparent;\n background-color: transparent;\n}\n.cmd .cmd-cursor * {\n background-color: transparent;\n}\n.terminal span[style*=\"width\"] span,\n.cmd span[style*=\"width\"] span {\n width: inherit;\n}\n.cmd div {\n clear: both;\n}\n.cmd .cmd-prompt + div {\n clear: right;\n}\nterminal .terminal-output > div {\n margin-top: -1px;\n}\n.terminal-output > div.raw > div * {\n overflow-wrap: break-word;\n word-wrap: break-word;\n}\n.terminal .terminal-font {\n position: absolute;\n float: left;\n font-size: inherit;\n line-height: inherit;\n top: -100%;\n left: 0;\n margin-bottom: 1px;\n}\n.cmd > span:not(.cmd-prompt) {\n float: left;\n}\n.cmd .cmd-prompt span.cmd-line {\n display: block;\n float: none;\n}\n.terminal table {\n border-collapse: collapse;\n}\n.terminal td {\n border: 1px solid #aaa;\n}\n.cmd span[data-text]:not(.emoji):not(.fa):not(.fas):not(.far) span {\n background-color: inherit;\n color: inherit;\n}\n/* fix for underline on middle line */\n.cmd [role=\"presentation\"].cmd-cursor-line {\n position: relative;\n z-index: 100;\n cursor: text;\n}\n/* prompt above cursor line */\n.cmd .cmd-prompt {\n position: relative;\n z-index: 200;\n}\n.cmd [role=\"presentation\"]:not(.cmd-cursor-line) {\n overflow: hidden;\n}\n/*\n * this is set so animation can select original color as backgound for cursor\n * so span can have --color for selection\n */\n.cmd {\n --original-color: var(\n --color, #aaa);\n--original-background: var(\n --background);\n}\n.cmd a[href] {\n --original-color: var(--link-color, #3377FF);\n}\n/* DEFAULT ANIMATION */\n@-webkit-keyframes terminal-blink {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n /* original background is set in emoji that need different style */\n color: inherit;\n color: var(--original-color, #aaa)\n }\n}\n@-moz-keyframes terminal-blink {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n color: inherit;\n color: var(--original-color, #aaa);\n }\n}\n@keyframes terminal-blink {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n color: inherit;\n color: var(--original-color, #aaa);\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n/* GLOW ANIMATION */\n@-webkit-keyframes terminal-glow {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n box-shadow: 0 0 3px #aaa;\n -webkit-box-shadow: 0 0 3px var(--color, #aaa);\n box-shadow: 0 0 3px var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n color: inherit;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n@-moz-keyframes terminal-glow {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n box-shadow: 0 0 3px #aaa;\n -moz-box-shadow: 0 0 3px var(--color, #aaa);\n box-shadow: 0 0 3px var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n color: inherit;\n -moz-box-shadow: none;\n box-shadow: none;\n }\n}\n@keyframes terminal-glow {\n 0%, 50% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n box-shadow: 0 0 3px #aaa;\n box-shadow: 0 0 3px var(--color, #aaa);\n }\n 50.1%, 100% {\n background-color: inherit;\n color: inherit;\n box-shadow: none;\n }\n}\n/* BAR ANIMATION */\n@-webkit-keyframes terminal-bar {\n 0%, 50% {\n box-shadow: -2px 0 0 -1px #aaa;\n box-shadow: calc(var(--line-thickness, 2) * -1px) 0 0 -1px var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n@-moz-keyframes terminal-bar {\n 0%, 50% {\n box-shadow: -2px 0 0 -1px #aaa;\n box-shadow: calc(var(--line-thickness, 2) * -1px) 0 0 -1px var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n@keyframes terminal-bar {\n 0%, 50% {\n box-shadow: -2px 0 0 -1px #aaa;\n box-shadow: calc(var(--line-thickness, 2) * -1px) 0 0 -1px var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n/* UNDERLINE ANIMATION */\n@-webkit-keyframes terminal-underline {\n 0%, 50% {\n box-shadow: 0 2px 0 #aaa;\n box-shadow: 0 calc(var(--line-thickness, 2) * 1px) 0 var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n@-moz-keyframes terminal-underline {\n 0%, 50% {\n box-shadow: 0 2px 0 #aaa;\n box-shadow: 0 calc(var(--line-thickness, 2) * 1px) 0 var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n@keyframes terminal-underline {\n 0%, 50% {\n box-shadow: 0 2px 0 #aaa;\n box-shadow: 0 calc(var(--line-thickness, 2) * 1px) 0 var(--original-color, #aaa);\n }\n 50.1%, 100% {\n box-shadow: none;\n }\n}\n/* NONE ANIMATION */\n@-webkit-keyframes terminal-none {\n 0%, 100% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n}\n@-moz-keyframes terminal-none {\n 0%, 100% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n}\n@keyframes terminal-none {\n 0%, 100% {\n background-color: #aaa;\n background-color: var(--original-color, #aaa);\n color: #000;\n color: var(--original-background, #000);\n -webkit-box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n box-shadow: 0 0 calc(var(--glow) * 3px) var(--color, #aaa);\n }\n}\n.underline-animation .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span,\n.underline-animation .cmd .cmd-cursor.cmd-blink a,\n.underline-animation .cmd .cmd-cursor.cmd-blink .fa,\n.underline-animation .cmd .cmd-cursor.cmd-blink .far,\n.underline-animation .cmd .cmd-cursor.cmd-blink .fas,\n.underline-animation .cmd .cmd-cursor .emoji {\n -webkit-animation-name: terminal-underline;\n -moz-animation-name: terminal-underline;\n -ms-animation-name: terminal-underline;\n animation-name: terminal-underline;\n}\n.glow-animation .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span,\n.glow-animation .cmd .cmd-cursor.cmd-blink a,\n.glow-animation .cmd .cmd-cursor.cmd-blink .fa,\n.glow-animation .cmd .cmd-cursor.cmd-blink .far,\n.glow-animation .cmd .cmd-cursor.cmd-blink .fas,\n.glow-animation .cmd .cmd-cursor .emoji {\n -webkit-animation-name: terminal-glow;\n -moz-animation-name: terminal-glow;\n -ms-animation-name: terminal-glow;\n animation-name: terminal-glow;\n}\n.bar-animation .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span,\n.bar-animation .cmd .cmd-cursor.cmd-blink a,\n.bar-animation .cmd .cmd-cursor.cmd-blink .fa,\n.bar-animation .cmd .cmd-cursor.cmd-blink .far,\n.bar-animation .cmd .cmd-cursor.cmd-blink .fas,\n.bar-animation .cmd .cmd-cursor .emoji {\n -webkit-animation-name: terminal-bar;\n -moz-animation-name: terminal-bar;\n -ms-animation-name: terminal-bar;\n animation-name: terminal-bar;\n}\n/*\n Internet Explorer & Edge *, Safari ≤ 6\n source: https://w3reign.com/internet-explorer-edge-css-hacks/\n*/\n\n\n@supports (-ms-ime-align:auto) {\n .cmd .cmd-clipboard {\n margin-left: -9999px;\n }\n @keyframes terminal-blink {\n 0%, 50% {\n background-color: var(--original-color, #aaa);\n color: var(--background, #000);\n }\n 50.1%, 100% {\n background-color: var(--background, #000);\n color: var(--original-color, #aaa);\n }\n }\n @keyframes terminal-bar {\n 0%, 50% {\n border-left-color: var(--color, #aaa);\n }\n 50.1%, 100% {\n border-left-color: var(--background, #000);\n }\n }\n @keyframes terminal-underline {\n 0%, 50% {\n border-bottom-color: var(--color, #aaa);\n line-height: 12px;\n line-height: calc(var(--size, 1) * (12px / var(--pixel-density, 1)));\n }\n 50.1%, 100% {\n border-bottom-color: var(--background, #000);\n line-height: 12px;\n line-height: calc(var(--size, 1) * (12px / var(--pixel-density, 1)));\n }\n }\n}\n/* IE hack Edge one don't work in IE11 */\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .cmd .cmd-clipboard {\n margin-left: -9999px;\n }\n .underline-animation .cursor.blink span span {\n margin-top: 1px;\n }\n @-ms-keyframes terminal-blink {\n 0%, 50% {\n background-color: #aaa;\n color: #000;\n }\n 50.1%, 100% {\n background-color: #000;\n color: #aaa;\n }\n }\n}\n.terminal h1::-moz-selection,\n.terminal h2::-moz-selection,\n.terminal h3::-moz-selection,\n.terminal h4::-moz-selection,\n.terminal h5::-moz-selection,\n.terminal h6::-moz-selection,\n.terminal pre::-moz-selection,\n.terminal td::-moz-selection,\n.terminal .terminal-output::-moz-selection,\n.terminal .terminal-output div div::-moz-selection,\n.terminal .terminal-output div div a::-moz-selection,\n.terminal .terminal-output span[data-text]::-moz-selection,\n.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas) span::-moz-selection,\n.terminal .terminal-output .raw div::-moz-selection,\n.cmd span[data-text]::-moz-selection,\n.cmd span[data-text]:not(.far):not(.fa):not(.fas) span::-moz-selection {\n background-color: #aaa;\n color: #000;\n}\n/* this don't work in Chrome\n.terminal tr td::-moz-selection {\n border-color: #000;\n}\n.terminal tr td::selection {\n border-color: #000;\n}\n*/\n/* fix selection/click on text that was echo without newline while prompt is relocated */\n.terminal .cmd {\n pointer-events: none;\n}\n.terminal .cmd-prompt * {\n pointer-events: visible;\n}\n.cmd-prompt > span:first-child {\n margin-left: var(--prompt-offset);\n}\n.terminal .cmd-wrapper > div:not(.cmd-cursor-line),\n.terminal .cmd-cursor-line > span,\n.terminal .cmd textarea {\n pointer-events: visible;\n}\n.terminal h1::selection,\n.terminal h2::selection,\n.terminal h3::selection,\n.terminal h4::selection,\n.terminal h5::selection,\n.terminal h6::selection,\n.terminal pre::selection,\n.terminal td::selection,\n.terminal .terminal-output::selection,\n.terminal .terminal-output div div::selection,\n.terminal .terminal-output div div a::selection,\n.terminal .terminal-output span[data-text]::selection,\n.terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas) span::selection,\n.terminal .terminal-output .raw div::selection,\n.cmd span[data-text]:not(.far):not(.fa):not(.fas) span::selection {\n /*\n * use rgba to fix transparent selection in chrome\n * http://stackoverflow.com/questions/7224445/css3-selection-behaves-differently-in-ff-chrome\n */\n background-color: rgba(170, 170, 170, 0.99);\n color: #000;\n}\n.terminal-output .emoji::-moz-selection,\n.terminal-output .emoji span::-moz-selection,\n.cmd .emoji::-moz-selection,\n.cmd .emoji span::-moz-selection,\n.cmd textarea::-moz-selection {\n background-color: transparent !important;\n color: transparent !important;\n}\n.terminal-output .emoji::selection,\n.terminal-output .emoji span::selection,\n.cmd .emoji span::selection,\n.cmd .emoji::selection,\n.cmd textarea::selection {\n background-color: transparent !important;\n color: transparent !important;\n}\n\n.terminal .terminal-output > :not(.raw) .terminal-error,\n.terminal .terminal-output > :not(.raw) .terminal-error * {\n color: red;\n color: var(--error-color, red);\n}\n.tilda {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 1100;\n}\n.ui-dialog-content .terminal {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n}\n.ui-dialog .ui-dialog-content.dterm {\n padding: 0;\n}\n.clear {\n clear: both;\n}\n.terminal .terminal-fill {\n position: absolute;\n left: 0;\n top: -100%;\n width: 100%;\n height: 100%;\n margin: 1px 0 0;\n border: none;\n opacity: 0.01;\n pointer-events: none;\n box-sizing: border-box;\n}\n.terminal-scroller, .terminal .terminal-fill, .cmd-editable {\n padding: calc(1px * var(--padding, 10) / var(--pixel-density, 1));\n}\n.cmd-editable {\n padding-top: 0;\n}\n/* padding added as margin to .cmd to fix FireFox bug see: https://stackoverflow.com/q/29986977/387194 */\n.terminal-scroller {\n padding-bottom: 0;\n}\n.terminal .terminal-output > :not(.raw) .terminal-error,\n.terminal .terminal-output > :not(.raw) .terminal-error * {\n --color: var(--error-color, red);\n text-shadow: 0 0 calc(var(--glow) * 5px) var(--color);\n}\n.terminal .terminal-output > :not(.raw) a[href] {\n text-shadow: 0 0 calc(var(--glow) * 5px) var(--color);\n}\n.terminal .cmd {\n margin-bottom: calc(1px * var(--padding, 10) / var(--pixel-density, 1));\n position: relative;\n}\n.terminal .partial, .terminal .partial > div {\n display: inline-block;\n}\n@supports (--css: variables) {\n .terminal,\n .terminal-output > :not(.raw) span[data-text]:not(.token):not(.inverted):not(.terminal-inverted):not(.cmd-inverted):not(.terminal-error):not(.emoji),\n .terminal-output > :not(.raw) a,\n .terminal-output > :not(.raw) div,\n .cmd,\n .cmd span[data-text]:not(.cmd-inverted):not(.token):not(.emoji),\n .terminal.external [data-text],\n .cmd div {\n color: var(--color, #aaa);\n background-color: var(--background, #000);\n }\n .terminal [data-text], .cmd [data-text] {\n /* conditionals: https://www.kizu.ru/conditions-for-css-variables/ */\n /* --glow: 0; */\n text-shadow: var(--text-shadow, 0 0 calc(var(--glow) * 5px) var(--color, #ccc));\n }\n .terminal span[style*=\"--length\"] {\n /*\n * default value for char-width taken from Google Chrome for default font\n * to silence warning in webpack #371\n */\n width: calc(var(--length, 1) * var(--char-width, 7.23438) * 1px);\n display: inline-block;\n }\n .terminal,\n .terminal-output > :not(.raw) span,\n .terminal-output > :not(.raw) a,\n .terminal-output > :not(.raw) div,\n .cmd,\n .cmd span,\n .cmd div {\n font-size: calc(var(--size, 1) * (12px / var(--pixel-density, 1)));\n }\n .terminal-output .emoji, .cmd .emoji {\n height: calc(var(--size, 1) * (12px / var(--pixel-density, 1)));\n }\n .cmd .clipboard {\n top: calc(var(--size, 1) * (14 / var(--pixel-density, 1)) * var(--cursor-line, 0) * 1px);\n }\n .terminal .inverted, .cmd.cmd.cmd .inverted, .cmd.cmd.cmd .cmd-inverted {\n --background: #000;\n background-color: var(--color, #aaa) !important;\n color: var(--background, #000) !important;\n }\n .cmd .cmd-cursor.cmd-blink {\n color: var(--color, #aaa);\n background-color: var(--background, #000);\n }\n .cmd .cmd-cursor.cmd-blink > span[data-text]:not(.emoji):not(.fa):not(.far):not(.fas) span,\n .cmd .cmd-cursor.cmd-blink a,\n .cmd .cmd-cursor.cmd-blink .fa,\n .cmd .cmd-cursor.cmd-blink .far,\n .cmd .cmd-cursor.cmd-blink .fas,\n .cmd .cmd-cursor.cmd-blink .emoji {\n -webkit-animation: var(--animation, terminal-blink) 1s infinite linear;\n -moz-animation: var(--animation, terminal-blink) 1s infinite linear;\n -ms-animation: var(--animation, terminal-blink) 1s infinite linear;\n animation: var(--animation, terminal-blink) 1s infinite linear;\n --original-background: inherit;\n }\n .cmd .cmd-cursor.cmd-blink .emoji span {\n color: transparent;\n background: transparent;\n }\n .terminal h1::-moz-selection,\n .terminal h2::-moz-selection,\n .terminal h3::-moz-selection,\n .terminal h4::-moz-selection,\n .terminal h5::-moz-selection,\n .terminal h6::-moz-selection,\n .terminal pre::-moz-selection,\n .terminal td::-moz-selection,\n .terminal .terminal-output::-moz-selection,\n .terminal .terminal-output div div::-moz-selection,\n .terminal .terminal-output div div a::-moz-selection,\n .terminal .terminal-output span[data-text]::-moz-selection,\n /*\n * font icons (fontawesome) don't render selection we make emoji the same becuase,\n * selection on emoji looks weird\n */\n .terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::-moz-selection,\n .terminal .terminal-output .raw div::-moz-selection,\n .cmd span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::-moz-selection {\n background-color: var(--color, #aaa);\n color: var(--background, #000);\n }\n .terminal .terminal-output div div a::-moz-selection {\n background-color: var(--link-color, rgba(15, 96, 255, 0.99)) !important;\n color: var(--background, #000) !important;\n }\n .terminal .terminal-output div div a:hover::-moz-selection {\n background-color: var(--link-color, rgba(2, 50, 144, 0.99)) !important;\n }\n .terminal h1::selection,\n .terminal h2::selection,\n .terminal h3::selection,\n .terminal h4::selection,\n .terminal h5::selection,\n .terminal h6::selection,\n .terminal pre::selection,\n .terminal td::selection,\n .terminal .terminal-output::selection,\n .terminal .terminal-output div div::selection,\n .terminal .terminal-output div div a::selection,\n .terminal .terminal-output span[data-text]:not(.emoji)::selection,\n .terminal .terminal-output span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::selection,\n .terminal .terminal-output .raw div::selection,\n .cmd span[data-text]:not(.far):not(.fa):not(.fas):not(.emoji) span::selection {\n background-color: var(--color, rgba(170, 170, 170, 0.99)) !important;\n color: var(--background, #000) !important;\n }\n .terminal .terminal-output div div a::selection {\n background-color: var(--link-color, rgba(15, 96, 255, 0.99)) !important;\n color: var(--background, #000) !important;\n }\n .terminal .terminal-output div div a:hover::selection {\n background-color: var(--link-color, rgba(2, 50, 144, 0.99)) !important;\n }\n}\n/*\n * overwrite css variables that don't work with selection in Edge\n */\n@property --color {\n syntax: '';\n inherits: true;\n initial-value: rgba(170, 170, 170, 0.99);\n}\n@property --background {\n syntax: '';\n inherits: true;\n initial-value: #000;\n}\n@property --link-color {\n syntax: '';\n inherits: true;\n initial-value: #3377FF;\n}\n@property --size {\n syntax: '';\n inherits: true;\n initial-value: 1;\n}\n@property --padding {\n syntax: '';\n inherits: true;\n initial-value: 10;\n}\n@supports (-ms-ime-align:auto) {\n .terminal h1::selection,\n .terminal h2::selection,\n .terminal h3::selection,\n .terminal h4::selection,\n .terminal h5::selection,\n .terminal h6::selection,\n .terminal pre::selection,\n .terminal td::selection,\n .terminal .terminal-output div div::selection,\n .terminal .terminal-output div div a::selection,\n .cmd span[data-text]::selection {\n background-color: rgba(170, 170, 170, 0.99);\n color: #000;\n }\n}\n/* PrismJS style overwrites */\n.terminal .token.token,\n.terminal .token.operator,\n.terminal .token.entity,\n.terminal .token.variable,\n.terminal .token.url,\n.terminal .token.string,\n.terminal .style .token.string,\n.terminal .token.token,\n.cmd .token.operator,\n.cmd .token.entity,\n.cmd .token.variable,\n.cmd .token.url,\n.cmd .token.string,\n.cmd .style .token.string,\n.cmd .token.token {\n background-color: inherit;\n}\n/* FireFox hack\n@supports (-moz-animation: foo) {\n .terminal,\n .terminal .terminal-output > :not(.raw) span,\n .terminal .terminal-output > :not(.raw) a,\n .terminal .terminal-output > :not(.raw) div,\n .cmd,\n .cmd span,\n .cmd div {\n line-height: calc(var(--size, 1) * 13px);\n }\n}\n*/\n/* style for autocomplete menu */\n.cmd .cursor-wrapper ul {\n list-style: none;\n margin: 0;\n padding: 0;\n float: left;\n position: absolute;\n top: 14px;\n left: 0;\n}\n.cmd .cursor-wrapper li {\n cursor: pointer;\n white-space: nowrap;\n}\n.cmd .cursor-wrapper li:hover {\n background: #aaa;\n color: #000;\n}\n.cursor-wrapper {\n position: relative;\n}\n.terminal-output img {\n vertical-align: top;\n}\n.cmd img {\n height: 14px;\n height: calc(var(--size, 1) * (14px / var(--pixel-density, 1)));\n border: 1px solid transparent;\n}\n.cmd-cursor img {\n border-color: #ccc;\n border-color: var(--color, #ccc);\n}\n.terminal-output svg.terminal-broken-image {\n height: calc(var(--size, 1) * (14px / var(--pixel-density, 1)));\n}\n.terminal-output svg.terminal-broken-image use {\n fill: var(--color, #ccc);\n}\n.terminal-error {\n --color: var(--error-color);\n}\n.terminal-glow {\n --animation: terminal-glow;\n}\n.terminal-glow span[data-text],\n.terminal-glow .cmd-prompt > span,\n.terminal-glow a[data-text],\n.terminal-glow [data-text] span,\n.terminal-glow .terminal-output > div span,\n.terminal-glow .terminal-output > div a[href] {\n text-shadow: 1px 1px 5px #ccc;\n text-shadow: 1px 1px 5px var(--color, #ccc);\n}\n/* is_bottom detection */\n.terminal-scroll-marker {\n position: relative;\n height: 1px;\n height: calc(1px / var(--pixel-density, 1));\n margin-top: -1px;\n margin-top: calc(-1px / var(--pixel-density, 1));\n z-index: 100;\n}\n.terminal-scroll-marker div {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 200;\n}\n.terminal-less {\n touch-action: none;\n overscroll-behavior-y: contain;\n}\n/*\n * mobile scroll fix, with help from StackOverflow\n * https://stackoverflow.com/a/60535925/387194\n */\n.terminal-mobile.terminal-less .terminal-wrapper {\n pointer-events: none;\n}\n.terminal-mobile.terminal-less .terminal-output a, .cmd-editable {\n pointer-events: visible;\n}\n.cmd-editable::before {\n content: attr(data-cmd-prompt);\n display: inline-block;\n}\n.cmd-editable {\n position: absolute;\n top: calc(var(--cmd-top) * 1px);\n bottom: 0;\n right: 0;\n left: 0;\n z-index: 500;\n color: transparent;\n background: transparent;\n opacity: 0.01;\n outline: 0px solid transparent;\n}\n/* Scrollbar */\n.terminal-scroller::-webkit-scrollbar {\n width: calc(6px / var(--pixel-density, 1));\n height: calc(6px / var(--pixel-density, 1));\n background: var(--background, #000);\n}\n.terminal-scroller::-webkit-scrollbar-thumb {\n background: var(--color, #aaa);\n}\n.terminal-scroller::-webkit-scrollbar-thumb:hover {\n background: var(--color, #aaa);\n}\n.terminal-scroller {\n scrollbar-color: #aaa #000;\n scrollbar-color: var(--color, #aaa) var(--background, #000);\n scrollbar-width: thin;\n}\n\n/* visially hidden */\n.terminal-hidden {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0,0,0,0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n/*\n * Allow to change scrollbar color\n */\n.terminal-wrapper {\n --color: var(--base-color);\n --background: var(--base-background);\n}\n.cmd .token {\n --original-color: var(--color);\n}\n.terminal .terminal-blink, .cmd .terminal-blink {\n animation: terminal-ansi-blink 1s steps(2, start) infinite;\n -webkit-animation: terminal-ansi-blink 1s steps(2, start) infinite;\n}\n/* Allow transparent background #698 */\n.terminal .terminal-output,\n.terminal .terminal-output * {\n --background: transparent;\n}\n.terminal .cmd * {\n --background: transparent;\n}\n.terminal .cmd::selection,\n.terminal .cmd *::selection,\n.terminal .terminal-output::selection,\n.terminal .terminal-output *::selection {\n --background: var(--base-background);\n}\n@keyframes terminal-ansi-blink {\n to {\n color: var(--background);\n }\n}\n@-webkit-keyframes terminal-ansi-blink {\n to {\n color: var(--background);\n }\n}\n@media (prefers-reduced-motion) {\n :root {\n --animation: terminal-none;\n }\n}\n"]} \ No newline at end of file diff --git a/js/jquery.terminal-2.40.0.js b/js/jquery.terminal-2.40.0.js new file mode 100644 index 00000000..1fa57fdd --- /dev/null +++ b/js/jquery.terminal-2.40.0.js @@ -0,0 +1,12609 @@ +/**@license + * __ _____ ________ __ + * / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / / + * __ / // // // // // _ // _// // / / // _ // _// // // \/ // _ \/ / + * / / // // // // // ___// / / // / / // ___// / / / / // // /\ // // / /__ + * \___//____ \\___//____//_/ _\_ / /_//____//_/ /_/ /_//_//_/ /_/ \__\_\___/ + * \/ /____/ version 2.40.0 + * + * This file is part of jQuery Terminal. https://terminal.jcubic.pl + * + * Copyright (c) 2010-2023 Jakub T. Jankiewicz + * Released under the MIT license + * + * Contains: + * + * Storage plugin Distributed under the MIT License + * modified to work from Data URIs that block storage and cookies in Chrome + * Copyright (c) 2010 Dave Schindler + * + * jQuery Timers licenced with the WTFPL + * + * + * Cross-Browser Split 1.1.1 + * Copyright 2007-2012 Steven Levithan + * Available under the MIT License + * + * jQuery Caret + * Copyright (c) 2009, Gideon Sireling + * 3 clause BSD License + * + * sprintf.js + * Copyright (c) 2007-2013 Alexandru Marasteanu + * licensed under 3 clause BSD license + * + * debounce function from Lodash + * Copyright JS Foundation and other contributors + * The MIT License + * + * emoji regex v9.0.0 by Mathias Bynens + * MIT license + * + * broken image by Sophia Bai from the Noun Project (CC-BY) + * + * Date: Sun, 21 Apr 2024 10:26:14 +0000 + */ +/* global define, Map, BigInt */ +/* eslint-disable */ +/* istanbul ignore next */ +(function(ctx) { + var sprintf = function() { + if (!sprintf.cache.hasOwnProperty(arguments[0])) { + sprintf.cache[arguments[0]] = sprintf.parse(arguments[0]); + } + return sprintf.format.call(null, sprintf.cache[arguments[0]], arguments); + }; + sprintf.format = function(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length; + for (i = 0; i < tree_length; i++) { + node_type = get_type(parse_tree[i]); + if (node_type === 'string') { + output.push(parse_tree[i]); + } + else if (node_type === 'array') { + match = parse_tree[i]; // convenience purposes only + if (match[2]) { // keyword argument + arg = argv[cursor]; + for (k = 0; k < match[2].length; k++) { + if (!arg.hasOwnProperty(match[2][k])) { + throw(sprintf('[sprintf] property "%s" does not exist', match[2][k])); + } + arg = arg[match[2][k]]; + } + } + else if (match[1]) { // positional argument (explicit) + arg = argv[match[1]]; + } + else { // positional argument (implicit) + arg = argv[cursor++]; + } + + if (/[^s]/.test(match[8]) && (get_type(arg) !== 'number')) { + throw(sprintf('[sprintf] expecting number but found %s', get_type(arg))); + } + switch (match[8]) { + case 'b': arg = arg.toString(2); break; + case 'c': arg = String.fromCharCode(arg); break; + case 'd': arg = parseInt(arg, 10); break; + case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break; + case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break; + case 'o': arg = arg.toString(8); break; + case 's': arg = ((arg = String(arg)) && match[7] ? arg.slice(0, match[7]) : arg); break; + case 'u': arg = arg >>> 0; break; + case 'x': arg = arg.toString(16); break; + case 'X': arg = arg.toString(16).toUpperCase(); break; + } + arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? ' +' + arg : arg); + pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' '; + pad_length = match[6] - String(arg).length; + pad = match[6] ? str_repeat(pad_character, pad_length) : ''; + output.push(match[5] ? arg + pad : pad + arg); + } + } + return output.join(''); + }; + + sprintf.cache = {}; + + sprintf.parse = function(fmt) { + var _fmt = fmt, match = [], parse_tree = [], arg_names = 0; + while (_fmt) { + if ((match = /^[^\x25]+/.exec(_fmt)) !== null) { + parse_tree.push(match[0]); + } + else if ((match = /^\x25{2}/.exec(_fmt)) !== null) { + parse_tree.push('%'); + } + else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1; + var field_list = [], replacement_field = match[2], field_match = []; + if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) { + field_list.push(field_match[1]); + while ((replacement_field = replacement_field.slice(field_match[0].length)) !== '') { + if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) { + field_list.push(field_match[1]); + } + else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) { + field_list.push(field_match[1]); + } + else { + throw('[sprintf] huh?'); + } + } + } + else { + throw('[sprintf] huh?'); + } + match[2] = field_list; + } + else { + arg_names |= 2; + } + if (arg_names === 3) { + throw('[sprintf] mixing positional and named placeholders is not (yet) supported'); + } + parse_tree.push(match); + } + else { + throw('[sprintf] huh?'); + } + _fmt = _fmt.slice(match[0].length); + } + return parse_tree; + }; + + var vsprintf = function(fmt, argv, _argv) { + _argv = argv.slice(0); + _argv.splice(0, 0, fmt); + return sprintf.apply(null, _argv); + }; + + /** + * helpers + */ + function get_type(variable) { + return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase(); + } + + function str_repeat(input, multiplier) { + for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */} + return output.join(''); + } + + /** + * export to either browser or node.js + */ + ctx.sprintf = sprintf; + ctx.vsprintf = vsprintf; +})(typeof global !== "undefined" ? global : self || window); +// ----------------------------------------------------------------------- +/* eslint-enable */ +// UMD taken from https://github.com/umdjs/umd +(function(factory, undefined) { + var root; + if (typeof window !== 'undefined') { + root = window; + } else if (typeof self !== 'undefined') { + root = self; + } else if (typeof global !== 'undefined') { + root = global; + } else { + throw new Error('Unknow context'); + } + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + // istanbul ignore next + define(['jquery', 'wcwidth'], function(jquery, wcwidth) { + factory(jquery, wcwidth, root); + return jquery; + }); + } else if (typeof module === 'object' && module.exports) { + // Node/CommonJS + module.exports = function(root, jQuery, wcwidth) { + if (jQuery === undefined) { + // require('jQuery') returns a factory that requires window to + // build a jQuery instance, we normalize how we use modules + // that require this pattern but the window provided is a noop + // if it's defined (how jquery works) + if (typeof window !== 'undefined') { + jQuery = require('jquery'); + } else { + jQuery = require('jquery')(root); + } + } + if (wcwidth === undefined) { + wcwidth = require('wcwidth'); + } + factory(jQuery, wcwidth, root); + return jQuery; + }; + } else { + // Browser + // istanbul ignore next + if (!root.jQuery) { + root.$ = root.cash; + } + factory(root.jQuery || root.cash, root.wcwidth, root); + } +})(function($, wcwidth, root, undefined) { + 'use strict'; + // ----------------------------------------------------------------------- + // :: debug functions + // ----------------------------------------------------------------------- + /* eslint-disable */ + /* istanbul ignore next */ + function debug(str) { + if (false) { + console.log(str); + //$.terminal.active().echo(str); + } + } + /* eslint-enable */ + // ----------------------------------------------------------------------- + // :: Replacemenet for jQuery 2 deferred objects + // ----------------------------------------------------------------------- + function DelayQueue() { + var callbacks = $.Callbacks(); + var resolved = false; + var self = this; + this.resolve = function() { + callbacks.fire(); + self.resolved = resolved = true; + }; + this.add = function(fn) { + if (resolved) { + fn(); + } else { + callbacks.add(fn); + } + }; + } + // ----------------------------------------------------------------------- + // :: map object to object + // ----------------------------------------------------------------------- + $.omap = function(o, fn) { + var result = {}; + $.each(o, function(k, v) { + result[k] = fn.call(o, k, v); + }); + return result; + }; + $.fn.text_length = function() { + return this.map(function() { + return $(this).text().length; + }).get().reduce(function(a, b) { + return a + b; + }, 0); + }; + // ----------------------------------------------------------------------- + // :: Deep clone of objects and arrays + // ----------------------------------------------------------------------- + var Clone = { + clone_object: function(object) { + var tmp = {}; + if (typeof object === 'object') { + if (Array.isArray(object)) { + return this.clone_array(object); + } else if (object === null) { + return object; + } else { + for (var key in object) { + if (Array.isArray(object[key])) { + tmp[key] = this.clone_array(object[key]); + } else if (typeof object[key] === 'object') { + tmp[key] = this.clone_object(object[key]); + } else { + tmp[key] = object[key]; + } + } + } + } + return tmp; + }, + clone_array: function(array) { + if (!is_function(Array.prototype.map)) { + throw new Error("Your browser don't support ES5 array map " + + 'use es5-shim'); + } + return array.slice(0).map(function(item) { + if (typeof item === 'object') { + return this.clone_object(item); + } else { + return item; + } + }.bind(this)); + } + }; + var clone = function(object) { + return Clone.clone_object(object); + }; + // ----------------------------------------------------------------------- + // IE11 polyfill + // ----------------------------------------------------------------------- + /* eslint-disable */ + if ('Map' in root && !('clear' in Map.prototype)) { + Map.prototype.clear = function() { + this.forEach(function(value, key, map) { + map.delete(key); + }); + }; + } + // ----------------------------------------------------------------------- + // :: Storage plugin + // ----------------------------------------------------------------------- + var localStorage; + /* istanbul ignore next */ + (function() { + var hasLS = function() { + try { + var testKey = 'test', storage = window.localStorage; + storage.setItem(testKey, '1'); + storage.removeItem(testKey); + return true; + } catch (error) { + return false; + } + }; + var hasCookies = function() { + try { + document.cookie.split(';'); + return true; + } catch (e) { + return false; + } + }; + // Private data + var isLS = hasLS(); + // Private functions + function wls(n, v) { + var c; + if (typeof n === 'string' && typeof v === 'string') { + localStorage[n] = v; + return true; + } else if (typeof n === 'object' && typeof v === 'undefined') { + for (c in n) { + if (n.hasOwnProperty(c)) { + localStorage[c] = n[c]; + } + } + return true; + } + return false; + } + function wc(n, v) { + var dt, e, c; + dt = new Date(); + dt.setTime(dt.getTime() + 31536000000); + e = '; expires=' + dt.toGMTString(); + if (typeof n === 'string' && typeof v === 'string') { + document.cookie = n + '=' + v + e + '; path=/'; + return true; + } else if (typeof n === 'object' && typeof v === 'undefined') { + for (c in n) { + if (n.hasOwnProperty(c)) { + document.cookie = c + '=' + n[c] + e + '; path=/'; + } + } + return true; + } + return false; + } + function rls(n) { + return localStorage[n]; + } + function rc(n) { + var nn, ca, i, c; + nn = n + '='; + ca = document.cookie.split(';'); + for (i = 0; i < ca.length; i++) { + c = ca[i]; + while (c.charAt(0) === ' ') { + c = c.slice(1, c.length); + } + if (c.indexOf(nn) === 0) { + return c.slice(nn.length, c.length); + } + } + return null; + } + function dls(n) { + return delete localStorage[n]; + } + function dc(n) { + return wc(n, '', -1); + } + /** + * Public API + * $.Storage.set("name", "value") + * $.Storage.set({"name1":"value1", "name2":"value2", etc}) + * $.Storage.get("name") + * $.Storage.remove("name") + */ + if (!hasCookies() && !isLS) { + localStorage = {}; + $.extend({ + Storage: { + set: wls, + get: rls, + remove: dls + } + }); + } else { + if (isLS) { + localStorage = window.localStorage; + } + $.extend({ + Storage: { + set: isLS ? wls : wc, + get: isLS ? rls : rc, + remove: isLS ? dls : dc + } + }); + } + })(); + // ----------------------------------------------------------------------- + // :: Debounce from Lodash + // ----------------------------------------------------------------------- + /* istanbul ignore next */ + var debounce = (function() { + var FUNC_ERROR_TEXT = 'Expected a function'; + function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } + function now() { + return Date.now(); + } + return function debounce(func, wait, options) { + var nativeMax = Math.max, + nativeMin = Math.min; + + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = wait || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(options.maxWait || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now()); + } + + function debounced() { + var time = now(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + }; + })(); + // ----------------------------------------------------------------------- + // :: jQuery Timers + // ----------------------------------------------------------------------- + var jQuery = $; + /* istanbul ignore next */ + (function($) { + jQuery.fn.extend({ + everyTime: function(interval, label, fn, times, belay) { + return this.each(function() { + jQuery.timer.add(this, interval, label, fn, times, belay); + }); + }, + oneTime: function(interval, label, fn) { + return this.each(function() { + jQuery.timer.add(this, interval, label, fn, 1); + }); + }, + stopTime: function(label, fn) { + return this.each(function() { + jQuery.timer.remove(this, label, fn); + }); + } + }); + + jQuery.extend({ + timer: { + guid: 1, + global: {}, + regex: /^([0-9]+)\s*(.*s)?$/, + powers: { + // Yeah this is major overkill... + 'ms': 1, + 'cs': 10, + 'ds': 100, + 's': 1000, + 'das': 10000, + 'hs': 100000, + 'ks': 1000000 + }, + timeParse: function(value) { + if (value === undefined || value === null) { + return null; + } + var result = this.regex.exec(value.toString().trim()); + if (result[2]) { + var num = parseInt(result[1], 10); + var mult = this.powers[result[2]] || 1; + return num * mult; + } else { + return value; + } + }, + add: function(element, interval, label, fn, times, belay) { + var counter = 0; + + if (typeof label === 'function') { + if (!times) { + times = fn; + } + fn = label; + label = interval; + } + + interval = jQuery.timer.timeParse(interval); + + if (typeof interval !== 'number' || + isNaN(interval) || + interval <= 0) { + return; + } + if (times && times.constructor !== Number) { + belay = !!times; + times = 0; + } + + times = times || 0; + belay = belay || false; + + if (!element.$timers) { + element.$timers = {}; + } + if (!element.$timers[label]) { + element.$timers[label] = {}; + } + fn.$timerID = fn.$timerID || this.guid++; + + var handler = function() { + if (belay && handler.inProgress) { + return; + } + handler.inProgress = true; + if ((++counter > times && times !== 0) || + fn.call(element, counter) === false) { + jQuery.timer.remove(element, label, fn); + } + handler.inProgress = false; + }; + + handler.$timerID = fn.$timerID; + + if (!element.$timers[label][fn.$timerID]) { + element.$timers[label][fn.$timerID] = setInterval(handler, interval); + } + + if (!this.global[label]) { + this.global[label] = []; + } + this.global[label].push(element); + + }, + remove: function(element, label, fn) { + var timers = element.$timers, ret; + + if (timers) { + + if (!label) { + for (var lab in timers) { + if (timers.hasOwnProperty(lab)) { + this.remove(element, lab, fn); + } + } + } else if (timers[label]) { + if (fn) { + if (fn.$timerID) { + clearInterval(timers[label][fn.$timerID]); + delete timers[label][fn.$timerID]; + } + } else { + for (var _fn in timers[label]) { + if (timers[label].hasOwnProperty(_fn)) { + clearInterval(timers[label][_fn]); + delete timers[label][_fn]; + } + } + } + + for (ret in timers[label]) { + if (timers[label].hasOwnProperty(ret)) { + break; + } + } + if (!ret) { + ret = null; + delete timers[label]; + } + } + + for (ret in timers) { + if (timers.hasOwnProperty(ret)) { + break; + } + } + if (!ret) { + element.$timers = null; + } + } + } + } + }); + if (/(msie) ([\w.]+)/.exec(navigator.userAgent.toLowerCase())) { + $(window).one('unload', function() { + var global = jQuery.timer.global; + for (var label in global) { + if (global.hasOwnProperty(label)) { + var els = global[label], i = els.length; + while (--i) { + jQuery.timer.remove(els[i], label); + } + } + } + }); + } + })(jQuery); + // ----------------------------------------------------------------------- + // :: CROSS BROWSER SPLIT + // ----------------------------------------------------------------------- + /* istanbul ignore next */ + (function(undef) { + // prevent double include + + if (!String.prototype.split.toString().match(/\[native/)) { + return; + } + + var nativeSplit = String.prototype.split, + compliantExecNpcg = /()??/.exec("")[1] === undef, // NPCG: nonparticipating capturing group + self; + + self = function(str, separator, limit) { + // If `separator` is not a regex, use `nativeSplit` + if (Object.prototype.toString.call(separator) !== "[object RegExp]") { + return nativeSplit.call(str, separator, limit); + } + var output = [], + flags = (separator.ignoreCase ? "i" : "") + + (separator.multiline ? "m" : "") + + (separator.extended ? "x" : "") + // Proposed for ES6 + (separator.sticky ? "y" : ""), // Firefox 3+ + lastLastIndex = 0, + // Make `global` and avoid `lastIndex` issues by working with a copy + separator2, match, lastIndex, lastLength; + separator = new RegExp(separator.source, flags + "g"); + str += ""; // Type-convert + if (!compliantExecNpcg) { + // Doesn't need flags gy, but they don't hurt + separator2 = new RegExp("^" + separator.source + "$(?!\\s)", flags); + } + /* Values for `limit`, per the spec: + * If undefined: 4294967295 // Math.pow(2, 32) - 1 + * If 0, Infinity, or NaN: 0 + * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296; + * If negative number: 4294967296 - Math.floor(Math.abs(limit)) + * If other: Type-convert, then use the above rules + */ + // ? Math.pow(2, 32) - 1 : ToUint32(limit) + limit = limit === undef ? -1 >>> 0 : limit >>> 0; + while (match = separator.exec(str)) { + // `separator.lastIndex` is not reliable cross-browser + lastIndex = match.index + match[0].length; + if (lastIndex > lastLastIndex) { + output.push(str.slice(lastLastIndex, match.index)); + // Fix browsers whose `exec` methods don't consistently return `undefined` for + // nonparticipating capturing groups + if (!compliantExecNpcg && match.length > 1) { + match[0].replace(separator2, function() { + for (var i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undef) { + match[i] = undef; + } + } + }); + } + if (match.length > 1 && match.index < str.length) { + Array.prototype.push.apply(output, match.slice(1)); + } + lastLength = match[0].length; + lastLastIndex = lastIndex; + if (output.length >= limit) { + break; + } + } + if (separator.lastIndex === match.index) { + separator.lastIndex++; // Avoid an infinite loop + } + } + if (lastLastIndex === str.length) { + if (lastLength || !separator.test("")) { + output.push(""); + } + } else { + output.push(str.slice(lastLastIndex)); + } + return output.length > limit ? output.slice(0, limit) : output; + }; + + // For convenience + String.prototype.split = function(separator, limit) { + return self(this, separator, limit); + }; + + return self; + + })(); + // ----------------------------------------------------------------------- + // :: jQuery Caret + // ----------------------------------------------------------------------- + /* istanbul ignore next */ + $.fn.caret = function(pos) { + var target = this[0]; + var isContentEditable = target.contentEditable === 'true'; + //get + if (arguments.length === 0) { + //HTML5 + if (window.getSelection) { + //contenteditable + if (isContentEditable) { + if (!this.is(':focus')) { + target.focus(); + } + var range1 = window.getSelection().getRangeAt(0), + range2 = range1.cloneRange(); + range2.selectNodeContents(target); + range2.setEnd(range1.endContainer, range1.endOffset); + return range2.toString().length; + } + //textarea + return target.selectionStart; + } + //IE<9 + if (document.selection) { + target.focus(); + //contenteditable + if (isContentEditable) { + var range1 = document.selection.createRange(), + range2 = document.body.createTextRange(); + range2.moveToElementText(target); + range2.setEndPoint('EndToEnd', range1); + return range2.text.length; + } + //textarea + var pos = 0, + range = target.createTextRange(), + range2 = document.selection.createRange().duplicate(), + bookmark = range2.getBookmark(); + range.moveToBookmark(bookmark); + while (range.moveStart('character', -1) !== 0) pos++; + return pos; + } + //not supported + return 0; + } + //set + if (pos === -1) + pos = this[isContentEditable? 'text' : 'val']().length; + //HTML5 + if (window.getSelection) { + //contenteditable + if (isContentEditable) { + if (!this.is(':focus')) { + target.focus(); + } + var selection = window.getSelection(); + selection.collapse(selection.focusNode, pos); + } + //textarea + else + target.setSelectionRange(pos, pos); + } + //IE<9 + else if (document.body.createTextRange) { + var range = document.body.createTextRange(); + range.moveToElementText(target); + range.moveStart('character', pos); + range.collapse(true); + range.select(); + } + if (!isContentEditable && !this.is(':focus')) { + target.focus(); + } + return pos; + }; + /* eslint-enable */ + // ----------------------------------------------------------------------- + // :: callback based event handler plugin generator + // ----------------------------------------------------------------------- + function make_callback_plugin(options) { + var factory_settings = $.extend({ + init: $.noop, + destroy: $.noop, + name: 'event' + }, options); + return function(callback, options) { + var trigger = arguments.length === 0; + var unbind = arguments[0] === "unbind"; + if (!trigger && !unbind && !is_function(callback)) { + throw new Error('Invalid argument, it need to a function or string ' + + '"unbind" or no arguments.'); + } + if (unbind) { + callback = is_function(arguments[1]) ? arguments[1] : null; + } + var data_name = 'callbacks_' + factory_settings.name; + return this.each(function() { + var $this = $(this); + var callbacks; + function handler(arg) { + callbacks.fireWith($this, [arg]); + } + if (trigger || unbind) { + callbacks = $this.data(data_name); + if (trigger) { + callbacks && callbacks.fire(); + } else { + if (callback && callbacks) { + callbacks.remove(callback); + if (!callbacks.has()) { + callbacks = null; + } + } else { + callbacks = null; + } + if (!callbacks) { + $this.removeData(data_name); + factory_settings.destroy.call(this, handler, options); + } + } + } else if ($this.data(data_name)) { + $(this).data(data_name).add(callback); + } else { + callbacks = $.Callbacks(); + callbacks.add(callback); + $this.data(data_name, callbacks); + factory_settings.init.call(this, handler, options); + } + }); + }; + } + // ----------------------------------------------------------------------- + // :: Cross-browser resize element plugin using sentinel iframe or + // :: resizeObserver + // ----------------------------------------------------------------------- + $.fn.resizer = make_callback_plugin({ + name: 'resize', + init: function(handler, options) { + var settings = $.extend({ + prefix: '' + }, options); + var $this = $(this); + var resizer; + var first = true; + if ($this.is('body')) { + $(window).on('resize.resizer', handler); + } else if (window.ResizeObserver) { + resizer = new ResizeObserver(function() { + if (!first) { + setTimeout(handler, 0); + } + first = false; + }); + resizer.observe(this); + $this.data('observer', resizer); + } else { + var iframe = $('