From 771c9015bb82c7e5c491e6d95d1d9400f88339ba Mon Sep 17 00:00:00 2001 From: Dziad Borowy Date: Sun, 23 Jun 2024 22:53:35 +0100 Subject: [PATCH] popover: better error handling --- docs/docs.css | 629 +- docs/docs.js | 84293 ++++++++++++++++++++++++++++++++++- docs/index.html | 2 +- docs/ui.css | 2750 +- src/popover/Popover.svelte | 4 +- 5 files changed, 87494 insertions(+), 184 deletions(-) diff --git a/docs/docs.css b/docs/docs.css index c9c3f4fd..2b9570b3 100644 --- a/docs/docs.css +++ b/docs/docs.css @@ -1 +1,628 @@ -.api-table{height:unset;overflow:auto visible;overscroll-behavior-y:unset}.api-table table{min-width:900px}.api-table tr td{vertical-align:top;padding-block:0.5rem}.api-table tr td:first-child,.api-table tr th:first-child{width:200px}.api-table tr td:nth-child(2),.api-table tr th:nth-child(2){width:200px}.api-table tr td:last-child,.api-table tr th:last-child{min-width:400px}body,html{margin:0;background-color:var(--ui-color-background);color:var(--ui-color-text);--sidebar-width:220px}@font-face{font-family:'Prime Light';src:url('prime_light-webfont.woff2') format('woff2'),url('prime_light-webfont.woff') format('woff');font-weight:light;font-style:normal}a{color:inherit}a:hover{text-decoration-color:var(--ui-color-accent);text-decoration-thickness:2px;text-underline-offset:0.3rem}main{padding:0 2rem 8rem;margin-left:var(--sidebar-width)}h1,h2,h3{font-weight:500;margin:2rem 0 1.2rem;width:100%}h1:first-child,h2:first-child,h3:first-of-type{margin-top:0}p{line-height:1.7;margin-block:1.5rem;max-width:120ch}p b{font-weight:700;letter-spacing:.5px}ul{line-height:1.7;margin:0;padding-left:2rem}ul li{margin-block:0.5rem}p+ul{margin-top:-1rem}em{color:var(--ui-color-accent);font-style:normal}hr{width:100%;height:0;border:0;border-top:1px solid var(--ui-color-border-2);margin:3em 0 2em}.docs-overflow-box{border:2px dotted var(--ui-color-accent);background-color:var(--ui-color-background);padding:1em;overflow:hidden;z-index:1;position:relative}.docs-buttons-row{display:flex;flex-flow:wrap row;align-items:flex-start;justify-content:flex-start;gap:.5rem;flex-shrink:0}@media (1px <= width <= 700px){main{margin-left:0}}code,main pre[class]{background-color:#1a1a1a;color:#ccc;border-radius:var(--ui-border-radius);font-size:var(--ui-font-s)}code{display:block;width:100%;padding:1em;margin-block:1em;line-height:2;white-space:pre;overflow:auto}code[class*=language-]{padding:0;margin:0}.dark-mode-switch{min-width:7rem;position:fixed;top:.5rem;right:.6rem;z-index:55}aside{border-right:1px solid var(--ui-color-border-2);overflow-y:auto;background:var(--ui-color-background);position:fixed;width:var(--sidebar-width);left:0;top:0;height:100lvh;padding:0 1rem calc(100lvh - 100svh);overscroll-behavior:contain}menu{width:100%;display:flex;flex-flow:column;padding:1rem 0 0;margin:0 0 2rem}menu h3{margin:0 -1rem;padding:var(--ui-margin-m) var(--ui-margin-l);white-space:nowrap;font-family:'Prime Light','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:var(--ui-font-xl)}menu h3:not(:first-child){margin-top:var(--ui-margin-l)}menu a{color:var(--ui-color-text);text-decoration:none;display:block;margin:var(--ui-margin-s) 0;padding:var(--ui-margin-m) 1.4rem;border-radius:var(--ui-border-radius);white-space:nowrap;touch-action:manipulation}menu a:hover{background-color:var(--ui-color-highlight-1)}menu a.active{background-color:var(--ui-color-highlight)}.nav-toggler{--ui-button-size:1.1em;position:fixed;left:0;top:.4rem;z-index:65;color:var(--ui-color-text-1);display:none;transform:translateX(10px)}.nav-toggler:hover{color:var(--ui-color-text);background:0 0}.btn-scroll-top{position:fixed;bottom:1rem;right:1rem;z-index:999}.btn-scroll-top.hidden{display:none}@media (1px <= width <= 700px){.nav-toggler{display:flex}.nav-toggler.expanded{transform:translateX(calc(var(--sidebar-width) - 40px))}aside{box-shadow:2px 1px 10px #0006;transform:translateX(calc(var(--sidebar-width) * -1));z-index:60;--sidebar-elastic-padding:80px;width:calc(var(--sidebar-width) + var(--sidebar-elastic-padding));left:calc(var(--sidebar-elastic-padding) * -1);padding-left:calc(var(--sidebar-elastic-padding) + 1rem)}aside.expanded{transform:translateX(0)}.nav-toggler:not(.swiping),aside:not(.swiping){transition:transform .3s cubic-bezier(.5, .2, .5, 1.2)}}.banner{height:clamp(100px,40vw,360px);padding-top:60px;display:flex;align-items:flex-start;justify-content:center}.banner a{display:inline-flex;align-items:center;justify-content:center;gap:2vw;margin:auto;padding:0;text-decoration:none}.logo{width:clamp(42px,10vw,160px);height:clamp(42px,10vw,160px);opacity:.9;filter:drop-shadow(0 1px 1px #000)}.logotype{font-family:'Prime Light','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:clamp(28px, 6vw, 90px);font-weight:100;margin:0;padding:0 4px 0 0;display:flex;flex-flow:row;white-space:nowrap;line-height:1;width:auto}.logotype em{font-weight:500}.logotype sub{font-size:var(--ui-font-m);font-weight:300;color:var(--ui-color-text-semi);margin:-1rem 0 0 -63px;width:60px;text-align:right}.banner a:hover .logotype em,.banner a:hover .logotype span{text-decoration:underline;text-decoration-thickness:1px;text-decoration-skip-ink:none;text-underline-offset:8px}.banner a:hover .logotype span{text-decoration-color:var(--ui-color-accent)}.banner a:hover .logotype em{text-decoration-color:var(--ui-color-text)}.footer-links{display:flex;align-items:center;justify-content:center;gap:5vw;margin:6rem 0 0;height:2rem}.footer-links a,.footer-links a:hover{text-decoration:none;height:100%;display:flex;align-items:center;color:var(--ui-color-text-semi);transition:color .1s}.footer-links a:hover{color:var(--ui-color-text)}.footer-links a svg{height:2rem;width:2rem;margin:0}.footer-links a.npm svg{width:5rem}.sticky-block{background:var(--ui-color-background);margin:0;padding:0}.sticky-block>h1,.sticky-block>h2,main>h1,main>h2{font-family:'Prime Light','Helvetica Neue',Helvetica,Arial,sans-serif;margin:2rem -2rem 1rem;padding:.5rem 100px .5rem 2rem}.prime-light{font-family:'Prime Light','Helvetica Neue',Helvetica,Arial,sans-serif}.sticky-block>h2,main>h2{font-size:1.8rem;width:auto;border-bottom:1px solid var(--ui-color-border-2);position:sticky;top:0;z-index:50;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}main>h2 em{color:var(--ui-color-text-semi);font-size:1.2rem;line-height:1.8rem;margin-left:.5rem;vertical-align:text-top}main>p code,main>ul li code{display:inline;padding:0;margin:0;background:0 0;color:var(--ui-color-accent);font:inherit;white-space:break-spaces}@media (1px <= width <= 700px){.sticky-block>h1,.sticky-block>h2,main>h1,main>h2{padding-left:54px}}.button-demo-props{display:flex;flex-flow:column;align-items:flex-start;justify-content:flex-start;gap:.5rem;width:clamp(300px,600px,100%)}.button-demo-props .input{display:flex;flex-flow:row;width:100%}.button-demo-props .input .label{width:5rem;flex-shrink:0}.button-demo-props .input .input-text-inner{flex:1}.button-demo-props .toggle{display:flex;flex-flow:row;width:100%}.button-demo-props .toggle .label{width:5rem;flex-shrink:0}@media (1px <= width <= 700px){.button-demo-props{width:100%}}.group{background:var(--ui-color-background-2);padding:6px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:6px;border-radius:var(--ui-border-radius-m)}.palette-box{padding:10px 0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:calc(var(--ui-border-radius-m) - 3px);background-color:var(--ui-color-background-2)}.grid-viewport{width:500px;max-width:100%;height:400px;border:2px dashed red;padding:5px}.icons{margin-bottom:2em}.icon-block{float:left;width:128px;height:128px;margin:0 1em 1em 0;display:flex;flex-flow:column;align-items:stretch;justify-content:stretch;background-color:var(--ui-color-background-semi);padding:0 10px 10px;border-radius:5px;border:1px solid var(--ui-color-border)}.icon-block-icon{flex:1;display:flex;align-items:center;justify-content:center}.icon-block-icon svg{width:32px;height:32px}.icon-block-name{height:20px;text-align:center;overflow-wrap:break-word;font-size:var(--ui-font-s)}.div{border:1px dashed red;height:100px;width:200px;display:inline-grid;place-items:center;margin:1rem 1rem 1rem 0;-webkit-user-select:none;user-select:none}.docs-menu-align-right{padding:2rem 0;border:1px dashed var(--ui-color-accent);text-align:right}.notification-center-header{margin-bottom:1rem;display:flex;flex-flow:row;align-items:center;justify-content:flex-start;gap:2rem}.notification-center-header h2{display:inline-block;width:auto;padding:0;margin:0}.prop-row{padding:1rem 0;display:flex;align-items:center;justify-content:flex-start;gap:1rem}.panel p{margin:0}.tooltip-box{display:inline-block;margin:10px 0 0;line-height:2.4em;padding:1em;border:1px solid #ccc;min-width:6em;text-align:center}.tooltip-html h1,.tooltip-html p{margin:0}.tooltip-html b{color:var(--ui-color-accent)}.tooltip-html a:hover{text-decoration:none}.split-wrap{width:400px;height:200px;border:1px solid red;display:flex;flex-flow:row;position:relative}.split-wrap-v{flex-flow:column}.split-box{border:1px solid green;flex:1}.min-w{min-width:20px;max-width:220px}.min-h{min-height:50px;max-height:150px}.table-viewport{width:500px;max-width:100%;height:500px;border:2px dashed red;padding:5px}.tooltip-box{display:inline-block;margin:10px 0 0;line-height:2.4em;padding:1em;border:1px solid #ccc;min-width:6em;text-align:center}.tooltip-html h1,.tooltip-html p{margin:0}.tooltip-html b{color:var(--ui-color-accent)}.tooltip-html a:hover{text-decoration:none}.section-utils{--nav-sidebar-width:240px}.section-utils .dark-mode-switch{right:calc(var(--nav-sidebar-width) + 20px)}.section-utils .sticky-block{padding-bottom:3rem;margin-right:var(--nav-sidebar-width)}.section-utils .sticky-block .utility h3{scroll-margin-top:4.2rem;font-size:1.1rem;color:var(--ui-color-accent);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace}.section-utils .utilities-nav{position:fixed;right:0;top:0;bottom:0;z-index:52;margin:0;padding:1rem 2rem;overflow-y:auto;width:var(--nav-sidebar-width);border-left:1px solid var(--ui-color-border-2);background-color:var(--ui-color-background-input)}.section-utils .utility{margin:0 -2rem;padding:1rem 2rem;border-bottom:1px solid var(--ui-color-border-2)}.section-utils .btn-scroll-top{right:calc(var(--nav-sidebar-width) + 20px)}@media (1px <= width <= 900px){.section-utils .dark-mode-switch{right:.6rem}.section-utils .btn-scroll-top{right:1rem}.section-utils .sticky-block{margin-right:0}.section-utils .utilities-nav{position:static;border-left:none;width:auto;z-index:initial;margin-top:2rem;background-color:unset}}.button-toggle-wrapper-wide{width:400px;max-width:100%}.button-toggle-wrapper-wide .button-toggle{width:100%}.toggle-box{margin:10px 0 0;line-height:2.4em;display:none}.toggle-box.visible{display:block} \ No newline at end of file +.api-table { + height: unset; + overflow: auto visible; + overscroll-behavior-y: unset; +} +.api-table table { min-width: 900px; } + +.api-table tr td { vertical-align: top; padding-block: 0.5rem;} + +.api-table tr th:first-child, +.api-table tr td:first-child { width: 200px; } + +.api-table tr th:nth-child(2), +.api-table tr td:nth-child(2) { width: 200px; } + +.api-table tr th:last-child, +.api-table tr td:last-child { min-width: 400px; } + +html, +body { + margin: 0; + background-color: var(--ui-color-background); + color: var(--ui-color-text); + + --sidebar-width: 220px; +} + + +@font-face { + font-family: 'Prime Light'; + src: url('prime_light-webfont.woff2') format('woff2'), + url('prime_light-webfont.woff') format('woff'); + font-weight: light; + font-style: normal; +} + + +a { color: inherit; } +a:hover { + text-decoration-color: var(--ui-color-accent); + text-decoration-thickness: 2px; + text-underline-offset: 0.3rem; +} + +main { + padding: 0 2rem 8rem; + margin-left: var(--sidebar-width); +} + +h1, +h2, +h3 { font-weight: 500; margin: 2rem 0 1.2rem; width: 100%; } + +h1:first-child, +h2:first-child, +h3:first-of-type { margin-top: 0; } + +p { line-height: 1.7; margin-block: 1.5rem; max-width: 120ch; } +p b { font-weight: 700; letter-spacing: 0.5px; } + +ul { line-height: 1.7; margin: 0; padding-left: 2rem; } +ul li { margin-block: 0.5rem; } + +p + ul { margin-top: -1rem } + +em { color: var(--ui-color-accent); font-style: normal; } + + +hr { + width: 100%; + height: 0; + border: 0; + border-top: 1px solid var(--ui-color-border-2); + margin: 3em 0 2em; +} + + +.docs-overflow-box { + border: 2px dotted var(--ui-color-accent); + background-color: var(--ui-color-background); + padding: 1em; + overflow: hidden; + z-index: 1; + position: relative; +} + +.docs-buttons-row { + display: flex; + flex-flow: wrap row; + align-items: flex-start; + justify-content: flex-start; + gap: 0.5rem; + flex-shrink: 0; +} + + + +@media (1px <= width <= 700px) { + main { margin-left: 0; } +} + +main pre[class], +code { + background-color: #1a1a1a; + color: #ccc; + border-radius: var(--ui-border-radius); + font-size: var(--ui-font-s) +} + +code { + display: block; + width: 100%; + padding: 1em; + margin-block: 1em; + line-height: 2; + white-space: pre; + overflow: auto; +} + +code[class*=language-] { padding: 0; margin: 0; } + +.dark-mode-switch { + min-width: 7rem; + position: fixed; + top: 0.5rem; + right: 0.6rem; + z-index: 55; +} + +aside { + border-right: 1px solid var(--ui-color-border-2); + overflow-y: auto; + background: var(--ui-color-background); + position: fixed; + width: var(--sidebar-width); + + left: 0; + top: 0; + height: 100lvh; + padding: 0 1rem calc(100lvh - 100svh); + + overscroll-behavior: contain; +} + +menu { + width: 100%; + display: flex; + flex-flow: column; + padding: 1rem 0 0; + margin: 0 0 2rem; +} + +menu h3 { + margin: 0 -1rem; + padding: var(--ui-margin-m) var(--ui-margin-l); + white-space: nowrap; + font-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: var(--ui-font-xl); +} + +menu h3:not(:first-child) { margin-top: var(--ui-margin-l); } + +menu a { + color: var(--ui-color-text); + text-decoration: none; + display: block; + margin: var(--ui-margin-s) 0; + padding: var(--ui-margin-m) 1.4rem; + border-radius: var(--ui-border-radius); + white-space: nowrap; + touch-action: manipulation; +} + +menu a:hover { background-color: var(--ui-color-highlight-1); } +menu a.active { background-color: var(--ui-color-highlight); } + + +.nav-toggler { + --ui-button-size: 1.1em; + position: fixed; + left: 0; + top: 0.4rem; + z-index: 65; + color: var(--ui-color-text-1); + display: none; + transform: translateX(10px); +} +.nav-toggler:hover { color: var(--ui-color-text); background: none; } + +.btn-scroll-top { + position: fixed; + bottom: 1rem; + right: 1rem; + z-index: 999; +} +.btn-scroll-top.hidden { display: none; } + + +@media (1px <= width <= 700px) { + .nav-toggler { display: flex; } + .nav-toggler.expanded { transform: translateX(calc(var(--sidebar-width) - 40px)); } + + aside { + box-shadow: 2px 1px 10px #0006; + transform: translateX(calc(var(--sidebar-width) * -1)); + z-index: 60; + + --sidebar-elastic-padding: 80px; + width: calc(var(--sidebar-width) + var(--sidebar-elastic-padding)); + left: calc(var(--sidebar-elastic-padding) * -1); + padding-left: calc(var(--sidebar-elastic-padding) + 1rem); + + } + aside.expanded { transform: translateX(0); } + + .nav-toggler:not(.swiping), + aside:not(.swiping) { transition: transform .3s cubic-bezier(.5, .2, .5, 1.2); } +} + +.banner { + height: clamp(100px, 40vw, 360px); + padding-top: 60px; + display: flex; + align-items: flex-start; + justify-content: center; +} + +.banner a { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 2vw; + margin: auto; + padding: 0; + text-decoration: none; +} + +.logo { + width: clamp(42px, 10vw, 160px); + height: clamp(42px, 10vw, 160px); + opacity: 0.9; + filter: drop-shadow(0 1px 1px #000); +} + + +.logotype { + font-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: clamp(28px, 6vw, 90px); + font-weight: 100; + margin: 0; + padding: 0 4px 0 0; + display: flex; + flex-flow: row; + white-space: nowrap; + line-height: 1; + width: auto; +} + +.logotype em { font-weight: 500; } +.logotype sub { + font-size: var(--ui-font-m); + font-weight: 300; + color: var(--ui-color-text-semi); + margin: -1rem 0 0 -63px; + width: 60px; + text-align: right; +} + + +.banner a:hover .logotype span, +.banner a:hover .logotype em { + text-decoration: underline; + text-decoration-thickness: 1px; + text-decoration-skip-ink: none; + text-underline-offset: 8px; +} +.banner a:hover .logotype span { text-decoration-color: var(--ui-color-accent); } +.banner a:hover .logotype em { text-decoration-color: var(--ui-color-text); } + + + + + +.footer-links { + display: flex; + align-items: center; + justify-content: center; + gap: 5vw; + margin: 6rem 0 0; + height: 2rem; +} + +.footer-links a, +.footer-links a:hover { + text-decoration: none; + height: 100%; + display: flex; + align-items: center; + color: var(--ui-color-text-semi); + transition: color 0.1s; +} + +.footer-links a:hover { color: var(--ui-color-text); } + +.footer-links a svg { height: 2rem; width: 2rem; margin: 0; } +.footer-links a.npm svg { width: 5rem; } + + + + +.sticky-block { + background: var(--ui-color-background); + margin: 0; + padding: 0; +} + +main>h1, +main>h2, +.sticky-block>h1, +.sticky-block>h2 { + font-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; + margin: 2rem -2rem 1rem; + padding: 0.5rem 100px 0.5rem 2rem; +} + +.prime-light { + font-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; +} + +/* stylelint-disable-next-line no-descending-specificity */ +main>h2, +.sticky-block>h2 { + font-size: 1.8rem; + width: auto; + border-bottom: 1px solid var(--ui-color-border-2); + position: sticky; + top: 0; + z-index: 50; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); +} + + + +/* stylelint-disable-next-line no-descending-specificity */ +main>h2 em { + color: var(--ui-color-text-semi); + font-size: 1.2rem; + line-height: 1.8rem; + margin-left: 0.5rem; + vertical-align: text-top; +} + +main>p code, +main>ul li code { + display: inline; + padding: 0; + margin: 0; + background: none; + color: var(--ui-color-accent); + font: inherit; + white-space: break-spaces; +} + + +@media (1px <= width <= 700px) { + main>h1, + main>h2, + .sticky-block>h1, + .sticky-block>h2 { padding-left: 54px; } +} + +.button-demo-props { + display: flex; + flex-flow: column; + align-items: flex-start; + justify-content: flex-start; + gap: 0.5rem; + width: clamp(300px, 600px, 100%); +} + +.button-demo-props .input { display: flex; flex-flow: row; width: 100%; } +.button-demo-props .input .label { width: 5rem; flex-shrink: 0; } +.button-demo-props .input .input-text-inner { flex: 1; } + + +.button-demo-props .toggle { display: flex; flex-flow: row; width: 100%; } +.button-demo-props .toggle .label { width: 5rem; flex-shrink: 0; } + +@media (1px <= width <= 700px) { + .button-demo-props { + width: 100%; + } +} + +.group { + background: var(--ui-color-background-2); + padding: 6px; + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + grid-gap: 6px; + border-radius: var(--ui-border-radius-m); +} + +.palette-box { + padding: 10px 0; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + border-radius: calc(var(--ui-border-radius-m) - 3px); + background-color: var(--ui-color-background-2); +} + +.grid-viewport { + width: 500px; + max-width: 100%; + height: 400px; + border: 2px dashed red; + padding: 5px; +} + +.icons { margin-bottom: 2em; } + +.icon-block { + float: left; + width: 128px; + height: 128px; + margin: 0 1em 1em 0; + display: flex; + flex-flow: column; + align-items: stretch; + justify-content: stretch; + background-color: var(--ui-color-background-semi); + padding: 0 10px 10px; + border-radius: 5px; + border: 1px solid var(--ui-color-border); +} + +.icon-block-icon { + flex: 1; + display: flex; + align-items: center; + justify-content: center; +} + +.icon-block-icon svg { + width: 32px; + height: 32px; +} + +.icon-block-name { + height: 20px; + text-align: center; + overflow-wrap: break-word; + font-size: var(--ui-font-s) +} + +.div { + border: 1px dashed red; + height: 100px; + width: 200px; + display: inline-grid; + place-items: center; + margin: 1rem 1rem 1rem 0; + -webkit-user-select: none; + user-select: none; +} + + +.docs-menu-align-right { + padding: 2rem 0; + border: 1px dashed var(--ui-color-accent); + text-align: right; +} + +.notification-center-header { + margin-bottom: 1rem; + display: flex; + flex-flow: row; + align-items: center; + justify-content: flex-start; + gap: 2rem; +} + +.notification-center-header h2 { + display: inline-block; + width: auto; + padding: 0; + margin: 0; +} + + +.prop-row { + padding: 1rem 0; + display: flex; + align-items: center; + justify-content: flex-start; + gap: 1rem; +} + +.panel p { margin: 0; } + +.tooltip-box { + display: inline-block; + margin: 10px 0 0; + line-height: 2.4em; + padding: 1em; + border: 1px solid #ccc; + min-width: 6em; + text-align: center; +} + +.tooltip-html h1, +.tooltip-html p { margin: 0; } +.tooltip-html b { color: var(--ui-color-accent); } +.tooltip-html a:hover { text-decoration: none; } + +.split-wrap { + width: 400px; + height: 200px; + border: 1px solid red; + display: flex; + flex-flow: row; + position: relative; +} + +.split-wrap-v { flex-flow: column; } +.split-box { border: 1px solid green; flex: 1; } + +.min-w { min-width: 20px; max-width: 220px; } +.min-h { min-height: 50px; max-height: 150px; } + +.table-viewport { + width: 500px; + max-width: 100%; + height: 500px; + border: 2px dashed red; + padding: 5px; +} + +.tooltip-box { + display: inline-block; + margin: 10px 0 0; + line-height: 2.4em; + padding: 1em; + border: 1px solid #ccc; + min-width: 6em; + text-align: center; +} + +.tooltip-html h1, +.tooltip-html p { margin: 0; } +.tooltip-html b { color: var(--ui-color-accent); } +.tooltip-html a:hover { text-decoration: none; } + +.section-utils { + --nav-sidebar-width: 240px; +} +.section-utils .dark-mode-switch { right: calc(var(--nav-sidebar-width) + 20px); } + +.section-utils .sticky-block { padding-bottom: 3rem; margin-right: var(--nav-sidebar-width); } + + +.section-utils .sticky-block .utility h3 { + scroll-margin-top: 4.2rem; + font-size: 1.1rem; + color: var(--ui-color-accent); + font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace; +} + + +.section-utils .utilities-nav { + position: fixed; + right: 0; + top: 0; + bottom: 0; + z-index: 52; + margin: 0; + padding: 1rem 2rem; + overflow-y: auto; + width: var(--nav-sidebar-width); + border-left: 1px solid var(--ui-color-border-2); + background-color: var(--ui-color-background-input); +} + +.section-utils .utility { + margin: 0 -2rem; + padding: 1rem 2rem; + border-bottom: 1px solid var(--ui-color-border-2); +} + + +.section-utils .btn-scroll-top { right: calc(var(--nav-sidebar-width) + 20px); } + + +@media (1px <= width <= 900px) { + .section-utils .dark-mode-switch { right: 0.6rem; } + .section-utils .btn-scroll-top { right: 1rem; } + .section-utils .sticky-block { margin-right: 0; } + .section-utils .utilities-nav { + position: static; + border-left: none; + width: auto; + z-index: initial; + margin-top: 2rem; + background-color: unset; + } + +} + +.button-toggle-wrapper-wide { width: 400px; max-width: 100%; } +.button-toggle-wrapper-wide .button-toggle { width: 100%; } + +.toggle-box { + margin: 10px 0 0; + line-height: 2.4em; + display: none; +} + +.toggle-box.visible { + display: block; +} +/*# sourceMappingURL=docs.css.map */ diff --git a/docs/docs.js b/docs/docs.js index 73edfd48..47e6546a 100644 --- a/docs/docs.js +++ b/docs/docs.js @@ -1,68 +1,51124 @@ -var wv=Object.create;var Pm=Object.defineProperty;var yv=Object.getOwnPropertyDescriptor;var kv=Object.getOwnPropertyNames;var Tv=Object.getPrototypeOf,Mv=Object.prototype.hasOwnProperty;var Kt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Nm=(t,e)=>{for(var n in e)Pm(t,n,{get:e[n],enumerable:!0})},Ev=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of kv(e))!Mv.call(t,o)&&o!==n&&Pm(t,o,{get:()=>e[o],enumerable:!(i=yv(e,o))||i.enumerable});return t};var Fm=(t,e,n)=>(n=t!=null?wv(Tv(t)):{},Ev(e||!t||!t.__esModule?Pm(n,"default",{value:t,enumerable:!0}):n,t));var zi=Kt(ni=>{"use strict";Object.defineProperty(ni,"__esModule",{value:!0});ni.TraceDirectionKey=ni.Direction=ni.Axis=void 0;var kp;ni.TraceDirectionKey=kp;(function(t){t.NEGATIVE="NEGATIVE",t.POSITIVE="POSITIVE",t.NONE="NONE"})(kp||(ni.TraceDirectionKey=kp={}));var Tp;ni.Direction=Tp;(function(t){t.TOP="TOP",t.LEFT="LEFT",t.RIGHT="RIGHT",t.BOTTOM="BOTTOM",t.NONE="NONE"})(Tp||(ni.Direction=Tp={}));var Mp;ni.Axis=Mp;(function(t){t.X="x",t.Y="y"})(Mp||(ni.Axis=Mp={}))});var Sp=Kt(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});Cp.calculateDirection=O3;var Ep=zi();function O3(t){var e,n=Ep.TraceDirectionKey.NEGATIVE,i=Ep.TraceDirectionKey.POSITIVE,o=t[t.length-1],r=t[t.length-2]||0;return t.every(function(a){return a===0})?Ep.TraceDirectionKey.NONE:(e=o>r?i:n,o===0&&(e=r<0?i:n),e)}});var uu=Kt(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.resolveAxisDirection=hi.getDirectionValue=hi.getDirectionKey=hi.getDifference=void 0;var Pn=zi(),H3=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=Object.keys(e).toString();switch(n){case Pn.TraceDirectionKey.POSITIVE:return Pn.TraceDirectionKey.POSITIVE;case Pn.TraceDirectionKey.NEGATIVE:return Pn.TraceDirectionKey.NEGATIVE;default:return Pn.TraceDirectionKey.NONE}};hi.getDirectionKey=H3;var x3=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return e[e.length-1]||0};hi.getDirectionValue=x3;var P3=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Math.abs(e-n)};hi.getDifference=P3;var N3=function(e,n){var i=Pn.Direction.LEFT,o=Pn.Direction.RIGHT,r=Pn.Direction.NONE;return e===Pn.Axis.Y&&(i=Pn.Direction.BOTTOM,o=Pn.Direction.TOP),n===Pn.TraceDirectionKey.NEGATIVE&&(r=i),n===Pn.TraceDirectionKey.POSITIVE&&(r=o),r};hi.resolveAxisDirection=N3});var Dp=Kt(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});Lp.calculateDirectionDelta=q3;var F3=zi(),bs=uu();function q3(t){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=t.length,i=n-1,o=F3.TraceDirectionKey.NONE;i>=0;i--){var r=t[i],a=(0,bs.getDirectionKey)(r),u=(0,bs.getDirectionValue)(r[a]),c=t[i-1]||{},f=(0,bs.getDirectionKey)(c),d=(0,bs.getDirectionValue)(c[f]),b=(0,bs.getDifference)(u,d);if(b>=e){o=a;break}else o=f}return o}});var Ip=Kt(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});Ap.calculateDuration=B3;function B3(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return t?e-t:0}});var D0=Kt(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});Op.calculateMovingPosition=R3;function R3(t){if("changedTouches"in t){var e=t.changedTouches&&t.changedTouches[0];return{x:e&&e.clientX,y:e&&e.clientY}}return{x:t.clientX,y:t.clientY}}});var xp=Kt(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});Hp.updateTrace=j3;function j3(t,e){var n=t[t.length-1];return n!==e&&t.push(e),t}});var Np=Kt(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});Pp.calculateTraceDirections=z3;var fu=zi();function A0(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function z3(){for(var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=[],n=fu.TraceDirectionKey.POSITIVE,i=fu.TraceDirectionKey.NEGATIVE,o=0,r=[],a=fu.TraceDirectionKey.NONE;oc?n:i;a===fu.TraceDirectionKey.NONE&&(a=f),f===a?r.push(u):(e.push(A0({},a,r.slice())),r=[],r.push(u),a=f)}else u!==0&&(a=u>0?n:i),r.push(u)}return r.length&&e.push(A0({},a,r)),e}});var qp=Kt(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});Fp.resolveDirection=Y3;var V3=Sp(),W3=Np(),U3=Dp(),I0=uu(),G3=zi();function Y3(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:G3.Axis.X,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(n){var i=(0,W3.calculateTraceDirections)(t),o=(0,U3.calculateDirectionDelta)(i,n);return(0,I0.resolveAxisDirection)(e,o)}var r=(0,V3.calculateDirection)(t);return(0,I0.resolveAxisDirection)(e,r)}});var Rp=Kt(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.calculateVelocity=K3;function K3(t,e,n){var i=Math.sqrt(t*t+e*e);return i/(n||1)}});var P0=Kt(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});jp.calculatePosition=Z3;var O0=xp(),H0=qp(),X3=Ip(),J3=Rp(),x0=zi();function Z3(t,e){var n=t.start,i=t.x,o=t.y,r=t.traceX,a=t.traceY,u=e.rotatePosition,c=e.directionDelta,f=u.x-i,d=o-u.y,b=Math.abs(f),_=Math.abs(d);(0,O0.updateTrace)(r,f),(0,O0.updateTrace)(a,d);var h=(0,H0.resolveDirection)(r,x0.Axis.X,c),g=(0,H0.resolveDirection)(a,x0.Axis.Y,c),w=(0,X3.calculateDuration)(n,Date.now()),k=(0,J3.calculateVelocity)(b,_,w);return{absX:b,absY:_,deltaX:f,deltaY:d,directionX:h,directionY:g,duration:w,positionX:u.x,positionY:u.y,velocity:k}}});var N0=Kt(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.checkIsMoreThanSingleTouches=void 0;var Q3=function(e){return!!(e.touches&&e.touches.length>1)};cu.checkIsMoreThanSingleTouches=Q3});var Vp=Kt(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});zp.createOptions=e4;function e4(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.defineProperty(t,"passive",{get:function(){return this.isPassiveSupported=!0,!0},enumerable:!0}),t}});var F0=Kt(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});_s.checkIsPassiveSupported=n4;_s.noop=void 0;var t4=Vp();function n4(t){if(typeof t=="boolean")return t;var e={isPassiveSupported:t};try{var n=(0,t4.createOptions)(e);window.addEventListener("checkIsPassiveSupported",Wp,n),window.removeEventListener("checkIsPassiveSupported",Wp,n)}catch{}return e.isPassiveSupported}var Wp=function(){};_s.noop=Wp});var q0=Kt(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.checkIsTouchEventsSupported=void 0;function Up(t){"@babel/helpers - typeof";return Up=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Up(t)}var i4=function(){return(typeof window>"u"?"undefined":Up(window))==="object"&&("ontouchstart"in window||!!window.navigator.maxTouchPoints)};mu.checkIsTouchEventsSupported=i4});var R0=Kt(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.getInitialState=void 0;function B0(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function o4(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:{};return o4({x:0,y:0,start:0,isSwiping:!1,traceX:[],traceY:[]},e)};du.getInitialState=l4});var z0=Kt(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.getInitialProps=void 0;function j0(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function r4(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:{};return r4({element:null,target:null,delta:10,directionDelta:0,rotationAngle:0,mouseTrackingEnabled:!1,touchTrackingEnabled:!0,preventDefaultTouchmoveEvent:!1,preventTrackingOnMouseleave:!1},e)};pu.getInitialProps=u4});var V0=Kt(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.getOptions=f4;function f4(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return t?{passive:!1}:{}}});var W0=Kt(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});Yp.rotateByAngle=c4;function c4(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(e===0)return t;var n=t.x,i=t.y,o=Math.PI/180*e,r=n*Math.cos(o)+i*Math.sin(o),a=i*Math.cos(o)-n*Math.sin(o);return{x:r,y:a}}});var U0=Kt(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});var Kp=Sp();Object.keys(Kp).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===Kp[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return Kp[t]}})});var Xp=Dp();Object.keys(Xp).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===Xp[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return Xp[t]}})});var Jp=Ip();Object.keys(Jp).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===Jp[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return Jp[t]}})});var Zp=D0();Object.keys(Zp).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===Zp[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return Zp[t]}})});var Qp=P0();Object.keys(Qp).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===Qp[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return Qp[t]}})});var eh=Np();Object.keys(eh).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===eh[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return eh[t]}})});var th=Rp();Object.keys(th).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===th[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return th[t]}})});var nh=N0();Object.keys(nh).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===nh[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return nh[t]}})});var ih=F0();Object.keys(ih).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===ih[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return ih[t]}})});var oh=q0();Object.keys(oh).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===oh[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return oh[t]}})});var sh=uu();Object.keys(sh).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===sh[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return sh[t]}})});var lh=Vp();Object.keys(lh).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===lh[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return lh[t]}})});var rh=R0();Object.keys(rh).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===rh[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return rh[t]}})});var ah=z0();Object.keys(ah).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===ah[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return ah[t]}})});var uh=V0();Object.keys(uh).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===uh[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return uh[t]}})});var fh=qp();Object.keys(fh).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===fh[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return fh[t]}})});var ch=W0();Object.keys(ch).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===ch[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return ch[t]}})});var mh=xp();Object.keys(mh).forEach(function(t){t==="default"||t==="__esModule"||t in et&&et[t]===mh[t]||Object.defineProperty(et,t,{enumerable:!0,get:function(){return mh[t]}})})});var X0=Kt(go=>{"use strict";function ph(t){"@babel/helpers - typeof";return ph=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ph(t)}Object.defineProperty(go,"__esModule",{value:!0});var m4={};go.default=void 0;var pn=d4(U0()),dh=zi();Object.keys(dh).forEach(function(t){t==="default"||t==="__esModule"||Object.prototype.hasOwnProperty.call(m4,t)||t in go&&go[t]===dh[t]||Object.defineProperty(go,t,{enumerable:!0,get:function(){return dh[t]}})});function K0(t){if(typeof WeakMap!="function")return null;var e=new WeakMap,n=new WeakMap;return(K0=function(o){return o?n:e})(t)}function d4(t,e){if(!e&&t&&t.__esModule)return t;if(t===null||ph(t)!=="object"&&typeof t!="function")return{default:t};var n=K0(e);if(n&&n.has(t))return n.get(t);var i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in t)if(r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)){var a=o?Object.getOwnPropertyDescriptor(t,r):null;a&&(a.get||a.set)?Object.defineProperty(i,r,a):i[r]=t[r]}return i.default=t,n&&n.set(t,i),i}function p4(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function G0(t,e){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:{directionDelta:0},o=this.props.rotationAngle,r=i.directionDelta,a=pn.calculateMovingPosition(n),u=pn.rotateByAngle(a,o);return pn.calculatePosition(this.state,{rotatePosition:u,directionDelta:r})}},{key:"handleSwipeStart",value:function(n){if(!pn.checkIsMoreThanSingleTouches(n)){var i=this.props.rotationAngle,o=pn.calculateMovingPosition(n),r=pn.rotateByAngle(o,i),a=r.x,u=r.y;this.state=pn.getInitialState({isSwiping:!1,start:Date.now(),x:a,y:u})}}},{key:"handleSwipeMove",value:function(n){var i=this.state,o=i.x,r=i.y,a=i.isSwiping;if(!(!o||!r||pn.checkIsMoreThanSingleTouches(n))){var u=this.props.directionDelta||0,c=this.getEventData(n,{directionDelta:u}),f=c.absX,d=c.absY,b=c.deltaX,_=c.deltaY,h=c.directionX,g=c.directionY,w=c.duration,k=c.velocity,v=this.props,M=v.delta,I=v.preventDefaultTouchmoveEvent,D=v.onSwipeStart,L=v.onSwiping;n.cancelable&&I&&n.preventDefault(),!(f{var S8=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var Je=function(t){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,i={},o={manual:t.Prism&&t.Prism.manual,disableWorkerMessageHandler:t.Prism&&t.Prism.disableWorkerMessageHandler,util:{encode:function w(k){return k instanceof r?new r(k.type,w(k.content),k.alias):Array.isArray(k)?k.map(w):k.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(M){var w=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(M.stack)||[])[1];if(w){var k=document.getElementsByTagName("script");for(var v in k)if(k[v].src==w)return k[v]}return null}},isActive:function(w,k,v){for(var M="no-"+k;w;){var I=w.classList;if(I.contains(k))return!0;if(I.contains(M))return!1;w=w.parentElement}return!!v}},languages:{plain:i,plaintext:i,text:i,txt:i,extend:function(w,k){var v=o.util.clone(o.languages[w]);for(var M in k)v[M]=k[M];return v},insertBefore:function(w,k,v,M){M=M||o.languages;var I=M[w],D={};for(var L in I)if(I.hasOwnProperty(L)){if(L==k)for(var T in v)v.hasOwnProperty(T)&&(D[T]=v[T]);v.hasOwnProperty(L)||(D[L]=I[L])}var A=M[w];return M[w]=D,o.languages.DFS(o.languages,function(x,O){O===A&&x!=w&&(this[x]=D)}),D},DFS:function w(k,v,M,I){I=I||{};var D=o.util.objId;for(var L in k)if(k.hasOwnProperty(L)){v.call(k,L,k[L],M||L);var T=k[L],A=o.util.type(T);A==="Object"&&!I[D(T)]?(I[D(T)]=!0,w(T,v,null,I)):A==="Array"&&!I[D(T)]&&(I[D(T)]=!0,w(T,v,L,I))}}},plugins:{},highlightAll:function(w,k){o.highlightAllUnder(document,w,k)},highlightAllUnder:function(w,k,v){var M={callback:v,container:w,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};o.hooks.run("before-highlightall",M),M.elements=Array.prototype.slice.apply(M.container.querySelectorAll(M.selector)),o.hooks.run("before-all-elements-highlight",M);for(var I=0,D;D=M.elements[I++];)o.highlightElement(D,k===!0,M.callback)},highlightElement:function(w,k,v){var M=o.util.getLanguage(w),I=o.languages[M];o.util.setLanguage(w,M);var D=w.parentElement;D&&D.nodeName.toLowerCase()==="pre"&&o.util.setLanguage(D,M);var L=w.textContent,T={element:w,language:M,grammar:I,code:L};function A(O){T.highlightedCode=O,o.hooks.run("before-insert",T),T.element.innerHTML=T.highlightedCode,o.hooks.run("after-highlight",T),o.hooks.run("complete",T),v&&v.call(T.element)}if(o.hooks.run("before-sanity-check",T),D=T.element.parentElement,D&&D.nodeName.toLowerCase()==="pre"&&!D.hasAttribute("tabindex")&&D.setAttribute("tabindex","0"),!T.code){o.hooks.run("complete",T),v&&v.call(T.element);return}if(o.hooks.run("before-highlight",T),!T.grammar){A(o.util.encode(T.code));return}if(k&&t.Worker){var x=new Worker(o.filename);x.onmessage=function(O){A(O.data)},x.postMessage(JSON.stringify({language:T.language,code:T.code,immediateClose:!0}))}else A(o.highlight(T.code,T.grammar,T.language))},highlight:function(w,k,v){var M={code:w,grammar:k,language:v};if(o.hooks.run("before-tokenize",M),!M.grammar)throw new Error('The language "'+M.language+'" has no grammar.');return M.tokens=o.tokenize(M.code,M.grammar),o.hooks.run("after-tokenize",M),r.stringify(o.util.encode(M.tokens),M.language)},tokenize:function(w,k){var v=k.rest;if(v){for(var M in v)k[M]=v[M];delete k.rest}var I=new c;return f(I,I.head,w),u(w,I,k,I.head,0),b(I)},hooks:{all:{},add:function(w,k){var v=o.hooks.all;v[w]=v[w]||[],v[w].push(k)},run:function(w,k){var v=o.hooks.all[w];if(!(!v||!v.length))for(var M=0,I;I=v[M++];)I(k)}},Token:r};t.Prism=o;function r(w,k,v,M){this.type=w,this.content=k,this.alias=v,this.length=(M||"").length|0}r.stringify=function w(k,v){if(typeof k=="string")return k;if(Array.isArray(k)){var M="";return k.forEach(function(A){M+=w(A,v)}),M}var I={type:k.type,content:w(k.content,v),tag:"span",classes:["token",k.type],attributes:{},language:v},D=k.alias;D&&(Array.isArray(D)?Array.prototype.push.apply(I.classes,D):I.classes.push(D)),o.hooks.run("wrap",I);var L="";for(var T in I.attributes)L+=" "+T+'="'+(I.attributes[T]||"").replace(/"/g,""")+'"';return"<"+I.tag+' class="'+I.classes.join(" ")+'"'+L+">"+I.content+""};function a(w,k,v,M){w.lastIndex=k;var I=w.exec(v);if(I&&M&&I[1]){var D=I[1].length;I.index+=D,I[0]=I[0].slice(D)}return I}function u(w,k,v,M,I,D){for(var L in v)if(!(!v.hasOwnProperty(L)||!v[L])){var T=v[L];T=Array.isArray(T)?T:[T];for(var A=0;A=D.reach);F+=J.value.length,J=J.next){var j=J.value;if(k.length>w.length)return;if(!(j instanceof r)){var U=1,Z;if(N){if(Z=a(W,F,w,P),!Z||Z.index>=w.length)break;var X=Z.index,le=Z.index+Z[0].length,ee=F;for(ee+=J.value.length;X>=ee;)J=J.next,ee+=J.value.length;if(ee-=J.value.length,F=ee,J.value instanceof r)continue;for(var K=J;K!==k.tail&&(eeD.reach&&(D.reach=Y);var Q=J.prev;he&&(Q=f(k,Q,he),F+=he.length),d(k,Q,U);var pe=new r(L,O?o.tokenize(ge,O):ge,V,ge);if(J=f(k,Q,pe),G&&f(k,J,G),U>1){var ye={cause:L+","+A,reach:Y};u(w,k,v,J.prev,F,ye),D&&ye.reach>D.reach&&(D.reach=ye.reach)}}}}}}function c(){var w={value:null,prev:null,next:null},k={value:null,prev:w,next:null};w.next=k,this.head=w,this.tail=k,this.length=0}function f(w,k,v){var M=k.next,I={value:v,prev:k,next:M};return k.next=I,M.prev=I,w.length++,I}function d(w,k,v){for(var M=k.next,I=0;I/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Je.languages.markup.tag.inside["attr-value"].inside.entity=Je.languages.markup.entity;Je.languages.markup.doctype.inside["internal-subset"].inside=Je.languages.markup;Je.hooks.add("wrap",function(t){t.type==="entity"&&(t.attributes.title=t.content.replace(/&/,"&"))});Object.defineProperty(Je.languages.markup.tag,"addInlined",{value:function(e,n){var i={};i["language-"+n]={pattern:/(^$)/i,lookbehind:!0,inside:Je.languages[n]},i.cdata=/^$/i;var o={"included-cdata":{pattern://i,inside:i}};o["language-"+n]={pattern:/[\s\S]+/,inside:Je.languages[n]};var r={};r[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:o},Je.languages.insertBefore("markup","cdata",r)}});Object.defineProperty(Je.languages.markup.tag,"addAttribute",{value:function(t,e){Je.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+t+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Je.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Je.languages.html=Je.languages.markup;Je.languages.mathml=Je.languages.markup;Je.languages.svg=Je.languages.markup;Je.languages.xml=Je.languages.extend("markup",{});Je.languages.ssml=Je.languages.xml;Je.languages.atom=Je.languages.xml;Je.languages.rss=Je.languages.xml;(function(t){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;t.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+e.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},t.languages.css.atrule.inside.rest=t.languages.css;var n=t.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))})(Je);Je.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};Je.languages.javascript=Je.languages.extend("clike",{"class-name":[Je.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Je.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Je.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Je.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Je.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Je.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Je.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Je.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Je.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Je.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Je.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Je.languages.markup&&(Je.languages.markup.tag.addInlined("script","javascript"),Je.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Je.languages.js=Je.languages.javascript;(function(){if(typeof Je>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var t="Loading\u2026",e=function(_,h){return"\u2716 Error "+_+" while fetching file: "+h},n="\u2716 Error: File does not exist or is empty",i={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},o="data-src-status",r="loading",a="loaded",u="failed",c="pre[data-src]:not(["+o+'="'+a+'"]):not(['+o+'="'+r+'"])';function f(_,h,g){var w=new XMLHttpRequest;w.open("GET",_,!0),w.onreadystatechange=function(){w.readyState==4&&(w.status<400&&w.responseText?h(w.responseText):w.status>=400?g(e(w.status,w.statusText)):g(n))},w.send(null)}function d(_){var h=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(_||"");if(h){var g=Number(h[1]),w=h[2],k=h[3];return w?k?[g,Number(k)]:[g,void 0]:[g,g]}}Je.hooks.add("before-highlightall",function(_){_.selector+=", "+c}),Je.hooks.add("before-sanity-check",function(_){var h=_.element;if(h.matches(c)){_.code="",h.setAttribute(o,r);var g=h.appendChild(document.createElement("CODE"));g.textContent=t;var w=h.getAttribute("data-src"),k=_.language;if(k==="none"){var v=(/\.(\w+)$/.exec(w)||[,"none"])[1];k=i[v]||v}Je.util.setLanguage(g,k),Je.util.setLanguage(h,k);var M=Je.plugins.autoloader;M&&M.loadLanguages(k),f(w,function(I){h.setAttribute(o,a);var D=d(h.getAttribute("data-range"));if(D){var L=I.split(/\r\n?|\n/g),T=D[0],A=D[1]==null?L.length:D[1];T<0&&(T+=L.length),T=Math.max(0,Math.min(T-1,L.length)),A<0&&(A+=L.length),A=Math.max(0,Math.min(A,L.length)),I=L.slice(T,A).join(` -`),h.hasAttribute("data-start")||h.setAttribute("data-start",String(T+1))}g.textContent=I,Je.highlightElement(g)},function(I){h.setAttribute(o,u),g.textContent=I})}}),Je.plugins.fileHighlight={highlight:function(h){for(var g=(h||document).querySelectorAll(c),w=0,k;k=g[w++];)Je.highlightElement(k)}};var b=!1;Je.fileHighlight=function(){b||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),b=!0),Je.plugins.fileHighlight.highlight.apply(this,arguments)}})()});var $v=Kt((GW,gu)=>{(function(){if(typeof Prism>"u")return;var t=Object.assign||function(r,a){for(var u in a)a.hasOwnProperty(u)&&(r[u]=a[u]);return r};function e(r){this.defaults=t({},r)}function n(r){return r.replace(/-(\w)/g,function(a,u){return u.toUpperCase()})}function i(r){for(var a=0,u=0;ua&&(f[b]=` -`+f[b],d=_)}u[c]=f.join("")}return u.join(` -`)}},typeof gu<"u"&&gu.exports&&(gu.exports=e),Prism.plugins.NormalizeWhitespace=new e({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",function(r){var a=Prism.plugins.NormalizeWhitespace;if(!(r.settings&&r.settings["whitespace-normalization"]===!1)&&Prism.util.isActive(r.element,"whitespace-normalization",!0)){if((!r.element||!r.element.parentNode)&&r.code){r.code=a.normalize(r.code,r.settings);return}var u=r.element.parentNode;if(!(!r.code||!u||u.nodeName.toLowerCase()!=="pre")){r.settings==null&&(r.settings={});for(var c in o)if(Object.hasOwnProperty.call(o,c)){var f=o[c];if(u.hasAttribute("data-"+c))try{var d=JSON.parse(u.getAttribute("data-"+c)||"true");typeof d===f&&(r.settings[c]=d)}catch{}}for(var b=u.childNodes,_="",h="",g=!1,w=0;wt;function tt(t,e){for(let n in e)t[n]=e[n];return t}function qm(t){return t()}function Ea(){return Object.create(null)}function qe(t){t.forEach(qm)}function vt(t){return typeof t=="function"}function fe(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}var Ma;function f1(t,e){return t===e?!0:(Ma||(Ma=document.createElement("a")),Ma.href=e,t===Ma.href)}function c1(t){return Object.keys(t).length===0}function nn(t,...e){if(t==null){for(let i of e)i(void 0);return ke}let n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function on(t){let e;return nn(t,n=>e=n)(),e}function dn(t,e,n){t.$$.on_destroy.push(nn(e,n))}function At(t,e,n,i){if(t){let o=m1(t,e,n,i);return t[0](o)}}function m1(t,e,n,i){return t[1]&&i?tt(n.ctx.slice(),t[1](i(e))):n.ctx}function It(t,e,n,i){if(t[2]&&i){let o=t[2](i(n));if(e.dirty===void 0)return o;if(typeof o=="object"){let r=[],a=Math.max(e.dirty.length,o.length);for(let u=0;u32){let e=[],n=t.ctx.length/32;for(let i=0;iwindow.performance.now():()=>Date.now(),Wo=p1?t=>requestAnimationFrame(t):ke;var To=new Set;function h1(t){To.forEach(e=>{e.c(t)||(To.delete(e),e.f())}),To.size!==0&&Wo(h1)}function Mo(t){let e;return To.size===0&&Wo(h1),{promise:new Promise(n=>{To.add(e={c:t,f:n})}),abort(){To.delete(e)}}}var Uo=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global;var Sa=class t{_listeners="WeakMap"in Uo?new WeakMap:void 0;_observer=void 0;options;constructor(e){this.options=e}observe(e,n){return this._listeners.set(e,n),this._getObserver().observe(e,this.options),()=>{this._listeners.delete(e),this._observer.unobserve(e)}}_getObserver(){return this._observer??(this._observer=new ResizeObserver(e=>{for(let n of e)t.entries.set(n.target,n),this._listeners.get(n.target)?.(n)}))}};Sa.entries="WeakMap"in Uo?new WeakMap:void 0;var g1=!1;function b1(){g1=!0}function _1(){g1=!1}function q(t,e){t.appendChild(e)}function Rm(t){if(!t)return document;let e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function v1(t){let e=p("style");return e.textContent="/* empty */",Sv(Rm(t),e),e.sheet}function Sv(t,e){return q(t.head||t,e),e.sheet}function l(t,e,n){t.insertBefore(e,n||null)}function s(t){t.parentNode&&t.parentNode.removeChild(t)}function bt(t,e){for(let n=0;nt.removeEventListener(e,n,i)}function Xn(t){return function(e){return e.preventDefault(),t.call(this,e)}}function La(t){return function(e){return e.stopPropagation(),t.call(this,e)}}function H(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}var Lv=["width","height"];function St(t,e){let n=Object.getOwnPropertyDescriptors(t.__proto__);for(let i in e)e[i]==null?t.removeAttribute(i):i==="style"?t.style.cssText=e[i]:i==="__value"?t.value=t[i]=e[i]:n[i]&&n[i].set&&Lv.indexOf(i)===-1?t[i]=e[i]:H(t,i,e[i])}function $1(t){return t===""?null:+t}function w1(t){return Array.from(t.childNodes)}function je(t,e){e=""+e,t.data!==e&&(t.data=e)}function pt(t,e){t.value=e??""}function Nt(t,e,n,i){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,i?"important":"")}function jm(t,e,n){for(let i=0;i{e[n.slot||"default"]=!0}),e}function Ii(t,e){return new t(e)}var Da=new Map,Aa=0;function Dv(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}function Av(t,e){let n={stylesheet:v1(e),rules:{}};return Da.set(t,n),n}function Gi(t,e,n,i,o,r,a,u=0){let c=16.666/i,f=`{ -`;for(let k=0;k<=1;k+=c){let v=e+(n-e)*r(k);f+=k*100+`%{${a(v,1-v)}} -`}let d=f+`100% {${a(n,1-n)}} -}`,b=`__svelte_${Dv(d)}_${u}`,_=Rm(t),{stylesheet:h,rules:g}=Da.get(_)||Av(_,t);g[b]||(g[b]=!0,h.insertRule(`@keyframes ${b} ${d}`,h.cssRules.length));let w=t.style.animation||"";return t.style.animation=`${w?`${w}, `:""}${b} ${i}ms linear ${o}ms 1 both`,Aa+=1,b}function Yi(t,e){let n=(t.style.animation||"").split(", "),i=n.filter(e?r=>r.indexOf(e)<0:r=>r.indexOf("__svelte")===-1),o=n.length-i.length;o&&(t.style.animation=i.join(", "),Aa-=o,Aa||Iv())}function Iv(){Wo(()=>{Aa||(Da.forEach(t=>{let{ownerNode:e}=t.stylesheet;e&&s(e)}),Da.clear())})}function Ia(t,e,n,i){if(!e)return ke;let o=t.getBoundingClientRect();if(e.left===o.left&&e.right===o.right&&e.top===o.top&&e.bottom===o.bottom)return ke;let{delay:r=0,duration:a=300,easing:u=Ai,start:c=ko()+r,end:f=c+a,tick:d=ke,css:b}=n(t,{from:e,to:o},i),_=!0,h=!1,g;function w(){b&&(g=Gi(t,0,1,a,r,u,b)),r||(h=!0)}function k(){b&&Yi(t,g),_=!1}return Mo(v=>{if(!h&&v>=c&&(h=!0),h&&v>=f&&(d(1,0),k()),!_)return!1;if(h){let M=v-c,I=0+1*u(M/a);d(I,1-I)}return!0}),w(),d(0,1),k}function Oa(t){let e=getComputedStyle(t);if(e.position!=="absolute"&&e.position!=="fixed"){let{width:n,height:i}=e,o=t.getBoundingClientRect();t.style.position="absolute",t.style.width=n,t.style.height=i,Ko(t,o)}}function Ko(t,e){let n=t.getBoundingClientRect();if(e.left!==n.left||e.top!==n.top){let i=getComputedStyle(t),o=i.transform==="none"?"":i.transform;t.style.transform=`${o} translate(${e.left-n.left}px, ${e.top-n.top}px)`}}var Oi;function wi(t){Oi=t}function Hi(){if(!Oi)throw new Error("Function called outside component initialization");return Oi}function Xo(t){Hi().$$.before_update.push(t)}function Lt(t){Hi().$$.on_mount.push(t)}function On(t){Hi().$$.after_update.push(t)}function an(t){Hi().$$.on_destroy.push(t)}function rt(){let t=Hi();return(e,n,{cancelable:i=!1}={})=>{let o=t.$$.callbacks[e];if(o){let r=Yo(e,n,{cancelable:i});return o.slice().forEach(a=>{a.call(t,r)}),!r.defaultPrevented}return!0}}function zm(t,e){return Hi().$$.context.set(t,e),e}function Vm(t){return Hi().$$.context.get(t)}function Qe(t,e){let n=t.$$.callbacks[e.type];n&&n.slice().forEach(i=>i.call(this,e))}var Ki=[];var be=[],Co=[],Um=[],Ov=Promise.resolve(),Gm=!1;function T1(){Gm||(Gm=!0,Ov.then(Et))}function tn(t){Co.push(t)}function Ge(t){Um.push(t)}var Wm=new Set,Eo=0;function Et(){if(Eo!==0)return;let t=Oi;do{try{for(;Eot.indexOf(i)===-1?e.push(i):n.push(i)),n.forEach(i=>i()),Co=e}var Jo;function Ym(){return Jo||(Jo=Promise.resolve(),Jo.then(()=>{Jo=null})),Jo}function Xi(t,e,n){t.dispatchEvent(Yo(`${e?"intro":"outro"}${n}`))}var Ha=new Set,ai;function Ve(){ai={r:0,c:[],p:ai}}function We(){ai.r||qe(ai.c),ai=ai.p}function $(t,e){t&&t.i&&(Ha.delete(t),t.i(e))}function y(t,e,n,i){if(t&&t.o){if(Ha.has(t))return;Ha.add(t),ai.c.push(()=>{Ha.delete(t),i&&(n&&t.d(1),i())}),t.o(e)}else i&&i()}var Km={duration:0};function So(t,e,n){let i={direction:"in"},o=e(t,n,i),r=!1,a,u,c=0;function f(){a&&Yi(t,a)}function d(){let{delay:_=0,duration:h=300,easing:g=Ai,tick:w=ke,css:k}=o||Km;k&&(a=Gi(t,0,1,h,_,g,k,c++)),w(0,1);let v=ko()+_,M=v+h;u&&u.abort(),r=!0,tn(()=>Xi(t,!0,"start")),u=Mo(I=>{if(r){if(I>=M)return w(1,0),Xi(t,!0,"end"),f(),r=!1;if(I>=v){let D=g((I-v)/h);w(D,1-D)}}return r})}let b=!1;return{start(){b||(b=!0,Yi(t),vt(o)?(o=o(i),Ym().then(d)):d())},invalidate(){b=!1},end(){r&&(f(),r=!1)}}}function Lo(t,e,n){let i={direction:"out"},o=e(t,n,i),r=!0,a,u=ai;u.r+=1;let c;function f(){let{delay:d=0,duration:b=300,easing:_=Ai,tick:h=ke,css:g}=o||Km;g&&(a=Gi(t,1,0,b,d,_,g));let w=ko()+d,k=w+b;tn(()=>Xi(t,!1,"start")),"inert"in t&&(c=t.inert,t.inert=!0),Mo(v=>{if(r){if(v>=k)return h(0,1),Xi(t,!1,"end"),--u.r||qe(u.c),!1;if(v>=w){let M=_((v-w)/b);h(1-M,M)}}return r})}return vt(o)?Ym().then(()=>{o=o(i),f()}):f(),{end(d){d&&"inert"in t&&(t.inert=c),d&&o.tick&&o.tick(1,0),r&&(a&&Yi(t,a),r=!1)}}}function Xm(t,e,n,i){let r=e(t,n,{direction:"both"}),a=i?0:1,u=null,c=null,f=null,d;function b(){f&&Yi(t,f)}function _(g,w){let k=g.b-a;return w*=Math.abs(k),{a,b:g.b,d:k,duration:w,start:g.start,end:g.start+w,group:g.group}}function h(g){let{delay:w=0,duration:k=300,easing:v=Ai,tick:M=ke,css:I}=r||Km,D={start:ko()+w,b:g};g||(D.group=ai,ai.r+=1),"inert"in t&&(g?d!==void 0&&(t.inert=d):(d=t.inert,t.inert=!0)),u||c?c=D:(I&&(b(),f=Gi(t,a,g,k,w,v,I)),g&&M(0,1),u=_(D,k),tn(()=>Xi(t,g,"start")),Mo(L=>{if(c&&L>c.start&&(u=_(c,k),c=null,Xi(t,u.b,"start"),I&&(b(),f=Gi(t,a,u.b,u.duration,0,v,r.css))),u){if(L>=u.end)M(a=u.b,1-a),Xi(t,u.b,"end"),c||(u.b?b():--u.group.r||qe(u.group.c)),u=null;else if(L>=u.start){let T=L-u.start;a=u.a+u.d*v(T/u.duration),M(a,1-a)}}return!!(u||c)}))}return{run(g){vt(r)?Ym().then(()=>{r=r({direction:g?"in":"out"}),h(g)}):h(g)},end(){b(),u=c=null}}}function ze(t){return t?.length!==void 0?t:Array.from(t)}function E1(t,e){t.d(1),e.delete(t.key)}function Zo(t,e){y(t,1,1,()=>{e.delete(t.key)})}function xa(t,e){t.f(),Zo(t,e)}function ui(t,e,n,i,o,r,a,u,c,f,d,b){let _=t.length,h=r.length,g=_,w={};for(;g--;)w[t[g].key]=g;let k=[],v=new Map,M=new Map,I=[];for(g=h;g--;){let A=b(o,r,g),x=n(A),O=a.get(x);O?i&&I.push(()=>O.p(A,e)):(O=f(x,A),O.c()),v.set(x,k[g]=O),x in w&&M.set(x,Math.abs(g-w[x]))}let D=new Set,L=new Set;function T(A){$(A,1),A.m(u,d),a.set(A.key,A),d=A.first,h--}for(;_&&h;){let A=k[h-1],x=t[_-1],O=A.key,P=x.key;A===x?(d=A.first,_--,h--):v.has(P)?!a.has(O)||D.has(O)?T(A):L.has(P)?_--:M.get(O)>M.get(P)?(L.add(O),T(A)):(D.add(P),_--):(c(x,a),_--)}for(;_--;){let A=t[_];v.has(A.key)||c(A,a)}for(;h;)T(k[h-1]);return qe(I),k}function jt(t,e){let n={},i={},o={$$scope:1},r=t.length;for(;r--;){let a=t[r],u=e[r];if(u){for(let c in a)c in u||(i[c]=1);for(let c in u)o[c]||(n[c]=u[c],o[c]=1);t[r]=u}else for(let c in a)o[c]=1}for(let a in i)a in n||(n[a]=void 0);return n}function Do(t){return typeof t=="object"&&t!==null?t:{}}var xv=["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],Pv=new Set([...xv]);function Ye(t,e,n){let i=t.$$.props[e];i!==void 0&&(t.$$.bound[i]=n,n(t.$$.ctx[i]))}function S(t){t&&t.c()}function E(t,e,n){let{fragment:i,after_update:o}=t.$$;i&&i.m(e,n),tn(()=>{let r=t.$$.on_mount.map(qm).filter(vt);t.$$.on_destroy?t.$$.on_destroy.push(...r):qe(r),t.$$.on_mount=[]}),o.forEach(tn)}function C(t,e){let n=t.$$;n.fragment!==null&&(M1(n.after_update),qe(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Fv(t,e){t.$$.dirty[0]===-1&&(Ki.push(t),T1(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{let g=h.length?h[0]:_;return f.ctx&&o(f.ctx[b],f.ctx[b]=g)&&(!f.skip_bound&&f.bound[b]&&f.bound[b](g),d&&Fv(t,b)),_}):[],f.update(),d=!0,qe(f.before_update),f.fragment=i?i(f.ctx):!1,e.target){if(e.hydrate){b1();let b=w1(e.target);f.fragment&&f.fragment.l(b),b.forEach(s)}else f.fragment&&f.fragment.c();e.intro&&$(t.$$.fragment),E(t,e.target,e.anchor),_1(),Et()}wi(c)}var qv;typeof HTMLElement=="function"&&(qv=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;constructor(t,e,n){super(),this.$$ctor=t,this.$$s=e,n&&this.attachShadow({mode:"open"})}addEventListener(t,e,n){if(this.$$l[t]=this.$$l[t]||[],this.$$l[t].push(e),this.$$c){let i=this.$$c.$on(t,e);this.$$l_u.set(e,i)}super.addEventListener(t,e,n)}removeEventListener(t,e,n){if(super.removeEventListener(t,e,n),this.$$c){let i=this.$$l_u.get(e);i&&(i(),this.$$l_u.delete(e))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let t=function(o){return()=>{let r;return{c:function(){r=p("slot"),o!=="default"&&H(r,"name",o)},m:function(c,f){l(c,r,f)},d:function(c){c&&s(r)}}}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;let e={},n=k1(this);for(let o of this.$$s)o in n&&(e[o]=[t(o)]);for(let o of this.attributes){let r=this.$$g_p(o.name);r in this.$$d||(this.$$d[r]=Jm(r,o.value,this.$$p_d,"toProp"))}for(let o in this.$$p_d)!(o in this.$$d)&&this[o]!==void 0&&(this.$$d[o]=this[o],delete this[o]);this.$$c=new this.$$ctor({target:this.shadowRoot||this,props:{...this.$$d,$$slots:e,$$scope:{ctx:[]}}});let i=()=>{this.$$r=!0;for(let o in this.$$p_d)if(this.$$d[o]=this.$$c.$$.ctx[this.$$c.$$.props[o]],this.$$p_d[o].reflect){let r=Jm(o,this.$$d[o],this.$$p_d,"toAttribute");r==null?this.removeAttribute(this.$$p_d[o].attribute||o):this.setAttribute(this.$$p_d[o].attribute||o,r)}this.$$r=!1};this.$$c.$$.after_update.push(i),i();for(let o in this.$$l)for(let r of this.$$l[o]){let a=this.$$c.$on(o,r);this.$$l_u.set(r,a)}this.$$l={}}}attributeChangedCallback(t,e,n){this.$$r||(t=this.$$g_p(t),this.$$d[t]=Jm(t,n,this.$$p_d,"toProp"),this.$$c?.$set({[t]:this.$$d[t]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$c=void 0)})}$$g_p(t){return Object.keys(this.$$p_d).find(e=>this.$$p_d[e].attribute===t||!this.$$p_d[e].attribute&&e.toLowerCase()===t)||t}});function Jm(t,e,n,i){let o=n[t]?.type;if(e=o==="Boolean"&&typeof e!="boolean"?e!=null:e,!i||!n[t])return e;if(i==="toAttribute")switch(o){case"Object":case"Array":return e==null?null:JSON.stringify(e);case"Boolean":return e?"":null;case"Number":return e??null;default:return e}else switch(o){case"Object":case"Array":return e&&JSON.parse(e);case"Boolean":return e;case"Number":return e!=null?+e:e;default:return e}}var ue=class{$$=void 0;$$set=void 0;$destroy(){C(this,1),this.$destroy=ke}$on(e,n){if(!vt(n))return ke;let i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(n),()=>{let o=i.indexOf(n);o!==-1&&i.splice(o,1)}}$set(e){this.$$set&&!c1(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};var C1="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(C1);function Bv(t){let e,n,i,o,r,a=t[4].default,u=At(a,t,t[3],null);return{c(){e=p("div"),n=p("div"),i=p("div"),u&&u.c(),H(i,"class","button-group-inner"),H(i,"role","group"),H(n,"class","button-group-scroller"),H(e,"class",o="button-group "+t[1]),te(e,"round",t[2])},m(c,f){l(c,e,f),q(e,n),q(n,i),u&&u.m(i,null),t[5](e),r=!0},p(c,[f]){u&&u.p&&(!r||f&8)&&Ot(u,a,c,c[3],r?It(a,c[3],f,null):Ht(c[3]),null),(!r||f&2&&o!==(o="button-group "+c[1]))&&H(e,"class",o),(!r||f&6)&&te(e,"round",c[2])},i(c){r||($(u,c),r=!0)},o(c){y(u,c),r=!1},d(c){c&&s(e),u&&u.d(c),t[5](null)}}}function Rv(t,e,n){let{$$slots:i={},$$scope:o}=e,{class:r=""}=e,{round:a=void 0}=e,{element:u=void 0}=e;function c(f){be[f?"unshift":"push"](()=>{u=f,n(0,u)})}return t.$$set=f=>{"class"in f&&n(1,r=f.class),"round"in f&&n(2,a=f.round),"element"in f&&n(0,u=f.element),"$$scope"in f&&n(3,o=f.$$scope)},[u,r,a,o,i,c]}var Zm=class extends ue{constructor(e){super(),ce(this,e,Rv,Bv,fe,{class:1,round:2,element:0})}},Un=Zm;var jv='",Qo={adjustments:'adjustments-horizontal">`}function L1(t,e){Ji[t]||(Ji[t]=e)}function Vv(t){let e,n;return{c(){e=new ri(!1),n=$t(),e.a=n},m(i,o){e.m(t[0],i,o),l(i,n,o)},p(i,[o]){o&1&&e.p(i[0])},i:ke,o:ke,d(i){i&&(s(n),e.d())}}}function Wv(t,e,n){let i,{name:o=""}=e;return t.$$set=r=>{"name"in r&&n(1,o=r.name)},t.$$.update=()=>{t.$$.dirty&2&&n(0,i=Zi(o))},[i,o]}var Qm=class extends ue{constructor(e){super(),ce(this,e,Wv,Vv,fe,{name:1})}},xt=Qm;function D1(t){let e,n;return e=new xt({props:{name:t[10]}}),{c(){S(e.$$.fragment)},m(i,o){E(e,i,o),n=!0},p(i,o){let r={};o&1024&&(r.name=i[10]),e.$set(r)},i(i){n||($(e.$$.fragment,i),n=!0)},o(i){y(e.$$.fragment,i),n=!1},d(i){C(e,i)}}}function Uv(t){let e,n,i,o,r,a,u,c=t[10]&&D1(t),f=t[17].default,d=At(f,t,t[16],null),b=[{type:i=t[6]?"submit":"button"},{class:o="button "+t[12]},t[15]],_={};for(let h=0;h{c=null}),We()),d&&d.p&&(!r||g&65536)&&Ot(d,f,h,h[16],r?It(f,h[16],g,null):Ht(h[16]),null),St(e,_=jt(b,[(!r||g&64&&i!==(i=h[6]?"submit":"button"))&&{type:i},(!r||g&4096&&o!==(o="button "+h[12]))&&{class:o},g&32768&&h[15]])),te(e,"button-normal",!h[8]&&!h[9]&&!h[7]),te(e,"button-outline",h[7]),te(e,"button-link",h[8]),te(e,"button-text",h[9]),te(e,"button-has-text",h[14].default),te(e,"round",h[11]),te(e,"info",h[1]),te(e,"success",h[2]),te(e,"warning",h[3]),te(e,"danger",h[4]),te(e,"error",h[5]),te(e,"touching",h[13])},i(h){r||($(c),$(d,h),r=!0)},o(h){y(c),y(d,h),r=!1},d(h){h&&s(e),c&&c.d(),d&&d.d(h),t[26](null),a=!1,qe(u)}}}function Gv(t,e,n){let i=["element","info","success","warning","danger","error","submit","outline","link","text","icon","round","class"],o=Mt(e,i),{$$slots:r={},$$scope:a}=e,u=Ca(r),{element:c=void 0}=e,{info:f=!1}=e,{success:d=!1}=e,{warning:b=!1}=e,{danger:_=!1}=e,{error:h=!1}=e,{submit:g=!1}=e,{outline:w=!1}=e,{link:k=!1}=e,{text:v=!1}=e,{icon:M=void 0}=e,{round:I=void 0}=e,{class:D=""}=e,L=!1;function T(j){Qe.call(this,t,j)}function A(j){Qe.call(this,t,j)}function x(j){Qe.call(this,t,j)}function O(j){Qe.call(this,t,j)}function P(j){Qe.call(this,t,j)}function N(j){Qe.call(this,t,j)}function V(j){Qe.call(this,t,j)}function z(j){Qe.call(this,t,j)}function W(j){be[j?"unshift":"push"](()=>{c=j,n(0,c)})}let J=()=>n(13,L=!0),F=()=>n(13,L=!1);return t.$$set=j=>{e=tt(tt({},e),Zt(j)),n(15,o=Mt(e,i)),"element"in j&&n(0,c=j.element),"info"in j&&n(1,f=j.info),"success"in j&&n(2,d=j.success),"warning"in j&&n(3,b=j.warning),"danger"in j&&n(4,_=j.danger),"error"in j&&n(5,h=j.error),"submit"in j&&n(6,g=j.submit),"outline"in j&&n(7,w=j.outline),"link"in j&&n(8,k=j.link),"text"in j&&n(9,v=j.text),"icon"in j&&n(10,M=j.icon),"round"in j&&n(11,I=j.round),"class"in j&&n(12,D=j.class),"$$scope"in j&&n(16,a=j.$$scope)},[c,f,d,b,_,h,g,w,k,v,M,I,D,L,u,o,a,r,T,A,x,O,P,N,V,z,W,J,F]}var ed=class extends ue{constructor(e){super(),ce(this,e,Gv,Uv,fe,{element:0,info:1,success:2,warning:3,danger:4,error:5,submit:6,outline:7,link:8,text:9,icon:10,round:11,class:12})}},De=ed;var Ao=[];function sn(t,e=ke){let n,i=new Set;function o(u){if(fe(t,u)&&(t=u,n)){let c=!Ao.length;for(let f of i)f[1](),Ao.push(f,t);if(c){for(let f=0;f{i.delete(f),i.size===0&&n&&(n(),n=null)}}return{set:o,update:r,subscribe:a}}var eo=["a[href]:not([disabled])","button:not([disabled])","iframe:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","[contentEditable]","[tabindex]:not(.focus-trap)"].join(","),un=sn(300),td=sn(!1),A1=t=>un.set(!t||t.matches?0:200),I1=t=>td.set(t&&t.matches);if(window.matchMedia){let t=window.matchMedia("(prefers-reduced-motion: reduce)");A1(t),t.addEventListener("change",A1);let e=window.matchMedia("(prefers-color-scheme: dark)");I1(e),e.addEventListener("change",I1)}function Pa(t,e,n,i={}){let o={duration:on(un),easing:"ease-out",fill:"forwards"},r=Object.assign({},o,i);return new Promise(a=>{requestAnimationFrame(()=>{let u=t.animate([e,n],r);u.oncancel=a,u.onfinish=a})})}function H1(t,e=160){return Pa(t,{opacity:1},{opacity:.5},{duration:e/2,fill:"backwards"})}function Io(t,e=300){let n;return(...i)=>{n&&clearTimeout(n),n=setTimeout(()=>t.apply(this,i),e)}}function Qi(t){if(!t||typeof t!="object")return t;if(Array.isArray(t)){let n=[];for(let i=0;i{let o=new Date().getTime();if(!(o-nt.length)return!1;if(e===t)return!0;t=t.toLowerCase(),e=e.toLowerCase();let n=-1;for(let i of e)if(!~(n=t.indexOf(i,n+1)))return!1;return!0}function Xe(){return window.crypto?.randomUUID?window.crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function xi(t){return t.type.includes("touch")?t.changedTouches[0].clientX:t.clientX}function es(t){return t.type.includes("touch")?t.changedTouches[0].clientY:t.clientY}function Jn(){let t=navigator.userAgent,e=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i;return e.test(t)?!0:(e=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i,e.test(t.slice(0,4)))}function Yv(t,e){if(e in t)return t[e]}function Kv(t,e){let n={};return e.forEach(i=>{i in t&&(n[i]=t[i])}),n}function N1(t,e){return t?Array.isArray(e)?Kv(t,e):Yv(t,e):{}}function F1(t,e=2){let n=Math.pow(10,e);return(Math.round(t*n)/n).toFixed(e)}function Xv(t){let e=t.getFullYear(),n=("0"+(t.getMonth()+1)).slice(-2),i=("0"+t.getDate()).slice(-2),o=("0"+t.getHours()).slice(-2),r=("0"+t.getMinutes()).slice(-2);return`${e}-${n}-${i} ${o}:${r}`}function nd(t,e){if(!t)return"";e=e||new Date().getTime();let n=(e-+t)/1e3,i=[{label:"year",seconds:31536e3},{label:"month",seconds:2592e3},{label:"day",seconds:86400},{label:"hour",seconds:3600},{label:"minute",seconds:60}],o=[];for(;n>60;){let r=i.find(u=>u.secondsw.height||gd.top?"bottom":"top"}function Jv(t,e){let n=e.getBoundingClientRect(),i=t.left+t.width/2,o=n.left+n.width/2,r=n.width?n.width/100:1,a=50+(i-o)/r,u=Math.max(8,Math.min(93,a));return`${Math.round(u*r-1)}px`}function O1(t){let e=getComputedStyle(t,null),n=e.overflowX||e.overflow;return/(auto|scroll)/.test(n)?t.scrollWidth>t.clientWidth:!1}function q1(t){if(!(t instanceof HTMLElement||t instanceof SVGElement))return!1;if(O1(t))return!0;let e=t.parentElement;for(;e;){if(O1(e))return!0;e=e.parentElement}return!1}function ts(t){if(t=t[0]==="#"?t.slice(1):t,t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),t.length!==6)return!1;let e=parseInt(t.substring(0,2),16),n=parseInt(t.substring(2,4),16),i=parseInt(t.substring(4,6),16);if(isNaN(e)||isNaN(n)||isNaN(i))return!1;let o=(e*299+n*587+i*114)/1e3;return isNaN(o)?!1:o<140}var Zv=t=>({}),B1=t=>({});function Qv(t){let e,n,i,o,r,a,u,c,f,d,b,_,h,g,w,k,v=t[16].default,M=At(v,t,t[15],null),I=t[16].footer,D=At(I,t,t[15],B1);return{c(){e=p("div"),n=p("div"),i=p("div"),o=m(),r=p("h1"),a=ne(t[3]),u=m(),c=p("div"),M&&M.c(),f=m(),d=p("div"),D&&D.c(),b=m(),_=p("div"),H(i,"tabindex","0"),H(i,"class","focus-trap focus-trap-top"),H(r,"class","dialog-header"),H(c,"class","dialog-content"),H(d,"class","dialog-footer"),H(_,"tabindex","0"),H(_,"class","focus-trap focus-trap-bottom"),H(n,"class","dialog"),te(n,"no-title",!t[3]),H(e,"role","dialog"),H(e,"aria-modal","true"),H(e,"aria-label",t[3]),H(e,"class",h="dialog-backdrop "+t[2]),te(e,"opened",t[0])},m(L,T){l(L,e,T),q(e,n),q(n,i),q(n,o),q(n,r),q(r,a),q(n,u),q(n,c),M&&M.m(c,null),t[17](c),q(n,f),q(n,d),D&&D.m(d,null),t[18](d),q(n,b),q(n,_),t[19](n),t[20](e),g=!0,w||(k=[$e(i,"focus",t[8]),$e(_,"focus",t[7]),$e(e,"mousedown",t[9]),$e(e,"click",t[10])],w=!0)},p(L,[T]){(!g||T&8)&&je(a,L[3]),M&&M.p&&(!g||T&32768)&&Ot(M,v,L,L[15],g?It(v,L[15],T,null):Ht(L[15]),null),D&&D.p&&(!g||T&32768)&&Ot(D,I,L,L[15],g?It(I,L[15],T,Zv):Ht(L[15]),B1),(!g||T&8)&&te(n,"no-title",!L[3]),(!g||T&8)&&H(e,"aria-label",L[3]),(!g||T&4&&h!==(h="dialog-backdrop "+L[2]))&&H(e,"class",h),(!g||T&5)&&te(e,"opened",L[0])},i(L){g||($(M,L),$(D,L),g=!0)},o(L){y(M,L),y(D,L),g=!1},d(L){L&&s(e),M&&M.d(L),t[17](null),D&&D.d(L),t[18](null),t[19](null),t[20](null),w=!1,qe(k)}}}function e$(t,e){let i={ArrowLeft:"nextElementSibling",ArrowRight:"previousElementSibling"}[e],o=t[i];for(;o&&o.tagName!=="BUTTON";)o=o[i];o&&o.focus()}function t$(t,e,n){let i;dn(t,un,j=>n(25,i=j));let{$$slots:o={},$$scope:r}=e,{class:a=""}=e,{title:u=""}=e,{opened:c=!1}=e,{skipFirstFocus:f=!1}=e,{modal:d=!1}=e,{element:b}=e,_=rt(),h,g,w,k,v,M,I;Lt(()=>{document.body.appendChild(b)});function D(){let j=T().shift(),U=T().pop();!j&&!U&&(g.setAttribute("tabindex",0),j=g),U&&U.scrollIntoView({block:"end"}),j&&j.focus()}function L(){let j=T().shift(),U=T().pop();!j&&!U&&(g.setAttribute("tabindex",0),U=g),j&&j.scrollIntoView({block:"end"}),U&&U.focus()}function T(){let j=Array.from(g.querySelectorAll(eo)),U=Array.from(w.querySelectorAll(eo));return[...j,...U]}function A(j){d&&(j.stopPropagation(),j.preventDefault())}function x(j){!h.contains(j.target)&&!d&&(j.stopPropagation(),V())}function O(j){if(!c)return;let U=b.contains(document.activeElement);if(j.key==="Tab"&&!U)return D();if(j.key==="Escape"&&!d)return j.stopPropagation(),V();let Z=j.target?.closest("button");Z&&(j.key==="ArrowLeft"||j.key==="ArrowRight")&&e$(Z,j.key)}function P(j){j?(I=window.scrollY,document.body.classList.add("has-dialog"),document.body.style.top=`-${I}px`):(document.body.classList.remove("has-dialog"),document.scrollingElement.scrollTop=I,document.body.style.top="")}function N(j){c||(j instanceof Event&&(j=j.target),k=j||document.activeElement,k&&k!==document.body&&(k.setAttribute("aria-haspopup","true"),k.setAttribute("aria-expanded","true")),n(1,b.style.display="flex",b),v&&clearTimeout(v),v=setTimeout(()=>{n(0,c=!0),n(1,b.style.display="flex",b),f!==!0&&f!=="true"&&D(),document.addEventListener("keydown",O),P(!0),_("open")},100))}function V(){c&&(n(0,c=!1),k&&k.focus&&k.focus(),M&&clearTimeout(M),M=setTimeout(()=>{n(0,c=!1),n(1,b.style.display="none",b),document.removeEventListener("keydown",O),k&&k!==document.body&&k.removeAttribute("aria-expanded"),P(!1),_("close")},i))}function z(j){be[j?"unshift":"push"](()=>{g=j,n(5,g)})}function W(j){be[j?"unshift":"push"](()=>{w=j,n(6,w)})}function J(j){be[j?"unshift":"push"](()=>{h=j,n(4,h)})}function F(j){be[j?"unshift":"push"](()=>{b=j,n(1,b)})}return t.$$set=j=>{"class"in j&&n(2,a=j.class),"title"in j&&n(3,u=j.title),"opened"in j&&n(0,c=j.opened),"skipFirstFocus"in j&&n(11,f=j.skipFirstFocus),"modal"in j&&n(12,d=j.modal),"element"in j&&n(1,b=j.element),"$$scope"in j&&n(15,r=j.$$scope)},[c,b,a,u,h,g,w,D,L,A,x,f,d,N,V,r,o,z,W,J,F]}var od=class extends ue{constructor(e){super(),ce(this,e,t$,Qv,fe,{class:2,title:3,opened:0,skipFirstFocus:11,modal:12,element:1,open:13,close:14})}get class(){return this.$$.ctx[2]}set class(e){this.$$set({class:e}),Et()}get title(){return this.$$.ctx[3]}set title(e){this.$$set({title:e}),Et()}get opened(){return this.$$.ctx[0]}set opened(e){this.$$set({opened:e}),Et()}get skipFirstFocus(){return this.$$.ctx[11]}set skipFirstFocus(e){this.$$set({skipFirstFocus:e}),Et()}get modal(){return this.$$.ctx[12]}set modal(e){this.$$set({modal:e}),Et()}get element(){return this.$$.ctx[1]}set element(e){this.$$set({element:e}),Et()}get open(){return this.$$.ctx[13]}get close(){return this.$$.ctx[14]}},yi=od;function ns(t){let e=t-1;return e*e*e+1}function to(t,{delay:e=0,duration:n=400,easing:i=ns,x:o=0,y:r=0,opacity:a=0}={}){let u=getComputedStyle(t),c=+u.opacity,f=u.transform==="none"?"":u.transform,d=c*(1-a),[b,_]=Bm(o),[h,g]=Bm(r);return{delay:e,duration:n,easing:i,css:(w,k)=>` - transform: ${f} translate(${(1-w)*b}${_}, ${(1-w)*h}${g}); - opacity: ${c-d*k}`}}function R1({fallback:t,...e}){let n=new Map,i=new Map;function o(a,u,c){let{delay:f=0,duration:d=T=>Math.sqrt(T)*30,easing:b=ns}=tt(tt({},e),c),_=a.getBoundingClientRect(),h=u.getBoundingClientRect(),g=_.left-h.left,w=_.top-h.top,k=_.width/h.width,v=_.height/h.height,M=Math.sqrt(g*g+w*w),I=getComputedStyle(u),D=I.transform==="none"?"":I.transform,L=+I.opacity;return{delay:f,duration:vt(d)?d(M):d,easing:b,css:(T,A)=>` - opacity: ${T*L}; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name2 in all) + __defProp(target, name2, { get: all[name2], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +// node_modules/vanilla-swipe/lib/types/index.js +var require_types = __commonJS({ + "node_modules/vanilla-swipe/lib/types/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.TraceDirectionKey = exports.Direction = exports.Axis = void 0; + var TraceDirectionKey; + exports.TraceDirectionKey = TraceDirectionKey; + (function(TraceDirectionKey2) { + TraceDirectionKey2["NEGATIVE"] = "NEGATIVE"; + TraceDirectionKey2["POSITIVE"] = "POSITIVE"; + TraceDirectionKey2["NONE"] = "NONE"; + })(TraceDirectionKey || (exports.TraceDirectionKey = TraceDirectionKey = {})); + var Direction; + exports.Direction = Direction; + (function(Direction2) { + Direction2["TOP"] = "TOP"; + Direction2["LEFT"] = "LEFT"; + Direction2["RIGHT"] = "RIGHT"; + Direction2["BOTTOM"] = "BOTTOM"; + Direction2["NONE"] = "NONE"; + })(Direction || (exports.Direction = Direction = {})); + var Axis; + exports.Axis = Axis; + (function(Axis2) { + Axis2["X"] = "x"; + Axis2["Y"] = "y"; + })(Axis || (exports.Axis = Axis = {})); + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateDirection.js +var require_calculateDirection = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateDirection.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateDirection = calculateDirection; + var _types = require_types(); + function calculateDirection(trace) { + var direction; + var negative = _types.TraceDirectionKey.NEGATIVE; + var positive = _types.TraceDirectionKey.POSITIVE; + var current = trace[trace.length - 1]; + var previous = trace[trace.length - 2] || 0; + if (trace.every(function(i) { + return i === 0; + })) { + return _types.TraceDirectionKey.NONE; + } + direction = current > previous ? positive : negative; + if (current === 0) { + direction = previous < 0 ? positive : negative; + } + return direction; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/common.js +var require_common = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/common.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.resolveAxisDirection = exports.getDirectionValue = exports.getDirectionKey = exports.getDifference = void 0; + var _types = require_types(); + var getDirectionKey = function getDirectionKey2() { + var object = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + var key = Object.keys(object).toString(); + switch (key) { + case _types.TraceDirectionKey.POSITIVE: + return _types.TraceDirectionKey.POSITIVE; + case _types.TraceDirectionKey.NEGATIVE: + return _types.TraceDirectionKey.NEGATIVE; + default: + return _types.TraceDirectionKey.NONE; + } + }; + exports.getDirectionKey = getDirectionKey; + var getDirectionValue = function getDirectionValue2() { + var values = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []; + return values[values.length - 1] || 0; + }; + exports.getDirectionValue = getDirectionValue; + var getDifference = function getDifference2() { + var x = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0; + var y = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + return Math.abs(x - y); + }; + exports.getDifference = getDifference; + var resolveAxisDirection = function resolveAxisDirection2(axis, key) { + var negative = _types.Direction.LEFT; + var positive = _types.Direction.RIGHT; + var direction = _types.Direction.NONE; + if (axis === _types.Axis.Y) { + negative = _types.Direction.BOTTOM; + positive = _types.Direction.TOP; + } + if (key === _types.TraceDirectionKey.NEGATIVE) { + direction = negative; + } + if (key === _types.TraceDirectionKey.POSITIVE) { + direction = positive; + } + return direction; + }; + exports.resolveAxisDirection = resolveAxisDirection; + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateDirectionDelta.js +var require_calculateDirectionDelta = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateDirectionDelta.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateDirectionDelta = calculateDirectionDelta; + var _types = require_types(); + var _common = require_common(); + function calculateDirectionDelta(traceDirections) { + var delta = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + var length = traceDirections.length; + var i = length - 1; + var direction = _types.TraceDirectionKey.NONE; + for (; i >= 0; i--) { + var current = traceDirections[i]; + var currentKey = (0, _common.getDirectionKey)(current); + var currentValue = (0, _common.getDirectionValue)(current[currentKey]); + var prev = traceDirections[i - 1] || {}; + var prevKey = (0, _common.getDirectionKey)(prev); + var prevValue = (0, _common.getDirectionValue)(prev[prevKey]); + var difference = (0, _common.getDifference)(currentValue, prevValue); + if (difference >= delta) { + direction = currentKey; + break; + } else { + direction = prevKey; + } + } + return direction; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateDuration.js +var require_calculateDuration = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateDuration.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateDuration = calculateDuration; + function calculateDuration() { + var prevTime = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0; + var nextTime = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + return prevTime ? nextTime - prevTime : 0; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateMovingPosition.js +var require_calculateMovingPosition = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateMovingPosition.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateMovingPosition = calculateMovingPosition; + function calculateMovingPosition(e) { + if ("changedTouches" in e) { + var touches = e.changedTouches && e.changedTouches[0]; + return { + x: touches && touches.clientX, + y: touches && touches.clientY + }; + } + return { + x: e.clientX, + y: e.clientY + }; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/updateTrace.js +var require_updateTrace = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/updateTrace.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.updateTrace = updateTrace; + function updateTrace(trace, value2) { + var last = trace[trace.length - 1]; + if (last !== value2) { + trace.push(value2); + } + return trace; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateTraceDirections.js +var require_calculateTraceDirections = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateTraceDirections.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateTraceDirections = calculateTraceDirections; + var _types = require_types(); + function _defineProperty(obj, key, value2) { + if (key in obj) { + Object.defineProperty(obj, key, { value: value2, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value2; + } + return obj; + } + function calculateTraceDirections() { + var trace = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []; + var ticks = []; + var positive = _types.TraceDirectionKey.POSITIVE; + var negative = _types.TraceDirectionKey.NEGATIVE; + var i = 0; + var tick2 = []; + var direction = _types.TraceDirectionKey.NONE; + for (; i < trace.length; i++) { + var current = trace[i]; + var prev = trace[i - 1]; + if (tick2.length) { + var currentDirection = current > prev ? positive : negative; + if (direction === _types.TraceDirectionKey.NONE) { + direction = currentDirection; + } + if (currentDirection === direction) { + tick2.push(current); + } else { + ticks.push(_defineProperty({}, direction, tick2.slice())); + tick2 = []; + tick2.push(current); + direction = currentDirection; + } + } else { + if (current !== 0) { + direction = current > 0 ? positive : negative; + } + tick2.push(current); + } + } + if (tick2.length) { + ticks.push(_defineProperty({}, direction, tick2)); + } + return ticks; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/resolveDirection.js +var require_resolveDirection = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/resolveDirection.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.resolveDirection = resolveDirection; + var _calculateDirection = require_calculateDirection(); + var _calculateTraceDirections = require_calculateTraceDirections(); + var _calculateDirectionDelta = require_calculateDirectionDelta(); + var _common = require_common(); + var _types = require_types(); + function resolveDirection(trace) { + var axis = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _types.Axis.X; + var directionDelta = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0; + if (directionDelta) { + var directions = (0, _calculateTraceDirections.calculateTraceDirections)(trace); + var _direction = (0, _calculateDirectionDelta.calculateDirectionDelta)(directions, directionDelta); + return (0, _common.resolveAxisDirection)(axis, _direction); + } + var direction = (0, _calculateDirection.calculateDirection)(trace); + return (0, _common.resolveAxisDirection)(axis, direction); + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateVelocity.js +var require_calculateVelocity = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateVelocity.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateVelocity = calculateVelocity; + function calculateVelocity(x, y, time) { + var magnitude = Math.sqrt(x * x + y * y); + return magnitude / (time || 1); + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculatePosition.js +var require_calculatePosition = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculatePosition.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculatePosition = calculatePosition; + var _updateTrace = require_updateTrace(); + var _resolveDirection = require_resolveDirection(); + var _calculateDuration = require_calculateDuration(); + var _calculateVelocity = require_calculateVelocity(); + var _types = require_types(); + function calculatePosition(state, options) { + var start = state.start, x = state.x, y = state.y, traceX = state.traceX, traceY = state.traceY; + var rotatePosition = options.rotatePosition, directionDelta = options.directionDelta; + var deltaX = rotatePosition.x - x; + var deltaY = y - rotatePosition.y; + var absX = Math.abs(deltaX); + var absY = Math.abs(deltaY); + (0, _updateTrace.updateTrace)(traceX, deltaX); + (0, _updateTrace.updateTrace)(traceY, deltaY); + var directionX = (0, _resolveDirection.resolveDirection)(traceX, _types.Axis.X, directionDelta); + var directionY = (0, _resolveDirection.resolveDirection)(traceY, _types.Axis.Y, directionDelta); + var duration2 = (0, _calculateDuration.calculateDuration)(start, Date.now()); + var velocity = (0, _calculateVelocity.calculateVelocity)(absX, absY, duration2); + return { + absX, + absY, + deltaX, + deltaY, + directionX, + directionY, + duration: duration2, + positionX: rotatePosition.x, + positionY: rotatePosition.y, + velocity + }; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/checkIsMoreThanSingleTouches.js +var require_checkIsMoreThanSingleTouches = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/checkIsMoreThanSingleTouches.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.checkIsMoreThanSingleTouches = void 0; + var checkIsMoreThanSingleTouches = function checkIsMoreThanSingleTouches2(e) { + return Boolean(e.touches && e.touches.length > 1); + }; + exports.checkIsMoreThanSingleTouches = checkIsMoreThanSingleTouches; + } +}); + +// node_modules/vanilla-swipe/lib/utils/createOptions.js +var require_createOptions = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/createOptions.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.createOptions = createOptions; + function createOptions() { + var proxy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + Object.defineProperty(proxy, "passive", { + get: function get() { + this.isPassiveSupported = true; + return true; + }, + enumerable: true + }); + return proxy; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/checkIsPassiveSupported.js +var require_checkIsPassiveSupported = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/checkIsPassiveSupported.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.checkIsPassiveSupported = checkIsPassiveSupported; + exports.noop = void 0; + var _createOptions = require_createOptions(); + function checkIsPassiveSupported(isPassiveSupported) { + if (typeof isPassiveSupported === "boolean") { + return isPassiveSupported; + } + var proxy = { + isPassiveSupported + }; + try { + var options = (0, _createOptions.createOptions)(proxy); + window.addEventListener("checkIsPassiveSupported", noop2, options); + window.removeEventListener("checkIsPassiveSupported", noop2, options); + } catch (err) { + } + return proxy.isPassiveSupported; + } + var noop2 = function noop3() { + }; + exports.noop = noop2; + } +}); + +// node_modules/vanilla-swipe/lib/utils/checkIsTouchEventsSupported.js +var require_checkIsTouchEventsSupported = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/checkIsTouchEventsSupported.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.checkIsTouchEventsSupported = void 0; + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { + return typeof obj2; + } : function(obj2) { + return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }, _typeof(obj); + } + var checkIsTouchEventsSupported = function checkIsTouchEventsSupported2() { + return (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" && ("ontouchstart" in window || Boolean(window.navigator.maxTouchPoints)); + }; + exports.checkIsTouchEventsSupported = checkIsTouchEventsSupported; + } +}); + +// node_modules/vanilla-swipe/lib/utils/getInitialState.js +var require_getInitialState = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/getInitialState.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getInitialState = void 0; + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), true).forEach(function(key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; + } + function _defineProperty(obj, key, value2) { + if (key in obj) { + Object.defineProperty(obj, key, { value: value2, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value2; + } + return obj; + } + var getInitialState = function getInitialState2() { + var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + return _objectSpread({ + x: 0, + y: 0, + start: 0, + isSwiping: false, + traceX: [], + traceY: [] + }, options); + }; + exports.getInitialState = getInitialState; + } +}); + +// node_modules/vanilla-swipe/lib/utils/getInitialProps.js +var require_getInitialProps = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/getInitialProps.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getInitialProps = void 0; + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), true).forEach(function(key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; + } + function _defineProperty(obj, key, value2) { + if (key in obj) { + Object.defineProperty(obj, key, { value: value2, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value2; + } + return obj; + } + var getInitialProps = function getInitialProps2() { + var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + return _objectSpread({ + element: null, + target: null, + delta: 10, + directionDelta: 0, + rotationAngle: 0, + mouseTrackingEnabled: false, + touchTrackingEnabled: true, + preventDefaultTouchmoveEvent: false, + preventTrackingOnMouseleave: false + }, props); + }; + exports.getInitialProps = getInitialProps; + } +}); + +// node_modules/vanilla-swipe/lib/utils/getOptions.js +var require_getOptions = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/getOptions.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOptions = getOptions; + function getOptions() { + var isPassiveSupported = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; + if (isPassiveSupported) { + return { + passive: false + }; + } + return {}; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/rotateByAngle.js +var require_rotateByAngle = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/rotateByAngle.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.rotateByAngle = rotateByAngle; + function rotateByAngle(position) { + var angle = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + if (angle === 0) { + return position; + } + var x = position.x, y = position.y; + var angleInRadians = Math.PI / 180 * angle; + var rotatedX = x * Math.cos(angleInRadians) + y * Math.sin(angleInRadians); + var rotatedY = y * Math.cos(angleInRadians) - x * Math.sin(angleInRadians); + return { + x: rotatedX, + y: rotatedY + }; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/index.js +var require_utils = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + var _calculateDirection = require_calculateDirection(); + Object.keys(_calculateDirection).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateDirection[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateDirection[key]; + } + }); + }); + var _calculateDirectionDelta = require_calculateDirectionDelta(); + Object.keys(_calculateDirectionDelta).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateDirectionDelta[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateDirectionDelta[key]; + } + }); + }); + var _calculateDuration = require_calculateDuration(); + Object.keys(_calculateDuration).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateDuration[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateDuration[key]; + } + }); + }); + var _calculateMovingPosition = require_calculateMovingPosition(); + Object.keys(_calculateMovingPosition).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateMovingPosition[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateMovingPosition[key]; + } + }); + }); + var _calculatePosition = require_calculatePosition(); + Object.keys(_calculatePosition).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculatePosition[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculatePosition[key]; + } + }); + }); + var _calculateTraceDirections = require_calculateTraceDirections(); + Object.keys(_calculateTraceDirections).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateTraceDirections[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateTraceDirections[key]; + } + }); + }); + var _calculateVelocity = require_calculateVelocity(); + Object.keys(_calculateVelocity).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateVelocity[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateVelocity[key]; + } + }); + }); + var _checkIsMoreThanSingleTouches = require_checkIsMoreThanSingleTouches(); + Object.keys(_checkIsMoreThanSingleTouches).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _checkIsMoreThanSingleTouches[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _checkIsMoreThanSingleTouches[key]; + } + }); + }); + var _checkIsPassiveSupported = require_checkIsPassiveSupported(); + Object.keys(_checkIsPassiveSupported).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _checkIsPassiveSupported[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _checkIsPassiveSupported[key]; + } + }); + }); + var _checkIsTouchEventsSupported = require_checkIsTouchEventsSupported(); + Object.keys(_checkIsTouchEventsSupported).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _checkIsTouchEventsSupported[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _checkIsTouchEventsSupported[key]; + } + }); + }); + var _common = require_common(); + Object.keys(_common).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _common[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _common[key]; + } + }); + }); + var _createOptions = require_createOptions(); + Object.keys(_createOptions).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _createOptions[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _createOptions[key]; + } + }); + }); + var _getInitialState = require_getInitialState(); + Object.keys(_getInitialState).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _getInitialState[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _getInitialState[key]; + } + }); + }); + var _getInitialProps = require_getInitialProps(); + Object.keys(_getInitialProps).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _getInitialProps[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _getInitialProps[key]; + } + }); + }); + var _getOptions = require_getOptions(); + Object.keys(_getOptions).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _getOptions[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _getOptions[key]; + } + }); + }); + var _resolveDirection = require_resolveDirection(); + Object.keys(_resolveDirection).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _resolveDirection[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _resolveDirection[key]; + } + }); + }); + var _rotateByAngle = require_rotateByAngle(); + Object.keys(_rotateByAngle).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _rotateByAngle[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _rotateByAngle[key]; + } + }); + }); + var _updateTrace = require_updateTrace(); + Object.keys(_updateTrace).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _updateTrace[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _updateTrace[key]; + } + }); + }); + } +}); + +// node_modules/vanilla-swipe/lib/index.js +var require_lib = __commonJS({ + "node_modules/vanilla-swipe/lib/index.js"(exports) { + "use strict"; + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { + return typeof obj2; + } : function(obj2) { + return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }, _typeof(obj); + } + Object.defineProperty(exports, "__esModule", { + value: true + }); + var _exportNames = {}; + exports["default"] = void 0; + var Utils2 = _interopRequireWildcard(require_utils()); + var _types = require_types(); + Object.keys(_types).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) + return; + if (key in exports && exports[key] === _types[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _types[key]; + } + }); + }); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function _getRequireWildcardCache2(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interopRequireWildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { + return { "default": obj }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj["default"] = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + function _classCallCheck(instance125, Constructor) { + if (!(instance125 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) + _defineProperties(Constructor.prototype, protoProps); + if (staticProps) + _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { writable: false }); + return Constructor; + } + function _defineProperty(obj, key, value2) { + if (key in obj) { + Object.defineProperty(obj, key, { value: value2, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value2; + } + return obj; + } + var VanillaSwipe2 = /* @__PURE__ */ function() { + function VanillaSwipe3(props) { + _classCallCheck(this, VanillaSwipe3); + _defineProperty(this, "state", void 0); + _defineProperty(this, "props", void 0); + this.state = Utils2.getInitialState(); + this.props = Utils2.getInitialProps(props); + this.handleSwipeStart = this.handleSwipeStart.bind(this); + this.handleSwipeMove = this.handleSwipeMove.bind(this); + this.handleSwipeEnd = this.handleSwipeEnd.bind(this); + this.handleMouseDown = this.handleMouseDown.bind(this); + this.handleMouseMove = this.handleMouseMove.bind(this); + this.handleMouseUp = this.handleMouseUp.bind(this); + this.handleMouseLeave = this.handleMouseLeave.bind(this); + } + _createClass(VanillaSwipe3, [{ + key: "init", + value: function init3() { + this.setupTouchListeners(); + this.setupMouseListeners(); + } + }, { + key: "update", + value: function update2(props) { + var prevProps = this.props; + var nextProps = Object.assign({}, prevProps, props); + if (prevProps.element !== nextProps.element || prevProps.target !== nextProps.target) { + this.destroy(); + this.props = nextProps; + this.init(); + return; + } + this.props = nextProps; + if (prevProps.mouseTrackingEnabled !== nextProps.mouseTrackingEnabled || prevProps.preventTrackingOnMouseleave !== nextProps.preventTrackingOnMouseleave) { + this.cleanupMouseListeners(); + nextProps.mouseTrackingEnabled ? this.setupMouseListeners() : this.cleanupMouseListeners(); + } + if (prevProps.touchTrackingEnabled !== nextProps.touchTrackingEnabled) { + this.cleanupTouchListeners(); + nextProps.touchTrackingEnabled ? this.setupTouchListeners() : this.cleanupTouchListeners(); + } + } + }, { + key: "destroy", + value: function destroy() { + this.cleanupMouseListeners(); + this.cleanupTouchListeners(); + this.state = Utils2.getInitialState(); + this.props = Utils2.getInitialProps(); + } + }, { + key: "setupTouchListeners", + value: function setupTouchListeners() { + var _this$props = this.props, element3 = _this$props.element, target = _this$props.target, touchTrackingEnabled = _this$props.touchTrackingEnabled; + if (element3 && touchTrackingEnabled) { + var listener = target || element3; + var isPassiveSupported = Utils2.checkIsPassiveSupported(); + var options = Utils2.getOptions(isPassiveSupported); + listener.addEventListener("touchstart", this.handleSwipeStart, options); + listener.addEventListener("touchmove", this.handleSwipeMove, options); + listener.addEventListener("touchend", this.handleSwipeEnd, options); + } + } + }, { + key: "cleanupTouchListeners", + value: function cleanupTouchListeners() { + var _this$props2 = this.props, element3 = _this$props2.element, target = _this$props2.target; + var listener = target || element3; + if (listener) { + listener.removeEventListener("touchstart", this.handleSwipeStart); + listener.removeEventListener("touchmove", this.handleSwipeMove); + listener.removeEventListener("touchend", this.handleSwipeEnd); + } + } + }, { + key: "setupMouseListeners", + value: function setupMouseListeners() { + var _this$props3 = this.props, element3 = _this$props3.element, mouseTrackingEnabled = _this$props3.mouseTrackingEnabled, preventTrackingOnMouseleave = _this$props3.preventTrackingOnMouseleave; + if (mouseTrackingEnabled && element3) { + element3.addEventListener("mousedown", this.handleMouseDown); + element3.addEventListener("mousemove", this.handleMouseMove); + element3.addEventListener("mouseup", this.handleMouseUp); + if (preventTrackingOnMouseleave) { + element3.addEventListener("mouseleave", this.handleMouseLeave); + } + } + } + }, { + key: "cleanupMouseListeners", + value: function cleanupMouseListeners() { + var element3 = this.props.element; + if (element3) { + element3.removeEventListener("mousedown", this.handleMouseDown); + element3.removeEventListener("mousemove", this.handleMouseMove); + element3.removeEventListener("mouseup", this.handleMouseUp); + element3.removeEventListener("mouseleave", this.handleMouseLeave); + } + } + }, { + key: "getEventData", + value: function getEventData(e) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : { + directionDelta: 0 + }; + var rotationAngle = this.props.rotationAngle; + var directionDelta = options.directionDelta; + var movingPosition = Utils2.calculateMovingPosition(e); + var rotatePosition = Utils2.rotateByAngle(movingPosition, rotationAngle); + return Utils2.calculatePosition(this.state, { + rotatePosition, + directionDelta + }); + } + }, { + key: "handleSwipeStart", + value: function handleSwipeStart(e) { + if (Utils2.checkIsMoreThanSingleTouches(e)) + return; + var rotationAngle = this.props.rotationAngle; + var movingPosition = Utils2.calculateMovingPosition(e); + var _Utils$rotateByAngle = Utils2.rotateByAngle(movingPosition, rotationAngle), x = _Utils$rotateByAngle.x, y = _Utils$rotateByAngle.y; + this.state = Utils2.getInitialState({ + isSwiping: false, + start: Date.now(), + x, + y + }); + } + }, { + key: "handleSwipeMove", + value: function handleSwipeMove(e) { + var _this$state = this.state, x = _this$state.x, y = _this$state.y, isSwiping = _this$state.isSwiping; + if (!x || !y || Utils2.checkIsMoreThanSingleTouches(e)) + return; + var directionDelta = this.props.directionDelta || 0; + var _this$getEventData = this.getEventData(e, { + directionDelta + }), absX = _this$getEventData.absX, absY = _this$getEventData.absY, deltaX = _this$getEventData.deltaX, deltaY = _this$getEventData.deltaY, directionX = _this$getEventData.directionX, directionY = _this$getEventData.directionY, duration2 = _this$getEventData.duration, velocity = _this$getEventData.velocity; + var _this$props4 = this.props, delta = _this$props4.delta, preventDefaultTouchmoveEvent = _this$props4.preventDefaultTouchmoveEvent, onSwipeStart = _this$props4.onSwipeStart, onSwiping = _this$props4.onSwiping; + if (e.cancelable && preventDefaultTouchmoveEvent) + e.preventDefault(); + if (absX < Number(delta) && absY < Number(delta) && !isSwiping) + return; + if (onSwipeStart && !isSwiping) { + onSwipeStart(e, { + deltaX, + deltaY, + absX, + absY, + directionX, + directionY, + duration: duration2, + velocity + }); + } + this.state.isSwiping = true; + if (onSwiping) { + onSwiping(e, { + deltaX, + deltaY, + absX, + absY, + directionX, + directionY, + duration: duration2, + velocity + }); + } + } + }, { + key: "handleSwipeEnd", + value: function handleSwipeEnd(e) { + var _this$props5 = this.props, onSwiped = _this$props5.onSwiped, onTap = _this$props5.onTap; + if (this.state.isSwiping) { + var directionDelta = this.props.directionDelta || 0; + var position = this.getEventData(e, { + directionDelta + }); + onSwiped && onSwiped(e, position); + } else { + var _position = this.getEventData(e); + onTap && onTap(e, _position); + } + this.state = Utils2.getInitialState(); + } + }, { + key: "handleMouseDown", + value: function handleMouseDown(e) { + var target = this.props.target; + if (target) { + if (target === e.target) { + this.handleSwipeStart(e); + } + } else { + this.handleSwipeStart(e); + } + } + }, { + key: "handleMouseMove", + value: function handleMouseMove(e) { + this.handleSwipeMove(e); + } + }, { + key: "handleMouseUp", + value: function handleMouseUp(e) { + var isSwiping = this.state.isSwiping; + var target = this.props.target; + if (target) { + if (target === e.target || isSwiping) { + this.handleSwipeEnd(e); + } + } else { + this.handleSwipeEnd(e); + } + } + }, { + key: "handleMouseLeave", + value: function handleMouseLeave(e) { + var isSwiping = this.state.isSwiping; + if (isSwiping) { + this.handleSwipeEnd(e); + } + } + }], [{ + key: "isTouchEventsSupported", + value: function isTouchEventsSupported() { + return Utils2.checkIsTouchEventsSupported(); + } + }]); + return VanillaSwipe3; + }(); + exports["default"] = VanillaSwipe2; + } +}); + +// node_modules/prismjs/prism.js +var require_prism = __commonJS({ + "node_modules/prismjs/prism.js"(exports, module) { + var _self = typeof window !== "undefined" ? window : typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope ? self : {}; + var Prism2 = function(_self2) { + var lang = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i; + var uniqueId = 0; + var plainTextGrammar = {}; + var _ = { + /** + * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the + * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load + * additional languages or plugins yourself. + * + * By setting this value to `true`, Prism will not automatically highlight all code elements on the page. + * + * You obviously have to change this value before the automatic highlighting started. To do this, you can add an + * empty Prism object into the global scope before loading the Prism script like this: + * + * ```js + * window.Prism = window.Prism || {}; + * Prism.manual = true; + * // add a new - + diff --git a/docs/ui.css b/docs/ui.css index 4066bf6a..b1a2046a 100644 --- a/docs/ui.css +++ b/docs/ui.css @@ -1 +1,2749 @@ -:root{--ui-border-radius:0.375rem;--ui-border-radius-m:0.6877rem;--ui-border-radius-l:1rem;--ui-border-radius-xl:5rem;--ui-margin:0.375rem;--ui-margin-xs:0.125rem;--ui-margin-s:0.25rem;--ui-margin-m:0.5rem;--ui-margin-l:1rem;--ui-animation-speed:.25s;--ui-button-height:2.25rem;--ui-font-system:system-ui,'Segoe UI','Roboto','Helvetica','Arial','sans-serif','Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';--ui-font-xs:0.875rem;--ui-font-s:0.9375rem;--ui-font-m:1rem;--ui-font-l:1.0625rem;--ui-font-xl:1.375rem;--ui-shadow-focus:0 0 2px 1px var(--ui-color-accent);--ui-shadow-danger:0 0 2px 1px var(--ui-color-danger);--ui-shadow-small:0 0 0 0.5px #fff4,0 3px 10px #0006;--ui-shadow-large:0 0 0 1px #0003,0 5px 20px #000a;--ui-shadow-fancy:0 0 0 0.5px #111,0 1px 5px rgb(0 0 0 / 30%),0 4px 10px rgb(0 0 0 / 10%),0 10px 25px rgb(0 0 0 / 8%);--ui-z-index-elevated:9;--ui-z-index-popup:999}body{font-weight:300;font-size:100%;font-family:var(--ui-font-system),sans-serif;box-sizing:border-box}body *{box-sizing:inherit}.icon-tabler{width:1.5rem;height:1.5rem}.icon-tabler-dots-vertical{margin-left:-1px}.flex-spacer{flex:1}.icon-tabler-alert-triangle{transform:translateY(1px)}.icon-tabler-logout{transform:translateX(3px)}.mobile .prevent-scrolling-on-focus:focus{animation:prevent-scrolling-on-focus 10ms}@keyframes prevent-scrolling-on-focus{0%{opacity:0}100%{opacity:1}}.theme-dark,:root{color-scheme:dark;--ui-color-accent:#bb7a00;--ui-color-accent-semi:#bb7a0066;--ui-color-highlight:#1859a3;--ui-color-highlight-semi:#1859a366;--ui-color-highlight-1:#1e4572;--ui-color-secondary:#5a5956;--ui-color-secondary-semi:#5a595666;--ui-color-info:#30506a;--ui-color-info-semi:#30506a99;--ui-color-success:#33624d;--ui-color-success-semi:#33624d99;--ui-color-warning:#795001;--ui-color-warning-semi:#79500199;--ui-color-danger:#943737;--ui-color-danger-semi:#94373799;--ui-color-border:#1b1b1b;--ui-color-border-1:#131313;--ui-color-border-2:#0c0c0c;--ui-color-background:#2f2f2f;--ui-color-background-semi:#2f2f2f66;--ui-color-background-input:#222;--ui-color-background-1:#535353;--ui-color-background-2:#1a1a1a;--ui-color-text:#fff;--ui-color-text-semi:#fff6;--ui-color-text-1:#bbb;--ui-color-text-2:#888;--ui-popup-border:1px solid #fff3;--ui-popup-background:var(--ui-color-background);--ui-shadow-button:0 1px 0 #000c;--ui-shadow-tooltip:0 0 0 1px #000,0 0 5px #0006}.theme-light{color-scheme:light;--ui-color-accent:#b37400;--ui-color-accent-semi:#b3740066;--ui-color-highlight:#8ec6ff;--ui-color-highlight-semi:#8ec6ff66;--ui-color-highlight-1:#6ba0de;--ui-color-secondary:#c0beb4;--ui-color-secondary-semi:#c0beb466;--ui-color-info:#bbd3f0;--ui-color-info-semi:#bbd3f099;--ui-color-success:#7bd7ae;--ui-color-success-semi:#7bd7ae99;--ui-color-warning:#eec64e;--ui-color-warning-semi:#eec64e99;--ui-color-danger:#eb6e6f;--ui-color-danger-semi:#eb6e6f99;--ui-color-border:#bbb;--ui-color-border-1:#aaa;--ui-color-border-2:#999;--ui-color-background:#eee;--ui-color-background-semi:#eee6;--ui-color-background-input:#c2c2c2;--ui-color-background-1:#f0f0f0;--ui-color-background-2:#ccc;--ui-color-text:#000;--ui-color-text-semi:#0006;--ui-color-text-1:#222;--ui-color-text-2:#666;--ui-popup-border:1px solid #ccc;--ui-popup-background:var(--ui-color-background);--ui-shadow-button:0 1px 0 #000c;--ui-shadow-tooltip:0 0 1px #0002,0 0 5px #0006}.button-link{background:0 0;border:none;cursor:pointer;min-width:0}.button.button-link{margin:calc(var(--ui-margin) * -1);padding:var(--ui-margin);vertical-align:baseline;text-decoration:underline}.button.button-link:focus-visible,.button.button-link:hover{text-decoration:underline;text-underline-offset:0.2rem}.button-link.info:focus-visible,.button-link.info:hover{text-decoration-color:var(--ui-color-info)}.button-link.success:focus-visible,.button-link.success:hover{text-decoration-color:var(--ui-color-success)}.button-link.warning:focus-visible,.button-link.warning:hover{text-decoration-color:var(--ui-color-warning)}.button-link.danger:focus-visible,.button-link.danger:hover,.button-link.error:focus-visible,.button-link.error:hover{text-decoration-color:var(--ui-color-danger)}.button-normal{background:var(--ui-color-secondary);border:.5px solid #0006;border-bottom-color:#000c;box-shadow:var(--ui-shadow-button);min-width:calc(var(--ui-button-size) * 4);min-height:calc(var(--ui-button-size) * 2)}.button-normal.info{background:var(--ui-color-info)}.button-normal.success{background:var(--ui-color-success)}.button-normal.warning{background:var(--ui-color-warning)}.button-normal.danger,.button-normal.error{background:var(--ui-color-danger)}.button-outline{background:0 0;border:2px solid var(--ui-color-secondary);min-width:calc(var(--ui-button-size) * 4);min-height:calc(var(--ui-button-size) * 2)}.button-outline:focus-visible,.button-outline:hover{background-color:var(--ui-color-secondary-semi)}.button-outline.info{border-color:var(--ui-color-info)}.button-outline.info:focus-visible,.button-outline.info:hover{background-color:var(--ui-color-info-semi)}.button-outline.success{border-color:var(--ui-color-success)}.button-outline.success:focus-visible,.button-outline.success:hover{background-color:var(--ui-color-success-semi)}.button-outline.warning{border-color:var(--ui-color-warning)}.button-outline.warning:focus-visible,.button-outline.warning:hover{background-color:var(--ui-color-warning-semi)}.button-outline.danger,.button-outline.error{border-color:var(--ui-color-danger)}.button-outline.danger:focus-visible,.button-outline.danger:hover,.button-outline.error:focus-visible,.button-outline.error:hover{background-color:var(--ui-color-danger-semi)}.button-text{background:0 0;border:none;min-width:calc(var(--ui-button-size) * 4);min-height:calc(var(--ui-button-size) * 2);box-shadow:none}.button-text:focus-visible,.button-text:hover{background-color:var(--ui-color-secondary)}.button-text.info:focus-visible,.button-text.info:hover{background-color:var(--ui-color-info)}.button-text.success:focus-visible,.button-text.success:hover{background-color:var(--ui-color-success)}.button-text.warning:focus-visible,.button-text.warning:hover{background-color:var(--ui-color-warning)}.button-text.danger:focus-visible,.button-text.danger:hover,.button-text.error:focus-visible,.button-text.error:hover{background-color:var(--ui-color-danger)}button{-ms-touch-action:manipulation;touch-action:manipulation}.button{--ui-button-size:1rem;font:inherit;line-height:1.4;font-weight:400;font-size:var(--ui-button-size);display:inline-flex;align-items:center;justify-content:center;gap:var(--ui-margin-m);min-width:var(--ui-button-height);min-height:var(--ui-button-height);height:auto;margin:0;padding:0 var(--ui-margin-l);color:var(--ui-color-text);-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;border-radius:var(--ui-border-radius);text-decoration:none}.button:hover{text-decoration:none}.button:focus-visible{border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus);outline:1px solid transparent}.button[disabled]{pointer-events:none;opacity:.6;box-shadow:none}.button svg{min-height:calc(var(--ui-button-size) * 1.25);max-height:calc(var(--ui-button-size) * 1.25);height:calc(var(--ui-button-size) * 1.25);min-width:var(--ui-button-size);width:auto;pointer-events:none}.button:not(.button-has-text){padding:0 var(--ui-margin-m)}.button:not(.button-has-text) svg{min-height:calc(var(--ui-button-size) * 1.4)}.button.round{padding:var(--ui-margin);border-radius:var(--ui-border-radius-xl)}.button.round:not(.button-has-text){aspect-ratio:1/1}.button-has-text.round{padding-inline:var(--ui-margin-l)}.button.touching,.button:active{outline:1px solid transparent;transform:translateY(1px);filter:brightness(.85)}.button:not(.push-button).touching,.button:not(.push-button):active{box-shadow:none}.button-group{border-radius:var(--ui-border-radius);max-width:100%;overflow:hidden}.button-group-scroller{width:100%;overflow:auto hidden;overscroll-behavior-x:contain;scrollbar-width:none;scrollbar-gutter:none;z-index:0;border-radius:var(--ui-border-radius)}.button-group-scroller::-webkit-scrollbar{width:0;height:0}.button-group-inner{padding:0 0 2px;display:inline-flex;flex-flow:row;align-items:center;justify-content:stretch;position:relative;z-index:1;border-radius:var(--ui-border-radius);background-color:var(--ui-color-background)}.button-group-inner .button{flex-shrink:0;flex-grow:10;border-radius:0;position:relative;overflow:hidden}.button-group-inner .button:focus{z-index:2}.button-group .button-normal[disabled]{box-shadow:var(--ui-shadow-button)}.button-group .button:first-of-type{border-top-left-radius:var(--ui-border-radius);border-bottom-left-radius:var(--ui-border-radius)}.button-group .button:last-of-type{border-top-right-radius:var(--ui-border-radius);border-bottom-right-radius:var(--ui-border-radius)}.button-group .button-outline:not(:first-of-type){margin-left:-2px}.button-group.round{border-radius:var(--ui-border-radius-xl)}.button-group.round .button:first-of-type{border-top-left-radius:var(--ui-border-radius-xl);border-bottom-left-radius:var(--ui-border-radius-xl)}.button-group.round .button:last-of-type{border-top-right-radius:var(--ui-border-radius-xl);border-bottom-right-radius:var(--ui-border-radius-xl)}.button-group .button:not(.button-has-text):first-of-type{padding-left:9px}.button-group .button:not(.button-has-text):last-of-type{padding-right:9px}.button-group.round .button:not(.button-has-text):first-of-type{padding-right:6px;padding-left:11px}.button-group.round .button:not(.button-has-text):last-of-type{padding-left:6px;padding-right:11px}.has-dialog{position:fixed;width:100%;inset:0;overflow:hidden}.dialog-backdrop{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:calc(var(--ui-z-index-popup) - 1);background-color:rgba(0 0 0 / 0);transition:all var(--ui-animation-speed) ease-out;transform:translateZ(1px)}.dialog-backdrop.opened{background-color:rgba(0 0 0 / .6)}.dialog{--ui-dialog-border-radius:var(--ui-border-radius-m);--ui-dialog-inner-border-radius:calc(var(--ui-dialog-border-radius) - 1px);opacity:0;transform:scale(.8);transition:opacity var(--ui-animation-speed) ease-out,transform var(--ui-animation-speed) ease-out;max-height:90vh;min-width:15rem;max-width:95vw;color:var(--ui-color-text);border-radius:var(--ui-dialog-border-radius);background:var(--ui-popup-background);border:var(--ui-popup-border);box-shadow:var(--ui-shadow-large);display:flex;flex-flow:column;align-items:stretch;justify-content:stretch}.opened .dialog{opacity:1;transform:scale(1)}.dialog-footer,.dialog-header{background:var(--ui-color-background-input);padding:.7rem 1rem}.dialog-header{text-align:center;font-size:var(--ui-font-xl);font-weight:300;margin:0;border-bottom:.5px solid var(--ui-color-border)}.dialog-content{margin:0;padding:1rem;min-width:200px;flex:1;overflow-y:auto;overscroll-behavior-y:contain;outline:1px solid transparent;min-height:3rem}.dialog-content:focus{outline:0}.dialog-content:focus-visible{border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus) inset}.dialog-footer{border-top:.5px solid var(--ui-color-border);border-bottom-left-radius:var(--ui-dialog-inner-border-radius);border-bottom-right-radius:var(--ui-dialog-inner-border-radius)}.dialog-footer [slot=footer]{width:100%;display:flex;align-items:center;justify-content:center;flex-flow:row-reverse;gap:.5rem}.dialog-footer .button-has-text{min-width:9ch}.dialog-header,.dialog.no-title .dialog-content{border-top-left-radius:var(--ui-dialog-inner-border-radius);border-top-right-radius:var(--ui-dialog-inner-border-radius)}.dialog-header:empty{display:none}.mobile .dialog-backdrop .dialog{min-height:0;min-width:0;max-height:100%;max-width:100%;box-shadow:none}@supports ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.dialog-backdrop.opened{-webkit-backdrop-filter:contrast(0.8) grayscale(0.5) brightness(0.5) blur(1px);backdrop-filter:contrast(0.8) grayscale(0.5) brightness(0.5) blur(1px)}}.drawer{position:fixed;background-color:var(--ui-popup-background);border-left:var(--ui-popup-border);top:0;right:0;bottom:0;width:24rem;min-height:20rem;box-shadow:var(--ui-shadow-large);z-index:calc(var(--ui-z-index-popup) - 2);color:var(--ui-color-text);padding:0;overflow-y:auto;overscroll-behavior-y:contain;transform:translateZ(1px)}.drawer:focus{outline:0}.drawer-header{position:sticky;position:-webkit-sticky;background-color:inherit;top:0;width:100%;margin:0 0 1rem;padding:0 1rem 0 1.4rem;display:flex;align-items:center;justify-content:space-between}.drawer-header h2{margin:0;padding:.5rem 0}.drawer-content{padding:0 1.4rem}.grid-title{font-size:1.4rem;font-weight:300;margin:0 0 1px;padding:.5rem 1rem;background:var(--ui-color-background-input);border-bottom:1px solid var(--ui-color-border);box-shadow:0 .5px 0 var(--ui-color-background-1);position:sticky;top:0;z-index:1}.grid{-webkit-user-select:none;user-select:none;cursor:default}.grid table{table-layout:fixed;position:sticky;top:0;z-index:2}.grid-item{content-visibility:auto}.grid .column-check{width:3em;padding:0 .5em}.grid .column-check .checkbox{pointer-events:none}.grid .column-check .checkbox input{border-color:var(--ui-color-background-1)}.grid .column-date{width:110px}.grid .column-number{width:110px}.grid thead{top:-2px}.grid thead th{padding-top:.75em;padding-bottom:.75em}.grid tbody{background-color:var(--ui-color-background)}.grid tbody td{padding:.3rem .5rem}.grid tfoot{bottom:-2px}.grid tfoot td{padding:.75rem .5rem}.grid tfoot .button{--button-size:0.9em;font-size:.9em;margin:0}.grid td:not(.column-check){white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}.grid .cell-aligner{width:100%;height:100%;display:flex;align-items:center;gap:.5em}.grid .td-number,.grid .th-number{text-align:right}.grid-sortable thead th{cursor:pointer}.grid-sortable thead th span:hover{text-decoration:underline}.grid-sortable thead th .cell-aligner{min-height:20px}.grid-sortable thead th .cell-aligner span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.grid-sortable thead th svg{width:20px;height:20px;color:var(--ui-color-text-2)}.grid-sortable .th-sortable:focus-visible{outline:1px solid var(--ui-color-accent);outline-offset:-1px}.info-bar{width:100%;display:flex;align-items:flex-start;justify-content:flex-start;gap:.5rem;padding:.4rem .6rem .4rem .3rem;margin:0 0 .75rem;border-radius:var(--ui-border-radius);border-width:1px;border-style:solid}.info-bar p{margin:0;font-size:var(--ui-font-s);line-height:1.5rem}.info-bar .icon{flex-shrink:0}.info-bar-error{background-color:var(--ui-color-danger-semi);border-color:var(--ui-color-danger)}.info-bar-info{background-color:var(--ui-color-info-semi);border-color:var(--ui-color-info)}.info-bar-success{background-color:var(--ui-color-success-semi);border-color:var(--ui-color-success)}.info-bar-warning{background-color:var(--ui-color-warning-semi);border-color:var(--ui-color-warning)}input,label,select,textarea{-ms-touch-action:manipulation;touch-action:manipulation}.theme-dark input{color-scheme:dark}.theme-light input{color-scheme:light}input::placeholder,textarea::placeholder{color:var(--ui-color-text-1);font-style:italic}:where(input:not([type=radio],[type=checkbox])){font:inherit;height:calc(var(--ui-button-height) - 2px);border:1px solid transparent;line-height:1;color:var(--ui-color-text);background-color:var(--ui-color-background-input);border-radius:var(--ui-border-radius);padding:0 var(--ui-margin-m);width:25ch}:where(input:focus){outline:0;border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus)}:where(input:invalid){border-color:var(--ui-color-danger);box-shadow:var(--ui-shadow-danger)}input[type=color]{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;padding:0;cursor:pointer}:where(input:disabled){opacity:.75;cursor:default}.check-and-radio input{appearance:none;width:1.4rem;height:1.4rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.3em;background:var(--ui-color-background-input);border:1px solid var(--ui-color-text-2);color:var(--ui-color-text-1);font:inherit;flex-shrink:0;-ms-touch-action:manipulation;touch-action:manipulation}.check-and-radio input::after{content:" ";display:block;opacity:0;font-size:var(--ui-font-m);line-height:1;align-self:center;color:inherit;margin:0;transition:opacity calc(var(--ui-animation-speed) / 2) ease-out}.check-and-radio input:checked::after{opacity:1}.input{width:25ch;vertical-align:middle}.input .input-inner{display:flex;flex-flow:column;align-items:stretch;justify-content:stretch;border-radius:var(--ui-border-radius);background:var(--ui-color-background-input);border:1px solid var(--ui-color-border)}.button-toggle.input.label-on-the-left,.input.label-on-the-left,.radio.label-on-the-left,.range.label-on-the-left,.textarea.label-on-the-left,.toggle.label-on-the-left{display:inline-flex;flex-flow:row;align-items:center;width:100%;gap:1rem}.label-on-the-left .input-inner,.label-on-the-left .range-inner{flex:1}.input-inner:focus-within,.input-inner:has(:active):not(.disabled){border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus)}.input,.input input:disabled,.input select:disabled,.range input:disabled,.textarea textarea:disabled{opacity:1;color:var(--ui-color-text)}.input .input-inner:has(:disabled),.range .range-inner:has(:disabled),.textarea .textarea-inner:has(:disabled){opacity:.7}.input input:not([type=radio]){width:100%;border:none}.input input:not([type=radio]):focus,.input input:not([type=radio]):invalid{box-shadow:none;border:none}.input-row{width:100%;display:flex;flex-flow:row;align-items:center;justify-content:space-between;position:relative;border-radius:inherit}.input-row>.button,.input-row>.icon{position:absolute;height:100%;z-index:1}.input-row>.button{color:var(--ui-color-text-1);right:2px}.input-row>.icon{color:var(--ui-color-text-2);left:.3rem;width:1.5rem;pointer-events:none}.menu{position:absolute;padding:.25rem;margin:0;display:flex;width:auto;flex-flow:column;align-items:stretch;list-style:none;overflow:hidden auto;cursor:default;z-index:var(--ui-z-index-popup);max-height:calc(100vh - 4px);-webkit-user-select:none;user-select:none;overscroll-behavior-y:contain;color:var(--ui-color-text);border:var(--ui-popup-border);border-radius:calc(var(--ui-border-radius) + 2px);background:var(--ui-popup-background);box-shadow:var(--ui-shadow-fancy);transform:translateZ(1px)}.menu:focus{outline:0}.menu-item{font:inherit;font-size:var(--ui-font-s);align-items:center;border-radius:var(--ui-border-radius);color:inherit;background:0 0;border:none;display:flex;flex-shrink:0;letter-spacing:.1px;justify-content:space-between;margin:0;overflow:hidden;padding:.5rem .9rem;position:relative;text-align:left;white-space:nowrap;width:100%}.menu-item-shortcut{margin:-.1rem 0 -.1rem auto;letter-spacing:.1rem;line-height:1.35;opacity:.5}.menu-item-shortcut:empty{visibility:hidden}.menu-item.disabled{pointer-events:none;opacity:.6}.menu-item:focus{background-color:var(--ui-color-highlight);outline:1px solid transparent}.menu-item:focus.success{background-color:var(--ui-color-success)}.menu-item:focus.warning{background-color:var(--ui-color-warning)}.menu-item:focus.danger{background-color:var(--ui-color-danger)}.menu-item:focus .menu-item-shortcut{opacity:1}.menu-item svg{width:1.1rem;height:1.1rem;margin:0 .5rem 0 0}.menu-item-content{display:flex;min-width:0;align-items:center;justify-content:space-between;margin-right:1rem}.menu-item-text{overflow:hidden;text-overflow:ellipsis;line-height:1.35}.menu-separator{height:0;width:auto;padding:0;margin:var(--ui-margin) .8rem;border-bottom:var(--ui-popup-border)}@supports ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.menu{background-color:var(--ui-color-background-semi);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px)}}.message-box .dialog-content{display:flex;flex-flow:row;gap:1rem;font-size:var(--ui-font-l);padding:1rem}.message-box .dialog-content .message{display:flex;align-items:center;min-height:fit-content}.message-box .dialog-content .message-content{margin:0;line-height:1.5}.message-box .dialog-content .icon,.message-box .dialog-content svg{height:3rem}.message-box .dialog-content svg:empty{width:0}.message-box .dialog-content:has(svg:empty){gap:0}.message-box .dialog-content:has(svg:empty) .message{flex:1;justify-content:center}.message-box .dialog-content .icon{width:3rem;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;position:sticky;top:0}.message-info .dialog-content{background-color:var(--ui-color-info-semi)}.message-warning .dialog-content{background-color:var(--ui-color-warning-semi)}.message-error .dialog-content{background-color:var(--ui-color-danger-semi)}.message-success .dialog-content{background-color:var(--ui-color-success-semi)}.panel{overflow:hidden;will-change:height;position:relative;border:2px solid var(--ui-color-border);background:var(--ui-color-background-2);margin-bottom:1rem}.panel details{margin:1px}.panel-header{color:var(--ui-color-text);text-align:left;border:none;display:flex;align-items:center;justify-content:space-between;font-weight:300;font-size:var(--ui-font-m);padding:0 .6rem 0 1rem;height:2.5rem;line-height:1;-webkit-user-select:none;user-select:none}.collapsible .panel-header{cursor:pointer}.panel-header::-webkit-details-marker{display:none}.panel-content{background:var(--ui-color-background);padding:1rem}.panel-content>*{opacity:0;transition:opacity var(--ui-animation-speed) ease-out}.panel.expanded .panel-content>*{opacity:1}.panel .chevron{height:1.2rem;transform:rotate(0);transition:transform var(--ui-animation-speed) ease-out}.panel .chevron svg{width:1.2rem;height:1.2rem}.panel.expanded .chevron{transform:rotate(90deg)}.panel.round{border-radius:var(--ui-border-radius)}.panel.round .panel-content{border-radius:calc(var(--ui-border-radius) - 2px)}.panel.disabled{opacity:.5}.panel-header:focus{outline:0}.panel:has(.panel-header:focus-visible){border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus);z-index:2}.panel.info{border-color:var(--ui-color-info);background:var(--ui-color-info-semi)}.panel.success{border-color:var(--ui-color-success);background:var(--ui-color-success-semi)}.panel.warning{border-color:var(--ui-color-warning);background:var(--ui-color-warning-semi)}.panel.danger{border-color:var(--ui-color-danger);background:var(--ui-color-danger-semi)}.popover-plate{--popover-tip-size:14px;--popover-color:var(--ui-popup-background);--popover-border:var(--ui-popup-border);--tip-offset:50%;position:absolute;transform:translateZ(1px);z-index:var(--ui-z-index-popup)}.popover-plate.opening{opacity:0}.popover{position:relative;border-radius:var(--ui-border-radius-m);box-shadow:var(--ui-shadow-tooltip)}.popover-plate.hide-tip .popover{box-shadow:var(--ui-shadow-fancy)}.popover-plate:not(.hide-tip) .popover-content::before,.popover-plate:not(.hide-tip) .popover::before{content:'';position:absolute;display:block;width:var(--popover-tip-size);height:var(--popover-tip-size);transform:rotate(45deg) skew(8deg,8deg);left:var(--tip-offset);margin-left:calc(var(--popover-tip-size)/ -2)}.popover-plate:not(.hide-tip) .popover::before{box-shadow:var(--ui-shadow-tooltip);background-color:var(--popover-color);border:var(--popover-border);border-width:1.5px;margin-left:calc(var(--popover-tip-size)/ -2 - .5px)}.popover-content{padding:1rem;text-align:center;position:relative;border-radius:inherit;z-index:1;background-color:var(--popover-color);border:var(--popover-border)}.popover-content>*{position:relative}.popover-plate:not(.hide-tip) .popover-content::before{background-color:inherit;z-index:-1}.popover-content:focus,.popover-plate .popover:focus,.popover-plate:focus{outline:0}.popover-top:not(.hide-tip){padding-bottom:var(--popover-tip-size)}.popover-top:not(.hide-tip) .popover::before{border-radius:0 0 3px;bottom:calc(var(--popover-tip-size)/ -2)}.popover-top:not(.hide-tip) .popover-content::before{border-radius:0 0 2px;bottom:calc(var(--popover-tip-size)/ -2)}.popover-bottom:not(.hide-tip){padding-top:var(--popover-tip-size)}.popover-bottom:not(.hide-tip) .popover::before{border-radius:3px 0 0;top:calc(var(--popover-tip-size)/ -2)}.popover-bottom:not(.hide-tip) .popover-content::before{border-radius:2px 0 0;top:calc(var(--popover-tip-size)/ -2)}.theme-light .popover-plate{--popover-color:#fff}@supports ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.popover-plate.hide-tip .popover-content{background-color:var(--ui-color-background-semi);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px)}}.push-button.touching,.push-button:active,.push-button[aria-pressed=true]{filter:brightness(.85) contrast(1.1);transform:translateY(1px);box-shadow:0 1px 0 rgb(0 0 0/.8) inset}.push-button[aria-pressed=true]:focus-visible{box-shadow:0 1px 0 rgb(0 0 0/.8) inset,var(--ui-shadow-focus)}.push-button[aria-pressed=true].button-outline{background-color:var(--ui-color-secondary-semi)}.push-button[aria-pressed=true].button-outline.info{background-color:var(--ui-color-info-semi)}.push-button[aria-pressed=true].button-outline.success{background-color:var(--ui-color-success-semi)}.push-button[aria-pressed=true].button-outline.warning{background-color:var(--ui-color-warning-semi)}.push-button[aria-pressed=true].button-outline.danger{background-color:var(--ui-color-danger-semi)}.push-button.button-outline.touching,.push-button.button-outline:active,.push-button.button-outline[aria-pressed=true]{box-shadow:none}.splitter{position:absolute;height:100%;width:16px;z-index:90;cursor:ew-resize}.splitter::after{content:" ";display:block;width:6px;height:100%;margin:0 auto}.splitter.vertical{width:100%;height:16px;cursor:ns-resize}.splitter.vertical::after{width:100%;height:6px;margin:auto 0}.splitter.is-dragging::after,.splitter:hover::after{background-color:var(--ui-color-background-1)}.table{width:100%;max-height:100%;overflow:auto;overscroll-behavior-y:contain;position:relative;border:2px solid var(--ui-color-border)}.table table{border-spacing:0;width:100%;table-layout:fixed}.table.round{border-radius:var(--ui-border-radius)}.table.selectable{cursor:default;-webkit-user-select:none;user-select:none}.table tfoot,.table thead{position:sticky;z-index:2}.table thead{top:0}.table tfoot{bottom:0}.table tfoot td,.table thead th{padding:var(--ui-margin-m);font-weight:400;text-align:left;vertical-align:middle;background:var(--ui-color-background-input)}.table tbody:focus,.table tbody:focus tr,.table tr:focus,.table tr:focus-within{outline:1px solid transparent;background-color:var(--ui-color-highlight-1)}.table tbody td{padding:var(--ui-margin) var(--ui-margin-m) calc(var(--ui-margin) + 1px);border-bottom:1px solid var(--ui-color-border);vertical-align:middle;line-height:1.5rem}.table td:first-child,.table th:first-child{padding-left:var(--ui-margin-l)}.table td:last-child,.table th:last-child{padding-right:var(--ui-margin-l)}.table tbody:last-of-type tr:last-child td{border-bottom:none}.ui-tag{border:1px solid var(--ui-color-border);background:var(--ui-color-secondary);border-radius:var(--ui-border-radius);padding:.4rem .7rem;display:inline-flex;align-items:center;gap:.2rem;height:2rem;cursor:default;color:var(--ui-color-text);-webkit-user-select:none;user-select:none}.ui-tag.clickable{touch-action:manipulation;cursor:pointer}.ui-tag.clickable:not(.disabled):active{transform:translateY(1px);filter:brightness(.85)}.ui-tag .icon{width:1rem;height:1rem;margin-left:-4px;transform:translateZ(1px)}.ui-tag:focus-visible{border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus);outline:1px solid transparent}.ui-tag .ui-tag-label{padding-bottom:2px}.ui-tag.dark{color:#fff}.ui-tag.light{color:#000}.ui-tag.disabled{opacity:.5}.ui-tag.round{border-radius:var(--ui-border-radius-xl)}.ui-tag.info{background-color:var(--ui-color-info)}.ui-tag.success{background-color:var(--ui-color-success)}.ui-tag.danger{background-color:var(--ui-color-danger)}.ui-tag.warning{background-color:var(--ui-color-warning)}.ui-tag.danger,.ui-tag.info,.ui-tag.success,.ui-tag.warning{color:var(--ui-color-text)}.tooltip-plate{--popover-tip-size:10px;--popover-color:#292929}.tooltip{border-radius:5px;max-width:75vw}.tooltip-content{padding:.5rem .7rem}.info .tooltip{--popover-color:var(--ui-color-info)}.success .tooltip{--popover-color:var(--ui-color-success)}.danger .tooltip{--popover-color:var(--ui-color-danger)}.warning .tooltip{--popover-color:var(--ui-color-warning)}.tree,.tree ul{padding:0;margin:0;list-style:none}.tree ul li,.tree>li{display:block;width:100%;padding:0;margin:0}.tree{display:flex;flex-flow:column;align-items:stretch;overflow:hidden;position:relative;margin:0;padding:.3rem;border-radius:var(--ui-border-radius)}.tree:focus{outline:0}.tree:focus-visible{box-shadow:0 0 0 1px var(--ui-color-accent),var(--ui-shadow-focus)}.tree-node{cursor:pointer;display:flex;align-items:center;border-radius:var(--ui-border-radius);padding:0 .5rem;height:var(--ui-button-height);-ms-touch-action:manipulation;touch-action:manipulation}.tree-node.selected{background-color:var(--ui-color-highlight-1)}.tree-node:hover{background-color:var(--ui-color-highlight)}.tree-icon{display:inline-block;width:1.5rem;height:1.5rem;margin-right:.5rem;background-color:var(--ui-color-text-2);-webkit-mask-size:1.5rem;-webkit-mask-repeat:no-repeat;-webkit-mask-position:0 center;mask-size:1.5rem;mask-repeat:no-repeat;mask-position:0 center}.tree-label{line-height:2}.tree-indent{display:block;width:.8rem;margin-right:1rem;height:100%;border-right:1px solid transparent}.tree .tree-indent{border-right-color:var(--ui-color-border-1)}.tree-file-icon{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M14 3v4a1 1 0 0 0 1 1h4' /%3E%3Cpath d='M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z' /%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M14 3v4a1 1 0 0 0 1 1h4' /%3E%3Cpath d='M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z' /%3E%3C/svg%3E")}.tree-folder-icon{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2' /%3E%3Cline x1='12' y1='10' x2='12' y2='16' /%3E%3Cline x1='9' y1='13' x2='15' y2='13' /%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2' /%3E%3Cline x1='12' y1='10' x2='12' y2='16' /%3E%3Cline x1='9' y1='13' x2='15' y2='13' /%3E%3C/svg%3E")}.expanded .tree-folder-icon{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2' /%3E%3Cline x1='9' y1='13' x2='15' y2='13' /%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2' /%3E%3Cline x1='9' y1='13' x2='15' y2='13' /%3E%3C/svg%3E")}.button-toggle.input{width:min-content;max-width:100%;padding:0;flex-flow:column;align-items:flex-start;justify-content:flex-start;border-radius:calc(var(--ui-border-radius) + 1px)}.button-toggle .input-inner{width:100%;overflow:hidden;border-radius:calc(var(--ui-border-radius) + 1px)}.button-toggle .input-scroller{width:100%;border-radius:var(--ui-border-radius);background-color:var(--ui-color-background-input);overflow:auto hidden;overscroll-behavior-x:contain;scrollbar-width:none}.button-toggle .input-scroller::-webkit-scrollbar{width:0;height:0}.button-toggle .input-row{min-width:100%;width:min-content}.button-toggle .input-row .button{position:static;color:var(--ui-color-text);box-shadow:none;min-height:calc(var(--ui-button-height) - 2px);background:var(--ui-color-background-input);border:none;border-radius:0;flex:1;border-left:1px solid var(--ui-color-border);min-width:min-content}.button-toggle .button:has(:checked){background-color:var(--ui-color-highlight)}.button-toggle .input-row .button:first-child{border-left:none;border-top-left-radius:var(--ui-border-radius);border-bottom-left-radius:var(--ui-border-radius)}.button-toggle .input-row .button:last-child{border-top-right-radius:var(--ui-border-radius);border-bottom-right-radius:var(--ui-border-radius)}.button-toggle .button input{position:absolute;top:-100px;opacity:0;pointer-events:none}.button-toggle.round{border-radius:var(--ui-border-radius-xl)}.button-toggle.round:not(.has-error) .input-inner{border-radius:var(--ui-border-radius-xl)}.button-toggle.round .input-row .button:first-child{border-top-left-radius:var(--ui-border-radius-xl);border-bottom-left-radius:var(--ui-border-radius-xl)}.button-toggle.round .input-row .button:last-child{border-top-right-radius:var(--ui-border-radius-xl);border-bottom-right-radius:var(--ui-border-radius-xl)}.checkbox{display:inline-flex;flex-flow:column;align-items:stretch;justify-content:flex-start;gap:.5rem}.checkbox-row{display:inline-flex;align-items:center;justify-content:flex-start;gap:.5rem}.checkbox input:focus{border-color:var(--ui-color-accent)}.checkbox input::after{content:"✕";font-family:Arial,Helvetica,sans-serif;line-height:1.1}.checkbox.indeterminate input::after{content:" ";opacity:1;background:var(--ui-color-text-1);width:65%;height:65%;border-radius:.2rem}.checkbox input:checked::after{opacity:1}.checkbox.disabled{opacity:.5}.checkbox.disabled input{opacity:1}.checkbox.has-error input{border-color:var(--ui-color-danger)}.checkbox.has-error input:focus{box-shadow:var(--ui-shadow-danger)}.checkbox.label-on-the-left .checkbox-row{flex-flow:row-reverse}.combobox .input-inner{position:relative}.combobox input{padding-right:36px}.multiselect input{text-overflow:ellipsis}.combobox-button:focus{box-shadow:none}.combobox-list{position:absolute;z-index:var(--ui-z-index-popup);overflow-y:auto;overscroll-behavior-y:contain;padding:.2rem;min-height:0;max-height:26rem;-webkit-user-select:none;user-select:none;transform:translateZ(1px);color:var(--ui-color-text);border:var(--ui-popup-border);border-radius:calc(var(--ui-border-radius) + .2rem);background:var(--ui-popup-background);box-shadow:var(--ui-shadow-fancy)}.combobox-list.empty{padding:0;box-shadow:none;border:none}.combobox-list:not(.empty){min-height:2rem}.combobox-list.hidden{display:none}.combobox-list-header,.combobox-list-item{height:var(--ui-button-height);line-height:1;display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;padding:0 1rem}.combobox-list-header{margin:.5rem 0 0;color:var(--ui-color-text-2);font-weight:500;cursor:default}.combobox-list-header:last-child{display:none}.combobox-list-empty{padding:.6rem 1.2rem;color:var(--ui-color-text-semi);cursor:default;white-space:nowrap}.combobox-list-item{color:var(--ui-color-text);cursor:pointer;border-radius:var(--ui-border-radius);-ms-touch-action:manipulation;touch-action:manipulation}.combobox-list-item svg{margin-right:.5rem}.combobox-list-item .tick{display:none}.combobox-list-item.checked .tick{display:block}.combobox-list:not(.multiselect) .combobox-list-item.in-group{padding-left:2rem}.mobile .combobox-list-item{transition:background-color .3s ease-out}.mobile .combobox-list-item.blinking{transition:background-color .1s;background-color:var(--ui-color-highlight-1)}.desktop .combobox-list-item.checked{background-color:var(--ui-color-highlight-semi)}.desktop .combobox-list-item.selected{background-color:var(--ui-color-highlight-1)}.desktop .combobox-list-item:hover{background-color:var(--ui-color-highlight)}.combobox-list-item b{color:var(--ui-color-accent)}.combobox-list-item.checked+.combobox-list-item.checked{border-top-left-radius:0;border-top-right-radius:0}.combobox-list-item.checked:has(+ .combobox-list-item.checked){border-bottom-left-radius:0;border-bottom-right-radius:0}@supports ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.combobox-list{background-color:var(--ui-color-background-semi);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px)}}.input-date .input-text-inner{position:relative;overflow:unset}.input-date input{flex:1;width:100%;padding-right:36px}.input-date.native .input-date-button{pointer-events:none}.datepicker{display:none;transform:translateZ(1px)}.datepicker.active{display:block}.datepicker-dropdown{position:absolute;top:0;left:0;z-index:var(--ui-z-index-popup);padding-top:.2rem}.datepicker-dropdown.datepicker-orient-top{padding-top:0;padding-bottom:4px}.datepicker-picker{display:inline-block;overflow:hidden;border-radius:.4em;background-color:var(--ui-color-background);border:var(--ui-popup-border);box-shadow:var(--ui-shadow-fancy)}.datepicker-picker span{display:block;flex:1;border:0;border-radius:6px;cursor:default;text-align:center;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.datepicker-main{padding:var(--ui-margin-s)}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap;width:15.75rem}.datepicker-cell{-ms-touch-action:manipulation;touch-action:manipulation}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%;height:4.5rem;line-height:4.5rem}.datepicker-title{padding:.375rem .75rem;text-align:center}.datepicker-footer .datepicker-controls,.datepicker-header .datepicker-controls{padding:.2rem}.datepicker-controls .button{padding:0;width:2.5rem;min-width:2.5rem;text-align:center}.datepicker-controls .button svg{margin:0;height:1.4rem}.datepicker-controls .button.disabled{visibility:hidden}.datepicker-controls .button.view-switch{flex:auto;width:auto}.datepicker-footer .datepicker-controls .button{width:100%}.datepicker-view .dow{height:1.5rem;line-height:1.5rem;font-size:var(--ui-font-xs)}.datepicker-view .week{width:2.25rem;font-size:.75rem}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:var(--ui-color-text-2)}.datepicker-cell.selected.next:not(.disabled),.datepicker-cell.selected.prev:not(.disabled){color:var(--ui-color-text-1)}.datepicker-cell.selected{background-color:var(--ui-color-highlight);color:var(--ui-color-text)}.datepicker-cell.disabled{color:var(--ui-color-text-2)}.datepicker-cell.today:not(.selected){background-color:var(--ui-color-secondary-semi);color:var(--ui-color-text)}.datepicker-cell.focused,.datepicker-cell.highlighted:not(.range).focused,.datepicker-cell.highlighted:not(.range,.disabled):hover,.datepicker-cell.today.focused,.datepicker-cell:not(.disabled):hover{background-color:var(--ui-color-highlight);color:var(--ui-color-text);cursor:pointer}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{border-radius:0;background-color:#dbdbdb}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range:not(.disabled,.focused,.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}@supports ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.datepicker-picker{background-color:var(--ui-color-background-semi);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px)}}.checkbox .error-wrap,.input .error-wrap,.radio .error-wrap{display:flex;flex-flow:row;align-items:stretch;justify-content:flex-start}.checkbox .error-wrap,.radio .error-wrap{overflow:hidden}.input .info-bar-error,.radio .info-bar-error,.textarea .info-bar-error{padding-bottom:calc(.4rem + 10px);margin-bottom:-10px;border:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.checkbox .info-bar{margin:0}.textarea .info-bar-error{grid-area:1/1/2/2}.has-error.input .input-inner,.has-error.textarea .textarea-inner{background-color:var(--ui-color-danger-semi)}.has-error.input .input-inner{border-color:var(--ui-color-danger)}.has-error.input .input-inner:focus-within,.has-error.input .input-inner:has(:active):not(.disabled){box-shadow:var(--ui-shadow-danger)}.has-error.input .info-bar-error,.has-error.textarea .info-bar-error{background-color:transparent}.input-math{position:relative;display:inline-flex;flex-flow:column;align-items:stretch;justify-content:space-between}.input-math input{padding-left:30px;text-align:right}.input-password{position:relative;display:inline-flex;flex-flow:column;align-items:stretch;justify-content:space-between}.input-password input{font-family:verdana,sans-serif;width:100%;padding-right:36px}.input-password.visible input{font-family:inherit}.input-password.visible .input-password-button{color:var(--ui-color-danger)}.input-password.visible .input-password-button svg{stroke-width:2}.password-strength{width:calc(100% - 6px);height:3px;margin:-7px 3px 0;border-radius:10px;background-color:var(--ui-color-background-input);cursor:default}.password-strength-progress{height:100%;border-radius:inherit;transition:width var(--ui-animation-speed) ease-out;background-color:var(--ui-color-danger)}.password-strength-progress.warning{background-color:var(--ui-color-warning)}.password-strength-progress.info{background-color:var(--ui-color-info)}.password-strength-progress.success{background-color:var(--ui-color-success)}.password-strength-info{position:absolute;top:0;display:none;cursor:default;width:calc(100% - 2px);flex-flow:column;align-items:stretch;gap:1rem;font-size:.8rem;margin:.2rem 1px 0;padding:.8rem;border-radius:var(--ui-border-radius);background-color:var(--ui-color-background-input);border:1px solid var(--ui-color-danger);z-index:var(--ui-z-index-elevated)}.input-password:focus-within .password-strength-info{display:flex}.password-strength-info.warning{border-color:var(--ui-color-warning)}.password-strength-info.info{border-color:var(--ui-color-info)}.password-strength-info.success{border-color:var(--ui-color-success)}.password-strength-info h2{font-size:var(--ui-font-s);text-align:left;margin-bottom:0}.password-strength-info small{font-size:var(--ui-font-xs);margin:0;line-height:1.4}.password-strength-info small:empty{display:none}.input-rating{min-width:fit-content}.input-rating .input-inner,.input-rating .input-inner:focus{outline:0}.input-rating .input-row{align-items:stretch;justify-content:flex-start;height:var(--ui-button-height);background-color:var(--ui-color-background-input)}.input-rating .button{position:static;right:unset;cursor:default;user-select:none;-ms-touch-action:manipulation;touch-action:manipulation;font-size:1.2rem;margin:0}.input-rating .button:focus-visible{box-shadow:none}.input-rating .btn-reset{margin-left:auto}.input-rating .btn-reset:focus-visible{color:var(--ui-color-accent)}.input-rating .button.active svg{color:var(--ui-color-accent);fill:var(--ui-color-accent)}.input-rating .button.button-link,.input-rating .button.button-link:focus-visible,.input-rating .button.button-link:hover{text-decoration:none}.input-rating.light:not(.has-error) .input-inner,.input-rating.light:not(.has-error) .input-row{background-color:transparent;border:none}.input-search input{padding-left:calc(2rem + 6px);padding-right:2rem;appearance:none;-webkit-appearance:none}::-webkit-search-cancel-button{display:none}.input-search .input-row>.icon{top:1px}.input-search-button{display:none}.input-search-button.visible{display:inline-flex}.input-tag .input-inner{touch-action:manipulation}.input-tag .input-inner:focus{outline:0}.input-tag .input-inner[aria-expanded=true]{border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus)}.input-tag .input-row{min-height:calc(var(--ui-button-height) - 2px);padding:4px .3rem 3px;align-items:flex-start;justify-content:flex-start;gap:.2rem;flex-wrap:wrap}.input-tag .input-row>.icon{position:static;flex-shrink:0;margin-top:.14rem}.input-tag .ui-tag{height:1.7rem}.input-tag-popover{width:25ch}.input-tag-popover .popover-content{padding:.5rem}.input-tag-list-tags{display:flex;flex-flow:row wrap;gap:.2rem;flex:1;max-height:10rem;overflow-y:auto}.input-tag-list-add-row{display:flex;align-items:center;gap:.5rem}.input-tag-list-add-row .input{width:100px;flex:1}.input-tag-list-add-row .input input{background:var(--ui-color-background-semi)}.input-tag-list-tags:not(:empty){margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:var(--ui-popup-border)}.input-text .input-inner{overflow:hidden}.input-time .input-row{border-radius:inherit;background:var(--ui-color-background-input)}.input-time input{margin-left:calc(2rem - 2px)}.label{height:var(--ui-button-height);line-height:1.6;padding:0;display:inline-flex;align-items:center;-ms-touch-action:manipulation;touch-action:manipulation}.label.disabled{pointer-events:none;-webkit-user-select:none;user-select:none}.input .label{padding-inline:1px}.label-on-the-left .label{padding-inline:0;padding-top:1px;width:max-content;white-space:nowrap}.input-tag.label-on-the-left,.radio.label-on-the-left,.textarea.label-on-the-left{align-items:flex-start}.input-tag.label-on-the-left .label,.radio.label-on-the-left>.label,.textarea.label-on-the-left .label{height:calc(var(--ui-button-height) + 2px)}.radio.label-on-the-left>.label{margin-block:var(--ui-margin-s)}.radio{min-width:26ch;width:min-content;max-width:100%;--ui-radio-padding:var(--ui-margin-s)}.radio input{border-radius:10rem;width:1.3rem;height:1.3rem}.radio input:focus{box-shadow:none}.radio input::after{background:var(--ui-color-text-1);width:65%;height:65%;border-radius:inherit}.radio-inner{display:flex;flex-flow:column;align-items:stretch;justify-content:flex-start;width:100%;padding:0;border:1px solid var(--ui-color-border);border-radius:calc(var(--ui-border-radius) + var(--ui-radio-padding));background-color:var(--ui-color-background-input);overflow:hidden}.radio-items{display:flex;flex-flow:column;align-items:stretch;justify-content:flex-start;gap:var(--ui-radio-padding);width:100%;padding:var(--ui-radio-padding) 0;background-color:var(--ui-color-background-input);border-radius:inherit}.radio-item{display:flex;flex-flow:row;align-items:center;justify-content:flex-start;gap:.5rem;width:calc(100% - calc(var(--ui-radio-padding) * 2));margin:0 var(--ui-radio-padding);padding:0 var(--ui-margin);border-radius:var(--ui-border-radius)}.radio-item.disabled{opacity:.5}.radio-item.disabled input{opacity:1}.radio-item:not(.disabled):focus-within,.radio-item:not(.disabled):hover{background-color:var(--ui-color-highlight-1)}.radio-inner:focus-within,.radio-inner:has(:active):not(.disabled){border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus)}.radio.has-error .radio-inner{border-color:var(--ui-color-danger);background-color:var(--ui-color-danger-semi)}.radio.has-error .info-bar-error{background-color:transparent}.has-error .radio-inner:focus-within,.has-error .radio-inner:has(:active):not(.disabled){box-shadow:var(--ui-shadow-danger);border-color:var(--ui-color-danger)}.range{position:relative;width:25ch;vertical-align:top;--range-size:calc(var(--ui-button-height) / 3 * 2)}.range .range-inner{display:flex;flex-flow:column;gap:.5rem;flex:1;padding:0 0 .5rem;position:relative;height:100%}.range input{-webkit-appearance:none;appearance:none;margin:0;width:100%;height:.5rem;border-radius:5rem;padding-inline:0;border:1px solid var(--ui-color-border);background:var(--ui-color-background-input);background-image:linear-gradient(var(--ui-color-highlight),var(--ui-color-highlight));background-size:70% 100%;background-repeat:no-repeat;background-clip:padding-box}.range input::-webkit-slider-runnable-track{-webkit-appearance:none;display:block;height:.5rem;border-radius:.5rem}.range input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--ui-color-text);height:var(--range-size);width:var(--range-size);border-radius:5rem;box-shadow:0 1px 3px #000c;transform:translateY(calc(-50% + .25rem - 1px));transform-origin:center 25%}.range input::-moz-range-track{display:flex;align-items:center;background-color:var(--ui-color-background-input);height:.5rem;border-radius:.5rem}.range input::-moz-range-thumb{background-color:var(--ui-color-text);height:var(--range-size);width:var(--range-size);border-radius:5rem;box-shadow:0 1px 3px #000c}.range:not(.disabled) input::-webkit-slider-thumb:active{scale:0.9}.range:not(.disabled) input::-moz-slider-thumb:active{scale:0.9}.range-ticks{display:flex;justify-content:space-between;margin:0 -.1rem .4rem;cursor:default}.range-ticks span{width:3ch;text-align:center}.range:not(.disabled) .range-ticks span{cursor:pointer}.range.label-on-the-left{align-items:flex-end}.range.label-on-the-left .label{height:1.8rem}.select{font:inherit;position:relative}.select select{-moz-appearance:none;-webkit-appearance:none;appearance:none;font-size:1rem;font-family:inherit;background:0 0;padding:0 30px 0 var(--ui-margin-m);width:100%;border:1px solid transparent;height:calc(var(--ui-button-height) - 2px);line-height:1.2;color:var(--ui-color-text);background-color:var(--ui-color-background-input);border-radius:var(--ui-border-radius)}.select select:focus{outline:0}.select optgroup{font-weight:500}.select .input-row::after{content:"";position:absolute;width:2rem;right:0;top:0;bottom:0;opacity:.6;pointer-events:none;background-repeat:no-repeat;background-position:right .7rem center;background-size:.6rem .8rem;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23bbb' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E")}.theme-light .select .input-row::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23222' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E")}.textarea{position:relative;width:25ch;vertical-align:top}.textarea textarea,.textarea.autogrow .textarea-inner::after{font:inherit;line-height:1.3;border:1px solid transparent;margin:0;width:100%;padding:var(--ui-margin-m);grid-area:2/1/2/2}.textarea .textarea-inner{width:100%;display:inline-grid;align-items:stretch;background-color:var(--ui-color-background-input);border-radius:var(--ui-border-radius);border:1px solid var(--ui-color-border)}.textarea textarea{resize:vertical;color:var(--ui-color-text);border-radius:var(--ui-border-radius);border:none;min-height:2.6rem;background-color:var(--ui-color-background-input)}.textarea .textarea-inner:focus-within{border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus);outline:0}.textarea textarea:focus{outline:0;box-shadow:none;border:none}.textarea textarea:invalid{border:none;box-shadow:none}.textarea textarea:disabled{opacity:.5}.textarea.autogrow .textarea-inner::after{content:attr(data-value) " ";visibility:hidden;white-space:pre-wrap;min-width:1rem;resize:none;background:0 0;appearance:none}.textarea.autogrow textarea{resize:none}.textarea.has-error .textarea-inner{border-color:var(--ui-color-danger)}.textarea.has-error .textarea-inner:focus-within{box-shadow:var(--ui-shadow-danger)}.toggle{--toggle-width:60px;--toggle-padding:2px;--border-radius:var(--ui-border-radius-xl);--toggle-height:calc(var(--toggle-width) / 2.5);--knob-size:var(--toggle-height);display:inline-flex;flex-flow:column;align-items:flex-start;position:relative;vertical-align:middle;-webkit-user-select:none;user-select:none;border-radius:var(--border-radius)}.toggle-inner{border:1px solid var(--ui-color-text-2);padding:var(--toggle-padding);border-radius:inherit;background-color:var(--ui-color-background-2);position:relative;margin-block:3px}.toggle:has(:disabled){pointer-events:none;opacity:.6}.toggle:focus{outline:0}.toggle:focus-visible .toggle-inner{box-shadow:var(--ui-shadow-focus);border-color:var(--ui-color-accent)}.toggle-input{display:none}.toggle-label{width:var(--toggle-width);height:var(--toggle-height);border-radius:calc(var(--border-radius) - var(--toggle-padding));display:flex;align-items:center;justify-content:flex-start;flex-shrink:0;overflow:hidden;cursor:pointer}.toggle-scroller{height:100%;border-radius:inherit;display:inline-flex;align-items:center;justify-content:center;transition:margin-left .2s cubic-bezier(.85, .05, .18, 1.4);flex-shrink:0;width:calc(200% - var(--toggle-height));margin-left:calc(var(--toggle-height) - var(--toggle-width) - var(--toggle-padding))}.toggle-option{width:50%;height:100%;border-radius:inherit;background-color:green;display:inline-flex;align-items:center;justify-content:center;background-repeat:no-repeat;background-position:center;background-size:calc(var(--toggle-width)/ 5)}.toggle-option:first-of-type{border-top-right-radius:0;border-bottom-right-radius:0;background-color:var(--ui-color-highlight);background-position:41% 47%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 17.5714286 9.6 9.4285714 22.4-22' fill='none' stroke='%23fff' stroke-width='4'/%3E%3C/svg%3E")}.toggle-option:last-of-type{border-top-left-radius:0;border-bottom-left-radius:0;background-color:var(--ui-color-background-input);background-position:62% 55%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m27.5352.4648-27.0704 27.0704m-.4648-27.5352 28 28' stroke='%23fff' stroke-width='4'/%3E%3C/svg%3E")}.theme-light .toggle-option:first-of-type{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 17.5714286 9.6 9.4285714 22.4-22' fill='none' stroke='%23000' stroke-width='4'/%3E%3C/svg%3E")}.theme-light .toggle-option:last-of-type{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m27.5352.4648-27.0704 27.0704m-.4648-27.5352 28 28' stroke='%23000' stroke-width='4'/%3E%3C/svg%3E")}.toggle-handle{width:0;height:0;position:absolute;transition:left .2s cubic-bezier(.85, .05, .18, 1.4);border-radius:inherit;left:calc(var(--toggle-height)/ 2 + var(--toggle-padding))}.toggle-knob{width:var(--knob-size);height:var(--knob-size);background:var(--ui-color-text-1);border:1px solid var(--ui-color-text-2);transform:translate(-50%,-50%);border-radius:inherit}.notification-archive{display:flex;flex-flow:column;align-items:stretch;justify-content:flex-start;width:100%;z-index:5;transform:translateX(calc(var(--ui-notification-width) + var(--ui-notification-gap) + 1rem));transition:transform var(--ui-animation-speed) ease-out}.notification-archive .notification{z-index:1}.notification-archive header{display:flex;align-items:center;justify-content:space-between;margin:var(--ui-notification-gap) var(--ui-notification-gap) 0;color:var(--ui-color-text);z-index:1;background-color:var(--ui-color-background-input);padding:.75rem .5rem .75rem 1rem;border-radius:var(--ui-border-radius)}.notification-archive button{color:inherit;font-size:var(--ui-font-l);font-weight:300;min-width:1.8rem;min-height:1.8rem}.notification-archive h2{color:inherit;font-size:var(--ui-font-l);margin:0;padding:0;border:none}.notification-archive h2 .button{padding-inline:var(--ui-margin-m);margin-left:-.5rem}.notification-archive h2 .button svg{transform:rotate(0);transition:transform var(--ui-animation-speed) ease-out}.notification-archive.expanded h2 .button svg{transform:rotate(90deg)}.notification-archive.inert{pointer-events:none}.notification-archive-buttons{white-space:nowrap;display:flex;align-items:center;justify-content:space-between;gap:.2rem}.notification-archive-buttons .btn-close{font-size:1.4rem;height:1.8rem;width:1.7rem;padding-bottom:.15rem}.notification.archived{filter:saturate(.3)}.notification-timestamp{color:var(--ui-color-text-semi);font-size:var(--ui-font-xs);margin-inline:0.5rem}.show-archive .notification-archive{transform:translateX(0);margin-bottom:1rem;height:auto;overflow:visible}.notification-center{--ui-notification-border-radius:var(--ui-border-radius);--ui-notification-gap:0.75rem;--ui-notification-width:30rem;position:fixed;transform:translateZ(1px);display:flex;flex-flow:column;align-items:stretch;justify-content:flex-start;width:calc(var(--ui-notification-width) + var(--ui-notification-gap) * 2);top:0;right:0;z-index:-1;max-height:100vh;overflow:hidden auto;overscroll-behavior:contain}.notification-center.archive-is-visible,.notification-center.has-active-notifications{z-index:var(--ui-z-index-popup)}.notification{font-size:var(--ui-font-m);position:relative;overflow:hidden;flex-grow:0;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;min-height:2rem;border:none;margin:var(--ui-notification-gap) var(--ui-notification-gap) 0;box-shadow:var(--ui-shadow-fancy);border-radius:var(--ui-notification-border-radius);z-index:var(--ui-z-index-popup)}.notification:last-child{margin-bottom:calc(var(--ui-notification-gap) + 10px)}.notification button{background:0 0;color:var(--ui-color-text);height:1.8rem;min-width:1.6rem;font-size:inherit;padding:0 var(--ui-margin-m);margin:0 var(--ui-margin-m) 0 0;display:flex;align-items:center;justify-content:center;border-radius:var(--ui-border-radius);border:1px solid transparent}.notification button:focus-visible{border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus);outline:0}.notification button:hover{color:var(--ui-color-text-2);background:#2228}.notification button:active{color:var(--ui-color-text-1);background:#0008}.notification .notification-close{font-size:1.4rem;font-weight:200;position:relative;padding-bottom:.15rem}.notification-buttons,.notification-icon{min-height:100%;display:flex;align-items:center;justify-content:flex-end}.notification-icon{width:var(--ui-button-height)}.notification-msg{color:var(--ui-color-text);flex:1;display:flex;align-items:center;justify-content:flex-start;padding:.8rem;line-height:1.4;font-weight:400}.notification-progressbar{position:absolute;inset:0;border-radius:inherit;z-index:-1}.notification-progress{height:100%;border-radius:inherit;background-color:#ffffff15;border:1px solid #ffffff25;margin:0;width:0;transition:width .2s}.notification:focus{border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus);outline:0}.notification-center-button svg{stroke:var(--ui-color-secondary)}.notification-center-button.has-notifications svg{stroke:var(--ui-color-text)}.notification-center-button.has-notifications svg>path:nth-child(2){fill:var(--ui-color-text)}@media (1px <= width <= 700px){.notification-center{--ui-notification-width:calc(100vw - var(--ui-notification-gap) * 2)}}@supports ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.notification{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.notification-info{background-color:var(--ui-color-info-semi)}.notification-success{background-color:var(--ui-color-success-semi)}.notification-warning{background-color:var(--ui-color-warning-semi)}.notification-error{background-color:var(--ui-color-danger-semi)}} \ No newline at end of file +:root { + + /* BORDERS */ + --ui-border-radius: 0.375rem; /* 6px */ + --ui-border-radius-m: 0.6877rem;/* 11px */ + --ui-border-radius-l: 1rem; /* 16px */ + --ui-border-radius-xl: 5rem; /* 80px */ + + /* MARGIN & PADDING */ + --ui-margin: 0.375rem; /* 6px */ + --ui-margin-xs: 0.125rem; /* 2px */ + --ui-margin-s: 0.25rem; /* 4px */ + --ui-margin-m: 0.5rem; /* 8px */ + --ui-margin-l: 1rem; /* 16px */ + + + --ui-animation-speed: .25s; + --ui-button-height: 2.25rem; /* 36px */ + + + /* FONTS */ + --ui-font-system: system-ui, 'Segoe UI', 'Roboto', 'Helvetica', 'Arial', 'sans-serif', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; + --ui-font-xs: 0.875rem; /* 14px */ + --ui-font-s: 0.9375rem; /* 15px */ + --ui-font-m: 1rem; /* 16px */ + --ui-font-l: 1.0625rem; /* 17px */ + --ui-font-xl: 1.375rem; /* 22px */ + + + /* SHADOWS */ + --ui-shadow-focus: 0 0 2px 1px var(--ui-color-accent); + --ui-shadow-danger: 0 0 2px 1px var(--ui-color-danger); + --ui-shadow-small: 0 0 0 0.5px #fff4, 0 3px 10px #0006; + --ui-shadow-large: 0 0 0 1px #0003, 0 5px 20px #000a; + --ui-shadow-fancy: + 0 0 0 0.5px #111, + 0 1px 5px rgb(0 0 0 / 30%), + 0 4px 10px rgb(0 0 0 / 10%), + 0 10px 25px rgb(0 0 0 / 8%); + + + /* Z-INDEX */ + --ui-z-index-elevated: 9; + --ui-z-index-popup: 999; +} + + +body { + font-weight: 300; + font-size: 100%; + font-family: var(--ui-font-system), sans-serif; + box-sizing: border-box; +} +body * { box-sizing: inherit; } + + +.icon-tabler { width: 1.5rem; height: 1.5rem; } + +/* meatballs icon is misaligned */ +.icon-tabler-dots-vertical { margin-left: -1px; } + +.flex-spacer { flex: 1; } + +/* Icon visual alignment corrections */ +.icon-tabler-alert-triangle { transform: translateY(1px); } +.icon-tabler-logout { transform: translateX(3px); } + +/* adding this class to input elements will prevent scrolling on focus in mobile safari */ +.mobile .prevent-scrolling-on-focus:focus { animation: prevent-scrolling-on-focus 10ms; } + +@keyframes prevent-scrolling-on-focus { + 0% { opacity: 0; } + 100% { opacity: 1; } +} + +:root, +.theme-dark { + color-scheme: dark; + + --ui-color-accent: #bb7a00; + --ui-color-accent-semi: #bb7a0066; + + --ui-color-highlight: #1859a3; + --ui-color-highlight-semi: #1859a366; + --ui-color-highlight-1: #1e4572; + + --ui-color-secondary: #5a5956; + --ui-color-secondary-semi: #5a595666; + + + --ui-color-info: #30506a; + --ui-color-info-semi: #30506a99; + + --ui-color-success: #33624d; + --ui-color-success-semi: #33624d99; + + --ui-color-warning: #795001; + --ui-color-warning-semi: #79500199; + + --ui-color-danger: #943737; + --ui-color-danger-semi: #94373799; + + --ui-color-border: #1b1b1b; + --ui-color-border-1: #131313; + --ui-color-border-2: #0c0c0c; + + --ui-color-background: #2f2f2f; + --ui-color-background-semi: #2f2f2f66; + --ui-color-background-input: #222; + + --ui-color-background-1: #535353; + --ui-color-background-2: #1a1a1a; + + + + --ui-color-text: #fff; + --ui-color-text-semi: #fff6; + --ui-color-text-1: #bbb; + --ui-color-text-2: #888; + + + --ui-popup-border: 1px solid #fff3; + --ui-popup-background: var(--ui-color-background); + + --ui-shadow-button: 0 1px 0 #000c; + --ui-shadow-tooltip: 0 0 0 1px #000, 0 0 5px #0006; +} + +.theme-light { + color-scheme: light; + + --ui-color-accent: #b37400; + --ui-color-accent-semi: #b3740066; + + --ui-color-highlight: #8ec6ff; + --ui-color-highlight-semi: #8ec6ff66; + --ui-color-highlight-1: #6ba0de; + + --ui-color-secondary: #c0beb4; + --ui-color-secondary-semi: #c0beb466; + + + --ui-color-info: #bbd3f0; + --ui-color-info-semi: #bbd3f099; + + --ui-color-success: #7bd7ae; + --ui-color-success-semi: #7bd7ae99; + + --ui-color-warning: #eec64e; + --ui-color-warning-semi: #eec64e99; + + --ui-color-danger: #eb6e6f; + --ui-color-danger-semi: #eb6e6f99; + + --ui-color-border: #bbb; + --ui-color-border-1: #aaa; + --ui-color-border-2: #999; + + --ui-color-background: #eee; + --ui-color-background-semi: #eee6; + --ui-color-background-input: #c2c2c2; + + --ui-color-background-1: #f0f0f0; + --ui-color-background-2: #ccc; + + + + --ui-color-text: #000; + --ui-color-text-semi: #0006; + --ui-color-text-1: #222; + --ui-color-text-2: #666; + + + --ui-popup-border: 1px solid #ccc; + --ui-popup-background: var(--ui-color-background); + + --ui-shadow-button: 0 1px 0 #000c; + --ui-shadow-tooltip: 0 0 1px #0002, 0 0 5px #0006; +} + +.button-link { + background: none; + border: none; + cursor: pointer; + min-width: 0; +} + +.button.button-link { + margin: calc(var(--ui-margin) * -1); + padding: var(--ui-margin); + vertical-align: baseline; + text-decoration: underline; +} + +.button.button-link:focus-visible, +.button.button-link:hover { text-decoration: underline; text-underline-offset: 0.2rem; } + + +.button-link.info:focus-visible, +.button-link.info:hover { text-decoration-color: var(--ui-color-info); } + +.button-link.success:focus-visible, +.button-link.success:hover { text-decoration-color: var(--ui-color-success); } + +.button-link.warning:focus-visible, +.button-link.warning:hover { text-decoration-color: var(--ui-color-warning); } + +.button-link.error:focus-visible, +.button-link.error:hover, +.button-link.danger:focus-visible, +.button-link.danger:hover { text-decoration-color: var(--ui-color-danger); } + +.button-normal { + background: var(--ui-color-secondary); + border: 0.5px solid #0006; + border-bottom-color: #000c; + box-shadow: var(--ui-shadow-button); + min-width: calc(var(--ui-button-size) * 4); + min-height: calc(var(--ui-button-size) * 2); +} + +.button-normal.info { background: var(--ui-color-info); } +.button-normal.success { background: var(--ui-color-success); } +.button-normal.warning { background: var(--ui-color-warning); } +.button-normal.error, +.button-normal.danger { background: var(--ui-color-danger); } + +.button-outline { + background: transparent; + border: 2px solid var(--ui-color-secondary); + min-width: calc(var(--ui-button-size) * 4); + min-height: calc(var(--ui-button-size) * 2); +} + +.button-outline:focus-visible, +.button-outline:hover { background-color: var(--ui-color-secondary-semi); } + +.button-outline.info { border-color: var(--ui-color-info); } +.button-outline.info:focus-visible, +.button-outline.info:hover { background-color: var(--ui-color-info-semi); } + +.button-outline.success { border-color: var(--ui-color-success); } +.button-outline.success:focus-visible, +.button-outline.success:hover { background-color: var(--ui-color-success-semi); } + +.button-outline.warning { border-color: var(--ui-color-warning); } +.button-outline.warning:focus-visible, +.button-outline.warning:hover { background-color: var(--ui-color-warning-semi); } + +.button-outline.error, +.button-outline.danger { border-color: var(--ui-color-danger); } + +.button-outline.error:focus-visible, +.button-outline.error:hover, +.button-outline.danger:focus-visible, +.button-outline.danger:hover { background-color: var(--ui-color-danger-semi); } + +.button-text { + background: transparent; + border: none; + min-width: calc(var(--ui-button-size) * 4); + min-height: calc(var(--ui-button-size) * 2); + box-shadow: none; +} + +.button-text:focus-visible, +.button-text:hover { background-color: var(--ui-color-secondary); } + +.button-text.info:focus-visible, +.button-text.info:hover { background-color: var(--ui-color-info); } + +.button-text.success:focus-visible, +.button-text.success:hover { background-color: var(--ui-color-success); } + +.button-text.warning:focus-visible, +.button-text.warning:hover { background-color: var(--ui-color-warning); } + +.button-text.error:focus-visible, +.button-text.error:hover, +.button-text.danger:focus-visible, +.button-text.danger:hover { background-color: var(--ui-color-danger); } + +button { -ms-touch-action: manipulation; touch-action: manipulation; } + +.button { + --ui-button-size: 1rem; + + font: inherit; + line-height: 1.4; + font-weight: 400; + font-size: var(--ui-button-size); + + display: inline-flex; + align-items: center; + justify-content: center; + gap: var(--ui-margin-m); + + min-width: var(--ui-button-height); + min-height: var(--ui-button-height); + height: auto; + + margin: 0; + padding: 0 var(--ui-margin-l); + color: var(--ui-color-text); + -webkit-user-select: none; + user-select: none; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + vertical-align: middle; + border-radius: var(--ui-border-radius); + text-decoration: none; +} + + +.button:hover { text-decoration: none; } +.button:focus-visible { + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus); + outline: 1px solid transparent; +} + +.button[disabled] { + pointer-events: none; + opacity: 0.6; + box-shadow: none; +} + +.button svg { + min-height: calc(var(--ui-button-size) * 1.25); + max-height: calc(var(--ui-button-size) * 1.25); + height: calc(var(--ui-button-size) * 1.25); + min-width: var(--ui-button-size); + width: auto; + pointer-events: none; +} + + +.button:not(.button-has-text) { padding: 0 var(--ui-margin-m); } +.button:not(.button-has-text) svg { min-height: calc(var(--ui-button-size) * 1.4); } + +.button.round { + padding: var(--ui-margin); + border-radius: var(--ui-border-radius-xl); +} +.button.round:not(.button-has-text) { aspect-ratio: 1/1; } + +.button-has-text.round { padding-inline: var(--ui-margin-l); } + + +.button.touching, +.button:active { + outline: 1px solid transparent; + transform: translateY(1px); + filter: brightness(0.85); +} + +.button:not(.push-button):active, +.button:not(.push-button).touching { box-shadow: none; } + +.button-group { + border-radius: var(--ui-border-radius); + max-width: 100%; + overflow: hidden; +} + +.button-group-scroller { + width: 100%; + overflow: auto hidden; + overscroll-behavior-x: contain; + scrollbar-width: none; + scrollbar-gutter: none; + z-index: 0; + border-radius: var(--ui-border-radius); +} + +.button-group-scroller::-webkit-scrollbar { width: 0; height: 0; } + + +.button-group-inner { + padding: 0 0 2px; + display: inline-flex; + flex-flow: row; + align-items: center; + justify-content: stretch; + position: relative; + z-index: 1; + border-radius: var(--ui-border-radius); + background-color: var(--ui-color-background); +} + +.button-group-inner .button { + flex-shrink: 0; + flex-grow: 10; + border-radius: 0; + position: relative; + overflow: hidden; +} + +.button-group-inner .button:focus { z-index: 2; } + +.button-group .button-normal[disabled] { box-shadow: var(--ui-shadow-button); } + +.button-group .button:first-of-type { + border-top-left-radius: var(--ui-border-radius); + border-bottom-left-radius: var(--ui-border-radius); +} + +.button-group .button:last-of-type { + border-top-right-radius: var(--ui-border-radius); + border-bottom-right-radius: var(--ui-border-radius); +} + +.button-group .button-outline:not(:first-of-type) { margin-left: -2px; } + + +.button-group.round { border-radius: var(--ui-border-radius-xl); } + +.button-group.round .button:first-of-type { + border-top-left-radius: var(--ui-border-radius-xl); + border-bottom-left-radius: var(--ui-border-radius-xl); +} + +.button-group.round .button:last-of-type { + border-top-right-radius: var(--ui-border-radius-xl); + border-bottom-right-radius: var(--ui-border-radius-xl); +} + + +.button-group .button:not(.button-has-text):first-of-type { padding-left: 9px; } +.button-group .button:not(.button-has-text):last-of-type { padding-right: 9px; } +.button-group.round .button:not(.button-has-text):first-of-type { padding-right: 6px; padding-left: 11px; } +.button-group.round .button:not(.button-has-text):last-of-type { padding-left: 6px; padding-right: 11px; } + +.has-dialog { + position: fixed; + width: 100%; + inset: 0; + overflow: hidden; +} + +.dialog-backdrop { + position: fixed; + inset: 0; + display: none; + align-items: center; + justify-content: center; + z-index: calc(var(--ui-z-index-popup) - 1); + background-color: rgba(0 0 0 / 0); + transition: all var(--ui-animation-speed) ease-out; + transform: translateZ(1px); +} + +.dialog-backdrop.opened { background-color: rgba(0 0 0 / .6); } + + +.dialog { + --ui-dialog-border-radius: var(--ui-border-radius-m); + --ui-dialog-inner-border-radius: calc(var(--ui-dialog-border-radius) - 1px); + + opacity: 0; + transform: scale(0.8); + transition: + opacity var(--ui-animation-speed) ease-out, + transform var(--ui-animation-speed) ease-out; + max-height: 90vh; + min-width: 15rem; + max-width: 95vw; + color: var(--ui-color-text); + border-radius: var(--ui-dialog-border-radius); + background: var(--ui-popup-background); + border: var(--ui-popup-border); + box-shadow: var(--ui-shadow-large); + display: flex; + flex-flow: column; + align-items: stretch; + justify-content: stretch; +} + +.opened .dialog { opacity: 1; transform: scale(1); } + +.dialog-header, +.dialog-footer { background: var(--ui-color-background-input); padding: 0.7rem 1rem; } + +.dialog-header { + text-align: center; + font-size: var(--ui-font-xl); + font-weight: 300; + margin: 0; + border-bottom: 0.5px solid var(--ui-color-border); +} + +.dialog-content { + margin: 0; + padding: 1rem; + min-width: 200px; + flex: 1; + overflow-y: auto; + overscroll-behavior-y: contain; + outline: 1px solid transparent; + min-height: 3rem; +} + +.dialog-content:focus { outline: none; } +.dialog-content:focus-visible { + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus) inset; +} + +.dialog-footer { + border-top: 0.5px solid var(--ui-color-border); + border-bottom-left-radius: var(--ui-dialog-inner-border-radius); + border-bottom-right-radius: var(--ui-dialog-inner-border-radius); +} + +.dialog-footer [slot="footer"] { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-flow: row-reverse; + gap: 0.5rem; +} + +.dialog-footer .button-has-text { min-width: 9ch; } + + +.dialog-header, +.dialog.no-title .dialog-content { + border-top-left-radius: var(--ui-dialog-inner-border-radius); + border-top-right-radius: var(--ui-dialog-inner-border-radius); +} + +.dialog-header:empty { display: none; } + + +.mobile .dialog-backdrop .dialog { + min-height: 0; + min-width: 0; + max-height: 100%; + max-width: 100%; + box-shadow: none; +} + +@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) { + .dialog-backdrop.opened { + -webkit-backdrop-filter: contrast(0.8) grayscale(0.5) brightness(0.5) blur(1px); + backdrop-filter: contrast(0.8) grayscale(0.5) brightness(0.5) blur(1px); + } +} + +.drawer { + position: fixed; + background-color: var(--ui-popup-background); + border-left: var(--ui-popup-border); + top: 0; + right: 0; + bottom: 0; + width: 24rem; + min-height: 20rem; + box-shadow: var(--ui-shadow-large); + z-index: calc(var(--ui-z-index-popup) - 2); + color: var(--ui-color-text); + padding: 0; + overflow-y: auto; + overscroll-behavior-y: contain; + transform: translateZ(1px); +} + +.drawer:focus { outline: none; } + +.drawer-header { + position: sticky; + /* stylelint-disable-next-line declaration-block-no-duplicate-properties */ + position: -webkit-sticky; + background-color: inherit; + top: 0; + width: 100%; + margin: 0 0 1rem; + padding: 0 1rem 0 1.4rem; + display: flex; + align-items: center; + justify-content: space-between; +} + +.drawer-header h2 { margin: 0; padding: 0.5rem 0; } + +.drawer-content { padding: 0 1.4rem; } + +.grid-title { + font-size: 1.4rem; + font-weight: 300; + margin: 0 0 1px; + padding: 0.5rem 1rem; + background: var(--ui-color-background-input); + border-bottom: 1px solid var(--ui-color-border); + box-shadow: 0 .5px 0 var(--ui-color-background-1); + position: sticky; + top: 0; + z-index: 1; +} + +.grid { + -webkit-user-select: none; + user-select: none; + cursor: default; +} + +.grid table { + table-layout: fixed; + position: sticky; + top: 0; + z-index: 2; +} +.grid-item { content-visibility: auto; } + +.grid .column-check { width: 3em; padding: 0 0.5em; } +.grid .column-check .checkbox { pointer-events: none; } +.grid .column-check .checkbox input { border-color: var(--ui-color-background-1); } + +.grid .column-date { width: 110px; } +.grid .column-number { width: 110px; } + + +.grid thead { top: -2px; } +.grid thead th { padding-top: 0.75em; padding-bottom: 0.75em; } + +.grid tbody { background-color: var(--ui-color-background); } +.grid tbody td { padding: 0.3rem 0.5rem; } + +.grid tfoot { bottom: -2px; } +.grid tfoot td { padding: 0.75rem 0.5rem; } +.grid tfoot .button { --button-size: 0.9em; font-size: 0.9em; margin: 0; } + + +.grid td:not(.column-check) { + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; +} + +.grid .cell-aligner { + width: 100%; + height: 100%; + display: flex; + align-items: center; + gap: 0.5em; +} + + +.grid .th-number, +.grid .td-number { text-align: right; } + + +/*** SORTABLE TABLE *******************************************************************************/ +.grid-sortable thead th { cursor: pointer; } +.grid-sortable thead th span:hover { text-decoration: underline; } +.grid-sortable thead th .cell-aligner { min-height: 20px; } +.grid-sortable thead th .cell-aligner span { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + flex: 1; +} +.grid-sortable thead th svg { + width: 20px; + height: 20px; + color: var(--ui-color-text-2); +} + +.grid-sortable .th-sortable:focus-visible { + outline: 1px solid var(--ui-color-accent); + outline-offset: -1px; +} + +/*** SORTABLE TABLE *******************************************************************************/ + +.info-bar { + width: 100%; + display: flex; + align-items: flex-start; + justify-content: flex-start; + gap: 0.5rem; + padding: 0.4rem 0.6rem 0.4rem 0.3rem; + margin: 0 0 0.75rem; + border-radius: var(--ui-border-radius); + border-width: 1px; + border-style: solid; +} + +.info-bar p { + margin: 0; + font-size: var(--ui-font-s); + line-height: 1.5rem; +} +.info-bar .icon { flex-shrink: 0; } + + + +.info-bar-error { + background-color: var(--ui-color-danger-semi); + border-color: var(--ui-color-danger); +} + +.info-bar-info { + background-color: var(--ui-color-info-semi); + border-color: var(--ui-color-info); +} + +.info-bar-success { + background-color: var(--ui-color-success-semi); + border-color: var(--ui-color-success); +} + +.info-bar-warning { + background-color: var(--ui-color-warning-semi); + border-color: var(--ui-color-warning); +} + +input, select, textarea, label { + -ms-touch-action: manipulation; + touch-action: manipulation; +} + + +.theme-dark input { color-scheme: dark; } +.theme-light input { color-scheme: light; } + + +textarea::placeholder, +input::placeholder { + color: var(--ui-color-text-1); + font-style: italic; +} + + +:where(input:not([type=radio],[type=checkbox])) { + font: inherit; + height: calc(var(--ui-button-height) - 2px); + border: 1px solid transparent; + line-height: 1; + color: var(--ui-color-text); + background-color: var(--ui-color-background-input); + border-radius: var(--ui-border-radius); + padding: 0 var(--ui-margin-m); + width: 25ch; +} + +:where(input:focus) { + outline: 0; + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus); +} + +:where(input:invalid) { + border-color: var(--ui-color-danger); + box-shadow: var(--ui-shadow-danger); +} + + +input[type=color] { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + background: none; + border: none; + padding: 0; + cursor: pointer; +} + + +:where(input:disabled) { opacity: 0.75; cursor: default; } + + + + +.check-and-radio input { + appearance: none; + width: 1.4rem; + height: 1.4rem; + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 0.3em; + background: var(--ui-color-background-input); + border: 1px solid var(--ui-color-text-2); + color: var(--ui-color-text-1); + font: inherit; /* required for proper sizing */ + flex-shrink: 0; + -ms-touch-action: manipulation; + touch-action: manipulation; +} + +.check-and-radio input::after { + content: " "; + display: block; + opacity: 0; + font-size: var(--ui-font-m); + line-height: 1; + align-self: center; + color: inherit; + margin: 0; + transition: opacity calc(var(--ui-animation-speed) / 2) ease-out; +} + +.check-and-radio input:checked::after { opacity: 1; } + + + +.input { width: 25ch; vertical-align: middle; } +.input .input-inner { + display: flex; + flex-flow: column; + align-items: stretch; + justify-content: stretch; + border-radius: var(--ui-border-radius); + background: var(--ui-color-background-input); + border: 1px solid var(--ui-color-border); +} + + + /* label on the left */ +.radio.label-on-the-left, +.button-toggle.input.label-on-the-left, +.textarea.label-on-the-left, +.toggle.label-on-the-left, +.range.label-on-the-left, +.input.label-on-the-left { + display: inline-flex; + flex-flow: row; + align-items: center; + width: 100%; + gap: 1rem; +} +.label-on-the-left .range-inner, +.label-on-the-left .input-inner { flex: 1; } + + +.input-inner:focus-within, +.input-inner:has(:active):not(.disabled) { + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus); +} + + + +.input, +.textarea textarea:disabled, +.range input:disabled, +.input select:disabled, +.input input:disabled { opacity: 1; color: var(--ui-color-text); } + +.input .input-inner:has(:disabled), +.range .range-inner:has(:disabled), +.textarea .textarea-inner:has(:disabled) { opacity: 0.7; } + +.input input:not([type=radio]) { width: 100%; border: none; } +.input input:not([type=radio]):focus, +.input input:not([type=radio]):invalid { box-shadow: none; border: none; } + + + + +.input-row { + width: 100%; + display: flex; + flex-flow: row; + align-items: center; + justify-content: space-between; + position: relative; + border-radius: inherit; +} + +.input-row > .button, +.input-row > .icon { position: absolute; height: 100%; z-index: 1; } + +.input-row > .button { color: var(--ui-color-text-1); right: 2px; } + +.input-row>.icon { + color: var(--ui-color-text-2); + left: 0.3rem; + width: 1.5rem; + pointer-events: none; +} + +.menu { + position: absolute; + padding: 0.25rem; + margin: 0; + display: flex; + width: auto; + flex-flow: column; + align-items: stretch; + list-style: none; + overflow: hidden auto; + cursor: default; + z-index: var(--ui-z-index-popup); + max-height: calc(100vh - 4px); + -webkit-user-select: none; + user-select: none; + overscroll-behavior-y: contain; + + color: var(--ui-color-text); + border: var(--ui-popup-border); + border-radius: calc(var(--ui-border-radius) + 2px); + background: var(--ui-popup-background); + box-shadow: var(--ui-shadow-fancy); + transform: translateZ(1px); +} + +.menu:focus { outline: none; } + + +.menu-item { + font: inherit; + font-size: var(--ui-font-s); + align-items: center; + border-radius: var(--ui-border-radius); + color: inherit; + background: none; + border: none; + display: flex; + flex-shrink: 0; + letter-spacing: 0.1px; + justify-content: space-between; + margin: 0; + overflow: hidden; + padding: 0.5rem 0.9rem; + position: relative; + text-align: left; + white-space: nowrap; + width: 100%; +} + +.menu-item-shortcut { + margin: -0.1rem 0 -0.1rem auto; + letter-spacing: 0.1rem; + line-height: 1.35; + opacity: 0.5; +} +.menu-item-shortcut:empty { visibility: hidden; } + +.menu-item.disabled { pointer-events: none; opacity: 0.6; } + +.menu-item:focus { background-color: var(--ui-color-highlight); outline: 1px solid transparent; } + +.menu-item:focus.success { background-color: var(--ui-color-success); } +.menu-item:focus.warning { background-color: var(--ui-color-warning); } +.menu-item:focus.danger { background-color: var(--ui-color-danger); } + +.menu-item:focus .menu-item-shortcut { opacity: 1; } + +.menu-item svg { width: 1.1rem; height: 1.1rem; margin: 0 0.5rem 0 0; } + +.menu-item-content { + display: flex; + min-width: 0; + align-items: center; + justify-content: space-between; + margin-right: 1rem; +} + +.menu-item-text { + overflow: hidden; + text-overflow: ellipsis; + line-height: 1.35; +} + + +.menu-separator { + height: 0; + width: auto; + padding: 0; + margin: var(--ui-margin) 0.8rem; + border-bottom: var(--ui-popup-border); +} + + +@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) { + .menu { + background-color: var(--ui-color-background-semi); + -webkit-backdrop-filter: blur(30px); + backdrop-filter: blur(30px); + } +} + +.message-box .dialog-content { + display: flex; + flex-flow: row; + gap: 1rem; + font-size: var(--ui-font-l); + padding: 1rem; +} + +.message-box .dialog-content .message { + display: flex; + align-items: center; + min-height: fit-content; +} +.message-box .dialog-content .message-content { margin: 0; line-height: 1.5; } + +.message-box .dialog-content svg, +.message-box .dialog-content .icon { height: 3rem; } + +.message-box .dialog-content svg:empty { width: 0; } +.message-box .dialog-content:has(svg:empty) { gap: 0; } +.message-box .dialog-content:has(svg:empty) .message { flex: 1; justify-content: center; } + + +.message-box .dialog-content .icon { + width: 3rem; + flex-shrink: 0; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + position: sticky; + top: 0; +} + + +/* stylelint-disable no-descending-specificity */ +.message-info .dialog-content { background-color: var(--ui-color-info-semi); } +.message-warning .dialog-content { background-color: var(--ui-color-warning-semi); } +.message-error .dialog-content { background-color: var(--ui-color-danger-semi); } +.message-success .dialog-content { background-color: var(--ui-color-success-semi); } + +.panel { + overflow: hidden; + will-change: height; + position: relative; + border: 2px solid var(--ui-color-border); + background: var(--ui-color-background-2); + margin-bottom: 1rem; +} + + +.panel details { margin: 1px; } + +.panel-header { + color: var(--ui-color-text); + text-align: left; + border: none; + display: flex; + align-items: center; + justify-content: space-between; + font-weight: 300; + font-size: var(--ui-font-m); + padding: 0 0.6rem 0 1rem; + height: 2.5rem; + line-height: 1; + -webkit-user-select: none; + user-select: none; +} + +.collapsible .panel-header { cursor: pointer; } + +.panel-header::-webkit-details-marker { display: none; } + +.panel-content { + background: var(--ui-color-background); + padding: 1rem; +} +.panel-content > * { opacity: 0; transition: opacity var(--ui-animation-speed) ease-out; } +.panel.expanded .panel-content > * { opacity: 1; } + + +.panel .chevron { + height: 1.2rem; + transform: rotate(0deg); + transition: transform var(--ui-animation-speed) ease-out; +} +.panel .chevron svg { width: 1.2rem; height: 1.2rem; } +.panel.expanded .chevron { transform: rotate(90deg); } + + + +.panel.round { border-radius: var(--ui-border-radius); } +.panel.round .panel-content { border-radius: calc(var(--ui-border-radius) - 2px); } + + +.panel.disabled { opacity: 0.5; } + + +.panel-header:focus { outline: none; } +.panel:has(.panel-header:focus-visible) { + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus); + z-index: 2; +} + + +.panel.info { + border-color: var(--ui-color-info); + background: var(--ui-color-info-semi); +} +.panel.success { + border-color: var(--ui-color-success); + background: var(--ui-color-success-semi); +} +.panel.warning { + border-color: var(--ui-color-warning); + background: var(--ui-color-warning-semi); +} +.panel.danger { + border-color: var(--ui-color-danger); + background: var(--ui-color-danger-semi); +} + +.popover-plate { + --popover-tip-size: 14px; + --popover-color: var(--ui-popup-background); + --popover-border: var(--ui-popup-border); + --tip-offset: 50%; + + position: absolute; + transform: translateZ(1px); + z-index: var(--ui-z-index-popup); +} + +.popover-plate.opening { + opacity: 0; +} + +.popover { + position: relative; + border-radius: var(--ui-border-radius-m); + box-shadow: var(--ui-shadow-tooltip); +} + +.popover-plate.hide-tip .popover { + box-shadow: var(--ui-shadow-fancy); +} + +.popover-plate:not(.hide-tip) .popover::before, +.popover-plate:not(.hide-tip) .popover-content::before { + content: ''; + position: absolute; + display: block; + width: var(--popover-tip-size); + height: var(--popover-tip-size); + transform: rotate(45deg) skew(8deg, 8deg); + left: var(--tip-offset); + margin-left: calc(var(--popover-tip-size) / -2); +} + + +.popover-plate:not(.hide-tip) .popover::before { + box-shadow: var(--ui-shadow-tooltip); + background-color: var(--popover-color); + border: var(--popover-border); + border-width: 1.5px; + margin-left: calc(var(--popover-tip-size) / -2 - 0.5px); +} + +.popover-content { + padding: 1rem; + text-align: center; + position: relative; + border-radius: inherit; + z-index: 1; + background-color: var(--popover-color); + border: var(--popover-border); +} + +.popover-content > * { + position: relative; +} + +.popover-plate:not(.hide-tip) .popover-content::before { + background-color: inherit; + z-index: -1; +} + + +.popover-plate:focus, +.popover-plate .popover:focus, +.popover-content:focus { + outline: none; +} + + +.popover-top:not(.hide-tip) { + padding-bottom: var(--popover-tip-size); +} + +.popover-top:not(.hide-tip) .popover::before { + border-radius: 0 0 3px; + bottom: calc(var(--popover-tip-size) / -2); +} + +.popover-top:not(.hide-tip) .popover-content::before { + border-radius: 0 0 2px; + bottom: calc(var(--popover-tip-size) / -2); +} + +.popover-bottom:not(.hide-tip) { + padding-top: var(--popover-tip-size); +} + +.popover-bottom:not(.hide-tip) .popover::before { + border-radius: 3px 0 0; + top: calc(var(--popover-tip-size) / -2); +} + +.popover-bottom:not(.hide-tip) .popover-content::before { + border-radius: 2px 0 0; + top: calc(var(--popover-tip-size) / -2); +} + + +/* THEME LIGHT */ +.theme-light .popover-plate { + --popover-color: #fff; +} + + +@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) { + .popover-plate.hide-tip .popover-content { + background-color: var(--ui-color-background-semi); + -webkit-backdrop-filter: blur(30px); + backdrop-filter: blur(30px); + } +} + +.push-button:active, +.push-button.touching, +.push-button[aria-pressed="true"] { + filter: brightness(0.85) contrast(1.1); + transform: translateY(1px); + box-shadow: 0 1px 0 rgb(0 0 0/0.8) inset; +} + +.push-button[aria-pressed="true"]:focus-visible { + box-shadow: 0 1px 0 rgb(0 0 0/0.8) inset, var(--ui-shadow-focus); +} + +.push-button[aria-pressed="true"].button-outline { background-color: var(--ui-color-secondary-semi); } +.push-button[aria-pressed="true"].button-outline.info { background-color: var(--ui-color-info-semi); } +.push-button[aria-pressed="true"].button-outline.success { background-color: var(--ui-color-success-semi); } +.push-button[aria-pressed="true"].button-outline.warning { background-color: var(--ui-color-warning-semi); } +.push-button[aria-pressed="true"].button-outline.danger { background-color: var(--ui-color-danger-semi); } + + +.push-button.button-outline:active, +.push-button.button-outline.touching, +.push-button.button-outline[aria-pressed="true"] { box-shadow: none; } + +.splitter { + position: absolute; + height: 100%; + width: 16px; + z-index: 90; + cursor: ew-resize; +} + +.splitter::after { + content: " "; + display: block; + width: 6px; + height: 100%; + margin: 0 auto; +} + +.splitter.vertical { width: 100%; height: 16px; cursor: ns-resize; } + +.splitter.vertical::after { width: 100%; height: 6px; margin: auto 0; } + +.splitter.is-dragging::after, +.splitter:hover::after { background-color: var(--ui-color-background-1); } + +.table { + width: 100%; + max-height: 100%; + overflow: auto; + overscroll-behavior-y: contain; + position: relative; + border: 2px solid var(--ui-color-border); +} + + +.table table { border-spacing: 0; width: 100%; table-layout: fixed; } + +.table.round { border-radius: var(--ui-border-radius); } +.table.selectable { cursor: default; -webkit-user-select: none; user-select: none; } + +.table thead, +.table tfoot { position: sticky; z-index: 2; } +.table thead { top: 0; } +.table tfoot { bottom: 0; } + +.table thead th, +.table tfoot td { + padding: var(--ui-margin-m); + font-weight: 400; + text-align: left; + vertical-align: middle; + background: var(--ui-color-background-input); +} + +.table tr:focus-within, +.table tr:focus, +.table tbody:focus, +.table tbody:focus tr { + outline: 1px solid transparent; + background-color: var(--ui-color-highlight-1); +} + +.table tbody td { + padding: var(--ui-margin) var(--ui-margin-m) calc(var(--ui-margin) + 1px); + border-bottom: 1px solid var(--ui-color-border); + vertical-align: middle; + line-height: 1.5rem; +} + +.table th:first-child, +.table td:first-child { padding-left: var(--ui-margin-l); } + +.table th:last-child, +.table td:last-child { padding-right: var(--ui-margin-l); } + +.table tbody:last-of-type tr:last-child td { border-bottom: none; } + +.ui-tag { + border: 1px solid var(--ui-color-border); + background: var(--ui-color-secondary); + border-radius: var(--ui-border-radius); + padding: 0.4rem 0.7rem; + display: inline-flex; + align-items: center; + gap: 0.2rem; + height: 2rem; + cursor: default; + color: var(--ui-color-text); + -webkit-user-select: none; + user-select: none; +} + +.ui-tag.clickable { + touch-action: manipulation; + cursor: pointer; +} +.ui-tag.clickable:not(.disabled):active { + transform: translateY(1px); + filter: brightness(0.85); +} + + +.ui-tag .icon { + width: 1rem; + height: 1rem; + margin-left: -4px; + /* a fix safari rendering issue */ + /* when tag was pressed, the icon would slide to the left */ + transform: translateZ(1px); +} + +.ui-tag:focus-visible { + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus); + outline: 1px solid transparent; +} +.ui-tag .ui-tag-label { padding-bottom: 2px; } + +.ui-tag.dark { color: #fff; } +.ui-tag.light { color: #000; } + +.ui-tag.disabled { opacity: 0.5; } +.ui-tag.round { border-radius: var(--ui-border-radius-xl); } + +.ui-tag.info { background-color: var(--ui-color-info); } +.ui-tag.success { background-color: var(--ui-color-success); } +.ui-tag.danger { background-color: var(--ui-color-danger); } +.ui-tag.warning { background-color: var(--ui-color-warning); } + +.ui-tag.info, +.ui-tag.success, +.ui-tag.danger, +.ui-tag.warning { color: var(--ui-color-text); } + +.tooltip-plate { + --popover-tip-size: 10px; + --popover-color: #292929; +} + +.tooltip { border-radius: 5px; max-width: 75vw; } +.tooltip-content { padding: 0.5rem 0.7rem; } + +/* COLOR VARIATIONS */ +.info .tooltip { --popover-color: var(--ui-color-info); } +.success .tooltip { --popover-color: var(--ui-color-success); } +.danger .tooltip { --popover-color: var(--ui-color-danger); } +.warning .tooltip { --popover-color: var(--ui-color-warning); } + +.tree, +.tree ul { padding: 0; margin: 0; list-style: none; } +.tree>li, +.tree ul li { + display: block; + width: 100%; + padding: 0; + margin: 0; +} + +.tree { + display: flex; + flex-flow: column; + align-items: stretch; + overflow: hidden; + position: relative; + margin: 0; + padding: .3rem; + border-radius: var(--ui-border-radius); +} +.tree:focus { outline: none; } +.tree:focus-visible { + box-shadow: + 0 0 0 1px var(--ui-color-accent), + var(--ui-shadow-focus); +} + + +.tree-node { + cursor: pointer; + display: flex; + align-items: center; + border-radius: var(--ui-border-radius); + padding: 0 0.5rem; + height: var(--ui-button-height); + -ms-touch-action: manipulation; + touch-action: manipulation; +} + +.tree-node.selected { background-color: var(--ui-color-highlight-1); } +.tree-node:hover { background-color: var(--ui-color-highlight); } + +.tree-icon { + display: inline-block; + width: 1.5rem; + height: 1.5rem; + margin-right: 0.5rem; + background-color: var(--ui-color-text-2); + -webkit-mask-size: 1.5rem; + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: 0 center; + mask-size: 1.5rem; + mask-repeat: no-repeat; + mask-position: 0 center; +} + + +.tree-label { line-height: 2; } + +.tree-indent { + display: block; + width: 0.8rem; + margin-right: 1rem; + height: 100%; + border-right: 1px solid transparent; +} +.tree .tree-indent { border-right-color: var(--ui-color-border-1); } + + + +.tree-file-icon { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M14 3v4a1 1 0 0 0 1 1h4' /%3E%3Cpath d='M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z' /%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M14 3v4a1 1 0 0 0 1 1h4' /%3E%3Cpath d='M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z' /%3E%3C/svg%3E"); +} +.tree-folder-icon { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2' /%3E%3Cline x1='12' y1='10' x2='12' y2='16' /%3E%3Cline x1='9' y1='13' x2='15' y2='13' /%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2' /%3E%3Cline x1='12' y1='10' x2='12' y2='16' /%3E%3Cline x1='9' y1='13' x2='15' y2='13' /%3E%3C/svg%3E"); +} +.expanded .tree-folder-icon { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2' /%3E%3Cline x1='9' y1='13' x2='15' y2='13' /%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2' /%3E%3Cline x1='9' y1='13' x2='15' y2='13' /%3E%3C/svg%3E"); +} + +.button-toggle.input { + width: min-content; + max-width: 100%; + padding: 0; + flex-flow: column; + align-items: flex-start; + justify-content: flex-start; + border-radius: calc(var(--ui-border-radius) + 1px); +} + +.button-toggle .input-inner { + width: 100%; + overflow: hidden; + border-radius: calc(var(--ui-border-radius) + 1px); +} + +.button-toggle .input-scroller { + width: 100%; + border-radius: var(--ui-border-radius); + background-color: var(--ui-color-background-input); + overflow: auto hidden; + overscroll-behavior-x: contain; + scrollbar-width: none; +} + +.button-toggle .input-scroller::-webkit-scrollbar { width: 0; height: 0; } + +.button-toggle .input-row { min-width: 100%; width: min-content; } + +.button-toggle .input-row .button { + position: static; + color: var(--ui-color-text); + box-shadow: none; + min-height: calc(var(--ui-button-height) - 2px); + background: var(--ui-color-background-input); + border: none; + border-radius: 0; + flex: 1; + border-left: 1px solid var(--ui-color-border); + min-width: min-content; +} + +.button-toggle .button:has(:checked) { background-color: var(--ui-color-highlight); } + +.button-toggle .input-row .button:first-child { + border-left: none; + border-top-left-radius: var(--ui-border-radius); + border-bottom-left-radius: var(--ui-border-radius); +} + +.button-toggle .input-row .button:last-child { + border-top-right-radius: var(--ui-border-radius); + border-bottom-right-radius: var(--ui-border-radius); +} + +.button-toggle .button input { + position: absolute; + top: -100px; + opacity: 0; + pointer-events: none; +} + + + +/* round buttons */ +.button-toggle.round { border-radius: var(--ui-border-radius-xl); } + +.button-toggle.round:not(.has-error) .input-inner { border-radius: var(--ui-border-radius-xl); } + +.button-toggle.round .input-row .button:first-child { + border-top-left-radius: var(--ui-border-radius-xl); + border-bottom-left-radius: var(--ui-border-radius-xl); +} + +.button-toggle.round .input-row .button:last-child { + border-top-right-radius: var(--ui-border-radius-xl); + border-bottom-right-radius: var(--ui-border-radius-xl); +} + +/* more styling defined in ../check-and-radio.css */ + +.checkbox { + display: inline-flex; + flex-flow: column; + align-items: stretch; + justify-content: flex-start; + gap: 0.5rem; +} + +.checkbox-row { + display: inline-flex; + align-items: center; + justify-content: flex-start; + gap: 0.5rem; +} + + +.checkbox input:focus { border-color: var(--ui-color-accent); } +.checkbox input::after { + content: "✕"; + font-family: Arial, Helvetica, sans-serif; + line-height: 1.1; +} + +.checkbox.indeterminate input::after { + content: " "; + opacity: 1; + background: var(--ui-color-text-1); + width: 65%; + height: 65%; + border-radius: 0.2rem; +} + +.checkbox input:checked::after { opacity: 1; } + +.checkbox.disabled { opacity: 0.5; } +.checkbox.disabled input { opacity: 1; } + + +.checkbox.has-error input { border-color: var(--ui-color-danger); } +.checkbox.has-error input:focus { box-shadow: var(--ui-shadow-danger); } + +.checkbox.label-on-the-left .checkbox-row { flex-flow: row-reverse; } + +.combobox .input-inner { position: relative; } + +.combobox input { padding-right: 36px; } +.multiselect input { text-overflow: ellipsis; } + +.combobox-button:focus { box-shadow: none; } + +.combobox-list { + position: absolute; + z-index: var(--ui-z-index-popup); + overflow-y: auto; + overscroll-behavior-y: contain; + padding: 0.2rem; + min-height: 0; + max-height: 26rem; + -webkit-user-select: none; + user-select: none; + transform: translateZ(1px); + + color: var(--ui-color-text); + border: var(--ui-popup-border); + border-radius: calc(var(--ui-border-radius) + 0.2rem); + background: var(--ui-popup-background); + box-shadow: var(--ui-shadow-fancy); +} + +.combobox-list.empty { padding: 0; box-shadow: none; border: none; } +.combobox-list:not(.empty) { min-height: 2rem; } +.combobox-list.hidden { display: none; } + +.combobox-list-header, +.combobox-list-item { + height: var(--ui-button-height); + line-height: 1; + display: flex; + align-items: center; + white-space: nowrap; + text-overflow: ellipsis; + overflow-x: hidden; + padding: 0 1rem; +} + +.combobox-list-header { + margin: 0.5rem 0 0; + color: var(--ui-color-text-2); + font-weight: 500; + cursor: default; +} + +.combobox-list-header:last-child { display: none; } + +.combobox-list-empty { + padding: 0.6rem 1.2rem; + color: var(--ui-color-text-semi); + cursor: default; + white-space: nowrap; +} + +.combobox-list-item { + color: var(--ui-color-text); + cursor: pointer; + border-radius: var(--ui-border-radius); + -ms-touch-action: manipulation; + touch-action: manipulation; +} + +.combobox-list-item svg { margin-right: 0.5rem; } +.combobox-list-item .tick { display: none; } +.combobox-list-item.checked .tick { display: block; } + +.combobox-list:not(.multiselect) .combobox-list-item.in-group { padding-left: 2rem; } + + +.mobile .combobox-list-item { transition: background-color 0.3s ease-out; } +.mobile .combobox-list-item.blinking { + transition: background-color 0.1s; + background-color: var(--ui-color-highlight-1); +} + +.desktop .combobox-list-item.checked { background-color: var(--ui-color-highlight-semi); } +.desktop .combobox-list-item.selected { background-color: var(--ui-color-highlight-1); } +.desktop .combobox-list-item:hover { background-color: var(--ui-color-highlight); } + +.combobox-list-item b { color: var(--ui-color-accent); } + +/* has checked element before */ +.combobox-list-item.checked + .combobox-list-item.checked { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +/* has checked element after it */ +.combobox-list-item.checked:has(+ .combobox-list-item.checked) { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + + +@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) { + .combobox-list { + background-color: var(--ui-color-background-semi); + -webkit-backdrop-filter: blur(30px); + backdrop-filter: blur(30px); + } +} + +.input-date .input-text-inner { position: relative; overflow: unset; } + +.input-date input { flex: 1; width: 100%; padding-right: 36px; } + + +.input-date.native .input-date-button { pointer-events: none; } + +.datepicker { display: none; transform: translateZ(1px); } +.datepicker.active { display: block; } + +.datepicker-dropdown { + position: absolute; + top: 0; + left: 0; + z-index: var(--ui-z-index-popup); + padding-top: 0.2rem; +} + +.datepicker-dropdown.datepicker-orient-top { padding-top: 0; padding-bottom: 4px; } + +.datepicker-picker { + display: inline-block; + overflow: hidden; + border-radius: 0.4em; + background-color: var(--ui-color-background); + border: var(--ui-popup-border); + box-shadow: var(--ui-shadow-fancy); +} + + +.datepicker-picker span { + display: block; + flex: 1; + border: 0; + border-radius: 6px; + cursor: default; + text-align: center; + -webkit-touch-callout: none; + -webkit-user-select: none; + user-select: none; +} + +.datepicker-main { padding: var(--ui-margin-s); } + + +.datepicker-grid, +.datepicker-view .days-of-week, +.datepicker-view, +.datepicker-controls { display: flex; } + +.datepicker-grid { flex-wrap: wrap; width: 15.75rem; } + +.datepicker-cell { -ms-touch-action: manipulation; touch-action: manipulation; } + +.datepicker-cell, +.datepicker-view .week { height: 2.25rem; line-height: 2.25rem; } + +.datepicker-view .days .datepicker-cell, +.datepicker-view .dow { flex-basis: 14.2857142857%; } + +.datepicker-view.datepicker-grid .datepicker-cell { + flex-basis: 25%; + height: 4.5rem; + line-height: 4.5rem; +} + + +.datepicker-title { padding: 0.375rem 0.75rem; text-align: center; } + +.datepicker-header .datepicker-controls, +.datepicker-footer .datepicker-controls { padding: 0.2rem; } + +.datepicker-controls .button { + padding: 0; + width: 2.5rem; + min-width: 2.5rem; + text-align: center; +} + +.datepicker-controls .button svg { margin: 0; height: 1.4rem; } +.datepicker-controls .button.disabled { visibility: hidden; } + +.datepicker-controls .button.view-switch { flex: auto; width: auto; } + + +.datepicker-footer .datepicker-controls .button { width: 100%; } + +.datepicker-view .dow { height: 1.5rem; line-height: 1.5rem; font-size: var(--ui-font-xs); } +.datepicker-view .week { width: 2.25rem; font-size: 0.75rem; } + +.datepicker-cell.prev:not(.disabled), +.datepicker-cell.next:not(.disabled) { color: var(--ui-color-text-2); } + + +.datepicker-cell.selected.prev:not(.disabled), +.datepicker-cell.selected.next:not(.disabled) { color: var(--ui-color-text-1); } + + +.datepicker-cell.selected { + background-color: var(--ui-color-highlight); + color: var(--ui-color-text); +} + +.datepicker-cell.disabled { color: var(--ui-color-text-2); } + + + +/* today */ +.datepicker-cell.today:not(.selected) { + background-color: var(--ui-color-secondary-semi); + color: var(--ui-color-text); +} + + +/* hover/focus */ +.datepicker-cell.focused, +.datepicker-cell.today.focused, +.datepicker-cell.highlighted:not(.range,.disabled):hover, +.datepicker-cell.highlighted:not(.range).focused, +.datepicker-cell:not(.disabled):hover { + background-color: var(--ui-color-highlight); + color: var(--ui-color-text); + cursor: pointer; +} + + +.datepicker-cell.range-start { border-radius: 4px 0 0 4px; } +.datepicker-cell.range-end { border-radius: 0 4px 4px 0; } +.datepicker-cell.range { border-radius: 0; background-color: #dbdbdb; } +.datepicker-cell.range-end:not(.selected), +.datepicker-cell.range-start:not(.selected) { background-color: #b5b5b5; color: #fff; } +.datepicker-cell.range-end.focused:not(.selected), +.datepicker-cell.range-start.focused:not(.selected) { background-color: #afafaf; } +.datepicker-cell.range:not(.disabled,.focused,.today):hover { background-color: #d5d5d5; } +.datepicker-cell.range.disabled { color: #c2c2c2; } +.datepicker-cell.range.focused { background-color: #cfcfcf; } + + + +@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) { + .datepicker-picker { + background-color: var(--ui-color-background-semi); + -webkit-backdrop-filter: blur(30px); + backdrop-filter: blur(30px); + } +} + +.input .error-wrap, +.radio .error-wrap, +.checkbox .error-wrap { + display: flex; + flex-flow: row; + align-items: stretch; + justify-content: flex-start; +} + +.checkbox .error-wrap, +.radio .error-wrap { overflow: hidden; } + + +.input .info-bar-error, +.radio .info-bar-error, +.textarea .info-bar-error { + padding-bottom: calc(0.4rem + 10px); + margin-bottom: -10px; + border: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.checkbox .info-bar { margin: 0; } + +.textarea .info-bar-error { grid-area: 1 / 1 / 2 / 2; } + + + +/* Highlight whole inner div in red, to avoid rendering leaks in corners (safari) */ +.has-error.input .input-inner, +.has-error.textarea .textarea-inner { background-color: var(--ui-color-danger-semi); } + +.has-error.input .input-inner { border-color: var(--ui-color-danger); } + +.has-error.input .input-inner:focus-within, +.has-error.input .input-inner:has(:active):not(.disabled) { box-shadow: var(--ui-shadow-danger); } + +.has-error.input .info-bar-error, +.has-error.textarea .info-bar-error { background-color: transparent; } + +.input-math { + position: relative; + display: inline-flex; + flex-flow: column; + align-items: stretch; + justify-content: space-between; +} + +.input-math input { padding-left: 30px; text-align: right; } + +.input-password { + position: relative; + display: inline-flex; + flex-flow: column; + align-items: stretch; + justify-content: space-between; +} + +.input-password input { + font-family: verdana, sans-serif; + width: 100%; + padding-right: 36px; +} + + +.input-password.visible input { font-family: inherit; } +.input-password.visible .input-password-button { color: var(--ui-color-danger); } +.input-password.visible .input-password-button svg { stroke-width: 2; } + + + +/* PASSWORD STRENGTH */ +.password-strength { + width: calc(100% - 6px); + height: 3px; + margin: -7px 3px 0; + border-radius: 10px; + background-color: var(--ui-color-background-input); + cursor: default; +} + +.password-strength-progress { + height: 100%; + border-radius: inherit; + transition: width var(--ui-animation-speed) ease-out; + background-color: var(--ui-color-danger); +} + +.password-strength-progress.warning { background-color: var(--ui-color-warning); } +.password-strength-progress.info { background-color: var(--ui-color-info); } +.password-strength-progress.success { background-color: var(--ui-color-success); } + + +.password-strength-info { + position: absolute; + top: 0; + display: none; + cursor: default; + width: calc(100% - 2px); + flex-flow: column; + align-items: stretch; + gap: 1rem; + font-size: 0.8rem; + margin: 0.2rem 1px 0; + padding: 0.8rem; + border-radius: var(--ui-border-radius); + background-color: var(--ui-color-background-input); + border: 1px solid var(--ui-color-danger); + z-index: var(--ui-z-index-elevated); +} + +.input-password:focus-within .password-strength-info { display: flex; } + +.password-strength-info.warning { border-color: var(--ui-color-warning); } +.password-strength-info.info { border-color: var(--ui-color-info); } +.password-strength-info.success { border-color: var(--ui-color-success); } + +.password-strength-info h2 { font-size: var(--ui-font-s); text-align: left; margin-bottom: 0; } +.password-strength-info small { font-size: var(--ui-font-xs); margin: 0; line-height: 1.4; } +.password-strength-info small:empty { display: none; } + +.input-rating { min-width: fit-content; } + +.input-rating .input-inner, +.input-rating .input-inner:focus { outline: none; } + +.input-rating .input-row { + align-items: stretch; + justify-content: flex-start; + height: var(--ui-button-height); + background-color: var(--ui-color-background-input); +} + +.input-rating .button { + position: static; + right: unset; + cursor: default; + user-select: none; + -ms-touch-action: manipulation; + touch-action: manipulation; + font-size: 1.2rem; + margin: 0; +} + +.input-rating .button:focus-visible { box-shadow: none; } + +.input-rating .btn-reset { margin-left: auto; } +.input-rating .btn-reset:focus-visible { color: var(--ui-color-accent); } + +.input-rating .button.active svg { color: var(--ui-color-accent); fill: var(--ui-color-accent); } + +.input-rating .button.button-link, +.input-rating .button.button-link:focus-visible, +.input-rating .button.button-link:hover { text-decoration: none; } + +.input-rating.light:not(.has-error) .input-inner, +.input-rating.light:not(.has-error) .input-row { background-color: transparent; border: none; } + +.input-search input { + padding-left: calc(2rem + 6px); + padding-right: 2rem; + appearance: none; + -webkit-appearance: none; +} +::-webkit-search-cancel-button { display: none; } + +.input-search .input-row>.icon { top: 1px; } + +.input-search-button { display: none; } +.input-search-button.visible { display: inline-flex; } + +.input-tag .input-inner { touch-action: manipulation; } +.input-tag .input-inner:focus { outline: none; } +.input-tag .input-inner[aria-expanded="true"] { + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus); +} + + +.input-tag .input-row { + min-height: calc(var(--ui-button-height) - 2px); + padding: 4px 0.3rem 3px; + align-items: flex-start; + justify-content: flex-start; + gap: 0.2rem; + flex-wrap: wrap; +} + +.input-tag .input-row > .icon { position: static; flex-shrink: 0; margin-top: 0.14rem; } + +.input-tag .ui-tag { height: 1.7rem; } + +.input-tag-popover { width: 25ch; } +.input-tag-popover .popover-content { padding: 0.5rem; } + +.input-tag-list-tags { + display: flex; + flex-flow: row wrap; + gap: 0.2rem; + flex: 1; + max-height: 10rem; + overflow-y: auto; +} + +.input-tag-list-add-row { display: flex; align-items: center; gap: 0.5rem; } +.input-tag-list-add-row .input { width: 100px; flex: 1; } +.input-tag-list-add-row .input input { background: var(--ui-color-background-semi); } + + +.input-tag-list-tags:not(:empty) { + margin-bottom: 0.5rem; + padding-bottom: 0.5rem; + border-bottom: var(--ui-popup-border); +} + +.input-text .input-inner { + overflow: hidden; +} + +.input-time .input-row { + border-radius: inherit; + background: var(--ui-color-background-input); +} + +.input-time input { margin-left: calc(2rem - 2px); } + +.label { + height: var(--ui-button-height); + line-height: 1.6; + padding: 0; + display: inline-flex; + align-items: center; + -ms-touch-action: manipulation; + touch-action: manipulation; +} + +.label.disabled { + pointer-events: none; + -webkit-user-select: none; + user-select: none; +} + +/* to offset input's border (visually) */ +.input .label { padding-inline: 1px; } + + +.label-on-the-left .label { + padding-inline: 0; + padding-top: 1px; + width: max-content; + white-space: nowrap; +} + + +.radio.label-on-the-left, +.input-tag.label-on-the-left, +.textarea.label-on-the-left { align-items: flex-start; } + +.radio.label-on-the-left>.label, +.input-tag.label-on-the-left .label, +.textarea.label-on-the-left .label { height: calc(var(--ui-button-height) + 2px); } + +.radio.label-on-the-left>.label { margin-block: var(--ui-margin-s); } + +/* more styling defined in ../check-and-radio.css */ + +.radio { + min-width: 26ch; + width: min-content; + max-width: 100%; + + --ui-radio-padding: var(--ui-margin-s); +} + + +.radio input { + border-radius: 10rem; + width: 1.3rem; + height: 1.3rem; +} +.radio input:focus { box-shadow: none } +.radio input::after { + background: var(--ui-color-text-1); + width: 65%; + height: 65%; + border-radius: inherit; +} + + +.radio-inner { + display: flex; + flex-flow: column; + align-items: stretch; + justify-content: flex-start; + width: 100%; + padding: 0; + border: 1px solid var(--ui-color-border); + border-radius: calc(var(--ui-border-radius) + var(--ui-radio-padding)); + background-color: var(--ui-color-background-input); + overflow: hidden; +} + + +.radio-items { + display: flex; + flex-flow: column; + align-items: stretch; + justify-content: flex-start; + gap: var(--ui-radio-padding); + width: 100%; + padding: var(--ui-radio-padding) 0; + background-color: var(--ui-color-background-input); + border-radius: inherit; +} + + +.radio-item { + display: flex; + flex-flow: row; + align-items: center; + justify-content: flex-start; + gap: 0.5rem; + width: calc(100% - calc(var(--ui-radio-padding) * 2)); + margin: 0 var(--ui-radio-padding); + padding: 0 var(--ui-margin); + border-radius: var(--ui-border-radius); +} + +.radio-item.disabled { opacity: 0.5; } +.radio-item.disabled input { opacity: 1; } + +.radio-item:not(.disabled):focus-within, +.radio-item:not(.disabled):hover { background-color: var(--ui-color-highlight-1); } + + + +.radio-inner:focus-within, +.radio-inner:has(:active):not(.disabled) { + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus); +} + +.radio.has-error .radio-inner { + border-color: var(--ui-color-danger); + background-color: var(--ui-color-danger-semi); +} +.radio.has-error .info-bar-error { background-color: transparent; } + + +.has-error .radio-inner:focus-within, +.has-error .radio-inner:has(:active):not(.disabled) { + box-shadow: var(--ui-shadow-danger); + border-color: var(--ui-color-danger); +} + +.range { + position: relative; + width: 25ch; + vertical-align: top; + --range-size: calc(var(--ui-button-height) / 3 * 2); +} + +.range .range-inner { + display: flex; + flex-flow: column; + gap: 0.5rem; + flex: 1; + padding: 0 0 0.5rem; + position: relative; + height: 100%; +} + + +.range input { + -webkit-appearance: none; + appearance: none; + margin: 0; + width: 100%; + height: 0.5rem; + border-radius: 5rem; + padding-inline: 0; + border: 1px solid var(--ui-color-border); + background: var(--ui-color-background-input); + background-image: linear-gradient(var(--ui-color-highlight), var(--ui-color-highlight)); + background-size: 70% 100%; + background-repeat: no-repeat; + background-clip: padding-box; +} + + + + +.range input::-webkit-slider-runnable-track { + -webkit-appearance: none; + display: block; + height: 0.5rem; + border-radius: 0.5rem; +} + +.range input::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + background-color: var(--ui-color-text); + height: var(--range-size); + width: var(--range-size); + border-radius: 5rem; + box-shadow: 0 1px 3px #000c; + transform: translateY(calc(-50% + 0.25rem - 1px)); + transform-origin: center 25%; +} + + +.range input::-moz-range-track { + display: flex; + align-items: center; + background-color: var(--ui-color-background-input); + height: 0.5rem; + border-radius: 0.5rem; +} + +.range input::-moz-range-thumb { + background-color: var(--ui-color-text); + height: var(--range-size); + width: var(--range-size); + border-radius: 5rem; + box-shadow: 0 1px 3px #000c; +} + + +/* Cannot be merged, as it won't work in safari */ +.range:not(.disabled) input::-webkit-slider-thumb:active { scale: 0.9; } +.range:not(.disabled) input::-moz-slider-thumb:active { scale: 0.9; } + + + +.range-ticks { + display: flex; + justify-content: space-between; + margin: 0 -0.1rem 0.4rem; + cursor: default; +} +.range-ticks span { width: 3ch; text-align: center; } +.range:not(.disabled) .range-ticks span { cursor: pointer; } + + +.range.label-on-the-left { align-items: flex-end; } +.range.label-on-the-left .label { height: 1.8rem; } + +.select { font: inherit; position: relative; } + +.select select { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + + font-size: 1rem; + font-family: inherit; + background: none; + padding: 0 30px 0 var(--ui-margin-m); + width: 100%; + + border: 1px solid transparent; + height: calc(var(--ui-button-height) - 2px); + line-height: 1.2; + color: var(--ui-color-text); + background-color: var(--ui-color-background-input); + border-radius: var(--ui-border-radius); +} + +.select select:focus { outline: 0; } + +.select optgroup { font-weight: 500; } + +.select .input-row::after { + content: ""; + position: absolute; + width: 2rem; + right: 0; + top: 0; + bottom: 0; + opacity: 0.6; + pointer-events: none; + background-repeat: no-repeat; + background-position: right 0.7rem center; + background-size: 0.6rem 0.8rem; + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23bbb' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E"); +} + +.theme-light .select .input-row::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23222' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E"); +} + +.textarea { position: relative; width: 25ch; vertical-align: top; } + +.textarea.autogrow .textarea-inner::after, +.textarea textarea { + font: inherit; + line-height: 1.3; + border: 1px solid transparent; + margin: 0; + width: 100%; + padding: var(--ui-margin-m); + grid-area: 2 / 1 / 2 / 2; +} + + +.textarea .textarea-inner { + width: 100%; + display: inline-grid; + align-items: stretch; + background-color: var(--ui-color-background-input); + border-radius: var(--ui-border-radius); + border: 1px solid var(--ui-color-border); +} + +.textarea textarea { + resize: vertical; + color: var(--ui-color-text); + border-radius: var(--ui-border-radius); + border: none; + min-height: 2.6rem; + background-color: var(--ui-color-background-input); +} + + +.textarea .textarea-inner:focus-within { + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus); + outline: 0; +} + +.textarea textarea:focus { outline: none; box-shadow: none; border: none; } +.textarea textarea:invalid { border: none; box-shadow: none; } +.textarea textarea:disabled { opacity: 0.5; } + + +.textarea.autogrow .textarea-inner::after { + content: attr(data-value) " "; + visibility: hidden; + white-space: pre-wrap; + min-width: 1rem; + resize: none; + background: none; + appearance: none; +} + +.textarea.autogrow textarea { resize: none; } + + +.textarea.has-error .textarea-inner { border-color: var(--ui-color-danger); } +.textarea.has-error .textarea-inner:focus-within { box-shadow: var(--ui-shadow-danger); } + +.toggle { + --toggle-width: 60px; + --toggle-padding: 2px; + --border-radius: var(--ui-border-radius-xl); + --toggle-height: calc(var(--toggle-width) / 2.5); + --knob-size: var(--toggle-height); + + display: inline-flex; + flex-flow: column; + align-items: flex-start; + position: relative; + vertical-align: middle; + -webkit-user-select: none; + user-select: none; + + border-radius: var(--border-radius); +} + +.toggle-inner { + border: 1px solid var(--ui-color-text-2); + padding: var(--toggle-padding); + border-radius: inherit; + background-color: var(--ui-color-background-2); + position: relative; + margin-block: 3px; +} + +.toggle:has(:disabled) { pointer-events: none; opacity: 0.6; } + +.toggle:focus { outline: none; } +.toggle:focus-visible .toggle-inner { + box-shadow: var(--ui-shadow-focus); + border-color: var(--ui-color-accent); +} + +.toggle-input { display: none; } + +.toggle-label { + width: var(--toggle-width); + height: var(--toggle-height); + border-radius: calc(var(--border-radius) - var(--toggle-padding)); + display: flex; + align-items: center; + justify-content: flex-start; + flex-shrink: 0; + overflow: hidden; + cursor: pointer; +} + +.toggle-scroller { + height: 100%; + border-radius: inherit; + display: inline-flex; + align-items: center; + justify-content: center; + transition: margin-left .2s cubic-bezier(.85, .05, .18, 1.4); + flex-shrink: 0; + width: calc(200% - var(--toggle-height)); + margin-left: calc(var(--toggle-height) - var(--toggle-width) - var(--toggle-padding)); +} + +.toggle-option { + width: 50%; + height: 100%; + border-radius: inherit; + background-color: green; + display: inline-flex; + align-items: center; + justify-content: center; + background-repeat: no-repeat; + background-position: center; + background-size: calc(var(--toggle-width) / 5); +} +.toggle-option:first-of-type { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + background-color: var(--ui-color-highlight); + background-position: 41% 47%; + background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 17.5714286 9.6 9.4285714 22.4-22' fill='none' stroke='%23fff' stroke-width='4'/%3E%3C/svg%3E"); +} +.toggle-option:last-of-type { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + background-color: var(--ui-color-background-input); + background-position: 62% 55%; + background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m27.5352.4648-27.0704 27.0704m-.4648-27.5352 28 28' stroke='%23fff' stroke-width='4'/%3E%3C/svg%3E"); +} + +.theme-light .toggle-option:first-of-type { + background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 17.5714286 9.6 9.4285714 22.4-22' fill='none' stroke='%23000' stroke-width='4'/%3E%3C/svg%3E"); +} + +.theme-light .toggle-option:last-of-type { + background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m27.5352.4648-27.0704 27.0704m-.4648-27.5352 28 28' stroke='%23000' stroke-width='4'/%3E%3C/svg%3E"); +} + +.toggle-handle { + width: 0; + height: 0; + position: absolute; + transition: left .2s cubic-bezier(.85, .05, .18, 1.4); + border-radius: inherit; + left: calc(var(--toggle-height) / 2 + var(--toggle-padding)); + +} + +.toggle-knob { + width: var(--knob-size); + height: var(--knob-size); + background: var(--ui-color-text-1); + border: 1px solid var(--ui-color-text-2); + transform: translate(-50%, -50%); + border-radius: inherit; +} + +/* this is calculated in js +.checked .toggle-scroller { margin-left: 0; } +.checked .toggle-handle { left: calc(var(--toggle-width) + var(--toggle-padding) - var(--toggle-height) / 2); } +*/ + +.notification-archive { + display: flex; + flex-flow: column; + align-items: stretch; + justify-content: flex-start; + width: 100%; + z-index: 5; + transform: translateX(calc(var(--ui-notification-width) + var(--ui-notification-gap) + 1rem)); + transition: transform var(--ui-animation-speed) ease-out; +} + +.notification-archive .notification { z-index: 1; } +.notification-archive header { + display: flex; + align-items: center; + justify-content: space-between; + margin: var(--ui-notification-gap) var(--ui-notification-gap) 0; + color: var(--ui-color-text); + z-index: 1; + background-color: var(--ui-color-background-input); + padding: 0.75rem 0.5rem 0.75rem 1rem; + border-radius: var(--ui-border-radius); +} + +.notification-archive button { + color: inherit; + font-size: var(--ui-font-l); + font-weight: 300; + min-width: 1.8rem; + min-height: 1.8rem; +} + + +.notification-archive h2 { + color: inherit; + font-size: var(--ui-font-l); + margin: 0; + padding: 0; + border: none; +} +.notification-archive h2 .button { padding-inline: var(--ui-margin-m); margin-left: -0.5rem; } +.notification-archive h2 .button svg { transform: rotate(0deg); transition: transform var(--ui-animation-speed) ease-out; } + +.notification-archive.expanded h2 .button svg { transform: rotate(90deg); } + +.notification-archive.inert { pointer-events: none; } + +.notification-archive-buttons { + white-space: nowrap; + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.2rem; +} + +.notification-archive-buttons .btn-close { + font-size: 1.4rem; + height: 1.8rem; + width: 1.7rem; + padding-bottom: 0.15rem; +} + + +.notification.archived { filter: saturate(0.3); } + +.notification-timestamp { + color: var(--ui-color-text-semi); + font-size: var(--ui-font-xs); + margin-inline: 0.5rem; +} +.show-archive .notification-archive { + transform: translateX(0); + margin-bottom: 1rem; + height: auto; + overflow: visible; +} + +.notification-center { + --ui-notification-border-radius: var(--ui-border-radius); + --ui-notification-gap: 0.75rem; + --ui-notification-width: 30rem; + + position: fixed; + transform: translateZ(1px); + display: flex; + flex-flow: column; + align-items: stretch; + justify-content: flex-start; + width: calc(var(--ui-notification-width) + var(--ui-notification-gap) * 2); + top: 0; + right: 0; + z-index: -1; + max-height: 100vh; + overflow: hidden auto; + overscroll-behavior: contain; +} + +.notification-center.archive-is-visible, +.notification-center.has-active-notifications { z-index: var(--ui-z-index-popup); } + + +.notification { + font-size: var(--ui-font-m); + position: relative; + overflow: hidden; + flex-grow: 0; + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: space-between; + min-height: 2rem; + border: none; + margin: var(--ui-notification-gap) var(--ui-notification-gap) 0; + box-shadow: var(--ui-shadow-fancy); + border-radius: var(--ui-notification-border-radius); + z-index: var(--ui-z-index-popup); +} + +.notification:last-child { margin-bottom: calc(var(--ui-notification-gap) + 10px); } + +.notification button { + background: none; + color: var(--ui-color-text); + height: 1.8rem; + min-width: 1.6rem; + font-size: inherit; + padding: 0 var(--ui-margin-m); + margin: 0 var(--ui-margin-m) 0 0; + display: flex; + align-items: center; + justify-content: center; + border-radius: var(--ui-border-radius); + border: 1px solid transparent; +} + +.notification button:focus-visible { + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus); + outline: none; +} + +.notification button:hover { color: var(--ui-color-text-2); background: #2228; } +.notification button:active { color: var(--ui-color-text-1); background: #0008; } + +.notification .notification-close { + font-size: 1.4rem; + font-weight: 200; + position: relative; + padding-bottom: 0.15rem; +} + + +.notification-buttons, +.notification-icon { + min-height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +.notification-icon { width: var(--ui-button-height); } + + +.notification-msg { + color: var(--ui-color-text); + flex: 1; + display: flex; + align-items: center; + justify-content: flex-start; + padding: 0.8rem; + line-height: 1.4; + font-weight: 400; +} + +.notification-progressbar { + position: absolute; + inset: 0; + border-radius: inherit; + z-index: -1; +} + +.notification-progress { + height: 100%; + border-radius: inherit; + background-color: #ffffff15; + border: 1px solid #ffffff25; + margin: 0; + width: 0; + transition: width .2s; +} + + +.notification:focus { + border-color: var(--ui-color-accent); + box-shadow: var(--ui-shadow-focus); + outline: none; +} + + + +.notification-center-button svg { stroke: var(--ui-color-secondary); } +.notification-center-button.has-notifications svg { stroke: var(--ui-color-text); } +.notification-center-button.has-notifications svg>path:nth-child(2) { fill: var(--ui-color-text); } + + +@media (1px <= width <= 700px) { + .notification-center { + --ui-notification-width: calc(100vw - var(--ui-notification-gap) * 2); + } +} + + +@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) { + .notification { + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); + } + + .notification-info { background-color: var(--ui-color-info-semi); } + .notification-success { background-color: var(--ui-color-success-semi); } + .notification-warning { background-color: var(--ui-color-warning-semi); } + .notification-error { background-color: var(--ui-color-danger-semi); } +} +/*# sourceMappingURL=ui.css.map */ diff --git a/src/popover/Popover.svelte b/src/popover/Popover.svelte index ab06076f..8a9803f8 100644 --- a/src/popover/Popover.svelte +++ b/src/popover/Popover.svelte @@ -112,7 +112,7 @@ export function close () { function focusFirst () { let first = getFocusableElements().shift(); const last = getFocusableElements().pop(); - if (!first && !last) { + if (!first && !last && contentEl) { contentEl.setAttribute('tabindex', 0); first = contentEl; } @@ -123,7 +123,7 @@ function focusFirst () { function focusLast () { const first = getFocusableElements().shift(); let last = getFocusableElements().pop(); - if (!first && !last) { + if (!first && !last && contentEl) { contentEl.setAttribute('tabindex', 0); last = contentEl; }