diff --git a/build/standalone/assets/tidy_feedback.css b/build/standalone/assets/tidy_feedback.css index 489b18e..13b29e2 100644 --- a/build/standalone/assets/tidy_feedback.css +++ b/build/standalone/assets/tidy_feedback.css @@ -1,5 +1,5 @@ @charset "UTF-8";/*! - * CoreUI Bootstrap Theme v5.4.1 (https://coreui.io) - * Copyright (c) 2025 creativeLabs Łukasz Holeczek - * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE) - */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#3634a3;--bs-secondary-text-emphasis:#212233;--bs-success-text-emphasis:#0f5722;--bs-info-text-emphasis:#184c77;--bs-warning-text-emphasis:#764705;--bs-danger-text-emphasis:#671414;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#343a40;--bs-primary-bg-subtle:#cfc7f3;--bs-secondary-bg-subtle:#ced2d8;--bs-success-bg-subtle:#cbedd6;--bs-info-bg-subtle:#c0e6ff;--bs-warning-bg-subtle:#feecc5;--bs-danger-bg-subtle:#f9d4d4;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9d92e6;--bs-secondary-border-subtle:#9da5b1;--bs-success-border-subtle:#96dbad;--bs-info-border-subtle:#80c6ff;--bs-warning-border-subtle:#fcd88a;--bs-danger-border-subtle:#f2a9a9;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33,37,41,.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(37,43,54,.38);--bs-tertiary-color-rgb:37,42.92,54.02;--bs-tertiary-bg:rgba(33,37,41,.75);--bs-tertiary-bg-rgb:33,37,41;--bs-body-color-dark:#dee2e6;--bs-body-color-rgb-dark:222,226,230;--bs-body-bg-dark:#212529;--bs-body-bg-rgb-dark:33,37,41;--bs-emphasis-color-dark:#fff;--bs-emphasis-color-rgb-dark:255,255,255;--bs-secondary-color-dark:rgba(222,226,230,.75);--bs-secondary-color-rgb-dark:222,226,230;--bs-secondary-bg-dark:#343a40;--bs-secondary-bg-rgb-dark:52,58,64;--bs-tertiary-color-dark:rgba(222,226,230,.5);--bs-tertiary-color-rgb-dark:222,226,230;--bs-tertiary-bg-dark:#2b3035;--bs-tertiary-bg-rgb-dark:42.5,47.5,52.5;--bs-high-emphasis:rgba(37,43,54,.95);--bs-medium-emphasis:rgba(37,43,54,.681);--bs-disabled:rgba(37,43,54,.38);--bs-high-emphasis-inverse:hsla(0,0%,100%,.87);--bs-medium-emphasis-inverse:hsla(0,0%,100%,.6);--bs-disabled-inverse:hsla(0,0%,100%,.38);--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10.4,88,202.4;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0,0,0,.175);--bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 .5rem 1rem rgba(0,0,0,.15);--bs-box-shadow-sm:0 .125rem .25rem rgba(0,0,0,.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0,0,0,.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0,0,0,.075);--bs-focus-ring-width:.25rem;--bs-focus-ring-opacity:.25;--bs-focus-ring-color:rgba(13,110,253,.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}img{vertical-align:middle}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button{font-family:inherit;font-size:inherit;line-height:inherit;margin:0;text-transform:none}[role=button]{cursor:pointer}[type=button],[type=reset],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{border-style:none;padding:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{-webkit-appearance:button;font:inherit}[hidden]{display:none!important}.container{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-left:auto;margin-right:auto;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}@media (min-width:1400px){.container{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px;--bs-mobile-breakpoint:lg}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--bs-gutter-x)*-.5);margin-right:calc(var(--bs-gutter-x)*-.5);margin-top:calc(var(--bs-gutter-y)*-1)}.row>*{flex-shrink:0;margin-top:var(--bs-gutter-y);max-width:100%;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}@media (min-width:768px){.col-md-6{flex:0 0 auto;width:50%}.offset-md-3{margin-inline-start:25%}}.btn{--bs-btn-padding-x:.75rem;--bs-btn-padding-y:.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);--bs-btn-disabled-opacity:.65;--bs-btn-focus-box-shadow:0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb),.5);background-color:var(--bs-btn-bg);border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);color:var(--bs-btn-color);cursor:pointer;display:inline-block;font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-user-select:none;user-select:none;vertical-align:middle}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);color:var(--bs-btn-hover-color)}.btn:focus-visible{background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);box-shadow:var(--bs-btn-focus-box-shadow);color:var(--bs-btn-hover-color);outline:0}.btn:first-child:active,:not(.btn-check)+.btn:active{background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color);color:var(--bs-btn-active-color)}.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled{background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);color:var(--bs-btn-disabled-color);opacity:var(--bs-btn-disabled-opacity);pointer-events:none}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius);color:var(--bs-alert-color);margin-bottom:var(--bs-alert-margin-bottom);padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);position:relative}.alert-dismissible{padding-inline-end:3rem}.alert-dismissible .btn-close{inset-inline-end:0;padding:1.25rem 1rem;position:absolute;top:0;z-index:2}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:var(--bs-progress-height)}}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3E%3C/svg%3E");--bs-btn-close-opacity:.5;--bs-btn-close-hover-opacity:.75;--bs-btn-close-focus-shadow:0 0 0 .25rem rgba(13,110,253,.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:.25;background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;box-sizing:content-box;filter:var(--bs-btn-close-filter);height:1em;opacity:var(--bs-btn-close-opacity);padding:.25em;width:1em}.btn-close,.btn-close:hover{color:var(--bs-btn-close-color)}.btn-close:hover{opacity:var(--bs-btn-close-hover-opacity);text-decoration:none}.btn-close:focus{box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity);outline:0}.btn-close:disabled{opacity:var(--bs-btn-close-disabled-opacity);pointer-events:none;-webkit-user-select:none;user-select:none}:root{--bs-btn-close-filter: ;--bs-carousel-indicator-active-bg:#fff;--bs-carousel-caption-color:#fff;--bs-carousel-control-icon-filter: }@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.placeholder{background-color:currentcolor;cursor:wait;display:inline-block;min-height:1em;opacity:.5;vertical-align:middle}.placeholder.btn:before{content:"";display:inline-block}@keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.position-fixed{position:fixed!important}.top-0{top:0!important}.mt-3{margin-top:1rem!important}button{border-radius:var(--radius-base);padding:var(--spacer-sm) var(--spacer-md)}button,button:hover{transition:var(--transform-colors-in)}button.btn-submit{background-color:var(--color-primary);border:1px solid var(--color-primary-700);color:var(--color-text-light)}button.btn-submit:hover{background-color:var(--color-primary-700);color:var(--color-text-light)}button.btn-cancel{background-color:var(--color-gray-100);border:1px solid var(--color-gray-300);color:var(--color-text-dark)}button.btn-cancel:hover{background-color:var(--color-gray-300)}.tidy-feedback-start{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;transform:rotate(-90deg);transform-origin:right bottom}.tidy-feedback-form,.tidy-feedback-start{position:fixed;right:0;top:var(--position-top);z-index:var(--z-index-form)}.tidy-feedback-form{background-color:#fff;border:1px solid var(--color-border);border-bottom-left-radius:var(--radius-base);border-right:0;border-top-left-radius:var(--radius-base);box-shadow:var(--shadow-lg);color:var(--color-text-dark);max-width:100%;overflow:hidden;padding:2em 1em 1em;width:var(--width-base)}.tidy-feedback-draggable-handle{background-color:var(--color-gray-100);border:none;border-top-left-radius:var(--radius-base);border-top-right-radius:var(--radius-base);cursor:move;display:flex;flex-direction:column;gap:1px;height:1em;left:0;place-content:center;place-items:center;position:absolute;top:0;width:100%}.tidy-feedback-draggable-handle span{border-bottom:1px solid var(--color-border);width:2em}.tidy-feedback-message-wrapper{z-index:var(--z-index-messages)}:root{--color-text-light:#fff;--color-text-dark:#000;--color-gray-100:#f2f2f3;--color-gray-200:#d8d7db;--color-gray-300:#bebcc2;--color-gray-400:#a4a1aa;--color-gray-500:#898792;--color-gray-600:#6f6d78;--color-gray-700:#57555e;--color-gray-800:#3e3d43;--color-gray-900:#252428;--color-border:var(--color-gray-300);--color-primary:#4f35b6;--color-primary-300:#3e298e;--color-primary-700:#6a51cd;--color-danger:#b63535;--color-danger-100:#3f1212;--color-danger-300:#8e2929;--color-danger-700:#e3a0a0;--color-danger-900:#faefef;--color-warning:#b68035;--color-warning-100:#3f2d12;--color-warning-300:#8e6429;--color-warning-700:#e3c7a0;--color-warning-900:#faf6ef;--color-info:#35a7b6;--color-info-100:#123a3f;--color-info-300:#29838e;--color-info-700:#a0dce3;--color-info-900:#eff9fa;--color-success:#35b660;--color-success-100:#123f21;--color-success-300:#298e4b;--color-success-700:#a0e3b7;--color-success-900:#effaf3;--font-size-sm:.9em;--font-size-md:1.1em;--font-size-lg:1.2em;--shadow-base:0 2px 4px rgba(0,0,0,.1);--shadow-lg:0 4px 8px rgba(0,0,0,.2);--position-top:5vh;--width-base:20em;--radius-base:4px;--spacer-xs:.25em;--spacer-sm:.5em;--spacer-md:1em;--spacer-lg:2em;--z-index-region:10000;--z-index-form:10001;--z-index-messages:10002;--transform-colors-out:color .2s ease-in,background-color .2s ease-in,border-color .2s ease-in;--transform-colors-in:color .4s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out}#tidy-feedback-region{position:fixed;z-index:var(--z-index-region)}#tidy-feedback-region .resizable{inset:0;position:absolute}#tidy-feedback-region .resizable .resizers{border:2px dashed var(--color-primary);box-sizing:border-box;cursor:move;height:100%;width:100%}#tidy-feedback-region .resizable .resizer{--resizer-offset:-4px;background:#fff;border:2px solid var(--color-primary);border-radius:50%;height:12px;position:absolute;width:12px}#tidy-feedback-region .resizable .resizer.top-left{cursor:nwse-resize;left:var(--resizer-offset);top:var(--resizer-offset)}#tidy-feedback-region .resizable .resizer.top-right{cursor:nesw-resize;right:var(--resizer-offset);top:var(--resizer-offset)}#tidy-feedback-region .resizable .resizer.bottom-left{bottom:var(--resizer-offset);cursor:nesw-resize;left:var(--resizer-offset)}#tidy-feedback-region .resizable .resizer.bottom-right{bottom:var(--resizer-offset);cursor:nwse-resize;right:var(--resizer-offset)}#tidy-feedback-region .overlays>div{background:var(--color-primary);color:transparent;opacity:.1;position:fixed}#tidy-feedback-region .overlays .top{left:0;right:0;top:0}#tidy-feedback-region .overlays .left{bottom:0;left:0;top:0}#tidy-feedback-region .overlays .right{bottom:0;right:0;top:0}#tidy-feedback-region .overlays .bottom{bottom:0;left:0;right:0} +* CoreUI Bootstrap Theme v5.4.1 (https://coreui.io) +* Copyright (c) 2025 creativeLabs Łukasz Holeczek +* Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE) +*/:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#3634a3;--bs-secondary-text-emphasis:#212233;--bs-success-text-emphasis:#0f5722;--bs-info-text-emphasis:#184c77;--bs-warning-text-emphasis:#764705;--bs-danger-text-emphasis:#671414;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#343a40;--bs-primary-bg-subtle:#cfc7f3;--bs-secondary-bg-subtle:#ced2d8;--bs-success-bg-subtle:#cbedd6;--bs-info-bg-subtle:#c0e6ff;--bs-warning-bg-subtle:#feecc5;--bs-danger-bg-subtle:#f9d4d4;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9d92e6;--bs-secondary-border-subtle:#9da5b1;--bs-success-border-subtle:#96dbad;--bs-info-border-subtle:#80c6ff;--bs-warning-border-subtle:#fcd88a;--bs-danger-border-subtle:#f2a9a9;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33,37,41,.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(37,43,54,.38);--bs-tertiary-color-rgb:37,42.92,54.02;--bs-tertiary-bg:rgba(33,37,41,.75);--bs-tertiary-bg-rgb:33,37,41;--bs-body-color-dark:#dee2e6;--bs-body-color-rgb-dark:222,226,230;--bs-body-bg-dark:#212529;--bs-body-bg-rgb-dark:33,37,41;--bs-emphasis-color-dark:#fff;--bs-emphasis-color-rgb-dark:255,255,255;--bs-secondary-color-dark:rgba(222,226,230,.75);--bs-secondary-color-rgb-dark:222,226,230;--bs-secondary-bg-dark:#343a40;--bs-secondary-bg-rgb-dark:52,58,64;--bs-tertiary-color-dark:rgba(222,226,230,.5);--bs-tertiary-color-rgb-dark:222,226,230;--bs-tertiary-bg-dark:#2b3035;--bs-tertiary-bg-rgb-dark:42.5,47.5,52.5;--bs-high-emphasis:rgba(37,43,54,.95);--bs-medium-emphasis:rgba(37,43,54,.681);--bs-disabled:rgba(37,43,54,.38);--bs-high-emphasis-inverse:hsla(0,0%,100%,.87);--bs-medium-emphasis-inverse:hsla(0,0%,100%,.6);--bs-disabled-inverse:hsla(0,0%,100%,.38);--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10.4,88,202.4;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0,0,0,.175);--bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 .5rem 1rem rgba(0,0,0,.15);--bs-box-shadow-sm:0 .125rem .25rem rgba(0,0,0,.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0,0,0,.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0,0,0,.075);--bs-focus-ring-width:.25rem;--bs-focus-ring-opacity:.25;--bs-focus-ring-color:rgba(13,110,253,.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}.s-tidy_feedback-tidy_feedback,.s-tidy_feedback-tidy_feedback:after,.s-tidy_feedback-tidy_feedback:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}.h1.s-tidy_feedback-tidy_feedback,h1.s-tidy_feedback-tidy_feedback{color:var(--bs-heading-color);font-size:calc(1.375rem + 1.5vw);font-weight:500;line-height:1.2;margin-bottom:.5rem;margin-top:0}@media (min-width:1200px){.h1.s-tidy_feedback-tidy_feedback,h1.s-tidy_feedback-tidy_feedback{font-size:2.5rem}}p.s-tidy_feedback-tidy_feedback{margin-bottom:1rem;margin-top:0}label.s-tidy_feedback-tidy_feedback{display:inline-block}button.s-tidy_feedback-tidy_feedback{border-radius:0}button.s-tidy_feedback-tidy_feedback:focus:not(:focus-visible){outline:0}button.s-tidy_feedback-tidy_feedback,input.s-tidy_feedback-tidy_feedback,textarea.s-tidy_feedback-tidy_feedback{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button.s-tidy_feedback-tidy_feedback{text-transform:none}[type=button].s-tidy_feedback-tidy_feedback,[type=reset].s-tidy_feedback-tidy_feedback,button.s-tidy_feedback-tidy_feedback{-webkit-appearance:button}[type=button].s-tidy_feedback-tidy_feedback:not(:disabled),[type=reset].s-tidy_feedback-tidy_feedback:not(:disabled),button.s-tidy_feedback-tidy_feedback:not(:disabled){cursor:pointer}.s-tidy_feedback-tidy_feedback::-moz-focus-inner{border-style:none;padding:0}textarea.s-tidy_feedback-tidy_feedback{resize:vertical}.s-tidy_feedback-tidy_feedback::-webkit-datetime-edit-day-field,.s-tidy_feedback-tidy_feedback::-webkit-datetime-edit-fields-wrapper,.s-tidy_feedback-tidy_feedback::-webkit-datetime-edit-hour-field,.s-tidy_feedback-tidy_feedback::-webkit-datetime-edit-minute,.s-tidy_feedback-tidy_feedback::-webkit-datetime-edit-month-field,.s-tidy_feedback-tidy_feedback::-webkit-datetime-edit-text,.s-tidy_feedback-tidy_feedback::-webkit-datetime-edit-year-field{padding:0}.s-tidy_feedback-tidy_feedback::-webkit-inner-spin-button{height:auto}.s-tidy_feedback-tidy_feedback::-webkit-search-decoration{-webkit-appearance:none}.s-tidy_feedback-tidy_feedback::-webkit-color-swatch-wrapper{padding:0}.s-tidy_feedback-tidy_feedback::file-selector-button{-webkit-appearance:button;font:inherit}[hidden].s-tidy_feedback-tidy_feedback{display:none!important}.container.s-tidy_feedback-tidy_feedback{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-left:auto;margin-right:auto;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}@media (min-width:576px){.container.s-tidy_feedback-tidy_feedback{max-width:540px}}@media (min-width:768px){.container.s-tidy_feedback-tidy_feedback{max-width:720px}}@media (min-width:992px){.container.s-tidy_feedback-tidy_feedback{max-width:960px}}@media (min-width:1200px){.container.s-tidy_feedback-tidy_feedback{max-width:1140px}}@media (min-width:1400px){.container.s-tidy_feedback-tidy_feedback{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px;--bs-mobile-breakpoint:lg}.row.s-tidy_feedback-tidy_feedback{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--bs-gutter-x)*-.5);margin-right:calc(var(--bs-gutter-x)*-.5);margin-top:calc(var(--bs-gutter-y)*-1)}.row.s-tidy_feedback-tidy_feedback>:where(.s-tidy_feedback-tidy_feedback){flex-shrink:0;margin-top:var(--bs-gutter-y);max-width:100%;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}@media (min-width:768px){.col-md-6.s-tidy_feedback-tidy_feedback{flex:0 0 auto;width:50%}.offset-md-3.s-tidy_feedback-tidy_feedback{margin-inline-start:25%}}.form-label.s-tidy_feedback-tidy_feedback{margin-bottom:.5rem}.form-control.s-tidy_feedback-tidy_feedback{appearance:none;background-clip:padding-box;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);color:var(--bs-body-color);display:block;font-size:1rem;font-weight:400;line-height:1.5;padding:.375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.form-control.s-tidy_feedback-tidy_feedback{transition:none}}.form-control.s-tidy_feedback-tidy_feedback:focus{background-color:var(--bs-body-bg);border-color:#86b7fe;box-shadow:0 0 0 .25rem #0d6efd40;color:var(--bs-body-color);outline:0}.form-control.s-tidy_feedback-tidy_feedback::-webkit-date-and-time-value{height:1.5em;margin:0;min-width:85px}.form-control.s-tidy_feedback-tidy_feedback::-webkit-datetime-edit{display:block;padding:0}.form-control.s-tidy_feedback-tidy_feedback::placeholder{color:var(--bs-input-placeholder-color,var(--bs-secondary-color));opacity:1}.form-control.s-tidy_feedback-tidy_feedback:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control.s-tidy_feedback-tidy_feedback::file-selector-button{background-color:var(--bs-tertiary-bg);border:0 solid;border-color:inherit;border-inline-end-width:var(--bs-border-width);border-radius:0;color:var(--bs-body-color);margin:-.375rem -.75rem;margin-inline-end:.75rem;padding:.375rem .75rem;pointer-events:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control.s-tidy_feedback-tidy_feedback::file-selector-button{transition:none}}.form-control.s-tidy_feedback-tidy_feedback:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}textarea.form-control.s-tidy_feedback-tidy_feedback{min-height:calc(1.5em + .75rem + var(--bs-border-width)*2)}.btn.s-tidy_feedback-tidy_feedback{--bs-btn-padding-x:.75rem;--bs-btn-padding-y:.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);--bs-btn-disabled-opacity:.65;--bs-btn-focus-box-shadow:0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb),.5);background-color:var(--bs-btn-bg);border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);color:var(--bs-btn-color);cursor:pointer;display:inline-block;font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-user-select:none;user-select:none;vertical-align:middle}@media (prefers-reduced-motion:reduce){.btn.s-tidy_feedback-tidy_feedback{transition:none}}.btn.s-tidy_feedback-tidy_feedback:hover{background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);color:var(--bs-btn-hover-color)}.btn.s-tidy_feedback-tidy_feedback:focus-visible{background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);box-shadow:var(--bs-btn-focus-box-shadow);color:var(--bs-btn-hover-color);outline:0}.btn.s-tidy_feedback-tidy_feedback:first-child:active,.s-tidy_feedback-tidy_feedback:not(.btn-check)+.btn:where(.s-tidy_feedback-tidy_feedback):active{background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color);color:var(--bs-btn-active-color)}.btn.s-tidy_feedback-tidy_feedback:first-child:active:focus-visible,.s-tidy_feedback-tidy_feedback:not(.btn-check)+.btn:where(.s-tidy_feedback-tidy_feedback):active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.s-tidy_feedback-tidy_feedback:disabled{background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);color:var(--bs-btn-disabled-color);opacity:var(--bs-btn-disabled-opacity);pointer-events:none}.alert.s-tidy_feedback-tidy_feedback{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius);color:var(--bs-alert-color);margin-bottom:var(--bs-alert-margin-bottom);padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);position:relative}.alert-dismissible.s-tidy_feedback-tidy_feedback{padding-inline-end:3rem}.alert-dismissible.s-tidy_feedback-tidy_feedback .btn-close:where(.s-tidy_feedback-tidy_feedback){inset-inline-end:0;padding:1.25rem 1rem;position:absolute;top:0;z-index:2}.alert-success.s-tidy_feedback-tidy_feedback{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info.s-tidy_feedback-tidy_feedback{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-danger.s-tidy_feedback-tidy_feedback{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}@keyframes s-tidy_feedback-tidy_feedback-progress-bar-stripes{0%{background-position-x:var(--bs-progress-height)}}.btn-close.s-tidy_feedback-tidy_feedback{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3E%3C/svg%3E");--bs-btn-close-opacity:.5;--bs-btn-close-hover-opacity:.75;--bs-btn-close-focus-shadow:0 0 0 .25rem rgba(13,110,253,.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:.25;background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;box-sizing:content-box;filter:var(--bs-btn-close-filter);height:1em;opacity:var(--bs-btn-close-opacity);padding:.25em;width:1em}.btn-close.s-tidy_feedback-tidy_feedback,.btn-close.s-tidy_feedback-tidy_feedback:hover{color:var(--bs-btn-close-color)}.btn-close.s-tidy_feedback-tidy_feedback:hover{opacity:var(--bs-btn-close-hover-opacity);text-decoration:none}.btn-close.s-tidy_feedback-tidy_feedback:focus{box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity);outline:0}.btn-close.s-tidy_feedback-tidy_feedback:disabled{opacity:var(--bs-btn-close-disabled-opacity);pointer-events:none;-webkit-user-select:none;user-select:none}:root{--bs-btn-close-filter: ;--bs-carousel-indicator-active-bg:#fff;--bs-carousel-caption-color:#fff;--bs-carousel-control-icon-filter: }@keyframes s-tidy_feedback-tidy_feedback-spinner-border{to{transform:rotate(1turn)}}@keyframes s-tidy_feedback-tidy_feedback-spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.placeholder.s-tidy_feedback-tidy_feedback{background-color:currentcolor;cursor:wait;display:inline-block;min-height:1em;opacity:.5;vertical-align:middle}.placeholder.btn.s-tidy_feedback-tidy_feedback:before{content:"";display:inline-block}@keyframes s-tidy_feedback-tidy_feedback-placeholder-glow{50%{opacity:.2}}@keyframes s-tidy_feedback-tidy_feedback-placeholder-wave{to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.position-fixed.s-tidy_feedback-tidy_feedback{position:fixed!important}.top-0.s-tidy_feedback-tidy_feedback{top:0!important}.mt-3.s-tidy_feedback-tidy_feedback{margin-top:1rem!important}.mb-3.s-tidy_feedback-tidy_feedback{margin-bottom:1rem!important}button.s-tidy_feedback-tidy_feedback{border-radius:var(--radius-base);padding:var(--spacer-sm) var(--spacer-md)}button.s-tidy_feedback-tidy_feedback,button.s-tidy_feedback-tidy_feedback:hover{transition:var(--transform-colors-in)}button.btn-submit.s-tidy_feedback-tidy_feedback{background-color:var(--color-primary);border:1px solid var(--color-primary-700);color:var(--color-text-light)}button.btn-submit.s-tidy_feedback-tidy_feedback:hover{background-color:var(--color-primary-700);color:var(--color-text-light)}button.btn-cancel.s-tidy_feedback-tidy_feedback{background-color:var(--color-gray-100);border:1px solid var(--color-gray-300);color:var(--color-text-dark)}button.btn-cancel.s-tidy_feedback-tidy_feedback:hover{background-color:var(--color-gray-300)}.tidy-feedback-container.s-tidy_feedback-tidy_feedback{font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height)}.tidy-feedback-start.s-tidy_feedback-tidy_feedback{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;transform:rotate(-90deg);transform-origin:right bottom}.tidy-feedback-form.s-tidy_feedback-tidy_feedback,.tidy-feedback-start.s-tidy_feedback-tidy_feedback{position:fixed;right:0;top:var(--position-top);z-index:var(--z-index-form)}.tidy-feedback-form.s-tidy_feedback-tidy_feedback{background-color:#fff;border:1px solid var(--color-border);border-bottom-left-radius:var(--radius-base);border-right:0;border-top-left-radius:var(--radius-base);box-shadow:var(--shadow-lg);color:var(--color-text-dark);max-width:100%;overflow:hidden;padding:2em 1em 1em;width:var(--width-base)}.tidy-feedback-draggable-handle.s-tidy_feedback-tidy_feedback{background-color:var(--color-gray-100);border:none;border-top-left-radius:var(--radius-base);border-top-right-radius:var(--radius-base);cursor:move;display:flex;flex-direction:column;gap:1px;height:1em;left:0;place-content:center;place-items:center;position:absolute;top:0;width:100%}.tidy-feedback-draggable-handle.s-tidy_feedback-tidy_feedback span:where(.s-tidy_feedback-tidy_feedback){border-bottom:1px solid var(--color-border);width:2em}.tidy-feedback-form-title.s-tidy_feedback-tidy_feedback{font-size:1.2em;font-weight:700;margin-bottom:1em}.tidy-feedback-form-lead.s-tidy_feedback-tidy_feedback{margin-bottom:1em}.tidy-feedback-message-wrapper.s-tidy_feedback-tidy_feedback{z-index:var(--z-index-messages)}.form-label.s-tidy_feedback-tidy_feedback{font-size:var(--font-size-sm);font-weight:700}.form-row.s-tidy_feedback-tidy_feedback:not(.required) label:where(.s-tidy_feedback-tidy_feedback):after{color:var(--color-gray-500);content:"(optional)";font-weight:400;margin-left:10px}:root{--color-text-light:#fff;--color-text-dark:#000;--color-gray-100:#f2f2f3;--color-gray-200:#d8d7db;--color-gray-300:#bebcc2;--color-gray-400:#a4a1aa;--color-gray-500:#898792;--color-gray-600:#6f6d78;--color-gray-700:#57555e;--color-gray-800:#3e3d43;--color-gray-900:#252428;--color-border:var(--color-gray-300);--color-primary:#4f35b6;--color-primary-300:#3e298e;--color-primary-700:#6a51cd;--color-danger:#b63535;--color-danger-100:#3f1212;--color-danger-300:#8e2929;--color-danger-700:#e3a0a0;--color-danger-900:#faefef;--color-warning:#b68035;--color-warning-100:#3f2d12;--color-warning-300:#8e6429;--color-warning-700:#e3c7a0;--color-warning-900:#faf6ef;--color-info:#35a7b6;--color-info-100:#123a3f;--color-info-300:#29838e;--color-info-700:#a0dce3;--color-info-900:#eff9fa;--color-success:#35b660;--color-success-100:#123f21;--color-success-300:#298e4b;--color-success-700:#a0e3b7;--color-success-900:#effaf3;--font-size-sm:.9em;--font-size-md:1.1em;--font-size-lg:1.2em;--shadow-base:0 2px 4px rgba(0,0,0,.1);--shadow-lg:0 4px 8px rgba(0,0,0,.2);--position-top:5vh;--width-base:20em;--radius-base:4px;--spacer-xs:.25em;--spacer-sm:.5em;--spacer-md:1em;--spacer-lg:2em;--z-index-region:10000;--z-index-form:10001;--z-index-messages:10002;--transform-colors-out:color .2s ease-in,background-color .2s ease-in,border-color .2s ease-in;--transform-colors-in:color .4s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out}#tidy-feedback-region.s-tidy_feedback-tidy_feedback{position:fixed;z-index:var(--z-index-region)}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .resizable:where(.s-tidy_feedback-tidy_feedback){inset:0;position:absolute}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .resizable:where(.s-tidy_feedback-tidy_feedback) .resizers:where(.s-tidy_feedback-tidy_feedback){border:2px dashed var(--color-primary);box-sizing:border-box;cursor:move;height:100%;width:100%}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .resizable:where(.s-tidy_feedback-tidy_feedback) .resizer:where(.s-tidy_feedback-tidy_feedback){--resizer-offset:-4px;background:#fff;border:2px solid var(--color-primary);border-radius:50%;height:12px;position:absolute;width:12px}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .resizable:where(.s-tidy_feedback-tidy_feedback) .resizer.top-left:where(.s-tidy_feedback-tidy_feedback){cursor:nwse-resize;left:var(--resizer-offset);top:var(--resizer-offset)}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .resizable:where(.s-tidy_feedback-tidy_feedback) .resizer.top-right:where(.s-tidy_feedback-tidy_feedback){cursor:nesw-resize;right:var(--resizer-offset);top:var(--resizer-offset)}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .resizable:where(.s-tidy_feedback-tidy_feedback) .resizer.bottom-left:where(.s-tidy_feedback-tidy_feedback){bottom:var(--resizer-offset);cursor:nesw-resize;left:var(--resizer-offset)}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .resizable:where(.s-tidy_feedback-tidy_feedback) .resizer.bottom-right:where(.s-tidy_feedback-tidy_feedback){bottom:var(--resizer-offset);cursor:nwse-resize;right:var(--resizer-offset)}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .overlays:where(.s-tidy_feedback-tidy_feedback)>div:where(.s-tidy_feedback-tidy_feedback){background:var(--color-primary);color:transparent;opacity:.1;position:fixed}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .overlays:where(.s-tidy_feedback-tidy_feedback) .top:where(.s-tidy_feedback-tidy_feedback){left:0;right:0;top:0}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .overlays:where(.s-tidy_feedback-tidy_feedback) .left:where(.s-tidy_feedback-tidy_feedback){bottom:0;left:0;top:0}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .overlays:where(.s-tidy_feedback-tidy_feedback) .right:where(.s-tidy_feedback-tidy_feedback){bottom:0;right:0;top:0}#tidy-feedback-region.s-tidy_feedback-tidy_feedback .overlays:where(.s-tidy_feedback-tidy_feedback) .bottom:where(.s-tidy_feedback-tidy_feedback){bottom:0;left:0;right:0} diff --git a/build/standalone/tidy_feedback.min.js b/build/standalone/tidy_feedback.min.js index 76296f5..8f8bc85 100644 --- a/build/standalone/tidy_feedback.min.js +++ b/build/standalone/tidy_feedback.min.js @@ -1,3 +1,3 @@ -(function(ue){typeof define=="function"&&define.amd?define(ue):ue()})(function(){"use strict";var fe=Array.isArray,Vn=Array.prototype.indexOf,de=Array.from,pe=Object.defineProperty,Wt=Object.getOwnPropertyDescriptor,zn=Object.prototype,Hn=Array.prototype,Yn=Object.getPrototypeOf,Ve=Object.isExtensible;const Ft=32,he=64,rt=256,ge=512,Y=1024,pt=2048,Ct=4096,st=8192,qt=16384,me=32768,ve=65536,Xn=1<<17,ze=1<<19,Jn=1<<20,ye=1<<21,Kn=1<<22,kt=1<<23,ee=Symbol("$state"),we=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},U=Symbol();function He(t){return t===this.v}function Ye(t){return e=t,n=this.v,!(e!=e?n==n:e!==n||e!==null&&typeof e=="object"||typeof e=="function");var e,n}let ot=null;function ne(t){ot=t}function Xe(t,e=!1,n){ot={p:ot,c:null,e:null,s:t,x:null,l:null}}function Je(t){var e=ot,n=e.e;if(n!==null)for(var i of(e.e=null,n))dn(i);return ot=e.p,{}}const Gn=new WeakMap;function be(t,e){for(;e!==null;){if(128&e.f)try{return void e.b.error(t)}catch(n){t=n}e=e.parent}throw t instanceof Error&&Ke(t),t}function Ke(t){const e=Gn.get(t);e&&(pe(t,"message",{value:e.message}),pe(t,"stack",{value:e.stack}))}let re=[];function Qn(){var t=re;re=[],(function(e){for(var n=0;n{try{var l=t()}catch(f){l=Promise.reject(f)}var c=()=>l;s=o?.then(c,c)??Promise.resolve(l),o=s;var u=q,d=i.pending;a&&(i.update_pending_count(1),d||u.increment());const p=(f,v=void 0)=>{o=null,d||u.activate(),v?v!==we&&(r.f|=kt,Ce(r,v)):((r.f&kt)!==0&&(r.f^=kt),Ce(r,f)),a&&(i.update_pending_count(-1),d||u.decrement()),tn()};if(s.then(p,f=>p(null,f||"unknown")),u)return()=>{queueMicrotask(()=>u.neuter())}}),new Promise(l=>{(function c(u){function d(){u===s?l(r):c(s)}u.then(d,d)})(s)})}function Qe(t){var e=t.effects;if(e!==null){t.effects=null;for(var n=0;ntr(d))).then(d=>{a?.activate(),c();try{n([...t.map(i),...d])}catch(p){(l.f&qt)===0&&be(p,l)}a?.deactivate(),tn()}).catch(d=>{u.error(d)})}else n(t.map(i))}function tn(){yt(null),ut(null),ne(null)}const Ut=new Set;let q=null,Pt=null,en=new Set,oe=[];function nn(){const t=oe.shift();oe.length>0&&queueMicrotask(nn),t()}let Bt=[],Se=null,Ee=!1;class Lt{current=new Map;#o=new Map;#i=new Set;#t=0;#c=null;#u=!1;#n=[];#a=[];#r=[];#e=[];#l=[];#f=[];#d=[];skipped_effects=new Set;process(e){Bt=[];var n=null;if(Ut.size>1){n=new Map,Pt=new Map;for(const[r,o]of this.current)n.set(r,{v:r.v,wv:r.wv}),r.v=o;for(const r of Ut)if(r!==this)for(const[o,a]of r.#o)n.has(o)||(n.set(o,{v:o.v,wv:o.wv}),o.v=a)}for(const r of e)this.#h(r);if(this.#n.length===0&&this.#t===0){this.#p();var i=this.#r,s=this.#e;this.#r=[],this.#e=[],this.#l=[],q=null,rn(i),rn(s),q===null?q=this:Ut.delete(this),this.#c?.resolve()}else this.#s(this.#r),this.#s(this.#e),this.#s(this.#l);if(n){for(const[r,{v:o,wv:a}]of n)r.wv<=a&&(r.v=o);Pt=null}for(const r of this.#n)Jt(r);for(const r of this.#a)Jt(r);this.#n=[],this.#a=[]}#h(e){e.f^=Y;for(var n=e.first;n!==null;){var i=n.f,s=!!(96&i);if(!(s&&(i&Y)!==0||(i&st)!==0||this.skipped_effects.has(n))&&n.fn!==null){s?n.f^=Y:(i&Y)===0&&(4&i?this.#e.push(n):(i&Kn)!==0?(n.b?.pending?this.#a:this.#n).push(n):ie(n)&&(16&n.f&&this.#l.push(n),Jt(n)));var r=n.first;if(r!==null){n=r;continue}}var o=n.parent;for(n=n.next;n===null&&o!==null;)n=o.next,o=o.parent}}#s(e){for(const n of e)((n.f&pt)!==0?this.#f:this.#d).push(n),G(n,Y);e.length=0}capture(e,n){this.#o.has(e)||this.#o.set(e,n),this.current.set(e,e.v)}activate(){q=this}deactivate(){q=null;for(const e of en)if(en.delete(e),e(),q!==null)break}neuter(){this.#u=!0}flush(){Bt.length>0?(function(){var e=Rt;Ee=!0;try{var n=0;for(wn(!0);Bt.length>0;){var i=Lt.ensure();n++>1e3&&nr(),i.process(Bt),Nt.clear()}}finally{Ee=!1,wn(e),Se=null}})():this.#p(),q===this&&(this.#t===0&&Ut.delete(this),this.deactivate())}#p(){if(!this.#u)for(const e of this.#i)e();this.#i.clear()}increment(){this.#t+=1}decrement(){if(this.#t-=1,this.#t===0){for(const e of this.#f)G(e,pt),_t(e);for(const e of this.#d)G(e,Ct),_t(e);this.#r=[],this.#e=[],this.flush()}else this.deactivate()}add_callback(e){this.#i.add(e)}settled(){return(this.#c??={promise:new Promise((i,s)=>{e=i,n=s}),resolve:e,reject:n}).promise;var e,n}static ensure(){if(q===null){const e=q=new Lt;Ut.add(q),Lt.enqueue(()=>{q===e&&e.flush()})}return q}static enqueue(e){oe.length===0&&queueMicrotask(nn),oe.unshift(e)}}function nr(){try{(function(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")})()}catch(t){be(t,Se)}}function rn(t){var e=t.length;if(e!==0){for(var n=0;ns&&(i.f&Jn)!==0)break}}for(;n{if(Mt===r)return a();var l=P,c=Mt;ut(null),Sn(r);var u=a();return ut(l),Sn(c),u};return i&&n.set("length",tt(t.length)),new Proxy(t,{defineProperty(a,l,c){"value"in c&&c.configurable!==!1&&c.enumerable!==!1&&c.writable!==!1||(function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")})();var u=n.get(l);return u===void 0?u=o(()=>{var d=tt(c.value);return n.set(l,d),d}):X(u,c.value,!0),!0},deleteProperty(a,l){var c=n.get(l);if(c===void 0){if(l in a){const u=o(()=>tt(U));n.set(l,u),ke(s)}}else X(c,U),ke(s);return!0},get(a,l,c){if(l===ee)return t;var u=n.get(l),d=l in a;if(u!==void 0||d&&!Wt(a,l)?.writable||(u=o(()=>tt(zt(d?a[l]:U))),n.set(l,u)),u!==void 0){var p=V(u);return p===U?void 0:p}return Reflect.get(a,l,c)},getOwnPropertyDescriptor(a,l){var c=Reflect.getOwnPropertyDescriptor(a,l);if(c&&"value"in c){var u=n.get(l);u&&(c.value=V(u))}else if(c===void 0){var d=n.get(l),p=d?.v;if(d!==void 0&&p!==U)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return c},has(a,l){if(l===ee)return!0;var c=n.get(l),u=c!==void 0&&c.v!==U||Reflect.has(a,l);return(c!==void 0||L!==null&&(!u||Wt(a,l)?.writable))&&(c===void 0&&(c=o(()=>tt(u?zt(a[l]):U)),n.set(l,c)),V(c)===U)?!1:u},set(a,l,c,u){var d=n.get(l),p=l in a;if(i&&l==="length")for(var f=c;ftt(U)),n.set(f+"",v))}d===void 0?p&&!Wt(a,l)?.writable||(X(d=o(()=>tt(void 0)),zt(c)),n.set(l,d)):(p=d.v!==U,X(d,o(()=>zt(c))));var m=Reflect.getOwnPropertyDescriptor(a,l);if(m?.set&&m.set.call(u,c),!p){if(i&&typeof l=="string"){var w=n.get("length"),y=Number(l);Number.isInteger(y)&&y>=w.v&&X(w,y+1)}ke(s)}return!0},ownKeys(a){V(s);var l=Reflect.ownKeys(a).filter(d=>{var p=n.get(d);return p===void 0||p.v!==U});for(var[c,u]of n)u.v===U||c in a||l.push(c);return l},setPrototypeOf(){(function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")})()}})}var an,ln,sn,cn;function _e(t=""){return document.createTextNode(t)}function un(t){return sn.call(t)}function Ne(t){return cn.call(t)}function it(t,e){return un(t)}function $t(t,e=1,n=!1){let i=t;for(;e--;)i=Ne(i);return i}function fn(t){var e=P,n=L;ut(null),yt(null);try{return t()}finally{ut(e),yt(n)}}function rr(t){L===null&&P===null&&(function(){throw new Error("https://svelte.dev/e/effect_orphan")})(),P!==null&&(P.f&rt)!==0&&L===null&&(function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")})(),Tt&&(function(){throw new Error("https://svelte.dev/e/effect_in_teardown")})()}function vt(t,e,n,i=!0){var s=L;s!==null&&(s.f&st)!==0&&(t|=st);var r={ctx:ot,deps:null,nodes_start:null,nodes_end:null,f:t|pt,first:null,fn:e,last:null,next:null,parent:s,b:s&&s.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(n)try{Jt(r),r.f|=me}catch(a){throw ht(r),a}else e!==null&&_t(r);if(!(n&&r.deps===null&&r.first===null&&r.nodes_start===null&&r.teardown===null&&(r.f&ze)===0)&&i&&(s!==null&&(function(a,l){var c=l.last;c===null?l.last=l.first=a:(c.next=a,a.prev=c,l.last=a)})(r,s),P!==null&&2&P.f&&(t&he)===0)){var o=P;(o.effects??=[]).push(r)}return r}function dn(t){return vt(1048580,t,!1)}function Ht(t,e=[],n=[]){er(e,n,i=>{vt(8,()=>t(...i.map(V)),!0)})}function pn(t,e=0){return vt(16|e,t,!0)}function Yt(t,e=!0){return vt(Ft,t,!0,e)}function hn(t){var e=t.teardown;if(e!==null){const n=Tt,i=P;bn(!0),ut(null);try{e.call(null)}finally{bn(n),ut(i)}}}function gn(t,e=!1){var n=t.first;for(t.first=t.last=null;n!==null;){const s=n.ac;s!==null&&fn(()=>{s.abort(we)});var i=n.next;(n.f&he)!==0?n.parent=null:ht(n,e),n=i}}function ht(t,e=!0){var n=!1;(e||262144&t.f)&&t.nodes_start!==null&&t.nodes_end!==null&&((function(r,o){for(;r!==null;){var a=r===o?null:Ne(r);r.remove(),r=a}})(t.nodes_start,t.nodes_end),n=!0),gn(t,e&&!n),ae(t,0),G(t,qt);var i=t.transitions;if(i!==null)for(const r of i)r.stop();hn(t);var s=t.parent;s!==null&&s.first!==null&&mn(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=t.ac=null}function mn(t){var e=t.parent,n=t.prev,i=t.next;n!==null&&(n.next=i),i!==null&&(i.prev=n),e!==null&&(e.first===t&&(e.first=i),e.last===t&&(e.last=n))}function $e(t,e){var n=[];Me(t,n,!0),vn(n,()=>{ht(t),e&&e()})}function vn(t,e){var n=t.length;if(n>0){var i=()=>--n||e();for(var s of t)s.out(i)}else e()}function Me(t,e,n){if((t.f&st)===0){if(t.f^=st,t.transitions!==null)for(const r of t.transitions)(r.is_global||n)&&e.push(r);for(var i=t.first;i!==null;){var s=i.next;Me(i,e,((i.f&ve)!==0||(i.f&Ft)!==0)&&n),i=s}}}function Ae(t){yn(t,!0)}function yn(t,e){if((t.f&st)!==0){t.f^=st,(t.f&Y)===0&&(G(t,pt),_t(t));for(var n=t.first;n!==null;){var i=n.next;yn(n,((n.f&ve)!==0||(n.f&Ft)!==0)&&e),n=i}if(t.transitions!==null)for(const s of t.transitions)(s.is_global||e)&&s.in()}}let Rt=!1;function wn(t){Rt=t}let Tt=!1;function bn(t){Tt=t}let P=null,ct=!1;function ut(t){P=t}let L=null;function yt(t){L=t}let gt=null,J=null,K=0,et=null,xn=1,Xt=0,Mt=Xt;function Sn(t){Mt=t}let wt=!1;function En(){return++xn}function ie(t){var e=t.f;if((e&pt)!==0)return!0;if((e&Ct)!==0){var n=t.deps,i=(e&rt)!==0;if(n!==null){var s,r,o=(e&ge)!==0,a=i&&L!==null&&!wt,l=n.length;if((o||a)&&(L===null||(L.f&qt)===0)){var c=t,u=c.parent;for(s=0;st.wv)return!0}i&&(L===null||wt)||G(t,Y)}return!1}function Cn(t,e,n=!0){var i=t.reactions;if(i!==null&&!gt?.includes(t))for(var s=0;s{t.ac.abort(we)}),t.ac=null);try{t.f|=ye;var d=(0,t.fn)(),p=t.deps;if(J!==null){var f;if(ae(t,K),p!==null&&K>0)for(p.length=K+J.length,f=0;fr||n});var u=P,d=L;ut(null),yt(null);try{for(var p,f=[];r!==null;){var v=r.assignedSlot||r.parentNode||r.host||null;try{var m=r["__"+i];if(m!=null&&(!r.disabled||t.target===r))if(fe(m)){var[w,...y]=m;w.apply(r,[t,...y])}else m.call(r,t)}catch(M){p?f.push(M):p=M}if(t.cancelBubble||v===e||v===null)break;r=v}if(p){for(let M of f)queueMicrotask(()=>{throw M});throw p}}finally{t.__root=e,delete t.currentTarget,ut(u),yt(d)}}}function Kt(t,e){var n,i=!!(2&e),s=!t.startsWith("");return()=>{var r,o;n===void 0&&(r=s?t:""+t,(o=document.createElement("template")).innerHTML=r.replaceAll("",""),n=un(n=o.content));var a=i||ln?document.importNode(n,!0):n.cloneNode(!0);return(function(l,c){var u=L;u.nodes_start===null&&(u.nodes_start=l,u.nodes_end=c)})(a,a),a}}function Gt(t,e){t!==null&&t.before(e)}function se(t,e){var n=e==null?"":typeof e=="object"?e+"":e;n!==(t.__t??=t.nodeValue)&&(t.__t=n,t.nodeValue=n+"")}function sr(t,e){return(function(n,{target:i,anchor:s,props:r={},events:o,context:a,intro:l=!0}){(function(){if(an===void 0){an=window,ln=/Firefox/.test(navigator.userAgent);var f=Element.prototype,v=Node.prototype,m=Text.prototype;sn=Wt(v,"firstChild").get,cn=Wt(v,"nextSibling").get,Ve(f)&&(f.__click=void 0,f.__className=void 0,f.__attributes=null,f.__style=void 0,f.__e=void 0),Ve(m)&&(m.__t=void 0)}})();var c=new Set,u=f=>{for(var v=0;vnew Promise(w=>{m.outro?$e(v,()=>{ht(v),w(void 0)}):(ht(v),w(void 0))})})(()=>{var f=s??i.appendChild(_e());return Yt(()=>{a&&(Xe({}),ot.c=a),o&&(r.$$events=o),d=n(f,r)||{},a&&Je()}),()=>{for(var v of c){i.removeEventListener(v,le);var m=jt.get(v);--m===0?(document.removeEventListener(v,le),jt.delete(v)):jt.set(v,m)}Pe.delete(u),f!==s&&f.parentNode?.removeChild(f)}});return Le.set(d,p),d})(t,e)}const jt=new Map;let Le=new WeakMap;function Mn(t,e,n=!1){var i=t,s=null,r=null,o=U,a=!1;const l=(p,f=!0)=>{a=!0,d(f,p)};var c=null;function u(){c!==null&&(c.lastChild.remove(),i.before(c),c=null);var p=o?s:r,f=o?r:s;p&&Ae(p),f&&$e(f,()=>{o?r=null:s=null})}const d=(p,f)=>{if(o!==(o=p)){var v=!1,m=i;o?s??=f&&Yt(()=>f(m)):r??=f&&Yt(()=>f(m)),u()}};pn(()=>{a=!1,e(l),a||d(null,null)},n?ve:0)}function An(t,e){return e}function Pn(t,e,n,i,s,r=null){var o,a={flags:e,items:new Map,first:null};o=t.appendChild(_e());var l,c,u=null,d=!1,p=new Map,f=(function(m){const w=Ge(m);return w.equals=Ye,w})(()=>{var m=n();return fe(m)?m:m==null?[]:de(m)});function v(){(function(m,w,y,M,C,b,k,N,j){var A,D,R,$,E,Q=w.length,B=y.items,I=y.first,h=I,S=null,_=[],x=[];for(E=0;E0&&(function(It,dt,xt){for(var Zt=It.items,At=[],St=dt.length,Et=0;Et0&&At.length===0&&xt!==null;if(Ot){var te=xt.parentNode;te.textContent="",te.append(xt),Zt.clear(),ft(It,dt[0].prev,dt[St-1].next)}vn(At,()=>{for(var W=0;Wr(o)):u!==null&&$e(u,()=>{u=null}))}pn(()=>{c??=L;var m=(l=V(f)).length;d&&m===0||(d=m===0,v(),V(f))})}function cr(t,e,n,i,s,r,o,a,l,c,u){var d=1&l?16&l?Vt(s):(function(v,m=!1){const w=Vt(v);return m||(w.equals=Ye),w})(s,!1,!1):s,p=2&l?Vt(o):o,f={i:p,v:d,k:r,a:null,e:null,prev:n,next:i};try{return t===null&&document.createDocumentFragment().append(t=_e()),f.e=Yt(()=>a(t,d,p,c),!1),f.e.prev=n&&n.e,f.e.next=i&&i.e,n===null?u||(e.first=f):(n.next=f,n.e.next=f.e),i!==null&&(i.prev=f,i.e.prev=f.e),f}finally{}}function Re(t,e,n){for(var i=t.next?t.next.e.nodes_start:n,s=e?e.e.nodes_start:n,r=t.e.nodes_start;r!==null&&r!==i;){var o=Ne(r);s.before(r),r=o}}function ft(t,e,n){e===null?t.first=n:(e.next=n,e.e.next=n&&n.e),n!==null&&(n.prev=e,n.e.prev=e&&e.e)}function Ln(t){var e,n,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var s=t.length;for(e=0;e{var r,o;return(function(a,l=0){vt(8|l,a,!0)})(()=>{r=o,o=[],(function(a){var l=ct;try{return ct=!0,a()}finally{ct=l}})(()=>{t!==n(...o)&&(e(t,...o),r&&Tn(n(...r),t)&&e(null,...r))})}),()=>{var a;a=()=>{o&&Tn(n(...o),t)&&e(null,...o)},re.length===0&&queueMicrotask(Qn),re.push(a)}},vt(4,s,!1),t}typeof window<"u"&&((window.__svelte??={}).v??=new Set).add("5");var g={image:new Map,background:new Map,resource:new Map,defaultStyle:new Map,baseStyle:new Map,computedStyle:new WeakMap,font:new Set,snapshot:new WeakMap,snapshotKey:new Map,preStyleMap:new Map,preStyle:new WeakMap,preNodeMap:new Map,reset:function(){g.computedStyle=new WeakMap,g.snapshot=new WeakMap,g.snapshotKey.clear(),g.preStyleMap.clear(),g.preStyle=new WeakMap,g.preNodeMap.clear()}},ur=new Set(["-webkit-locale"]);function je(t,e,n=!1){const i=[],s=(function(r){if(g.defaultStyle.has(r))return g.defaultStyle.get(r);if(new Set(["script","style","meta","link","noscript","template","defs","symbol","title","metadata","desc"]).has(r)){const u={};return g.defaultStyle.set(r,u),u}let o=document.getElementById("snapdom-sandbox");o||(o=document.createElement("div"),o.id="snapdom-sandbox",o.style.position="absolute",o.style.left="-9999px",o.style.top="-9999px",o.style.width="0",o.style.height="0",o.style.overflow="hidden",document.body.appendChild(o));const a=document.createElement(r);a.style.all="initial",o.appendChild(a);const l=getComputedStyle(a),c={};for(let u of l)c[u]=l.getPropertyValue(u);return o.removeChild(a),g.defaultStyle.set(r,c),c})(e);for(let[r,o]of Object.entries(t))if(!ur.has(r))if(n){const a=s[r];o&&o!==a&&i.push(`${r}:${o}`)}else o&&i.push(`${r}:${o}`);return i.sort().join(";")}async function Dn(t,e={}){const n=Ie(t);if(/^((repeating-)?(linear|radial|conic)-gradient)\(/i.test(t),n){const i=We(n);if(g.background.has(i))return e.skipInline?void 0:`url(${g.background.get(i)})`;{const s=await Oe(i,{useProxy:e.useProxy});return g.background.set(i,s),e.skipInline?void 0:`url("${s}")`}}return t}function Qt(t,{fast:e=!1}={}){if(e)return t();"requestIdleCallback"in window?requestIdleCallback(t,{timeout:50}):setTimeout(t,1)}function De(t,e=null){if(!(t instanceof Element))return window.getComputedStyle(t,e);let n=g.computedStyle.get(t);if(n||(n=new Map,g.computedStyle.set(t,n)),!n.has(e)){const i=window.getComputedStyle(t,e);n.set(e,i)}return n.get(e)}function fr(t){let e=t.replace(/^['"]|['"]$/g,"");if(e.startsWith("\\"))try{return String.fromCharCode(parseInt(e.replace("\\",""),16))}catch{return e}return e}function Ie(t){const e=t.match(/url\((['"]?)(.*?)(\1)\)/);if(!e)return null;const n=e[2].trim();return n.startsWith("#")?null:n}function Oe(t,{timeout:e=3e3,useProxy:n=""}={}){function i(o){try{return new URL(o,window.location.href).origin===window.location.origin?"use-credentials":"anonymous"}catch{return"anonymous"}}async function s(o){const a=l=>fetch(l,{mode:"cors",credentials:i(l)==="use-credentials"?"include":"omit"}).then(c=>c.blob()).then(c=>new Promise((u,d)=>{const p=new FileReader;p.onloadend=()=>{const f=p.result;typeof f=="string"&&f.startsWith("data:image/")?u(f):d(new Error("Invalid image data URL"))},p.onerror=()=>d(new Error("FileReader error")),p.readAsDataURL(c)}));try{return await a(o)}catch{if(!n||typeof n!="string")throw new Error("[SnapDOM - fetchImage] Fetch fallback failed and no proxy provided");{const c=n.replace(/\/$/,"")+We(o);try{return await a(c)}catch{throw new Error("[SnapDOM - fetchImage] CORS restrictions prevented image capture (even via proxy)")}}}}const r=i(t);return g.image.has(t)?Promise.resolve(g.image.get(t)):t.startsWith("data:image/")?(g.image.set(t,t),Promise.resolve(t)):/\.svg(\?.*)?$/i.test(t)?(async()=>{try{const o=await fetch(t,{mode:"cors",credentials:r==="use-credentials"?"include":"omit"}),a=await o.text(),l=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(a)}`;return g.image.set(t,l),l}catch{return s(t)}})():new Promise((o,a)=>{const l=setTimeout(()=>{a(new Error("[SnapDOM - fetchImage] Image load timed out"))},e),c=new Image;c.crossOrigin=r,c.onload=async()=>{clearTimeout(l);try{await c.decode();const u=document.createElement("canvas");u.width=c.width,u.height=c.height,u.getContext("2d").drawImage(c,0,0,u.width,u.height);const d=u.toDataURL("image/png");g.image.set(t,d),o(d)}catch{try{const u=await s(t);g.image.set(t,u),o(u)}catch(u){a(u)}}},c.onerror=async()=>{clearTimeout(l);try{const u=await s(t);g.image.set(t,u),o(u)}catch(u){a(u)}},c.src=t})}function In(t){const e={};for(let n of t)e[n]=t.getPropertyValue(n);return e}function We(t){if(/%[0-9A-Fa-f]{2}/.test(t))return t;try{return encodeURI(t)}catch{return t}}function On(t){const e=[];let n=0,i=0;for(let s=0;sa.localeCompare(l)).map(([a,l])=>`${a}:${l}`).join(";");if(g.snapshotKey.has(r))return void g.preStyleMap.set(e,g.snapshotKey.get(r));const o=je(s,t.tagName?.toLowerCase()||"div",n);g.snapshotKey.set(r,o),g.preStyleMap.set(e,o)}function ce(t,e,n={},i){if(!t)throw new Error("Invalid node");const s=new Set;let r,o=null;if(t.nodeType===Node.TEXT_NODE||t.nodeType!==Node.ELEMENT_NODE)return t.cloneNode(!0);if(t.getAttribute("data-capture")==="exclude"){const a=document.createElement("div"),l=t.getBoundingClientRect();return a.style.cssText=`display:inline-block;width:${l.width}px;height:${l.height}px;visibility:hidden;`,a}if(n.exclude&&Array.isArray(n.exclude))for(const a of n.exclude)try{if(t.matches?.(a)){const l=document.createElement("div"),c=t.getBoundingClientRect();return l.style.cssText=`display:inline-block;width:${c.width}px;height:${c.height}px;visibility:hidden;`,l}}catch{}if(typeof n.filter=="function")try{if(!n.filter(t,i||t)){const a=document.createElement("div"),l=t.getBoundingClientRect();return a.style.cssText=`display:inline-block;width:${l.width}px;height:${l.height}px;visibility:hidden;`,a}}catch{}if(t.tagName==="IFRAME"){const a=document.createElement("div");return a.style.cssText=`width:${t.offsetWidth}px;height:${t.offsetHeight}px;background-image:repeating-linear-gradient(45deg,#ddd,#ddd 5px,#f9f9f9 5px,#f9f9f9 10px);display:flex;align-items:center;justify-content:center;font-size:12px;color:#555;border:1px solid #aaa;`,a}if(t.getAttribute("data-capture")==="placeholder"){const a=t.cloneNode(!1);g.preNodeMap.set(a,t),Fe(t,a,e);const l=document.createElement("div");return l.textContent=t.getAttribute("data-placeholder-text")||"",l.style.cssText="color:#666;font-size:12px;text-align:center;line-height:1.4;padding:0.5em;box-sizing:border-box;",a.appendChild(l),a}if(t.tagName==="CANVAS"){const a=t.toDataURL(),l=document.createElement("img");return l.src=a,l.width=t.width,l.height=t.height,g.preNodeMap.set(l,t),Fe(t,l,e),l}try{r=t.cloneNode(!1),g.preNodeMap.set(r,t)}catch(a){throw a}if(t instanceof HTMLTextAreaElement){r.textContent=t.value,r.value=t.value;const a=t.getBoundingClientRect();return r.style.width=`${a.width}px`,r.style.height=`${a.height}px`,r}if(t instanceof HTMLInputElement&&(r.value=t.value,r.setAttribute("value",t.value),t.checked!==void 0&&(r.checked=t.checked,t.checked&&r.setAttribute("checked",""),t.indeterminate&&(r.indeterminate=t.indeterminate))),t instanceof HTMLSelectElement&&(o=t.value),Fe(t,r,e),t.shadowRoot)if(Array.from(t.shadowRoot.querySelectorAll("slot")).length>0){for(const a of t.shadowRoot.childNodes)if(a.nodeType===Node.ELEMENT_NODE&&a.tagName==="STYLE"){const l=a.textContent||"";l.trim()&&e&&(g.preStyle||(g.preStyle=new WeakMap),g.preStyle.set(a,l))}}else{const a=document.createDocumentFragment();for(const l of t.shadowRoot.childNodes){if(l.nodeType===Node.ELEMENT_NODE&&l.tagName==="STYLE"){const u=l.textContent||"";u.trim()&&e&&(g.preStyle||(g.preStyle=new WeakMap),g.preStyle.set(l,u));continue}const c=ce(l,e,n,i||t);c&&a.appendChild(c)}r.appendChild(a)}if(t.tagName==="SLOT"){const a=t.assignedNodes?.({flatten:!0})||[],l=a.length>0?a:Array.from(t.childNodes),c=document.createDocumentFragment();for(const u of l){const d=ce(u,e,n,i||t);d&&c.appendChild(d)}return c}for(const a of t.childNodes){if(s.has(a))continue;const l=ce(a,e,n,i||t);l&&r.appendChild(l)}if(o!==null&&r instanceof HTMLSelectElement){r.value=o;for(const a of r.options)a.value===o?a.setAttribute("selected",""):a.removeAttribute("selected")}return r}var dr=[/font\s*awesome/i,/material\s*icons/i,/ionicons/i,/glyphicons/i,/feather/i,/bootstrap\s*icons/i,/remix\s*icons/i,/heroicons/i,/layui/i,/lucide/i],qe=[];function bt(t){const e=typeof t=="string"?t:"",n=[...dr,...qe];for(const i of n)if(i instanceof RegExp&&i.test(e))return!0;return!!(/icon/i.test(e)||/glyph/i.test(e)||/symbols/i.test(e)||/feather/i.test(e)||/fontawesome/i.test(e))}async function pr(t,e,n,i=32,s="#000"){e=e.replace(/^['"]+|['"]+$/g,"");const r=window.devicePixelRatio||1;await document.fonts.ready;const o=document.createElement("span");o.textContent=t,o.style.position="absolute",o.style.visibility="hidden",o.style.fontFamily=`"${e}"`,o.style.fontWeight=n||"normal",o.style.fontSize=`${i}px`,o.style.lineHeight="1",o.style.whiteSpace="nowrap",o.style.padding="0",o.style.margin="0",document.body.appendChild(o);const a=o.getBoundingClientRect(),l=Math.ceil(a.width),c=Math.ceil(a.height);document.body.removeChild(o);const u=document.createElement("canvas");u.width=l*r,u.height=c*r;const d=u.getContext("2d");return d.scale(r,r),d.font=n?`${n} ${i}px "${e}"`:`${i}px "${e}"`,d.textAlign="left",d.textBaseline="top",d.fillStyle=s,d.fillText(t,0,0),{dataUrl:u.toDataURL(),width:l,height:c}}function Wn(t){return Array.from(document.styleSheets).some(e=>e.href===t)}function hr(t){return new Promise(e=>{if(Wn(t))return e(null);const n=document.createElement("link");n.rel="stylesheet",n.href=t,n.setAttribute("data-snapdom","injected-import"),n.onload=()=>e(n),n.onerror=()=>e(null),document.head.appendChild(n)})}async function Fn(t,e,n){if(!(t instanceof Element&&e instanceof Element))return;for(const r of["::before","::after","::first-letter"])try{const o=De(t,r);if(!o||typeof o[Symbol.iterator]!="function"||!(o.content!=="none"||o.backgroundImage!=="none"||o.backgroundColor!=="transparent"||o.borderStyle!=="none"&&parseFloat(o.borderWidth)!==0||o.transform&&o.transform!=="none"||o.display!=="inline"))continue;if(r==="::first-letter"){const I=getComputedStyle(t);if(!(o.color!==I.color||o.fontSize!==I.fontSize||o.fontWeight!==I.fontWeight))continue;const h=Array.from(e.childNodes).find(Z=>Z.nodeType===Node.TEXT_NODE&&Z.textContent?.trim().length>0);if(!h)continue;const S=h.textContent,_=S.match(/^([^\p{L}\p{N}\s]*[\p{L}\p{N}](?:['’])?)/u),x=_?.[0],O=S.slice(x?.length||0);if(!x||/[\uD800-\uDFFF]/.test(x))continue;const T=document.createElement("span");T.textContent=x,T.dataset.snapdomPseudo="::first-letter";const z=je(In(o),"span",n);g.preStyleMap.set(T,z);const nt=document.createTextNode(O);e.replaceChild(nt,h),e.insertBefore(T,nt);continue}const a=o.content,l=/counter\s*\(|counters\s*\(/.test(a)?"- ":fr(a),c=o.backgroundImage,u=o.backgroundColor,d=o.fontFamily,p=parseInt(o.fontSize)||32,f=parseInt(o.fontWeight)||!1,v=o.color||"#000",m=o.display,w=parseFloat(o.width),y=parseFloat(o.height),M=o.borderStyle,C=parseFloat(o.borderWidth),b=o.transform,k=bt(d),N=a!=="none"&&l!=="",j=c&&c!=="none",A=u&&u!=="transparent"&&u!=="rgba(0, 0, 0, 0)",D=m!=="inline"&&(w>0||y>0),R=M&&M!=="none"&&C>0,$=b&&b!=="none";if(!(N||j||A||D||R||$))continue;const E=document.createElement("span");E.dataset.snapdomPseudo=r,E.style.verticalAlign="middle";const Q=je(In(o),"span",n);if(g.preStyleMap.set(E,Q),k&&l.length===1){const{dataUrl:I,width:h,height:S}=await pr(l,d,f,p,v),_=document.createElement("img");_.src=I,_.style=`height:${p}px;width:${h/S*p}px;object-fit:contain;`,E.appendChild(_),e.dataset.snapdomHasIcon="true"}else if(l.startsWith("url(")){const I=Ie(l);if(I?.trim())try{const h=document.createElement("img"),S=await Oe(We(I),n);h.src=S,h.style=`width:${p}px;height:auto;object-fit:contain;`,E.appendChild(h)}catch{}}else!k&&N&&(E.textContent=l);if(j)try{const I=On(c),h=await Promise.all(I.map(Dn));E.style.backgroundImage=h.join(", ")}catch{}if(A&&(E.style.backgroundColor=u),!(E.childNodes.length>0||E.textContent?.trim()!==""||j||A||D||R||$))continue;r==="::before"?e.insertBefore(E,e.firstChild):e.appendChild(E)}catch{}const i=Array.from(t.children),s=Array.from(e.children).filter(r=>!r.dataset.snapdomPseudo);for(let r=0;r0,f=u==="none"||parseFloat(d)===0;p&&f&&(o.style.border=`${c} solid transparent`)})(t);try{(function(o){if(!o)return;const a=new Set;if(o.querySelectorAll("use").forEach(f=>{const v=f.getAttribute("xlink:href")||f.getAttribute("href");v&&v.startsWith("#")&&a.add(v.slice(1))}),!a.size)return;const l=Array.from(document.querySelectorAll("svg > symbol, svg > defs")),c=l.filter(f=>f.tagName.toLowerCase()==="symbol"),u=l.filter(f=>f.tagName.toLowerCase()==="defs");let d=o.querySelector("svg.inline-defs-container");d||(d=document.createElementNS("http://www.w3.org/2000/svg","svg"),d.setAttribute("aria-hidden","true"),d.setAttribute("style","position: absolute; width: 0; height: 0; overflow: hidden;"),d.classList.add("inline-defs-container"),o.insertBefore(d,o.firstChild));const p=new Set;o.querySelectorAll("symbol[id], defs > *[id]").forEach(f=>{p.add(f.id)}),a.forEach(f=>{if(p.has(f))return;const v=c.find(m=>m.id===f);if(v)return d.appendChild(v.cloneNode(!0)),void p.add(f);for(const m of u){const w=m.querySelector(`#${CSS.escape(f)}`);if(w){let y=d.querySelector("defs");y||(y=document.createElementNS("http://www.w3.org/2000/svg","defs"),d.appendChild(y)),y.appendChild(w.cloneNode(!0)),p.add(f);break}}})})(t)}catch{}try{s=ce(t,e,i,t)}catch(o){throw o}try{await Fn(t,s,e,i.useProxy)}catch{}if(e){const o=(function(){const a=new Set(g.preStyleMap.values()),l=new Map;let c=1;for(const u of a)u.trim()&&l.set(u,"c"+c++);return l})();r=Array.from(o.entries()).map(([a,l])=>`.${l}{${a}}`).join("");for(const[a,l]of g.preStyleMap.entries()){if(a.tagName==="STYLE")continue;if(a.getRootNode&&a.getRootNode()instanceof ShadowRoot){a.setAttribute("style",l.replace(/;/g,"; "));continue}const c=o.get(l);c&&a.classList.add(c);const u=a.style?.backgroundImage,d=a.dataset?.snapdomHasIcon;u&&u!=="none"&&(a.style.backgroundImage=u),d&&(a.style.verticalAlign="middle",a.style.display="inline")}}else for(const[o,a]of g.preStyleMap.entries())o.tagName!=="STYLE"&&o.setAttribute("style",a.replace(/;/g,"; "));for(const[o,a]of g.preNodeMap.entries()){const l=a.scrollLeft,c=a.scrollTop;if((l||c)&&o instanceof HTMLElement){o.style.overflow="hidden",o.style.scrollbarWidth="none",o.style.msOverflowStyle="none";const u=document.createElement("div");for(u.style.transform=`translate(${-l}px, ${-c}px)`,u.style.willChange="transform",u.style.display="inline-block",u.style.width="100%";o.firstChild;)u.appendChild(o.firstChild);o.appendChild(u)}}if(t===g.preNodeMap.get(s)){const o=g.preStyle.get(t)||window.getComputedStyle(t);g.preStyle.set(t,o);const a=(function(l){if(!l||l==="none")return"";let c=l.replace(/translate[XY]?\([^)]*\)/g,"");return c=c.replace(/matrix\(([^)]+)\)/g,(u,d)=>{const p=d.split(",").map(f=>f.trim());return p.length!==6?`matrix(${d})`:(p[4]="0",p[5]="0",`matrix(${p.join(", ")})`)}),c=c.replace(/matrix3d\(([^)]+)\)/g,(u,d)=>{const p=d.split(",").map(f=>f.trim());return p.length!==16?`matrix3d(${d})`:(p[12]="0",p[13]="0",`matrix3d(${p.join(", ")})`)}),c.trim().replace(/\s{2,}/g," ")})(o.transform);s.style.margin="0",s.style.position="static",s.style.top="auto",s.style.left="auto",s.style.right="auto",s.style.bottom="auto",s.style.zIndex="auto",s.style.float="none",s.style.clear="none",s.style.transform=a||""}for(const[o,a]of g.preNodeMap.entries())a.tagName==="PRE"&&(o.style.marginTop="0",o.style.marginBlockStart="0");return{clone:s,classCSS:r}}async function mr(t,e={}){if(!t)throw new Error("Element cannot be null or undefined");g.reset();const{compress:n=!0,embedFonts:i=!1,fast:s=!0,scale:r=1,useProxy:o=""}=e;let a,l,c,u,d="",p="";if({clone:a,classCSS:l}=await gr(t,n,i,e),await new Promise(v=>{Qt(async()=>{await(async function(m,w={}){const y=Array.from(m.querySelectorAll("img")),M=async C=>{const b=C.src;try{const k=await Oe(b,{useProxy:w.useProxy});C.src=k,C.width||(C.width=C.naturalWidth||100),C.height||(C.height=C.naturalHeight||100)}catch{const k=document.createElement("div");k.style=`width: ${C.width||100}px; height: ${C.height||100}px; background: #ccc; display: inline-block; text-align: center; line-height: ${C.height||100}px; color: #666; font-size: 12px;`,k.innerText="img",C.replaceWith(k)}};for(let C=0;C{Qt(async()=>{await(async function(m,w,y={}){const M=[[m,w]],C=["background-image","mask","mask-image","-webkit-mask-image","mask-source","mask-box-image-source","mask-border-source","-webkit-mask-box-image-source","border-image","border-image-source","border-image-slice","border-image-width","border-image-outset","border-image-repeat"];for(;M.length;){const[b,k]=M.shift(),N=g.preStyle.get(b)||De(b);g.preStyle.has(b)||g.preStyle.set(b,N);const j=(()=>{const $=N.getPropertyValue("border-image"),E=N.getPropertyValue("border-image-source");return $&&$!=="none"||E&&E!=="none"})();for(const $ of C){if(["border-image-slice","border-image-width","border-image-outset","border-image-repeat"].includes($)&&!j)continue;const E=N.getPropertyValue($);if(!E||E==="none")continue;const Q=On(E),B=await Promise.all(Q.map(I=>Dn(I,y)));B.some(I=>I&&I!=="none"&&!/^url\(undefined/.test(I))&&k.style.setProperty($,B.join(", "))}const A=N.getPropertyValue("background-color");A&&A!=="transparent"&&A!=="rgba(0, 0, 0, 0)"&&(k.style.backgroundColor=A);const D=Array.from(b.children),R=Array.from(k.children);for(let $=0;${Qt(async()=>{d=await(async function({preCached:m=!1}={}){if(g.resource.has("fonts-embed-css")){if(m){const b=document.createElement("style");b.setAttribute("data-snapdom","embedFonts"),b.textContent=g.resource.get("fonts-embed-css"),document.head.appendChild(b)}return g.resource.get("fonts-embed-css")}const w=/@import\s+url\(["']?([^"')]+)["']?\)/g,y=[];for(const b of document.querySelectorAll("style")){const k=b.textContent||"",N=Array.from(k.matchAll(w));for(const j of N){const A=j[1];bt(A)||Wn(A)||y.push(A)}}await Promise.all(y.map(hr));const M=Array.from(document.querySelectorAll('link[rel="stylesheet"]')).filter(b=>b.href);let C="";for(const b of M)try{const k=await fetch(b.href),N=await k.text();if(bt(b.href)||bt(N))continue;const j=/url\((["']?)([^"')]+)\1\)/g,A=await Promise.all(Array.from(N.matchAll(j)).map(async R=>{let $=Ie(R[0]);if(!$)return null;let E=$;if(E.startsWith("http")||E.startsWith("data:")||(E=new URL(E,b.href).href),bt(E))return null;if(g.resource.has(E))return g.font.add(E),{original:R[0],inlined:`url(${g.resource.get(E)})`};if(g.font.has(E))return null;try{const Q=await fetch(E),B=await Q.blob(),I=await new Promise(h=>{const S=new FileReader;S.onload=()=>h(S.result),S.readAsDataURL(B)});return g.resource.set(E,I),g.font.add(E),{original:R[0],inlined:`url(${I})`}}catch{return null}}));let D=N;for(const R of A)R&&(D=D.replace(R.original,R.inlined));C+=D+` -`}catch{}for(const b of document.styleSheets)try{if(!b.href||M.every(k=>k.href!==b.href)){for(const k of b.cssRules)if(k.type===CSSRule.FONT_FACE_RULE){const N=k.style.getPropertyValue("src"),j=k.style.getPropertyValue("font-family");if(!N||bt(j))continue;const A=/url\((["']?)([^"')]+)\1\)/g,D=/local\((["']?)[^)]+?\1\)/g,R=!!N.match(A),$=!!N.match(D);if(!R&&$){C+=`@font-face{font-family:${j};src:${N};font-style:${k.style.getPropertyValue("font-style")||"normal"};font-weight:${k.style.getPropertyValue("font-weight")||"normal"};}`;continue}let E=N;const Q=Array.from(N.matchAll(A));for(const B of Q){let I=B[2].trim();if(!I)continue;let h=I;if(h.startsWith("http")||h.startsWith("data:")||(h=new URL(h,b.href||location.href).href),!bt(h)){if(g.resource.has(h))g.font.add(h),E=E.replace(B[0],`url(${g.resource.get(h)})`);else if(!g.font.has(h))try{const S=await fetch(h),_=await S.blob(),x=await new Promise(O=>{const T=new FileReader;T.onload=()=>O(T.result),T.readAsDataURL(_)});g.resource.set(h,x),g.font.add(h),E=E.replace(B[0],`url(${x})`)}catch{}}}C+=`@font-face{font-family:${j};src:${E};font-style:${k.style.getPropertyValue("font-style")||"normal"};font-weight:${k.style.getPropertyValue("font-weight")||"normal"};}`}}}catch{}for(const b of document.fonts)if(b.family&&b.status==="loaded"&&b._snapdomSrc){if(bt(b.family))continue;let k=b._snapdomSrc;if(!k.startsWith("data:")){if(g.resource.has(b._snapdomSrc))k=g.resource.get(b._snapdomSrc),g.font.add(b._snapdomSrc);else if(!g.font.has(b._snapdomSrc))try{const N=await fetch(b._snapdomSrc),j=await N.blob();k=await new Promise(A=>{const D=new FileReader;D.onload=()=>A(D.result),D.readAsDataURL(j)}),g.resource.set(b._snapdomSrc,k),g.font.add(b._snapdomSrc)}catch{continue}}C+=`@font-face{font-family:'${b.family}';src:url(${k});font-style:${b.style||"normal"};font-weight:${b.weight||"normal"};}`}if(C&&(g.resource.set("fonts-embed-css",C),m)){const b=document.createElement("style");b.setAttribute("data-snapdom","embedFonts"),b.textContent=C,document.head.appendChild(b)}return C})(),v()},{fast:s})}),n){const v=(function(w){const y=new Set;return w.nodeType!==Node.ELEMENT_NODE&&w.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?[]:(w.tagName&&y.add(w.tagName.toLowerCase()),typeof w.querySelectorAll=="function"&&w.querySelectorAll("*").forEach(M=>y.add(M.tagName.toLowerCase())),Array.from(y))})(a).sort(),m=v.join(",");g.baseStyle.has(m)?p=g.baseStyle.get(m):await new Promise(w=>{Qt(()=>{p=(function(y){const M=new Map;for(let b of y){const k=g.defaultStyle.get(b);if(!k)continue;const N=Object.entries(k).map(([j,A])=>`${j}:${A};`).sort().join("");M.has(N)||M.set(N,[]),M.get(N).push(b)}let C="";for(let[b,k]of M.entries())C+=`${k.join(",")} { ${b} } -`;return C})(v),g.baseStyle.set(m,p),w()},{fast:s})})}await new Promise(v=>{Qt(()=>{const m=t.getBoundingClientRect();let w=m.width,y=m.height;const M=Number.isFinite(e.width),C=Number.isFinite(e.height),b=typeof r=="number"&&r!==1;if(!b){const D=m.width/m.height;M&&C?(w=e.width,y=e.height):M?(w=e.width,y=w/D):C&&(y=e.height,w=y*D)}if(w=Math.ceil(w),y=Math.ceil(y),a.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),a.style.transformOrigin="top left",!b&&(M||C)){const D=w/m.width,R=y/m.height,$=a.style.transform||"",E=`scale(${D}, ${R})`;a.style.transform=`${E} ${$}`.trim()}const k="http://www.w3.org/2000/svg",N=document.createElementNS(k,"foreignObject");N.setAttribute("width","100%"),N.setAttribute("height","100%");const j=document.createElement("style");j.textContent=p+d+"svg{overflow:visible;}"+l,N.appendChild(j),N.appendChild(a);const A=new XMLSerializer().serializeToString(N);u=``+A+"",c=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(u)}`,v()},{fast:s})});const f=document.getElementById("snapdom-sandbox");return f&&f.style.position==="absolute"&&f.remove(),c}async function qn(t,{dpr:e=1,scale:n=1}={}){const i=new Image;i.src=t,i.crossOrigin="anonymous",i.loading="eager",i.decoding="sync";const s=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);let r=!1;if(s&&(document.body.appendChild(i),r=!0),await i.decode(),s&&await new Promise(u=>setTimeout(u,100)),i.width===0||i.height===0)throw r&&i.remove(),new Error("Image failed to load or has no dimensions");const o=i.naturalWidth*n,a=i.naturalHeight*n,l=document.createElement("canvas");l.width=Math.ceil(o*e),l.height=Math.ceil(a*e),l.style.width=`${o}px`,l.style.height=`${a}px`;const c=l.getContext("2d");return c.scale(e,e),c.drawImage(i,0,0,o,a),r&&i.remove(),l}async function Un(t,{type:e="svg",scale:n=1,backgroundColor:i="#fff",quality:s}={}){const r={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",webp:"image/webp"}[e]||"image/png";if(e==="svg"){const a=decodeURIComponent(t.split(",")[1]);return new Blob([a],{type:"image/svg+xml"})}const o=await Ue(t,{dpr:1,scale:n},i);return new Promise(a=>{o.toBlob(l=>a(l),`${r}`,s)})}async function Ue(t,{dpr:e=1,scale:n=1},i){const s=await qn(t,{dpr:e,scale:n});if(!i)return s;const r=document.createElement("canvas");r.width=s.width,r.height=s.height;const o=r.getContext("2d");return o.fillStyle=i,o.fillRect(0,0,r.width,r.height),o.drawImage(s,0,0),r}async function Be(t,{dpr:e=1,scale:n=1,backgroundColor:i,quality:s},r="png"){const o=["jpg","jpeg","webp"].includes(r)?"#fff":void 0,a=i??o,l=await Ue(t,{dpr:e,scale:n},a),c=new Image;return c.src=l.toDataURL(`image/${r}`,s),await c.decode(),c.style.width=l.width/e+"px",c.style.height=l.height/e+"px",c}async function F(t,e={}){if(e={scale:1,...e},!t)throw new Error("Element cannot be null or undefined");return e.iconFonts&&(function(n){const i=Array.isArray(n)?n:[n];for(const s of i)s instanceof RegExp?qe.push(s):typeof s=="string"&&qe.push(new RegExp(s,"i"))})(e.iconFonts),await F.capture(t,e)}function Bn(t,e=null,n={}){const i={constrainToViewport:!0,onDragStart:null,onDrag:null,onDragEnd:null,...n};let s=!1,r=0,o=0,a=0,l=0;const c=e?typeof e=="string"?t.querySelector(e):e:t;if(c)return c.addEventListener("mousedown",u),getComputedStyle(t).position==="static"&&(t.style.position="fixed"),()=>{c.removeEventListener("mousedown",u),document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",p)};function u(f){f.preventDefault(),s=!0;const v=t.getBoundingClientRect();r=v.left,o=v.top,a=f.pageX,l=f.pageY,t.classList.add("dragging"),c.classList.add("dragging"),document.addEventListener("mousemove",d),document.addEventListener("mouseup",p),i.onDragStart&&i.onDragStart(f,t)}function d(f){if(!s)return;f.preventDefault();const v=r+(f.pageX-a),m=o+(f.pageY-l);if(i.constrainToViewport){const w=t.getBoundingClientRect(),y=window.innerWidth-w.width,M=window.innerHeight-w.height,C=Math.max(0,Math.min(v,y)),b=Math.max(0,Math.min(m,M));t.style.left=`${C}px`,t.style.top=`${b}px`}else t.style.left=`${v}px`,t.style.top=`${m}px`;i.onDrag&&i.onDrag(f,t)}function p(f){f.preventDefault(),s=!1,t.classList.remove("dragging"),c.classList.remove("dragging"),document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",p),i.onDragEnd&&i.onDragEnd(f,t)}}F.capture=async(t,e={})=>{const n=await mr(t,e),i=e.dpr??(window.devicePixelRatio||1),s=e.scale||1;return{url:n,options:e,toRaw:()=>n,toImg:(r={})=>(async function(o,{scale:a=1}={}){const l=new Image;return l.src=o,await l.decode(),a!==1&&(l.style.width=l.naturalWidth*a+"px",l.style.height=l.naturalHeight*a+"px"),l})(n,{scale:s,...r}),toCanvas:(r={})=>qn(n,{dpr:i,scale:s,...r}),toBlob:(r={})=>Un(n,{scale:s,...r}),toPng:(r={})=>Be(n,{dpr:i,scale:s,...r},"png"),toJpg:(r={})=>Be(n,{dpr:i,scale:s,...r},"jpeg"),toWebp:(r={})=>Be(n,{dpr:i,scale:s,...r},"webp"),download:({format:r="png",filename:o="snapDOM",backgroundColor:a,...l}={})=>(async function(c,{dpr:u=1,scale:d=1,backgroundColor:p,format:f="png",filename:v="snapDOM"}={}){if(f==="svg"){const k=await Un(c),N=URL.createObjectURL(k),j=document.createElement("a");return j.href=N,j.download=`${v}.svg`,j.click(),void URL.revokeObjectURL(N)}const m=["jpg","jpeg","webp"].includes(f)?"#fff":void 0,w=p??m,y=await Ue(c,{dpr:u,scale:d},w),M={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",webp:"image/webp"}[f]||"image/png",C=y.toDataURL(M),b=document.createElement("a");b.href=C,b.download=`${v}.${f}`,b.click()})(n,{dpr:i,scale:s,format:r,filename:o,backgroundColor:a,...l})}},F.toRaw=async(t,e)=>(await F.capture(t,e)).toRaw(),F.toImg=async(t,e)=>(await F.capture(t,e)).toImg(),F.toCanvas=async(t,e)=>(await F.capture(t,e)).toCanvas(),F.toBlob=async(t,e)=>(await F.capture(t,e)).toBlob(e),F.toPng=async(t,e)=>(await F.capture(t,e)).toPng(e),F.toJpg=async(t,e)=>(await F.capture(t,e)).toJpg(e),F.toWebp=async(t,e)=>(await F.capture(t,e)).toWebp(e),F.download=async(t,e={})=>{const{format:n="png",filename:i="capture",backgroundColor:s,...r}=e;return await(await F.capture(t,r)).download({format:n,filename:i,backgroundColor:s})};var vr=(t,e)=>X(e,null),yr=Kt('
'),wr=Kt(''),br=Kt("
"),xr=Kt("
"),Sr=Kt('
');(function(t){for(var e=0;e(function(i,s){const r=Le.get(i);return r?(Le.delete(i),r(s)):Promise.resolve()})(n)}})(function(t,e){Xe(e,!0);const n=(()=>{const h=document.querySelector("[data-tidy-feedback-config]");if(h)try{return JSON.parse(h.dataset.tidyFeedbackConfig)}catch{}return{}})(),i="info",s="danger",r="error",o="success";let a,l,c,u=tt(!0),d=tt(!0),p=null,f=tt(""),v=tt(i);const m=n.messageHideDelay??0,w=h=>n.messages?.[h]??h+" (missing translation)",y=(h,S=i)=>{p&&clearTimeout(p),X(f,h,!0),X(v,S,!0),m>0&&(p=setTimeout(()=>X(f,""),m))},M=()=>{y(w("Highlight and fill")),X(u,!1),X(d,!1)},C=(h=!1)=>{h&&c.reset(),X(u,!0),X(d,!0)};(function(h){rr();var S=L.f;if(P||(S&Ft)===0||(S&me)!==0)return dn(h);var _=ot;(_.e??=[]).push(h)})(()=>{if(c=document.getElementById("tidy_feedback_form").content?.firstElementChild,c){const h=a.querySelector(".form-placeholder");h.parentNode.replaceChild(c,h),Bn(a,".tidy-feedback-draggable-handle",{constrainToViewport:!0}),l.style.left="300px",l.style.top="300px",l.style.width="300px",l.style.height="200px",(function(x){const O=x.querySelectorAll(".resizer"),T=20;let z=0,nt=0,Z=0,Dt=0,at=0,mt=0;const It=x.parentNode.querySelector(".overlays .top"),dt=x.parentNode.querySelector(".overlays .left"),xt=x.parentNode.querySelector(".overlays .right"),Zt=x.parentNode.querySelector(".overlays .bottom"),At=()=>{It&&(It.style.height=x.style.top),dt&&(dt.style.top=x.style.top,dt.style.height=x.style.height,dt.style.width=x.style.left),xt&&(xt.style.top=x.style.top,xt.style.height=x.style.height,xt.style.left=parseInt(x.style.left,10)+parseInt(x.style.width,10)+"px"),Zt&&(Zt.style.top=parseInt(x.style.top,10)+parseInt(x.style.height,10)+"px")};for(let St=0;StT&&(x.style.width=H+"px"),lt>T&&(x.style.height=lt+"px")}else if(Et.classList.contains("bottom-left")){const H=nt+(W.pageY-mt),lt=z-(W.pageX-at);H>T&&(x.style.height=H+"px"),lt>T&&(x.style.width=lt+"px",x.style.left=Z+(W.pageX-at)+"px")}else if(Et.classList.contains("top-right")){const H=z+(W.pageX-at),lt=nt-(W.pageY-mt);H>T&&(x.style.width=H+"px"),lt>T&&(x.style.height=lt+"px",x.style.top=Dt+(W.pageY-mt)+"px")}else{const H=z-(W.pageX-at),lt=nt-(W.pageY-mt);H>T&&(x.style.width=H+"px",x.style.left=Z+(W.pageX-at)+"px"),lt>T&&(x.style.height=lt+"px",x.style.top=Dt+(W.pageY-mt)+"px")}At()},te=function(){window.removeEventListener("mousemove",Ot),window.removeEventListener("mouseup",te)};const Et=O[St];Et.addEventListener("mousedown",function(W){W.preventDefault(),W.stopPropagation(),z=parseFloat(getComputedStyle(x,null).getPropertyValue("width").replace("px","")),nt=parseFloat(getComputedStyle(x,null).getPropertyValue("height").replace("px","")),Z=x.getBoundingClientRect().left,Dt=x.getBoundingClientRect().top,at=W.pageX,mt=W.pageY,window.addEventListener("mousemove",Ot),window.addEventListener("mouseup",te)})}Bn(x,".resizers",{onDrag:At}),At()})(l);const S=new URLSearchParams(document.location.search),_=/tidy-feedback\[(.+)\]/;for(const[x,O]of S.entries()){const T=_.exec(x);if(T){const z=c.elements[T[1]];z&&(z.value=O)}}S.get("tidy-feedback-show")==="form"&&M()}});var b=Sr(),k=it(b),N=h=>{var S=yr(),_=it(S),x=it(_),O=it(x),T=it(O);$t(T).__click=[vr,f],Ht(()=>{Te(O,0,Rn(["tidy-feedback-message","alert","alert-dismissible",{"alert-info":i===V(v),"alert-danger":s===V(v),"alert-error":r===V(v),"alert-success":o===V(v)}])),se(T,`${V(f)??""} `)}),Gt(h,S)};Mn(k,h=>{V(f)&&h(N)});var j=$t(k,2),A=h=>{var S=wr();S.__click=M;var _=it(S);Ht(x=>se(_,x),[()=>w("Send feedback")]),Gt(h,S)};Mn(j,h=>{V(u)&&h(A)});var D=$t(j,2),R=$t(it(D),4);R.__click=async h=>{if(c.reportValidity()){const S={};y("Taking screenshot …");try{const _=document.body,x=await F(_,{scale:1});let O=x.toRaw();for(const T of["toWebp","toPng","toJpg"]){const z=await x[T]();z.src.lengthS[x]=_),S.context={url:document.location.href,referrer:document.referrer,document:document.documentElement.outerHTML,navigator:{userAgent:navigator.userAgent},window:{innerWidth:window.innerWidth,innerHeight:window.innerHeight},region:{left:l.style.left,top:l.style.top,width:l.style.width,height:l.style.height}},y("Sending feedback …"),fetch(c.action,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(S)}).then(_=>{_.status===201?(C(!0),y(w("Feedback created"),o)):_.json().then(x=>y("Error creating feedback: "+JSON.stringify(x),s)).catch(x=>y("Error creating feedback: "+x,s))}).catch(_=>y(_,r))}};var $=it(R),E=$t(R,2);E.__click=()=>{((()=>{for(const h of c.elements)if(h.value||h.checked)return!1;return!0})()||confirm(w("Confirm cancellation")))&&(y(w("Cancelled")),C())};var Q=it(E);jn(D,h=>a=h,()=>a);var B=$t(D,2),I=it(B);Pn(I,20,()=>["top","left","right","bottom"],An,(h,S)=>{var _=br();Ht(()=>Te(_,0,Rn(S))),Gt(h,_)}),Pn(it($t(I,2)),20,()=>["top-left","top-right","bottom-left","bottom-right"],An,(h,S)=>{var _=xr();Ht(()=>Te(_,0,`resizer ${S??""}`)),Gt(h,_)}),jn(B,h=>l=h,()=>l),Ht((h,S)=>{D.hidden=V(u),se($,h),se(Q,S),B.hidden=V(d)},[()=>w("Send feedback"),()=>w("Cancel")]),Gt(t,b),Je()},"tidy_feedback")}); +(function(Nt){typeof define=="function"&&define.amd?define(Nt):Nt()})(function(){"use strict";var At=Array.isArray,Or=Array.prototype.indexOf,$t=Array.from,Mt=Object.defineProperty,Qe=Object.getOwnPropertyDescriptor,jr=Object.getOwnPropertyDescriptors,Dr=Object.prototype,Rr=Array.prototype,vn=Object.getPrototypeOf,wn=Object.isExtensible;const Ge=32,Lt=64,he=256,Tt=512,te=1024,Ce=2048,De=4096,me=8192,Ze=16384,Pt=32768,Ot=65536,Ir=1<<17,bn=1<<19,qr=1<<20,jt=1<<21,Wr=1<<22,Re=1<<23,dt=Symbol("$state"),Fr=Symbol(""),Dt=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},G=Symbol();function xn(e){return e===this.v}function _n(e){return t=e,n=this.v,!(t!=t?n==n:t!==n||t!==null&&typeof t=="object"||typeof t=="function");var t,n}let ge=null;function pt(e){ge=e}function Sn(e,t=!1,n){ge={p:ge,c:null,e:null,s:e,x:null,l:null}}function En(e){var t=ge,n=t.e;if(n!==null)for(var r of(t.e=null,n))Wn(r);return ge=t.p,{}}const Ur=new WeakMap;function Rt(e,t){for(;t!==null;){if(128&t.f)try{return void t.b.error(e)}catch(n){e=n}t=t.parent}throw e instanceof Error&&kn(e),e}function kn(e){const t=Ur.get(e);t&&(Mt(e,"message",{value:t.message}),Mt(e,"stack",{value:t.stack}))}let ht=[];function Vr(){var e=ht;ht=[],(function(t){for(var n=0;n{try{var a=e()}catch(f){a=Promise.reject(f)}var c=()=>a;s=i?.then(c,c)??Promise.resolve(a),i=s;var u=J,d=r.pending;l&&(r.update_pending_count(1),d||u.increment());const p=(f,y=void 0)=>{i=null,d||u.activate(),y?y!==Dt&&(o.f|=Re,rt(o,y)):((o.f&Re)!==0&&(o.f^=Re),rt(o,f)),l&&(r.update_pending_count(-1),d||u.decrement()),Mn()};if(s.then(p,f=>p(null,f||"unknown")),u)return()=>{queueMicrotask(()=>u.neuter())}}),new Promise(a=>{(function c(u){function d(){u===s?a(o):c(s)}u.then(d,d)})(s)})}function An(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;nYr(d))).then(d=>{l?.activate(),c();try{n([...e.map(r),...d])}catch(p){(a.f&Ze)===0&&Rt(p,a)}l?.deactivate(),Mn()}).catch(d=>{u.error(d)})}else n(e.map(r))}function Mn(){Me(null),we(null),pt(null)}const et=new Set;let J=null,Ye=null,Ln=new Set,gt=[];function Tn(){const e=gt.shift();gt.length>0&&queueMicrotask(Tn),e()}let tt=[],qt=null,Wt=!1;class ze{current=new Map;#o=new Map;#i=new Set;#e=0;#c=null;#u=!1;#n=[];#a=[];#r=[];#t=[];#s=[];#f=[];#d=[];skipped_effects=new Set;process(t){tt=[];var n=null;if(et.size>1){n=new Map,Ye=new Map;for(const[o,i]of this.current)n.set(o,{v:o.v,wv:o.wv}),o.v=i;for(const o of et)if(o!==this)for(const[i,l]of o.#o)n.has(i)||(n.set(i,{v:i.v,wv:i.wv}),i.v=l)}for(const o of t)this.#h(o);if(this.#n.length===0&&this.#e===0){this.#p();var r=this.#r,s=this.#t;this.#r=[],this.#t=[],this.#s=[],J=null,Pn(r),Pn(s),J===null?J=this:et.delete(this),this.#c?.resolve()}else this.#l(this.#r),this.#l(this.#t),this.#l(this.#s);if(n){for(const[o,{v:i,wv:l}]of n)o.wv<=l&&(o.v=i);Ye=null}for(const o of this.#n)st(o);for(const o of this.#a)st(o);this.#n=[],this.#a=[]}#h(t){t.f^=te;for(var n=t.first;n!==null;){var r=n.f,s=!!(96&r);if(!(s&&(r&te)!==0||(r&me)!==0||this.skipped_effects.has(n))&&n.fn!==null){s?n.f^=te:(r&te)===0&&(4&r?this.#t.push(n):(r&Wr)!==0?(n.b?.pending?this.#a:this.#n).push(n):wt(n)&&(16&n.f&&this.#s.push(n),st(n)));var o=n.first;if(o!==null){n=o;continue}}var i=n.parent;for(n=n.next;n===null&&i!==null;)n=i.next,i=i.parent}}#l(t){for(const n of t)((n.f&Ce)!==0?this.#f:this.#d).push(n),ae(n,te);t.length=0}capture(t,n){this.#o.has(t)||this.#o.set(t,n),this.current.set(t,t.v)}activate(){J=this}deactivate(){J=null;for(const t of Ln)if(Ln.delete(t),t(),J!==null)break}neuter(){this.#u=!0}flush(){tt.length>0?(function(){var t=He;Wt=!0;try{var n=0;for(Hn(!0);tt.length>0;){var r=ze.ensure();n++>1e3&&Hr(),r.process(tt),qe.clear()}}finally{Wt=!1,Hn(t),qt=null}})():this.#p(),J===this&&(this.#e===0&&et.delete(this),this.deactivate())}#p(){if(!this.#u)for(const t of this.#i)t();this.#i.clear()}increment(){this.#e+=1}decrement(){if(this.#e-=1,this.#e===0){for(const t of this.#f)ae(t,Ce),Ie(t);for(const t of this.#d)ae(t,De),Ie(t);this.#r=[],this.#t=[],this.flush()}else this.deactivate()}add_callback(t){this.#i.add(t)}settled(){return(this.#c??={promise:new Promise((r,s)=>{t=r,n=s}),resolve:t,reject:n}).promise;var t,n}static ensure(){if(J===null){const t=J=new ze;et.add(J),ze.enqueue(()=>{J===t&&t.flush()})}return J}static enqueue(t){gt.length===0&&queueMicrotask(Tn),gt.unshift(t)}}function Hr(){try{(function(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")})()}catch(e){Rt(e,qt)}}function Pn(e){var t=e.length;if(t!==0){for(var n=0;ns&&(r.f&qr)!==0)break}}for(;n{if(We===o)return l();var a=O,c=We;we(null),Jn(o);var u=l();return we(a),Jn(c),u};return r&&n.set("length",ce(e.length)),new Proxy(e,{defineProperty(l,a,c){"value"in c&&c.configurable!==!1&&c.enumerable!==!1&&c.writable!==!1||(function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")})();var u=n.get(a);return u===void 0?u=i(()=>{var d=ce(c.value);return n.set(a,d),d}):ne(u,c.value,!0),!0},deleteProperty(l,a){var c=n.get(a);if(c===void 0){if(a in l){const u=i(()=>ce(G));n.set(a,u),Ft(s)}}else ne(c,G),Ft(s);return!0},get(l,a,c){if(a===dt)return e;var u=n.get(a),d=a in l;if(u!==void 0||d&&!Qe(l,a)?.writable||(u=i(()=>ce(ot(d?l[a]:G))),n.set(a,u)),u!==void 0){var p=L(u);return p===G?void 0:p}return Reflect.get(l,a,c)},getOwnPropertyDescriptor(l,a){var c=Reflect.getOwnPropertyDescriptor(l,a);if(c&&"value"in c){var u=n.get(a);u&&(c.value=L(u))}else if(c===void 0){var d=n.get(a),p=d?.v;if(d!==void 0&&p!==G)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return c},has(l,a){if(a===dt)return!0;var c=n.get(a),u=c!==void 0&&c.v!==G||Reflect.has(l,a);return(c!==void 0||j!==null&&(!u||Qe(l,a)?.writable))&&(c===void 0&&(c=i(()=>ce(u?ot(l[a]):G)),n.set(a,c)),L(c)===G)?!1:u},set(l,a,c,u){var d=n.get(a),p=a in l;if(r&&a==="length")for(var f=c;fce(G)),n.set(f+"",y))}d===void 0?p&&!Qe(l,a)?.writable||(ne(d=i(()=>ce(void 0)),ot(c)),n.set(a,d)):(p=d.v!==G,ne(d,i(()=>ot(c))));var h=Reflect.getOwnPropertyDescriptor(l,a);if(h?.set&&h.set.call(u,c),!p){if(r&&typeof a=="string"){var v=n.get("length"),w=Number(a);Number.isInteger(w)&&w>=v.v&&ne(v,w+1)}Ft(s)}return!0},ownKeys(l){L(s);var a=Reflect.ownKeys(l).filter(d=>{var p=n.get(d);return p===void 0||p.v!==G});for(var[c,u]of n)u.v===G||c in l||a.push(c);return a},setPrototypeOf(){(function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")})()}})}var jn,Dn,Rn,In;function mt(e=""){return document.createTextNode(e)}function yt(e){return Rn.call(e)}function vt(e){return In.call(e)}function Q(e,t){return yt(e)}function Ut(e,t){var n=yt(e);return n instanceof Comment&&n.data===""?vt(n):n}function ue(e,t=1,n=!1){let r=e;for(;t--;)r=vt(r);return r}function qn(e){var t=O,n=j;we(null),Me(null);try{return e()}finally{we(t),Me(n)}}function Kr(e){j===null&&O===null&&(function(){throw new Error("https://svelte.dev/e/effect_orphan")})(),O!==null&&(O.f&he)!==0&&j===null&&(function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")})(),Ke&&(function(){throw new Error("https://svelte.dev/e/effect_in_teardown")})()}function $e(e,t,n,r=!0){var s=j;s!==null&&(s.f&me)!==0&&(e|=me);var o={ctx:ge,deps:null,nodes_start:null,nodes_end:null,f:e|Ce,first:null,fn:t,last:null,next:null,parent:s,b:s&&s.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(n)try{st(o),o.f|=Pt}catch(l){throw Ne(o),l}else t!==null&&Ie(o);if(!(n&&o.deps===null&&o.first===null&&o.nodes_start===null&&o.teardown===null&&(o.f&bn)===0)&&r&&(s!==null&&(function(l,a){var c=a.last;c===null?a.last=a.first=l:(c.next=l,l.prev=c,a.last=l)})(o,s),O!==null&&2&O.f&&(e&Lt)===0)){var i=O;(i.effects??=[]).push(o)}return o}function Wn(e){return $e(1048580,e,!1)}function ye(e,t=[],n=[]){zr(t,n,r=>{$e(8,()=>e(...r.map(L)),!0)})}function Fn(e,t=0){return $e(16|t,e,!0)}function it(e,t=!0){return $e(Ge,e,!0,t)}function Un(e){var t=e.teardown;if(t!==null){const n=Ke,r=O;Kn(!0),we(null);try{t.call(null)}finally{Kn(n),we(r)}}}function Vn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&qn(()=>{s.abort(Dt)});var r=n.next;(n.f&Lt)!==0?n.parent=null:Ne(n,t),n=r}}function Ne(e,t=!0){var n=!1;(t||262144&e.f)&&e.nodes_start!==null&&e.nodes_end!==null&&((function(o,i){for(;o!==null;){var l=o===i?null:vt(o);o.remove(),o=l}})(e.nodes_start,e.nodes_end),n=!0),Vn(e,t&&!n),bt(e,0),ae(e,Ze);var r=e.transitions;if(r!==null)for(const o of r)o.stop();Un(e);var s=e.parent;s!==null&&s.first!==null&&Bn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes_start=e.nodes_end=e.ac=null}function Bn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Vt(e,t){var n=[];Bt(e,n,!0),Yn(n,()=>{Ne(e),t&&t()})}function Yn(e,t){var n=e.length;if(n>0){var r=()=>--n||t();for(var s of e)s.out(r)}else t()}function Bt(e,t,n){if((e.f&me)===0){if(e.f^=me,e.transitions!==null)for(const o of e.transitions)(o.is_global||n)&&t.push(o);for(var r=e.first;r!==null;){var s=r.next;Bt(r,t,((r.f&Ot)!==0||(r.f&Ge)!==0)&&n),r=s}}}function Yt(e){zn(e,!0)}function zn(e,t){if((e.f&me)!==0){e.f^=me,(e.f&te)===0&&(ae(e,Ce),Ie(e));for(var n=e.first;n!==null;){var r=n.next;zn(n,((n.f&Ot)!==0||(n.f&Ge)!==0)&&t),n=r}if(e.transitions!==null)for(const s of e.transitions)(s.is_global||t)&&s.in()}}let He=!1;function Hn(e){He=e}let Ke=!1;function Kn(e){Ke=e}let O=null,ve=!1;function we(e){O=e}let j=null;function Me(e){j=e}let Ae=null,re=null,ie=0,fe=null,Xn=1,at=0,We=at;function Jn(e){We=e}let Le=!1;function Qn(){return++Xn}function wt(e){var t=e.f;if((t&Ce)!==0)return!0;if((t&De)!==0){var n=e.deps,r=(t&he)!==0;if(n!==null){var s,o,i=(t&Tt)!==0,l=r&&j!==null&&!Le,a=n.length;if((i||l)&&(j===null||(j.f&Ze)===0)){var c=e,u=c.parent;for(s=0;se.wv)return!0}r&&(j===null||Le)||ae(e,te)}return!1}function Gn(e,t,n=!0){var r=e.reactions;if(r!==null&&!Ae?.includes(e))for(var s=0;s{e.ac.abort(Dt)}),e.ac=null);try{e.f|=jt;var d=(0,e.fn)(),p=e.deps;if(re!==null){var f;if(bt(e,ie),p!==null&&ie>0)for(p.length=ie+re.length,f=0;fo||n});var u=O,d=j;we(null),Me(null);try{for(var p,f=[];o!==null;){var y=o.assignedSlot||o.parentNode||o.host||null;try{var h=o["__"+r];if(h!=null&&(!o.disabled||e.target===o))if(At(h)){var[v,...w]=h;v.apply(o,[e,...w])}else h.call(o,e)}catch(N){p?f.push(N):p=N}if(e.cancelBubble||y===t||y===null)break;o=y}if(p){for(let N of f)queueMicrotask(()=>{throw N});throw p}}finally{e.__root=t,delete e.currentTarget,we(u),Me(d)}}}function Ht(e,t){var n=j;n.nodes_start===null&&(n.nodes_start=e,n.nodes_end=t)}function be(e,t){var n,r=!!(1&t),s=!!(2&t),o=!e.startsWith("");return()=>{var i,l;n===void 0&&(i=o?e:""+e,(l=document.createElement("template")).innerHTML=i.replaceAll("",""),n=l.content,r||(n=yt(n)));var a=s||Dn?document.importNode(n,!0):n.cloneNode(!0);return r?Ht(yt(a),a.lastChild):Ht(a,a),a}}function rr(){var e=document.createDocumentFragment(),t=document.createComment(""),n=mt();return e.append(t,n),Ht(t,n),e}function de(e,t){e!==null&&e.before(t)}function Te(e,t){var n=t==null?"":typeof t=="object"?t+"":t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=n+"")}function Zr(e,t){return(function(n,{target:r,anchor:s,props:o={},events:i,context:l,intro:a=!0}){(function(){if(jn===void 0){jn=window,Dn=/Firefox/.test(navigator.userAgent);var f=Element.prototype,y=Node.prototype,h=Text.prototype;Rn=Qe(y,"firstChild").get,In=Qe(y,"nextSibling").get,wn(f)&&(f.__click=void 0,f.__className=void 0,f.__attributes=null,f.__style=void 0,f.__e=void 0),wn(h)&&(h.__t=void 0)}})();var c=new Set,u=f=>{for(var y=0;ynew Promise(v=>{h.outro?Vt(y,()=>{Ne(y),v(void 0)}):(Ne(y),v(void 0))})})(()=>{var f=s??r.appendChild(mt());return it(()=>{l&&(Sn({}),ge.c=l),i&&(o.$$events=i),d=n(f,o)||{},l&&En()}),()=>{for(var y of c){r.removeEventListener(y,xt);var h=Xe.get(y);--h===0?(document.removeEventListener(y,xt),Xe.delete(y)):Xe.set(y,h)}zt.delete(u),f!==s&&f.parentNode?.removeChild(f)}});return Kt.set(d,p),d})(e,t)}const Xe=new Map;let Kt=new WeakMap;function Fe(e,t,n=!1){var r=e,s=null,o=null,i=G,l=!1;const a=(p,f=!0)=>{l=!0,d(f,p)};var c=null;function u(){c!==null&&(c.lastChild.remove(),r.before(c),c=null);var p=i?s:o,f=i?o:s;p&&Yt(p),f&&Vt(f,()=>{i?o=null:s=null})}const d=(p,f)=>{if(i!==(i=p)){var y=!1,h=r;i?s??=f&&it(()=>f(h)):o??=f&&it(()=>f(h)),u()}};Fn(()=>{l=!1,t(a),l||d(null,null)},n?Ot:0)}function Xt(e,t){return t}function Jt(e,t,n,r,s,o=null){var i=e,l={flags:t,items:new Map,first:null};!(4&t)||(i=e.appendChild(mt()));var a,c,u=null,d=!1,p=new Map,f=(function(h){const v=Nn(h);return v.equals=_n,v})(()=>{var h=n();return At(h)?h:h==null?[]:$t(h)});function y(){(function(h,v,w,N,_,b,E,C,R){var T,q,U,$,x,D,ee=!!(8&E),I=!!(3&E),P=v.length,S=w.items,M=w.first,g=M,k=null,A=[],F=[];if(ee)for(D=0;D0){var Ee=4&E&&P===0?_:null;if(ee){for(D=0;D0&&W.length===0&&je!==null;if(Be){var oe=je.parentNode;oe.textContent="",oe.append(je),Ve.clear(),xe(ke,pe[0].prev,pe[Y-1].next)}Yn(W,()=>{for(var yn=0;yn{if(q!==void 0)for(x of q)x.a?.apply()});for(var B of(h.first=w.first&&w.first.e,h.last=k&&k.e,N.values()))Ne(B.e);N.clear()})(c,a,l,p,i,s,t,r,n),o!==null&&(a.length===0?u?Yt(u):u=it(()=>o(i)):u!==null&&Vt(u,()=>{u=null}))}Fn(()=>{c??=j;var h=(a=L(f)).length;d&&h===0||(d=h===0,y(),L(f))})}function eo(e,t,n,r){1&r&&rt(e.v,t),2&r?rt(e.i,n):e.i=n}function to(e,t,n,r,s,o,i,l,a,c,u){var d=1&a?16&a?nt(s):(function(y,h=!1){const v=nt(y);return h||(v.equals=_n),v})(s,!1,!1):s,p=2&a?nt(i):i,f={i:p,v:d,k:o,a:null,e:null,prev:n,next:r};try{return e===null&&document.createDocumentFragment().append(e=mt()),f.e=it(()=>l(e,d,p,c),!1),f.e.prev=n&&n.e,f.e.next=r&&r.e,n===null?u||(t.first=f):(n.next=f,n.e.next=f.e),r!==null&&(r.prev=f,r.e.prev=f.e),f}finally{}}function Qt(e,t,n){for(var r=e.next?e.next.e.nodes_start:n,s=t?t.e.nodes_start:n,o=e.e.nodes_start;o!==null&&o!==r;){var i=vt(o);s.before(o),o=i}}function xe(e,t,n){t===null?e.first=n:(t.next=n,t.e.next=n&&n.e),n!==null&&(n.prev=t,n.e.prev=t&&t.e)}function or(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{var o,i;return(function(l,a=0){$e(8|a,l,!0)})(()=>{o=i,i=[],(function(l){var a=ve;try{return ve=!0,l()}finally{ve=a}})(()=>{e!==n(...i)&&(t(e,...i),o&&lr(n(...o),e)&&t(null,...o))})}),()=>{Cn(()=>{i&&lr(n(...i),e)&&t(null,...i)})}},$e(4,s,!1),e}typeof window<"u"&&((window.__svelte??={}).v??=new Set).add("5");var m={image:new Map,background:new Map,resource:new Map,defaultStyle:new Map,baseStyle:new Map,computedStyle:new WeakMap,font:new Set,snapshot:new WeakMap,snapshotKey:new Map,preStyleMap:new Map,preStyle:new WeakMap,preNodeMap:new Map,reset:function(){m.computedStyle=new WeakMap,m.snapshot=new WeakMap,m.snapshotKey.clear(),m.preStyleMap.clear(),m.preStyle=new WeakMap,m.preNodeMap.clear()}},oo=new Set(["-webkit-locale"]);function Gt(e,t,n=!1){const r=[],s=(function(o){if(m.defaultStyle.has(o))return m.defaultStyle.get(o);if(new Set(["script","style","meta","link","noscript","template","defs","symbol","title","metadata","desc"]).has(o)){const u={};return m.defaultStyle.set(o,u),u}let i=document.getElementById("snapdom-sandbox");i||(i=document.createElement("div"),i.id="snapdom-sandbox",i.style.position="absolute",i.style.left="-9999px",i.style.top="-9999px",i.style.width="0",i.style.height="0",i.style.overflow="hidden",document.body.appendChild(i));const l=document.createElement(o);l.style.all="initial",i.appendChild(l);const a=getComputedStyle(l),c={};for(let u of a)c[u]=a.getPropertyValue(u);return i.removeChild(l),m.defaultStyle.set(o,c),c})(t);for(let[o,i]of Object.entries(e))if(!oo.has(o))if(n){const l=s[o];i&&i!==l&&r.push(`${o}:${i}`)}else i&&r.push(`${o}:${i}`);return r.sort().join(";")}async function ur(e,t={}){const n=en(e);if(/^((repeating-)?(linear|radial|conic)-gradient)\(/i.test(e),n){const r=nn(n);if(m.background.has(r))return t.skipInline?void 0:`url(${m.background.get(r)})`;{const s=await tn(r,{useProxy:t.useProxy});return m.background.set(r,s),t.skipInline?void 0:`url("${s}")`}}return e}function ct(e,{fast:t=!1}={}){if(t)return e();"requestIdleCallback"in window?requestIdleCallback(e,{timeout:50}):setTimeout(e,1)}function Zt(e,t=null){if(!(e instanceof Element))return window.getComputedStyle(e,t);let n=m.computedStyle.get(e);if(n||(n=new Map,m.computedStyle.set(e,n)),!n.has(t)){const r=window.getComputedStyle(e,t);n.set(t,r)}return n.get(t)}function io(e){let t=e.replace(/^['"]|['"]$/g,"");if(t.startsWith("\\"))try{return String.fromCharCode(parseInt(t.replace("\\",""),16))}catch{return t}return t}function en(e){const t=e.match(/url\((['"]?)(.*?)(\1)\)/);if(!t)return null;const n=t[2].trim();return n.startsWith("#")?null:n}function tn(e,{timeout:t=3e3,useProxy:n=""}={}){function r(i){try{return new URL(i,window.location.href).origin===window.location.origin?"use-credentials":"anonymous"}catch{return"anonymous"}}async function s(i){const l=a=>fetch(a,{mode:"cors",credentials:r(a)==="use-credentials"?"include":"omit"}).then(c=>c.blob()).then(c=>new Promise((u,d)=>{const p=new FileReader;p.onloadend=()=>{const f=p.result;typeof f=="string"&&f.startsWith("data:image/")?u(f):d(new Error("Invalid image data URL"))},p.onerror=()=>d(new Error("FileReader error")),p.readAsDataURL(c)}));try{return await l(i)}catch{if(!n||typeof n!="string")throw new Error("[SnapDOM - fetchImage] Fetch fallback failed and no proxy provided");{const c=n.replace(/\/$/,"")+nn(i);try{return await l(c)}catch{throw new Error("[SnapDOM - fetchImage] CORS restrictions prevented image capture (even via proxy)")}}}}const o=r(e);return m.image.has(e)?Promise.resolve(m.image.get(e)):e.startsWith("data:image/")?(m.image.set(e,e),Promise.resolve(e)):/\.svg(\?.*)?$/i.test(e)?(async()=>{try{const i=await fetch(e,{mode:"cors",credentials:o==="use-credentials"?"include":"omit"}),l=await i.text(),a=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(l)}`;return m.image.set(e,a),a}catch{return s(e)}})():new Promise((i,l)=>{const a=setTimeout(()=>{l(new Error("[SnapDOM - fetchImage] Image load timed out"))},t),c=new Image;c.crossOrigin=o,c.onload=async()=>{clearTimeout(a);try{await c.decode();const u=document.createElement("canvas");u.width=c.width,u.height=c.height,u.getContext("2d").drawImage(c,0,0,u.width,u.height);const d=u.toDataURL("image/png");m.image.set(e,d),i(d)}catch{try{const u=await s(e);m.image.set(e,u),i(u)}catch(u){l(u)}}},c.onerror=async()=>{clearTimeout(a);try{const u=await s(e);m.image.set(e,u),i(u)}catch(u){l(u)}},c.src=e})}function fr(e){const t={};for(let n of e)t[n]=e.getPropertyValue(n);return t}function nn(e){if(/%[0-9A-Fa-f]{2}/.test(e))return e;try{return encodeURI(e)}catch{return e}}function dr(e){const t=[];let n=0,r=0;for(let s=0;sl.localeCompare(a)).map(([l,a])=>`${l}:${a}`).join(";");if(m.snapshotKey.has(o))return void m.preStyleMap.set(t,m.snapshotKey.get(o));const i=Gt(s,e.tagName?.toLowerCase()||"div",n);m.snapshotKey.set(o,i),m.preStyleMap.set(t,i)}function St(e,t,n={},r){if(!e)throw new Error("Invalid node");const s=new Set;let o,i=null;if(e.nodeType===Node.TEXT_NODE||e.nodeType!==Node.ELEMENT_NODE)return e.cloneNode(!0);if(e.getAttribute("data-capture")==="exclude"){const l=document.createElement("div"),a=e.getBoundingClientRect();return l.style.cssText=`display:inline-block;width:${a.width}px;height:${a.height}px;visibility:hidden;`,l}if(n.exclude&&Array.isArray(n.exclude))for(const l of n.exclude)try{if(e.matches?.(l)){const a=document.createElement("div"),c=e.getBoundingClientRect();return a.style.cssText=`display:inline-block;width:${c.width}px;height:${c.height}px;visibility:hidden;`,a}}catch{}if(typeof n.filter=="function")try{if(!n.filter(e,r||e)){const l=document.createElement("div"),a=e.getBoundingClientRect();return l.style.cssText=`display:inline-block;width:${a.width}px;height:${a.height}px;visibility:hidden;`,l}}catch{}if(e.tagName==="IFRAME"){const l=document.createElement("div");return l.style.cssText=`width:${e.offsetWidth}px;height:${e.offsetHeight}px;background-image:repeating-linear-gradient(45deg,#ddd,#ddd 5px,#f9f9f9 5px,#f9f9f9 10px);display:flex;align-items:center;justify-content:center;font-size:12px;color:#555;border:1px solid #aaa;`,l}if(e.getAttribute("data-capture")==="placeholder"){const l=e.cloneNode(!1);m.preNodeMap.set(l,e),rn(e,l,t);const a=document.createElement("div");return a.textContent=e.getAttribute("data-placeholder-text")||"",a.style.cssText="color:#666;font-size:12px;text-align:center;line-height:1.4;padding:0.5em;box-sizing:border-box;",l.appendChild(a),l}if(e.tagName==="CANVAS"){const l=e.toDataURL(),a=document.createElement("img");return a.src=l,a.width=e.width,a.height=e.height,m.preNodeMap.set(a,e),rn(e,a,t),a}try{o=e.cloneNode(!1),m.preNodeMap.set(o,e)}catch(l){throw l}if(e instanceof HTMLTextAreaElement){o.textContent=e.value,o.value=e.value;const l=e.getBoundingClientRect();return o.style.width=`${l.width}px`,o.style.height=`${l.height}px`,o}if(e instanceof HTMLInputElement&&(o.value=e.value,o.setAttribute("value",e.value),e.checked!==void 0&&(o.checked=e.checked,e.checked&&o.setAttribute("checked",""),e.indeterminate&&(o.indeterminate=e.indeterminate))),e instanceof HTMLSelectElement&&(i=e.value),rn(e,o,t),e.shadowRoot)if(Array.from(e.shadowRoot.querySelectorAll("slot")).length>0){for(const l of e.shadowRoot.childNodes)if(l.nodeType===Node.ELEMENT_NODE&&l.tagName==="STYLE"){const a=l.textContent||"";a.trim()&&t&&(m.preStyle||(m.preStyle=new WeakMap),m.preStyle.set(l,a))}}else{const l=document.createDocumentFragment();for(const a of e.shadowRoot.childNodes){if(a.nodeType===Node.ELEMENT_NODE&&a.tagName==="STYLE"){const u=a.textContent||"";u.trim()&&t&&(m.preStyle||(m.preStyle=new WeakMap),m.preStyle.set(a,u));continue}const c=St(a,t,n,r||e);c&&l.appendChild(c)}o.appendChild(l)}if(e.tagName==="SLOT"){const l=e.assignedNodes?.({flatten:!0})||[],a=l.length>0?l:Array.from(e.childNodes),c=document.createDocumentFragment();for(const u of a){const d=St(u,t,n,r||e);d&&c.appendChild(d)}return c}for(const l of e.childNodes){if(s.has(l))continue;const a=St(l,t,n,r||e);a&&o.appendChild(a)}if(i!==null&&o instanceof HTMLSelectElement){o.value=i;for(const l of o.options)l.value===i?l.setAttribute("selected",""):l.removeAttribute("selected")}return o}var ao=[/font\s*awesome/i,/material\s*icons/i,/ionicons/i,/glyphicons/i,/feather/i,/bootstrap\s*icons/i,/remix\s*icons/i,/heroicons/i,/layui/i,/lucide/i],on=[];function Pe(e){const t=typeof e=="string"?e:"",n=[...ao,...on];for(const r of n)if(r instanceof RegExp&&r.test(t))return!0;return!!(/icon/i.test(t)||/glyph/i.test(t)||/symbols/i.test(t)||/feather/i.test(t)||/fontawesome/i.test(t))}async function so(e,t,n,r=32,s="#000"){t=t.replace(/^['"]+|['"]+$/g,"");const o=window.devicePixelRatio||1;await document.fonts.ready;const i=document.createElement("span");i.textContent=e,i.style.position="absolute",i.style.visibility="hidden",i.style.fontFamily=`"${t}"`,i.style.fontWeight=n||"normal",i.style.fontSize=`${r}px`,i.style.lineHeight="1",i.style.whiteSpace="nowrap",i.style.padding="0",i.style.margin="0",document.body.appendChild(i);const l=i.getBoundingClientRect(),a=Math.ceil(l.width),c=Math.ceil(l.height);document.body.removeChild(i);const u=document.createElement("canvas");u.width=a*o,u.height=c*o;const d=u.getContext("2d");return d.scale(o,o),d.font=n?`${n} ${r}px "${t}"`:`${r}px "${t}"`,d.textAlign="left",d.textBaseline="top",d.fillStyle=s,d.fillText(e,0,0),{dataUrl:u.toDataURL(),width:a,height:c}}function pr(e){return Array.from(document.styleSheets).some(t=>t.href===e)}function lo(e){return new Promise(t=>{if(pr(e))return t(null);const n=document.createElement("link");n.rel="stylesheet",n.href=e,n.setAttribute("data-snapdom","injected-import"),n.onload=()=>t(n),n.onerror=()=>t(null),document.head.appendChild(n)})}async function hr(e,t,n){if(!(e instanceof Element&&t instanceof Element))return;for(const o of["::before","::after","::first-letter"])try{const i=Zt(e,o);if(!i||typeof i[Symbol.iterator]!="function"||!(i.content!=="none"||i.backgroundImage!=="none"||i.backgroundColor!=="transparent"||i.borderStyle!=="none"&&parseFloat(i.borderWidth)!==0||i.transform&&i.transform!=="none"||i.display!=="inline"))continue;if(o==="::first-letter"){const I=getComputedStyle(e);if(!(i.color!==I.color||i.fontSize!==I.fontSize||i.fontWeight!==I.fontWeight))continue;const P=Array.from(t.childNodes).find(se=>se.nodeType===Node.TEXT_NODE&&se.textContent?.trim().length>0);if(!P)continue;const S=P.textContent,M=S.match(/^([^\p{L}\p{N}\s]*[\p{L}\p{N}](?:['’])?)/u),g=M?.[0],k=S.slice(g?.length||0);if(!g||/[\uD800-\uDFFF]/.test(g))continue;const A=document.createElement("span");A.textContent=g,A.dataset.snapdomPseudo="::first-letter";const F=Gt(fr(i),"span",n);m.preStyleMap.set(A,F);const z=document.createTextNode(k);t.replaceChild(z,P),t.insertBefore(A,z);continue}const l=i.content,a=/counter\s*\(|counters\s*\(/.test(l)?"- ":io(l),c=i.backgroundImage,u=i.backgroundColor,d=i.fontFamily,p=parseInt(i.fontSize)||32,f=parseInt(i.fontWeight)||!1,y=i.color||"#000",h=i.display,v=parseFloat(i.width),w=parseFloat(i.height),N=i.borderStyle,_=parseFloat(i.borderWidth),b=i.transform,E=Pe(d),C=l!=="none"&&a!=="",R=c&&c!=="none",T=u&&u!=="transparent"&&u!=="rgba(0, 0, 0, 0)",q=h!=="inline"&&(v>0||w>0),U=N&&N!=="none"&&_>0,$=b&&b!=="none";if(!(C||R||T||q||U||$))continue;const x=document.createElement("span");x.dataset.snapdomPseudo=o,x.style.verticalAlign="middle";const D=Gt(fr(i),"span",n);if(m.preStyleMap.set(x,D),E&&a.length===1){const{dataUrl:I,width:P,height:S}=await so(a,d,f,p,y),M=document.createElement("img");M.src=I,M.style=`height:${p}px;width:${P/S*p}px;object-fit:contain;`,x.appendChild(M),t.dataset.snapdomHasIcon="true"}else if(a.startsWith("url(")){const I=en(a);if(I?.trim())try{const P=document.createElement("img"),S=await tn(nn(I),n);P.src=S,P.style=`width:${p}px;height:auto;object-fit:contain;`,x.appendChild(P)}catch{}}else!E&&C&&(x.textContent=a);if(R)try{const I=dr(c),P=await Promise.all(I.map(ur));x.style.backgroundImage=P.join(", ")}catch{}if(T&&(x.style.backgroundColor=u),!(x.childNodes.length>0||x.textContent?.trim()!==""||R||T||q||U||$))continue;o==="::before"?t.insertBefore(x,t.firstChild):t.appendChild(x)}catch{}const r=Array.from(e.children),s=Array.from(t.children).filter(o=>!o.dataset.snapdomPseudo);for(let o=0;o0,f=u==="none"||parseFloat(d)===0;p&&f&&(i.style.border=`${c} solid transparent`)})(e);try{(function(i){if(!i)return;const l=new Set;if(i.querySelectorAll("use").forEach(f=>{const y=f.getAttribute("xlink:href")||f.getAttribute("href");y&&y.startsWith("#")&&l.add(y.slice(1))}),!l.size)return;const a=Array.from(document.querySelectorAll("svg > symbol, svg > defs")),c=a.filter(f=>f.tagName.toLowerCase()==="symbol"),u=a.filter(f=>f.tagName.toLowerCase()==="defs");let d=i.querySelector("svg.inline-defs-container");d||(d=document.createElementNS("http://www.w3.org/2000/svg","svg"),d.setAttribute("aria-hidden","true"),d.setAttribute("style","position: absolute; width: 0; height: 0; overflow: hidden;"),d.classList.add("inline-defs-container"),i.insertBefore(d,i.firstChild));const p=new Set;i.querySelectorAll("symbol[id], defs > *[id]").forEach(f=>{p.add(f.id)}),l.forEach(f=>{if(p.has(f))return;const y=c.find(h=>h.id===f);if(y)return d.appendChild(y.cloneNode(!0)),void p.add(f);for(const h of u){const v=h.querySelector(`#${CSS.escape(f)}`);if(v){let w=d.querySelector("defs");w||(w=document.createElementNS("http://www.w3.org/2000/svg","defs"),d.appendChild(w)),w.appendChild(v.cloneNode(!0)),p.add(f);break}}})})(e)}catch{}try{s=St(e,t,r,e)}catch(i){throw i}try{await hr(e,s,t,r.useProxy)}catch{}if(t){const i=(function(){const l=new Set(m.preStyleMap.values()),a=new Map;let c=1;for(const u of l)u.trim()&&a.set(u,"c"+c++);return a})();o=Array.from(i.entries()).map(([l,a])=>`.${a}{${l}}`).join("");for(const[l,a]of m.preStyleMap.entries()){if(l.tagName==="STYLE")continue;if(l.getRootNode&&l.getRootNode()instanceof ShadowRoot){l.setAttribute("style",a.replace(/;/g,"; "));continue}const c=i.get(a);c&&l.classList.add(c);const u=l.style?.backgroundImage,d=l.dataset?.snapdomHasIcon;u&&u!=="none"&&(l.style.backgroundImage=u),d&&(l.style.verticalAlign="middle",l.style.display="inline")}}else for(const[i,l]of m.preStyleMap.entries())i.tagName!=="STYLE"&&i.setAttribute("style",l.replace(/;/g,"; "));for(const[i,l]of m.preNodeMap.entries()){const a=l.scrollLeft,c=l.scrollTop;if((a||c)&&i instanceof HTMLElement){i.style.overflow="hidden",i.style.scrollbarWidth="none",i.style.msOverflowStyle="none";const u=document.createElement("div");for(u.style.transform=`translate(${-a}px, ${-c}px)`,u.style.willChange="transform",u.style.display="inline-block",u.style.width="100%";i.firstChild;)u.appendChild(i.firstChild);i.appendChild(u)}}if(e===m.preNodeMap.get(s)){const i=m.preStyle.get(e)||window.getComputedStyle(e);m.preStyle.set(e,i);const l=(function(a){if(!a||a==="none")return"";let c=a.replace(/translate[XY]?\([^)]*\)/g,"");return c=c.replace(/matrix\(([^)]+)\)/g,(u,d)=>{const p=d.split(",").map(f=>f.trim());return p.length!==6?`matrix(${d})`:(p[4]="0",p[5]="0",`matrix(${p.join(", ")})`)}),c=c.replace(/matrix3d\(([^)]+)\)/g,(u,d)=>{const p=d.split(",").map(f=>f.trim());return p.length!==16?`matrix3d(${d})`:(p[12]="0",p[13]="0",`matrix3d(${p.join(", ")})`)}),c.trim().replace(/\s{2,}/g," ")})(i.transform);s.style.margin="0",s.style.position="static",s.style.top="auto",s.style.left="auto",s.style.right="auto",s.style.bottom="auto",s.style.zIndex="auto",s.style.float="none",s.style.clear="none",s.style.transform=l||""}for(const[i,l]of m.preNodeMap.entries())l.tagName==="PRE"&&(i.style.marginTop="0",i.style.marginBlockStart="0");return{clone:s,classCSS:o}}async function uo(e,t={}){if(!e)throw new Error("Element cannot be null or undefined");m.reset();const{compress:n=!0,embedFonts:r=!1,fast:s=!0,scale:o=1,useProxy:i=""}=t;let l,a,c,u,d="",p="";if({clone:l,classCSS:a}=await co(e,n,r,t),await new Promise(y=>{ct(async()=>{await(async function(h,v={}){const w=Array.from(h.querySelectorAll("img")),N=async _=>{const b=_.src;try{const E=await tn(b,{useProxy:v.useProxy});_.src=E,_.width||(_.width=_.naturalWidth||100),_.height||(_.height=_.naturalHeight||100)}catch{const E=document.createElement("div");E.style=`width: ${_.width||100}px; height: ${_.height||100}px; background: #ccc; display: inline-block; text-align: center; line-height: ${_.height||100}px; color: #666; font-size: 12px;`,E.innerText="img",_.replaceWith(E)}};for(let _=0;_{ct(async()=>{await(async function(h,v,w={}){const N=[[h,v]],_=["background-image","mask","mask-image","-webkit-mask-image","mask-source","mask-box-image-source","mask-border-source","-webkit-mask-box-image-source","border-image","border-image-source","border-image-slice","border-image-width","border-image-outset","border-image-repeat"];for(;N.length;){const[b,E]=N.shift(),C=m.preStyle.get(b)||Zt(b);m.preStyle.has(b)||m.preStyle.set(b,C);const R=(()=>{const $=C.getPropertyValue("border-image"),x=C.getPropertyValue("border-image-source");return $&&$!=="none"||x&&x!=="none"})();for(const $ of _){if(["border-image-slice","border-image-width","border-image-outset","border-image-repeat"].includes($)&&!R)continue;const x=C.getPropertyValue($);if(!x||x==="none")continue;const D=dr(x),ee=await Promise.all(D.map(I=>ur(I,w)));ee.some(I=>I&&I!=="none"&&!/^url\(undefined/.test(I))&&E.style.setProperty($,ee.join(", "))}const T=C.getPropertyValue("background-color");T&&T!=="transparent"&&T!=="rgba(0, 0, 0, 0)"&&(E.style.backgroundColor=T);const q=Array.from(b.children),U=Array.from(E.children);for(let $=0;${ct(async()=>{d=await(async function({preCached:h=!1}={}){if(m.resource.has("fonts-embed-css")){if(h){const b=document.createElement("style");b.setAttribute("data-snapdom","embedFonts"),b.textContent=m.resource.get("fonts-embed-css"),document.head.appendChild(b)}return m.resource.get("fonts-embed-css")}const v=/@import\s+url\(["']?([^"')]+)["']?\)/g,w=[];for(const b of document.querySelectorAll("style")){const E=b.textContent||"",C=Array.from(E.matchAll(v));for(const R of C){const T=R[1];Pe(T)||pr(T)||w.push(T)}}await Promise.all(w.map(lo));const N=Array.from(document.querySelectorAll('link[rel="stylesheet"]')).filter(b=>b.href);let _="";for(const b of N)try{const E=await fetch(b.href),C=await E.text();if(Pe(b.href)||Pe(C))continue;const R=/url\((["']?)([^"')]+)\1\)/g,T=await Promise.all(Array.from(C.matchAll(R)).map(async U=>{let $=en(U[0]);if(!$)return null;let x=$;if(x.startsWith("http")||x.startsWith("data:")||(x=new URL(x,b.href).href),Pe(x))return null;if(m.resource.has(x))return m.font.add(x),{original:U[0],inlined:`url(${m.resource.get(x)})`};if(m.font.has(x))return null;try{const D=await fetch(x),ee=await D.blob(),I=await new Promise(P=>{const S=new FileReader;S.onload=()=>P(S.result),S.readAsDataURL(ee)});return m.resource.set(x,I),m.font.add(x),{original:U[0],inlined:`url(${I})`}}catch{return null}}));let q=C;for(const U of T)U&&(q=q.replace(U.original,U.inlined));_+=q+` +`}catch{}for(const b of document.styleSheets)try{if(!b.href||N.every(E=>E.href!==b.href)){for(const E of b.cssRules)if(E.type===CSSRule.FONT_FACE_RULE){const C=E.style.getPropertyValue("src"),R=E.style.getPropertyValue("font-family");if(!C||Pe(R))continue;const T=/url\((["']?)([^"')]+)\1\)/g,q=/local\((["']?)[^)]+?\1\)/g,U=!!C.match(T),$=!!C.match(q);if(!U&&$){_+=`@font-face{font-family:${R};src:${C};font-style:${E.style.getPropertyValue("font-style")||"normal"};font-weight:${E.style.getPropertyValue("font-weight")||"normal"};}`;continue}let x=C;const D=Array.from(C.matchAll(T));for(const ee of D){let I=ee[2].trim();if(!I)continue;let P=I;if(P.startsWith("http")||P.startsWith("data:")||(P=new URL(P,b.href||location.href).href),!Pe(P)){if(m.resource.has(P))m.font.add(P),x=x.replace(ee[0],`url(${m.resource.get(P)})`);else if(!m.font.has(P))try{const S=await fetch(P),M=await S.blob(),g=await new Promise(k=>{const A=new FileReader;A.onload=()=>k(A.result),A.readAsDataURL(M)});m.resource.set(P,g),m.font.add(P),x=x.replace(ee[0],`url(${g})`)}catch{}}}_+=`@font-face{font-family:${R};src:${x};font-style:${E.style.getPropertyValue("font-style")||"normal"};font-weight:${E.style.getPropertyValue("font-weight")||"normal"};}`}}}catch{}for(const b of document.fonts)if(b.family&&b.status==="loaded"&&b._snapdomSrc){if(Pe(b.family))continue;let E=b._snapdomSrc;if(!E.startsWith("data:")){if(m.resource.has(b._snapdomSrc))E=m.resource.get(b._snapdomSrc),m.font.add(b._snapdomSrc);else if(!m.font.has(b._snapdomSrc))try{const C=await fetch(b._snapdomSrc),R=await C.blob();E=await new Promise(T=>{const q=new FileReader;q.onload=()=>T(q.result),q.readAsDataURL(R)}),m.resource.set(b._snapdomSrc,E),m.font.add(b._snapdomSrc)}catch{continue}}_+=`@font-face{font-family:'${b.family}';src:url(${E});font-style:${b.style||"normal"};font-weight:${b.weight||"normal"};}`}if(_&&(m.resource.set("fonts-embed-css",_),h)){const b=document.createElement("style");b.setAttribute("data-snapdom","embedFonts"),b.textContent=_,document.head.appendChild(b)}return _})(),y()},{fast:s})}),n){const y=(function(v){const w=new Set;return v.nodeType!==Node.ELEMENT_NODE&&v.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?[]:(v.tagName&&w.add(v.tagName.toLowerCase()),typeof v.querySelectorAll=="function"&&v.querySelectorAll("*").forEach(N=>w.add(N.tagName.toLowerCase())),Array.from(w))})(l).sort(),h=y.join(",");m.baseStyle.has(h)?p=m.baseStyle.get(h):await new Promise(v=>{ct(()=>{p=(function(w){const N=new Map;for(let b of w){const E=m.defaultStyle.get(b);if(!E)continue;const C=Object.entries(E).map(([R,T])=>`${R}:${T};`).sort().join("");N.has(C)||N.set(C,[]),N.get(C).push(b)}let _="";for(let[b,E]of N.entries())_+=`${E.join(",")} { ${b} } +`;return _})(y),m.baseStyle.set(h,p),v()},{fast:s})})}await new Promise(y=>{ct(()=>{const h=e.getBoundingClientRect();let v=h.width,w=h.height;const N=Number.isFinite(t.width),_=Number.isFinite(t.height),b=typeof o=="number"&&o!==1;if(!b){const q=h.width/h.height;N&&_?(v=t.width,w=t.height):N?(v=t.width,w=v/q):_&&(w=t.height,v=w*q)}if(v=Math.ceil(v),w=Math.ceil(w),l.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),l.style.transformOrigin="top left",!b&&(N||_)){const q=v/h.width,U=w/h.height,$=l.style.transform||"",x=`scale(${q}, ${U})`;l.style.transform=`${x} ${$}`.trim()}const E="http://www.w3.org/2000/svg",C=document.createElementNS(E,"foreignObject");C.setAttribute("width","100%"),C.setAttribute("height","100%");const R=document.createElement("style");R.textContent=p+d+"svg{overflow:visible;}"+a,C.appendChild(R),C.appendChild(l);const T=new XMLSerializer().serializeToString(C);u=``+T+"",c=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(u)}`,y()},{fast:s})});const f=document.getElementById("snapdom-sandbox");return f&&f.style.position==="absolute"&&f.remove(),c}async function gr(e,{dpr:t=1,scale:n=1}={}){const r=new Image;r.src=e,r.crossOrigin="anonymous",r.loading="eager",r.decoding="sync";const s=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);let o=!1;if(s&&(document.body.appendChild(r),o=!0),await r.decode(),s&&await new Promise(u=>setTimeout(u,100)),r.width===0||r.height===0)throw o&&r.remove(),new Error("Image failed to load or has no dimensions");const i=r.naturalWidth*n,l=r.naturalHeight*n,a=document.createElement("canvas");a.width=Math.ceil(i*t),a.height=Math.ceil(l*t),a.style.width=`${i}px`,a.style.height=`${l}px`;const c=a.getContext("2d");return c.scale(t,t),c.drawImage(r,0,0,i,l),o&&r.remove(),a}async function mr(e,{type:t="svg",scale:n=1,backgroundColor:r="#fff",quality:s}={}){const o={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",webp:"image/webp"}[t]||"image/png";if(t==="svg"){const l=decodeURIComponent(e.split(",")[1]);return new Blob([l],{type:"image/svg+xml"})}const i=await an(e,{dpr:1,scale:n},r);return new Promise(l=>{i.toBlob(a=>l(a),`${o}`,s)})}async function an(e,{dpr:t=1,scale:n=1},r){const s=await gr(e,{dpr:t,scale:n});if(!r)return s;const o=document.createElement("canvas");o.width=s.width,o.height=s.height;const i=o.getContext("2d");return i.fillStyle=r,i.fillRect(0,0,o.width,o.height),i.drawImage(s,0,0),o}async function sn(e,{dpr:t=1,scale:n=1,backgroundColor:r,quality:s},o="png"){const i=["jpg","jpeg","webp"].includes(o)?"#fff":void 0,l=r??i,a=await an(e,{dpr:t,scale:n},l),c=new Image;return c.src=a.toDataURL(`image/${o}`,s),await c.decode(),c.style.width=a.width/t+"px",c.style.height=a.height/t+"px",c}async function K(e,t={}){if(t={scale:1,...t},!e)throw new Error("Element cannot be null or undefined");return t.iconFonts&&(function(n){const r=Array.isArray(n)?n:[n];for(const s of r)s instanceof RegExp?on.push(s):typeof s=="string"&&on.push(new RegExp(s,"i"))})(t.iconFonts),await K.capture(e,t)}function yr(e,t=null,n={}){const r={constrainToViewport:!0,onDragStart:null,onDrag:null,onDragEnd:null,...n};let s=!1,o=0,i=0,l=0,a=0;const c=t?typeof t=="string"?e.querySelector(t):t:e;if(c)return c.addEventListener("mousedown",u),getComputedStyle(e).position==="static"&&(e.style.position="fixed"),()=>{c.removeEventListener("mousedown",u),document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",p)};function u(f){f.preventDefault(),s=!0;const y=e.getBoundingClientRect();o=y.left,i=y.top,l=f.pageX,a=f.pageY,e.classList.add("dragging"),c.classList.add("dragging"),document.addEventListener("mousemove",d),document.addEventListener("mouseup",p),r.onDragStart&&r.onDragStart(f,e)}function d(f){if(!s)return;f.preventDefault();const y=o+(f.pageX-l),h=i+(f.pageY-a);if(r.constrainToViewport){const v=e.getBoundingClientRect(),w=window.innerWidth-v.width,N=window.innerHeight-v.height,_=Math.max(0,Math.min(y,w)),b=Math.max(0,Math.min(h,N));e.style.left=`${_}px`,e.style.top=`${b}px`}else e.style.left=`${y}px`,e.style.top=`${h}px`;r.onDrag&&r.onDrag(f,e)}function p(f){f.preventDefault(),s=!1,e.classList.remove("dragging"),c.classList.remove("dragging"),document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",p),r.onDragEnd&&r.onDragEnd(f,e)}}K.capture=async(e,t={})=>{const n=await uo(e,t),r=t.dpr??(window.devicePixelRatio||1),s=t.scale||1;return{url:n,options:t,toRaw:()=>n,toImg:(o={})=>(async function(i,{scale:l=1}={}){const a=new Image;return a.src=i,await a.decode(),l!==1&&(a.style.width=a.naturalWidth*l+"px",a.style.height=a.naturalHeight*l+"px"),a})(n,{scale:s,...o}),toCanvas:(o={})=>gr(n,{dpr:r,scale:s,...o}),toBlob:(o={})=>mr(n,{scale:s,...o}),toPng:(o={})=>sn(n,{dpr:r,scale:s,...o},"png"),toJpg:(o={})=>sn(n,{dpr:r,scale:s,...o},"jpeg"),toWebp:(o={})=>sn(n,{dpr:r,scale:s,...o},"webp"),download:({format:o="png",filename:i="snapDOM",backgroundColor:l,...a}={})=>(async function(c,{dpr:u=1,scale:d=1,backgroundColor:p,format:f="png",filename:y="snapDOM"}={}){if(f==="svg"){const E=await mr(c),C=URL.createObjectURL(E),R=document.createElement("a");return R.href=C,R.download=`${y}.svg`,R.click(),void URL.revokeObjectURL(C)}const h=["jpg","jpeg","webp"].includes(f)?"#fff":void 0,v=p??h,w=await an(c,{dpr:u,scale:d},v),N={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",webp:"image/webp"}[f]||"image/png",_=w.toDataURL(N),b=document.createElement("a");b.href=_,b.download=`${y}.${f}`,b.click()})(n,{dpr:r,scale:s,format:o,filename:i,backgroundColor:l,...a})}},K.toRaw=async(e,t)=>(await K.capture(e,t)).toRaw(),K.toImg=async(e,t)=>(await K.capture(e,t)).toImg(),K.toCanvas=async(e,t)=>(await K.capture(e,t)).toCanvas(),K.toBlob=async(e,t)=>(await K.capture(e,t)).toBlob(t),K.toPng=async(e,t)=>(await K.capture(e,t)).toPng(t),K.toJpg=async(e,t)=>(await K.capture(e,t)).toJpg(t),K.toWebp=async(e,t)=>(await K.capture(e,t)).toWebp(t),K.download=async(e,t={})=>{const{format:n="png",filename:r="capture",backgroundColor:s,...o}=t;return await(await K.capture(e,o)).download({format:n,filename:r,backgroundColor:s})};const Oe=new Map,ln={set(e,t,n){Oe.has(e)||Oe.set(e,new Map);const r=Oe.get(e);(r.has(t)||r.size===0)&&r.set(t,n)},get:(e,t)=>Oe.has(e)&&Oe.get(e).get(t)||null,remove(e,t){if(!Oe.has(e))return;const n=Oe.get(e);n.delete(t),n.size===0&&Oe.delete(e)}},cn="transitionend",vr=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(t,n)=>`#${CSS.escape(n)}`)),e),fo=e=>e==null?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),ut=e=>!(!e||typeof e!="object")&&(e.jquery!==void 0&&(e=e[0]),e.nodeType!==void 0),wr=e=>ut(e)?e.jquery?e[0]:e:typeof e=="string"&&e.length>0?document.querySelector(vr(e)):null,br=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(e.disabled!==void 0?e.disabled:e.hasAttribute("disabled")&&e.getAttribute("disabled")!=="false"),xr=()=>window.jQuery&&!document.body.hasAttribute("data-coreui-no-jquery")?window.jQuery:null,un=[],_r=(e,t=[],n=e)=>typeof e=="function"?e.call(...t):n,po=(e,t,n=!0)=>{if(!n)return void _r(e);const r=(i=>{if(!i)return 0;let{transitionDuration:l,transitionDelay:a}=window.getComputedStyle(i);const c=Number.parseFloat(l),u=Number.parseFloat(a);return c||u?(l=l.split(",")[0],a=a.split(",")[0],1e3*(Number.parseFloat(l)+Number.parseFloat(a))):0})(t)+5;let s=!1;const o=({target:i})=>{i===t&&(s=!0,t.removeEventListener(cn,o),_r(e))};t.addEventListener(cn,o),setTimeout(()=>{s||t.dispatchEvent(new Event(cn))},r)},ho=/[^.]*(?=\..*)\.|.*/,go=/\..*/,mo=/::\d+$/,fn={};let Sr=1;const Er={mouseenter:"mouseover",mouseleave:"mouseout"},yo=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function kr(e,t){return t&&`${t}::${Sr++}`||e.uidEvent||Sr++}function Cr(e){const t=kr(e);return e.uidEvent=t,fn[t]=fn[t]||{},fn[t]}function Nr(e,t,n=null){return Object.values(e).find(r=>r.callable===t&&r.delegationSelector===n)}function Ar(e,t,n){const r=typeof t=="string",s=r?n:t||n;let o=Mr(e);return yo.has(o)||(o=e),[r,s,o]}function $r(e,t,n,r,s){if(typeof t!="string"||!e)return;let[o,i,l]=Ar(t,n,r);t in Er&&(i=(y=>function(h){if(!h.relatedTarget||h.relatedTarget!==h.delegateTarget&&!h.delegateTarget.contains(h.relatedTarget))return y.call(this,h)})(i));const a=Cr(e),c=a[l]||(a[l]={}),u=Nr(c,i,o?n:null);if(u)return void(u.oneOff=u.oneOff&&s);const d=kr(i,t.replace(ho,"")),p=o?(function(f,y,h){return function v(w){const N=f.querySelectorAll(y);for(let{target:_}=w;_&&_!==this;_=_.parentNode)for(const b of N)if(b===_)return pn(w,{delegateTarget:_}),v.oneOff&&Je.off(f,w.type,y,h),h.apply(_,[w])}})(e,n,i):(function(f,y){return function h(v){return pn(v,{delegateTarget:f}),h.oneOff&&Je.off(f,v.type,y),y.apply(f,[v])}})(e,i);p.delegationSelector=o?n:null,p.callable=i,p.oneOff=s,p.uidEvent=d,c[d]=p,e.addEventListener(l,p,o)}function dn(e,t,n,r,s){const o=Nr(t[n],r,s);o&&(e.removeEventListener(n,o,!!s),delete t[n][o.uidEvent])}function vo(e,t,n,r){const s=t[n]||{};for(const[o,i]of Object.entries(s))o.includes(r)&&dn(e,t,n,i.callable,i.delegationSelector)}function Mr(e){return e=e.replace(go,""),Er[e]||e}const Je={on(e,t,n,r){$r(e,t,n,r,!1)},one(e,t,n,r){$r(e,t,n,r,!0)},off(e,t,n,r){if(typeof t!="string"||!e)return;const[s,o,i]=Ar(t,n,r),l=i!==t,a=Cr(e),c=a[i]||{},u=t.startsWith(".");if(o===void 0){if(u)for(const d of Object.keys(a))vo(e,a,d,t.slice(1));for(const[d,p]of Object.entries(c)){const f=d.replace(mo,"");l&&!t.includes(f)||dn(e,a,i,p.callable,p.delegationSelector)}}else{if(!Object.keys(c).length)return;dn(e,a,i,o,s?n:null)}},trigger(e,t,n){if(typeof t!="string"||!e)return null;const r=xr();let s=null,o=!0,i=!0,l=!1;t!==Mr(t)&&r&&(s=r.Event(t,n),r(e).trigger(s),o=!s.isPropagationStopped(),i=!s.isImmediatePropagationStopped(),l=s.isDefaultPrevented());const a=pn(new Event(t,{bubbles:o,cancelable:!0}),n);return l&&a.preventDefault(),i&&e.dispatchEvent(a),a.defaultPrevented&&s&&s.preventDefault(),a}};function pn(e,t={}){for(const[n,r]of Object.entries(t))try{e[n]=r}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>r})}return e}function Lr(e){if(e==="true")return!0;if(e==="false")return!1;if(e===Number(e).toString())return Number(e);if(e===""||e==="null")return null;if(typeof e!="string")return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function hn(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}const Tr={setDataAttribute(e,t,n){e.setAttribute(`data-coreui-${hn(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-coreui-${hn(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(r=>r.startsWith("coreui")&&!r.startsWith("coreuiConfig"));for(const r of n){let s=r.replace(/^coreui/,"");s=s.charAt(0).toLowerCase()+s.slice(1),t[s]=Lr(e.dataset[r])}return t},getDataAttribute:(e,t)=>Lr(e.getAttribute(`data-coreui-${hn(t)}`))};class wo{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,n){const r=ut(n)?Tr.getDataAttribute(n,"config"):{};return{...this.constructor.Default,...typeof r=="object"?r:{},...ut(n)?Tr.getDataAttributes(n):{},...typeof t=="object"?t:{}}}_typeCheckConfig(t,n=this.constructor.DefaultType){for(const[r,s]of Object.entries(n)){const o=t[r],i=ut(o)?"element":fo(o);if(!new RegExp(s).test(i))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${r}" provided type "${i}" but expected type "${s}".`)}}}class bo extends wo{constructor(t,n){super(),(t=wr(t))&&(this._element=t,this._config=this._getConfig(n),ln.set(this._element,this.constructor.DATA_KEY,this))}dispose(){ln.remove(this._element,this.constructor.DATA_KEY),Je.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,n,r=!0){po(t,n,r)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return ln.get(wr(t),this.DATA_KEY)}static getOrCreateInstance(t,n={}){return this.getInstance(t)||new this(t,typeof n=="object"?n:null)}static get VERSION(){return"5.4.1"}static get DATA_KEY(){return`coreui.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const gn=e=>{let t=e.getAttribute("data-coreui-target");if(!t||t==="#"){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&n!=="#"?n.trim():null}return t?t.split(",").map(n=>vr(n)).join(","):null},Et={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter(n=>n.matches(t)),parents(e,t){const n=[];let r=e.parentNode.closest(t);for(;r;)n.push(r),r=r.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(n=>`${n}:not([tabindex^="-"])`).join(",");return this.find(t,e).filter(n=>!br(n)&&(r=>{if(!ut(r)||r.getClientRects().length===0)return!1;const s=getComputedStyle(r).getPropertyValue("visibility")==="visible",o=r.closest("details:not([open])");if(!o)return s;if(o!==r){const i=r.closest("summary");if(i&&i.parentNode!==o||i===null)return!1}return s})(n))},getSelectorFromElement(e){const t=gn(e);return t&&Et.findOne(t)?t:null},getElementFromSelector(e){const t=gn(e);return t?Et.findOne(t):null},getMultipleElementsFromSelector(e){const t=gn(e);return t?Et.find(t):[]}},Pr=".coreui.alert",xo=`close${Pr}`,_o=`closed${Pr}`;class kt extends bo{static get NAME(){return"alert"}close(){if(Je.trigger(this._element,xo).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),Je.trigger(this._element,_o),this.dispose()}static jQueryInterface(t){return this.each(function(){const n=kt.getOrCreateInstance(this);if(typeof t=="string"){if(n[t]===void 0||t.startsWith("_")||t==="constructor")throw new TypeError(`No method named "${t}"`);n[t](this)}})}}var ft,mn;((e,t="hide")=>{const n=`click.dismiss${e.EVENT_KEY}`,r=e.NAME;Je.on(document,n,`[data-coreui-dismiss="${r}"]`,function(s){if(["A","AREA"].includes(this.tagName)&&s.preventDefault(),br(this))return;const o=Et.getElementFromSelector(this)||this.closest(`.${r}`);e.getOrCreateInstance(o)[t]()})})(kt,"close"),ft=kt,mn=()=>{const e=xr();if(e){const t=ft.NAME,n=e.fn[t];e.fn[t]=ft.jQueryInterface,e.fn[t].Constructor=ft,e.fn[t].noConflict=()=>(e.fn[t]=n,ft.jQueryInterface)}},document.readyState==="loading"?(un.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of un)e()}),un.push(mn)):mn();var So=(e,t)=>ne(t,null),Eo=be('
'),ko=be(''),Co=be('

'),No=be('

'),Ao=be('
'),$o=be('
'),Mo=be(' ',1),Lo=be("
"),To=be("
"),Po=be('
');(function(e){for(var t=0;t(function(r,s){const o=Kt.get(r);return o?(Kt.delete(r),o(s)):Promise.resolve()})(n)}})(function(e,t){Sn(t,!0);const n=(()=>{const S=document.querySelector("[data-tidy-feedback-config]");if(S)try{return JSON.parse(S.dataset.tidyFeedbackConfig)}catch{}return{}})(),r="info",s="danger",o="error",i="success";let l,a,c,u=ce(!0),d=ce(!0),p=null,f=ce(""),y=ce(r);const h=n.messageHideDelay??0,v=S=>n.messages?.[S]??S+" (missing translation)",w=(S,M=r)=>{p&&clearTimeout(p),ne(f,S,!0),ne(y,M,!0),h>0&&(p=setTimeout(()=>ne(f,""),h))},N=()=>{w(v("Highlight and fill")),ne(u,!1),ne(d,!1)},_=(S=!1)=>{S&&c.reset(),ne(u,!0),ne(d,!0)},b=()=>{((()=>{for(const S of c.elements)if(S.value||S.checked)return!1;return!0})()||confirm(v("Confirm cancellation")))&&(w(v("Cancelled")),_())},E=async S=>{if(c.reportValidity()){const M={};w("Taking screenshot …");try{const g=document.body,k=await K(g,{scale:1});let A=k.toRaw();for(const F of["toWebp","toPng","toJpg"]){const z=await k[F]();z.src.lengthM[k]=g),M.context={url:document.location.href,referrer:document.referrer,document:document.documentElement.outerHTML,navigator:{userAgent:navigator.userAgent},window:{innerWidth:window.innerWidth,innerHeight:window.innerHeight},region:{left:a.style.left,top:a.style.top,width:a.style.width,height:a.style.height}},w("Sending feedback …"),fetch(c.action,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(M)}).then(g=>{g.status===201?(_(!0),w(v("Feedback created"),i)):g.json().then(k=>w("Error creating feedback: "+JSON.stringify(k),s)).catch(k=>w("Error creating feedback: "+k,s))}).catch(g=>w(g,o))}};(function(S){Kr();var M=j.f;if(O||(M&Ge)===0||(M&Pt)!==0)return Wn(S);var g=ge;(g.e??=[]).push(S)})(()=>{if(c=document.getElementById("the_tidy_feedback_form"),c){yr(l,".tidy-feedback-draggable-handle",{constrainToViewport:!0}),a.style.left="300px",a.style.top="300px",a.style.width="300px",a.style.height="200px",(function(g){const k=g.querySelectorAll(".resizer"),A=20;let F=0,z=0,se=0,Se=0,le=0,Z=0;const Ue=g.parentNode.querySelector(".overlays .top"),V=g.parentNode.querySelector(".overlays .left"),X=g.parentNode.querySelector(".overlays .right"),Ee=g.parentNode.querySelector(".overlays .bottom"),B=()=>{Ue&&(Ue.style.height=g.style.top),V&&(V.style.top=g.style.top,V.style.height=g.style.height,V.style.width=g.style.left),X&&(X.style.top=g.style.top,X.style.height=g.style.height,X.style.left=parseInt(g.style.left,10)+parseInt(g.style.width,10)+"px"),Ee&&(Ee.style.top=parseInt(g.style.top,10)+parseInt(g.style.height,10)+"px")};for(let ke=0;keA&&(g.style.width=Y+"px"),H>A&&(g.style.height=H+"px")}else if(pe.classList.contains("bottom-left")){const Y=z+(W.pageY-Z),H=F-(W.pageX-le);Y>A&&(g.style.height=Y+"px"),H>A&&(g.style.width=H+"px",g.style.left=se+(W.pageX-le)+"px")}else if(pe.classList.contains("top-right")){const Y=F+(W.pageX-le),H=z-(W.pageY-Z);Y>A&&(g.style.width=Y+"px"),H>A&&(g.style.height=H+"px",g.style.top=Se+(W.pageY-Z)+"px")}else{const Y=F-(W.pageX-le),H=z-(W.pageY-Z);Y>A&&(g.style.width=Y+"px",g.style.left=se+(W.pageX-le)+"px"),H>A&&(g.style.height=H+"px",g.style.top=Se+(W.pageY-Z)+"px")}B()},Ve=function(){window.removeEventListener("mousemove",je),window.removeEventListener("mouseup",Ve)};const pe=k[ke];pe.addEventListener("mousedown",function(W){W.preventDefault(),W.stopPropagation(),F=parseFloat(getComputedStyle(g,null).getPropertyValue("width").replace("px","")),z=parseFloat(getComputedStyle(g,null).getPropertyValue("height").replace("px","")),se=g.getBoundingClientRect().left,Se=g.getBoundingClientRect().top,le=W.pageX,Z=W.pageY,window.addEventListener("mousemove",je),window.addEventListener("mouseup",Ve)})}yr(g,".resizers",{onDrag:B}),B()})(a);const S=new URLSearchParams(document.location.search),M=/tidy-feedback\[(.+)\]/;for(const[g,k]of S.entries()){const A=M.exec(g);if(A){const F=c.elements[A[1]]??null;F&&(F.value=k)}}S.get("tidy-feedback-show")==="form"&&N()}});var C=Po(),R=Q(C),T=S=>{var M=Eo(),g=Q(M),k=Q(g),A=Q(k),F=Q(A);ue(F).__click=[So,f],ye(()=>{lt(A,0,_t(["tidy-feedback-message","alert","alert-dismissible",{"alert-info":r===L(y),"alert-danger":s===L(y),"alert-error":o===L(y),"alert-success":i===L(y)}]),"s-tidy_feedback-tidy_feedback"),Te(F,`${L(f)??""} `)}),de(S,M)};Fe(R,S=>{L(f)&&S(T)});var q=ue(R,2),U=S=>{var M=ko();M.__click=N;var g=Q(M);ye(k=>Te(g,k),[()=>v("Send feedback")]),de(S,M)};Fe(q,S=>{L(u)&&S(U)});var $=ue(q,2),x=ue(Q($),2),D=Q(x),ee=S=>{var M=Mo(),g=Ut(M),k=V=>{var X=Co(),Ee=Q(X);ye(()=>Te(Ee,n.form.title)),de(V,X)};Fe(g,V=>{n.form.title&&V(k)});var A=ue(g,2),F=V=>{var X=No(),Ee=Q(X);ye(()=>Te(Ee,n.form.lead)),de(V,X)};Fe(A,V=>{n.form.lead&&V(F)});var z=ue(A,2),se=V=>{var X=rr();Jt(Ut(X),17,()=>n.form.fields,Xt,(Ee,B)=>{var ke=rr(),pe=Ut(ke),je=W=>{var Y=Ao(),H=Q(Y),Be=Q(H),oe=ue(H,2);ye(()=>{lt(Y,0,_t(["form-row","mb-3",{required:L(B).required}]),"s-tidy_feedback-tidy_feedback"),_e(H,"for",L(B).name),Te(Be,L(B).label),_e(oe,"name",L(B).name),_e(oe,"id",L(B).name),oe.required=L(B).required,_e(oe,"placeholder",L(B).placeholder),ir(oe,L(B).value??"")}),de(W,Y)},Ve=W=>{var Y=$o(),H=Q(Y),Be=Q(H),oe=ue(H,2);ye(()=>{lt(Y,0,_t(["form-row","mb-3",{required:L(B).required}]),"s-tidy_feedback-tidy_feedback"),_e(H,"for",L(B).name),Te(Be,L(B).label),_e(oe,"type",L(B).type??"text"),_e(oe,"name",L(B).name),_e(oe,"id",L(B).name),oe.required=L(B).required,_e(oe,"placeholder",L(B).placeholder),ir(oe,L(B).value??"")}),de(W,Y)};Fe(pe,W=>{L(B).type=="textarea"?W(je):W(Ve,!1)}),de(Ee,ke)}),de(V,X)};Fe(z,V=>{n.form.fields&&V(se)});var Se=ue(z,2);Se.__click=E;var le=Q(Se),Z=ue(Se,2);Z.__click=b;var Ue=Q(Z);ye((V,X)=>{Te(le,V),Te(Ue,X)},[()=>v("Send feedback"),()=>v("Cancel")]),de(S,M)};Fe(D,S=>{n.form&&S(ee)}),cr($,S=>l=S,()=>l);var I=ue($,2),P=Q(I);Jt(P,20,()=>["top","left","right","bottom"],Xt,(S,M)=>{var g=Lo();ye(()=>lt(g,0,_t(M),"s-tidy_feedback-tidy_feedback")),de(S,g)}),Jt(Q(ue(P,2)),20,()=>["top-left","top-right","bottom-left","bottom-right"],Xt,(S,M)=>{var g=To();ye(()=>lt(g,0,`resizer ${M??""}`,"s-tidy_feedback-tidy_feedback")),de(S,g)}),cr(I,S=>a=S,()=>a),ye(()=>{$.hidden=L(u),_e(x,"action",n.form.action??"/tidy_feedback"),I.hidden=L(d)}),de(e,C),En()},"tidy_feedback")}); diff --git a/templates/test.html.twig b/templates/test.html.twig index fb5b333..9955819 100644 --- a/templates/test.html.twig +++ b/templates/test.html.twig @@ -1,48 +1,48 @@ -{% extends 'base.html.twig' %} - -{% block title 'Tidy feedback test'|trans %} - -{% block content %} + + + + + + {% block title 'Tidy feedback test'|trans %} - - - -

{{ block('title') }}

- -

This is a tset!

- - {% for i in range(1, 99) %} -
-

Section {{ i }}

- -

-
- {% endfor %} - {# - - -
-
- This is a fake region … - {% for s in ['nw', 'ne', 'sw', 'se'] %} -
+ + +{% block nav %} +{% endblock %} +{% block main %} +
+ {% block content %} +

{{ block('title') }}

+ +

+ This is a tset! + +

+ + {% for i in range(1, 9) %} +
+

Section {{ i }}

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +

+
{% endfor %} -
+ {% endblock %}
- #} {% endblock %} + +{% block javascripts %} +xxx +{% endblock %} + + + diff --git a/templates/widget.html.twig b/templates/widget.html.twig index 984312f..307953b 100644 --- a/templates/widget.html.twig +++ b/templates/widget.html.twig @@ -16,38 +16,54 @@ Cancelled: 'Cancelled'|trans, Feedback: 'Feedback'|trans, } %} -{% set config = { - messages: messages, - } %} - - + }, + + ], + } %} +{% set config = { + messages: messages, + form: form, + } %} + +
+ + {# "subject" is required and all other inputs with be stored in the data blob on the feedback item. #} +
diff --git a/widget/src/_standalone/tidy_feedback/index.svelte b/widget/src/_standalone/tidy_feedback/index.svelte index 190358f..9a3865e 100644 --- a/widget/src/_standalone/tidy_feedback/index.svelte +++ b/widget/src/_standalone/tidy_feedback/index.svelte @@ -1,11 +1,12 @@ -
+
{#if message}
@@ -236,10 +233,53 @@
-
+
+ {#if config.form} + {#if config.form.title} +

{config.form.title}

+ {/if} + {#if config.form.lead} +

{config.form.lead}

+ {/if} + {#if config.form.fields} + {#each config.form.fields as field} + {#if field.type == 'textarea'} +
+ + +
+ {:else} +
+ + +
+ {/if} + {/each} + {/if} - - + + + {/if} +
+ + diff --git a/widget/src/_standalone/tidy_feedback/styles/widget.scss b/widget/src/_standalone/tidy_feedback/styles/widget.scss index aa2681b..fec6d1b 100644 --- a/widget/src/_standalone/tidy_feedback/styles/widget.scss +++ b/widget/src/_standalone/tidy_feedback/styles/widget.scss @@ -2,6 +2,13 @@ @use './variables'; @use './btn'; +.tidy-feedback-container { + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); +} + .tidy-feedback-start { position: fixed; top: var(--position-top); diff --git a/widget/src/routes/tidy_feedback/+page.svelte b/widget/src/routes/tidy_feedback/+page.svelte index 4acb47e..a6f766e 100644 --- a/widget/src/routes/tidy_feedback/+page.svelte +++ b/widget/src/routes/tidy_feedback/+page.svelte @@ -14,71 +14,72 @@ window.tidy_feedback.stop(); }; }); - - - + + {#each { length: 99 } as i} +
+

Section {i}

-

This is a Tidy feedback test

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, + sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis + nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure + dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur + sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +

+
+ {/each} + - -{#each { length: 99 } as i} -
-

Section {i}

-
-{/each} + diff --git a/widget/vite.config.ts b/widget/vite.config.ts index bbf8c7d..14f475c 100644 --- a/widget/vite.config.ts +++ b/widget/vite.config.ts @@ -1,6 +1,13 @@ import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; +import { resolve } from 'path'; export default defineConfig({ - plugins: [sveltekit()] + plugins: [sveltekit()], + // https://coreui.io/bootstrap/docs/getting-started/vite/#import-coreui + resolve: { + alias: { + '~coreui': resolve(__dirname, 'node_modules/@coreui/coreui') + } + } });