@vue-skuilder/common-ui 0.2.7 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,23 +1,23 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`),require(`moment`),require(`@vue-skuilder/common`),require(`@vue-skuilder/db`),require(`pinia`),require(`vue-router`),require(`@vojtechlanka/vue-tags-input`)):typeof define==`function`&&define.amd?define([`exports`,`vue`,`moment`,`@vue-skuilder/common`,`@vue-skuilder/db`,`pinia`,`vue-router`,`@vojtechlanka/vue-tags-input`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.VueSkuilderCommonUI={},e.Vue,e.moment,e.VueSkuilderCommon,e.VueSkuilderDb,e.Pinia,e.VueRouter,e.VueTagsInput))})(this,function(e,t,n,r,i,a,o,s){var c=document.createElement(`style`);c.textContent=`.tooltip[data-v-ca46239a]{color:#fff;background-color:#000c;border-radius:3px;padding:5px;font-size:12px}.sk-mousetrap-tooltip-wrapper[data-v-5d6fb09c]{display:inline-block;position:relative}.sk-mousetrap-tooltip[data-v-5d6fb09c]{color:#fff;white-space:nowrap;pointer-events:none;z-index:9999;background-color:#000c;border-radius:4px;padding:2px 6px;font-size:12px;position:absolute}.sk-mt-tooltip-top[data-v-5d6fb09c]{margin-bottom:5px;bottom:100%;left:50%;transform:translate(-50%)}.sk-mt-tooltip-bottom[data-v-5d6fb09c]{margin-top:5px;top:100%;left:50%;transform:translate(-50%)}.sk-mt-tooltip-left[data-v-5d6fb09c]{margin-right:5px;top:50%;right:100%;transform:translateY(-50%)}.sk-mt-tooltip-right[data-v-5d6fb09c]{margin-left:5px;top:50%;left:100%;transform:translateY(-50%)}.sk-mousetrap-highlight-glow[data-v-5d6fb09c]{transition:box-shadow .25s;box-shadow:0 0 8px 2px #1976d299}.sk-mousetrap-highlight-scale[data-v-5d6fb09c]{transition:transform .25s;transform:scale(1.03)}.sk-mousetrap-highlight-border[data-v-5d6fb09c]{outline-offset:2px;border-radius:4px;outline:2px solid #1976d2cc;transition:outline .25s,outline-offset .25s}.fade-enter-active[data-v-5d6fb09c],.fade-leave-active[data-v-5d6fb09c]{transition:opacity .25s}.fade-enter-from[data-v-5d6fb09c],.fade-leave-to[data-v-5d6fb09c]{opacity:0}.pageSelect[data-v-a75fea7e]{max-width:60px}.selected-card[data-v-285e13bd]{background-color:#e0f2f7;border-left:4px solid #2196f3}.cursor-pointer[data-v-285e13bd]{cursor:pointer}.error-message[data-v-a4bdfdfb]{color:#f44336;background-color:#ffebee;border-radius:4px;margin:8px 0;padding:16px}.negative-interval[data-v-a4bdfdfb]{color:#f44336;background-color:#ffebee;border-radius:3px;padding:2px 4px;font-weight:700}.invalid-timestamp[data-v-a4bdfdfb]{color:#f44336;font-weight:700}.card-history-viewer[data-v-a4bdfdfb]{margin:16px 0}.timer-container[data-v-5960940a]{cursor:pointer;display:inline-flex}.cardView[data-v-2d892b82]{border-radius:8px;padding:15px}.session-debug[data-v-1a6ac7a1]{max-height:400px;font-family:Courier New,monospace;font-size:.75rem;overflow-y:auto}.debug-section[data-v-1a6ac7a1]{background-color:#ffffff0d;border-radius:4px;min-height:120px;padding:8px}.debug-header[data-v-1a6ac7a1]{border-bottom:1px solid #ffffff1a;align-items:center;margin-bottom:4px;padding-bottom:4px;display:flex}.debug-stats[data-v-1a6ac7a1]{gap:8px;margin-bottom:8px;display:flex}.debug-items[data-v-1a6ac7a1]{margin-top:4px;padding-left:8px}.debug-item[data-v-1a6ac7a1]{border-left:2px solid #fff3;margin-bottom:2px;padding:2px 0 2px 6px}.footer-controls[data-v-de7119e9]{background-color:var(--v-background);z-index:100;position:fixed;bottom:0}.footer-right[data-v-de7119e9]{background-color:var(--v-background);z-index:100;position:fixed;bottom:0;right:0}.correct[data-v-de7119e9]{animation:1.25s ease-out varFade-de7119e9}.incorrect[data-v-de7119e9]{animation:1.25s ease-out purpleFade-de7119e9}a[data-v-de7119e9]{text-decoration:underline}.StudySession[data-v-de7119e9]{flex-direction:column;flex:1;min-height:0;display:flex}.card-transition-container[data-v-de7119e9]{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex;position:relative;overflow:hidden}@keyframes varFade-de7119e9{0%{box-shadow:rgba(var(--r), var(--g), 0, .25) 0px 7px 8px -4px, rgba(var(--r), var(--g), 0, .25) 0px 12px 17px 2px, rgba(var(--r), var(--g), 0, .25) 0px 5px 22px 4px}to{box-shadow:0 0 #00960000}}@keyframes greenFade-de7119e9{0%{box-shadow:0 7px 8px -4px #00960040,0 12px 17px 2px #00960040,0 5px 22px 4px #00960040}to{box-shadow:0 0 #00960000}}@keyframes purpleFade-de7119e9{0%{box-shadow:0 7px 8px -4px #73004b40,0 12px 17px 2px #73004b40,0 5px 22px 4px #73004b40}to{box-shadow:0 0 #73004b00}}.component-fade-enter-active,.component-fade-leave-active{transition:opacity .2s}.component-fade-enter-from,.component-fade-leave-to{opacity:0}.card-slide-leave-active{will-change:transform, opacity;pointer-events:none;height:-moz-fit-content;height:fit-content;margin:auto;animation:.4s cubic-bezier(.4,0,.7,.2) both cardBackOutLeft;top:0;bottom:0;left:0;right:0;position:absolute!important}.card-slide-leave-active *{transition:none!important;animation-play-state:paused!important}.card-slide-enter-active{will-change:transform, opacity;animation:.25s ease-out .1s both cardSlideInRight}@keyframes cardBackOutLeft{0%{opacity:1;transform:translate(0)scale(1)}40%{opacity:.8;transform:translate(0)scale(.88)}to{opacity:0;transform:translate(-100%)scale(.88)}}@keyframes cardSlideInRight{0%{opacity:0;transform:translate(60%)}to{opacity:1;transform:translate(0)}}.card-scale-leave-active{transition:transform .15s ease-in,opacity .15s ease-in}.card-scale-enter-active{transition:transform .2s cubic-bezier(.34,1.4,.64,1),opacity .15s ease-out}.card-scale-leave-to{opacity:0;transform:scale(.92)}.card-scale-enter-from{opacity:0;transform:scale(1.03)}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.code-block-wrapper{background-color:#f6f8fa;border-radius:4px;margin:1rem 0;position:relative;overflow:auto}.language-indicator{color:#666;z-index:1;text-transform:lowercase;background-color:#ffffffb3;border-radius:4px;padding:2px 8px;font-family:monospace;font-size:.75rem;position:absolute;top:8px;right:10px}.user-input-container[data-v-aa14961f]{vertical-align:baseline;min-width:6em;display:inline-block}.user-input-string[data-v-aa14961f]{color:currentColor;font-family:inherit;font-size:inherit;line-height:inherit;text-align:center;background:0 0;border:none;border-bottom:1px solid;outline:none;width:100%;margin:0;padding:0;display:inline-block}.user-input-string[data-v-aa14961f]:focus{border-bottom:2px solid}#input[data-v-486ac035]{text-align:center;min-width:4em;display:inline-block}.underline[data-v-486ac035]{text-decoration:underline;-webkit-text-decoration-style:solid 14px;text-decoration-style:solid 14px}blockquote[data-v-de3eebd6]{border-left:3px solid teal;padding-left:8px}.codespan[data-v-de3eebd6]{margin-left:1px;margin-right:1px;padding-left:3px;padding-right:3px}p[data-v-de3eebd6]{margin-top:15px;margin-bottom:15px}.playing[data-v-e1a0f62c]{z-index:1;animation:.85s ease-in-out infinite alternate pulse-e1a0f62c}@keyframes pulse-e1a0f62c{0%{transform:scale(1)}to{transform:scale(1.15)}}.choice[data-v-96de7172]{text-align:center;border-radius:4px;min-width:75px;margin:10px;padding:5px 15px;transition:all .2s ease-in-out;display:inline-block}.selected[data-v-96de7172]{z-index:1;transform:translateY(-10px)scale(1.15)}.not-selected[data-v-96de7172]{z-index:0}.userInput[data-v-a56dcd1c]{text-align:center;border:none;border-bottom:1px #000}.cardView[data-v-93f758b5]{border-radius:8px;padding:15px}.component-fade-enter-active[data-v-93f758b5],.component-fade-leave-active[data-v-93f758b5]{transition:opacity .3s}.component-fade-enter[data-v-93f758b5],.component-fade-leave-to[data-v-93f758b5]{opacity:0}.component-fade-enter-active[data-v-9a38a213],.component-fade-leave-active[data-v-9a38a213]{transition:opacity .5s}.component-fade-enter[data-v-9a38a213],.component-fade-leave-to[data-v-9a38a213]{opacity:0}.login[data-v-563b0048]{max-width:650px}.component-fade-enter-active[data-v-5a55bdf0],.component-fade-leave-active[data-v-5a55bdf0]{transition:opacity .5s}.component-fade-enter[data-v-5a55bdf0],.component-fade-leave-to[data-v-5a55bdf0]{opacity:0}.vue-tags-input[data-v-f7373dc0]{max-width:100%}.autocomplete-item[data-v-f7373dc0]{align-items:center;padding:5px;display:flex}.autocomplete-item.is-active[data-v-f7373dc0]{background-color:#e8e8e8}.autocomplete-item.is-active>.tag-name[data-v-f7373dc0]{color:#fff;background-color:#5c6bc0}.tag-name[data-v-f7373dc0]{color:#333;background-color:#e0e0e0;border-radius:3px;margin-right:5px;padding:2px 6px;font-weight:700}.tag-snippet[data-v-f7373dc0]{color:#666;font-size:.9em}.autocomplete-item.is-active .tag-snippet[data-v-f7373dc0]{color:#333}.component-fade-enter-active[data-v-5ecc9d21],.component-fade-leave-active[data-v-5ecc9d21]{transition:opacity .5s}.component-fade-enter[data-v-5ecc9d21],.component-fade-leave-to[data-v-5ecc9d21]{opacity:0}.component-scale-enter-active[data-v-5ecc9d21],.component-scale-leave-active[data-v-5ecc9d21]{max-height:auto;transform-origin:top;transition:transform .3s,max-height .3s;transform:scale(1)}.component-scale-enter[data-v-5ecc9d21],.component-fade-leave-to[data-v-5ecc9d21]{max-height:0;overflow:hidden;transform:scaleY(0)}.component-fade-enter-active[data-v-38e9efe1],.component-fade-leave-active[data-v-38e9efe1]{transition:opacity .5s}.component-fade-enter[data-v-38e9efe1],.component-fade-leave-to[data-v-38e9efe1]{opacity:0}.component-scale-enter-active[data-v-38e9efe1],.component-scale-leave-active[data-v-38e9efe1]{max-height:auto;transform-origin:top;transition:transform .3s,max-height .3s;transform:scale(1)}.component-scale-enter[data-v-38e9efe1],.component-fade-leave-to[data-v-38e9efe1]{max-height:0;overflow:hidden;transform:scaleY(0)}.course-tag-filter-widget[data-v-e1ba963b]{width:100%}.filter-summary[data-v-e1ba963b]{color:rgba(var(--v-theme-on-surface), .7)}
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`),require(`moment`),require(`@vue-skuilder/common`),require(`@vue-skuilder/db`),require(`pinia`),require(`vue-router`),require(`@vojtechlanka/vue-tags-input`)):typeof define==`function`&&define.amd?define([`exports`,`vue`,`moment`,`@vue-skuilder/common`,`@vue-skuilder/db`,`pinia`,`vue-router`,`@vojtechlanka/vue-tags-input`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.VueSkuilderCommonUI={},e.Vue,e.moment,e.VueSkuilderCommon,e.VueSkuilderDb,e.Pinia,e.VueRouter,e.VueTagsInput))})(this,function(e,t,n,r,i,a,o,s){var c=document.createElement(`style`);c.textContent=`.tooltip[data-v-ca46239a]{color:#fff;background-color:#000c;border-radius:3px;padding:5px;font-size:12px}.sk-mousetrap-tooltip-wrapper[data-v-5d6fb09c]{display:inline-block;position:relative}.sk-mousetrap-tooltip[data-v-5d6fb09c]{color:#fff;white-space:nowrap;pointer-events:none;z-index:9999;background-color:#000c;border-radius:4px;padding:2px 6px;font-size:12px;position:absolute}.sk-mt-tooltip-top[data-v-5d6fb09c]{margin-bottom:5px;bottom:100%;left:50%;transform:translate(-50%)}.sk-mt-tooltip-bottom[data-v-5d6fb09c]{margin-top:5px;top:100%;left:50%;transform:translate(-50%)}.sk-mt-tooltip-left[data-v-5d6fb09c]{margin-right:5px;top:50%;right:100%;transform:translateY(-50%)}.sk-mt-tooltip-right[data-v-5d6fb09c]{margin-left:5px;top:50%;left:100%;transform:translateY(-50%)}.sk-mousetrap-highlight-glow[data-v-5d6fb09c]{transition:box-shadow .25s;box-shadow:0 0 8px 2px #1976d299}.sk-mousetrap-highlight-scale[data-v-5d6fb09c]{transition:transform .25s;transform:scale(1.03)}.sk-mousetrap-highlight-border[data-v-5d6fb09c]{outline-offset:2px;border-radius:4px;outline:2px solid #1976d2cc;transition:outline .25s,outline-offset .25s}.fade-enter-active[data-v-5d6fb09c],.fade-leave-active[data-v-5d6fb09c]{transition:opacity .25s}.fade-enter-from[data-v-5d6fb09c],.fade-leave-to[data-v-5d6fb09c]{opacity:0}.pageSelect[data-v-a75fea7e]{max-width:60px}.selected-card[data-v-285e13bd]{background-color:#e0f2f7;border-left:4px solid #2196f3}.cursor-pointer[data-v-285e13bd]{cursor:pointer}.error-message[data-v-a4bdfdfb]{color:#f44336;background-color:#ffebee;border-radius:4px;margin:8px 0;padding:16px}.negative-interval[data-v-a4bdfdfb]{color:#f44336;background-color:#ffebee;border-radius:3px;padding:2px 4px;font-weight:700}.invalid-timestamp[data-v-a4bdfdfb]{color:#f44336;font-weight:700}.card-history-viewer[data-v-a4bdfdfb]{margin:16px 0}.timer-container[data-v-5960940a]{cursor:pointer;display:inline-flex}.cardView[data-v-2d892b82]{border-radius:8px;padding:15px}.session-debug[data-v-641ac170]{max-height:400px;font-family:Courier New,monospace;font-size:.75rem;overflow-y:auto}.debug-section[data-v-641ac170]{background-color:#ffffff0d;border-radius:4px;min-height:120px;padding:8px}.debug-header[data-v-641ac170]{border-bottom:1px solid #ffffff1a;align-items:center;margin-bottom:4px;padding-bottom:4px;display:flex}.debug-stats[data-v-641ac170]{gap:8px;margin-bottom:8px;display:flex}.debug-items[data-v-641ac170]{margin-top:4px;padding-left:8px}.debug-item[data-v-641ac170]{border-left:2px solid #fff3;margin-bottom:2px;padding:2px 0 2px 6px}.footer-controls[data-v-0279250f]{background-color:var(--v-background);z-index:100;position:fixed;bottom:0}.footer-right[data-v-0279250f]{background-color:var(--v-background);z-index:100;position:fixed;bottom:0;right:0}.correct[data-v-0279250f]{animation:1.25s ease-out varFade-0279250f}.incorrect[data-v-0279250f]{animation:1.25s ease-out purpleFade-0279250f}a[data-v-0279250f]{text-decoration:underline}.StudySession[data-v-0279250f]{flex-direction:column;flex:1;min-height:0;display:flex}.card-transition-container[data-v-0279250f]{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex;position:relative;overflow:hidden}@keyframes varFade-0279250f{0%{box-shadow:rgba(var(--r), var(--g), 0, .25) 0px 7px 8px -4px, rgba(var(--r), var(--g), 0, .25) 0px 12px 17px 2px, rgba(var(--r), var(--g), 0, .25) 0px 5px 22px 4px}to{box-shadow:0 0 #00960000}}@keyframes greenFade-0279250f{0%{box-shadow:0 7px 8px -4px #00960040,0 12px 17px 2px #00960040,0 5px 22px 4px #00960040}to{box-shadow:0 0 #00960000}}@keyframes purpleFade-0279250f{0%{box-shadow:0 7px 8px -4px #73004b40,0 12px 17px 2px #73004b40,0 5px 22px 4px #73004b40}to{box-shadow:0 0 #73004b00}}.component-fade-enter-active,.component-fade-leave-active{transition:opacity .2s}.component-fade-enter-from,.component-fade-leave-to{opacity:0}.card-slide-leave-active{will-change:transform, opacity;pointer-events:none;height:-moz-fit-content;height:fit-content;margin:auto;animation:.4s cubic-bezier(.4,0,.7,.2) both cardBackOutLeft;top:0;bottom:0;left:0;right:0;position:absolute!important}.card-slide-leave-active *{transition:none!important;animation-play-state:paused!important}.card-slide-enter-active{will-change:transform, opacity;animation:.25s ease-out .1s both cardSlideInRight}@keyframes cardBackOutLeft{0%{opacity:1;transform:translate(0)scale(1)}40%{opacity:.8;transform:translate(0)scale(.88)}to{opacity:0;transform:translate(-100%)scale(.88)}}@keyframes cardSlideInRight{0%{opacity:0;transform:translate(60%)}to{opacity:1;transform:translate(0)}}.card-scale-leave-active{transition:transform .15s ease-in,opacity .15s ease-in}.card-scale-enter-active{transition:transform .2s cubic-bezier(.34,1.4,.64,1),opacity .15s ease-out}.card-scale-leave-to{opacity:0;transform:scale(.92)}.card-scale-enter-from{opacity:0;transform:scale(1.03)}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.code-block-wrapper{background-color:#f6f8fa;border-radius:4px;margin:1rem 0;position:relative;overflow:auto}.language-indicator{color:#666;z-index:1;text-transform:lowercase;background-color:#ffffffb3;border-radius:4px;padding:2px 8px;font-family:monospace;font-size:.75rem;position:absolute;top:8px;right:10px}.user-input-container[data-v-aa14961f]{vertical-align:baseline;min-width:6em;display:inline-block}.user-input-string[data-v-aa14961f]{color:currentColor;font-family:inherit;font-size:inherit;line-height:inherit;text-align:center;background:0 0;border:none;border-bottom:1px solid;outline:none;width:100%;margin:0;padding:0;display:inline-block}.user-input-string[data-v-aa14961f]:focus{border-bottom:2px solid}#input[data-v-486ac035]{text-align:center;min-width:4em;display:inline-block}.underline[data-v-486ac035]{text-decoration:underline;-webkit-text-decoration-style:solid 14px;text-decoration-style:solid 14px}blockquote[data-v-de3eebd6]{border-left:3px solid teal;padding-left:8px}.codespan[data-v-de3eebd6]{margin-left:1px;margin-right:1px;padding-left:3px;padding-right:3px}p[data-v-de3eebd6]{margin-top:15px;margin-bottom:15px}.playing[data-v-e1a0f62c]{z-index:1;animation:.85s ease-in-out infinite alternate pulse-e1a0f62c}@keyframes pulse-e1a0f62c{0%{transform:scale(1)}to{transform:scale(1.15)}}.choice[data-v-96de7172]{text-align:center;border-radius:4px;min-width:75px;margin:10px;padding:5px 15px;transition:all .2s ease-in-out;display:inline-block}.selected[data-v-96de7172]{z-index:1;transform:translateY(-10px)scale(1.15)}.not-selected[data-v-96de7172]{z-index:0}.userInput[data-v-a56dcd1c]{text-align:center;border:none;border-bottom:1px #000}.cardView[data-v-93f758b5]{border-radius:8px;padding:15px}.component-fade-enter-active[data-v-93f758b5],.component-fade-leave-active[data-v-93f758b5]{transition:opacity .3s}.component-fade-enter[data-v-93f758b5],.component-fade-leave-to[data-v-93f758b5]{opacity:0}.component-fade-enter-active[data-v-9a38a213],.component-fade-leave-active[data-v-9a38a213]{transition:opacity .5s}.component-fade-enter[data-v-9a38a213],.component-fade-leave-to[data-v-9a38a213]{opacity:0}.login[data-v-563b0048]{max-width:650px}.component-fade-enter-active[data-v-5a55bdf0],.component-fade-leave-active[data-v-5a55bdf0]{transition:opacity .5s}.component-fade-enter[data-v-5a55bdf0],.component-fade-leave-to[data-v-5a55bdf0]{opacity:0}.vue-tags-input[data-v-f7373dc0]{max-width:100%}.autocomplete-item[data-v-f7373dc0]{align-items:center;padding:5px;display:flex}.autocomplete-item.is-active[data-v-f7373dc0]{background-color:#e8e8e8}.autocomplete-item.is-active>.tag-name[data-v-f7373dc0]{color:#fff;background-color:#5c6bc0}.tag-name[data-v-f7373dc0]{color:#333;background-color:#e0e0e0;border-radius:3px;margin-right:5px;padding:2px 6px;font-weight:700}.tag-snippet[data-v-f7373dc0]{color:#666;font-size:.9em}.autocomplete-item.is-active .tag-snippet[data-v-f7373dc0]{color:#333}.component-fade-enter-active[data-v-5ecc9d21],.component-fade-leave-active[data-v-5ecc9d21]{transition:opacity .5s}.component-fade-enter[data-v-5ecc9d21],.component-fade-leave-to[data-v-5ecc9d21]{opacity:0}.component-scale-enter-active[data-v-5ecc9d21],.component-scale-leave-active[data-v-5ecc9d21]{max-height:auto;transform-origin:top;transition:transform .3s,max-height .3s;transform:scale(1)}.component-scale-enter[data-v-5ecc9d21],.component-fade-leave-to[data-v-5ecc9d21]{max-height:0;overflow:hidden;transform:scaleY(0)}.component-fade-enter-active[data-v-38e9efe1],.component-fade-leave-active[data-v-38e9efe1]{transition:opacity .5s}.component-fade-enter[data-v-38e9efe1],.component-fade-leave-to[data-v-38e9efe1]{opacity:0}.component-scale-enter-active[data-v-38e9efe1],.component-scale-leave-active[data-v-38e9efe1]{max-height:auto;transform-origin:top;transition:transform .3s,max-height .3s;transform:scale(1)}.component-scale-enter[data-v-38e9efe1],.component-fade-leave-to[data-v-38e9efe1]{max-height:0;overflow:hidden;transform:scaleY(0)}.course-tag-filter-widget[data-v-e1ba963b]{width:100%}.filter-summary[data-v-e1ba963b]{color:rgba(var(--v-theme-on-surface), .7)}
2
2
  /*$vite$:1*/`,document.head.appendChild(c),Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var l=Object.create,u=Object.defineProperty,__name=(e,t)=>u(e,`name`,{value:t,configurable:!0}),d=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,p=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty,__esmMin=(e,t)=>()=>(e&&(t=e(e=0)),t),__commonJSMin=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),__exportAll=(e,t)=>{let n={};for(var r in e)u(n,r,{get:e[r],enumerable:!0});return t||u(n,Symbol.toStringTag,{value:`Module`}),n},__copyProps=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=f(t),a=0,o=i.length,s;a<o;a++)s=i[a],!m.call(e,s)&&s!==n&&u(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=d(t,s))||r.enumerable});return e},__toESM=(e,t,n)=>(n=e==null?{}:l(p(e)),__copyProps(t||!e||!e.__esModule?u(n,`default`,{value:e,enumerable:!0}):n,e));n=__toESM(n);var h=(0,t.defineComponent)({name:`HeatMap`,props:{activityRecords:{type:Array,default:()=>[]},activityRecordsGetter:{type:Function,default:null},inactiveColor:{type:Object,default:()=>({h:0,s:0,l:.9})},activeColor:{type:Object,default:()=>({h:155,s:1,l:.5})},cellSize:{type:Number,default:12},cellMargin:{type:Number,default:3},enableSeasonalColors:{type:Boolean,default:!0}},data(){return{isLoading:!1,localActivityRecords:[],heatmapData:{},weeks:[],tooltipData:null,tooltipStyle:{},maxInRange:0}},computed:{width(){return 53*(this.cellSize+this.cellMargin)},height(){return 7*(this.cellSize+this.cellMargin)},effectiveActivityRecords(){let e=Array.isArray(this.localActivityRecords)&&this.localActivityRecords.length>0,t=e?this.localActivityRecords:this.activityRecords||[];return console.log(`Using effectiveActivityRecords, count:`,t.length,`source:`,e?`local`:`prop`),t}},watch:{activityRecords:{handler(){this.processRecords(),this.createWeeksData()},immediate:!0}},async created(){if(this.activityRecordsGetter)try{this.isLoading=!0,console.log(`Fetching activity records using getter...`);let e=await this.activityRecordsGetter();Array.isArray(e)?(this.localActivityRecords=e.filter(e=>{if(!e||!e.timeStamp)return!1;try{let t=(0,n.default)(e.timeStamp);return t.isValid()&&t.year()>2e3&&t.year()<2100}catch{return!1}}),console.log(`Received ${e.length} records, ${this.localActivityRecords.length} valid after filtering`),this.processRecords(),this.createWeeksData()):(console.error(`Activity records getter did not return an array:`,e),this.localActivityRecords=[])}catch(e){console.error(`Error fetching activity records:`,e),this.localActivityRecords=[]}finally{this.isLoading=!1}else console.log(`No activityRecordsGetter provided, using direct activityRecords prop`)},methods:{toDateString(e){let t=(0,n.default)(e);return n.default.months()[t.month()]+` `+t.date()},processRecords(){let e=this.effectiveActivityRecords||[];console.log(`Processing ${e.length} records`);let t={};if(e.length===0){console.log(`No records to process`),this.heatmapData=t;return}let r=new Set,i={},a=0,o=0;for(let s=0;s<e.length;s++){let c=e[s];if(!c||typeof c!=`object`||!c.timeStamp){o++;continue}try{let e;if(typeof c.timeStamp==`string`)e=(0,n.default)(c.timeStamp).format(`YYYY-MM-DD`);else if(typeof c.timeStamp==`number`)e=(0,n.default)(new Date(c.timeStamp)).format(`YYYY-MM-DD`);else if(typeof c.timeStamp==`object`)e=typeof c.timeStamp.format==`function`?c.timeStamp.format(`YYYY-MM-DD`):c.timeStamp instanceof Date?(0,n.default)(c.timeStamp).format(`YYYY-MM-DD`):(0,n.default)(String(c.timeStamp)).format(`YYYY-MM-DD`);else{o++;continue}if((0,n.default)(e,`YYYY-MM-DD`,!0).isValid()){t[e]=(t[e]||0)+1,r.add(e);let n=e.substring(0,7);i[n]=(i[n]||0)+1,a++}else o++}catch{o++}}console.log(`Processed ${a} valid dates, ${o} invalid dates`),console.log(`Found ${r.size} unique dates`),console.log(`Date distribution by month:`,i),this.heatmapData=t},createWeeksData(){this.weeks=[],this.maxInRange=0;let e=(0,n.default)(),t=e.clone().subtract(52,`weeks`),r=t.clone().startOf(`week`);console.log(`Creating weeks data from`,t.format(`YYYY-MM-DD`),`to`,e.format(`YYYY-MM-DD`)),Object.keys(this.heatmapData).length===0&&console.log(`No heatmap data available to display`);let i=Object.keys(this.heatmapData).slice(0,5);for(console.log(`Sample dates in heatmap data:`,i);r.isSameOrBefore(e);){let e=[];for(let t=0;t<7;t++){let t=r.format(`YYYY-MM-DD`),n={date:t,count:this.heatmapData[t]||0};e.push(n),n.count>this.maxInRange&&(this.maxInRange=n.count),r.add(1,`day`)}this.weeks.push(e)}console.log(`Weeks data created, maxInRange:`,this.maxInRange);let a=0,o=0;Object.values(this.heatmapData).forEach(e=>{a++,o+=e}),console.log(`Activity summary: ${o} activities across ${a} days`)},getColor(e){if(this.maxInRange===0)return this.hslToString(this.inactiveColor);let t=e===0?0:Math.min(2*e/this.maxInRange,1),r=this.activeColor;if(this.enableSeasonalColors){let e=(0,n.default)();e.month()===11&&e.date()>=5?r=Math.random()>.5?{h:350,s:.8,l:.5}:{h:135,s:.8,l:.4}:e.month()===9&&e.date()>=25&&(r=Math.random()>.5?{h:0,s:0,l:0}:Math.random()>.5?{h:30,s:1,l:.5}:{h:270,s:1,l:.5})}let i=r.h,a=this.interpolate(this.inactiveColor.s,r.s,t),o=this.interpolate(this.inactiveColor.l,r.l,t);return this.hslToString({h:i,s:a,l:o})},interpolate(e,t,n){return e+(t-e)*n},hslToString(e){return`hsl(${e.h}, ${e.s*100}%, ${e.l*100}%)`},showTooltip(e,t){this.tooltipData=e,this.tooltipStyle={position:`absolute`,left:`${t.pageX+10}px`,top:`${t.pageY+10}px`}},hideTooltip(){this.tooltipData=null}}}),g,_=__esmMin((()=>{g=__name((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},`default`)}));_();var v=[`width`,`height`],y=[`transform`],b=[`y`,`width`,`height`,`fill`,`onMouseover`];function _sfc_render$29(e,n,r,i,a,o){return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{width:e.width,height:e.height},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.weeks,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`g`,{key:i,transform:`translate(${i*(e.cellSize+e.cellMargin)}, 0)`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`rect`,{key:r.date,x:0,y:i*(e.cellSize+e.cellMargin),width:e.cellSize,height:e.cellSize,fill:e.getColor(r.count),onMouseover:t=>e.showTooltip(r,t),onMouseout:n[0]||(n[0]=(...t)=>e.hideTooltip&&e.hideTooltip(...t))},null,40,b))),128))],8,y))),128))],8,v)),e.tooltipData?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`tooltip`,style:(0,t.normalizeStyle)(e.tooltipStyle)},(0,t.toDisplayString)(e.tooltipData.count)+` review`+(0,t.toDisplayString)(e.tooltipData.count===1?``:`s`)+` on `+(0,t.toDisplayString)(e.toDateString(e.tooltipData.date)),5)):(0,t.createCommentVNode)(``,!0)])}__name(_sfc_render$29,`_sfc_render`);var x=g(h,[[`render`,_sfc_render$29],[`__scopeId`,`data-v-ca46239a`]]),S=__commonJSMin(((e,t)=>{(function(e,n,r){if(!e)return;for(var i={8:`backspace`,9:`tab`,13:`enter`,16:`shift`,17:`ctrl`,18:`alt`,20:`capslock`,27:`esc`,32:`space`,33:`pageup`,34:`pagedown`,35:`end`,36:`home`,37:`left`,38:`up`,39:`right`,40:`down`,45:`ins`,46:`del`,91:`meta`,93:`meta`,224:`meta`},a={106:`*`,107:`+`,109:`-`,110:`.`,111:`/`,186:`;`,187:`=`,188:`,`,189:`-`,190:`.`,191:`/`,192:"`",219:`[`,220:`\\`,221:`]`,222:`'`},o={"~":"`","!":`1`,"@":`2`,"#":`3`,$:`4`,"%":`5`,"^":`6`,"&":`7`,"*":`8`,"(":`9`,")":`0`,_:`-`,"+":`=`,":":`;`,'"':`'`,"<":`,`,">":`.`,"?":`/`,"|":`\\`},s={option:`alt`,command:`meta`,return:`enter`,escape:`esc`,plus:`+`,mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?`meta`:`ctrl`},c,l=1;l<20;++l)i[111+l]=`f`+l;for(l=0;l<=9;++l)i[l+96]=l.toString();function _addEvent(e,t,n){if(e.addEventListener){e.addEventListener(t,n,!1);return}e.attachEvent(`on`+t,n)}function _characterFromEvent(e){if(e.type==`keypress`){var t=String.fromCharCode(e.which);return e.shiftKey||(t=t.toLowerCase()),t}return i[e.which]?i[e.which]:a[e.which]?a[e.which]:String.fromCharCode(e.which).toLowerCase()}function _modifiersMatch(e,t){return e.sort().join(`,`)===t.sort().join(`,`)}function _eventModifiers(e){var t=[];return e.shiftKey&&t.push(`shift`),e.altKey&&t.push(`alt`),e.ctrlKey&&t.push(`ctrl`),e.metaKey&&t.push(`meta`),t}function _preventDefault(e){if(e.preventDefault){e.preventDefault();return}e.returnValue=!1}function _stopPropagation(e){if(e.stopPropagation){e.stopPropagation();return}e.cancelBubble=!0}function _isModifier(e){return e==`shift`||e==`ctrl`||e==`alt`||e==`meta`}function _getReverseMap(){if(!c)for(var e in c={},i)e>95&&e<112||i.hasOwnProperty(e)&&(c[i[e]]=e);return c}function _pickBestAction(e,t,n){return n||(n=_getReverseMap()[e]?`keydown`:`keypress`),n==`keypress`&&t.length&&(n=`keydown`),n}function _keysFromString(e){return e===`+`?[`+`]:(e=e.replace(/\+{2}/g,`+plus`),e.split(`+`))}function _getKeyInfo(e,t){var n,r,i,a=[];for(n=_keysFromString(e),i=0;i<n.length;++i)r=n[i],s[r]&&(r=s[r]),t&&t!=`keypress`&&o[r]&&(r=o[r],a.push(`shift`)),_isModifier(r)&&a.push(r);return t=_pickBestAction(r,a,t),{key:r,modifiers:a,action:t}}function _belongsTo(e,t){return e===null||e===n?!1:e===t?!0:_belongsTo(e.parentNode,t)}function Mousetrap(e){var t=this;if(e=e||n,!(t instanceof Mousetrap))return new Mousetrap(e);t.target=e,t._callbacks={},t._directMap={};var r={},i,a=!1,o=!1,s=!1;function _resetSequences(e){e=e||{};var t=!1,n;for(n in r){if(e[n]){t=!0;continue}r[n]=0}t||(s=!1)}function _getMatches(e,n,i,a,o,s){var c,l,u=[],d=i.type;if(!t._callbacks[e])return[];for(d==`keyup`&&_isModifier(e)&&(n=[e]),c=0;c<t._callbacks[e].length;++c)if(l=t._callbacks[e][c],!(!a&&l.seq&&r[l.seq]!=l.level)&&d==l.action&&(d==`keypress`&&!i.metaKey&&!i.ctrlKey||_modifiersMatch(n,l.modifiers))){var f=!a&&l.combo==o,p=a&&l.seq==a&&l.level==s;(f||p)&&t._callbacks[e].splice(c,1),u.push(l)}return u}function _fireCallback(e,n,r,i){t.stopCallback(n,n.target||n.srcElement,r,i)||e(n,r)===!1&&(_preventDefault(n),_stopPropagation(n))}t._handleKey=function(e,t,n){var r=_getMatches(e,t,n),i,a={},c=0,l=!1;for(i=0;i<r.length;++i)r[i].seq&&(c=Math.max(c,r[i].level));for(i=0;i<r.length;++i){if(r[i].seq){if(r[i].level!=c)continue;l=!0,a[r[i].seq]=1,_fireCallback(r[i].callback,n,r[i].combo,r[i].seq);continue}l||_fireCallback(r[i].callback,n,r[i].combo)}var u=n.type==`keypress`&&o;n.type==s&&!_isModifier(e)&&!u&&_resetSequences(a),o=l&&n.type==`keydown`};function _handleKeyEvent(e){typeof e.which!=`number`&&(e.which=e.keyCode);var n=_characterFromEvent(e);if(n){if(e.type==`keyup`&&a===n){a=!1;return}t.handleKey(n,_eventModifiers(e),e)}}function _resetSequenceTimer(){clearTimeout(i),i=setTimeout(_resetSequences,1e3)}function _bindSequence(e,t,n,i){r[e]=0;function _increaseSequence(t){return function(){s=t,++r[e],_resetSequenceTimer()}}function _callbackAndReset(t){_fireCallback(n,t,e),i!==`keyup`&&(a=_characterFromEvent(t)),setTimeout(_resetSequences,10)}for(var o=0;o<t.length;++o){var c=o+1===t.length?_callbackAndReset:_increaseSequence(i||_getKeyInfo(t[o+1]).action);_bindSingle(t[o],c,i,e,o)}}function _bindSingle(e,n,r,i,a){t._directMap[e+`:`+r]=n,e=e.replace(/\s+/g,` `);var o=e.split(` `),s;if(o.length>1){_bindSequence(e,o,n,r);return}s=_getKeyInfo(e,r),t._callbacks[s.key]=t._callbacks[s.key]||[],_getMatches(s.key,s.modifiers,{type:s.action},i,e,a),t._callbacks[s.key][i?`unshift`:`push`]({callback:n,modifiers:s.modifiers,action:s.action,seq:i,level:a,combo:e})}t._bindMultiple=function(e,t,n){for(var r=0;r<e.length;++r)_bindSingle(e[r],t,n)},_addEvent(e,`keypress`,_handleKeyEvent),_addEvent(e,`keydown`,_handleKeyEvent),_addEvent(e,`keyup`,_handleKeyEvent)}Mousetrap.prototype.bind=function(e,t,n){var r=this;return e=e instanceof Array?e:[e],r._bindMultiple.call(r,e,t,n),r},Mousetrap.prototype.unbind=function(e,t){var n=this;return n.bind.call(n,e,function(){},t)},Mousetrap.prototype.trigger=function(e,t){var n=this;return n._directMap[e+`:`+t]&&n._directMap[e+`:`+t]({},e),n},Mousetrap.prototype.reset=function(){var e=this;return e._callbacks={},e._directMap={},e},Mousetrap.prototype.stopCallback=function(e,t){var n=this;if((` `+t.className+` `).indexOf(` mousetrap `)>-1||_belongsTo(t,n.target))return!1;if(`composedPath`in e&&typeof e.composedPath==`function`){var r=e.composedPath()[0];r!==e.target&&(t=r)}return t.tagName==`INPUT`||t.tagName==`SELECT`||t.tagName==`TEXTAREA`||t.isContentEditable},Mousetrap.prototype.handleKey=function(){var e=this;return e._handleKey.apply(e,arguments)},Mousetrap.addKeycodes=function(e){for(var t in e)e.hasOwnProperty(t)&&(i[t]=e[t]);c=null},Mousetrap.init=function(){var e=Mousetrap(n);for(var t in e)t.charAt(0)!==`_`&&(Mousetrap[t]=function(t){return function(){return e[t].apply(e,arguments)}}(t))},Mousetrap.init(),e.Mousetrap=Mousetrap,t!==void 0&&t.exports&&(t.exports=Mousetrap),typeof define==`function`&&define.amd&&define(function(){return Mousetrap})})(typeof window<`u`?window:null,typeof window<`u`?document:null)}));function _typeof(e){"@babel/helpers - typeof";return _typeof=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},_typeof(e)}var C=__esmMin((()=>{}));function toPrimitive(e,t){if(_typeof(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(_typeof(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var w=__esmMin((()=>{C()}));function toPropertyKey(e){var t=toPrimitive(e,`string`);return _typeof(t)==`symbol`?t:t+``}var T=__esmMin((()=>{C(),w()}));function _defineProperty(e,t,n){return(t=toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=__esmMin((()=>{T()}));function inputElementIsFocused(){let e=document.activeElement;return e instanceof HTMLInputElement&&(e.type===`checkbox`||e.type===`radio`)?!1:e instanceof HTMLElement&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`||e.tagName===`SELECT`||e.isContentEditable)}var D,O,k=__esmMin((()=>{D=__toESM(S()),E(),O=class SkldrMouseTrap{constructor(){_defineProperty(this,`mouseTrap`,void 0),_defineProperty(this,`hotkeys`,void 0),this.mouseTrap=new D.default,this.mouseTrap.stopCallback=()=>!1,this.hotkeys=[]}static get commands(){return SkldrMouseTrap.instance().hotkeys.map(e=>({command:e.command,hotkey:e.hotkey}))}static addBinding(e){let t=Array.isArray(e)?e:[e],n=SkldrMouseTrap.instance();n.hotkeys=[...n.hotkeys,...t],t.forEach(e=>{n.mouseTrap.bind(e.hotkey,(t,n)=>{if(inputElementIsFocused()){console.log(`Ignoring hotkey ${e.hotkey} while input element is focused`);return}e.callback(t,n)})})}static removeBinding(e){let t=SkldrMouseTrap.instance(),n=[...t.hotkeys];Array.isArray(e)&&!e.every(e=>typeof e==`string`||typeof e==`number`)?e.forEach(e=>{t.hotkeys=t.hotkeys.filter(t=>JSON.stringify(t.hotkey)!==JSON.stringify(e)),t.mouseTrap.unbind(e)}):(t.hotkeys=n.filter(t=>JSON.stringify(t.hotkey)!==JSON.stringify(e)),t.mouseTrap.unbind(e))}static reset(){console.warn(`SkldrMouseTrap.reset() may affect hotkeys registered by other components. Consider using removeBinding() with specific hotkeys for better component isolation.`),SkldrMouseTrap.instance().mouseTrap.reset(),SkldrMouseTrap.instance().hotkeys=[]}static instance(){return SkldrMouseTrap._instance||(SkldrMouseTrap._instance=new SkldrMouseTrap),SkldrMouseTrap._instance}},_defineProperty(O,`_instance`,void 0)}));k();var A=(0,t.defineComponent)({name:`SkMouseTrap`,props:{refreshInterval:{type:Number,default:500}},data(){return{commands:[],display:!1,intervalId:null}},created(){this.intervalId=window.setInterval(this.refreshState,this.refreshInterval)},beforeUnmount(){this.intervalId!==null&&clearInterval(this.intervalId)},methods:{refreshState(){this.commands=O.commands,this.display=this.commands.length>0}}});_();var ee={class:`text-caption ml-2`};function _sfc_render$28(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-icon`),c=(0,t.resolveComponent)(`v-btn`),l=(0,t.resolveComponent)(`v-toolbar-title`),u=(0,t.resolveComponent)(`v-toolbar`),d=(0,t.resolveComponent)(`v-spacer`),f=(0,t.resolveComponent)(`v-list-item`),p=(0,t.resolveComponent)(`v-list`),m=(0,t.resolveComponent)(`v-card`),h=(0,t.resolveComponent)(`v-dialog`);return e.display?((0,t.openBlock)(),(0,t.createBlock)(h,{key:0,"max-width":`500px`,transition:`dialog-transition`},{activator:(0,t.withCtx)(({props:e})=>[(0,t.createVNode)(c,(0,t.mergeProps)({icon:``,color:`primary`},e),{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,null,{default:(0,t.withCtx)(()=>n[0]||(n[0]=[(0,t.createTextVNode)(`mdi-keyboard`)])),_:1})]),_:2},1040)]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(m,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,{color:`secondary`,dark:``,dense:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{class:`text-subtitle-1`},{default:(0,t.withCtx)(()=>n[1]||(n[1]=[(0,t.createTextVNode)(`Shortcut keys:`)])),_:1})]),_:1}),(0,t.createVNode)(p,{dense:``},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.commands,e=>((0,t.openBlock)(),(0,t.createBlock)(f,{key:Array.isArray(e.hotkey)?e.hotkey.join(`,`):e.hotkey,class:`py-1`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{variant:`outlined`,color:`primary`,class:`text-white`,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(Array.isArray(e.hotkey)?e.hotkey[0]:e.hotkey),1)]),_:2},1024),(0,t.createVNode)(d),(0,t.createElementVNode)(`span`,ee,(0,t.toDisplayString)(e.command),1)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})):(0,t.createCommentVNode)(``,!0)}__name(_sfc_render$28,`_sfc_render`);var j=g(A,[[`render`,_sfc_render$28]]);k();var te=(0,t.defineComponent)({name:`SkMouseTrapToolTip`,props:{hotkey:{type:[String,Array],required:!0},command:{type:String,required:!0},disabled:{type:Boolean,default:!1},position:{type:String,default:`top`},showTooltip:{type:Boolean,default:!0},highlightEffect:{type:String,default:`glow`}},emits:[`hotkey-triggered`],setup(e,{emit:n}){let r=(0,t.ref)(null),i=(0,t.ref)(!1);(0,t.ref)(`hotkey-${Math.random().toString(36).substring(2,15)}`);let a=(0,t.computed)(()=>{let t=Array.isArray(e.hotkey)?e.hotkey[0]:e.hotkey;return t.includes(` `)?t.toLowerCase().split(` `).map(e=>e.charAt(0)+e.slice(1)).join(`, `):t.toLowerCase().split(`+`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` + `)});(0,t.watch)(()=>i.value,t=>{if(!r.value||e.disabled)return;let n=r.value.querySelector(`button, a, input[type="button"], [role="button"]`);n&&(n.style.transition=`all 250ms ease`,t&&e.highlightEffect!==`none`?n.style.filter=`brightness(1.1)`:n.style.filter=``)});let handleKeyDown=e=>{e.key===`Control`&&(i.value=!0)},handleKeyUp=e=>{e.key===`Control`&&(i.value=!1)},handleHotkeyPress=()=>{if(e.disabled||!r.value)return;let t=r.value.querySelector(`button, a, input[type="button"], [role="button"]`);if(t||(t=r.value.querySelector(`v-list-item, .v-list-item, router-link, .router-link, a, [to]`)),!t&&(r.value.hasAttribute(`to`)||r.value.tagName===`A`||r.value.classList.contains(`v-list-item`))&&(t=r.value),!t){let e=r.value.closest(`v-list-item, .v-list-item, a, [to]`);e&&(t=e)}if(t)if(t.hasAttribute(`to`)){let r=t.getAttribute(`to`);if(r&&window.location.pathname!==r){let e=window.$nuxt?.$router||window.$router;e&&typeof e.push==`function`?e.push(r):window.location.pathname=r}n(`hotkey-triggered`,e.hotkey)}else t.click(),n(`hotkey-triggered`,e.hotkey);else console.log(`No clickable element found for hotkey`,e.hotkey),n(`hotkey-triggered`,e.hotkey)},registerHotkey=()=>{e.disabled||O.addBinding({hotkey:e.hotkey,command:e.command,callback:handleHotkeyPress})},unregisterHotkey=()=>{e.disabled||O.removeBinding(e.hotkey)};return(0,t.watch)(()=>e.disabled,e=>{e?unregisterHotkey():registerHotkey()}),(0,t.onMounted)(()=>{document.addEventListener(`keydown`,handleKeyDown),document.addEventListener(`keyup`,handleKeyUp),registerHotkey()}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`keydown`,handleKeyDown),document.removeEventListener(`keyup`,handleKeyUp),unregisterHotkey()}),{wrapperElement:r,isControlKeyPressed:i,formattedHotkey:a}}});_();function _sfc_render$27(e,n,r,i,a,o){return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`sk-mousetrap-tooltip-wrapper`,[e.isControlKeyPressed&&!e.disabled&&e.highlightEffect!==`none`?`sk-mousetrap-highlight-${e.highlightEffect}`:``]]),ref:`wrapperElement`},[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0),(0,t.createVNode)(t.Transition,{name:`fade`},{default:(0,t.withCtx)(()=>[e.showTooltip&&e.isControlKeyPressed&&!e.disabled?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`sk-mousetrap-tooltip`,{"sk-mt-tooltip-top":e.position===`top`,"sk-mt-tooltip-bottom":e.position===`bottom`,"sk-mt-tooltip-left":e.position===`left`,"sk-mt-tooltip-right":e.position===`right`}])},(0,t.toDisplayString)(e.formattedHotkey),3)):(0,t.createCommentVNode)(``,!0)]),_:1})],2)}__name(_sfc_render$27,`_sfc_render`);var ne=g(te,[[`render`,_sfc_render$27],[`__scopeId`,`data-v-5d6fb09c`]]),{setInstance:re,getInstance:M,alertUser:N}=(()=>{let e=null;return{setInstance(t){e=t},getInstance(){return e},alertUser(t){let n=e;if(n){n.addSnack(t);return}console.error(`SnackbarService not found`)}}})(),ie=(0,t.defineComponent)({name:`SnackbarService`,data(){return{snacks:[],show:[]}},mounted(){re(this)},methods:{addSnack(e){this.snacks.push(e),this.show.push(!0)},close(){this.show.pop(),this.show.push(!1)},getColor(e){if(e.status===r.Status.ok)return`success`;if(e.status===r.Status.error)return`error`;if(e.status===r.Status.warning)return`yellow`}}});_();var ae={class:`d-flex align-center justify-space-between w-100`};function _sfc_render$26(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-icon`),c=(0,t.resolveComponent)(`v-btn`),l=(0,t.resolveComponent)(`v-snackbar`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.snacks,r=>((0,t.openBlock)(),(0,t.createBlock)(l,{key:e.snacks.indexOf(r),modelValue:e.show[e.snacks.indexOf(r)],"onUpdate:modelValue":t=>e.show[e.snacks.indexOf(r)]=t,timeout:r.timeout,location:`bottom right`,color:e.getColor(r)},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,ae,[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(r.text),1),(0,t.createVNode)(c,{icon:``,variant:`text`,onClick:n[0]||(n[0]=t=>e.close())},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,null,{default:(0,t.withCtx)(()=>n[1]||(n[1]=[(0,t.createTextVNode)(`mdi-close`)])),_:1})]),_:1})])]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`timeout`,`color`]))),128))])}__name(_sfc_render$26,`_sfc_render`);var oe=g(ie,[[`render`,_sfc_render$26]]),se=(0,t.defineComponent)({name:`PaginatingToolbar`,props:{pages:{type:Array,required:!0},page:{type:Number,required:!0},title:{type:String,required:!1,default:``},subtitle:{type:String,required:!1,default:``}},emits:[`first`,`prev`,`next`,`last`,`set-page`]});_();var ce={key:0,class:`ms-2 text-subtitle-2`,"data-cy":`paginating-toolbar-subtitle`};function _sfc_render$25(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-toolbar-title`),c=(0,t.resolveComponent)(`v-spacer`),l=(0,t.resolveComponent)(`v-icon`),u=(0,t.resolveComponent)(`v-btn`),d=(0,t.resolveComponent)(`v-select`),f=(0,t.resolveComponent)(`v-toolbar`);return(0,t.openBlock)(),(0,t.createBlock)(f,{density:`compact`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,null,{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.title),1),e.subtitle?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ce,(0,t.toDisplayString)(e.subtitle),1)):(0,t.createCommentVNode)(``,!0)]),_:1}),(0,t.createVNode)(c),(0,t.createVNode)(u,{variant:`text`,icon:``,color:`secondary`,disabled:e.page==1,onClick:n[0]||(n[0]=t=>e.$emit(`first`))},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,null,{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(`mdi-page-first`)])),_:1})]),_:1},8,[`disabled`]),(0,t.createVNode)(u,{variant:`text`,icon:``,color:`secondary`,disabled:e.page==1,onClick:n[1]||(n[1]=t=>e.$emit(`prev`))},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,null,{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`mdi-chevron-left`)])),_:1})]),_:1},8,[`disabled`]),(0,t.createVNode)(d,{"model-value":e.page,items:e.pages,class:`pageSelect`,density:`compact`,"hide-details":``,"return-object":!1,variant:`outlined`,"onUpdate:modelValue":n[2]||(n[2]=t=>e.$emit(`set-page`,t))},{selection:(0,t.withCtx)(({item:e})=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.value),1)]),_:1},8,[`model-value`,`items`]),(0,t.createVNode)(u,{variant:`text`,icon:``,color:`secondary`,disabled:e.page==e.pages.length,onClick:n[3]||(n[3]=t=>e.$emit(`next`))},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,null,{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(`mdi-chevron-right`)])),_:1})]),_:1},8,[`disabled`]),(0,t.createVNode)(u,{variant:`text`,icon:``,color:`secondary`,disabled:e.page==e.pages.length,onClick:n[4]||(n[4]=t=>e.$emit(`last`))},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,null,{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(`mdi-page-last`)])),_:1})]),_:1},8,[`disabled`])]),_:1})}__name(_sfc_render$25,`_sfc_render`);var le=g(se,[[`render`,_sfc_render$25],[`__scopeId`,`data-v-a75fea7e`]]),ue=(0,t.defineComponent)({name:`CardSearch`,emits:{search:e=>typeof e==`string`},data(){return{query:``}},methods:{search(){this.$emit(`search`,this.query)}}});_();var de={class:`card-search`};function _sfc_render$24(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-text-field`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,de,[(0,t.createVNode)(s,{modelValue:e.query,"onUpdate:modelValue":n[0]||(n[0]=t=>e.query=t),label:`Search for cards...`,"append-icon":`mdi-magnify`,"onClick:append":e.search,onKeydown:(0,t.withKeys)(e.search,[`enter`])},null,8,[`modelValue`,`onClick:append`,`onKeydown`])])}__name(_sfc_render$24,`_sfc_render`);var fe=g(ue,[[`render`,_sfc_render$24]]),pe=(0,t.defineComponent)({name:`CardSearchResults`,emits:{"card-selected":e=>typeof e.cardId==`string`&&typeof e.courseId==`string`},props:{query:{type:String,required:!0},dataLayer:{type:Object,required:!0},courseFilter:{type:String,default:null}},data(){return{cards:[],loading:!1,error:null,selectedCardId:null}},watch:{query:{immediate:!0,handler(e){e&&this.fetchResults(e)}}},methods:{async fetchResults(e){this.loading=!0,this.error=null;try{let t=[];if(this.courseFilter)t=[this.courseFilter],console.log(`Filtering search to course: ${this.courseFilter}`);else{let{CourseLookup:e}=await import(`@vue-skuilder/db`);t=(await e.allCourseWare()).map(e=>e._id).filter(Boolean),console.log(`Searching across all ${t.length} courses`)}let n=[];for(let r of t){let t=await this.dataLayer.getCourseDB(r).searchCards(e);for(let e of t)n.push({...e,courseId:r})}this.cards=n,console.log(`Search completed: found ${n.length} cards across ${t.length} courses`)}catch(e){this.error=`Error fetching search results.`,console.error(`Search error:`,e)}finally{this.loading=!1}},selectCard(e){this.selectedCardId=e._id,this.$emit(`card-selected`,{cardId:e._id,courseId:e.courseId})}}});_();var me={class:`card-search-results`},he={key:0},ge={key:1},_e={key:2};function _sfc_render$23(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-list-item-title`),c=(0,t.resolveComponent)(`v-list-item-subtitle`),l=(0,t.resolveComponent)(`v-list-item`),u=(0,t.resolveComponent)(`v-list`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,me,[e.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,he,`Loading...`)):e.error?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ge,(0,t.toDisplayString)(e.error),1)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,_e,[(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.cards,n=>((0,t.openBlock)(),(0,t.createBlock)(l,{key:n._id,onClick:t=>e.selectCard(n),class:(0,t.normalizeClass)([{"selected-card":n._id===e.selectedCardId},`cursor-pointer`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n._id),1)]),_:2},1024),(0,t.createVNode)(c,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)(`Course: `+(0,t.toDisplayString)(n.courseId),1)]),_:2},1024)]),_:2},1032,[`onClick`,`class`]))),128))]),_:1})]))])}__name(_sfc_render$23,`_sfc_render`);var ve=g(pe,[[`render`,_sfc_render$23],[`__scopeId`,`data-v-285e13bd`]]),ye=(0,t.defineComponent)({name:`CardHistoryViewer`,props:{cardId:{type:String,required:!0},courseId:{type:String,required:!0},userId:{type:String,required:!0},userDB:{type:Object,required:!0}},data(){return{history:[],cardHistory:null,bestIntervalHumanized:``,loading:!1,error:null,headers:[{title:`Timestamp`,key:`formattedTimeStamp`},{title:`Interval`,key:`userFriendlyInterval`},{title:`Time Spent (s)`,key:`timeSpentSeconds`},{title:`Correct?`,key:`isCorrect`},{title:`Performance`,key:`performance`},{title:`Prior Attempts`,key:`priorAttemps`},{title:`User Answer`,key:`userAnswer`}]}},watch:{cardId:{immediate:!0,handler(e){e&&this.userDB&&this.fetchHistory()}},userDB:{handler(e){e&&this.cardId&&this.fetchHistory()}}},methods:{async fetchHistory(){this.loading=!0,this.error=null;try{let e=(0,i.getCardHistoryID)(this.courseId,this.cardId),t=await this.userDB.get(e);this.cardHistory=t,this.bestIntervalHumanized=n.default.duration(t.bestInterval,`seconds`).humanize();let r=[...t.records].sort((e,t)=>(0,n.default)(e.timeStamp).valueOf()-(0,n.default)(t.timeStamp).valueOf());this.history=r.map((e,t)=>{let i=(0,n.default)(e.timeStamp),a={...e,formattedTimeStamp:i.format(`YYYY-MM-DD HH:mm:ss`),timeSpentSeconds:Math.round(e.timeSpent/1e3),isCorrect:e.isCorrect,performance:e.performance,priorAttemps:e.priorAttemps,userAnswer:e.userAnswer};if(t>0){let e=(0,n.default)(r[t-1].timeStamp),o=i.diff(e,`seconds`,!0);a.intervalFromPrevious=Math.round(o*100)/100,a.userFriendlyInterval=`${a.intervalFromPrevious} sec (${n.default.duration(o,`seconds`).humanize()})`}return a})}catch(e){this.error=`Error fetching card history.`,console.error(e)}finally{this.loading=!1}}}});_();var be={class:`card-history-viewer`},xe={key:0},Se={key:1},Ce={key:2,class:`error-message`},we={key:3};function _sfc_render$22(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card-title`),c=(0,t.resolveComponent)(`v-list-item-title`),l=(0,t.resolveComponent)(`v-list-item-subtitle`),u=(0,t.resolveComponent)(`v-list-item-content`),d=(0,t.resolveComponent)(`v-list-item`),f=(0,t.resolveComponent)(`v-card`),p=(0,t.resolveComponent)(`v-data-table`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,be,[e.userId?((0,t.openBlock)(),(0,t.createElementBlock)(`h3`,xe,`Card History for User: `+(0,t.toDisplayString)(e.userId),1)):(0,t.createCommentVNode)(``,!0),e.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Se,`Loading...`)):e.error?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ce,(0,t.toDisplayString)(e.error),1)):e.cardHistory?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,we,[(0,t.createVNode)(f,{class:`mb-4`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,null,{default:(0,t.withCtx)(()=>n[0]||(n[0]=[(0,t.createTextVNode)(`Summary`)])),_:1}),(0,t.createVNode)(d,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)(`Best Interval: `+(0,t.toDisplayString)(e.cardHistory.bestInterval)+` seconds (`+(0,t.toDisplayString)(e.bestIntervalHumanized)+`)`,1)]),_:1}),(0,t.createVNode)(l,null,{default:(0,t.withCtx)(()=>n[1]||(n[1]=[(0,t.createTextVNode)(`The to-date largest interval between successful card reviews.`)])),_:1})]),_:1})]),_:1}),(0,t.createVNode)(d,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)(`Lapses: `+(0,t.toDisplayString)(e.cardHistory.lapses),1)]),_:1}),(0,t.createVNode)(l,null,{default:(0,t.withCtx)(()=>n[2]||(n[2]=[(0,t.createTextVNode)(`The number of times that a card has been failed in review.`)])),_:1})]),_:1})]),_:1}),(0,t.createVNode)(d,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)(`Streak: `+(0,t.toDisplayString)(e.cardHistory.streak),1)]),_:1}),(0,t.createVNode)(l,null,{default:(0,t.withCtx)(()=>n[3]||(n[3]=[(0,t.createTextVNode)(`The number of consecutive successful impressions on this card.`)])),_:1})]),_:1})]),_:1})]),_:1}),(0,t.createVNode)(p,{headers:e.headers,items:e.history,class:`elevation-1`},null,8,[`headers`,`items`])])):(0,t.createCommentVNode)(``,!0)])}__name(_sfc_render$22,`_sfc_render`);var Te=g(ye,[[`render`,_sfc_render$22],[`__scopeId`,`data-v-a4bdfdfb`]]);function useViewable(e,r,i){let a=(0,t.ref)(n.default.utc()),o=(0,t.ref)([]),s={log:(e,...t)=>console.log(`[${i}]: `,e,...t),error:(e,...t)=>console.error(`[${i}]: `,e,...t),warn:(e,...t)=>console.warn(`[${i}]: `,e,...t)},c=(0,t.computed)(()=>Math.abs(n.default.utc().diff(a.value,`milliseconds`))),getURL=(t,n=0)=>{try{if(e.data[n]?.[t])return URL.createObjectURL(e.data[n][t])}catch(e){s.error(`Error creating URL for item:`,t,e)}return``},emitResponse=e=>{r(`emitResponse`,e)};return{startTime:a,hotKeys:o,timeSpent:c,logger:s,getURL,emitResponse}}function useQuestionView(e){let n=(0,t.ref)(0),r=(0,t.ref)(0),i=(0,t.ref)([]),a=(0,t.ref)(3),o=(0,t.ref)(2),s=(0,t.ref)(),submitAnswer=(t,n,a)=>{if(e.logger.log(`submitAnswer called...`),!s.value)throw Error(`Question not initialized`);i.value.push([t,n??``]);let o=s.value.evaluate(t,e.timeSpent.value);e.logger.log(`evaluation of answer ${t}:`,o);let c={...o,priorAttemps:r.value,courseID:``,cardID:``,timeSpent:e.timeSpent.value,timeStamp:e.startTime.value,userAnswer:t};return a?.deferAdvance!==void 0&&(c.deferAdvance=a.deferAdvance),o.isCorrect||r.value++,e.emitResponse(c),c};return{priorSessionViews:n,priorAttempts:r,priorAnswers:i,maxAttemptsPerView:a,maxSessionViews:o,question:s,submitAnswer}}function isQuestionView(e){return typeof e==`object`&&!!e&&`submitAnswer`in e&&`priorAttempts`in e}var Ee=__esmMin((()=>{}));Ee(),E();function isDefineComponent(e){return e.__isFragment!==void 0}var Displayable=class{constructor(e){if(e.length===0)throw Error(`
3
3
  Displayable Constructor was called with no view Data.
4
4
  `);validateData(this.dataShapes(),e)}};_defineProperty(Displayable,`dataShapes`,void 0),_defineProperty(Displayable,`views`,void 0),_defineProperty(Displayable,`seedData`,void 0),_defineProperty(Displayable,`acceptsUserData`,!0);function validateData(e,t){for(let n=0;n<e.length;n++)e[n].fields.forEach((e,i)=>{console.log(`[Displayable] shape[${n}].field[${i}]:\n ${JSON.stringify(e)}`),t[n][e.name]===void 0&&e.type!==r.FieldType.MEDIA_UPLOADS&&console.warn(`[Displayable] missing data`)})}var Question=class extends Displayable{displayedSkill(e,t){console.warn(`Question is running the reference implementation of displayedSkill.
5
5
  Consider overriding!`);let n=5e3,r=Math.min(t,10*n),i=r/n,a=r>n?.8**i:1,o=this.isCorrect(e)?1:0;return o*=a,Math.min(o,1)}evaluate(e,t){return{isCorrect:this.isCorrect(e),performance:this.displayedSkill(e,t)}}},getApiBase=()=>{let e=`fallback (empty string)`,t=``;if(!t&&typeof window<`u`&&window.__SKUILDER_CONFIG__?.apiBase){let n=window.__SKUILDER_CONFIG__.apiBase.replace(/\/$/,``);t=n.startsWith(`/`)?n:`/${n}`,e=`window.__SKUILDER_CONFIG__.apiBase`}return console.log(`[authAPI] getApiBase() called`),console.log(`[authAPI] source:`,e),console.log(`[authAPI] result:`,t),t};async function sendVerificationEmail(e,t,n){try{let r={username:e,email:t};n&&(r.origin=n);let i=await fetch(`${getApiBase()}/auth/send-verification`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`include`,body:JSON.stringify(r)});if(!i.ok){let e=await i.text();return console.error(`Send verification email error:`,e),{ok:!1,error:`HTTP ${i.status}: ${i.statusText}`}}return await i.json()}catch(e){return console.error(`Send verification email fetch error:`,e),{ok:!1,error:e instanceof Error?e.message:`Network error`}}}async function verifyEmail(e){try{let t=await fetch(`${getApiBase()}/auth/verify`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`include`,body:JSON.stringify({token:e})});return t.ok?await t.json():{ok:!1,error:`HTTP ${t.status}: ${t.statusText}`}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Network error`}}}async function getUserStatus(){try{let e=await fetch(`${getApiBase()}/auth/status`,{method:`GET`,headers:{"Content-Type":`application/json`},credentials:`include`});return e.ok?await e.json():{ok:!1,error:`HTTP ${e.status}: ${e.statusText}`}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Network error`}}}async function requestPasswordReset(e,t){try{let n={email:e};t&&(n.origin=t);let r=await fetch(`${getApiBase()}/auth/request-reset`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`include`,body:JSON.stringify(n)});return r.ok?await r.json():{ok:!1,error:`HTTP ${r.status}: ${r.statusText}`}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Network error`}}}async function resetPassword(e,t){try{let n=await fetch(`${getApiBase()}/auth/reset-password`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`include`,body:JSON.stringify({token:e,newPassword:t})});return n.ok?await n.json():{ok:!1,error:`HTTP ${n.status}: ${n.statusText}`}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Network error`}}}function useEntitlements(e){let n=(0,t.ref)({}),r=(0,t.ref)(!1),i=(0,t.ref)(null),a=(0,t.computed)(()=>{let t=n.value[e];if(!t)return{isActive:!1,isPaid:!1,daysRemaining:null,expiresDate:null};if(t.status===`paid`)return{isActive:!0,isPaid:!0,daysRemaining:null,expiresDate:null};let r=t.expires;if(!r)return{isActive:!0,isPaid:!1,daysRemaining:null,expiresDate:null};let i=new Date(r),a=new Date,o=Math.ceil((i.getTime()-a.getTime())/(1e3*60*60*24));return{isActive:o>0,isPaid:!1,daysRemaining:Math.max(0,o),expiresDate:r}}),o=(0,t.computed)(()=>a.value.isPaid);async function fetchEntitlements(){r.value=!0,i.value=null;try{let e=await getUserStatus();e.ok?n.value=e.entitlements||{}:(i.value=e.error||`Failed to fetch entitlements`,console.error(`[useEntitlements] Error:`,i.value))}catch(e){i.value=e instanceof Error?e.message:`Unknown error`,console.error(`[useEntitlements] Exception:`,e)}finally{r.value=!1}}return{entitlements:n,trialStatus:a,hasPremiumAccess:o,loading:r,error:i,fetchEntitlements}}var De=(0,t.defineComponent)({name:`StudySessionTimer`,props:{timeRemaining:{type:Number,required:!0},sessionTimeLimit:{type:Number,required:!0,default:5}},emits:[`add-time`],setup(e,{emit:n}){let r=(0,t.ref)(!1),i=(0,t.computed)(()=>{let t=``,n=e.timeRemaining;n>60&&(t=Math.floor(n/60).toString()+`:`);let r=n%60;return t+=r>=10?r:`0`+r,n<=60&&(t+=` seconds`),t+=` left!`,t}),a=(0,t.computed)(()=>e.timeRemaining>60?100*(e.timeRemaining/(60*e.sessionTimeLimit)):100*(e.timeRemaining/60)),o=(0,t.computed)(()=>e.timeRemaining>60?`primary`:`orange darken-3`),addSessionTime=()=>{n(`add-time`)};return{hovered:r,formattedTimeRemaining:i,percentageRemaining:a,timerColor:o,addSessionTime}}});_();function _sfc_render$21(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-icon`),c=(0,t.resolveComponent)(`v-btn`),l=(0,t.resolveComponent)(`v-progress-circular`),u=(0,t.resolveComponent)(`v-tooltip`);return(0,t.openBlock)(),(0,t.createBlock)(u,{location:`right`,"open-delay":0,"close-delay":200,color:`secondary`,class:`text-subtitle-1`},{activator:(0,t.withCtx)(({props:r})=>[(0,t.createElementVNode)(`div`,(0,t.mergeProps)({class:`timer-container`},r,{onMouseenter:n[0]||(n[0]=t=>e.hovered=!0),onMouseleave:n[1]||(n[1]=t=>e.hovered=!1)}),[(0,t.createVNode)(l,{alt:`Time remaining in study session`,size:`64`,width:`8`,rotate:`0`,color:e.timerColor,"model-value":e.percentageRemaining},{default:(0,t.withCtx)(()=>[e.timeRemaining>0&&e.hovered?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,icon:``,color:`transparent`,location:`bottom left`,onClick:e.addSessionTime},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{size:`large`},{default:(0,t.withCtx)(()=>n[2]||(n[2]=[(0,t.createTextVNode)(`mdi-plus`)])),_:1})]),_:1},8,[`onClick`])):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`color`,`model-value`])],16)]),default:(0,t.withCtx)(()=>[(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.formattedTimeRemaining),1)]),_:1})}__name(_sfc_render$21,`_sfc_render`);var Oe=g(De,[[`render`,_sfc_render$21],[`__scopeId`,`data-v-5960940a`]]),ke=(0,t.defineComponent)({name:`CardViewer`,ref:{},props:{sessionOrder:{type:Number,required:!1,default:0},card_id:{type:String,required:!0,default:``},course_id:{type:String,required:!0,default:``},view:{type:[Function,Object],required:!0},data:{type:Array,required:!0},user_elo:{type:Object,default:()=>({global:{score:1e3,count:0},tags:{},misc:{}})},card_elo:{type:Number,default:1e3},frameless:{type:Boolean,default:!1}},emits:[`emitResponse`,`requestReplan`,`readyToAdvance`],methods:{processResponse(e){console.log(`
6
6
  Card was displayed at ${e.timeStamp}
7
7
  User spent ${e.timeSpent} milliseconds with the card.
8
- `),this.$emit(`emitResponse`,e)}}});_();function _sfc_render$20(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card`);return e.frameless?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.view),{ref:`activeView`,key:e.course_id+`-`+e.card_id+`-`+e.sessionOrder,data:e.data,"modify-difficulty":e.user_elo.global.score-e.card_elo,class:`cardView`,onEmitResponse:n[0]||(n[0]=t=>e.processResponse(t)),onRequestReplan:n[1]||(n[1]=t=>e.$emit(`requestReplan`,t)),onReadyToAdvance:n[2]||(n[2]=t=>e.$emit(`readyToAdvance`))},null,40,[`data`,`modify-difficulty`])):((0,t.openBlock)(),(0,t.createBlock)(s,{key:1,elevation:`12`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.view),{ref:`activeView`,key:e.course_id+`-`+e.card_id+`-`+e.sessionOrder,data:e.data,"modify-difficulty":e.user_elo.global.score-e.card_elo,class:`cardView ma-2 pa-2`,onEmitResponse:n[3]||(n[3]=t=>e.processResponse(t)),onRequestReplan:n[4]||(n[4]=t=>e.$emit(`requestReplan`,t)),onReadyToAdvance:n[5]||(n[5]=t=>e.$emit(`readyToAdvance`))},null,40,[`data`,`modify-difficulty`]))]),_:1}))}__name(_sfc_render$20,`_sfc_render`);var P=g(ke,[[`render`,_sfc_render$20],[`__scopeId`,`data-v-2d892b82`]]),Ae=(0,t.defineComponent)({name:`SessionControllerDebug`,props:{sessionController:{type:Object,required:!0}},setup(e){let n=(0,t.ref)(0),r=null;return(0,t.onMounted)(()=>{r=setInterval(()=>{n.value++},500)}),(0,t.onUnmounted)(()=>{r&&clearInterval(r)}),{debugInfo:(0,t.computed)(()=>(n.value,e.sessionController?e.sessionController.getDebugInfo():{reviewQueue:{length:0,dequeueCount:0,items:[]},newQueue:{length:0,dequeueCount:0,items:[]},failedQueue:{length:0,dequeueCount:0,items:[]},hydratedCache:{count:0,failedCacheSize:0,items:[]}}))}}});_();var je={class:`debug-section`},Me={class:`debug-header`},Ne={class:`debug-stats`},Pe={class:`text-caption`},Fe={class:`text-caption ml-2`},Ie={key:0,class:`debug-items`},Le={class:`text-caption`},Re={class:`text-caption text-grey ml-1`},ze={key:0,class:`text-caption text-grey`},Be={key:1,class:`text-caption text-grey`},Ve={class:`debug-section`},He={class:`debug-header`},Ue={class:`debug-stats`},We={class:`text-caption`},Ge={class:`text-caption ml-2`},Ke={key:0,class:`debug-items`},qe={class:`text-caption`},Je={class:`text-caption text-grey ml-1`},Ye={key:0,class:`text-caption text-grey`},Xe={key:1,class:`text-caption text-grey`},Ze={class:`debug-section`},Qe={class:`debug-header`},$e={class:`debug-stats`},et={class:`text-caption`},tt={class:`text-caption ml-2`},nt={key:0,class:`debug-items`},rt={class:`text-caption`},it={class:`text-caption text-grey ml-1`},at={key:0,class:`text-caption text-grey`},ot={key:1,class:`text-caption text-grey`},st={class:`debug-section`},ct={class:`debug-header`},lt={class:`debug-stats`},ut={class:`text-caption`},dt={class:`text-caption ml-2`},ft={key:0,class:`debug-items`},pt={class:`text-caption`},mt={key:0,class:`text-caption text-grey`},ht={key:1,class:`text-caption text-grey`};function _sfc_render$19(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-spacer`),c=(0,t.resolveComponent)(`v-icon`),l=(0,t.resolveComponent)(`v-card-title`),u=(0,t.resolveComponent)(`v-col`),d=(0,t.resolveComponent)(`v-row`),f=(0,t.resolveComponent)(`v-divider`),p=(0,t.resolveComponent)(`v-card-text`),m=(0,t.resolveComponent)(`v-card`);return e.sessionController?((0,t.openBlock)(),(0,t.createBlock)(m,{key:0,class:`session-debug ma-2`,elevation:`2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{class:`text-caption bg-grey-darken-3`},{default:(0,t.withCtx)(()=>[n[1]||(n[1]=(0,t.createTextVNode)(` Session Controller Debug `)),(0,t.createVNode)(s),(0,t.createVNode)(c,{size:`small`},{default:(0,t.withCtx)(()=>n[0]||(n[0]=[(0,t.createTextVNode)(`mdi-bug`)])),_:1})]),_:1}),(0,t.createVNode)(p,{class:`pa-2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(d,{dense:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,{cols:`12`,md:`4`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,je,[(0,t.createElementVNode)(`div`,Me,[(0,t.createVNode)(c,{size:`x-small`,class:`mr-1`},{default:(0,t.withCtx)(()=>n[2]||(n[2]=[(0,t.createTextVNode)(`mdi-calendar-check`)])),_:1}),n[3]||(n[3]=(0,t.createElementVNode)(`strong`,null,`Review Queue`,-1))]),(0,t.createElementVNode)(`div`,Ne,[(0,t.createElementVNode)(`span`,Pe,`Length: `+(0,t.toDisplayString)(e.debugInfo.reviewQueue.length),1),(0,t.createElementVNode)(`span`,Fe,`Dequeued: `+(0,t.toDisplayString)(e.debugInfo.reviewQueue.dequeueCount),1)]),e.debugInfo.reviewQueue.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ie,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.debugInfo.reviewQueue.items.slice(0,5),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:`debug-item`},[(0,t.createElementVNode)(`span`,Le,(0,t.toDisplayString)(n)+`: `+(0,t.toDisplayString)(e.courseID)+`::`+(0,t.toDisplayString)(e.cardID),1),(0,t.createElementVNode)(`span`,Re,`(`+(0,t.toDisplayString)(e.status)+`)`,1)]))),128)),e.debugInfo.reviewQueue.items.length>5?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ze,` ... +`+(0,t.toDisplayString)(e.debugInfo.reviewQueue.items.length-5)+` more `,1)):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Be,` (empty) `))])]),_:1}),(0,t.createVNode)(u,{cols:`12`,md:`4`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Ve,[(0,t.createElementVNode)(`div`,He,[(0,t.createVNode)(c,{size:`x-small`,class:`mr-1`},{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(`mdi-file-document-plus`)])),_:1}),n[5]||(n[5]=(0,t.createElementVNode)(`strong`,null,`New Cards Queue`,-1))]),(0,t.createElementVNode)(`div`,Ue,[(0,t.createElementVNode)(`span`,We,`Length: `+(0,t.toDisplayString)(e.debugInfo.newQueue.length),1),(0,t.createElementVNode)(`span`,Ge,`Dequeued: `+(0,t.toDisplayString)(e.debugInfo.newQueue.dequeueCount),1)]),e.debugInfo.newQueue.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ke,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.debugInfo.newQueue.items.slice(0,5),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:`debug-item`},[(0,t.createElementVNode)(`span`,qe,(0,t.toDisplayString)(n)+`: `+(0,t.toDisplayString)(e.courseID)+`::`+(0,t.toDisplayString)(e.cardID),1),(0,t.createElementVNode)(`span`,Je,`(`+(0,t.toDisplayString)(e.status)+`)`,1)]))),128)),e.debugInfo.newQueue.items.length>5?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ye,` ... +`+(0,t.toDisplayString)(e.debugInfo.newQueue.items.length-5)+` more `,1)):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Xe,` (empty) `))])]),_:1}),(0,t.createVNode)(u,{cols:`12`,md:`4`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Ze,[(0,t.createElementVNode)(`div`,Qe,[(0,t.createVNode)(c,{size:`x-small`,class:`mr-1`},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`mdi-alert-circle`)])),_:1}),n[7]||(n[7]=(0,t.createElementVNode)(`strong`,null,`Failed Cards Queue`,-1))]),(0,t.createElementVNode)(`div`,$e,[(0,t.createElementVNode)(`span`,et,`Length: `+(0,t.toDisplayString)(e.debugInfo.failedQueue.length),1),(0,t.createElementVNode)(`span`,tt,`Dequeued: `+(0,t.toDisplayString)(e.debugInfo.failedQueue.dequeueCount),1)]),e.debugInfo.failedQueue.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,nt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.debugInfo.failedQueue.items.slice(0,5),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:`debug-item`},[(0,t.createElementVNode)(`span`,rt,(0,t.toDisplayString)(n)+`: `+(0,t.toDisplayString)(e.courseID)+`::`+(0,t.toDisplayString)(e.cardID),1),(0,t.createElementVNode)(`span`,it,`(`+(0,t.toDisplayString)(e.status)+`)`,1)]))),128)),e.debugInfo.failedQueue.items.length>5?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,at,` ... +`+(0,t.toDisplayString)(e.debugInfo.failedQueue.items.length-5)+` more `,1)):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ot,` (empty) `))])]),_:1})]),_:1}),(0,t.createVNode)(d,{dense:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,{cols:`12`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(f,{class:`my-2`}),(0,t.createElementVNode)(`div`,st,[(0,t.createElementVNode)(`div`,ct,[(0,t.createVNode)(c,{size:`x-small`,class:`mr-1`},{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(`mdi-database`)])),_:1}),n[9]||(n[9]=(0,t.createElementVNode)(`strong`,null,`Hydrated Cards Cache`,-1))]),(0,t.createElementVNode)(`div`,lt,[(0,t.createElementVNode)(`span`,ut,`Cached: `+(0,t.toDisplayString)(e.debugInfo.hydratedCache.count),1),(0,t.createElementVNode)(`span`,dt,`Failed Cache: `+(0,t.toDisplayString)(e.debugInfo.hydratedCache.failedCacheSize),1)]),e.debugInfo.hydratedCache.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ft,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.debugInfo.hydratedCache.items.slice(0,8),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:`debug-item d-inline-block mr-3`},[(0,t.createElementVNode)(`span`,pt,(0,t.toDisplayString)(e.courseID)+`::`+(0,t.toDisplayString)(e.cardID),1)]))),128)),e.debugInfo.hydratedCache.items.length>8?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,mt,` ... +`+(0,t.toDisplayString)(e.debugInfo.hydratedCache.items.length-8)+` more `,1)):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ht,` (empty) `))])]),_:1})]),_:1})]),_:1})]),_:1})):(0,t.createCommentVNode)(``,!0)}__name(_sfc_render$19,`_sfc_render`);var gt=g(Ae,[[`render`,_sfc_render$19],[`__scopeId`,`data-v-1a6ac7a1`]]),_t={};(function main(e,t,n,r){var i=!!(e.Worker&&e.Blob&&e.Promise&&e.OffscreenCanvas&&e.OffscreenCanvasRenderingContext2D&&e.HTMLCanvasElement&&e.HTMLCanvasElement.prototype.transferControlToOffscreen&&e.URL&&e.URL.createObjectURL),a=typeof Path2D==`function`&&typeof DOMMatrix==`function`,o=(function(){if(!e.OffscreenCanvas)return!1;var t=new OffscreenCanvas(1,1),n=t.getContext(`2d`);n.fillRect(0,0,1,1);var r=t.transferToImageBitmap();try{n.createPattern(r,`no-repeat`)}catch{return!1}return!0})();function noop(){}function promise(n){var r=t.exports.Promise,i=r===void 0?e.Promise:r;return typeof i==`function`?new i(n):(n(noop,noop),null)}var s=(function(e,t){return{transform:function(n){if(e)return n;if(t.has(n))return t.get(n);var r=new OffscreenCanvas(n.width,n.height);return r.getContext(`2d`).drawImage(n,0,0),t.set(n,r),r},clear:function(){t.clear()}}})(o,new Map),c=function(){var e=16,frame,cancel,t={},n=0;return typeof requestAnimationFrame==`function`&&typeof cancelAnimationFrame==`function`?(frame=function(r){var i=Math.random();return t[i]=requestAnimationFrame(function onFrame(a){n===a||n+e-1<a?(n=a,delete t[i],r()):t[i]=requestAnimationFrame(onFrame)}),i},cancel=function(e){t[e]&&cancelAnimationFrame(t[e])}):(frame=function(t){return setTimeout(t,e)},cancel=function(e){return clearTimeout(e)}),{frame,cancel}}(),l=(function(){var e,t,r={};function decorate(e){function execute(t,n){e.postMessage({options:t||{},callback:n})}e.init=function initWorker(t){var n=t.transferControlToOffscreen();e.postMessage({canvas:n},[n])},e.fire=function fireWorker(n,i,a){if(t)return execute(n,null),t;var o=Math.random().toString(36).slice(2);return t=promise(function(i){function workerDone(n){n.data.callback===o&&(delete r[o],e.removeEventListener(`message`,workerDone),t=null,s.clear(),a(),i())}e.addEventListener(`message`,workerDone),execute(n,o),r[o]=workerDone.bind(null,{data:{callback:o}})}),t},e.reset=function resetWorker(){for(var t in e.postMessage({reset:!0}),r)r[t](),delete r[t]}}return function(){if(e)return e;if(!n&&i){var t=[`var CONFETTI, SIZE = {}, module = {};`,`(`+main.toString()+`)(this, module, true, SIZE);`,`onmessage = function(msg) {`,` if (msg.data.options) {`,` CONFETTI(msg.data.options).then(function () {`,` if (msg.data.callback) {`,` postMessage({ callback: msg.data.callback });`,` }`,` });`,` } else if (msg.data.reset) {`,` CONFETTI && CONFETTI.reset();`,` } else if (msg.data.resize) {`,` SIZE.width = msg.data.resize.width;`,` SIZE.height = msg.data.resize.height;`,` } else if (msg.data.canvas) {`,` SIZE.width = msg.data.canvas.width;`,` SIZE.height = msg.data.canvas.height;`,` CONFETTI = module.exports.create(msg.data.canvas);`,` }`,`}`].join(`
9
- `);try{e=new Worker(URL.createObjectURL(new Blob([t])))}catch(e){return typeof console.warn==`function`&&console.warn(`🎊 Could not load worker`,e),null}decorate(e)}return e}})(),u={particleCount:50,angle:90,spread:45,startVelocity:45,decay:.9,gravity:1,drift:0,ticks:200,x:.5,y:.5,shapes:[`square`,`circle`],zIndex:100,colors:[`#26ccff`,`#a25afd`,`#ff5e7e`,`#88ff5a`,`#fcff42`,`#ffa62d`,`#ff36ff`],disableForReducedMotion:!1,scalar:1};function convert(e,t){return t?t(e):e}function isOk(e){return e!=null}function prop(e,t,n){return convert(e&&isOk(e[t])?e[t]:u[t],n)}function onlyPositiveInt(e){return e<0?0:Math.floor(e)}function randomInt(e,t){return Math.floor(Math.random()*(t-e))+e}function toDecimal(e){return parseInt(e,16)}function colorsToRgb(e){return e.map(hexToRgb)}function hexToRgb(e){var t=String(e).replace(/[^0-9a-f]/gi,``);return t.length<6&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),{r:toDecimal(t.substring(0,2)),g:toDecimal(t.substring(2,4)),b:toDecimal(t.substring(4,6))}}function getOrigin(e){var t=prop(e,`origin`,Object);return t.x=prop(t,`x`,Number),t.y=prop(t,`y`,Number),t}function setCanvasWindowSize(e){e.width=document.documentElement.clientWidth,e.height=document.documentElement.clientHeight}function setCanvasRectSize(e){var t=e.getBoundingClientRect();e.width=t.width,e.height=t.height}function getCanvas(e){var t=document.createElement(`canvas`);return t.style.position=`fixed`,t.style.top=`0px`,t.style.left=`0px`,t.style.pointerEvents=`none`,t.style.zIndex=e,t}function ellipse(e,t,n,r,i,a,o,s,c){e.save(),e.translate(t,n),e.rotate(a),e.scale(r,i),e.arc(0,0,1,o,s,c),e.restore()}function randomPhysics(e){var t=e.angle*(Math.PI/180),n=e.spread*(Math.PI/180);return{x:e.x,y:e.y,wobble:Math.random()*10,wobbleSpeed:Math.min(.11,Math.random()*.1+.05),velocity:e.startVelocity*.5+Math.random()*e.startVelocity,angle2D:-t+(.5*n-Math.random()*n),tiltAngle:(Math.random()*.5+.25)*Math.PI,color:e.color,shape:e.shape,tick:0,totalTicks:e.ticks,decay:e.decay,drift:e.drift,random:Math.random()+2,tiltSin:0,tiltCos:0,wobbleX:0,wobbleY:0,gravity:e.gravity*3,ovalScalar:.6,scalar:e.scalar,flat:e.flat}}function updateFetti(e,t){t.x+=Math.cos(t.angle2D)*t.velocity+t.drift,t.y+=Math.sin(t.angle2D)*t.velocity+t.gravity,t.velocity*=t.decay,t.flat?(t.wobble=0,t.wobbleX=t.x+10*t.scalar,t.wobbleY=t.y+10*t.scalar,t.tiltSin=0,t.tiltCos=0,t.random=1):(t.wobble+=t.wobbleSpeed,t.wobbleX=t.x+10*t.scalar*Math.cos(t.wobble),t.wobbleY=t.y+10*t.scalar*Math.sin(t.wobble),t.tiltAngle+=.1,t.tiltSin=Math.sin(t.tiltAngle),t.tiltCos=Math.cos(t.tiltAngle),t.random=Math.random()+2);var n=t.tick++/t.totalTicks,r=t.x+t.random*t.tiltCos,i=t.y+t.random*t.tiltSin,o=t.wobbleX+t.random*t.tiltCos,c=t.wobbleY+t.random*t.tiltSin;if(e.fillStyle=`rgba(`+t.color.r+`, `+t.color.g+`, `+t.color.b+`, `+(1-n)+`)`,e.beginPath(),a&&t.shape.type===`path`&&typeof t.shape.path==`string`&&Array.isArray(t.shape.matrix))e.fill(transformPath2D(t.shape.path,t.shape.matrix,t.x,t.y,Math.abs(o-r)*.1,Math.abs(c-i)*.1,Math.PI/10*t.wobble));else if(t.shape.type===`bitmap`){var l=Math.PI/10*t.wobble,u=Math.abs(o-r)*.1,d=Math.abs(c-i)*.1,f=t.shape.bitmap.width*t.scalar,p=t.shape.bitmap.height*t.scalar,m=new DOMMatrix([Math.cos(l)*u,Math.sin(l)*u,-Math.sin(l)*d,Math.cos(l)*d,t.x,t.y]);m.multiplySelf(new DOMMatrix(t.shape.matrix));var h=e.createPattern(s.transform(t.shape.bitmap),`no-repeat`);h.setTransform(m),e.globalAlpha=1-n,e.fillStyle=h,e.fillRect(t.x-f/2,t.y-p/2,f,p),e.globalAlpha=1}else if(t.shape===`circle`)e.ellipse?e.ellipse(t.x,t.y,Math.abs(o-r)*t.ovalScalar,Math.abs(c-i)*t.ovalScalar,Math.PI/10*t.wobble,0,2*Math.PI):ellipse(e,t.x,t.y,Math.abs(o-r)*t.ovalScalar,Math.abs(c-i)*t.ovalScalar,Math.PI/10*t.wobble,0,2*Math.PI);else if(t.shape===`star`)for(var g=Math.PI/2*3,_=4*t.scalar,v=8*t.scalar,y=t.x,b=t.y,x=5,S=Math.PI/x;x--;)y=t.x+Math.cos(g)*v,b=t.y+Math.sin(g)*v,e.lineTo(y,b),g+=S,y=t.x+Math.cos(g)*_,b=t.y+Math.sin(g)*_,e.lineTo(y,b),g+=S;else e.moveTo(Math.floor(t.x),Math.floor(t.y)),e.lineTo(Math.floor(t.wobbleX),Math.floor(i)),e.lineTo(Math.floor(o),Math.floor(c)),e.lineTo(Math.floor(r),Math.floor(t.wobbleY));return e.closePath(),e.fill(),t.tick<t.totalTicks}function animate(e,t,i,a,o){var l=t.slice(),u=e.getContext(`2d`),d,f,p=promise(function(t){function onDone(){d=f=null,u.clearRect(0,0,a.width,a.height),s.clear(),o(),t()}function update(){n&&!(a.width===r.width&&a.height===r.height)&&(a.width=e.width=r.width,a.height=e.height=r.height),!a.width&&!a.height&&(i(e),a.width=e.width,a.height=e.height),u.clearRect(0,0,a.width,a.height),l=l.filter(function(e){return updateFetti(u,e)}),l.length?d=c.frame(update):onDone()}d=c.frame(update),f=onDone});return{addFettis:function(e){return l=l.concat(e),p},canvas:e,promise:p,reset:function(){d&&c.cancel(d),f&&f()}}}function confettiCannon(t,n){var r=!t,a=!!prop(n||{},`resize`),o=!1,s=prop(n,`disableForReducedMotion`,Boolean),c=i&&prop(n||{},`useWorker`)?l():null,u=r?setCanvasWindowSize:setCanvasRectSize,d=t&&c?!!t.__confetti_initialized:!1,f=typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion)`).matches,p;function fireLocal(e,n,r){for(var i=prop(e,`particleCount`,onlyPositiveInt),a=prop(e,`angle`,Number),o=prop(e,`spread`,Number),s=prop(e,`startVelocity`,Number),c=prop(e,`decay`,Number),l=prop(e,`gravity`,Number),d=prop(e,`drift`,Number),f=prop(e,`colors`,colorsToRgb),m=prop(e,`ticks`,Number),h=prop(e,`shapes`),g=prop(e,`scalar`),_=!!prop(e,`flat`),v=getOrigin(e),y=i,b=[],x=t.width*v.x,S=t.height*v.y;y--;)b.push(randomPhysics({x,y:S,angle:a,spread:o,startVelocity:s,color:f[y%f.length],shape:h[randomInt(0,h.length)],ticks:m,decay:c,gravity:l,drift:d,scalar:g,flat:_}));return p?p.addFettis(b):(p=animate(t,b,u,n,r),p.promise)}function fire(n){var i=s||prop(n,`disableForReducedMotion`,Boolean),l=prop(n,`zIndex`,Number);if(i&&f)return promise(function(e){e()});r&&p?t=p.canvas:r&&!t&&(t=getCanvas(l),document.body.appendChild(t)),a&&!d&&u(t);var m={width:t.width,height:t.height};c&&!d&&c.init(t),d=!0,c&&(t.__confetti_initialized=!0);function onResize(){if(c){var e={getBoundingClientRect:function(){if(!r)return t.getBoundingClientRect()}};u(e),c.postMessage({resize:{width:e.width,height:e.height}});return}m.width=m.height=null}function done(){p=null,a&&(o=!1,e.removeEventListener(`resize`,onResize)),r&&t&&(document.body.contains(t)&&document.body.removeChild(t),t=null,d=!1)}return a&&!o&&(o=!0,e.addEventListener(`resize`,onResize,!1)),c?c.fire(n,m,done):fireLocal(n,m,done)}return fire.reset=function(){c&&c.reset(),p&&p.reset()},fire}var d;function getDefaultFire(){return d||(d=confettiCannon(null,{useWorker:!0,resize:!0})),d}function transformPath2D(e,t,n,r,i,a,o){var s=new Path2D(e),c=new Path2D;c.addPath(s,new DOMMatrix(t));var l=new Path2D;return l.addPath(c,new DOMMatrix([Math.cos(o)*i,Math.sin(o)*i,-Math.sin(o)*a,Math.cos(o)*a,n,r])),l}function shapeFromPath(e){if(!a)throw Error(`path confetti are not supported in this browser`);var t,n;typeof e==`string`?t=e:(t=e.path,n=e.matrix);var r=new Path2D(t),i=document.createElement(`canvas`).getContext(`2d`);if(!n){for(var o=1e3,s=o,c=o,l=0,u=0,d,f,p=0;p<o;p+=2)for(var m=0;m<o;m+=2)i.isPointInPath(r,p,m,`nonzero`)&&(s=Math.min(s,p),c=Math.min(c,m),l=Math.max(l,p),u=Math.max(u,m));d=l-s,f=u-c;var h=10,g=Math.min(h/d,h/f);n=[g,0,0,g,-Math.round(d/2+s)*g,-Math.round(f/2+c)*g]}return{type:`path`,path:t,matrix:n}}function shapeFromText(e){var t,n=1,r=`#000000`,i=`"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "EmojiOne Color", "Android Emoji", "Twemoji Mozilla", "system emoji", sans-serif`;typeof e==`string`?t=e:(t=e.text,n=`scalar`in e?e.scalar:n,i=`fontFamily`in e?e.fontFamily:i,r=`color`in e?e.color:r);var a=10*n,o=``+a+`px `+i,s=new OffscreenCanvas(a,a),c=s.getContext(`2d`);c.font=o;var l=c.measureText(t),u=Math.ceil(l.actualBoundingBoxRight+l.actualBoundingBoxLeft),d=Math.ceil(l.actualBoundingBoxAscent+l.actualBoundingBoxDescent),f=2,p=l.actualBoundingBoxLeft+f,m=l.actualBoundingBoxAscent+f;u+=f+f,d+=f+f,s=new OffscreenCanvas(u,d),c=s.getContext(`2d`),c.font=o,c.fillStyle=r,c.fillText(t,p,m);var h=1/n;return{type:`bitmap`,bitmap:s.transferToImageBitmap(),matrix:[h,0,0,h,-u*h/2,-d*h/2]}}t.exports=function(){return getDefaultFire().apply(this,arguments)},t.exports.reset=function(){getDefaultFire().reset()},t.exports.create=confettiCannon,t.exports.shapeFromPath=shapeFromPath,t.exports.shapeFromText=shapeFromText})((function(){return typeof window<`u`?window:typeof self<`u`?self:this||{}})(),_t,!1);var vt=_t.exports;_t.exports.create;var yt=(0,t.defineComponent)({name:`StudySession`,ref:{},components:{CardViewer:P,StudySessionTimer:Oe,SkMouseTrap:j,HeatMap:x,SessionControllerDebug:gt},props:{sessionTimeLimit:{type:Number,required:!0},contentSources:{type:Array,required:!0},user:{type:Object,required:!0},dataLayer:{type:Object,required:!0},sessionConfig:{type:Object,default:()=>({likesConfetti:!1})},getViewComponent:{type:Function,required:!0},frameless:{type:Boolean,default:!1},hideFooter:{type:Boolean,default:!1},transitionName:{type:String,default:`component-fade`},transitionMode:{type:String,default:`out-in`}},emits:[`session-finished`,`session-started`,`card-loaded`,`card-response`,`time-changed`,`session-prepared`,`session-error`,`replan-requested`],data(){return{cardID:``,view:null,data:[],courseID:``,card_elo:1e3,courseNames:{},cardCount:1,sessionController:null,sessionPrepared:!1,sessionFinished:!1,sessionRecord:[],percentageRemaining:100,timerIsActive:!0,loading:!1,userCourseRegDoc:null,sessionContentSources:[],timeRemaining:300,replanPending:!1,replanOptions:null,deferredNextCardAction:null,intervalHandler:null,cardType:``,debugMode:window.debugMode===!0}},computed:{currentCard(){return this.sessionRecord[this.sessionRecord.length-1]}},async created(){this.userCourseRegDoc=await this.user.getCourseRegistrationsDoc(),console.log(`[StudySession] Created lifecycle hook - starting initSession`),await this.initSession(),console.log(`[StudySession] InitSession completed in created hook`)},errorCaptured(e,t,n){return console.error(`[StudySession] Card render error (${n}), skipping card "${this.cardID}":`,e),this.sessionController&&this.sessionController.nextCard().then(e=>this.loadCard(e)),!1},methods:{async handleReadyToAdvance(){let e=this.deferredNextCardAction;if(!e){console.warn(`[StudySession] ready-to-advance received but no deferred action stashed — ignoring`);return}console.log(`[StudySession] ready-to-advance received — advancing with stashed action: ${e}`),this.deferredNextCardAction=null,this.loadCard(await this.sessionController.nextCard(e))},handleReplanRequest(e){if(this.sessionController){let t=e?.label,n=t?` [${t}]`:``;console.log(`[StudySession] Replan requested by card view${n}, deferring until after response processing`),this.replanPending=!0,this.replanOptions=e??null}},user_elo(e){let t=this.userCourseRegDoc.courses.find(t=>t.courseID===e);return t?(0,r.toCourseElo)(t.elo):(0,r.toCourseElo)(void 0)},handleClassroomMessage(){return e=>(N({text:this.user?.getUsername()||`[Unknown user]`,status:r.Status.ok}),console.log(`[StudySession] There was a change in the classroom DB:`),console.log(`[StudySession] change: ${e}`),console.log(`[StudySession] Stringified change: ${JSON.stringify(e)}`),{})},incrementSessionClock(){let e=60*this.sessionTimeLimit-this.timeRemaining;this.sessionController.addTime(Math.min(e,60)),this.tick()},tick(){this.timeRemaining=this.sessionController.secondsRemaining,this.percentageRemaining=this.timeRemaining>60?100*(this.timeRemaining/(60*this.sessionTimeLimit)):100*(this.timeRemaining/60),this.$emit(`time-changed`,this.timeRemaining),this.timeRemaining===0&&clearInterval(this.intervalHandler)},async initSession(){let e=[];try{console.log(`[StudySession] starting study session w/ sources: ${JSON.stringify(this.contentSources)}`),console.log(`[StudySession] Beginning preparation process`),this.sessionContentSources=(0,t.markRaw)((await Promise.all(this.contentSources.map(async e=>{try{return await(0,i.getStudySource)(e,this.user)}catch(t){return console.error(`Failed to load study source: ${e.type}/${e.id}`,t),null}}))).filter(e=>e!==null)),this.timeRemaining=this.sessionTimeLimit*60,e=await Promise.all(this.contentSources.filter(e=>e.type===`classroom`).map(async e=>await this.dataLayer.getClassroomDB(e.id,`student`))),e.forEach(e=>{});let n={};this.sessionConfig?.defaultBatchLimit!==void 0&&(n.defaultBatchLimit=this.sessionConfig.defaultBatchLimit),this.sessionConfig?.initialReviewCap!==void 0&&(n.initialReviewCap=this.sessionConfig.initialReviewCap),this.sessionConfig?.outcomeObservers?.length&&(n.outcomeObservers=this.sessionConfig.outcomeObservers),this.sessionController=(0,t.markRaw)(new i.SessionController(this.sessionContentSources,60*this.sessionTimeLimit,this.dataLayer,this.getViewComponent,void 0,n)),this.sessionController.sessionRecord=this.sessionRecord,this.sessionConfig?.initHints&&(this.sessionController.setSessionHints(this.sessionConfig.initHints),console.log(`[StudySession] Applied init hints as session-durable hints`)),await this.sessionController.prepareSession(),this.intervalHandler=setInterval(this.tick,1e3),this.sessionPrepared=!0,console.log(`[StudySession] Session preparation complete, emitting session-prepared event`),this.$emit(`session-prepared`),console.log(`[StudySession] Event emission completed`)}catch(e){console.error(`[StudySession] Error during session preparation:`,e),this.$emit(`session-error`,{message:`Failed to prepare study session`,error:e})}try{this.contentSources.filter(e=>e.type===`course`).forEach(async e=>this.courseNames[e.id]=(await this.dataLayer.getCoursesDB().getCourseConfig(e.id)).name),console.log(`[StudySession] Session created:
8
+ `),this.$emit(`emitResponse`,e)}}});_();function _sfc_render$20(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card`);return e.frameless?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.view),{ref:`activeView`,key:e.course_id+`-`+e.card_id+`-`+e.sessionOrder,data:e.data,"modify-difficulty":e.user_elo.global.score-e.card_elo,class:`cardView`,onEmitResponse:n[0]||(n[0]=t=>e.processResponse(t)),onRequestReplan:n[1]||(n[1]=t=>e.$emit(`requestReplan`,t)),onReadyToAdvance:n[2]||(n[2]=t=>e.$emit(`readyToAdvance`))},null,40,[`data`,`modify-difficulty`])):((0,t.openBlock)(),(0,t.createBlock)(s,{key:1,elevation:`12`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.view),{ref:`activeView`,key:e.course_id+`-`+e.card_id+`-`+e.sessionOrder,data:e.data,"modify-difficulty":e.user_elo.global.score-e.card_elo,class:`cardView ma-2 pa-2`,onEmitResponse:n[3]||(n[3]=t=>e.processResponse(t)),onRequestReplan:n[4]||(n[4]=t=>e.$emit(`requestReplan`,t)),onReadyToAdvance:n[5]||(n[5]=t=>e.$emit(`readyToAdvance`))},null,40,[`data`,`modify-difficulty`]))]),_:1}))}__name(_sfc_render$20,`_sfc_render`);var Ae=g(ke,[[`render`,_sfc_render$20],[`__scopeId`,`data-v-2d892b82`]]),je=(0,t.defineComponent)({name:`SessionControllerDebug`,props:{sessionController:{type:Object,required:!0}},setup(e){let n=(0,t.ref)(0),r=null;(0,t.onMounted)(()=>{r=setInterval(()=>{n.value++},500)}),(0,t.onUnmounted)(()=>{r&&clearInterval(r)});let i=(0,t.computed)(()=>(n.value,e.sessionController?e.sessionController.getDebugInfo():{supplyQueue:{length:0,dequeueCount:0,items:[]},failedQueue:{length:0,dequeueCount:0,items:[]},hydratedCache:{count:0,failedCacheSize:0,items:[]}})),fmtScore=e=>e===void 0?``:Number.isFinite(e)?e.toFixed(2):`REQ`;return{debugInfo:i,fmtScore}}});_();var Me={class:`debug-section`},Ne={class:`debug-header`},Pe={class:`debug-stats`},Fe={class:`text-caption`},Ie={class:`text-caption ml-2`},Le={key:0,class:`debug-items`},Re={class:`text-caption`},ze={class:`text-caption text-grey ml-1`},Be={class:`text-caption ml-1`,style:{color:`#90caf9`}},Ve={key:0,class:`text-caption text-grey`},He={key:1,class:`text-caption text-grey`},Ue={class:`debug-section`},We={class:`debug-header`},Ge={class:`debug-stats`},Ke={class:`text-caption`},qe={class:`text-caption ml-2`},Je={key:0,class:`debug-items`},Ye={class:`text-caption`},Xe={class:`text-caption text-grey ml-1`},Ze={key:0,class:`text-caption text-grey`},Qe={key:1,class:`text-caption text-grey`},$e={class:`debug-section`},et={class:`debug-header`},tt={class:`debug-stats`},nt={class:`text-caption`},rt={class:`text-caption ml-2`},it={key:0,class:`debug-items`},at={class:`text-caption`},ot={key:0,class:`text-caption text-grey`},st={key:1,class:`text-caption text-grey`};function _sfc_render$19(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-spacer`),c=(0,t.resolveComponent)(`v-icon`),l=(0,t.resolveComponent)(`v-card-title`),u=(0,t.resolveComponent)(`v-col`),d=(0,t.resolveComponent)(`v-row`),f=(0,t.resolveComponent)(`v-divider`),p=(0,t.resolveComponent)(`v-card-text`),m=(0,t.resolveComponent)(`v-card`);return e.sessionController?((0,t.openBlock)(),(0,t.createBlock)(m,{key:0,class:`session-debug ma-2`,elevation:`2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{class:`text-caption bg-grey-darken-3`},{default:(0,t.withCtx)(()=>[n[1]||(n[1]=(0,t.createTextVNode)(` Session Controller Debug `)),(0,t.createVNode)(s),(0,t.createVNode)(c,{size:`small`},{default:(0,t.withCtx)(()=>n[0]||(n[0]=[(0,t.createTextVNode)(`mdi-bug`)])),_:1})]),_:1}),(0,t.createVNode)(p,{class:`pa-2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(d,{dense:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,{cols:`12`,md:`8`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Me,[(0,t.createElementVNode)(`div`,Ne,[(0,t.createVNode)(c,{size:`x-small`,class:`mr-1`},{default:(0,t.withCtx)(()=>n[2]||(n[2]=[(0,t.createTextVNode)(`mdi-sort`)])),_:1}),n[3]||(n[3]=(0,t.createElementVNode)(`strong`,null,`Supply Queue`,-1))]),(0,t.createElementVNode)(`div`,Pe,[(0,t.createElementVNode)(`span`,Fe,`Length: `+(0,t.toDisplayString)(e.debugInfo.supplyQueue.length),1),(0,t.createElementVNode)(`span`,Ie,`Dequeued: `+(0,t.toDisplayString)(e.debugInfo.supplyQueue.dequeueCount),1)]),e.debugInfo.supplyQueue.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Le,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.debugInfo.supplyQueue.items.slice(0,8),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:r,class:`debug-item`},[(0,t.createElementVNode)(`span`,Re,(0,t.toDisplayString)(r)+`: `+(0,t.toDisplayString)(n.courseID)+`::`+(0,t.toDisplayString)(n.cardID),1),(0,t.createElementVNode)(`span`,ze,`(`+(0,t.toDisplayString)(n.status)+`)`,1),(0,t.createElementVNode)(`span`,Be,(0,t.toDisplayString)(e.fmtScore(n.score)),1)]))),128)),e.debugInfo.supplyQueue.items.length>8?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ve,` ... +`+(0,t.toDisplayString)(e.debugInfo.supplyQueue.items.length-8)+` more `,1)):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,He,` (empty) `))])]),_:1}),(0,t.createVNode)(u,{cols:`12`,md:`4`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Ue,[(0,t.createElementVNode)(`div`,We,[(0,t.createVNode)(c,{size:`x-small`,class:`mr-1`},{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(`mdi-alert-circle`)])),_:1}),n[5]||(n[5]=(0,t.createElementVNode)(`strong`,null,`Failed Cards Queue`,-1))]),(0,t.createElementVNode)(`div`,Ge,[(0,t.createElementVNode)(`span`,Ke,`Length: `+(0,t.toDisplayString)(e.debugInfo.failedQueue.length),1),(0,t.createElementVNode)(`span`,qe,`Dequeued: `+(0,t.toDisplayString)(e.debugInfo.failedQueue.dequeueCount),1)]),e.debugInfo.failedQueue.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Je,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.debugInfo.failedQueue.items.slice(0,5),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:`debug-item`},[(0,t.createElementVNode)(`span`,Ye,(0,t.toDisplayString)(n)+`: `+(0,t.toDisplayString)(e.courseID)+`::`+(0,t.toDisplayString)(e.cardID),1),(0,t.createElementVNode)(`span`,Xe,`(`+(0,t.toDisplayString)(e.status)+`)`,1)]))),128)),e.debugInfo.failedQueue.items.length>5?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ze,` ... +`+(0,t.toDisplayString)(e.debugInfo.failedQueue.items.length-5)+` more `,1)):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Qe,` (empty) `))])]),_:1})]),_:1}),(0,t.createVNode)(d,{dense:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,{cols:`12`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(f,{class:`my-2`}),(0,t.createElementVNode)(`div`,$e,[(0,t.createElementVNode)(`div`,et,[(0,t.createVNode)(c,{size:`x-small`,class:`mr-1`},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`mdi-database`)])),_:1}),n[7]||(n[7]=(0,t.createElementVNode)(`strong`,null,`Hydrated Cards Cache`,-1))]),(0,t.createElementVNode)(`div`,tt,[(0,t.createElementVNode)(`span`,nt,`Cached: `+(0,t.toDisplayString)(e.debugInfo.hydratedCache.count),1),(0,t.createElementVNode)(`span`,rt,`Failed Cache: `+(0,t.toDisplayString)(e.debugInfo.hydratedCache.failedCacheSize),1)]),e.debugInfo.hydratedCache.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,it,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.debugInfo.hydratedCache.items.slice(0,8),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:`debug-item d-inline-block mr-3`},[(0,t.createElementVNode)(`span`,at,(0,t.toDisplayString)(e.courseID)+`::`+(0,t.toDisplayString)(e.cardID),1)]))),128)),e.debugInfo.hydratedCache.items.length>8?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ot,` ... +`+(0,t.toDisplayString)(e.debugInfo.hydratedCache.items.length-8)+` more `,1)):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,st,` (empty) `))])]),_:1})]),_:1})]),_:1})]),_:1})):(0,t.createCommentVNode)(``,!0)}__name(_sfc_render$19,`_sfc_render`);var ct=g(je,[[`render`,_sfc_render$19],[`__scopeId`,`data-v-641ac170`]]),lt={};(function main(e,t,n,r){var i=!!(e.Worker&&e.Blob&&e.Promise&&e.OffscreenCanvas&&e.OffscreenCanvasRenderingContext2D&&e.HTMLCanvasElement&&e.HTMLCanvasElement.prototype.transferControlToOffscreen&&e.URL&&e.URL.createObjectURL),a=typeof Path2D==`function`&&typeof DOMMatrix==`function`,o=(function(){if(!e.OffscreenCanvas)return!1;var t=new OffscreenCanvas(1,1),n=t.getContext(`2d`);n.fillRect(0,0,1,1);var r=t.transferToImageBitmap();try{n.createPattern(r,`no-repeat`)}catch{return!1}return!0})();function noop(){}function promise(n){var r=t.exports.Promise,i=r===void 0?e.Promise:r;return typeof i==`function`?new i(n):(n(noop,noop),null)}var s=(function(e,t){return{transform:function(n){if(e)return n;if(t.has(n))return t.get(n);var r=new OffscreenCanvas(n.width,n.height);return r.getContext(`2d`).drawImage(n,0,0),t.set(n,r),r},clear:function(){t.clear()}}})(o,new Map),c=function(){var e=16,frame,cancel,t={},n=0;return typeof requestAnimationFrame==`function`&&typeof cancelAnimationFrame==`function`?(frame=function(r){var i=Math.random();return t[i]=requestAnimationFrame(function onFrame(a){n===a||n+e-1<a?(n=a,delete t[i],r()):t[i]=requestAnimationFrame(onFrame)}),i},cancel=function(e){t[e]&&cancelAnimationFrame(t[e])}):(frame=function(t){return setTimeout(t,e)},cancel=function(e){return clearTimeout(e)}),{frame,cancel}}(),l=(function(){var e,t,r={};function decorate(e){function execute(t,n){e.postMessage({options:t||{},callback:n})}e.init=function initWorker(t){var n=t.transferControlToOffscreen();e.postMessage({canvas:n},[n])},e.fire=function fireWorker(n,i,a){if(t)return execute(n,null),t;var o=Math.random().toString(36).slice(2);return t=promise(function(i){function workerDone(n){n.data.callback===o&&(delete r[o],e.removeEventListener(`message`,workerDone),t=null,s.clear(),a(),i())}e.addEventListener(`message`,workerDone),execute(n,o),r[o]=workerDone.bind(null,{data:{callback:o}})}),t},e.reset=function resetWorker(){for(var t in e.postMessage({reset:!0}),r)r[t](),delete r[t]}}return function(){if(e)return e;if(!n&&i){var t=[`var CONFETTI, SIZE = {}, module = {};`,`(`+main.toString()+`)(this, module, true, SIZE);`,`onmessage = function(msg) {`,` if (msg.data.options) {`,` CONFETTI(msg.data.options).then(function () {`,` if (msg.data.callback) {`,` postMessage({ callback: msg.data.callback });`,` }`,` });`,` } else if (msg.data.reset) {`,` CONFETTI && CONFETTI.reset();`,` } else if (msg.data.resize) {`,` SIZE.width = msg.data.resize.width;`,` SIZE.height = msg.data.resize.height;`,` } else if (msg.data.canvas) {`,` SIZE.width = msg.data.canvas.width;`,` SIZE.height = msg.data.canvas.height;`,` CONFETTI = module.exports.create(msg.data.canvas);`,` }`,`}`].join(`
9
+ `);try{e=new Worker(URL.createObjectURL(new Blob([t])))}catch(e){return typeof console.warn==`function`&&console.warn(`🎊 Could not load worker`,e),null}decorate(e)}return e}})(),u={particleCount:50,angle:90,spread:45,startVelocity:45,decay:.9,gravity:1,drift:0,ticks:200,x:.5,y:.5,shapes:[`square`,`circle`],zIndex:100,colors:[`#26ccff`,`#a25afd`,`#ff5e7e`,`#88ff5a`,`#fcff42`,`#ffa62d`,`#ff36ff`],disableForReducedMotion:!1,scalar:1};function convert(e,t){return t?t(e):e}function isOk(e){return e!=null}function prop(e,t,n){return convert(e&&isOk(e[t])?e[t]:u[t],n)}function onlyPositiveInt(e){return e<0?0:Math.floor(e)}function randomInt(e,t){return Math.floor(Math.random()*(t-e))+e}function toDecimal(e){return parseInt(e,16)}function colorsToRgb(e){return e.map(hexToRgb)}function hexToRgb(e){var t=String(e).replace(/[^0-9a-f]/gi,``);return t.length<6&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),{r:toDecimal(t.substring(0,2)),g:toDecimal(t.substring(2,4)),b:toDecimal(t.substring(4,6))}}function getOrigin(e){var t=prop(e,`origin`,Object);return t.x=prop(t,`x`,Number),t.y=prop(t,`y`,Number),t}function setCanvasWindowSize(e){e.width=document.documentElement.clientWidth,e.height=document.documentElement.clientHeight}function setCanvasRectSize(e){var t=e.getBoundingClientRect();e.width=t.width,e.height=t.height}function getCanvas(e){var t=document.createElement(`canvas`);return t.style.position=`fixed`,t.style.top=`0px`,t.style.left=`0px`,t.style.pointerEvents=`none`,t.style.zIndex=e,t}function ellipse(e,t,n,r,i,a,o,s,c){e.save(),e.translate(t,n),e.rotate(a),e.scale(r,i),e.arc(0,0,1,o,s,c),e.restore()}function randomPhysics(e){var t=e.angle*(Math.PI/180),n=e.spread*(Math.PI/180);return{x:e.x,y:e.y,wobble:Math.random()*10,wobbleSpeed:Math.min(.11,Math.random()*.1+.05),velocity:e.startVelocity*.5+Math.random()*e.startVelocity,angle2D:-t+(.5*n-Math.random()*n),tiltAngle:(Math.random()*.5+.25)*Math.PI,color:e.color,shape:e.shape,tick:0,totalTicks:e.ticks,decay:e.decay,drift:e.drift,random:Math.random()+2,tiltSin:0,tiltCos:0,wobbleX:0,wobbleY:0,gravity:e.gravity*3,ovalScalar:.6,scalar:e.scalar,flat:e.flat}}function updateFetti(e,t){t.x+=Math.cos(t.angle2D)*t.velocity+t.drift,t.y+=Math.sin(t.angle2D)*t.velocity+t.gravity,t.velocity*=t.decay,t.flat?(t.wobble=0,t.wobbleX=t.x+10*t.scalar,t.wobbleY=t.y+10*t.scalar,t.tiltSin=0,t.tiltCos=0,t.random=1):(t.wobble+=t.wobbleSpeed,t.wobbleX=t.x+10*t.scalar*Math.cos(t.wobble),t.wobbleY=t.y+10*t.scalar*Math.sin(t.wobble),t.tiltAngle+=.1,t.tiltSin=Math.sin(t.tiltAngle),t.tiltCos=Math.cos(t.tiltAngle),t.random=Math.random()+2);var n=t.tick++/t.totalTicks,r=t.x+t.random*t.tiltCos,i=t.y+t.random*t.tiltSin,o=t.wobbleX+t.random*t.tiltCos,c=t.wobbleY+t.random*t.tiltSin;if(e.fillStyle=`rgba(`+t.color.r+`, `+t.color.g+`, `+t.color.b+`, `+(1-n)+`)`,e.beginPath(),a&&t.shape.type===`path`&&typeof t.shape.path==`string`&&Array.isArray(t.shape.matrix))e.fill(transformPath2D(t.shape.path,t.shape.matrix,t.x,t.y,Math.abs(o-r)*.1,Math.abs(c-i)*.1,Math.PI/10*t.wobble));else if(t.shape.type===`bitmap`){var l=Math.PI/10*t.wobble,u=Math.abs(o-r)*.1,d=Math.abs(c-i)*.1,f=t.shape.bitmap.width*t.scalar,p=t.shape.bitmap.height*t.scalar,m=new DOMMatrix([Math.cos(l)*u,Math.sin(l)*u,-Math.sin(l)*d,Math.cos(l)*d,t.x,t.y]);m.multiplySelf(new DOMMatrix(t.shape.matrix));var h=e.createPattern(s.transform(t.shape.bitmap),`no-repeat`);h.setTransform(m),e.globalAlpha=1-n,e.fillStyle=h,e.fillRect(t.x-f/2,t.y-p/2,f,p),e.globalAlpha=1}else if(t.shape===`circle`)e.ellipse?e.ellipse(t.x,t.y,Math.abs(o-r)*t.ovalScalar,Math.abs(c-i)*t.ovalScalar,Math.PI/10*t.wobble,0,2*Math.PI):ellipse(e,t.x,t.y,Math.abs(o-r)*t.ovalScalar,Math.abs(c-i)*t.ovalScalar,Math.PI/10*t.wobble,0,2*Math.PI);else if(t.shape===`star`)for(var g=Math.PI/2*3,_=4*t.scalar,v=8*t.scalar,y=t.x,b=t.y,x=5,S=Math.PI/x;x--;)y=t.x+Math.cos(g)*v,b=t.y+Math.sin(g)*v,e.lineTo(y,b),g+=S,y=t.x+Math.cos(g)*_,b=t.y+Math.sin(g)*_,e.lineTo(y,b),g+=S;else e.moveTo(Math.floor(t.x),Math.floor(t.y)),e.lineTo(Math.floor(t.wobbleX),Math.floor(i)),e.lineTo(Math.floor(o),Math.floor(c)),e.lineTo(Math.floor(r),Math.floor(t.wobbleY));return e.closePath(),e.fill(),t.tick<t.totalTicks}function animate(e,t,i,a,o){var l=t.slice(),u=e.getContext(`2d`),d,f,p=promise(function(t){function onDone(){d=f=null,u.clearRect(0,0,a.width,a.height),s.clear(),o(),t()}function update(){n&&!(a.width===r.width&&a.height===r.height)&&(a.width=e.width=r.width,a.height=e.height=r.height),!a.width&&!a.height&&(i(e),a.width=e.width,a.height=e.height),u.clearRect(0,0,a.width,a.height),l=l.filter(function(e){return updateFetti(u,e)}),l.length?d=c.frame(update):onDone()}d=c.frame(update),f=onDone});return{addFettis:function(e){return l=l.concat(e),p},canvas:e,promise:p,reset:function(){d&&c.cancel(d),f&&f()}}}function confettiCannon(t,n){var r=!t,a=!!prop(n||{},`resize`),o=!1,s=prop(n,`disableForReducedMotion`,Boolean),c=i&&prop(n||{},`useWorker`)?l():null,u=r?setCanvasWindowSize:setCanvasRectSize,d=t&&c?!!t.__confetti_initialized:!1,f=typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion)`).matches,p;function fireLocal(e,n,r){for(var i=prop(e,`particleCount`,onlyPositiveInt),a=prop(e,`angle`,Number),o=prop(e,`spread`,Number),s=prop(e,`startVelocity`,Number),c=prop(e,`decay`,Number),l=prop(e,`gravity`,Number),d=prop(e,`drift`,Number),f=prop(e,`colors`,colorsToRgb),m=prop(e,`ticks`,Number),h=prop(e,`shapes`),g=prop(e,`scalar`),_=!!prop(e,`flat`),v=getOrigin(e),y=i,b=[],x=t.width*v.x,S=t.height*v.y;y--;)b.push(randomPhysics({x,y:S,angle:a,spread:o,startVelocity:s,color:f[y%f.length],shape:h[randomInt(0,h.length)],ticks:m,decay:c,gravity:l,drift:d,scalar:g,flat:_}));return p?p.addFettis(b):(p=animate(t,b,u,n,r),p.promise)}function fire(n){var i=s||prop(n,`disableForReducedMotion`,Boolean),l=prop(n,`zIndex`,Number);if(i&&f)return promise(function(e){e()});r&&p?t=p.canvas:r&&!t&&(t=getCanvas(l),document.body.appendChild(t)),a&&!d&&u(t);var m={width:t.width,height:t.height};c&&!d&&c.init(t),d=!0,c&&(t.__confetti_initialized=!0);function onResize(){if(c){var e={getBoundingClientRect:function(){if(!r)return t.getBoundingClientRect()}};u(e),c.postMessage({resize:{width:e.width,height:e.height}});return}m.width=m.height=null}function done(){p=null,a&&(o=!1,e.removeEventListener(`resize`,onResize)),r&&t&&(document.body.contains(t)&&document.body.removeChild(t),t=null,d=!1)}return a&&!o&&(o=!0,e.addEventListener(`resize`,onResize,!1)),c?c.fire(n,m,done):fireLocal(n,m,done)}return fire.reset=function(){c&&c.reset(),p&&p.reset()},fire}var d;function getDefaultFire(){return d||(d=confettiCannon(null,{useWorker:!0,resize:!0})),d}function transformPath2D(e,t,n,r,i,a,o){var s=new Path2D(e),c=new Path2D;c.addPath(s,new DOMMatrix(t));var l=new Path2D;return l.addPath(c,new DOMMatrix([Math.cos(o)*i,Math.sin(o)*i,-Math.sin(o)*a,Math.cos(o)*a,n,r])),l}function shapeFromPath(e){if(!a)throw Error(`path confetti are not supported in this browser`);var t,n;typeof e==`string`?t=e:(t=e.path,n=e.matrix);var r=new Path2D(t),i=document.createElement(`canvas`).getContext(`2d`);if(!n){for(var o=1e3,s=o,c=o,l=0,u=0,d,f,p=0;p<o;p+=2)for(var m=0;m<o;m+=2)i.isPointInPath(r,p,m,`nonzero`)&&(s=Math.min(s,p),c=Math.min(c,m),l=Math.max(l,p),u=Math.max(u,m));d=l-s,f=u-c;var h=10,g=Math.min(h/d,h/f);n=[g,0,0,g,-Math.round(d/2+s)*g,-Math.round(f/2+c)*g]}return{type:`path`,path:t,matrix:n}}function shapeFromText(e){var t,n=1,r=`#000000`,i=`"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "EmojiOne Color", "Android Emoji", "Twemoji Mozilla", "system emoji", sans-serif`;typeof e==`string`?t=e:(t=e.text,n=`scalar`in e?e.scalar:n,i=`fontFamily`in e?e.fontFamily:i,r=`color`in e?e.color:r);var a=10*n,o=``+a+`px `+i,s=new OffscreenCanvas(a,a),c=s.getContext(`2d`);c.font=o;var l=c.measureText(t),u=Math.ceil(l.actualBoundingBoxRight+l.actualBoundingBoxLeft),d=Math.ceil(l.actualBoundingBoxAscent+l.actualBoundingBoxDescent),f=2,p=l.actualBoundingBoxLeft+f,m=l.actualBoundingBoxAscent+f;u+=f+f,d+=f+f,s=new OffscreenCanvas(u,d),c=s.getContext(`2d`),c.font=o,c.fillStyle=r,c.fillText(t,p,m);var h=1/n;return{type:`bitmap`,bitmap:s.transferToImageBitmap(),matrix:[h,0,0,h,-u*h/2,-d*h/2]}}t.exports=function(){return getDefaultFire().apply(this,arguments)},t.exports.reset=function(){getDefaultFire().reset()},t.exports.create=confettiCannon,t.exports.shapeFromPath=shapeFromPath,t.exports.shapeFromText=shapeFromText})((function(){return typeof window<`u`?window:typeof self<`u`?self:this||{}})(),lt,!1);var ut=lt.exports;lt.exports.create;var dt=(0,t.defineComponent)({name:`StudySession`,ref:{},components:{CardViewer:Ae,StudySessionTimer:Oe,SkMouseTrap:j,HeatMap:x,SessionControllerDebug:ct},props:{sessionTimeLimit:{type:Number,required:!0},contentSources:{type:Array,required:!0},user:{type:Object,required:!0},dataLayer:{type:Object,required:!0},sessionConfig:{type:Object,default:()=>({likesConfetti:!1})},getViewComponent:{type:Function,required:!0},frameless:{type:Boolean,default:!1},hideFooter:{type:Boolean,default:!1},transitionName:{type:String,default:`component-fade`},transitionMode:{type:String,default:`out-in`}},emits:[`session-finished`,`session-started`,`card-loaded`,`card-response`,`time-changed`,`session-prepared`,`session-error`,`replan-requested`],data(){return{cardID:``,view:null,data:[],courseID:``,card_elo:1e3,courseNames:{},cardCount:1,sessionController:null,sessionPrepared:!1,sessionFinished:!1,sessionRecord:[],percentageRemaining:100,timerIsActive:!0,loading:!1,userCourseRegDoc:null,sessionContentSources:[],timeRemaining:300,replanPending:!1,replanOptions:null,deferredNextCardAction:null,intervalHandler:null,cardType:``,debugMode:window.debugMode===!0}},computed:{currentCard(){return this.sessionRecord[this.sessionRecord.length-1]}},async created(){this.userCourseRegDoc=await this.user.getCourseRegistrationsDoc(),console.log(`[StudySession] Created lifecycle hook - starting initSession`),await this.initSession(),console.log(`[StudySession] InitSession completed in created hook`)},errorCaptured(e,t,n){return console.error(`[StudySession] Card render error (${n}), skipping card "${this.cardID}":`,e),this.sessionController&&this.sessionController.nextCard().then(e=>this.loadCard(e)),!1},methods:{async handleReadyToAdvance(){let e=this.deferredNextCardAction;if(!e){console.warn(`[StudySession] ready-to-advance received but no deferred action stashed — ignoring`);return}console.log(`[StudySession] ready-to-advance received — advancing with stashed action: ${e}`),this.deferredNextCardAction=null,this.loadCard(await this.sessionController.nextCard(e))},handleReplanRequest(e){if(this.sessionController){let t=e?.label,n=t?` [${t}]`:``;console.log(`[StudySession] Replan requested by card view${n}, deferring until after response processing`),this.replanPending=!0,this.replanOptions=e??null}},user_elo(e){let t=this.userCourseRegDoc.courses.find(t=>t.courseID===e);return t?(0,r.toCourseElo)(t.elo):(0,r.toCourseElo)(void 0)},handleClassroomMessage(){return e=>(N({text:this.user?.getUsername()||`[Unknown user]`,status:r.Status.ok}),console.log(`[StudySession] There was a change in the classroom DB:`),console.log(`[StudySession] change: ${e}`),console.log(`[StudySession] Stringified change: ${JSON.stringify(e)}`),{})},incrementSessionClock(){let e=60*this.sessionTimeLimit-this.timeRemaining;this.sessionController.addTime(Math.min(e,60)),this.tick()},tick(){this.timeRemaining=this.sessionController.secondsRemaining,this.percentageRemaining=this.timeRemaining>60?100*(this.timeRemaining/(60*this.sessionTimeLimit)):100*(this.timeRemaining/60),this.$emit(`time-changed`,this.timeRemaining),this.timeRemaining===0&&clearInterval(this.intervalHandler)},async initSession(){let e=[];try{console.log(`[StudySession] starting study session w/ sources: ${JSON.stringify(this.contentSources)}`),console.log(`[StudySession] Beginning preparation process`),this.sessionContentSources=(0,t.markRaw)((await Promise.all(this.contentSources.map(async e=>{try{return await(0,i.getStudySource)(e,this.user)}catch(t){return console.error(`Failed to load study source: ${e.type}/${e.id}`,t),null}}))).filter(e=>e!==null)),this.timeRemaining=this.sessionTimeLimit*60,e=await Promise.all(this.contentSources.filter(e=>e.type===`classroom`).map(async e=>await this.dataLayer.getClassroomDB(e.id,`student`))),e.forEach(e=>{});let n={};this.sessionConfig?.defaultBatchLimit!==void 0&&(n.defaultBatchLimit=this.sessionConfig.defaultBatchLimit),this.sessionConfig?.outcomeObservers?.length&&(n.outcomeObservers=this.sessionConfig.outcomeObservers),this.sessionController=(0,t.markRaw)(new i.SessionController(this.sessionContentSources,60*this.sessionTimeLimit,this.dataLayer,this.getViewComponent,void 0,n)),this.sessionController.sessionRecord=this.sessionRecord,this.sessionConfig?.initHints&&(this.sessionController.setSessionHints(this.sessionConfig.initHints),console.log(`[StudySession] Applied init hints as session-durable hints`)),await this.sessionController.prepareSession(),this.intervalHandler=setInterval(this.tick,1e3),this.sessionPrepared=!0,console.log(`[StudySession] Session preparation complete, emitting session-prepared event`),this.$emit(`session-prepared`),console.log(`[StudySession] Event emission completed`)}catch(e){console.error(`[StudySession] Error during session preparation:`,e),this.$emit(`session-error`,{message:`Failed to prepare study session`,error:e})}try{this.contentSources.filter(e=>e.type===`course`).forEach(async e=>this.courseNames[e.id]=(await this.dataLayer.getCoursesDB().getCourseConfig(e.id)).name),console.log(`[StudySession] Session created:
10
10
  ${this.sessionController?.toString()||`Session controller not initialized`}
11
11
  User courses: ${this.contentSources.filter(e=>e.type===`course`).map(e=>e.id).toString()}
12
12
  User classrooms: ${e.map(e=>e._id).toString()||`No classrooms`}
13
- `)}catch(e){console.error(`[StudySession] Error during final session setup:`,e)}if(this.sessionController)try{this.$emit(`session-started`),this.loadCard(await this.sessionController.nextCard())}catch(e){console.error(`[StudySession] Error loading next card:`,e),this.$emit(`session-error`,{message:`Failed to load study card`,error:e})}else console.error(`[StudySession] Cannot load card: session controller not initialized`),this.$emit(`session-error`,{message:`Study session initialization failed`})},countCardViews(e,t){return this.sessionRecord.filter(n=>n.card.course_id===e&&n.card.card_id===t).length},async processResponse(e){this.$emit(`card-response`,e),this.timerIsActive=!0,e.cardID=this.cardID,e.courseID=this.courseID,this.currentCard.records.push(e),console.log(`[StudySession] StudySession.processResponse is running...`);let t=this.logCardRecord(e).catch(e=>{throw console.error(`[StudySession] putCardRecord failed:`,e),e}),n=1,r=1;if(isQuestionView(this.$refs.cardViewer?.$refs.activeView)){let e=this.$refs.cardViewer.$refs.activeView;n=e.maxAttemptsPerView,r=e.maxSessionViews}let i=this.countCardViews(this.courseID,this.cardID),a=await this.sessionController.submitResponse(e,t,this.userCourseRegDoc,this.currentCard,this.courseID,this.cardID,n,r,i);try{this.handleUIFeedback(a)}catch(e){console.error(`[StudySession] Error handling UI feedback: ${e}.\n\nResult: ${JSON.stringify(a)}`)}if(this.replanPending){let e=this.replanOptions,t=e?.label,n=t?` [${t}]`:``;console.log(`[StudySession] Firing deferred replan (post-submitResponse)${n}`),this.replanPending=!1,this.replanOptions=null,this.sessionController.requestReplan(e??void 0),this.$emit(`replan-requested`)}a.deferred?(console.log(`[StudySession] Deferred advance — stashing action: ${a.nextCardAction}`),this.deferredNextCardAction=a.nextCardAction):a.shouldLoadNextCard&&this.loadCard(await this.sessionController.nextCard(a.nextCardAction)),a.shouldClearFeedbackShadow&&this.clearFeedbackShadow()},handleUIFeedback(e){if(e.isCorrect){if(!this.frameless)try{this.$refs.shadowWrapper&&e.performanceScore!==void 0&&(this.$refs.shadowWrapper.setAttribute(`style`,`--r: ${255*(1-e.performanceScore)}; --g:255`),this.$refs.shadowWrapper.classList.add(`correct`))}catch(e){console.warn(`[StudySession] Error setting shadowWrapper style: ${e}`)}this.sessionConfig.likesConfetti&&vt({origin:{y:1,x:.25+.5*Math.random()},disableForReducedMotion:!0,angle:60+60*Math.random()})}else if(!this.frameless)try{this.$refs.shadowWrapper&&this.$refs.shadowWrapper.classList.add(`incorrect`)}catch(e){console.warn(`[StudySession] Error setting shadowWrapper style: ${e}`)}},clearFeedbackShadow(){this.frameless||setTimeout(()=>{try{this.$refs.shadowWrapper&&this.$refs.shadowWrapper.classList.remove(`correct`,`incorrect`)}catch(e){console.warn(`[StudySession] Error clearing shadowWrapper style: ${e}`)}},1250)},async logCardRecord(e){console.log(`[StudySession] About to call user.putCardRecord...`);let t=await this.user.putCardRecord(e);return console.log(`[StudySession] user.putCardRecord completed`),t},async loadCard(e){if(this.loading){console.warn(`Attempted to load card while loading another...`);return}if(console.log(`[StudySession] loading: ${JSON.stringify(e)}`),e===null){this.sessionFinished=!0,this.$emit(`session-finished`,this.sessionRecord);return}this.cardType=e.item.status,this.loading=!0,this.cardCount++,this.data=e.data,this.view=(0,t.markRaw)(e.view),this.cardID=e.item.cardID,this.courseID=e.item.courseID,this.card_elo=e.item.elo||1e3,this.sessionRecord.push({card:{course_id:e.item.courseID,card_id:e.item.cardID,card_elo:this.card_elo,tags:e.tags??[]},item:e.item,records:[]}),this.$emit(`card-loaded`,{courseID:e.item.courseID,cardID:e.item.cardID,cardCount:this.cardCount}),this.loading=!1}}});_();var bt={key:0,class:`StudySession`},xt={key:2},St={key:3},Ct={class:`text-h4`},wt={key:0},Tt={key:4,ref:`shadowWrapper`,class:`card-transition-container`},Et={key:0};function _sfc_render$18(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-spacer`),c=(0,t.resolveComponent)(`v-progress-circular`),l=(0,t.resolveComponent)(`v-row`),u=(0,t.resolveComponent)(`session-controller-debug`),d=(0,t.resolveComponent)(`heat-map`),f=(0,t.resolveComponent)(`card-viewer`),p=(0,t.resolveComponent)(`StudySessionTimer`),m=(0,t.resolveComponent)(`v-col`),h=(0,t.resolveComponent)(`SkMouseTrap`);return e.sessionPrepared?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,bt,[e.frameless?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(l,{key:0,align:`center`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s),e.loading?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,color:`primary`,indeterminate:``,size:`32`,width:`4`})):(0,t.createCommentVNode)(``,!0)]),_:1})),e.debugMode?((0,t.openBlock)(),(0,t.createBlock)(u,{key:1,"session-controller":e.sessionController},null,8,[`session-controller`])):(0,t.createCommentVNode)(``,!0),e.frameless?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`br`,xt)),e.sessionFinished?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,St,[(0,t.renderSlot)(e.$slots,`session-finished`,{sessionRecord:e.sessionRecord,report:e.sessionController?.report},()=>[(0,t.createElementVNode)(`div`,Ct,[n[1]||(n[1]=(0,t.createElementVNode)(`p`,null,`Study session finished! Great job!`,-1)),e.sessionController?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,wt,(0,t.toDisplayString)(e.sessionController.report),1)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(d,{"activity-records-getter":()=>e.user.getActivityRecords()},null,8,[`activity-records-getter`])])],!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Tt,[(0,t.createVNode)(t.Transition,{name:e.transitionName},{default:(0,t.withCtx)(()=>[e.view?((0,t.openBlock)(),(0,t.createBlock)(f,{ref:`cardViewer`,key:e.cardID,class:(0,t.normalizeClass)(e.loading?`muted`:``),view:e.view,data:e.data,card_id:e.cardID,course_id:e.courseID,"session-order":e.cardCount,user_elo:e.user_elo(e.courseID),card_elo:e.card_elo,frameless:e.frameless,onEmitResponse:n[0]||(n[0]=t=>e.processResponse(t)),onRequestReplan:e.handleReplanRequest,onReadyToAdvance:e.handleReadyToAdvance},null,8,[`class`,`view`,`data`,`card_id`,`course_id`,`session-order`,`user_elo`,`card_elo`,`frameless`,`onRequestReplan`,`onReadyToAdvance`])):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`name`])],512)),e.frameless?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:5},[n[2]||(n[2]=(0,t.createElementVNode)(`br`,null,null,-1)),e.sessionController?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Et,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.sessionController.failedCount,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e,class:`text-h5`},`•`))),128))])):(0,t.createCommentVNode)(``,!0)],64)),e.hideFooter?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(l,{key:6,align:`center`,class:`footer-controls pa-5`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(m,{cols:`auto`,class:`d-flex flex-grow-0 mr-auto`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(p,{"time-remaining":e.timeRemaining,"session-time-limit":e.sessionTimeLimit,onAddTime:e.incrementSessionClock},null,8,[`time-remaining`,`session-time-limit`,`onAddTime`])]),_:1}),(0,t.createVNode)(s),(0,t.createVNode)(m,{cols:`auto`,class:`footer-right`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(h)]),_:1})]),_:1}))])):(0,t.createCommentVNode)(``,!0)}__name(_sfc_render$18,`_sfc_render`);var Dt=g(yt,[[`render`,_sfc_render$18],[`__scopeId`,`data-v-de7119e9`]]),Ot,setPinia,getPinia,kt,F=__esmMin((()=>{Ot=null,setPinia=e=>{Ot=e},getPinia=()=>Ot,kt={install(e,t){let n=t?.pinia;n&&setPinia(n)}}})),useCardPreviewModeStore,At=__esmMin((()=>{F(),useCardPreviewModeStore=()=>{let e=getPinia();return e&&(0,a.setActivePinia)(e),(0,a.defineStore)(`previewMode`,{state:()=>({previewMode:!1}),actions:{setPreviewMode(e){this.previewMode=e}},getters:{isPreviewMode(){return this.previewMode}}})()}})),I,L=__esmMin((()=>{At(),Ee(),I=(0,t.defineComponent)({name:`UserInput`,data(){return{answer:``,previewModeStore:null}},mounted(){this.previewModeStore=useCardPreviewModeStore()},computed:{autofocus(){return!this.previewModeStore?.previewMode},autoFocus(){return this.autofocus}},methods:{submitAnswer(e){return this.submit(e)},submit(e){return this.getQuestionViewAncestor().submitAnswer(e,this.$options.name??`UserInput`)},getQuestionViewAncestor(){let e=this.$parent,t=0;for(;e&&!isQuestionView(e);){let n=e.$parent;if(!n){let e=`
13
+ `)}catch(e){console.error(`[StudySession] Error during final session setup:`,e)}if(this.sessionController)try{this.$emit(`session-started`),this.loadCard(await this.sessionController.nextCard())}catch(e){console.error(`[StudySession] Error loading next card:`,e),this.$emit(`session-error`,{message:`Failed to load study card`,error:e})}else console.error(`[StudySession] Cannot load card: session controller not initialized`),this.$emit(`session-error`,{message:`Study session initialization failed`})},countCardViews(e,t){return this.sessionRecord.filter(n=>n.card.course_id===e&&n.card.card_id===t).length},async processResponse(e){this.$emit(`card-response`,e),this.timerIsActive=!0,e.cardID=this.cardID,e.courseID=this.courseID,this.currentCard.records.push(e),console.log(`[StudySession] StudySession.processResponse is running...`);let t=this.logCardRecord(e).catch(e=>{throw console.error(`[StudySession] putCardRecord failed:`,e),e}),n=1,r=1;if(isQuestionView(this.$refs.cardViewer?.$refs.activeView)){let e=this.$refs.cardViewer.$refs.activeView;n=e.maxAttemptsPerView,r=e.maxSessionViews}let i=this.countCardViews(this.courseID,this.cardID),a=await this.sessionController.submitResponse(e,t,this.userCourseRegDoc,this.currentCard,this.courseID,this.cardID,n,r,i);try{this.handleUIFeedback(a)}catch(e){console.error(`[StudySession] Error handling UI feedback: ${e}.\n\nResult: ${JSON.stringify(a)}`)}if(this.replanPending){let e=this.replanOptions,t=e?.label,n=t?` [${t}]`:``;console.log(`[StudySession] Firing deferred replan (post-submitResponse)${n}`),this.replanPending=!1,this.replanOptions=null,this.sessionController.requestReplan(e??void 0),this.$emit(`replan-requested`)}a.deferred?(console.log(`[StudySession] Deferred advance — stashing action: ${a.nextCardAction}`),this.deferredNextCardAction=a.nextCardAction):a.shouldLoadNextCard&&this.loadCard(await this.sessionController.nextCard(a.nextCardAction)),a.shouldClearFeedbackShadow&&this.clearFeedbackShadow()},handleUIFeedback(e){if(e.isCorrect){if(!this.frameless)try{this.$refs.shadowWrapper&&e.performanceScore!==void 0&&(this.$refs.shadowWrapper.setAttribute(`style`,`--r: ${255*(1-e.performanceScore)}; --g:255`),this.$refs.shadowWrapper.classList.add(`correct`))}catch(e){console.warn(`[StudySession] Error setting shadowWrapper style: ${e}`)}this.sessionConfig.likesConfetti&&ut({origin:{y:1,x:.25+.5*Math.random()},disableForReducedMotion:!0,angle:60+60*Math.random()})}else if(!this.frameless)try{this.$refs.shadowWrapper&&this.$refs.shadowWrapper.classList.add(`incorrect`)}catch(e){console.warn(`[StudySession] Error setting shadowWrapper style: ${e}`)}},clearFeedbackShadow(){this.frameless||setTimeout(()=>{try{this.$refs.shadowWrapper&&this.$refs.shadowWrapper.classList.remove(`correct`,`incorrect`)}catch(e){console.warn(`[StudySession] Error clearing shadowWrapper style: ${e}`)}},1250)},async logCardRecord(e){console.log(`[StudySession] About to call user.putCardRecord...`);let t=await this.user.putCardRecord(e);return console.log(`[StudySession] user.putCardRecord completed`),t},async loadCard(e){if(this.loading){console.warn(`Attempted to load card while loading another...`);return}if(console.log(`[StudySession] loading: ${JSON.stringify(e)}`),e===null){this.sessionFinished=!0,this.$emit(`session-finished`,this.sessionRecord);return}this.cardType=e.item.status,this.loading=!0,this.cardCount++,this.data=e.data,this.view=(0,t.markRaw)(e.view),this.cardID=e.item.cardID,this.courseID=e.item.courseID,this.card_elo=e.item.elo||1e3,this.sessionRecord.push({card:{course_id:e.item.courseID,card_id:e.item.cardID,card_elo:this.card_elo,tags:e.tags??[]},item:e.item,records:[]}),this.$emit(`card-loaded`,{courseID:e.item.courseID,cardID:e.item.cardID,cardCount:this.cardCount}),this.loading=!1}}});_();var ft={key:0,class:`StudySession`},pt={key:2},mt={key:3},ht={class:`text-h4`},gt={key:0},_t={key:4,ref:`shadowWrapper`,class:`card-transition-container`},vt={key:0};function _sfc_render$18(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-spacer`),c=(0,t.resolveComponent)(`v-progress-circular`),l=(0,t.resolveComponent)(`v-row`),u=(0,t.resolveComponent)(`session-controller-debug`),d=(0,t.resolveComponent)(`heat-map`),f=(0,t.resolveComponent)(`card-viewer`),p=(0,t.resolveComponent)(`StudySessionTimer`),m=(0,t.resolveComponent)(`v-col`),h=(0,t.resolveComponent)(`SkMouseTrap`);return e.sessionPrepared?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ft,[e.frameless?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(l,{key:0,align:`center`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s),e.loading?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,color:`primary`,indeterminate:``,size:`32`,width:`4`})):(0,t.createCommentVNode)(``,!0)]),_:1})),e.debugMode?((0,t.openBlock)(),(0,t.createBlock)(u,{key:1,"session-controller":e.sessionController},null,8,[`session-controller`])):(0,t.createCommentVNode)(``,!0),e.frameless?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`br`,pt)),e.sessionFinished?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,mt,[(0,t.renderSlot)(e.$slots,`session-finished`,{sessionRecord:e.sessionRecord,report:e.sessionController?.report},()=>[(0,t.createElementVNode)(`div`,ht,[n[1]||(n[1]=(0,t.createElementVNode)(`p`,null,`Study session finished! Great job!`,-1)),e.sessionController?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,gt,(0,t.toDisplayString)(e.sessionController.report),1)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(d,{"activity-records-getter":()=>e.user.getActivityRecords()},null,8,[`activity-records-getter`])])],!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,_t,[(0,t.createVNode)(t.Transition,{name:e.transitionName},{default:(0,t.withCtx)(()=>[e.view?((0,t.openBlock)(),(0,t.createBlock)(f,{ref:`cardViewer`,key:e.cardID,class:(0,t.normalizeClass)(e.loading?`muted`:``),view:e.view,data:e.data,card_id:e.cardID,course_id:e.courseID,"session-order":e.cardCount,user_elo:e.user_elo(e.courseID),card_elo:e.card_elo,frameless:e.frameless,onEmitResponse:n[0]||(n[0]=t=>e.processResponse(t)),onRequestReplan:e.handleReplanRequest,onReadyToAdvance:e.handleReadyToAdvance},null,8,[`class`,`view`,`data`,`card_id`,`course_id`,`session-order`,`user_elo`,`card_elo`,`frameless`,`onRequestReplan`,`onReadyToAdvance`])):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`name`])],512)),e.frameless?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:5},[n[2]||(n[2]=(0,t.createElementVNode)(`br`,null,null,-1)),e.sessionController?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,vt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.sessionController.failedCount,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e,class:`text-h5`},`•`))),128))])):(0,t.createCommentVNode)(``,!0)],64)),e.hideFooter?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(l,{key:6,align:`center`,class:`footer-controls pa-5`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(m,{cols:`auto`,class:`d-flex flex-grow-0 mr-auto`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(p,{"time-remaining":e.timeRemaining,"session-time-limit":e.sessionTimeLimit,onAddTime:e.incrementSessionClock},null,8,[`time-remaining`,`session-time-limit`,`onAddTime`])]),_:1}),(0,t.createVNode)(s),(0,t.createVNode)(m,{cols:`auto`,class:`footer-right`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(h)]),_:1})]),_:1}))])):(0,t.createCommentVNode)(``,!0)}__name(_sfc_render$18,`_sfc_render`);var yt=g(dt,[[`render`,_sfc_render$18],[`__scopeId`,`data-v-0279250f`]]),bt,setPinia,getPinia,xt,P=__esmMin((()=>{bt=null,setPinia=e=>{bt=e},getPinia=()=>bt,xt={install(e,t){let n=t?.pinia;n&&setPinia(n)}}})),useCardPreviewModeStore,St=__esmMin((()=>{P(),useCardPreviewModeStore=()=>{let e=getPinia();return e&&(0,a.setActivePinia)(e),(0,a.defineStore)(`previewMode`,{state:()=>({previewMode:!1}),actions:{setPreviewMode(e){this.previewMode=e}},getters:{isPreviewMode(){return this.previewMode}}})()}})),Ct,wt=__esmMin((()=>{St(),Ee(),Ct=(0,t.defineComponent)({name:`UserInput`,data(){return{answer:``,previewModeStore:null}},mounted(){this.previewModeStore=useCardPreviewModeStore()},computed:{autofocus(){return!this.previewModeStore?.previewMode},autoFocus(){return this.autofocus}},methods:{submitAnswer(e){return this.submit(e)},submit(e){return this.getQuestionViewAncestor().submitAnswer(e,this.$options.name??`UserInput`)},getQuestionViewAncestor(){let e=this.$parent,t=0;for(;e&&!isQuestionView(e);){let n=e.$parent;if(!n){let e=`
14
14
  UserInput.submit() has failed.
15
15
  The input element has no QuestionView ancestor element.`;throw(0,r.log)(e),Error(e)}if(e=n,t++,t>100){let e=`
16
16
  UserInput.submit() has failed.
17
- Exceeded maximum ancestor lookup depth.`;throw(0,r.log)(e),Error(e)}}if(!e)throw Error(`No QuestionView ancestor found`);return e}}})}));function _getDefaults(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function changeDefaults(e){R=e}function edit(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(B.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}function escape(e,t){if(t){if(B.escapeTest.test(e))return e.replace(B.escapeReplace,getEscapeReplacement)}else if(B.escapeTestNoEncode.test(e))return e.replace(B.escapeReplaceNoEncode,getEscapeReplacement);return e}function cleanUrl(e){try{e=encodeURI(e).replace(B.percentDecode,`%`)}catch{return null}return e}function splitCells(e,t){let n=e.replace(B.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(B.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``);for(;r<n.length;r++)n[r]=n[r].trim().replace(B.slashPipe,`|`);return n}function rtrim(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r&&e.charAt(r-i-1)===t;)i++;return e.slice(0,r-i)}function findClosingBracket(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return-1}function outputLink(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`);if(e[0].charAt(0)!==`!`){r.state.inLink=!0;let e={type:`link`,raw:n,href:a,title:o,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,e}return{type:`image`,raw:n,href:a,title:o,text:s}}function indentCodeCompensation(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
17
+ Exceeded maximum ancestor lookup depth.`;throw(0,r.log)(e),Error(e)}}if(!e)throw Error(`No QuestionView ancestor found`);return e}}})}));function _getDefaults(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function changeDefaults(e){F=e}function edit(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(L.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}function escape(e,t){if(t){if(L.escapeTest.test(e))return e.replace(L.escapeReplace,getEscapeReplacement)}else if(L.escapeTestNoEncode.test(e))return e.replace(L.escapeReplaceNoEncode,getEscapeReplacement);return e}function cleanUrl(e){try{e=encodeURI(e).replace(L.percentDecode,`%`)}catch{return null}return e}function splitCells(e,t){let n=e.replace(L.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(L.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``);for(;r<n.length;r++)n[r]=n[r].trim().replace(L.slashPipe,`|`);return n}function rtrim(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r&&e.charAt(r-i-1)===t;)i++;return e.slice(0,r-i)}function findClosingBracket(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return-1}function outputLink(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`);if(e[0].charAt(0)!==`!`){r.state.inLink=!0;let e={type:`link`,raw:n,href:a,title:o,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,e}return{type:`image`,raw:n,href:a,title:o,text:s}}function indentCodeCompensation(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
18
18
  `).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(`
19
- `)}function marked(e,t){return Z.parse(e,t)}var R,z,B,jt,Mt,Nt,V,Pt,H,Ft,It,Lt,U,Rt,zt,Bt,Vt,W,Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,G,$t,en,tn,nn,rn,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,K,vn,yn,bn,xn,Sn,Cn,wn,q,J,Tn,getEscapeReplacement,_Tokenizer,Y,_Renderer,_TextRenderer,X,_Hooks,Marked,Z,En,Dn=__esmMin((()=>{E(),R=_getDefaults(),z={exec:()=>null},B={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,`i`)},jt=/^(?:[ \t]*(?:\n|$))+/,Mt=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Nt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,V=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Pt=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,H=/(?:[*+-]|\d{1,9}[.)])/,Ft=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,It=edit(Ft).replace(/bull/g,H).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),Lt=edit(Ft).replace(/bull/g,H).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),U=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Rt=/^[^\n]+/,zt=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Bt=edit(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,zt).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Vt=edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,H).getRegex(),W=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,Ht=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Ut=edit(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,Ht).replace(`tag`,W).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Wt=edit(U).replace(`hr`,V).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,W).getRegex(),Gt={blockquote:edit(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,Wt).getRegex(),code:Mt,def:Bt,fences:Nt,heading:Pt,hr:V,html:Ut,lheading:It,list:Vt,newline:jt,paragraph:Wt,table:z,text:Rt},Kt=edit(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,V).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,W).getRegex(),qt={...Gt,lheading:Lt,table:Kt,paragraph:edit(U).replace(`hr`,V).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,Kt).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,W).getRegex()},Jt={...Gt,html:edit(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,Ht).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:z,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:edit(U).replace(`hr`,V).replace(`heading`,` *#{1,6} *[^
20
- ]`).replace(`lheading`,It).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},Yt=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Xt=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Zt=/^( {2,}|\\)\n(?!\s*$)/,Qt=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,G=/[\p{P}\p{S}]/u,$t=/[\s\p{P}\p{S}]/u,en=/[^\s\p{P}\p{S}]/u,tn=edit(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,$t).getRegex(),nn=/(?!~)[\p{P}\p{S}]/u,rn=/(?!~)[\s\p{P}\p{S}]/u,an=/(?:[^\s\p{P}\p{S}]|~)/u,on=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,sn=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,cn=edit(sn,`u`).replace(/punct/g,G).getRegex(),ln=edit(sn,`u`).replace(/punct/g,nn).getRegex(),un=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,dn=edit(un,`gu`).replace(/notPunctSpace/g,en).replace(/punctSpace/g,$t).replace(/punct/g,G).getRegex(),fn=edit(un,`gu`).replace(/notPunctSpace/g,an).replace(/punctSpace/g,rn).replace(/punct/g,nn).getRegex(),pn=edit(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,en).replace(/punctSpace/g,$t).replace(/punct/g,G).getRegex(),mn=edit(/\\(punct)/,`gu`).replace(/punct/g,G).getRegex(),hn=edit(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),gn=edit(Ht).replace(`(?:-->|$)`,`-->`).getRegex(),_n=edit(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,gn).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),K=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,vn=edit(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace(`label`,K).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),yn=edit(/^!?\[(label)\]\[(ref)\]/).replace(`label`,K).replace(`ref`,zt).getRegex(),bn=edit(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,zt).getRegex(),xn={_backpedal:z,anyPunctuation:mn,autolink:hn,blockSkip:on,br:Zt,code:Xt,del:z,emStrongLDelim:cn,emStrongRDelimAst:dn,emStrongRDelimUnd:pn,escape:Yt,link:vn,nolink:bn,punctuation:tn,reflink:yn,reflinkSearch:edit(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,yn).replace(`nolink`,bn).getRegex(),tag:_n,text:Qt,url:z},Sn={...xn,link:edit(/^!?\[(label)\]\((.*?)\)/).replace(`label`,K).getRegex(),reflink:edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,K).getRegex()},Cn={...xn,emStrongRDelimAst:fn,emStrongLDelim:ln,url:edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,`i`).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},wn={...Cn,br:edit(Zt).replace(`{2,}`,`*`).getRegex(),text:edit(Cn.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},q={normal:Gt,gfm:qt,pedantic:Jt},J={normal:xn,gfm:Cn,breaks:wn,pedantic:Sn},Tn={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},getEscapeReplacement=e=>Tn[e],_Tokenizer=class{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`rules`,void 0),_defineProperty(this,`lexer`,void 0),this.options=e||R}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,``);return{type:`code`,raw:t[0],codeBlockStyle:`indented`,text:this.options.pedantic?e:rtrim(e,`
19
+ `)}function marked(e,t){return Z.parse(e,t)}var F,I,L,Tt,Et,Dt,R,Ot,kt,At,jt,Mt,z,Nt,B,Pt,Ft,V,H,It,Lt,U,Rt,zt,Bt,Vt,Ht,Ut,Wt,W,G,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn,K,ln,un,dn,fn,pn,mn,hn,q,J,gn,getEscapeReplacement,_Tokenizer,Y,_Renderer,_TextRenderer,X,_Hooks,Marked,Z,_n,vn=__esmMin((()=>{E(),F=_getDefaults(),I={exec:()=>null},L={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,`i`)},Tt=/^(?:[ \t]*(?:\n|$))+/,Et=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Dt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,R=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Ot=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,kt=/(?:[*+-]|\d{1,9}[.)])/,At=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,jt=edit(At).replace(/bull/g,kt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),Mt=edit(At).replace(/bull/g,kt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),z=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Nt=/^[^\n]+/,B=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Pt=edit(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,B).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ft=edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,kt).getRegex(),V=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,H=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,It=edit(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,H).replace(`tag`,V).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Lt=edit(z).replace(`hr`,R).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,V).getRegex(),U={blockquote:edit(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,Lt).getRegex(),code:Et,def:Pt,fences:Dt,heading:Ot,hr:R,html:It,lheading:jt,list:Ft,newline:Tt,paragraph:Lt,table:I,text:Nt},Rt=edit(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,R).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,V).getRegex(),zt={...U,lheading:Mt,table:Rt,paragraph:edit(z).replace(`hr`,R).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,Rt).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,V).getRegex()},Bt={...U,html:edit(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,H).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:I,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:edit(z).replace(`hr`,R).replace(`heading`,` *#{1,6} *[^
20
+ ]`).replace(`lheading`,jt).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},Vt=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Ht=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Ut=/^( {2,}|\\)\n(?!\s*$)/,Wt=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,W=/[\p{P}\p{S}]/u,G=/[\s\p{P}\p{S}]/u,Gt=/[^\s\p{P}\p{S}]/u,Kt=edit(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,G).getRegex(),qt=/(?!~)[\p{P}\p{S}]/u,Jt=/(?!~)[\s\p{P}\p{S}]/u,Yt=/(?:[^\s\p{P}\p{S}]|~)/u,Xt=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,Zt=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,Qt=edit(Zt,`u`).replace(/punct/g,W).getRegex(),$t=edit(Zt,`u`).replace(/punct/g,qt).getRegex(),en=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,tn=edit(en,`gu`).replace(/notPunctSpace/g,Gt).replace(/punctSpace/g,G).replace(/punct/g,W).getRegex(),nn=edit(en,`gu`).replace(/notPunctSpace/g,Yt).replace(/punctSpace/g,Jt).replace(/punct/g,qt).getRegex(),rn=edit(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,Gt).replace(/punctSpace/g,G).replace(/punct/g,W).getRegex(),an=edit(/\\(punct)/,`gu`).replace(/punct/g,W).getRegex(),on=edit(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),sn=edit(H).replace(`(?:-->|$)`,`-->`).getRegex(),cn=edit(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,sn).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),K=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,ln=edit(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace(`label`,K).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),un=edit(/^!?\[(label)\]\[(ref)\]/).replace(`label`,K).replace(`ref`,B).getRegex(),dn=edit(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,B).getRegex(),fn={_backpedal:I,anyPunctuation:an,autolink:on,blockSkip:Xt,br:Ut,code:Ht,del:I,emStrongLDelim:Qt,emStrongRDelimAst:tn,emStrongRDelimUnd:rn,escape:Vt,link:ln,nolink:dn,punctuation:Kt,reflink:un,reflinkSearch:edit(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,un).replace(`nolink`,dn).getRegex(),tag:cn,text:Wt,url:I},pn={...fn,link:edit(/^!?\[(label)\]\((.*?)\)/).replace(`label`,K).getRegex(),reflink:edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,K).getRegex()},mn={...fn,emStrongRDelimAst:nn,emStrongLDelim:$t,url:edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,`i`).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},hn={...mn,br:edit(Ut).replace(`{2,}`,`*`).getRegex(),text:edit(mn.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},q={normal:U,gfm:zt,pedantic:Bt},J={normal:fn,gfm:mn,breaks:hn,pedantic:pn},gn={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},getEscapeReplacement=e=>gn[e],_Tokenizer=class{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`rules`,void 0),_defineProperty(this,`lexer`,void 0),this.options=e||F}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,``);return{type:`code`,raw:t[0],codeBlockStyle:`indented`,text:this.options.pedantic?e:rtrim(e,`
21
21
  `)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=indentCodeCompensation(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=rtrim(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:rtrim(t[0],`
22
22
  `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=rtrim(t[0],`
23
23
  `).split(`
@@ -37,8 +37,8 @@ Exceeded maximum ancestor lookup depth.`;throw(0,r.log)(e),Error(e)}}if(!e)throw
37
37
  `+l}!u&&!l.trim()&&(u=!0),r+=f+`
38
38
  `,e=e.substring(f.length+1),c=p.slice(d)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0));let f=null,p;this.options.gfm&&(f=this.rules.other.listIsTask.exec(s),f&&(p=f[0]!==`[ ] `,s=s.replace(this.rules.other.listReplaceTask,``))),i.items.push({type:`list_item`,raw:r,task:!!f,checked:p,loose:!1,text:s,tokens:[]}),i.raw+=r}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let e=0;e<i.items.length;e++)if(this.lexer.state.top=!1,i.items[e].tokens=this.lexer.blockTokens(i.items[e].text,[]),!i.loose){let t=i.items[e].tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}if(i.loose)for(let e=0;e<i.items.length;e++)i.items[e].loose=!0;return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:`html`,block:!0,raw:t[0],pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,` `),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:t[0],href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=splitCells(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
39
39
  `):[],a={type:`table`,raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push(splitCells(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:`heading`,raw:t[0],depth:t[2].charAt(0)===`=`?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
40
- `?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=rtrim(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=findClosingBracket(t[2],`()`);if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),outputLink(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return outputLink(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(r&&!(r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[2])||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=0,c=r[0][0]===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(r=c.exec(t))!=null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(a=[...i].length,r[3]||r[4]){o+=a;continue}else if((r[5]||r[6])&&n%3&&!((n+a)%3)){s+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+s);let t=[...r[0]][0].length,c=e.slice(0,n+r.index+t+a);if(Math.min(n,a)%2){let e=c.slice(1,-1);return{type:`em`,raw:c,text:e,tokens:this.lexer.inlineTokens(e)}}let l=c.slice(2,-2);return{type:`strong`,raw:c,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:`del`,raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},Y=class _Lexer{constructor(e){_defineProperty(this,`tokens`,void 0),_defineProperty(this,`options`,void 0),_defineProperty(this,`state`,void 0),_defineProperty(this,`tokenizer`,void 0),_defineProperty(this,`inlineQueue`,void 0),this.tokens=[],this.tokens.links=Object.create(null),this.options=e||R,this.options.tokenizer=this.options.tokenizer||new _Tokenizer,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:B,block:q.normal,inline:J.normal};this.options.pedantic?(t.block=q.pedantic,t.inline=J.pedantic):this.options.gfm&&(t.block=q.gfm,this.options.breaks?t.inline=J.breaks:t.inline=J.gfm),this.tokenizer.rules=t}static get rules(){return{block:q,inline:J}}static lex(e,t){return new _Lexer(t).lex(e)}static lexInline(e,t){return new _Lexer(t).inlineTokens(e)}lex(e){e=e.replace(B.carriageReturn,`
41
- `),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.options.pedantic&&(e=e.replace(B.tabCharGlobal,` `).replace(B.spaceLine,``));e;){let r;if(this.options.extensions?.block?.some(n=>(r=n.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let n=t.at(-1);r.raw.length===1&&n!==void 0?n.raw+=`
40
+ `?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=rtrim(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=findClosingBracket(t[2],`()`);if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),outputLink(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return outputLink(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(r&&!(r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[2])||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=0,c=r[0][0]===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(r=c.exec(t))!=null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(a=[...i].length,r[3]||r[4]){o+=a;continue}else if((r[5]||r[6])&&n%3&&!((n+a)%3)){s+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+s);let t=[...r[0]][0].length,c=e.slice(0,n+r.index+t+a);if(Math.min(n,a)%2){let e=c.slice(1,-1);return{type:`em`,raw:c,text:e,tokens:this.lexer.inlineTokens(e)}}let l=c.slice(2,-2);return{type:`strong`,raw:c,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:`del`,raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},Y=class _Lexer{constructor(e){_defineProperty(this,`tokens`,void 0),_defineProperty(this,`options`,void 0),_defineProperty(this,`state`,void 0),_defineProperty(this,`tokenizer`,void 0),_defineProperty(this,`inlineQueue`,void 0),this.tokens=[],this.tokens.links=Object.create(null),this.options=e||F,this.options.tokenizer=this.options.tokenizer||new _Tokenizer,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:L,block:q.normal,inline:J.normal};this.options.pedantic?(t.block=q.pedantic,t.inline=J.pedantic):this.options.gfm&&(t.block=q.gfm,this.options.breaks?t.inline=J.breaks:t.inline=J.gfm),this.tokenizer.rules=t}static get rules(){return{block:q,inline:J}}static lex(e,t){return new _Lexer(t).lex(e)}static lexInline(e,t){return new _Lexer(t).inlineTokens(e)}lex(e){e=e.replace(L.carriageReturn,`
41
+ `),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.options.pedantic&&(e=e.replace(L.tabCharGlobal,` `).replace(L.spaceLine,``));e;){let r;if(this.options.extensions?.block?.some(n=>(r=n.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let n=t.at(-1);r.raw.length===1&&n!==void 0?n.raw+=`
42
42
  `:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=`
43
43
  `+r.raw,n.text+=`
44
44
  `+r.text,this.inlineQueue.at(-1).src=n.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=`
@@ -47,7 +47,7 @@ Exceeded maximum ancestor lookup depth.`;throw(0,r.log)(e),Error(e)}}if(!e)throw
47
47
  `+r.raw,a.text+=`
48
48
  `+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=`
49
49
  `+r.raw,n.text+=`
50
- `+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(r);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}else throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,r=null;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)e.includes(r[0].slice(r[0].lastIndexOf(`[`)+1,-1))&&(n=n.slice(0,r.index)+`[`+`a`.repeat(r[0].length-2)+`]`+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,r.index)+`[`+`a`.repeat(r[0].length-2)+`]`+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,r.index)+`++`+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i=!1,a=``;for(;e;){i||(a=``),i=!1;let r;if(this.options.extensions?.inline?.some(n=>(r=n.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.escape(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.link(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);let n=t.at(-1);r.type===`text`&&n?.type===`text`?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(e,n,a)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(e)){e=e.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}let o=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(o=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(o)){e=e.substring(r.raw.length),r.raw.slice(-1)!==`_`&&(a=r.raw.slice(-1)),i=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}else throw Error(t)}}return t}},_Renderer=class{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`parser`,void 0),this.options=e||R}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(B.notSpaceStart)?.[0],i=e.replace(B.endingNewline,``)+`
50
+ `+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(r);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}else throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,r=null;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)e.includes(r[0].slice(r[0].lastIndexOf(`[`)+1,-1))&&(n=n.slice(0,r.index)+`[`+`a`.repeat(r[0].length-2)+`]`+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,r.index)+`[`+`a`.repeat(r[0].length-2)+`]`+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,r.index)+`++`+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i=!1,a=``;for(;e;){i||(a=``),i=!1;let r;if(this.options.extensions?.inline?.some(n=>(r=n.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.escape(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.link(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);let n=t.at(-1);r.type===`text`&&n?.type===`text`?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(e,n,a)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(e)){e=e.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}let o=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(o=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(o)){e=e.substring(r.raw.length),r.raw.slice(-1)!==`_`&&(a=r.raw.slice(-1)),i=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}else throw Error(t)}}return t}},_Renderer=class{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`parser`,void 0),this.options=e||F}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(L.notSpaceStart)?.[0],i=e.replace(L.endingNewline,``)+`
51
51
  `;return r?`<pre><code class="language-`+escape(r)+`">`+(n?i:escape(i,!0))+`</code></pre>
52
52
  `:`<pre><code>`+(n?i:escape(i,!0))+`</code></pre>
53
53
  `}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>
@@ -57,14 +57,14 @@ Exceeded maximum ancestor lookup depth.`;throw(0,r.log)(e),Error(e)}}if(!e)throw
57
57
  <thead>
58
58
  `+t+`</thead>
59
59
  `+r+`</table>
60
- `}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${escape(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=cleanUrl(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+escape(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n}){let r=cleanUrl(e);if(r===null)return escape(n);e=r;let i=`<img src="${e}" alt="${n}"`;return t&&(i+=` title="${escape(t)}"`),i+=`>`,i}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:escape(e.text)}},_TextRenderer=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}},X=class _Parser{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`renderer`,void 0),_defineProperty(this,`textRenderer`,void 0),this.options=e||R,this.options.renderer=this.options.renderer||new _Renderer,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new _TextRenderer}static parse(e,t){return new _Parser(t).parse(e)}static parseInline(e,t){return new _Parser(t).parseInline(e)}parse(e,t=!0){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=i,t=this.options.extensions.renderers[e.type].call({parser:this},e);if(t!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`html`,`paragraph`,`text`].includes(e.type)){n+=t||``;continue}}let a=i;switch(a.type){case`space`:n+=this.renderer.space(a);continue;case`hr`:n+=this.renderer.hr(a);continue;case`heading`:n+=this.renderer.heading(a);continue;case`code`:n+=this.renderer.code(a);continue;case`table`:n+=this.renderer.table(a);continue;case`blockquote`:n+=this.renderer.blockquote(a);continue;case`list`:n+=this.renderer.list(a);continue;case`html`:n+=this.renderer.html(a);continue;case`paragraph`:n+=this.renderer.paragraph(a);continue;case`text`:{let i=a,o=this.renderer.text(i);for(;r+1<e.length&&e[r+1].type===`text`;)i=e[++r],o+=`
61
- `+this.renderer.text(i);t?n+=this.renderer.paragraph({type:`paragraph`,raw:o,text:o,tokens:[{type:`text`,raw:o,text:o,escaped:!0}]}):n+=o;continue}default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}parseInline(e,t=this.renderer){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},_Hooks=class{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`block`,void 0),this.options=e||R}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?Y.lex:Y.lexInline}provideParser(){return this.block?X.parse:X.parseInline}},_defineProperty(_Hooks,`passThroughHooks`,new Set([`preprocess`,`postprocess`,`processAllTokens`])),Marked=class{constructor(...e){_defineProperty(this,`defaults`,_getDefaults()),_defineProperty(this,`options`,this.setOptions),_defineProperty(this,`parse`,this.parseMarkdown(!0)),_defineProperty(this,`parseInline`,this.parseMarkdown(!1)),_defineProperty(this,`Parser`,X),_defineProperty(this,`Renderer`,_Renderer),_defineProperty(this,`TextRenderer`,_TextRenderer),_defineProperty(this,`Lexer`,Y),_defineProperty(this,`Tokenizer`,_Tokenizer),_defineProperty(this,`Hooks`,_Hooks),this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new _Renderer(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new _Tokenizer(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new _Hooks;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];_Hooks.passThroughHooks.has(n)?t[r]=e=>{if(this.defaults.async)return Promise.resolve(i.call(t,e)).then(e=>a.call(t,e));let n=i.call(t,e);return a.call(t,n)}:t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Y.lex(e,t??this.defaults)}parser(e,t){return X.parse(e,t??this.defaults)}parseMarkdown(e){let parse=(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(t==null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));i.hooks&&(i.hooks.options=i,i.hooks.block=e);let o=i.hooks?i.hooks.provideLexer():e?Y.lex:Y.lexInline,s=i.hooks?i.hooks.provideParser():e?X.parse:X.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(t):t).then(e=>o(e,i)).then(e=>i.hooks?i.hooks.processAllTokens(e):e).then(e=>i.walkTokens?Promise.all(this.walkTokens(e,i.walkTokens)).then(()=>e):e).then(e=>s(e,i)).then(e=>i.hooks?i.hooks.postprocess(e):e).catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let e=o(t,i);i.hooks&&(e=i.hooks.processAllTokens(e)),i.walkTokens&&this.walkTokens(e,i.walkTokens);let n=s(e,i);return i.hooks&&(n=i.hooks.postprocess(n)),n}catch(e){return a(e)}};return parse}onError(e,t){return n=>{if(n.message+=`
62
- Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+escape(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},Z=new Marked,marked.options=marked.setOptions=function(e){return Z.setOptions(e),marked.defaults=Z.defaults,changeDefaults(marked.defaults),marked},marked.getDefaults=_getDefaults,marked.defaults=R,marked.use=function(...e){return Z.use(...e),marked.defaults=Z.defaults,changeDefaults(marked.defaults),marked},marked.walkTokens=function(e,t){return Z.walkTokens(e,t)},marked.parseInline=Z.parseInline,marked.Parser=X,marked.parser=X.parse,marked.Renderer=_Renderer,marked.TextRenderer=_TextRenderer,marked.Lexer=Y,marked.lexer=Y.lex,marked.Tokenizer=_Tokenizer,marked.Hooks=_Hooks,marked.parse=marked,marked.options,marked.setOptions,marked.use,marked.walkTokens,marked.parseInline,X.parse,En=Y.lex}));function splitByDelimiters(e,t,n){if(e.length===0)return[];let r=[],i=e.indexOf(t),a=e.indexOf(n,i);if(i>=0&&a>i)r.push(e.substring(0,i)),r.push(e.substring(i,a+n.length)),r=r.concat(splitByDelimiters(e.substring(a+n.length),t,n));else return[e];return r}function stripTrailingNewlines(e){return e.replace(/[\r\n]+$/,``)}function splitTextToken(e){if(containsComponent(e)){let t=splitByDelimiters(stripTrailingNewlines(e.text),`{{`,`}}`),n=splitByDelimiters(stripTrailingNewlines(e.raw),`{{`,`}}`);if(t.length===n.length)return t.map((e,r)=>({type:`text`,text:t[r],raw:n[r]}));throw Error(`Error parsing markdown`)}else return[e]}function splitParagraphToken(e){let t=[];if(containsComponent(e)){let n=splitByDelimiters(stripTrailingNewlines(e.text),`{{`,`}}`),r=splitByDelimiters(stripTrailingNewlines(e.raw),`{{`,`}}`);if(n.length===r.length){for(let e=0;e<n.length;e++){let i={type:`text`,text:n[e],raw:r[e]};isComponent(i)?t.push(i):En(r[e]).forEach(e=>{e.type===`paragraph`?t=t.concat(e.tokens):t.push(e)})}return t}else throw Error(`Error parsing Markdown`)}else t.push(e);return t}function containsComponent(e){if(e.type===`text`||e.type===`paragraph`){let t=e.raw.indexOf(`{{`),n=e.raw.indexOf(`}}`);return t!==-1&&n!==-1&&n>t}else return!1}function isComponent(e){return e.type===`text`&&e.text.startsWith(`{{`)&&e.text.endsWith(`}}`)}function parseComponentSyntax(e){if(e.length>1e4)return null;let t=e.match(/^\{\{\s*<([\w-]+)((?:\s+[\w-]+="[^"]*")*)\s*\/>\s*\}\}$/);if(!t)return null;let n=t[1],r=t[2],i={};if(r){let e=/\s+([\w-]+)="([^"]*)"/g,t;for(;(t=e.exec(r))!==null;)i[t[1]]=t[2]}return{componentName:n,props:i}}function isInlineComponent(e){if(e.length>1e4)return!1;let t=e.trim();return/^<[\w-]+(?:\s+[\w-]+="[^"]*")*\s*\/?>$/.test(t)}function parseComponentToken(e){return parseComponentSyntax(`text`in e?e.text:`raw`in e?e.raw:``)}var On=__esmMin((()=>{Dn()})),kn=__commonJSMin(((e,t)=>{function deepFreeze(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw Error(`map is read-only`)}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw Error(`set is read-only`)}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let n=e[t],r=typeof n;(r===`object`||r===`function`)&&!Object.isFrozen(n)&&deepFreeze(n)}),e}var Response=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function escapeHTML(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#x27;`)}function inherit$1(e,...t){let n=Object.create(null);for(let t in e)n[t]=e[t];return t.forEach(function(e){for(let t in e)n[t]=e[t]}),n}var n=`</span>`,emitsWrappingTags=e=>!!e.scope,scopeToCSSClass=(e,{prefix:t})=>{if(e.startsWith(`language:`))return e.replace(`language:`,`language-`);if(e.includes(`.`)){let n=e.split(`.`);return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${`_`.repeat(t+1)}`)].join(` `)}return`${t}${e}`},HTMLRenderer=class{constructor(e,t){this.buffer=``,this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=escapeHTML(e)}openNode(e){if(!emitsWrappingTags(e))return;let t=scopeToCSSClass(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){emitsWrappingTags(e)&&(this.buffer+=n)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}},newNode=(e={})=>{let t={children:[]};return Object.assign(t,e),t},r=class TokenTree{constructor(){this.rootNode=newNode(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let t=newNode({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t==`string`?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(e){typeof e!=`string`&&e.children&&(e.children.every(e=>typeof e==`string`)?e.children=[e.children.join(``)]:e.children.forEach(e=>{TokenTree._collapse(e)}))}},TokenTreeEmitter=class extends r{constructor(e){super(),this.options=e}addText(e){e!==``&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){let n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new HTMLRenderer(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function source(e){return e?typeof e==`string`?e:e.source:null}function lookahead(e){return concat(`(?=`,e,`)`)}function anyNumberOfTimes(e){return concat(`(?:`,e,`)*`)}function optional(e){return concat(`(?:`,e,`)?`)}function concat(...e){return e.map(e=>source(e)).join(``)}function stripOptionsFromArgs(e){let t=e[e.length-1];return typeof t==`object`&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function either(...e){return`(`+(stripOptionsFromArgs(e).capture?``:`?:`)+e.map(e=>source(e)).join(`|`)+`)`}function countMatchGroups(e){return RegExp(e.toString()+`|`).exec(``).length-1}function startsWith(e,t){let n=e&&e.exec(t);return n&&n.index===0}var i=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _rewriteBackreferences(e,{joinWith:t}){let n=0;return e.map(e=>{n+=1;let t=n,r=source(e),a=``;for(;r.length>0;){let e=i.exec(r);if(!e){a+=r;break}a+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),e[0][0]===`\\`&&e[1]?a+=`\\`+String(Number(e[1])+t):(a+=e[0],e[0]===`(`&&n++)}return a}).map(e=>`(${e})`).join(t)}var a=/\b\B/,o=`[a-zA-Z]\\w*`,s=`[a-zA-Z_]\\w*`,c=`\\b\\d+(\\.\\d+)?`,l=`(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)`,u=`\\b(0b[01]+)`,d=`!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~`,SHEBANG=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=concat(t,/.*\b/,e.binary,/\b.*/)),inherit$1({scope:`meta`,begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{e.index!==0&&t.ignoreMatch()}},e)},f={begin:`\\\\[\\s\\S]`,relevance:0},p={scope:`string`,begin:`'`,end:`'`,illegal:`\\n`,contains:[f]},m={scope:`string`,begin:`"`,end:`"`,illegal:`\\n`,contains:[f]},h={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT=function(e,t,n={}){let r=inherit$1({scope:`comment`,begin:e,end:t,contains:[]},n);r.contains.push({scope:`doctag`,begin:`[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)`,end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let i=either(`I`,`a`,`is`,`so`,`us`,`to`,`at`,`if`,`in`,`it`,`on`,/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:concat(/[ ]+/,`(`,i,/[.]?[:]?([.][ ]|[ ])/,`){3}`)}),r},g=COMMENT(`//`,`$`),_=COMMENT(`/\\*`,`\\*/`),v=COMMENT(`#`,`$`),y={scope:`number`,begin:c,relevance:0},b={scope:`number`,begin:l,relevance:0},x={scope:`number`,begin:u,relevance:0},S={scope:`regexp`,begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[f,{begin:/\[/,end:/\]/,relevance:0,contains:[f]}]},C={scope:`title`,begin:o,relevance:0},w={scope:`title`,begin:s,relevance:0},T={begin:`\\.\\s*`+s,relevance:0},END_SAME_AS_BEGIN=function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},E=Object.freeze({__proto__:null,APOS_STRING_MODE:p,BACKSLASH_ESCAPE:f,BINARY_NUMBER_MODE:x,BINARY_NUMBER_RE:u,COMMENT,C_BLOCK_COMMENT_MODE:_,C_LINE_COMMENT_MODE:g,C_NUMBER_MODE:b,C_NUMBER_RE:l,END_SAME_AS_BEGIN,HASH_COMMENT_MODE:v,IDENT_RE:o,MATCH_NOTHING_RE:a,METHOD_GUARD:T,NUMBER_MODE:y,NUMBER_RE:c,PHRASAL_WORDS_MODE:h,QUOTE_STRING_MODE:m,REGEXP_MODE:S,RE_STARTERS_RE:d,SHEBANG,TITLE_MODE:C,UNDERSCORE_IDENT_RE:s,UNDERSCORE_TITLE_MODE:w});function skipIfHasPrecedingDot(e,t){e.input[e.index-1]===`.`&&t.ignoreMatch()}function scopeClassName(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function beginKeywords(e,t){t&&e.beginKeywords&&(e.begin=`\\b(`+e.beginKeywords.split(` `).join(`|`)+`)(?!\\.)(?=\\b|\\s)`,e.__beforeBegin=skipIfHasPrecedingDot,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function compileIllegal(e,t){Array.isArray(e.illegal)&&(e.illegal=either(...e.illegal))}function compileMatch(e,t){if(e.match){if(e.begin||e.end)throw Error(`begin & end are not supported with match`);e.begin=e.match,delete e.match}}function compileRelevance(e,t){e.relevance===void 0&&(e.relevance=1)}var beforeMatchExt=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error(`beforeMatch cannot be used with starts`);let n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=concat(n.beforeMatch,lookahead(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},D=[`of`,`and`,`for`,`in`,`not`,`or`,`if`,`then`,`parent`,`list`,`value`],O=`keyword`;function compileKeywords(e,t,n=O){let r=Object.create(null);return typeof e==`string`?compileList(n,e.split(` `)):Array.isArray(e)?compileList(n,e):Object.keys(e).forEach(function(n){Object.assign(r,compileKeywords(e[n],t,n))}),r;function compileList(e,n){t&&(n=n.map(e=>e.toLowerCase())),n.forEach(function(t){let n=t.split(`|`);r[n[0]]=[e,scoreForKeyword(n[0],n[1])]})}}function scoreForKeyword(e,t){return t?Number(t):commonKeyword(e)?0:1}function commonKeyword(e){return D.includes(e.toLowerCase())}var k={},error=e=>{console.error(e)},warn=(e,...t)=>{console.log(`WARN: ${e}`,...t)},deprecated=(e,t)=>{k[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),k[`${e}/${t}`]=!0)},A=Error();function remapScopeNames(e,t,{key:n}){let r=0,i=e[n],a={},o={};for(let e=1;e<=t.length;e++)o[e+r]=i[e],a[e+r]=!0,r+=countMatchGroups(t[e-1]);e[n]=o,e[n]._emit=a,e[n]._multi=!0}function beginMultiClass(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw error(`skip, excludeBegin, returnBegin not compatible with beginScope: {}`),A;if(typeof e.beginScope!=`object`||e.beginScope===null)throw error(`beginScope must be object`),A;remapScopeNames(e,e.begin,{key:`beginScope`}),e.begin=_rewriteBackreferences(e.begin,{joinWith:``})}}function endMultiClass(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw error(`skip, excludeEnd, returnEnd not compatible with endScope: {}`),A;if(typeof e.endScope!=`object`||e.endScope===null)throw error(`endScope must be object`),A;remapScopeNames(e,e.end,{key:`endScope`}),e.end=_rewriteBackreferences(e.end,{joinWith:``})}}function scopeSugar(e){e.scope&&typeof e.scope==`object`&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function MultiClass(e){scopeSugar(e),typeof e.beginScope==`string`&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope==`string`&&(e.endScope={_wrap:e.endScope}),beginMultiClass(e),endMultiClass(e)}function compileLanguage(e){function langRe(t,n){return new RegExp(source(t),`m`+(e.case_insensitive?`i`:``)+(e.unicodeRegex?`u`:``)+(n?`g`:``))}class MultiRegex{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=countMatchGroups(e)+1}compile(){this.regexes.length===0&&(this.exec=()=>null),this.matcherRe=langRe(_rewriteBackreferences(this.regexes.map(e=>e[1]),{joinWith:`|`}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let t=this.matcherRe.exec(e);if(!t)return null;let n=t.findIndex((e,t)=>t>0&&e!==void 0),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class ResumableMultiRegex{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let t=new MultiRegex;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),t.type===`begin`&&this.count++}exec(e){let t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition()&&!(n&&n.index===this.lastIndex)){let t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}function buildModeRegex(e){let t=new ResumableMultiRegex;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:`begin`})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:`end`}),e.illegal&&t.addRule(e.illegal,{type:`illegal`}),t}function compileMode(t,n){let r=t;if(t.isCompiled)return r;[scopeClassName,compileMatch,MultiClass,beforeMatchExt].forEach(e=>e(t,n)),e.compilerExtensions.forEach(e=>e(t,n)),t.__beforeBegin=null,[beginKeywords,compileIllegal,compileRelevance].forEach(e=>e(t,n)),t.isCompiled=!0;let i=null;return typeof t.keywords==`object`&&t.keywords.$pattern&&(t.keywords=Object.assign({},t.keywords),i=t.keywords.$pattern,delete t.keywords.$pattern),i=i||/\w+/,t.keywords&&(t.keywords=compileKeywords(t.keywords,e.case_insensitive)),r.keywordPatternRe=langRe(i,!0),n&&(t.begin||(t.begin=/\B|\b/),r.beginRe=langRe(r.begin),!t.end&&!t.endsWithParent&&(t.end=/\B|\b/),t.end&&(r.endRe=langRe(r.end)),r.terminatorEnd=source(r.end)||``,t.endsWithParent&&n.terminatorEnd&&(r.terminatorEnd+=(t.end?`|`:``)+n.terminatorEnd)),t.illegal&&(r.illegalRe=langRe(t.illegal)),t.contains||(t.contains=[]),t.contains=[].concat(...t.contains.map(function(e){return expandOrCloneMode(e===`self`?t:e)})),t.contains.forEach(function(e){compileMode(e,r)}),t.starts&&compileMode(t.starts,n),r.matcher=buildModeRegex(r),r}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes(`self`))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=inherit$1(e.classNameAliases||{}),compileMode(e)}function dependencyOnParent(e){return e?e.endsWithParent||dependencyOnParent(e.starts):!1}function expandOrCloneMode(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return inherit$1(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:dependencyOnParent(e)?inherit$1(e,{starts:e.starts?inherit$1(e.starts):null}):Object.isFrozen(e)?inherit$1(e):e}var ee=`11.11.1`,HTMLInjectionError=class extends Error{constructor(e,t){super(e),this.name=`HTMLInjectionError`,this.html=t}},j=escapeHTML,te=inherit$1,ne=Symbol(`nomatch`),re=7,HLJS=function(e){let t=Object.create(null),n=Object.create(null),r=[],i=!0,a=`Could not find the language '{}', did you forget to load/include a language module?`,o={disableAutodetect:!0,name:`Plain text`,contains:[]},s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:`hljs-`,cssSelector:`pre code`,languages:null,__emitter:TokenTreeEmitter};function shouldNotHighlight(e){return s.noHighlightRe.test(e)}function blockLanguage(e){let t=e.className+` `;t+=e.parentNode?e.parentNode.className:``;let n=s.languageDetectRe.exec(t);if(n){let t=getLanguage(n[1]);return t||(warn(a.replace(`{}`,n[1])),warn(`Falling back to no-highlight mode for this block.`,e)),t?n[1]:`no-highlight`}return t.split(/\s+/).find(e=>shouldNotHighlight(e)||getLanguage(e))}function highlight(e,t,n){let r=``,i=``;typeof t==`object`?(r=e,n=t.ignoreIllegals,i=t.language):(deprecated(`10.7.0`,`highlight(lang, code, ...args) has been deprecated.`),deprecated(`10.7.0`,`Please use highlight(code, options) instead.
60
+ `}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${escape(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=cleanUrl(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+escape(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n}){let r=cleanUrl(e);if(r===null)return escape(n);e=r;let i=`<img src="${e}" alt="${n}"`;return t&&(i+=` title="${escape(t)}"`),i+=`>`,i}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:escape(e.text)}},_TextRenderer=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}},X=class _Parser{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`renderer`,void 0),_defineProperty(this,`textRenderer`,void 0),this.options=e||F,this.options.renderer=this.options.renderer||new _Renderer,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new _TextRenderer}static parse(e,t){return new _Parser(t).parse(e)}static parseInline(e,t){return new _Parser(t).parseInline(e)}parse(e,t=!0){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=i,t=this.options.extensions.renderers[e.type].call({parser:this},e);if(t!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`html`,`paragraph`,`text`].includes(e.type)){n+=t||``;continue}}let a=i;switch(a.type){case`space`:n+=this.renderer.space(a);continue;case`hr`:n+=this.renderer.hr(a);continue;case`heading`:n+=this.renderer.heading(a);continue;case`code`:n+=this.renderer.code(a);continue;case`table`:n+=this.renderer.table(a);continue;case`blockquote`:n+=this.renderer.blockquote(a);continue;case`list`:n+=this.renderer.list(a);continue;case`html`:n+=this.renderer.html(a);continue;case`paragraph`:n+=this.renderer.paragraph(a);continue;case`text`:{let i=a,o=this.renderer.text(i);for(;r+1<e.length&&e[r+1].type===`text`;)i=e[++r],o+=`
61
+ `+this.renderer.text(i);t?n+=this.renderer.paragraph({type:`paragraph`,raw:o,text:o,tokens:[{type:`text`,raw:o,text:o,escaped:!0}]}):n+=o;continue}default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}parseInline(e,t=this.renderer){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},_Hooks=class{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`block`,void 0),this.options=e||F}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?Y.lex:Y.lexInline}provideParser(){return this.block?X.parse:X.parseInline}},_defineProperty(_Hooks,`passThroughHooks`,new Set([`preprocess`,`postprocess`,`processAllTokens`])),Marked=class{constructor(...e){_defineProperty(this,`defaults`,_getDefaults()),_defineProperty(this,`options`,this.setOptions),_defineProperty(this,`parse`,this.parseMarkdown(!0)),_defineProperty(this,`parseInline`,this.parseMarkdown(!1)),_defineProperty(this,`Parser`,X),_defineProperty(this,`Renderer`,_Renderer),_defineProperty(this,`TextRenderer`,_TextRenderer),_defineProperty(this,`Lexer`,Y),_defineProperty(this,`Tokenizer`,_Tokenizer),_defineProperty(this,`Hooks`,_Hooks),this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new _Renderer(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new _Tokenizer(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new _Hooks;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];_Hooks.passThroughHooks.has(n)?t[r]=e=>{if(this.defaults.async)return Promise.resolve(i.call(t,e)).then(e=>a.call(t,e));let n=i.call(t,e);return a.call(t,n)}:t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Y.lex(e,t??this.defaults)}parser(e,t){return X.parse(e,t??this.defaults)}parseMarkdown(e){let parse=(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(t==null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));i.hooks&&(i.hooks.options=i,i.hooks.block=e);let o=i.hooks?i.hooks.provideLexer():e?Y.lex:Y.lexInline,s=i.hooks?i.hooks.provideParser():e?X.parse:X.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(t):t).then(e=>o(e,i)).then(e=>i.hooks?i.hooks.processAllTokens(e):e).then(e=>i.walkTokens?Promise.all(this.walkTokens(e,i.walkTokens)).then(()=>e):e).then(e=>s(e,i)).then(e=>i.hooks?i.hooks.postprocess(e):e).catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let e=o(t,i);i.hooks&&(e=i.hooks.processAllTokens(e)),i.walkTokens&&this.walkTokens(e,i.walkTokens);let n=s(e,i);return i.hooks&&(n=i.hooks.postprocess(n)),n}catch(e){return a(e)}};return parse}onError(e,t){return n=>{if(n.message+=`
62
+ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+escape(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},Z=new Marked,marked.options=marked.setOptions=function(e){return Z.setOptions(e),marked.defaults=Z.defaults,changeDefaults(marked.defaults),marked},marked.getDefaults=_getDefaults,marked.defaults=F,marked.use=function(...e){return Z.use(...e),marked.defaults=Z.defaults,changeDefaults(marked.defaults),marked},marked.walkTokens=function(e,t){return Z.walkTokens(e,t)},marked.parseInline=Z.parseInline,marked.Parser=X,marked.parser=X.parse,marked.Renderer=_Renderer,marked.TextRenderer=_TextRenderer,marked.Lexer=Y,marked.lexer=Y.lex,marked.Tokenizer=_Tokenizer,marked.Hooks=_Hooks,marked.parse=marked,marked.options,marked.setOptions,marked.use,marked.walkTokens,marked.parseInline,X.parse,_n=Y.lex}));function splitByDelimiters(e,t,n){if(e.length===0)return[];let r=[],i=e.indexOf(t),a=e.indexOf(n,i);if(i>=0&&a>i)r.push(e.substring(0,i)),r.push(e.substring(i,a+n.length)),r=r.concat(splitByDelimiters(e.substring(a+n.length),t,n));else return[e];return r}function stripTrailingNewlines(e){return e.replace(/[\r\n]+$/,``)}function splitTextToken(e){if(containsComponent(e)){let t=splitByDelimiters(stripTrailingNewlines(e.text),`{{`,`}}`),n=splitByDelimiters(stripTrailingNewlines(e.raw),`{{`,`}}`);if(t.length===n.length)return t.map((e,r)=>({type:`text`,text:t[r],raw:n[r]}));throw Error(`Error parsing markdown`)}else return[e]}function splitParagraphToken(e){let t=[];if(containsComponent(e)){let n=splitByDelimiters(stripTrailingNewlines(e.text),`{{`,`}}`),r=splitByDelimiters(stripTrailingNewlines(e.raw),`{{`,`}}`);if(n.length===r.length){for(let e=0;e<n.length;e++){let i={type:`text`,text:n[e],raw:r[e]};isComponent(i)?t.push(i):_n(r[e]).forEach(e=>{e.type===`paragraph`?t=t.concat(e.tokens):t.push(e)})}return t}else throw Error(`Error parsing Markdown`)}else t.push(e);return t}function containsComponent(e){if(e.type===`text`||e.type===`paragraph`){let t=e.raw.indexOf(`{{`),n=e.raw.indexOf(`}}`);return t!==-1&&n!==-1&&n>t}else return!1}function isComponent(e){return e.type===`text`&&e.text.startsWith(`{{`)&&e.text.endsWith(`}}`)}function parseComponentSyntax(e){if(e.length>1e4)return null;let t=e.match(/^\{\{\s*<([\w-]+)((?:\s+[\w-]+="[^"]*")*)\s*\/>\s*\}\}$/);if(!t)return null;let n=t[1],r=t[2],i={};if(r){let e=/\s+([\w-]+)="([^"]*)"/g,t;for(;(t=e.exec(r))!==null;)i[t[1]]=t[2]}return{componentName:n,props:i}}function isInlineComponent(e){if(e.length>1e4)return!1;let t=e.trim();return/^<[\w-]+(?:\s+[\w-]+="[^"]*")*\s*\/?>$/.test(t)}function parseComponentToken(e){return parseComponentSyntax(`text`in e?e.text:`raw`in e?e.raw:``)}var yn=__esmMin((()=>{vn()})),bn=__commonJSMin(((e,t)=>{function deepFreeze(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw Error(`map is read-only`)}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw Error(`set is read-only`)}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let n=e[t],r=typeof n;(r===`object`||r===`function`)&&!Object.isFrozen(n)&&deepFreeze(n)}),e}var Response=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function escapeHTML(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#x27;`)}function inherit$1(e,...t){let n=Object.create(null);for(let t in e)n[t]=e[t];return t.forEach(function(e){for(let t in e)n[t]=e[t]}),n}var n=`</span>`,emitsWrappingTags=e=>!!e.scope,scopeToCSSClass=(e,{prefix:t})=>{if(e.startsWith(`language:`))return e.replace(`language:`,`language-`);if(e.includes(`.`)){let n=e.split(`.`);return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${`_`.repeat(t+1)}`)].join(` `)}return`${t}${e}`},HTMLRenderer=class{constructor(e,t){this.buffer=``,this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=escapeHTML(e)}openNode(e){if(!emitsWrappingTags(e))return;let t=scopeToCSSClass(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){emitsWrappingTags(e)&&(this.buffer+=n)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}},newNode=(e={})=>{let t={children:[]};return Object.assign(t,e),t},r=class TokenTree{constructor(){this.rootNode=newNode(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let t=newNode({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t==`string`?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(e){typeof e!=`string`&&e.children&&(e.children.every(e=>typeof e==`string`)?e.children=[e.children.join(``)]:e.children.forEach(e=>{TokenTree._collapse(e)}))}},TokenTreeEmitter=class extends r{constructor(e){super(),this.options=e}addText(e){e!==``&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){let n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new HTMLRenderer(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function source(e){return e?typeof e==`string`?e:e.source:null}function lookahead(e){return concat(`(?=`,e,`)`)}function anyNumberOfTimes(e){return concat(`(?:`,e,`)*`)}function optional(e){return concat(`(?:`,e,`)?`)}function concat(...e){return e.map(e=>source(e)).join(``)}function stripOptionsFromArgs(e){let t=e[e.length-1];return typeof t==`object`&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function either(...e){return`(`+(stripOptionsFromArgs(e).capture?``:`?:`)+e.map(e=>source(e)).join(`|`)+`)`}function countMatchGroups(e){return RegExp(e.toString()+`|`).exec(``).length-1}function startsWith(e,t){let n=e&&e.exec(t);return n&&n.index===0}var i=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _rewriteBackreferences(e,{joinWith:t}){let n=0;return e.map(e=>{n+=1;let t=n,r=source(e),a=``;for(;r.length>0;){let e=i.exec(r);if(!e){a+=r;break}a+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),e[0][0]===`\\`&&e[1]?a+=`\\`+String(Number(e[1])+t):(a+=e[0],e[0]===`(`&&n++)}return a}).map(e=>`(${e})`).join(t)}var a=/\b\B/,o=`[a-zA-Z]\\w*`,s=`[a-zA-Z_]\\w*`,c=`\\b\\d+(\\.\\d+)?`,l=`(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)`,u=`\\b(0b[01]+)`,d=`!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~`,SHEBANG=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=concat(t,/.*\b/,e.binary,/\b.*/)),inherit$1({scope:`meta`,begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{e.index!==0&&t.ignoreMatch()}},e)},f={begin:`\\\\[\\s\\S]`,relevance:0},p={scope:`string`,begin:`'`,end:`'`,illegal:`\\n`,contains:[f]},m={scope:`string`,begin:`"`,end:`"`,illegal:`\\n`,contains:[f]},h={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT=function(e,t,n={}){let r=inherit$1({scope:`comment`,begin:e,end:t,contains:[]},n);r.contains.push({scope:`doctag`,begin:`[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)`,end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let i=either(`I`,`a`,`is`,`so`,`us`,`to`,`at`,`if`,`in`,`it`,`on`,/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:concat(/[ ]+/,`(`,i,/[.]?[:]?([.][ ]|[ ])/,`){3}`)}),r},g=COMMENT(`//`,`$`),_=COMMENT(`/\\*`,`\\*/`),v=COMMENT(`#`,`$`),y={scope:`number`,begin:c,relevance:0},b={scope:`number`,begin:l,relevance:0},x={scope:`number`,begin:u,relevance:0},S={scope:`regexp`,begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[f,{begin:/\[/,end:/\]/,relevance:0,contains:[f]}]},C={scope:`title`,begin:o,relevance:0},w={scope:`title`,begin:s,relevance:0},T={begin:`\\.\\s*`+s,relevance:0},END_SAME_AS_BEGIN=function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},E=Object.freeze({__proto__:null,APOS_STRING_MODE:p,BACKSLASH_ESCAPE:f,BINARY_NUMBER_MODE:x,BINARY_NUMBER_RE:u,COMMENT,C_BLOCK_COMMENT_MODE:_,C_LINE_COMMENT_MODE:g,C_NUMBER_MODE:b,C_NUMBER_RE:l,END_SAME_AS_BEGIN,HASH_COMMENT_MODE:v,IDENT_RE:o,MATCH_NOTHING_RE:a,METHOD_GUARD:T,NUMBER_MODE:y,NUMBER_RE:c,PHRASAL_WORDS_MODE:h,QUOTE_STRING_MODE:m,REGEXP_MODE:S,RE_STARTERS_RE:d,SHEBANG,TITLE_MODE:C,UNDERSCORE_IDENT_RE:s,UNDERSCORE_TITLE_MODE:w});function skipIfHasPrecedingDot(e,t){e.input[e.index-1]===`.`&&t.ignoreMatch()}function scopeClassName(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function beginKeywords(e,t){t&&e.beginKeywords&&(e.begin=`\\b(`+e.beginKeywords.split(` `).join(`|`)+`)(?!\\.)(?=\\b|\\s)`,e.__beforeBegin=skipIfHasPrecedingDot,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function compileIllegal(e,t){Array.isArray(e.illegal)&&(e.illegal=either(...e.illegal))}function compileMatch(e,t){if(e.match){if(e.begin||e.end)throw Error(`begin & end are not supported with match`);e.begin=e.match,delete e.match}}function compileRelevance(e,t){e.relevance===void 0&&(e.relevance=1)}var beforeMatchExt=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error(`beforeMatch cannot be used with starts`);let n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=concat(n.beforeMatch,lookahead(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},D=[`of`,`and`,`for`,`in`,`not`,`or`,`if`,`then`,`parent`,`list`,`value`],O=`keyword`;function compileKeywords(e,t,n=O){let r=Object.create(null);return typeof e==`string`?compileList(n,e.split(` `)):Array.isArray(e)?compileList(n,e):Object.keys(e).forEach(function(n){Object.assign(r,compileKeywords(e[n],t,n))}),r;function compileList(e,n){t&&(n=n.map(e=>e.toLowerCase())),n.forEach(function(t){let n=t.split(`|`);r[n[0]]=[e,scoreForKeyword(n[0],n[1])]})}}function scoreForKeyword(e,t){return t?Number(t):commonKeyword(e)?0:1}function commonKeyword(e){return D.includes(e.toLowerCase())}var k={},error=e=>{console.error(e)},warn=(e,...t)=>{console.log(`WARN: ${e}`,...t)},deprecated=(e,t)=>{k[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),k[`${e}/${t}`]=!0)},A=Error();function remapScopeNames(e,t,{key:n}){let r=0,i=e[n],a={},o={};for(let e=1;e<=t.length;e++)o[e+r]=i[e],a[e+r]=!0,r+=countMatchGroups(t[e-1]);e[n]=o,e[n]._emit=a,e[n]._multi=!0}function beginMultiClass(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw error(`skip, excludeBegin, returnBegin not compatible with beginScope: {}`),A;if(typeof e.beginScope!=`object`||e.beginScope===null)throw error(`beginScope must be object`),A;remapScopeNames(e,e.begin,{key:`beginScope`}),e.begin=_rewriteBackreferences(e.begin,{joinWith:``})}}function endMultiClass(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw error(`skip, excludeEnd, returnEnd not compatible with endScope: {}`),A;if(typeof e.endScope!=`object`||e.endScope===null)throw error(`endScope must be object`),A;remapScopeNames(e,e.end,{key:`endScope`}),e.end=_rewriteBackreferences(e.end,{joinWith:``})}}function scopeSugar(e){e.scope&&typeof e.scope==`object`&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function MultiClass(e){scopeSugar(e),typeof e.beginScope==`string`&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope==`string`&&(e.endScope={_wrap:e.endScope}),beginMultiClass(e),endMultiClass(e)}function compileLanguage(e){function langRe(t,n){return new RegExp(source(t),`m`+(e.case_insensitive?`i`:``)+(e.unicodeRegex?`u`:``)+(n?`g`:``))}class MultiRegex{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=countMatchGroups(e)+1}compile(){this.regexes.length===0&&(this.exec=()=>null),this.matcherRe=langRe(_rewriteBackreferences(this.regexes.map(e=>e[1]),{joinWith:`|`}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let t=this.matcherRe.exec(e);if(!t)return null;let n=t.findIndex((e,t)=>t>0&&e!==void 0),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class ResumableMultiRegex{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let t=new MultiRegex;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),t.type===`begin`&&this.count++}exec(e){let t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition()&&!(n&&n.index===this.lastIndex)){let t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}function buildModeRegex(e){let t=new ResumableMultiRegex;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:`begin`})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:`end`}),e.illegal&&t.addRule(e.illegal,{type:`illegal`}),t}function compileMode(t,n){let r=t;if(t.isCompiled)return r;[scopeClassName,compileMatch,MultiClass,beforeMatchExt].forEach(e=>e(t,n)),e.compilerExtensions.forEach(e=>e(t,n)),t.__beforeBegin=null,[beginKeywords,compileIllegal,compileRelevance].forEach(e=>e(t,n)),t.isCompiled=!0;let i=null;return typeof t.keywords==`object`&&t.keywords.$pattern&&(t.keywords=Object.assign({},t.keywords),i=t.keywords.$pattern,delete t.keywords.$pattern),i=i||/\w+/,t.keywords&&(t.keywords=compileKeywords(t.keywords,e.case_insensitive)),r.keywordPatternRe=langRe(i,!0),n&&(t.begin||(t.begin=/\B|\b/),r.beginRe=langRe(r.begin),!t.end&&!t.endsWithParent&&(t.end=/\B|\b/),t.end&&(r.endRe=langRe(r.end)),r.terminatorEnd=source(r.end)||``,t.endsWithParent&&n.terminatorEnd&&(r.terminatorEnd+=(t.end?`|`:``)+n.terminatorEnd)),t.illegal&&(r.illegalRe=langRe(t.illegal)),t.contains||(t.contains=[]),t.contains=[].concat(...t.contains.map(function(e){return expandOrCloneMode(e===`self`?t:e)})),t.contains.forEach(function(e){compileMode(e,r)}),t.starts&&compileMode(t.starts,n),r.matcher=buildModeRegex(r),r}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes(`self`))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=inherit$1(e.classNameAliases||{}),compileMode(e)}function dependencyOnParent(e){return e?e.endsWithParent||dependencyOnParent(e.starts):!1}function expandOrCloneMode(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return inherit$1(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:dependencyOnParent(e)?inherit$1(e,{starts:e.starts?inherit$1(e.starts):null}):Object.isFrozen(e)?inherit$1(e):e}var ee=`11.11.1`,HTMLInjectionError=class extends Error{constructor(e,t){super(e),this.name=`HTMLInjectionError`,this.html=t}},j=escapeHTML,te=inherit$1,ne=Symbol(`nomatch`),re=7,HLJS=function(e){let t=Object.create(null),n=Object.create(null),r=[],i=!0,a=`Could not find the language '{}', did you forget to load/include a language module?`,o={disableAutodetect:!0,name:`Plain text`,contains:[]},s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:`hljs-`,cssSelector:`pre code`,languages:null,__emitter:TokenTreeEmitter};function shouldNotHighlight(e){return s.noHighlightRe.test(e)}function blockLanguage(e){let t=e.className+` `;t+=e.parentNode?e.parentNode.className:``;let n=s.languageDetectRe.exec(t);if(n){let t=getLanguage(n[1]);return t||(warn(a.replace(`{}`,n[1])),warn(`Falling back to no-highlight mode for this block.`,e)),t?n[1]:`no-highlight`}return t.split(/\s+/).find(e=>shouldNotHighlight(e)||getLanguage(e))}function highlight(e,t,n){let r=``,i=``;typeof t==`object`?(r=e,n=t.ignoreIllegals,i=t.language):(deprecated(`10.7.0`,`highlight(lang, code, ...args) has been deprecated.`),deprecated(`10.7.0`,`Please use highlight(code, options) instead.
63
63
  https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(n=!0);let a={code:r,language:i};fire(`before:highlight`,a);let o=a.result?a.result:_highlight(a.language,a.code,n);return o.code=a.code,fire(`after:highlight`,o),o}function _highlight(e,n,r,o){let c=Object.create(null);function keywordData(e,t){return e.keywords[t]}function processKeywords(){if(!p.keywords){h.addText(g);return}let e=0;p.keywordPatternRe.lastIndex=0;let t=p.keywordPatternRe.exec(g),n=``;for(;t;){n+=g.substring(e,t.index);let r=u.case_insensitive?t[0].toLowerCase():t[0],i=keywordData(p,r);if(i){let[e,a]=i;if(h.addText(n),n=``,c[r]=(c[r]||0)+1,c[r]<=re&&(_+=a),e.startsWith(`_`))n+=t[0];else{let n=u.classNameAliases[e]||e;emitKeyword(t[0],n)}}else n+=t[0];e=p.keywordPatternRe.lastIndex,t=p.keywordPatternRe.exec(g)}n+=g.substring(e),h.addText(n)}function processSubLanguage(){if(g===``)return;let e=null;if(typeof p.subLanguage==`string`){if(!t[p.subLanguage]){h.addText(g);return}e=_highlight(p.subLanguage,g,!0,m[p.subLanguage]),m[p.subLanguage]=e._top}else e=highlightAuto(g,p.subLanguage.length?p.subLanguage:null);p.relevance>0&&(_+=e.relevance),h.__addSublanguage(e._emitter,e.language)}function processBuffer(){p.subLanguage==null?processKeywords():processSubLanguage(),g=``}function emitKeyword(e,t){e!==``&&(h.startScope(t),h.addText(e),h.endScope())}function emitMultiClass(e,t){let n=1,r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}let r=u.classNameAliases[e[n]]||e[n],i=t[n];r?emitKeyword(i,r):(g=i,processKeywords(),g=``),n++}}function startNewMode(e,t){return e.scope&&typeof e.scope==`string`&&h.openNode(u.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(emitKeyword(g,u.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),g=``):e.beginScope._multi&&(emitMultiClass(e.beginScope,t),g=``)),p=Object.create(e,{parent:{value:p}}),p}function endOfMode(e,t,n){let r=startsWith(e.endRe,n);if(r){if(e[`on:end`]){let n=new Response(e);e[`on:end`](t,n),n.isMatchIgnored&&(r=!1)}if(r){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return endOfMode(e.parent,t,n)}function doIgnore(e){return p.matcher.regexIndex===0?(g+=e[0],1):(b=!0,0)}function doBeginMatch(e){let t=e[0],n=e.rule,r=new Response(n),i=[n.__beforeBegin,n[`on:begin`]];for(let n of i)if(n&&(n(e,r),r.isMatchIgnored))return doIgnore(t);return n.skip?g+=t:(n.excludeBegin&&(g+=t),processBuffer(),!n.returnBegin&&!n.excludeBegin&&(g=t)),startNewMode(n,e),n.returnBegin?0:t.length}function doEndMatch(e){let t=e[0],r=n.substring(e.index),i=endOfMode(p,e,r);if(!i)return ne;let a=p;p.endScope&&p.endScope._wrap?(processBuffer(),emitKeyword(t,p.endScope._wrap)):p.endScope&&p.endScope._multi?(processBuffer(),emitMultiClass(p.endScope,e)):a.skip?g+=t:(a.returnEnd||a.excludeEnd||(g+=t),processBuffer(),a.excludeEnd&&(g=t));do p.scope&&h.closeNode(),!p.skip&&!p.subLanguage&&(_+=p.relevance),p=p.parent;while(p!==i.parent);return i.starts&&startNewMode(i.starts,e),a.returnEnd?0:t.length}function processContinuations(){let e=[];for(let t=p;t!==u;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>h.openNode(e))}let l={};function processLexeme(t,a){let o=a&&a[0];if(g+=t,o==null)return processBuffer(),0;if(l.type===`begin`&&a.type===`end`&&l.index===a.index&&o===``){if(g+=n.slice(a.index,a.index+1),!i){let t=Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=l.rule,t}return 1}if(l=a,a.type===`begin`)return doBeginMatch(a);if(a.type===`illegal`&&!r){let e=Error(`Illegal lexeme "`+o+`" for mode "`+(p.scope||`<unnamed>`)+`"`);throw e.mode=p,e}else if(a.type===`end`){let e=doEndMatch(a);if(e!==ne)return e}if(a.type===`illegal`&&o===``)return g+=`
64
- `,1;if(y>1e5&&y>a.index*3)throw Error(`potential infinite loop, way more iterations than matches`);return g+=o,o.length}let u=getLanguage(e);if(!u)throw error(a.replace(`{}`,e)),Error(`Unknown language: "`+e+`"`);let d=compileLanguage(u),f=``,p=o||d,m={},h=new s.__emitter(s);processContinuations();let g=``,_=0,v=0,y=0,b=!1;try{if(u.__emitTokens)u.__emitTokens(n,h);else{for(p.matcher.considerAll();;){y++,b?b=!1:p.matcher.considerAll(),p.matcher.lastIndex=v;let e=p.matcher.exec(n);if(!e)break;let t=processLexeme(n.substring(v,e.index),e);v=e.index+t}processLexeme(n.substring(v))}return h.finalize(),f=h.toHTML(),{language:e,value:f,relevance:_,illegal:!1,_emitter:h,_top:p}}catch(t){if(t.message&&t.message.includes(`Illegal`))return{language:e,value:j(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:v,context:n.slice(v-100,v+100),mode:t.mode,resultSoFar:f},_emitter:h};if(i)return{language:e,value:j(n),illegal:!1,relevance:0,errorRaised:t,_emitter:h,_top:p};throw t}}function justTextHighlightResult(e){let t={value:j(e),illegal:!1,relevance:0,_top:o,_emitter:new s.__emitter(s)};return t._emitter.addText(e),t}function highlightAuto(e,n){n=n||s.languages||Object.keys(t);let r=justTextHighlightResult(e),i=n.filter(getLanguage).filter(autoDetection).map(t=>_highlight(t,e,!1));i.unshift(r);let[a,o]=i.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(getLanguage(e.language).supersetOf===t.language)return 1;if(getLanguage(t.language).supersetOf===e.language)return-1}return 0}),c=a;return c.secondBest=o,c}function updateClassName(e,t,r){let i=t&&n[t]||r;e.classList.add(`hljs`),e.classList.add(`language-${i}`)}function highlightElement(e){let t=null,n=blockLanguage(e);if(shouldNotHighlight(n))return;if(fire(`before:highlightElement`,{el:e,language:n}),e.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);return}if(e.children.length>0&&(s.ignoreUnescapedHTML||(console.warn(`One of your code blocks includes unescaped HTML. This is a potentially serious security risk.`),console.warn(`https://github.com/highlightjs/highlight.js/wiki/security`),console.warn(`The element with unescaped HTML:`),console.warn(e)),s.throwUnescapedHTML))throw new HTMLInjectionError(`One of your code blocks includes unescaped HTML.`,e.innerHTML);t=e;let r=t.textContent,i=n?highlight(r,{language:n,ignoreIllegals:!0}):highlightAuto(r);e.innerHTML=i.value,e.dataset.highlighted=`yes`,updateClassName(e,n,i.language),e.result={language:i.language,re:i.relevance,relevance:i.relevance},i.secondBest&&(e.secondBest={language:i.secondBest.language,relevance:i.secondBest.relevance}),fire(`after:highlightElement`,{el:e,result:i,text:r})}function configure(e){s=te(s,e)}let initHighlighting=()=>{highlightAll(),deprecated(`10.6.0`,`initHighlighting() deprecated. Use highlightAll() now.`)};function initHighlightingOnLoad(){highlightAll(),deprecated(`10.6.0`,`initHighlightingOnLoad() deprecated. Use highlightAll() now.`)}let c=!1;function highlightAll(){function boot(){highlightAll()}if(document.readyState===`loading`){c||window.addEventListener(`DOMContentLoaded`,boot,!1),c=!0;return}document.querySelectorAll(s.cssSelector).forEach(highlightElement)}function registerLanguage(n,r){let a=null;try{a=r(e)}catch(e){if(error(`Language definition for '{}' could not be registered.`.replace(`{}`,n)),i)error(e);else throw e;a=o}a.name||(a.name=n),t[n]=a,a.rawDefinition=r.bind(null,e),a.aliases&&registerAliases(a.aliases,{languageName:n})}function unregisterLanguage(e){delete t[e];for(let t of Object.keys(n))n[t]===e&&delete n[t]}function listLanguages(){return Object.keys(t)}function getLanguage(e){return e=(e||``).toLowerCase(),t[e]||t[n[e]]}function registerAliases(e,{languageName:t}){typeof e==`string`&&(e=[e]),e.forEach(e=>{n[e.toLowerCase()]=t})}function autoDetection(e){let t=getLanguage(e);return t&&!t.disableAutodetect}function upgradePluginAPI(e){e[`before:highlightBlock`]&&!e[`before:highlightElement`]&&(e[`before:highlightElement`]=t=>{e[`before:highlightBlock`](Object.assign({block:t.el},t))}),e[`after:highlightBlock`]&&!e[`after:highlightElement`]&&(e[`after:highlightElement`]=t=>{e[`after:highlightBlock`](Object.assign({block:t.el},t))})}function addPlugin(e){upgradePluginAPI(e),r.push(e)}function removePlugin(e){let t=r.indexOf(e);t!==-1&&r.splice(t,1)}function fire(e,t){let n=e;r.forEach(function(e){e[n]&&e[n](t)})}function deprecateHighlightBlock(e){return deprecated(`10.7.0`,`highlightBlock will be removed entirely in v12.0`),deprecated(`10.7.0`,`Please use highlightElement now.`),highlightElement(e)}Object.assign(e,{highlight,highlightAuto,highlightAll,highlightElement,highlightBlock:deprecateHighlightBlock,configure,initHighlighting,initHighlightingOnLoad,registerLanguage,unregisterLanguage,listLanguages,getLanguage,registerAliases,autoDetection,inherit:te,addPlugin,removePlugin}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=ee,e.regex={concat,lookahead,either,optional,anyNumberOfTimes};for(let e in E)typeof E[e]==`object`&&deepFreeze(E[e]);return Object.assign(e,E),e},M=HLJS({});M.newInstance=()=>HLJS({}),t.exports=M,M.HighlightJS=M,M.default=M})),An,Q,jn=__esmMin((()=>{An=__toESM(kn()),Q=An.default})),Mn,Nn,Pn=__esmMin((()=>{jn(),Mn=(0,t.defineComponent)({props:{code:{type:String,required:!0},language:{type:String,default:``},autodetect:{type:Boolean,default:!0},ignoreIllegals:{type:Boolean,default:!0}},setup:function(e){var n=(0,t.ref)(e.language);(0,t.watch)((function(){return e.language}),(function(e){n.value=e}));var r=(0,t.computed)((function(){return e.autodetect||!n.value})),i=(0,t.computed)((function(){return!r.value&&!Q.getLanguage(n.value)}));return{className:(0,t.computed)((function(){return i.value?``:`hljs `+n.value})),highlightedCode:(0,t.computed)((function(){if(i.value)return console.warn(`The language "`+n.value+`" you specified could not be found.`),e.code.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#x27;`);if(r.value){var t=Q.highlightAuto(e.code);return n.value=t.language??``,t.value}return(t=Q.highlight(e.code,{language:n.value,ignoreIllegals:e.ignoreIllegals})).value}))}},render:function(){return(0,t.h)(`pre`,{},[(0,t.h)(`code`,{class:this.className,innerHTML:this.highlightedCode,tabindex:`0`})])}}),Nn={install:function(e){e.component(`highlightjs`,Mn)},component:Mn}}));function javascript$1(e){let t=e.regex,hasClosingTag=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},n=Fn,r={begin:`<>`,end:`</>`},i=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n=e[0].length+e.index,r=e.input[n];if(r===`<`||r===`,`){t.ignoreMatch();return}r===`>`&&(hasClosingTag(e,{after:n})||t.ignoreMatch());let i,a=e.input.substring(n);if(i=a.match(/^\s*=/)){t.ignoreMatch();return}if((i=a.match(/^\s+extends\s+/))&&i.index===0){t.ignoreMatch();return}}},o={$pattern:Fn,keyword:In,literal:Ln,built_in:Hn,"variable.language":Vn},s=`[0-9](_?[0-9])*`,c=`\\.(${s})`,l=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,u={className:`number`,variants:[{begin:`(\\b(${l})((${c})|\\.)?|(${c}))[eE][+-]?(${s})\\b`},{begin:`\\b(${l})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},d={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:o,contains:[]},f={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`xml`}},p={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`css`}},m={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`graphql`}},h={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,d]},g={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:n+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},_=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,{match:/\$\d+/},u];d.contains=_.concat({begin:/\{/,end:/\}/,keywords:o,contains:[`self`].concat(_)});let v=[].concat(g,d.contains),y=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:[`self`].concat(v)}]),b={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y},x={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,t.concat(n,`(`,t.concat(/\./,n),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,n],scope:{1:`keyword`,3:`title.class`}}]},S={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...Rn,...zn]}},C={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},w={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[b],illegal:/%/},T={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function noneOf(e){return t.concat(`(?!`,e.join(`|`),`)`)}let E={match:t.concat(/\b/,noneOf([...Bn,`super`,`import`].map(e=>`${e}\\s*\\(`)),n,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},D={begin:t.concat(/\./,t.lookahead(t.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},O={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},b]},k=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,A={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(k)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[b]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:o,exports:{PARAMS_CONTAINS:y,CLASS_REFERENCE:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),C,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,g,{match:/\$\d+/},u,S,{scope:`attr`,match:n+t.lookahead(`:`),relevance:0},A,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[g,e.REGEXP_MODE,{className:`function`,begin:k,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:i},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:`xml`,contains:[{begin:a.begin,end:a.end,skip:!0,contains:[`self`]}]}]},w,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[b,e.inherit(e.TITLE_MODE,{begin:n,className:`title.function`})]},{match:/\.\.\./,relevance:0},D,{match:`\\$`+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[b]},E,T,x,O,{match:/\$[(.]/}]}}var Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un=__esmMin((()=>{Fn=`[A-Za-z$_][0-9A-Za-z$_]*`,In=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),Ln=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],Rn=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),zn=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],Bn=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],Vn=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],Hn=[].concat(Bn,Rn,zn),__name(javascript$1,`javascript`)}));function javascript(e){let t=e.regex,hasClosingTag=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},n=$,r={begin:`<>`,end:`</>`},i=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n=e[0].length+e.index,r=e.input[n];if(r===`<`||r===`,`){t.ignoreMatch();return}r===`>`&&(hasClosingTag(e,{after:n})||t.ignoreMatch());let i,a=e.input.substring(n);if(i=a.match(/^\s*=/)){t.ignoreMatch();return}if((i=a.match(/^\s+extends\s+/))&&i.index===0){t.ignoreMatch();return}}},o={$pattern:$,keyword:Wn,literal:Gn,built_in:Xn,"variable.language":Yn},s=`[0-9](_?[0-9])*`,c=`\\.(${s})`,l=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,u={className:`number`,variants:[{begin:`(\\b(${l})((${c})|\\.)?|(${c}))[eE][+-]?(${s})\\b`},{begin:`\\b(${l})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},d={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:o,contains:[]},f={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`xml`}},p={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`css`}},m={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`graphql`}},h={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,d]},g={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:n+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},_=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,{match:/\$\d+/},u];d.contains=_.concat({begin:/\{/,end:/\}/,keywords:o,contains:[`self`].concat(_)});let v=[].concat(g,d.contains),y=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:[`self`].concat(v)}]),b={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y},x={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,t.concat(n,`(`,t.concat(/\./,n),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,n],scope:{1:`keyword`,3:`title.class`}}]},S={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...Kn,...qn]}},C={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},w={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[b],illegal:/%/},T={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function noneOf(e){return t.concat(`(?!`,e.join(`|`),`)`)}let E={match:t.concat(/\b/,noneOf([...Jn,`super`,`import`].map(e=>`${e}\\s*\\(`)),n,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},D={begin:t.concat(/\./,t.lookahead(t.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},O={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},b]},k=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,A={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(k)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[b]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:o,exports:{PARAMS_CONTAINS:y,CLASS_REFERENCE:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),C,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,g,{match:/\$\d+/},u,S,{scope:`attr`,match:n+t.lookahead(`:`),relevance:0},A,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[g,e.REGEXP_MODE,{className:`function`,begin:k,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:i},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:`xml`,contains:[{begin:a.begin,end:a.end,skip:!0,contains:[`self`]}]}]},w,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[b,e.inherit(e.TITLE_MODE,{begin:n,className:`title.function`})]},{match:/\.\.\./,relevance:0},D,{match:`\\$`+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[b]},E,T,x,O,{match:/\$[(.]/}]}}function typescript(e){let t=e.regex,n=javascript(e),r=$,i=[`any`,`void`,`number`,`boolean`,`string`,`object`,`never`,`symbol`,`bigint`,`unknown`],a={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:`keyword`,3:`title.class`}},o={beginKeywords:`interface`,end:/\{/,excludeEnd:!0,keywords:{keyword:`interface extends`,built_in:i},contains:[n.exports.CLASS_REFERENCE]},s={className:`meta`,relevance:10,begin:/^\s*['"]use strict['"]/},c={$pattern:$,keyword:Wn.concat([`type`,`interface`,`public`,`private`,`protected`,`implements`,`declare`,`abstract`,`readonly`,`enum`,`override`,`satisfies`]),literal:Gn,built_in:Xn.concat(i),"variable.language":Yn},l={className:`meta`,begin:`@`+r},swapMode=(e,t,n)=>{let r=e.contains.findIndex(e=>e.label===t);if(r===-1)throw Error(`can not find mode to replace`);e.contains.splice(r,1,n)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(l);let u=n.contains.find(e=>e.scope===`attr`),d=Object.assign({},u,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,u,d]),n.contains=n.contains.concat([l,a,o,d]),swapMode(n,`shebang`,e.SHEBANG()),swapMode(n,`use_strict`,s);let f=n.contains.find(e=>e.label===`func.def`);return f.relevance=0,Object.assign(n,{name:`TypeScript`,aliases:[`ts`,`tsx`,`mts`,`cts`]}),n}var $,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn=__esmMin((()=>{$=`[A-Za-z$_][0-9A-Za-z$_]*`,Wn=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),Gn=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],Kn=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),qn=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],Jn=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],Yn=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],Xn=[].concat(Jn,Kn,qn)}));function css(e){let t=e.regex,n=MODES(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i=/@-?\w[\w]*(-\w+)*/,a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:`CSS`,case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:`from to`},classNameAliases:{keyframePosition:`selector-tag`},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:`selector-id`,begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:`selector-class`,begin:`\\.[a-zA-Z-][a-zA-Z0-9_-]*`,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:`selector-pseudo`,variants:[{begin:`:(`+nr.join(`|`)+`)`},{begin:`:(:)?(`+rr.join(`|`)+`)`}]},n.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+ir.join(`|`)+`)\\b`},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:`url data-uri`},contains:[...a,{className:`string`,begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:`[{;]`,relevance:0,illegal:/:/,contains:[{className:`keyword`,begin:i},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:tr.join(` `)},contains:[{begin:/[a-z-]+(?=:)/,className:`attribute`},...a,n.CSS_NUMBER_MODE]}]},{className:`selector-tag`,begin:`\\b(`+er.join(`|`)+`)\\b`}]}}var MODES,Qn,$n,er,tr,nr,rr,ir,ar=__esmMin((()=>{MODES=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Qn=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),$n=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),er=[...Qn,...$n],tr=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),nr=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),rr=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),ir=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse()}));function xml(e){let t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:`symbol`,begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:`keyword`,begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(a,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:`string`}),c=e.inherit(e.QUOTE_STRING_MODE,{className:`string`}),l={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:`attr`,begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:`string`,endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:`HTML, XML`,aliases:[`html`,`xhtml`,`rss`,`atom`,`xjb`,`xsd`,`xsl`,`plist`,`wsf`,`svg`],case_insensitive:!0,unicodeRegex:!0,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,relevance:10,contains:[a,c,s,o,{begin:/\[/,end:/\]/,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,contains:[a,o,c,s]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{className:`meta`,end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:`tag`,begin:/<style(?=\s|>)/,end:/>/,keywords:{name:`style`},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:[`css`,`xml`]}},{className:`tag`,begin:/<script(?=\s|>)/,end:/>/,keywords:{name:`script`},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:[`javascript`,`handlebars`,`xml`]}},{className:`tag`,begin:/<>|<\/>/},{className:`tag`,begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:`name`,begin:n,relevance:0,starts:l}]},{className:`tag`,begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:`name`,begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}var or=__esmMin((()=>{}));function bash(e){let t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:[`self`,{begin:/:-/,contains:[n]}]};Object.assign(n,{className:`variable`,variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,`(?![\\w\\d])(?![$])`)},r]});let i={className:`subst`,begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:`comment`}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:`string`})]}},s={className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(s);let c={match:/\\"/},l={className:`string`,begin:/'/,end:/'/},u={match:/\\'/},d={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:`number`},e.NUMBER_MODE,n]},f=e.SHEBANG({binary:`(${[`fish`,`bash`,`zsh`,`sh`,`csh`,`ksh`,`tcsh`,`dash`,`scsh`].join(`|`)})`,relevance:10}),p={className:`function`,begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},m=[`if`,`then`,`else`,`elif`,`fi`,`time`,`for`,`while`,`until`,`in`,`do`,`done`,`case`,`esac`,`coproc`,`function`,`select`],h=[`true`,`false`],g={match:/(\/[a-z._-]+)+/},_=[`break`,`cd`,`continue`,`eval`,`exec`,`exit`,`export`,`getopts`,`hash`,`pwd`,`readonly`,`return`,`shift`,`test`,`times`,`trap`,`umask`,`unset`],v=[`alias`,`bind`,`builtin`,`caller`,`command`,`declare`,`echo`,`enable`,`help`,`let`,`local`,`logout`,`mapfile`,`printf`,`read`,`readarray`,`source`,`sudo`,`type`,`typeset`,`ulimit`,`unalias`],y=`autoload.bg.bindkey.bye.cap.chdir.clone.comparguments.compcall.compctl.compdescribe.compfiles.compgroups.compquote.comptags.comptry.compvalues.dirs.disable.disown.echotc.echoti.emulate.fc.fg.float.functions.getcap.getln.history.integer.jobs.kill.limit.log.noglob.popd.print.pushd.pushln.rehash.sched.setcap.setopt.stat.suspend.ttyctl.unfunction.unhash.unlimit.unsetopt.vared.wait.whence.where.which.zcompile.zformat.zftp.zle.zmodload.zparseopts.zprof.zpty.zregexparse.zsocket.zstyle.ztcp`.split(`.`),b=`chcon.chgrp.chown.chmod.cp.dd.df.dir.dircolors.ln.ls.mkdir.mkfifo.mknod.mktemp.mv.realpath.rm.rmdir.shred.sync.touch.truncate.vdir.b2sum.base32.base64.cat.cksum.comm.csplit.cut.expand.fmt.fold.head.join.md5sum.nl.numfmt.od.paste.ptx.pr.sha1sum.sha224sum.sha256sum.sha384sum.sha512sum.shuf.sort.split.sum.tac.tail.tr.tsort.unexpand.uniq.wc.arch.basename.chroot.date.dirname.du.echo.env.expr.factor.groups.hostid.id.link.logname.nice.nohup.nproc.pathchk.pinky.printenv.printf.pwd.readlink.runcon.seq.sleep.stat.stdbuf.stty.tee.test.timeout.tty.uname.unlink.uptime.users.who.whoami.yes`.split(`.`);return{name:`Bash`,aliases:[`sh`,`zsh`],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:m,literal:h,built_in:[..._,...v,`set`,`shopt`,...y,...b]},contains:[f,e.SHEBANG(),p,d,a,o,g,s,c,l,u,n]}}var sr=__esmMin((()=>{}));function json(e){let t={className:`attr`,begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:`punctuation`,relevance:0},r=[`true`,`false`,`null`],i={scope:`literal`,beginKeywords:r.join(` `)};return{name:`JSON`,aliases:[`jsonc`],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:`\\S`}}var cr=__esmMin((()=>{}));function go(e){let t={keyword:[`break`,`case`,`chan`,`const`,`continue`,`default`,`defer`,`else`,`fallthrough`,`for`,`func`,`go`,`goto`,`if`,`import`,`interface`,`map`,`package`,`range`,`return`,`select`,`struct`,`switch`,`type`,`var`],type:[`bool`,`byte`,`complex64`,`complex128`,`error`,`float32`,`float64`,`int8`,`int16`,`int32`,`int64`,`string`,`uint8`,`uint16`,`uint32`,`uint64`,`int`,`uint`,`uintptr`,`rune`],literal:[`true`,`false`,`iota`,`nil`],built_in:[`append`,`cap`,`close`,`complex`,`copy`,`imag`,`len`,`make`,`new`,`panic`,`print`,`println`,`real`,`recover`,`delete`]};return{name:`Go`,aliases:[`golang`],keywords:t,illegal:`</`,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:`string`,variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:`number`,variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:`function`,beginKeywords:`func`,end:`\\s*(\\{|$)`,excludeEnd:!0,contains:[e.TITLE_MODE,{className:`params`,begin:/\(/,end:/\)/,endsParent:!0,keywords:t,illegal:/["']/}]}]}}var lr=__esmMin((()=>{}));function python(e){let t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=`and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.match.nonlocal|10.not.or.pass.raise.return.try.while.with.yield`.split(`.`),i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:`__import__.abs.all.any.ascii.bin.bool.breakpoint.bytearray.bytes.callable.chr.classmethod.compile.complex.delattr.dict.dir.divmod.enumerate.eval.exec.filter.float.format.frozenset.getattr.globals.hasattr.hash.help.hex.id.input.int.isinstance.issubclass.iter.len.list.locals.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.range.repr.reversed.round.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.vars.zip`.split(`.`),literal:[`__debug__`,`Ellipsis`,`False`,`None`,`NotImplemented`,`True`],type:[`Any`,`Callable`,`Coroutine`,`Dict`,`List`,`Literal`,`Generic`,`Optional`,`Sequence`,`Set`,`Tuple`,`Type`,`Union`]},a={className:`meta`,begin:/^(>>>|\.\.\.) /},o={className:`subst`,begin:/\{/,end:/\}/,keywords:i,illegal:/#/},s={begin:/\{\{/,relevance:0},c={className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l=`[0-9](_?[0-9])*`,u=`(\\b(${l}))?\\.(${l})|\\b(${l})\\.`,d=`\\b|${r.join(`|`)}`,f={className:`number`,relevance:0,variants:[{begin:`(\\b(${l})|(${u}))[eE][+-]?(${l})[jJ]?(?=${d})`},{begin:`(${u})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${l})[jJ](?=${d})`}]},p={className:`comment`,begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:`params`,variants:[{className:``,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:[`self`,a,f,c,e.HASH_COMMENT_MODE]}]};return o.contains=[c,f,a],{name:`Python`,aliases:[`py`,`gyp`,`ipython`],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[a,f,{scope:`variable.language`,match:/\bself\b/},{beginKeywords:`if`,relevance:0},{match:/\bor\b/,scope:`keyword`},c,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:`keyword`,3:`title.function`},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:`keyword`,3:`title.class`,6:`title.class.inherited`}},{className:`meta`,begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[f,m,c]}]}}var ur=__esmMin((()=>{})),dr,fr,pr,mr=__esmMin((()=>{jn(),Pn(),Un(),Zn(),ar(),or(),sr(),cr(),lr(),ur(),dr={class:`code-block-wrapper pa-2`},fr={key:0,class:`language-indicator`},pr=(0,t.defineComponent)({__name:`CodeBlockRenderer`,props:{code:{type:String,required:!0},language:{type:String,default:``}},setup(e){Q.registerLanguage(`js`,javascript$1),Q.registerLanguage(`javascript`,javascript$1),Q.registerLanguage(`ts`,typescript),Q.registerLanguage(`typescript`,typescript),Q.registerLanguage(`css`,css),Q.registerLanguage(`html`,xml),Q.registerLanguage(`bash`,bash),Q.registerLanguage(`sh`,bash),Q.registerLanguage(`json`,json),Q.registerLanguage(`go`,go),Q.registerLanguage(`golang`,go),Q.registerLanguage(`python`,python);let n=(0,t.getCurrentInstance)();return n&&n.appContext.app.component(`highlightjs`,Nn.component),(n,r)=>{let i=(0,t.resolveComponent)(`highlightjs`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,dr,[e.language?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,fr,(0,t.toDisplayString)(e.language),1)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(i,{language:e.language,code:e.code},null,8,[`language`,`code`])])}}})})),hr=__esmMin((()=>{})),gr,_r=__esmMin((()=>{mr(),mr(),hr(),gr=pr})),vr,yr=__esmMin((()=>{L(),vr=(0,t.defineComponent)({name:`UserInputString`,extends:I,props:{icon:{type:Boolean,required:!1}},computed:{prependIcon(){return this.icon?`edit`:``}},mounted(){this.$refs.input?.focus()},methods:{}})})),br=__esmMin((()=>{}));function _sfc_render$17(e,n,r,i,a,o){return(0,t.openBlock)(),(0,t.createElementBlock)(`span`,xr,[(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":n[0]||(n[0]=t=>e.answer=t),autofocus:e.autofocus,type:`text`,class:`user-input-string`,ref:`input`,onKeyup:n[1]||(n[1]=(0,t.withKeys)(t=>e.submitAnswer(e.answer),[`enter`]))},null,40,Sr),[[t.vModelText,e.answer]])])}var xr,Sr,Cr,wr=__esmMin((()=>{yr(),yr(),br(),_(),xr={class:`user-input-container`},Sr=[`autofocus`],__name(_sfc_render$17,`_sfc_render`),Cr=g(vr,[[`render`,_sfc_render$17],[`__scopeId`,`data-v-aa14961f`]])})),Tr,Er=__esmMin((()=>{wr(),Tr=(0,t.defineComponent)({name:`FillInInput`,components:{UserInputString:Cr},props:{text:{type:String,required:!0}},setup(e){let n=(0,t.ref)(`text`),r=(0,t.ref)(``),i=(0,t.computed)(()=>e.text.split(`||`).length>1);return(0,t.onMounted)(()=>{console.log(`fillinCreated w/ text: ${e.text}`),r.value=e.text.substring(2,e.text.length-2),console.log(`fillin text trimmed to: ${r.value}`),r.value.split(`||`).length>1&&(n.value=`radio`)}),{inputType:n,radioType:i,processedText:r}}})})),Dr=__esmMin((()=>{}));function _sfc_render$16(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`user-input-string`);return e.radioType?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Or,`\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0`)):((0,t.openBlock)(),(0,t.createBlock)(s,{key:1,id:`input`,icon:!1,type:`text`,value:e.processedText},null,8,[`value`]))}var Or,kr,Ar=__esmMin((()=>{Er(),Er(),Dr(),_(),Or={key:0,class:`text-h5 underline`},__name(_sfc_render$16,`_sfc_render`),kr=g(Tr,[[`render`,_sfc_render$16],[`__scopeId`,`data-v-486ac035`]])})),jr,Mr,Nr,Pr,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti,ni,ri,ii,ai,oi,si,ci,li=__esmMin((()=>{On(),_r(),Ar(),jr={key:0},Mr={key:0},Nr={key:0},Pr={key:1,class:`error--text`},Fr={key:1},Ir={key:2},Lr={key:1},Rr={key:1},zr={key:0,class:`text-h2`},Br={key:1,class:`text-h3`},Vr={key:2,class:`text-h4`},Hr={key:3},Ur={key:4},Wr={key:5},Gr={key:2},Kr={key:3,class:`text-h5`},qr={key:0},Jr=[`href`,`title`],Yr={key:5},Xr={key:6},Zr={key:7},Qr=[`src`,`alt`],$r={key:9},ei={key:10},ti={key:11},ni=[`align`],ri=[`innerHTML`],ii=[`innerHTML`],ai={key:16},oi={key:17},si={key:18},ci=(0,t.defineComponent)({__name:`MdTokenRenderer`,props:{token:{type:Object,required:!0},last:{type:Boolean,required:!1,default:!1}},setup(e,{expose:n}){let r=(0,t.inject)(`markdownComponents`,{}),i={fillIn:(0,t.markRaw)(kr),...r};function isComponent$1(e){return isComponent(e)}__name(isComponent$1,`isComponent`);function containsComponent$1(e){return containsComponent(e)}__name(containsComponent$1,`containsComponent`);function splitTextToken$1(e){return splitTextToken(e)}__name(splitTextToken$1,`splitTextToken`);function splitParagraphToken$1(e){return splitParagraphToken(e)}__name(splitParagraphToken$1,`splitParagraphToken`);function parsedComponent(e){let t=``;`text`in e&&typeof e.text==`string`?t=e.text:`raw`in e&&typeof e.raw==`string`&&(t=e.raw);let n=parseComponentSyntax(t);return n?{is:n.componentName,text:``,props:n.props}:{is:`fillIn`,text:t,props:{}}}function getComponent(e){return i[e]||(console.warn(`[MarkdownRenderer] Unknown component: "${e}". Available components: ${Object.keys(i).join(`, `)}`),null)}function decodeBasicEntities(e){return e.replace(/&#39;/g,`'`).replace(/&quot;/g,`"`).replace(/&amp;/g,`&`).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`)}function isText(e){return e.inLink===void 0&&e.type===`text`}return n({isComponent:isComponent$1,containsComponent:containsComponent$1,splitTextToken:splitTextToken$1,splitParagraphToken:splitParagraphToken$1,parsedComponent,decodeBasicEntities,isText,components:i,getComponent}),(n,r)=>{let i=(0,t.resolveComponent)(`md-token-renderer`,!0);return isText(e.token)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,jr,[!e.token.tokens||e.token.tokens.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Mr,[isComponent$1(e.token)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Nr,[!e.last&&getComponent(parsedComponent(e.token).is)?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(getComponent(parsedComponent(e.token).is)),(0,t.mergeProps)({key:0,text:parsedComponent(e.token).text},parsedComponent(e.token).props),null,16,[`text`])):!e.last&&!getComponent(parsedComponent(e.token).is)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Pr,` [Unknown component: `+(0,t.toDisplayString)(parsedComponent(e.token).is)+`] `,1)):(0,t.createCommentVNode)(``,!0)])):containsComponent$1(e.token)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Fr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(splitTextToken$1(e.token),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ir,(0,t.toDisplayString)(decodeBasicEntities(e.token.text)),1))])):e.token.tokens&&e.token.tokens.length!==0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Lr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):(0,t.createCommentVNode)(``,!0)])):e.token.type===`heading`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Rr,[e.token.depth===1?((0,t.openBlock)(),(0,t.createElementBlock)(`h1`,zr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.depth===2?((0,t.openBlock)(),(0,t.createElementBlock)(`h2`,Br,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.depth===3?((0,t.openBlock)(),(0,t.createElementBlock)(`h3`,Vr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.depth===4?((0,t.openBlock)(),(0,t.createElementBlock)(`h4`,Hr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.depth===5?((0,t.openBlock)(),(0,t.createElementBlock)(`h5`,Ur,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.depth===6?((0,t.openBlock)(),(0,t.createElementBlock)(`h6`,Wr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):(0,t.createCommentVNode)(``,!0)])):e.token.type===`strong`?((0,t.openBlock)(),(0,t.createElementBlock)(`strong`,Gr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.type===`paragraph`?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,Kr,[containsComponent$1(e.token)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,qr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(splitParagraphToken$1(e.token),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:r,token:n,last:e.last&&e.token.tokens.length===1&&r===splitParagraphToken$1(e.token).length-1},null,8,[`token`,`last`]))),128))])):((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:1},(0,t.renderList)(e.token.tokens,(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:r,token:n,last:e.last&&e.token.tokens.length===1},null,8,[`token`,`last`]))),128))])):e.token.type===`link`?((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{key:4,href:e.token.href,title:e.token.title},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))],8,Jr)):e.token.type===`list`&&e.token.ordered===!1?((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,Yr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.items,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.type===`list`&&e.token.ordered===!0?((0,t.openBlock)(),(0,t.createElementBlock)(`ol`,Xr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.items,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.type===`list_item`?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,Zr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.type===`image`?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:8,src:e.token.href,alt:e.token.title},null,8,Qr)):e.token.type===`hr`?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,$r)):e.token.type===`br`?((0,t.openBlock)(),(0,t.createElementBlock)(`br`,ei)):e.token.type===`del`?((0,t.openBlock)(),(0,t.createElementBlock)(`del`,ti)):e.token.type===`table`?((0,t.openBlock)(),(0,t.createElementBlock)(`table`,{key:12,align:e.token.align},[(0,t.createElementVNode)(`thead`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.header,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`th`,{key:n},(0,t.toDisplayString)(e.text),1))),128))]),(0,t.createElementVNode)(`tbody`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.rows,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,{key:n},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`td`,{key:n},(0,t.toDisplayString)(e.text),1))),128))]))),128))])],8,ni)):e.token.type===`html`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:13,innerHTML:e.token.raw},null,8,ri)):e.token.type===`code`?((0,t.openBlock)(),(0,t.createBlock)(gr,{key:14,code:e.token.text,language:e.token.lang},null,8,[`code`,`language`])):e.token.type===`codespan`?((0,t.openBlock)(),(0,t.createElementBlock)(`code`,{key:15,class:`codespan`,innerHTML:e.token.text},null,8,ii)):e.token.type===`blockquote`?((0,t.openBlock)(),(0,t.createElementBlock)(`blockquote`,ai,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.type===`escape`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,oi,(0,t.toDisplayString)(e.token.text),1)):e.token.type===`em`?((0,t.openBlock)(),(0,t.createElementBlock)(`em`,si,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):(0,t.createCommentVNode)(``,!0)}}})})),ui=__esmMin((()=>{})),di,fi=__esmMin((()=>{li(),li(),ui(),_(),di=g(ci,[[`__scopeId`,`data-v-de3eebd6`]])})),pi,mi,hi=__esmMin((()=>{k(),pi=500,mi=(0,t.defineComponent)({__name:`AudioAutoPlayer`,props:{src:{}},setup(e){let n=e,r=(0,t.ref)([]),i=(0,t.ref)([]),a=(0,t.ref)(!1),o=null,stop=()=>{a.value=!1,setTimeout(()=>{o=null},pi),i.value.forEach(clearTimeout),console.log(`Audio stopping...`),r.value.forEach(e=>{e.paused||(e.pause(),e.currentTime=0)})},downloadFinished=e=>{try{return!isNaN(r.value[e].duration)}catch(e){throw Error(`AudioPlayer does not have an element at this index:`,e)}},playByIndex=e=>{if(downloadFinished(e))if(r.value[e].play(),e+1<r.value.length){let t=(r.value[e].duration+.7)*1e3;i.value.push(setTimeout(()=>{a.value&&playByIndex(e+1)},t))}else setTimeout(()=>{a.value=!1},r.value[e].duration*1e3),setTimeout(()=>{o=null},r.value[e].duration*1e3+pi);else setTimeout(playByIndex,100,e)},play=()=>{o===null||o===(0,t.getCurrentInstance)()?(o=(0,t.getCurrentInstance)(),a.value=!0,playByIndex(0)):setTimeout(play,100)};return(0,t.onMounted)(()=>{o=null,typeof n.src==`string`?r.value.push(new Audio(n.src)):n.src.forEach(e=>{r.value.push(new Audio(e))});let e=[{hotkey:`up`,callback:play,command:`Replay Audio`}];O.addBinding(e),play()}),(0,t.onBeforeUnmount)(()=>{O.removeBinding(`up`),stop()}),(e,n)=>{let r=(0,t.resolveComponent)(`v-icon`),i=(0,t.resolveComponent)(`v-btn`);return(0,t.openBlock)(),(0,t.createBlock)(i,{size:`large`,icon:``,color:a.value?`primary lighten-3`:`primary`,class:(0,t.normalizeClass)({playing:a.value}),onClick:play},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[0]||(n[0]=[(0,t.createTextVNode)(`mdi-volume-high`)])),_:1})]),_:1},8,[`color`,`class`])}}})})),gi=__esmMin((()=>{})),_i,vi=__esmMin((()=>{hi(),hi(),gi(),_(),_i=g(mi,[[`__scopeId`,`data-v-e1a0f62c`]])})),yi,bi=__esmMin((()=>{fi(),vi(),Dn(),yi=(0,t.defineComponent)({name:`MarkdownRenderer`,components:{MdTokenRenderer:di,AudioAutoPlayer:_i},props:{md:{type:String,required:!0}},computed:{tokens(){return En(this.md)}}})})),xi=__exportAll({default:()=>Si});function _sfc_render$15(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`md-token-renderer`),c=(0,t.resolveComponent)(`audio-auto-player`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.tokens,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:r},[n.type?((0,t.openBlock)(),(0,t.createBlock)(s,{key:0,token:n,last:r===e.tokens.length-1},null,8,[`token`,`last`])):n.audio?((0,t.openBlock)(),(0,t.createBlock)(c,{key:1,src:n.audio},null,8,[`src`])):(0,t.createCommentVNode)(``,!0)]))),128))])}var Si,Ci=__esmMin((()=>{bi(),bi(),_(),__name(_sfc_render$15,`_sfc_render`),Si=g(yi,[[`render`,_sfc_render$15]])})),wi=(0,t.defineComponent)({name:`MultipleChoiceOption`,components:{MarkdownRenderer:(0,t.defineAsyncComponent)(()=>Promise.resolve().then(()=>(Ci(),xi)))},props:{content:{type:String,required:!0},selected:{type:Boolean,required:!0},number:{type:Number,required:!0},setSelection:{type:Function,required:!0},submit:{type:Function,required:!0},markedWrong:{type:Boolean,required:!0}},computed:{className(){let e;switch(this.number){case 0:e=`bg-red`;break;case 1:e=`bg-purple`;break;case 2:e=`bg-indigo`;break;case 3:e=`bg-light-blue`;break;case 4:e=`bg-teal`;break;case 5:e=`bg-deep-orange`;break;default:e=`bg-grey`;break}if(this.selected&&!this.markedWrong)return`choice selected ${e} lighten-3 elevation-8`;if(!this.selected&&!this.markedWrong)return`choice not-selected ${e} lighten-4 elevation-1`;if(this.selected&&this.markedWrong)return`choice selected grey lighten-2 elevation-8`;if(!this.selected&&this.markedWrong)return`choice not-selected grey lighten-2 elevation-0`;throw Error(`'selected' and 'markedWrong' props in MultipleChoiceOption are in an impossible configuration.`)}},methods:{select(){this.setSelection(this.number)},submitThisOption(){this.markedWrong||(this.select(),this.submit())}}});_();function _sfc_render$14(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`markdown-renderer`),c=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(c,{class:(0,t.normalizeClass)(`${e.className}`),onMouseover:e.select,onClick:e.submitThisOption},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{md:e.content},null,8,[`md`])]),_:1},8,[`class`,`onMouseover`,`onClick`])}__name(_sfc_render$14,`_sfc_render`);var Ti=g(wi,[[`render`,_sfc_render$14],[`__scopeId`,`data-v-96de7172`]]);L(),k();var Ei=(0,t.defineComponent)({name:`RadioMultipleChoice`,components:{MultipleChoiceOption:Ti},extends:I,props:{choiceList:{type:Array,required:!0}},data(){return{currentSelection:-1,incorrectSelections:[],containerRef:null,_registeredHotkeys:[]}},watch:{choiceList:{immediate:!0,handler(e){e?.length&&this.bindKeys()}}},mounted(){this.containerRef&&this.containerRef.focus()},unmounted(){this.unbindKeys()},methods:{forwardSelection(){if(!this.choiceIsWrong(this.choiceList[this.currentSelection])&&this.currentSelection!==-1){let e={choiceList:this.choiceList,selection:this.currentSelection};this.submitAnswer(e).isCorrect||this.incorrectSelections.push(this.currentSelection)}},setSelection(e){e<this.choiceList.length&&(this.currentSelection=e)},incrementSelection(){this.currentSelection===-1?this.currentSelection=Math.ceil(this.choiceList.length/2):this.currentSelection=Math.min(this.choiceList.length-1,this.currentSelection+1)},decrementSelection(){this.currentSelection===-1?this.currentSelection=Math.floor(this.choiceList.length/2-1):this.currentSelection=Math.max(0,this.currentSelection-1)},choiceIsWrong(e){let t=!1;return this.incorrectSelections.forEach(n=>{this.choiceList[n]===e&&(t=!0)}),t},bindKeys(){let e=[{hotkey:`left`,callback:this.decrementSelection,command:`Move selection left`},{hotkey:`right`,callback:this.incrementSelection,command:`Move selection right`},{hotkey:`enter`,callback:this.forwardSelection,command:`Submit selection`},...Array.from({length:this.choiceList.length},(e,t)=>({hotkey:(t+1).toString(),callback:()=>this.setSelection(t),command:`Select ${(e=>{switch(e){case 0:return`first`;case 1:return`second`;case 2:return`third`;case 3:return`fourth`;case 4:return`fifth`;case 5:return`sixth`;default:return`${e+1}th`}})(t)} option`}))];O.addBinding(e),this._registeredHotkeys=e.map(e=>e.hotkey)},unbindKeys(){this._registeredHotkeys&&this._registeredHotkeys.forEach(e=>{O.removeBinding(e)})}}});_();var Di={ref:`containerRef`,class:`multipleChoice`};function _sfc_render$13(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`MultipleChoiceOption`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,Di,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.choiceList,(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(s,{key:r,content:n,selected:e.choiceList.indexOf(n)===e.currentSelection,number:e.choiceList.indexOf(n),"set-selection":e.setSelection,submit:e.forwardSelection,"marked-wrong":e.choiceIsWrong(n)},null,8,[`content`,`selected`,`number`,`set-selection`,`submit`,`marked-wrong`]))),128))],512)}__name(_sfc_render$13,`_sfc_render`);var Oi=g(Ei,[[`render`,_sfc_render$13]]),ki=(0,t.defineComponent)({name:`TrueFalse`,components:{RadioMultipleChoice:Oi},props:{MouseTrap:{type:Object,required:!0},submit:{type:Function,required:!0}}});_();var Ai={"data-viewable":`TrueFalse`};function _sfc_render$12(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`RadioMultipleChoice`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ai,[(0,t.createVNode)(s,{"choice-list":[`True`,`False`],MouseTrap:e.MouseTrap,submit:e.submit},null,8,[`MouseTrap`,`submit`])])}__name(_sfc_render$12,`_sfc_render`);var ji=g(ki,[[`render`,_sfc_render$12]]);L();var Mi=(0,t.defineComponent)({name:`UserInputNumber`,ref:{},extends:I,methods:{mounted(){this.$refs.input.focus()},isNumeric(e){return!isNaN(Number.parseFloat(e))},makeNumeric(e){if(typeof e==`string`)return Number.parseFloat(e);throw Error(`Expected a string, got `+typeof e)}}});_();function _sfc_render$11(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-text-field`),c=(0,t.resolveComponent)(`v-container`);return(0,t.openBlock)(),(0,t.createBlock)(c,{class:`pa-0`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{ref:`input`,modelValue:e.answer,"onUpdate:modelValue":n[0]||(n[0]=t=>e.answer=t),"prepend-icon":`edit`,autofocus:e.autofocus,"row-height":`24`,"toggle-keys":`[13,32]`,class:`text-h5`,rules:[e.isNumeric],onKeyup:n[1]||(n[1]=(0,t.withKeys)(t=>e.submitAnswer(e.makeNumeric(e.answer)),[`enter`]))},null,8,[`modelValue`,`autofocus`,`rules`])]),_:1})}__name(_sfc_render$11,`_sfc_render`);var Ni=g(Mi,[[`render`,_sfc_render$11],[`__scopeId`,`data-v-a56dcd1c`]]),Pi=(0,t.defineComponent)({name:`CardLoader`,components:{CardViewer:P},props:{sessionOrder:{type:Number,required:!1,default:0},qualified_id:{type:Object,required:!0},viewLookup:{type:Function,required:!0}},data(){return{loading:!0,view:null,data:[],courseID:``,cardID:``}},created(){this.loadCard()},watch:{qualified_id:{immediate:!0,handler(){this.loadCard()}}},methods:{processResponse(e){(0,r.log)(`
64
+ `,1;if(y>1e5&&y>a.index*3)throw Error(`potential infinite loop, way more iterations than matches`);return g+=o,o.length}let u=getLanguage(e);if(!u)throw error(a.replace(`{}`,e)),Error(`Unknown language: "`+e+`"`);let d=compileLanguage(u),f=``,p=o||d,m={},h=new s.__emitter(s);processContinuations();let g=``,_=0,v=0,y=0,b=!1;try{if(u.__emitTokens)u.__emitTokens(n,h);else{for(p.matcher.considerAll();;){y++,b?b=!1:p.matcher.considerAll(),p.matcher.lastIndex=v;let e=p.matcher.exec(n);if(!e)break;let t=processLexeme(n.substring(v,e.index),e);v=e.index+t}processLexeme(n.substring(v))}return h.finalize(),f=h.toHTML(),{language:e,value:f,relevance:_,illegal:!1,_emitter:h,_top:p}}catch(t){if(t.message&&t.message.includes(`Illegal`))return{language:e,value:j(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:v,context:n.slice(v-100,v+100),mode:t.mode,resultSoFar:f},_emitter:h};if(i)return{language:e,value:j(n),illegal:!1,relevance:0,errorRaised:t,_emitter:h,_top:p};throw t}}function justTextHighlightResult(e){let t={value:j(e),illegal:!1,relevance:0,_top:o,_emitter:new s.__emitter(s)};return t._emitter.addText(e),t}function highlightAuto(e,n){n=n||s.languages||Object.keys(t);let r=justTextHighlightResult(e),i=n.filter(getLanguage).filter(autoDetection).map(t=>_highlight(t,e,!1));i.unshift(r);let[a,o]=i.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(getLanguage(e.language).supersetOf===t.language)return 1;if(getLanguage(t.language).supersetOf===e.language)return-1}return 0}),c=a;return c.secondBest=o,c}function updateClassName(e,t,r){let i=t&&n[t]||r;e.classList.add(`hljs`),e.classList.add(`language-${i}`)}function highlightElement(e){let t=null,n=blockLanguage(e);if(shouldNotHighlight(n))return;if(fire(`before:highlightElement`,{el:e,language:n}),e.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);return}if(e.children.length>0&&(s.ignoreUnescapedHTML||(console.warn(`One of your code blocks includes unescaped HTML. This is a potentially serious security risk.`),console.warn(`https://github.com/highlightjs/highlight.js/wiki/security`),console.warn(`The element with unescaped HTML:`),console.warn(e)),s.throwUnescapedHTML))throw new HTMLInjectionError(`One of your code blocks includes unescaped HTML.`,e.innerHTML);t=e;let r=t.textContent,i=n?highlight(r,{language:n,ignoreIllegals:!0}):highlightAuto(r);e.innerHTML=i.value,e.dataset.highlighted=`yes`,updateClassName(e,n,i.language),e.result={language:i.language,re:i.relevance,relevance:i.relevance},i.secondBest&&(e.secondBest={language:i.secondBest.language,relevance:i.secondBest.relevance}),fire(`after:highlightElement`,{el:e,result:i,text:r})}function configure(e){s=te(s,e)}let initHighlighting=()=>{highlightAll(),deprecated(`10.6.0`,`initHighlighting() deprecated. Use highlightAll() now.`)};function initHighlightingOnLoad(){highlightAll(),deprecated(`10.6.0`,`initHighlightingOnLoad() deprecated. Use highlightAll() now.`)}let c=!1;function highlightAll(){function boot(){highlightAll()}if(document.readyState===`loading`){c||window.addEventListener(`DOMContentLoaded`,boot,!1),c=!0;return}document.querySelectorAll(s.cssSelector).forEach(highlightElement)}function registerLanguage(n,r){let a=null;try{a=r(e)}catch(e){if(error(`Language definition for '{}' could not be registered.`.replace(`{}`,n)),i)error(e);else throw e;a=o}a.name||(a.name=n),t[n]=a,a.rawDefinition=r.bind(null,e),a.aliases&&registerAliases(a.aliases,{languageName:n})}function unregisterLanguage(e){delete t[e];for(let t of Object.keys(n))n[t]===e&&delete n[t]}function listLanguages(){return Object.keys(t)}function getLanguage(e){return e=(e||``).toLowerCase(),t[e]||t[n[e]]}function registerAliases(e,{languageName:t}){typeof e==`string`&&(e=[e]),e.forEach(e=>{n[e.toLowerCase()]=t})}function autoDetection(e){let t=getLanguage(e);return t&&!t.disableAutodetect}function upgradePluginAPI(e){e[`before:highlightBlock`]&&!e[`before:highlightElement`]&&(e[`before:highlightElement`]=t=>{e[`before:highlightBlock`](Object.assign({block:t.el},t))}),e[`after:highlightBlock`]&&!e[`after:highlightElement`]&&(e[`after:highlightElement`]=t=>{e[`after:highlightBlock`](Object.assign({block:t.el},t))})}function addPlugin(e){upgradePluginAPI(e),r.push(e)}function removePlugin(e){let t=r.indexOf(e);t!==-1&&r.splice(t,1)}function fire(e,t){let n=e;r.forEach(function(e){e[n]&&e[n](t)})}function deprecateHighlightBlock(e){return deprecated(`10.7.0`,`highlightBlock will be removed entirely in v12.0`),deprecated(`10.7.0`,`Please use highlightElement now.`),highlightElement(e)}Object.assign(e,{highlight,highlightAuto,highlightAll,highlightElement,highlightBlock:deprecateHighlightBlock,configure,initHighlighting,initHighlightingOnLoad,registerLanguage,unregisterLanguage,listLanguages,getLanguage,registerAliases,autoDetection,inherit:te,addPlugin,removePlugin}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=ee,e.regex={concat,lookahead,either,optional,anyNumberOfTimes};for(let e in E)typeof E[e]==`object`&&deepFreeze(E[e]);return Object.assign(e,E),e},M=HLJS({});M.newInstance=()=>HLJS({}),t.exports=M,M.HighlightJS=M,M.default=M})),xn,Q,Sn=__esmMin((()=>{xn=__toESM(bn()),Q=xn.default})),Cn,wn,Tn=__esmMin((()=>{Sn(),Cn=(0,t.defineComponent)({props:{code:{type:String,required:!0},language:{type:String,default:``},autodetect:{type:Boolean,default:!0},ignoreIllegals:{type:Boolean,default:!0}},setup:function(e){var n=(0,t.ref)(e.language);(0,t.watch)((function(){return e.language}),(function(e){n.value=e}));var r=(0,t.computed)((function(){return e.autodetect||!n.value})),i=(0,t.computed)((function(){return!r.value&&!Q.getLanguage(n.value)}));return{className:(0,t.computed)((function(){return i.value?``:`hljs `+n.value})),highlightedCode:(0,t.computed)((function(){if(i.value)return console.warn(`The language "`+n.value+`" you specified could not be found.`),e.code.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#x27;`);if(r.value){var t=Q.highlightAuto(e.code);return n.value=t.language??``,t.value}return(t=Q.highlight(e.code,{language:n.value,ignoreIllegals:e.ignoreIllegals})).value}))}},render:function(){return(0,t.h)(`pre`,{},[(0,t.h)(`code`,{class:this.className,innerHTML:this.highlightedCode,tabindex:`0`})])}}),wn={install:function(e){e.component(`highlightjs`,Cn)},component:Cn}}));function javascript$1(e){let t=e.regex,hasClosingTag=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},n=En,r={begin:`<>`,end:`</>`},i=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n=e[0].length+e.index,r=e.input[n];if(r===`<`||r===`,`){t.ignoreMatch();return}r===`>`&&(hasClosingTag(e,{after:n})||t.ignoreMatch());let i,a=e.input.substring(n);if(i=a.match(/^\s*=/)){t.ignoreMatch();return}if((i=a.match(/^\s+extends\s+/))&&i.index===0){t.ignoreMatch();return}}},o={$pattern:En,keyword:Dn,literal:On,built_in:Nn,"variable.language":Mn},s=`[0-9](_?[0-9])*`,c=`\\.(${s})`,l=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,u={className:`number`,variants:[{begin:`(\\b(${l})((${c})|\\.)?|(${c}))[eE][+-]?(${s})\\b`},{begin:`\\b(${l})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},d={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:o,contains:[]},f={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`xml`}},p={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`css`}},m={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`graphql`}},h={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,d]},g={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:n+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},_=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,{match:/\$\d+/},u];d.contains=_.concat({begin:/\{/,end:/\}/,keywords:o,contains:[`self`].concat(_)});let v=[].concat(g,d.contains),y=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:[`self`].concat(v)}]),b={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y},x={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,t.concat(n,`(`,t.concat(/\./,n),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,n],scope:{1:`keyword`,3:`title.class`}}]},S={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...kn,...An]}},C={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},w={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[b],illegal:/%/},T={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function noneOf(e){return t.concat(`(?!`,e.join(`|`),`)`)}let E={match:t.concat(/\b/,noneOf([...jn,`super`,`import`].map(e=>`${e}\\s*\\(`)),n,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},D={begin:t.concat(/\./,t.lookahead(t.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},O={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},b]},k=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,A={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(k)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[b]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:o,exports:{PARAMS_CONTAINS:y,CLASS_REFERENCE:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),C,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,g,{match:/\$\d+/},u,S,{scope:`attr`,match:n+t.lookahead(`:`),relevance:0},A,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[g,e.REGEXP_MODE,{className:`function`,begin:k,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:i},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:`xml`,contains:[{begin:a.begin,end:a.end,skip:!0,contains:[`self`]}]}]},w,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[b,e.inherit(e.TITLE_MODE,{begin:n,className:`title.function`})]},{match:/\.\.\./,relevance:0},D,{match:`\\$`+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[b]},E,T,x,O,{match:/\$[(.]/}]}}var En,Dn,On,kn,An,jn,Mn,Nn,Pn=__esmMin((()=>{En=`[A-Za-z$_][0-9A-Za-z$_]*`,Dn=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),On=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],kn=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),An=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],jn=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],Mn=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],Nn=[].concat(jn,kn,An),__name(javascript$1,`javascript`)}));function javascript(e){let t=e.regex,hasClosingTag=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},n=$,r={begin:`<>`,end:`</>`},i=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n=e[0].length+e.index,r=e.input[n];if(r===`<`||r===`,`){t.ignoreMatch();return}r===`>`&&(hasClosingTag(e,{after:n})||t.ignoreMatch());let i,a=e.input.substring(n);if(i=a.match(/^\s*=/)){t.ignoreMatch();return}if((i=a.match(/^\s+extends\s+/))&&i.index===0){t.ignoreMatch();return}}},o={$pattern:$,keyword:Fn,literal:In,built_in:Vn,"variable.language":Bn},s=`[0-9](_?[0-9])*`,c=`\\.(${s})`,l=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,u={className:`number`,variants:[{begin:`(\\b(${l})((${c})|\\.)?|(${c}))[eE][+-]?(${s})\\b`},{begin:`\\b(${l})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},d={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:o,contains:[]},f={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`xml`}},p={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`css`}},m={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`graphql`}},h={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,d]},g={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:n+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},_=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,{match:/\$\d+/},u];d.contains=_.concat({begin:/\{/,end:/\}/,keywords:o,contains:[`self`].concat(_)});let v=[].concat(g,d.contains),y=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:[`self`].concat(v)}]),b={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y},x={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,t.concat(n,`(`,t.concat(/\./,n),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,n],scope:{1:`keyword`,3:`title.class`}}]},S={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...Ln,...Rn]}},C={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},w={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[b],illegal:/%/},T={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function noneOf(e){return t.concat(`(?!`,e.join(`|`),`)`)}let E={match:t.concat(/\b/,noneOf([...zn,`super`,`import`].map(e=>`${e}\\s*\\(`)),n,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},D={begin:t.concat(/\./,t.lookahead(t.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},O={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},b]},k=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,A={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(k)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[b]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:o,exports:{PARAMS_CONTAINS:y,CLASS_REFERENCE:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),C,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,g,{match:/\$\d+/},u,S,{scope:`attr`,match:n+t.lookahead(`:`),relevance:0},A,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[g,e.REGEXP_MODE,{className:`function`,begin:k,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:i},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:`xml`,contains:[{begin:a.begin,end:a.end,skip:!0,contains:[`self`]}]}]},w,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[b,e.inherit(e.TITLE_MODE,{begin:n,className:`title.function`})]},{match:/\.\.\./,relevance:0},D,{match:`\\$`+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[b]},E,T,x,O,{match:/\$[(.]/}]}}function typescript(e){let t=e.regex,n=javascript(e),r=$,i=[`any`,`void`,`number`,`boolean`,`string`,`object`,`never`,`symbol`,`bigint`,`unknown`],a={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:`keyword`,3:`title.class`}},o={beginKeywords:`interface`,end:/\{/,excludeEnd:!0,keywords:{keyword:`interface extends`,built_in:i},contains:[n.exports.CLASS_REFERENCE]},s={className:`meta`,relevance:10,begin:/^\s*['"]use strict['"]/},c={$pattern:$,keyword:Fn.concat([`type`,`interface`,`public`,`private`,`protected`,`implements`,`declare`,`abstract`,`readonly`,`enum`,`override`,`satisfies`]),literal:In,built_in:Vn.concat(i),"variable.language":Bn},l={className:`meta`,begin:`@`+r},swapMode=(e,t,n)=>{let r=e.contains.findIndex(e=>e.label===t);if(r===-1)throw Error(`can not find mode to replace`);e.contains.splice(r,1,n)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(l);let u=n.contains.find(e=>e.scope===`attr`),d=Object.assign({},u,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,u,d]),n.contains=n.contains.concat([l,a,o,d]),swapMode(n,`shebang`,e.SHEBANG()),swapMode(n,`use_strict`,s);let f=n.contains.find(e=>e.label===`func.def`);return f.relevance=0,Object.assign(n,{name:`TypeScript`,aliases:[`ts`,`tsx`,`mts`,`cts`]}),n}var $,Fn,In,Ln,Rn,zn,Bn,Vn,Hn=__esmMin((()=>{$=`[A-Za-z$_][0-9A-Za-z$_]*`,Fn=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),In=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],Ln=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),Rn=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],zn=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],Bn=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],Vn=[].concat(zn,Ln,Rn)}));function css(e){let t=e.regex,n=MODES(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i=/@-?\w[\w]*(-\w+)*/,a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:`CSS`,case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:`from to`},classNameAliases:{keyframePosition:`selector-tag`},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:`selector-id`,begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:`selector-class`,begin:`\\.[a-zA-Z-][a-zA-Z0-9_-]*`,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:`selector-pseudo`,variants:[{begin:`:(`+qn.join(`|`)+`)`},{begin:`:(:)?(`+Jn.join(`|`)+`)`}]},n.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+Yn.join(`|`)+`)\\b`},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:`url data-uri`},contains:[...a,{className:`string`,begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:`[{;]`,relevance:0,illegal:/:/,contains:[{className:`keyword`,begin:i},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:Kn.join(` `)},contains:[{begin:/[a-z-]+(?=:)/,className:`attribute`},...a,n.CSS_NUMBER_MODE]}]},{className:`selector-tag`,begin:`\\b(`+Gn.join(`|`)+`)\\b`}]}}var MODES,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn=__esmMin((()=>{MODES=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Un=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),Wn=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),Gn=[...Un,...Wn],Kn=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),qn=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),Jn=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),Yn=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse()}));function xml(e){let t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:`symbol`,begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:`keyword`,begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(a,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:`string`}),c=e.inherit(e.QUOTE_STRING_MODE,{className:`string`}),l={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:`attr`,begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:`string`,endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:`HTML, XML`,aliases:[`html`,`xhtml`,`rss`,`atom`,`xjb`,`xsd`,`xsl`,`plist`,`wsf`,`svg`],case_insensitive:!0,unicodeRegex:!0,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,relevance:10,contains:[a,c,s,o,{begin:/\[/,end:/\]/,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,contains:[a,o,c,s]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{className:`meta`,end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:`tag`,begin:/<style(?=\s|>)/,end:/>/,keywords:{name:`style`},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:[`css`,`xml`]}},{className:`tag`,begin:/<script(?=\s|>)/,end:/>/,keywords:{name:`script`},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:[`javascript`,`handlebars`,`xml`]}},{className:`tag`,begin:/<>|<\/>/},{className:`tag`,begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:`name`,begin:n,relevance:0,starts:l}]},{className:`tag`,begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:`name`,begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}var Zn=__esmMin((()=>{}));function bash(e){let t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:[`self`,{begin:/:-/,contains:[n]}]};Object.assign(n,{className:`variable`,variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,`(?![\\w\\d])(?![$])`)},r]});let i={className:`subst`,begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:`comment`}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:`string`})]}},s={className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(s);let c={match:/\\"/},l={className:`string`,begin:/'/,end:/'/},u={match:/\\'/},d={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:`number`},e.NUMBER_MODE,n]},f=e.SHEBANG({binary:`(${[`fish`,`bash`,`zsh`,`sh`,`csh`,`ksh`,`tcsh`,`dash`,`scsh`].join(`|`)})`,relevance:10}),p={className:`function`,begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},m=[`if`,`then`,`else`,`elif`,`fi`,`time`,`for`,`while`,`until`,`in`,`do`,`done`,`case`,`esac`,`coproc`,`function`,`select`],h=[`true`,`false`],g={match:/(\/[a-z._-]+)+/},_=[`break`,`cd`,`continue`,`eval`,`exec`,`exit`,`export`,`getopts`,`hash`,`pwd`,`readonly`,`return`,`shift`,`test`,`times`,`trap`,`umask`,`unset`],v=[`alias`,`bind`,`builtin`,`caller`,`command`,`declare`,`echo`,`enable`,`help`,`let`,`local`,`logout`,`mapfile`,`printf`,`read`,`readarray`,`source`,`sudo`,`type`,`typeset`,`ulimit`,`unalias`],y=`autoload.bg.bindkey.bye.cap.chdir.clone.comparguments.compcall.compctl.compdescribe.compfiles.compgroups.compquote.comptags.comptry.compvalues.dirs.disable.disown.echotc.echoti.emulate.fc.fg.float.functions.getcap.getln.history.integer.jobs.kill.limit.log.noglob.popd.print.pushd.pushln.rehash.sched.setcap.setopt.stat.suspend.ttyctl.unfunction.unhash.unlimit.unsetopt.vared.wait.whence.where.which.zcompile.zformat.zftp.zle.zmodload.zparseopts.zprof.zpty.zregexparse.zsocket.zstyle.ztcp`.split(`.`),b=`chcon.chgrp.chown.chmod.cp.dd.df.dir.dircolors.ln.ls.mkdir.mkfifo.mknod.mktemp.mv.realpath.rm.rmdir.shred.sync.touch.truncate.vdir.b2sum.base32.base64.cat.cksum.comm.csplit.cut.expand.fmt.fold.head.join.md5sum.nl.numfmt.od.paste.ptx.pr.sha1sum.sha224sum.sha256sum.sha384sum.sha512sum.shuf.sort.split.sum.tac.tail.tr.tsort.unexpand.uniq.wc.arch.basename.chroot.date.dirname.du.echo.env.expr.factor.groups.hostid.id.link.logname.nice.nohup.nproc.pathchk.pinky.printenv.printf.pwd.readlink.runcon.seq.sleep.stat.stdbuf.stty.tee.test.timeout.tty.uname.unlink.uptime.users.who.whoami.yes`.split(`.`);return{name:`Bash`,aliases:[`sh`,`zsh`],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:m,literal:h,built_in:[..._,...v,`set`,`shopt`,...y,...b]},contains:[f,e.SHEBANG(),p,d,a,o,g,s,c,l,u,n]}}var Qn=__esmMin((()=>{}));function json(e){let t={className:`attr`,begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:`punctuation`,relevance:0},r=[`true`,`false`,`null`],i={scope:`literal`,beginKeywords:r.join(` `)};return{name:`JSON`,aliases:[`jsonc`],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:`\\S`}}var $n=__esmMin((()=>{}));function go(e){let t={keyword:[`break`,`case`,`chan`,`const`,`continue`,`default`,`defer`,`else`,`fallthrough`,`for`,`func`,`go`,`goto`,`if`,`import`,`interface`,`map`,`package`,`range`,`return`,`select`,`struct`,`switch`,`type`,`var`],type:[`bool`,`byte`,`complex64`,`complex128`,`error`,`float32`,`float64`,`int8`,`int16`,`int32`,`int64`,`string`,`uint8`,`uint16`,`uint32`,`uint64`,`int`,`uint`,`uintptr`,`rune`],literal:[`true`,`false`,`iota`,`nil`],built_in:[`append`,`cap`,`close`,`complex`,`copy`,`imag`,`len`,`make`,`new`,`panic`,`print`,`println`,`real`,`recover`,`delete`]};return{name:`Go`,aliases:[`golang`],keywords:t,illegal:`</`,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:`string`,variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:`number`,variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:`function`,beginKeywords:`func`,end:`\\s*(\\{|$)`,excludeEnd:!0,contains:[e.TITLE_MODE,{className:`params`,begin:/\(/,end:/\)/,endsParent:!0,keywords:t,illegal:/["']/}]}]}}var er=__esmMin((()=>{}));function python(e){let t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=`and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.match.nonlocal|10.not.or.pass.raise.return.try.while.with.yield`.split(`.`),i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:`__import__.abs.all.any.ascii.bin.bool.breakpoint.bytearray.bytes.callable.chr.classmethod.compile.complex.delattr.dict.dir.divmod.enumerate.eval.exec.filter.float.format.frozenset.getattr.globals.hasattr.hash.help.hex.id.input.int.isinstance.issubclass.iter.len.list.locals.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.range.repr.reversed.round.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.vars.zip`.split(`.`),literal:[`__debug__`,`Ellipsis`,`False`,`None`,`NotImplemented`,`True`],type:[`Any`,`Callable`,`Coroutine`,`Dict`,`List`,`Literal`,`Generic`,`Optional`,`Sequence`,`Set`,`Tuple`,`Type`,`Union`]},a={className:`meta`,begin:/^(>>>|\.\.\.) /},o={className:`subst`,begin:/\{/,end:/\}/,keywords:i,illegal:/#/},s={begin:/\{\{/,relevance:0},c={className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l=`[0-9](_?[0-9])*`,u=`(\\b(${l}))?\\.(${l})|\\b(${l})\\.`,d=`\\b|${r.join(`|`)}`,f={className:`number`,relevance:0,variants:[{begin:`(\\b(${l})|(${u}))[eE][+-]?(${l})[jJ]?(?=${d})`},{begin:`(${u})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${l})[jJ](?=${d})`}]},p={className:`comment`,begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:`params`,variants:[{className:``,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:[`self`,a,f,c,e.HASH_COMMENT_MODE]}]};return o.contains=[c,f,a],{name:`Python`,aliases:[`py`,`gyp`,`ipython`],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[a,f,{scope:`variable.language`,match:/\bself\b/},{beginKeywords:`if`,relevance:0},{match:/\bor\b/,scope:`keyword`},c,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:`keyword`,3:`title.function`},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:`keyword`,3:`title.class`,6:`title.class.inherited`}},{className:`meta`,begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[f,m,c]}]}}var tr=__esmMin((()=>{})),nr,rr,ir,ar=__esmMin((()=>{Sn(),Tn(),Pn(),Hn(),Xn(),Zn(),Qn(),$n(),er(),tr(),nr={class:`code-block-wrapper pa-2`},rr={key:0,class:`language-indicator`},ir=(0,t.defineComponent)({__name:`CodeBlockRenderer`,props:{code:{type:String,required:!0},language:{type:String,default:``}},setup(e){Q.registerLanguage(`js`,javascript$1),Q.registerLanguage(`javascript`,javascript$1),Q.registerLanguage(`ts`,typescript),Q.registerLanguage(`typescript`,typescript),Q.registerLanguage(`css`,css),Q.registerLanguage(`html`,xml),Q.registerLanguage(`bash`,bash),Q.registerLanguage(`sh`,bash),Q.registerLanguage(`json`,json),Q.registerLanguage(`go`,go),Q.registerLanguage(`golang`,go),Q.registerLanguage(`python`,python);let n=(0,t.getCurrentInstance)();return n&&n.appContext.app.component(`highlightjs`,wn.component),(n,r)=>{let i=(0,t.resolveComponent)(`highlightjs`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,nr,[e.language?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,rr,(0,t.toDisplayString)(e.language),1)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(i,{language:e.language,code:e.code},null,8,[`language`,`code`])])}}})})),or=__esmMin((()=>{})),sr,cr=__esmMin((()=>{ar(),ar(),or(),sr=ir})),lr,ur=__esmMin((()=>{wt(),lr=(0,t.defineComponent)({name:`UserInputString`,extends:Ct,props:{icon:{type:Boolean,required:!1}},computed:{prependIcon(){return this.icon?`edit`:``}},mounted(){this.$refs.input?.focus()},methods:{}})})),dr=__esmMin((()=>{}));function _sfc_render$17(e,n,r,i,a,o){return(0,t.openBlock)(),(0,t.createElementBlock)(`span`,fr,[(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":n[0]||(n[0]=t=>e.answer=t),autofocus:e.autofocus,type:`text`,class:`user-input-string`,ref:`input`,onKeyup:n[1]||(n[1]=(0,t.withKeys)(t=>e.submitAnswer(e.answer),[`enter`]))},null,40,pr),[[t.vModelText,e.answer]])])}var fr,pr,mr,hr=__esmMin((()=>{ur(),ur(),dr(),_(),fr={class:`user-input-container`},pr=[`autofocus`],__name(_sfc_render$17,`_sfc_render`),mr=g(lr,[[`render`,_sfc_render$17],[`__scopeId`,`data-v-aa14961f`]])})),gr,_r=__esmMin((()=>{hr(),gr=(0,t.defineComponent)({name:`FillInInput`,components:{UserInputString:mr},props:{text:{type:String,required:!0}},setup(e){let n=(0,t.ref)(`text`),r=(0,t.ref)(``),i=(0,t.computed)(()=>e.text.split(`||`).length>1);return(0,t.onMounted)(()=>{console.log(`fillinCreated w/ text: ${e.text}`),r.value=e.text.substring(2,e.text.length-2),console.log(`fillin text trimmed to: ${r.value}`),r.value.split(`||`).length>1&&(n.value=`radio`)}),{inputType:n,radioType:i,processedText:r}}})})),vr=__esmMin((()=>{}));function _sfc_render$16(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`user-input-string`);return e.radioType?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,yr,`\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0`)):((0,t.openBlock)(),(0,t.createBlock)(s,{key:1,id:`input`,icon:!1,type:`text`,value:e.processedText},null,8,[`value`]))}var yr,br,xr=__esmMin((()=>{_r(),_r(),vr(),_(),yr={key:0,class:`text-h5 underline`},__name(_sfc_render$16,`_sfc_render`),br=g(gr,[[`render`,_sfc_render$16],[`__scopeId`,`data-v-486ac035`]])})),Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei=__esmMin((()=>{yn(),cr(),xr(),Sr={key:0},Cr={key:0},wr={key:0},Tr={key:1,class:`error--text`},Er={key:1},Dr={key:2},Or={key:1},kr={key:1},Ar={key:0,class:`text-h2`},jr={key:1,class:`text-h3`},Mr={key:2,class:`text-h4`},Nr={key:3},Pr={key:4},Fr={key:5},Ir={key:2},Lr={key:3,class:`text-h5`},Rr={key:0},zr=[`href`,`title`],Br={key:5},Vr={key:6},Hr={key:7},Ur=[`src`,`alt`],Wr={key:9},Gr={key:10},Kr={key:11},qr=[`align`],Jr=[`innerHTML`],Yr=[`innerHTML`],Xr={key:16},Zr={key:17},Qr={key:18},$r=(0,t.defineComponent)({__name:`MdTokenRenderer`,props:{token:{type:Object,required:!0},last:{type:Boolean,required:!1,default:!1}},setup(e,{expose:n}){let r=(0,t.inject)(`markdownComponents`,{}),i={fillIn:(0,t.markRaw)(br),...r};function isComponent$1(e){return isComponent(e)}__name(isComponent$1,`isComponent`);function containsComponent$1(e){return containsComponent(e)}__name(containsComponent$1,`containsComponent`);function splitTextToken$1(e){return splitTextToken(e)}__name(splitTextToken$1,`splitTextToken`);function splitParagraphToken$1(e){return splitParagraphToken(e)}__name(splitParagraphToken$1,`splitParagraphToken`);function parsedComponent(e){let t=``;`text`in e&&typeof e.text==`string`?t=e.text:`raw`in e&&typeof e.raw==`string`&&(t=e.raw);let n=parseComponentSyntax(t);return n?{is:n.componentName,text:``,props:n.props}:{is:`fillIn`,text:t,props:{}}}function getComponent(e){return i[e]||(console.warn(`[MarkdownRenderer] Unknown component: "${e}". Available components: ${Object.keys(i).join(`, `)}`),null)}function decodeBasicEntities(e){return e.replace(/&#39;/g,`'`).replace(/&quot;/g,`"`).replace(/&amp;/g,`&`).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`)}function isText(e){return e.inLink===void 0&&e.type===`text`}return n({isComponent:isComponent$1,containsComponent:containsComponent$1,splitTextToken:splitTextToken$1,splitParagraphToken:splitParagraphToken$1,parsedComponent,decodeBasicEntities,isText,components:i,getComponent}),(n,r)=>{let i=(0,t.resolveComponent)(`md-token-renderer`,!0);return isText(e.token)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Sr,[!e.token.tokens||e.token.tokens.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Cr,[isComponent$1(e.token)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wr,[!e.last&&getComponent(parsedComponent(e.token).is)?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(getComponent(parsedComponent(e.token).is)),(0,t.mergeProps)({key:0,text:parsedComponent(e.token).text},parsedComponent(e.token).props),null,16,[`text`])):!e.last&&!getComponent(parsedComponent(e.token).is)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Tr,` [Unknown component: `+(0,t.toDisplayString)(parsedComponent(e.token).is)+`] `,1)):(0,t.createCommentVNode)(``,!0)])):containsComponent$1(e.token)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Er,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(splitTextToken$1(e.token),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Dr,(0,t.toDisplayString)(decodeBasicEntities(e.token.text)),1))])):e.token.tokens&&e.token.tokens.length!==0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Or,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):(0,t.createCommentVNode)(``,!0)])):e.token.type===`heading`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,kr,[e.token.depth===1?((0,t.openBlock)(),(0,t.createElementBlock)(`h1`,Ar,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.depth===2?((0,t.openBlock)(),(0,t.createElementBlock)(`h2`,jr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.depth===3?((0,t.openBlock)(),(0,t.createElementBlock)(`h3`,Mr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.depth===4?((0,t.openBlock)(),(0,t.createElementBlock)(`h4`,Nr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.depth===5?((0,t.openBlock)(),(0,t.createElementBlock)(`h5`,Pr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.depth===6?((0,t.openBlock)(),(0,t.createElementBlock)(`h6`,Fr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):(0,t.createCommentVNode)(``,!0)])):e.token.type===`strong`?((0,t.openBlock)(),(0,t.createElementBlock)(`strong`,Ir,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.type===`paragraph`?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,Lr,[containsComponent$1(e.token)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Rr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(splitParagraphToken$1(e.token),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:r,token:n,last:e.last&&e.token.tokens.length===1&&r===splitParagraphToken$1(e.token).length-1},null,8,[`token`,`last`]))),128))])):((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:1},(0,t.renderList)(e.token.tokens,(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:r,token:n,last:e.last&&e.token.tokens.length===1},null,8,[`token`,`last`]))),128))])):e.token.type===`link`?((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{key:4,href:e.token.href,title:e.token.title},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))],8,zr)):e.token.type===`list`&&e.token.ordered===!1?((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,Br,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.items,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.type===`list`&&e.token.ordered===!0?((0,t.openBlock)(),(0,t.createElementBlock)(`ol`,Vr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.items,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.type===`list_item`?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,Hr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.type===`image`?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:8,src:e.token.href,alt:e.token.title},null,8,Ur)):e.token.type===`hr`?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,Wr)):e.token.type===`br`?((0,t.openBlock)(),(0,t.createElementBlock)(`br`,Gr)):e.token.type===`del`?((0,t.openBlock)(),(0,t.createElementBlock)(`del`,Kr)):e.token.type===`table`?((0,t.openBlock)(),(0,t.createElementBlock)(`table`,{key:12,align:e.token.align},[(0,t.createElementVNode)(`thead`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.header,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`th`,{key:n},(0,t.toDisplayString)(e.text),1))),128))]),(0,t.createElementVNode)(`tbody`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.rows,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,{key:n},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`td`,{key:n},(0,t.toDisplayString)(e.text),1))),128))]))),128))])],8,qr)):e.token.type===`html`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:13,innerHTML:e.token.raw},null,8,Jr)):e.token.type===`code`?((0,t.openBlock)(),(0,t.createBlock)(sr,{key:14,code:e.token.text,language:e.token.lang},null,8,[`code`,`language`])):e.token.type===`codespan`?((0,t.openBlock)(),(0,t.createElementBlock)(`code`,{key:15,class:`codespan`,innerHTML:e.token.text},null,8,Yr)):e.token.type===`blockquote`?((0,t.openBlock)(),(0,t.createElementBlock)(`blockquote`,Xr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):e.token.type===`escape`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Zr,(0,t.toDisplayString)(e.token.text),1)):e.token.type===`em`?((0,t.openBlock)(),(0,t.createElementBlock)(`em`,Qr,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.token.tokens,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n,token:e},null,8,[`token`]))),128))])):(0,t.createCommentVNode)(``,!0)}}})})),ti=__esmMin((()=>{})),ni,ri=__esmMin((()=>{ei(),ei(),ti(),_(),ni=g($r,[[`__scopeId`,`data-v-de3eebd6`]])})),ii,ai,oi=__esmMin((()=>{k(),ii=500,ai=(0,t.defineComponent)({__name:`AudioAutoPlayer`,props:{src:{}},setup(e){let n=e,r=(0,t.ref)([]),i=(0,t.ref)([]),a=(0,t.ref)(!1),o=null,stop=()=>{a.value=!1,setTimeout(()=>{o=null},ii),i.value.forEach(clearTimeout),console.log(`Audio stopping...`),r.value.forEach(e=>{e.paused||(e.pause(),e.currentTime=0)})},downloadFinished=e=>{try{return!isNaN(r.value[e].duration)}catch(e){throw Error(`AudioPlayer does not have an element at this index:`,e)}},playByIndex=e=>{if(downloadFinished(e))if(r.value[e].play(),e+1<r.value.length){let t=(r.value[e].duration+.7)*1e3;i.value.push(setTimeout(()=>{a.value&&playByIndex(e+1)},t))}else setTimeout(()=>{a.value=!1},r.value[e].duration*1e3),setTimeout(()=>{o=null},r.value[e].duration*1e3+ii);else setTimeout(playByIndex,100,e)},play=()=>{o===null||o===(0,t.getCurrentInstance)()?(o=(0,t.getCurrentInstance)(),a.value=!0,playByIndex(0)):setTimeout(play,100)};return(0,t.onMounted)(()=>{o=null,typeof n.src==`string`?r.value.push(new Audio(n.src)):n.src.forEach(e=>{r.value.push(new Audio(e))});let e=[{hotkey:`up`,callback:play,command:`Replay Audio`}];O.addBinding(e),play()}),(0,t.onBeforeUnmount)(()=>{O.removeBinding(`up`),stop()}),(e,n)=>{let r=(0,t.resolveComponent)(`v-icon`),i=(0,t.resolveComponent)(`v-btn`);return(0,t.openBlock)(),(0,t.createBlock)(i,{size:`large`,icon:``,color:a.value?`primary lighten-3`:`primary`,class:(0,t.normalizeClass)({playing:a.value}),onClick:play},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[0]||(n[0]=[(0,t.createTextVNode)(`mdi-volume-high`)])),_:1})]),_:1},8,[`color`,`class`])}}})})),si=__esmMin((()=>{})),ci,li=__esmMin((()=>{oi(),oi(),si(),_(),ci=g(ai,[[`__scopeId`,`data-v-e1a0f62c`]])})),ui,di=__esmMin((()=>{ri(),li(),vn(),ui=(0,t.defineComponent)({name:`MarkdownRenderer`,components:{MdTokenRenderer:ni,AudioAutoPlayer:ci},props:{md:{type:String,required:!0}},computed:{tokens(){return _n(this.md)}}})})),fi=__exportAll({default:()=>pi});function _sfc_render$15(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`md-token-renderer`),c=(0,t.resolveComponent)(`audio-auto-player`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.tokens,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:r},[n.type?((0,t.openBlock)(),(0,t.createBlock)(s,{key:0,token:n,last:r===e.tokens.length-1},null,8,[`token`,`last`])):n.audio?((0,t.openBlock)(),(0,t.createBlock)(c,{key:1,src:n.audio},null,8,[`src`])):(0,t.createCommentVNode)(``,!0)]))),128))])}var pi,mi=__esmMin((()=>{di(),di(),_(),__name(_sfc_render$15,`_sfc_render`),pi=g(ui,[[`render`,_sfc_render$15]])})),hi=(0,t.defineComponent)({name:`MultipleChoiceOption`,components:{MarkdownRenderer:(0,t.defineAsyncComponent)(()=>Promise.resolve().then(()=>(mi(),fi)))},props:{content:{type:String,required:!0},selected:{type:Boolean,required:!0},number:{type:Number,required:!0},setSelection:{type:Function,required:!0},submit:{type:Function,required:!0},markedWrong:{type:Boolean,required:!0}},computed:{className(){let e;switch(this.number){case 0:e=`bg-red`;break;case 1:e=`bg-purple`;break;case 2:e=`bg-indigo`;break;case 3:e=`bg-light-blue`;break;case 4:e=`bg-teal`;break;case 5:e=`bg-deep-orange`;break;default:e=`bg-grey`;break}if(this.selected&&!this.markedWrong)return`choice selected ${e} lighten-3 elevation-8`;if(!this.selected&&!this.markedWrong)return`choice not-selected ${e} lighten-4 elevation-1`;if(this.selected&&this.markedWrong)return`choice selected grey lighten-2 elevation-8`;if(!this.selected&&this.markedWrong)return`choice not-selected grey lighten-2 elevation-0`;throw Error(`'selected' and 'markedWrong' props in MultipleChoiceOption are in an impossible configuration.`)}},methods:{select(){this.setSelection(this.number)},submitThisOption(){this.markedWrong||(this.select(),this.submit())}}});_();function _sfc_render$14(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`markdown-renderer`),c=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(c,{class:(0,t.normalizeClass)(`${e.className}`),onMouseover:e.select,onClick:e.submitThisOption},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{md:e.content},null,8,[`md`])]),_:1},8,[`class`,`onMouseover`,`onClick`])}__name(_sfc_render$14,`_sfc_render`);var gi=g(hi,[[`render`,_sfc_render$14],[`__scopeId`,`data-v-96de7172`]]);wt(),k();var _i=(0,t.defineComponent)({name:`RadioMultipleChoice`,components:{MultipleChoiceOption:gi},extends:Ct,props:{choiceList:{type:Array,required:!0}},data(){return{currentSelection:-1,incorrectSelections:[],containerRef:null,_registeredHotkeys:[]}},watch:{choiceList:{immediate:!0,handler(e){e?.length&&this.bindKeys()}}},mounted(){this.containerRef&&this.containerRef.focus()},unmounted(){this.unbindKeys()},methods:{forwardSelection(){if(!this.choiceIsWrong(this.choiceList[this.currentSelection])&&this.currentSelection!==-1){let e={choiceList:this.choiceList,selection:this.currentSelection};this.submitAnswer(e).isCorrect||this.incorrectSelections.push(this.currentSelection)}},setSelection(e){e<this.choiceList.length&&(this.currentSelection=e)},incrementSelection(){this.currentSelection===-1?this.currentSelection=Math.ceil(this.choiceList.length/2):this.currentSelection=Math.min(this.choiceList.length-1,this.currentSelection+1)},decrementSelection(){this.currentSelection===-1?this.currentSelection=Math.floor(this.choiceList.length/2-1):this.currentSelection=Math.max(0,this.currentSelection-1)},choiceIsWrong(e){let t=!1;return this.incorrectSelections.forEach(n=>{this.choiceList[n]===e&&(t=!0)}),t},bindKeys(){let e=[{hotkey:`left`,callback:this.decrementSelection,command:`Move selection left`},{hotkey:`right`,callback:this.incrementSelection,command:`Move selection right`},{hotkey:`enter`,callback:this.forwardSelection,command:`Submit selection`},...Array.from({length:this.choiceList.length},(e,t)=>({hotkey:(t+1).toString(),callback:()=>this.setSelection(t),command:`Select ${(e=>{switch(e){case 0:return`first`;case 1:return`second`;case 2:return`third`;case 3:return`fourth`;case 4:return`fifth`;case 5:return`sixth`;default:return`${e+1}th`}})(t)} option`}))];O.addBinding(e),this._registeredHotkeys=e.map(e=>e.hotkey)},unbindKeys(){this._registeredHotkeys&&this._registeredHotkeys.forEach(e=>{O.removeBinding(e)})}}});_();var vi={ref:`containerRef`,class:`multipleChoice`};function _sfc_render$13(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`MultipleChoiceOption`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,vi,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.choiceList,(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(s,{key:r,content:n,selected:e.choiceList.indexOf(n)===e.currentSelection,number:e.choiceList.indexOf(n),"set-selection":e.setSelection,submit:e.forwardSelection,"marked-wrong":e.choiceIsWrong(n)},null,8,[`content`,`selected`,`number`,`set-selection`,`submit`,`marked-wrong`]))),128))],512)}__name(_sfc_render$13,`_sfc_render`);var yi=g(_i,[[`render`,_sfc_render$13]]),bi=(0,t.defineComponent)({name:`TrueFalse`,components:{RadioMultipleChoice:yi},props:{MouseTrap:{type:Object,required:!0},submit:{type:Function,required:!0}}});_();var xi={"data-viewable":`TrueFalse`};function _sfc_render$12(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`RadioMultipleChoice`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,xi,[(0,t.createVNode)(s,{"choice-list":[`True`,`False`],MouseTrap:e.MouseTrap,submit:e.submit},null,8,[`MouseTrap`,`submit`])])}__name(_sfc_render$12,`_sfc_render`);var Si=g(bi,[[`render`,_sfc_render$12]]);wt();var Ci=(0,t.defineComponent)({name:`UserInputNumber`,ref:{},extends:Ct,methods:{mounted(){this.$refs.input.focus()},isNumeric(e){return!isNaN(Number.parseFloat(e))},makeNumeric(e){if(typeof e==`string`)return Number.parseFloat(e);throw Error(`Expected a string, got `+typeof e)}}});_();function _sfc_render$11(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-text-field`),c=(0,t.resolveComponent)(`v-container`);return(0,t.openBlock)(),(0,t.createBlock)(c,{class:`pa-0`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{ref:`input`,modelValue:e.answer,"onUpdate:modelValue":n[0]||(n[0]=t=>e.answer=t),"prepend-icon":`edit`,autofocus:e.autofocus,"row-height":`24`,"toggle-keys":`[13,32]`,class:`text-h5`,rules:[e.isNumeric],onKeyup:n[1]||(n[1]=(0,t.withKeys)(t=>e.submitAnswer(e.makeNumeric(e.answer)),[`enter`]))},null,8,[`modelValue`,`autofocus`,`rules`])]),_:1})}__name(_sfc_render$11,`_sfc_render`);var wi=g(Ci,[[`render`,_sfc_render$11],[`__scopeId`,`data-v-a56dcd1c`]]),Ti=(0,t.defineComponent)({name:`CardLoader`,components:{CardViewer:Ae},props:{sessionOrder:{type:Number,required:!1,default:0},qualified_id:{type:Object,required:!0},viewLookup:{type:Function,required:!0}},data(){return{loading:!0,view:null,data:[],courseID:``,cardID:``}},created(){this.loadCard()},watch:{qualified_id:{immediate:!0,handler(){this.loadCard()}}},methods:{processResponse(e){(0,r.log)(`
65
65
  Card was displayed at ${e.timeStamp}
66
66
  User spent ${e.timeSpent} milliseconds with the card.
67
- `),this.$emit(`emitResponse`,e)},async loadCard(){let e=this.qualified_id;console.log(`Card Loader displaying: ${e.courseID}::${e.cardID}`),this.loading=!0;let n=e.courseID,a=e.cardID,o=(0,i.getDataLayer)().getCourseDB(n);try{let e=await o.getCourseDoc(a),i=this.viewLookup(e.id_view),s=e.id_displayable_data.map(e=>o.getCourseDoc(e,{attachments:!0,binary:!0})),c=[];for(let e of s){let t=await e;c.unshift((0,r.displayableDataToViewData)(t))}this.data=c,this.view=(0,t.markRaw)(i),this.cardID=a,this.courseID=n}catch(e){throw Error(`[CardLoader] Error loading card: ${JSON.stringify(e)}, ${e}`)}finally{this.loading=!1,this.$emit(`card-loaded`)}}}});_();function _sfc_render$10(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`card-viewer`);return e.loading?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(s,{key:0,class:(0,t.normalizeClass)([`ma-2`,e.loading?`muted`:``]),view:e.view,data:e.data,card_id:e.cardID,course_id:e.courseID,"session-order":e.sessionOrder,onEmitResponse:n[0]||(n[0]=t=>e.processResponse(t))},null,8,[`class`,`view`,`data`,`card_id`,`course_id`,`session-order`]))}__name(_sfc_render$10,`_sfc_render`);var Fi=g(Pi,[[`render`,_sfc_render$10],[`__scopeId`,`data-v-93f758b5`]]);Ci(),F();async function getCurrentUser(){let e=useAuthStore();if(!e.onLoadComplete){let t=200;for(;!e.onLoadComplete&&t>0;)await new Promise(e=>setTimeout(e,50)),t--;if(!e.onLoadComplete)throw Error(`User initialization timed out`)}return(0,i.getDataLayer)().getUserDB()}var useAuthStore=()=>{let e=getPinia();return e&&(0,a.setActivePinia)(e),(0,a.defineStore)(`auth`,{state:()=>({_user:void 0,loginAndRegistration:{init:!1,loggedIn:!1,regDialogOpen:!1,loginDialogOpen:!1},onLoadComplete:!1}),actions:{async init(){try{this._user=(0,i.getDataLayer)().getUserDB(),this.loginAndRegistration.loggedIn=this._user?this._user.isLoggedIn():!1,this.onLoadComplete=!0,this.loginAndRegistration.init=!0}catch(e){console.error(`Failed to initialize auth store:`,e),this.loginAndRegistration.loggedIn=!1,this.onLoadComplete=!0,this.loginAndRegistration.init=!0}},setLoginDialog(e){this.loginAndRegistration.loginDialogOpen=e},setRegDialog(e){this.loginAndRegistration.regDialogOpen=e},async resetUserData(){try{if(!this._user)throw Error(`No user available for data reset`);let e=await this._user.resetUserData();if(e.status!==`ok`)throw Error(e.error||`Reset failed`);return console.log(`User data reset successfully`),e}catch(e){throw console.error(`Failed to reset user data:`,e),e}}},getters:{currentUser:async()=>getCurrentUser(),isLoggedIn:e=>e.loginAndRegistration.loggedIn,isInitialized:e=>e.loginAndRegistration.init,status:e=>({loggedIn:e.loginAndRegistration.loggedIn,init:e.loginAndRegistration.init,user:e._user})}})()};F();var useConfigStore=()=>{let e=getPinia();return e&&(0,a.setActivePinia)(e),(0,a.defineStore)(`config`,{state:()=>({config:{darkMode:!1,likesConfetti:!1,sessionTimeLimit:5}}),actions:{updateConfig(e){this.config=e},async updateDarkMode(e){this.config.darkMode=e;let t=await getCurrentUser();t&&await t.setConfig({darkMode:e})},async updateLikesConfetti(e){this.config.likesConfetti=e;let t=await getCurrentUser();t&&await t.setConfig({likesConfetti:e})},async updateSessionTimeLimit(e){this.config.sessionTimeLimit=e;let t=await getCurrentUser();t&&await t.setConfig({sessionTimeLimit:e})},async hydrate(){try{let e=await getCurrentUser();if(e){let t=await e.getConfig();console.log(`user config: ${JSON.stringify(t)}`),this.updateConfig(t)}else console.log(`No user logged in, using default config`)}catch(e){console.warn(`Failed to hydrate config store, using defaults:`,e)}},async init(){await this.hydrate()},resetDefaults(){this.config={darkMode:!1,likesConfetti:!1,sessionTimeLimit:5}}}})()};function useAuthUI(){let e=(0,t.ref)(!0),n=(0,t.ref)(!1),r=(0,t.ref)(!1),i=(0,t.computed)(()=>r.value?{showLoginRegistration:!1,showLogout:!1,showResetData:!0,logoutLabel:``,resetLabel:`Reset User Data`}:{showLoginRegistration:!0,showLogout:!0,showResetData:!1,logoutLabel:`Log out`,resetLabel:``}),detectSyncStrategy=async()=>{try{e.value=!0,r.value=!(await getCurrentUser()).syncStrategy?.canCreateAccount?.(),n.value=!0}catch(e){console.error(`Failed to detect sync strategy:`,e),r.value=!1,n.value=!0}finally{e.value=!1}};return{config:i,isLoading:e,syncStrategyDetected:n,isLocalOnlyMode:r,detectSyncStrategy}}var Ii=(0,t.defineComponent)({__name:`UserChip`,props:{showLoginButton:{type:Boolean},redirectToPath:{}},setup(e){let n=(0,o.useRouter)(),r=useAuthStore(),i=useConfigStore(),a=useAuthUI(),s=(0,t.ref)(``),c=(0,t.ref)([]),l=(0,t.ref)(!1),u=(0,t.ref)(``),d=(0,t.computed)(()=>u.value===`reset`),resetDialogState=()=>{u.value=``,l.value=!1},f=(0,t.computed)(()=>c.value.length>0),p=(0,t.computed)(()=>a.config.value||{showLoginRegistration:!0,showLogout:!0,showResetData:!1,logoutLabel:`Log out`,resetLabel:``});(0,t.onMounted)(async()=>{s.value=(await getCurrentUser()).getUsername(),await a.detectSyncStrategy()});let gotoSettings=async()=>{n.push(`/u/${(await getCurrentUser()).getUsername()}`)},gotoStats=async()=>{n.push(`/u/${(await getCurrentUser()).getUsername()}/stats`)},dismiss=e=>{let t=c.value.indexOf(e);c.value.splice(t,1)},logout=async()=>{(await r._user.logout()).ok&&(r.loginAndRegistration={init:!0,loggedIn:!1,regDialogOpen:!1,loginDialogOpen:!1},i.resetDefaults(),n.push(`/home`))},executeReset=async()=>{try{await r.resetUserData(),i.resetDefaults(),resetDialogState(),n.push(`/home`)}catch(e){console.error(`Failed to reset user data:`,e)}};return(e,n)=>{let r=(0,t.resolveComponent)(`v-icon`),i=(0,t.resolveComponent)(`v-avatar`),a=(0,t.resolveComponent)(`v-chip`),o=(0,t.resolveComponent)(`v-list-item-title`),m=(0,t.resolveComponent)(`v-list-item`),h=(0,t.resolveComponent)(`v-divider`),g=(0,t.resolveComponent)(`v-list`),_=(0,t.resolveComponent)(`v-menu`),v=(0,t.resolveComponent)(`v-badge`),y=(0,t.resolveComponent)(`v-card-title`),b=(0,t.resolveComponent)(`v-text-field`),x=(0,t.resolveComponent)(`v-card-text`),S=(0,t.resolveComponent)(`v-spacer`),C=(0,t.resolveComponent)(`v-btn`),w=(0,t.resolveComponent)(`v-card-actions`),T=(0,t.resolveComponent)(`v-card`),E=(0,t.resolveComponent)(`v-dialog`);return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createVNode)(v,{content:c.value.length,"model-value":f.value,color:`accent`,location:`end top`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(_,{location:`bottom end`,transition:`scale-transition`},{activator:(0,t.withCtx)(({props:e})=>[(0,t.createVNode)(a,(0,t.mergeProps)(e,{class:`ma-2`}),{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{start:``,class:`bg-primary`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(`mdi-school`)])),_:1})]),_:1}),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(s.value),1)]),_:2},1040)]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(g,null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(c.value,e=>((0,t.openBlock)(),(0,t.createBlock)(m,{key:e,onClick:t=>dismiss(e)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e),1)]),_:2},1024)]),_:2},1032,[`onClick`]))),128)),c.value.length?((0,t.openBlock)(),(0,t.createBlock)(h,{key:0})):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(m,{onClick:gotoStats},{prepend:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(`mdi-trending-up`)])),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`Stats`)])),_:1})]),_:1}),(0,t.createVNode)(m,{onClick:gotoSettings},{prepend:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(`mdi-cog`)])),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(`Settings`)])),_:1})]),_:1}),p.value.showLogout?((0,t.openBlock)(),(0,t.createBlock)(m,{key:1,onClick:logout},{prepend:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[9]||(n[9]=[(0,t.createTextVNode)(`mdi-logout`)])),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(p.value.logoutLabel),1)]),_:1})]),_:1})):(0,t.createCommentVNode)(``,!0),p.value.showResetData?((0,t.openBlock)(),(0,t.createBlock)(m,{key:2,onClick:n[0]||(n[0]=e=>l.value=!0)},{prepend:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[10]||(n[10]=[(0,t.createTextVNode)(`mdi-delete-sweep`)])),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(p.value.resetLabel),1)]),_:1})]),_:1})):(0,t.createCommentVNode)(``,!0)]),_:1})]),_:1})]),_:1},8,[`content`,`model-value`]),(0,t.createVNode)(E,{modelValue:l.value,"onUpdate:modelValue":n[3]||(n[3]=e=>l.value=e),"max-width":`500px`,persistent:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(T,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(y,{class:`text-h5 d-flex align-center`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(r,{color:`warning`,class:`mr-3`},{default:(0,t.withCtx)(()=>n[11]||(n[11]=[(0,t.createTextVNode)(`mdi-alert-circle`)])),_:1}),n[12]||(n[12]=(0,t.createTextVNode)(` Reset All User Data `))]),_:1}),(0,t.createVNode)(x,null,{default:(0,t.withCtx)(()=>[n[13]||(n[13]=(0,t.createElementVNode)(`p`,{class:`mb-4`},`This will permanently delete:`,-1)),n[14]||(n[14]=(0,t.createElementVNode)(`ul`,{class:`mb-4`},[(0,t.createElementVNode)(`li`,null,`All course progress and history`),(0,t.createElementVNode)(`li`,null,`Scheduled card reviews`),(0,t.createElementVNode)(`li`,null,`Course registrations`),(0,t.createElementVNode)(`li`,null,`User preferences`)],-1)),n[15]||(n[15]=(0,t.createElementVNode)(`p`,{class:`mb-4 text-error font-weight-bold`},`This cannot be undone.`,-1)),(0,t.createVNode)(b,{modelValue:u.value,"onUpdate:modelValue":n[1]||(n[1]=e=>u.value=e),label:`Type "reset" to confirm`,outlined:``,dense:``,onKeyup:n[2]||(n[2]=(0,t.withKeys)(e=>d.value&&executeReset(),[`enter`]))},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(w,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(S),(0,t.createVNode)(C,{text:``,onClick:resetDialogState},{default:(0,t.withCtx)(()=>n[16]||(n[16]=[(0,t.createTextVNode)(`Cancel`)])),_:1}),(0,t.createVNode)(C,{color:`error`,disabled:!d.value,onClick:executeReset},{default:(0,t.withCtx)(()=>n[17]||(n[17]=[(0,t.createTextVNode)(` Reset All Data `)])),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64)}}});_();var Li=g(Ii,[[`__scopeId`,`data-v-9a38a213`]]),Ri={class:`d-flex flex-column align-start`},zi={class:`mb-2`},Bi=(0,t.defineComponent)({__name:`UserLogin`,props:{redirectTo:{default:`/study`}},emits:[`toggle`,`loginSuccess`,`forgotPassword`],setup(e,{emit:n}){let i=e,a=n,s=(0,o.useRouter)(),c=(0,o.useRoute)(),l=useAuthStore(),u=useConfigStore(),d=(0,t.ref)(``),f=(0,t.ref)(``),p=(0,t.ref)(!1),m=(0,t.ref)(!1),h=(0,t.ref)(!1),g=(0,t.ref)(7e3),_=(0,t.ref)(void 0),v=(0,t.computed)(()=>c.name===`login`),y=(0,t.computed)(()=>({color:h.value?`error`:`success`,text:h.value?`Try again`:`Log In`})),initBadLogin=()=>{h.value=!0,N({text:`Username or password was incorrect.`,status:r.Status.error,timeout:g.value}),setTimeout(()=>{h.value=!1},g.value)},login=async()=>{m.value=!0,(0,r.log)(`Starting login attempt`),(0,r.log)(`Login attempt for username: ${d.value}`);try{(0,r.log)(`Attempting to get User instance`),_.value=await getCurrentUser(),(0,r.log)(`Got User instance, attempting login`),await _.value.login(d.value,f.value),(0,r.log)(`Login successful`),(0,r.log)(`Initializing user config`),u.init(),(0,r.log)(`User config initialized`),(0,r.log)(`Setting authentication state`),l.loginAndRegistration.loggedIn=!0,(0,r.log)(`Authentication state set, redirecting to: ${i.redirectTo}`),a(`loginSuccess`,i.redirectTo),s.push(i.redirectTo),(0,r.log)(`Login and redirect complete`)}catch(e){(0,r.log)(`Login attempt failed`),(0,r.log)(`Login error details: ${JSON.stringify(e)}`),console.log(`login error: ${JSON.stringify(e)}`),(0,r.log)(`Initiating bad login feedback`),initBadLogin()}(0,r.log)(`Resetting awaiting response state`),m.value=!1},toggle=()=>{(0,r.log)(`Toggling registration / login forms.`),a(`toggle`)},handleForgotPassword=()=>{(0,r.log)(`Forgot password clicked`),v.value?s.push(`/request-reset`):a(`forgotPassword`)};return(e,n)=>{let r=(0,t.resolveComponent)(`v-card-title`),i=(0,t.resolveComponent)(`v-text-field`),a=(0,t.resolveComponent)(`v-btn`),o=(0,t.resolveComponent)(`v-snackbar`),s=(0,t.resolveComponent)(`v-icon`),c=(0,t.resolveComponent)(`router-link`),l=(0,t.resolveComponent)(`v-form`),u=(0,t.resolveComponent)(`v-card-text`),_=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(_,null,{default:(0,t.withCtx)(()=>[v.value?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(r,{key:0,class:`text-h5 bg-grey-lighten-2`},{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(`Log In`)])),_:1})),(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{onsubmit:`return false;`,onSubmit:(0,t.withModifiers)(login,[`prevent`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{id:``,modelValue:d.value,"onUpdate:modelValue":n[0]||(n[0]=e=>d.value=e),autofocus:``,name:`username`,label:`Username`,"prepend-icon":`mdi-account-circle`},null,8,[`modelValue`]),(0,t.createVNode)(i,{modelValue:f.value,"onUpdate:modelValue":n[1]||(n[1]=e=>f.value=e),"prepend-icon":`mdi-lock`,name:`password`,hover:`Show password input`,label:`Enter your password`,hint:``,min:`0`,"append-icon":p.value?`mdi-eye-off`:`mdi-eye`,type:p.value?`text`:`password`,"onClick:append":n[2]||(n[2]=()=>p.value=!p.value)},null,8,[`modelValue`,`append-icon`,`type`]),(0,t.createVNode)(o,{modelValue:h.value,"onUpdate:modelValue":n[4]||(n[4]=e=>h.value=e),location:`bottom right`,timeout:g.value},{default:(0,t.withCtx)(()=>[n[7]||(n[7]=(0,t.createTextVNode)(` Username or password was incorrect. `)),(0,t.createVNode)(a,{color:`pink`,variant:`text`,onClick:n[3]||(n[3]=e=>h.value=!1)},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`Close`)])),_:1})]),_:1},8,[`modelValue`,`timeout`]),(0,t.createElementVNode)(`div`,Ri,[(0,t.createElementVNode)(`div`,zi,[(0,t.createVNode)(a,{class:`mr-2`,type:`submit`,loading:m.value,color:y.value.color},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{start:``},{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(`mdi-lock-open`)])),_:1}),n[9]||(n[9]=(0,t.createTextVNode)(` Log In `))]),_:1},8,[`loading`,`color`]),v.value?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,to:`signup`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{variant:`text`},{default:(0,t.withCtx)(()=>n[10]||(n[10]=[(0,t.createTextVNode)(`Create New Account`)])),_:1})]),_:1})):((0,t.openBlock)(),(0,t.createBlock)(a,{key:1,variant:`text`,onClick:toggle},{default:(0,t.withCtx)(()=>n[11]||(n[11]=[(0,t.createTextVNode)(`Create New Account`)])),_:1}))]),(0,t.renderSlot)(e.$slots,`forgot-password`,{},()=>[(0,t.createElementVNode)(`a`,{href:`#`,class:`text-caption text-decoration-none`,onClick:(0,t.withModifiers)(handleForgotPassword,[`prevent`])},` Forgot password? `)],!0)])]),_:3})]),_:3})]),_:3})}}});_();var Vi=g(Bi,[[`__scopeId`,`data-v-563b0048`]]);function validatePassword(e){return e?e.length<6?`Password must be at least 6 characters`:new Set(e).size<2?`Password must contain at least 2 different characters`:``:``}function isPasswordValid(e){return validatePassword(e)===``}var Hi=(0,t.defineComponent)({name:`UserRegistration`,props:{onSignupSuccess:{type:Function,required:!1}},emits:[`toggle`,`signup-success`],data(){return{email:``,username:``,password:``,retypedPassword:``,passwordVisible:!1,emailError:!1,emailHint:``,usernameValidationInProgress:!1,usernameError:!1,usernameHint:``,awaitingResponse:!1,badLoginAttempt:!1,userSecret:``,secret:`goons`,user:null,roles:[`Student`,`Teacher`,`Author`],student:!0,teacher:!1,author:!1,authStore:useAuthStore()}},computed:{registrationRoute(){return typeof this.$route.name==`string`&&this.$route.name.toLowerCase()===`signup`},buttonStatus(){return{color:this.badLoginAttempt?`error`:`success`,text:this.badLoginAttempt?`Try again`:`Log In`}},passwordError(){return validatePassword(this.password)},passwordRetypeError(){return console.log(`[RTE]`),this.password===this.retypedPassword?``:`Passwords must match.`}},async created(){this.user=await getCurrentUser()},methods:{toggle(){(0,r.log)(`Toggling registration / login forms.`),this.$emit(`toggle`)},validateEmail(){this.emailError=!1,this.email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.email)?(this.emailError=!0,this.emailHint=`Please enter a valid email address`):this.emailHint=``},validateUsername(){this.usernameError=!1},async createUser(){if(this.awaitingResponse=!0,this.passwordError){N({text:this.passwordError,status:r.Status.error}),this.awaitingResponse=!1;return}if((0,r.log)(`
67
+ `),this.$emit(`emitResponse`,e)},async loadCard(){let e=this.qualified_id;console.log(`Card Loader displaying: ${e.courseID}::${e.cardID}`),this.loading=!0;let n=e.courseID,a=e.cardID,o=(0,i.getDataLayer)().getCourseDB(n);try{let e=await o.getCourseDoc(a),i=this.viewLookup(e.id_view),s=e.id_displayable_data.map(e=>o.getCourseDoc(e,{attachments:!0,binary:!0})),c=[];for(let e of s){let t=await e;c.unshift((0,r.displayableDataToViewData)(t))}this.data=c,this.view=(0,t.markRaw)(i),this.cardID=a,this.courseID=n}catch(e){throw Error(`[CardLoader] Error loading card: ${JSON.stringify(e)}, ${e}`)}finally{this.loading=!1,this.$emit(`card-loaded`)}}}});_();function _sfc_render$10(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`card-viewer`);return e.loading?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(s,{key:0,class:(0,t.normalizeClass)([`ma-2`,e.loading?`muted`:``]),view:e.view,data:e.data,card_id:e.cardID,course_id:e.courseID,"session-order":e.sessionOrder,onEmitResponse:n[0]||(n[0]=t=>e.processResponse(t))},null,8,[`class`,`view`,`data`,`card_id`,`course_id`,`session-order`]))}__name(_sfc_render$10,`_sfc_render`);var Ei=g(Ti,[[`render`,_sfc_render$10],[`__scopeId`,`data-v-93f758b5`]]);mi(),P();async function getCurrentUser(){let e=useAuthStore();if(!e.onLoadComplete){let t=200;for(;!e.onLoadComplete&&t>0;)await new Promise(e=>setTimeout(e,50)),t--;if(!e.onLoadComplete)throw Error(`User initialization timed out`)}return(0,i.getDataLayer)().getUserDB()}var useAuthStore=()=>{let e=getPinia();return e&&(0,a.setActivePinia)(e),(0,a.defineStore)(`auth`,{state:()=>({_user:void 0,loginAndRegistration:{init:!1,loggedIn:!1,regDialogOpen:!1,loginDialogOpen:!1},onLoadComplete:!1}),actions:{async init(){try{this._user=(0,i.getDataLayer)().getUserDB(),this.loginAndRegistration.loggedIn=this._user?this._user.isLoggedIn():!1,this.onLoadComplete=!0,this.loginAndRegistration.init=!0}catch(e){console.error(`Failed to initialize auth store:`,e),this.loginAndRegistration.loggedIn=!1,this.onLoadComplete=!0,this.loginAndRegistration.init=!0}},setLoginDialog(e){this.loginAndRegistration.loginDialogOpen=e},setRegDialog(e){this.loginAndRegistration.regDialogOpen=e},async resetUserData(){try{if(!this._user)throw Error(`No user available for data reset`);let e=await this._user.resetUserData();if(e.status!==`ok`)throw Error(e.error||`Reset failed`);return console.log(`User data reset successfully`),e}catch(e){throw console.error(`Failed to reset user data:`,e),e}}},getters:{currentUser:async()=>getCurrentUser(),isLoggedIn:e=>e.loginAndRegistration.loggedIn,isInitialized:e=>e.loginAndRegistration.init,status:e=>({loggedIn:e.loginAndRegistration.loggedIn,init:e.loginAndRegistration.init,user:e._user})}})()};P();var useConfigStore=()=>{let e=getPinia();return e&&(0,a.setActivePinia)(e),(0,a.defineStore)(`config`,{state:()=>({config:{darkMode:!1,likesConfetti:!1,sessionTimeLimit:5}}),actions:{updateConfig(e){this.config=e},async updateDarkMode(e){this.config.darkMode=e;let t=await getCurrentUser();t&&await t.setConfig({darkMode:e})},async updateLikesConfetti(e){this.config.likesConfetti=e;let t=await getCurrentUser();t&&await t.setConfig({likesConfetti:e})},async updateSessionTimeLimit(e){this.config.sessionTimeLimit=e;let t=await getCurrentUser();t&&await t.setConfig({sessionTimeLimit:e})},async hydrate(){try{let e=await getCurrentUser();if(e){let t=await e.getConfig();console.log(`user config: ${JSON.stringify(t)}`),this.updateConfig(t)}else console.log(`No user logged in, using default config`)}catch(e){console.warn(`Failed to hydrate config store, using defaults:`,e)}},async init(){await this.hydrate()},resetDefaults(){this.config={darkMode:!1,likesConfetti:!1,sessionTimeLimit:5}}}})()};function useAuthUI(){let e=(0,t.ref)(!0),n=(0,t.ref)(!1),r=(0,t.ref)(!1),i=(0,t.computed)(()=>r.value?{showLoginRegistration:!1,showLogout:!1,showResetData:!0,logoutLabel:``,resetLabel:`Reset User Data`}:{showLoginRegistration:!0,showLogout:!0,showResetData:!1,logoutLabel:`Log out`,resetLabel:``}),detectSyncStrategy=async()=>{try{e.value=!0,r.value=!(await getCurrentUser()).syncStrategy?.canCreateAccount?.(),n.value=!0}catch(e){console.error(`Failed to detect sync strategy:`,e),r.value=!1,n.value=!0}finally{e.value=!1}};return{config:i,isLoading:e,syncStrategyDetected:n,isLocalOnlyMode:r,detectSyncStrategy}}var Di=(0,t.defineComponent)({__name:`UserChip`,props:{showLoginButton:{type:Boolean},redirectToPath:{}},setup(e){let n=(0,o.useRouter)(),r=useAuthStore(),i=useConfigStore(),a=useAuthUI(),s=(0,t.ref)(``),c=(0,t.ref)([]),l=(0,t.ref)(!1),u=(0,t.ref)(``),d=(0,t.computed)(()=>u.value===`reset`),resetDialogState=()=>{u.value=``,l.value=!1},f=(0,t.computed)(()=>c.value.length>0),p=(0,t.computed)(()=>a.config.value||{showLoginRegistration:!0,showLogout:!0,showResetData:!1,logoutLabel:`Log out`,resetLabel:``});(0,t.onMounted)(async()=>{s.value=(await getCurrentUser()).getUsername(),await a.detectSyncStrategy()});let gotoSettings=async()=>{n.push(`/u/${(await getCurrentUser()).getUsername()}`)},gotoStats=async()=>{n.push(`/u/${(await getCurrentUser()).getUsername()}/stats`)},dismiss=e=>{let t=c.value.indexOf(e);c.value.splice(t,1)},logout=async()=>{(await r._user.logout()).ok&&(r.loginAndRegistration={init:!0,loggedIn:!1,regDialogOpen:!1,loginDialogOpen:!1},i.resetDefaults(),n.push(`/home`))},executeReset=async()=>{try{await r.resetUserData(),i.resetDefaults(),resetDialogState(),n.push(`/home`)}catch(e){console.error(`Failed to reset user data:`,e)}};return(e,n)=>{let r=(0,t.resolveComponent)(`v-icon`),i=(0,t.resolveComponent)(`v-avatar`),a=(0,t.resolveComponent)(`v-chip`),o=(0,t.resolveComponent)(`v-list-item-title`),m=(0,t.resolveComponent)(`v-list-item`),h=(0,t.resolveComponent)(`v-divider`),g=(0,t.resolveComponent)(`v-list`),_=(0,t.resolveComponent)(`v-menu`),v=(0,t.resolveComponent)(`v-badge`),y=(0,t.resolveComponent)(`v-card-title`),b=(0,t.resolveComponent)(`v-text-field`),x=(0,t.resolveComponent)(`v-card-text`),S=(0,t.resolveComponent)(`v-spacer`),C=(0,t.resolveComponent)(`v-btn`),w=(0,t.resolveComponent)(`v-card-actions`),T=(0,t.resolveComponent)(`v-card`),E=(0,t.resolveComponent)(`v-dialog`);return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createVNode)(v,{content:c.value.length,"model-value":f.value,color:`accent`,location:`end top`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(_,{location:`bottom end`,transition:`scale-transition`},{activator:(0,t.withCtx)(({props:e})=>[(0,t.createVNode)(a,(0,t.mergeProps)(e,{class:`ma-2`}),{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{start:``,class:`bg-primary`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(`mdi-school`)])),_:1})]),_:1}),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(s.value),1)]),_:2},1040)]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(g,null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(c.value,e=>((0,t.openBlock)(),(0,t.createBlock)(m,{key:e,onClick:t=>dismiss(e)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e),1)]),_:2},1024)]),_:2},1032,[`onClick`]))),128)),c.value.length?((0,t.openBlock)(),(0,t.createBlock)(h,{key:0})):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(m,{onClick:gotoStats},{prepend:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(`mdi-trending-up`)])),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`Stats`)])),_:1})]),_:1}),(0,t.createVNode)(m,{onClick:gotoSettings},{prepend:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(`mdi-cog`)])),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(`Settings`)])),_:1})]),_:1}),p.value.showLogout?((0,t.openBlock)(),(0,t.createBlock)(m,{key:1,onClick:logout},{prepend:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[9]||(n[9]=[(0,t.createTextVNode)(`mdi-logout`)])),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(p.value.logoutLabel),1)]),_:1})]),_:1})):(0,t.createCommentVNode)(``,!0),p.value.showResetData?((0,t.openBlock)(),(0,t.createBlock)(m,{key:2,onClick:n[0]||(n[0]=e=>l.value=!0)},{prepend:(0,t.withCtx)(()=>[(0,t.createVNode)(r,null,{default:(0,t.withCtx)(()=>n[10]||(n[10]=[(0,t.createTextVNode)(`mdi-delete-sweep`)])),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(p.value.resetLabel),1)]),_:1})]),_:1})):(0,t.createCommentVNode)(``,!0)]),_:1})]),_:1})]),_:1},8,[`content`,`model-value`]),(0,t.createVNode)(E,{modelValue:l.value,"onUpdate:modelValue":n[3]||(n[3]=e=>l.value=e),"max-width":`500px`,persistent:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(T,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(y,{class:`text-h5 d-flex align-center`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(r,{color:`warning`,class:`mr-3`},{default:(0,t.withCtx)(()=>n[11]||(n[11]=[(0,t.createTextVNode)(`mdi-alert-circle`)])),_:1}),n[12]||(n[12]=(0,t.createTextVNode)(` Reset All User Data `))]),_:1}),(0,t.createVNode)(x,null,{default:(0,t.withCtx)(()=>[n[13]||(n[13]=(0,t.createElementVNode)(`p`,{class:`mb-4`},`This will permanently delete:`,-1)),n[14]||(n[14]=(0,t.createElementVNode)(`ul`,{class:`mb-4`},[(0,t.createElementVNode)(`li`,null,`All course progress and history`),(0,t.createElementVNode)(`li`,null,`Scheduled card reviews`),(0,t.createElementVNode)(`li`,null,`Course registrations`),(0,t.createElementVNode)(`li`,null,`User preferences`)],-1)),n[15]||(n[15]=(0,t.createElementVNode)(`p`,{class:`mb-4 text-error font-weight-bold`},`This cannot be undone.`,-1)),(0,t.createVNode)(b,{modelValue:u.value,"onUpdate:modelValue":n[1]||(n[1]=e=>u.value=e),label:`Type "reset" to confirm`,outlined:``,dense:``,onKeyup:n[2]||(n[2]=(0,t.withKeys)(e=>d.value&&executeReset(),[`enter`]))},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(w,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(S),(0,t.createVNode)(C,{text:``,onClick:resetDialogState},{default:(0,t.withCtx)(()=>n[16]||(n[16]=[(0,t.createTextVNode)(`Cancel`)])),_:1}),(0,t.createVNode)(C,{color:`error`,disabled:!d.value,onClick:executeReset},{default:(0,t.withCtx)(()=>n[17]||(n[17]=[(0,t.createTextVNode)(` Reset All Data `)])),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64)}}});_();var Oi=g(Di,[[`__scopeId`,`data-v-9a38a213`]]),ki={class:`d-flex flex-column align-start`},Ai={class:`mb-2`},ji=(0,t.defineComponent)({__name:`UserLogin`,props:{redirectTo:{default:`/study`}},emits:[`toggle`,`loginSuccess`,`forgotPassword`],setup(e,{emit:n}){let i=e,a=n,s=(0,o.useRouter)(),c=(0,o.useRoute)(),l=useAuthStore(),u=useConfigStore(),d=(0,t.ref)(``),f=(0,t.ref)(``),p=(0,t.ref)(!1),m=(0,t.ref)(!1),h=(0,t.ref)(!1),g=(0,t.ref)(7e3),_=(0,t.ref)(void 0),v=(0,t.computed)(()=>c.name===`login`),y=(0,t.computed)(()=>({color:h.value?`error`:`success`,text:h.value?`Try again`:`Log In`})),initBadLogin=()=>{h.value=!0,N({text:`Username or password was incorrect.`,status:r.Status.error,timeout:g.value}),setTimeout(()=>{h.value=!1},g.value)},login=async()=>{m.value=!0,(0,r.log)(`Starting login attempt`),(0,r.log)(`Login attempt for username: ${d.value}`);try{(0,r.log)(`Attempting to get User instance`),_.value=await getCurrentUser(),(0,r.log)(`Got User instance, attempting login`),await _.value.login(d.value,f.value),(0,r.log)(`Login successful`),(0,r.log)(`Initializing user config`),u.init(),(0,r.log)(`User config initialized`),(0,r.log)(`Setting authentication state`),l.loginAndRegistration.loggedIn=!0,(0,r.log)(`Authentication state set, redirecting to: ${i.redirectTo}`),a(`loginSuccess`,i.redirectTo),s.push(i.redirectTo),(0,r.log)(`Login and redirect complete`)}catch(e){(0,r.log)(`Login attempt failed`),(0,r.log)(`Login error details: ${JSON.stringify(e)}`),console.log(`login error: ${JSON.stringify(e)}`),(0,r.log)(`Initiating bad login feedback`),initBadLogin()}(0,r.log)(`Resetting awaiting response state`),m.value=!1},toggle=()=>{(0,r.log)(`Toggling registration / login forms.`),a(`toggle`)},handleForgotPassword=()=>{(0,r.log)(`Forgot password clicked`),v.value?s.push(`/request-reset`):a(`forgotPassword`)};return(e,n)=>{let r=(0,t.resolveComponent)(`v-card-title`),i=(0,t.resolveComponent)(`v-text-field`),a=(0,t.resolveComponent)(`v-btn`),o=(0,t.resolveComponent)(`v-snackbar`),s=(0,t.resolveComponent)(`v-icon`),c=(0,t.resolveComponent)(`router-link`),l=(0,t.resolveComponent)(`v-form`),u=(0,t.resolveComponent)(`v-card-text`),_=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(_,null,{default:(0,t.withCtx)(()=>[v.value?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(r,{key:0,class:`text-h5 bg-grey-lighten-2`},{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(`Log In`)])),_:1})),(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{onsubmit:`return false;`,onSubmit:(0,t.withModifiers)(login,[`prevent`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{id:``,modelValue:d.value,"onUpdate:modelValue":n[0]||(n[0]=e=>d.value=e),autofocus:``,name:`username`,label:`Username`,"prepend-icon":`mdi-account-circle`},null,8,[`modelValue`]),(0,t.createVNode)(i,{modelValue:f.value,"onUpdate:modelValue":n[1]||(n[1]=e=>f.value=e),"prepend-icon":`mdi-lock`,name:`password`,hover:`Show password input`,label:`Enter your password`,hint:``,min:`0`,"append-icon":p.value?`mdi-eye-off`:`mdi-eye`,type:p.value?`text`:`password`,"onClick:append":n[2]||(n[2]=()=>p.value=!p.value)},null,8,[`modelValue`,`append-icon`,`type`]),(0,t.createVNode)(o,{modelValue:h.value,"onUpdate:modelValue":n[4]||(n[4]=e=>h.value=e),location:`bottom right`,timeout:g.value},{default:(0,t.withCtx)(()=>[n[7]||(n[7]=(0,t.createTextVNode)(` Username or password was incorrect. `)),(0,t.createVNode)(a,{color:`pink`,variant:`text`,onClick:n[3]||(n[3]=e=>h.value=!1)},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`Close`)])),_:1})]),_:1},8,[`modelValue`,`timeout`]),(0,t.createElementVNode)(`div`,ki,[(0,t.createElementVNode)(`div`,Ai,[(0,t.createVNode)(a,{class:`mr-2`,type:`submit`,loading:m.value,color:y.value.color},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{start:``},{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(`mdi-lock-open`)])),_:1}),n[9]||(n[9]=(0,t.createTextVNode)(` Log In `))]),_:1},8,[`loading`,`color`]),v.value?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,to:`signup`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{variant:`text`},{default:(0,t.withCtx)(()=>n[10]||(n[10]=[(0,t.createTextVNode)(`Create New Account`)])),_:1})]),_:1})):((0,t.openBlock)(),(0,t.createBlock)(a,{key:1,variant:`text`,onClick:toggle},{default:(0,t.withCtx)(()=>n[11]||(n[11]=[(0,t.createTextVNode)(`Create New Account`)])),_:1}))]),(0,t.renderSlot)(e.$slots,`forgot-password`,{},()=>[(0,t.createElementVNode)(`a`,{href:`#`,class:`text-caption text-decoration-none`,onClick:(0,t.withModifiers)(handleForgotPassword,[`prevent`])},` Forgot password? `)],!0)])]),_:3})]),_:3})]),_:3})}}});_();var Mi=g(ji,[[`__scopeId`,`data-v-563b0048`]]);function validatePassword(e){return e?e.length<6?`Password must be at least 6 characters`:new Set(e).size<2?`Password must contain at least 2 different characters`:``:``}function isPasswordValid(e){return validatePassword(e)===``}var Ni=(0,t.defineComponent)({name:`UserRegistration`,props:{onSignupSuccess:{type:Function,required:!1}},emits:[`toggle`,`signup-success`],data(){return{email:``,username:``,password:``,retypedPassword:``,passwordVisible:!1,emailError:!1,emailHint:``,usernameValidationInProgress:!1,usernameError:!1,usernameHint:``,awaitingResponse:!1,badLoginAttempt:!1,userSecret:``,secret:`goons`,user:null,roles:[`Student`,`Teacher`,`Author`],student:!0,teacher:!1,author:!1,authStore:useAuthStore()}},computed:{registrationRoute(){return typeof this.$route.name==`string`&&this.$route.name.toLowerCase()===`signup`},buttonStatus(){return{color:this.badLoginAttempt?`error`:`success`,text:this.badLoginAttempt?`Try again`:`Log In`}},passwordError(){return validatePassword(this.password)},passwordRetypeError(){return console.log(`[RTE]`),this.password===this.retypedPassword?``:`Passwords must match.`}},async created(){this.user=await getCurrentUser()},methods:{toggle(){(0,r.log)(`Toggling registration / login forms.`),this.$emit(`toggle`)},validateEmail(){this.emailError=!1,this.email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.email)?(this.emailError=!0,this.emailHint=`Please enter a valid email address`):this.emailHint=``},validateUsername(){this.usernameError=!1},async createUser(){if(this.awaitingResponse=!0,this.passwordError){N({text:this.passwordError,status:r.Status.error}),this.awaitingResponse=!1;return}if((0,r.log)(`
68
68
  User creation
69
69
  -------------
70
70
 
@@ -72,6 +72,6 @@ Name: ${this.username}
72
72
  Student: ${this.student}
73
73
  Teacher: ${this.teacher}
74
74
  Author: ${this.author}
75
- `),this.password===this.retypedPassword){if(!this.user){console.error(`ERROR: No user object available`);return}this.user.createAccount(this.username,this.password).then(async e=>{if(e.status===r.Status.ok){if(this.authStore.loginAndRegistration.loggedIn=!0,this.authStore.loginAndRegistration.init=!1,this.authStore.loginAndRegistration.init=!0,this.email)try{await(await getCurrentUser()).setConfig({email:this.email});let e=typeof window<`u`?window.location.origin:void 0,t=await sendVerificationEmail(this.username,this.email,e);t.ok?N({text:`Account created! Please check your email to verify your account.`,status:r.Status.ok}):(0,r.log)(`Warning: Failed to send verification email: ${t.error}`)}catch(e){console.error(`Email save/send error:`,e),(0,r.log)(`Warning: Failed to save email or send verification: ${e}`)}this.onSignupSuccess&&(console.log(`[UserRegistration] Calling onSignupSuccess callback`),this.onSignupSuccess({username:this.username})),this.$emit(`signup-success`,{username:this.username})}else e.error===`This username is taken!`?(this.usernameError=!0,this.usernameHint=`Try a different name.`,this.$refs.userNameTextField.focus(),N({text:`The name ${this.username} is taken!`,status:e.status})):N({text:e.error,status:e.status})}).catch(e=>{console.error(`[UserRegistration] .catch() called with error:`,e),e&&N({text:e?.message||e?.error||e?.toString()||`Account creation failed`,status:r.Status.error})}),this.awaitingResponse=!1}else N({text:`Passwords do not match.`,status:r.Status.error}),this.awaitingResponse=!1}}});_();function _sfc_render$9(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card-title`),c=(0,t.resolveComponent)(`v-text-field`),l=(0,t.resolveComponent)(`v-btn`),u=(0,t.resolveComponent)(`v-snackbar`),d=(0,t.resolveComponent)(`v-icon`),f=(0,t.resolveComponent)(`router-link`),p=(0,t.resolveComponent)(`v-form`),m=(0,t.resolveComponent)(`v-card-text`),h=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(h,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{class:`text-h5 bg-grey-lighten-2`},{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(` Create an Account `)])),_:1}),(0,t.createVNode)(m,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(p,{onSubmit:(0,t.withModifiers)(e.createUser,[`prevent`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:e.email,"onUpdate:modelValue":n[0]||(n[0]=t=>e.email=t),name:`email`,label:`Email address`,type:`email`,"prepend-icon":`mdi-email`,error:e.emailError,hint:e.emailHint,onBlur:e.validateEmail},null,8,[`modelValue`,`error`,`hint`,`onBlur`]),(0,t.createVNode)(c,{id:``,ref:`userNameTextField`,modelValue:e.username,"onUpdate:modelValue":n[1]||(n[1]=t=>e.username=t),name:`username`,label:`Choose a Username`,"prepend-icon":`mdi-account-circle`,error:e.usernameError,hint:e.usernameHint,onBlur:e.validateUsername},null,8,[`modelValue`,`error`,`hint`,`onBlur`]),(0,t.createVNode)(c,{modelValue:e.password,"onUpdate:modelValue":n[2]||(n[2]=t=>e.password=t),"prepend-icon":`mdi-lock`,name:`password`,hover:`Show password`,label:`Create a password`,hint:e.passwordError,error:!!e.passwordError,min:`4`,"append-icon":e.passwordVisible?`mdi-eye-off`:`mdi-eye`,type:e.passwordVisible?`text`:`password`,"onClick:append":n[3]||(n[3]=()=>e.passwordVisible=!e.passwordVisible)},null,8,[`modelValue`,`hint`,`error`,`append-icon`,`type`]),(0,t.createVNode)(c,{modelValue:e.retypedPassword,"onUpdate:modelValue":n[4]||(n[4]=t=>e.retypedPassword=t),"prepend-icon":`mdi-lock`,name:`retypedPassword`,hover:`Show password`,label:`Retype your password`,disabled:e.password===``||!!e.passwordError,hint:e.passwordRetypeError,min:`4`,type:e.passwordVisible?`text`:`password`},null,8,[`modelValue`,`disabled`,`hint`,`type`]),(0,t.createVNode)(u,{modelValue:e.badLoginAttempt,"onUpdate:modelValue":n[6]||(n[6]=t=>e.badLoginAttempt=t),location:`bottom right`,timeout:5e3},{default:(0,t.withCtx)(()=>[n[9]||(n[9]=(0,t.createTextVNode)(` Username or password was incorrect. `)),(0,t.createVNode)(l,{color:`pink`,variant:`text`,onClick:n[5]||(n[5]=t=>e.badLoginAttempt=!1)},{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(` Close `)])),_:1})]),_:1},8,[`modelValue`]),(0,t.createVNode)(l,{class:`mr-2 my-2`,type:`submit`,loading:e.awaitingResponse,color:e.buttonStatus.color,disabled:!!e.passwordError||e.password!==e.retypedPassword},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(d,{start:``},{default:(0,t.withCtx)(()=>n[10]||(n[10]=[(0,t.createTextVNode)(`mdi-lock-open`)])),_:1}),n[11]||(n[11]=(0,t.createTextVNode)(` Create Account `))]),_:1},8,[`loading`,`color`,`disabled`]),e.registrationRoute?((0,t.openBlock)(),(0,t.createBlock)(f,{key:0,to:`login`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{variant:`text`},{default:(0,t.withCtx)(()=>n[12]||(n[12]=[(0,t.createTextVNode)(`Log In`)])),_:1})]),_:1})):((0,t.openBlock)(),(0,t.createBlock)(l,{key:1,variant:`text`,onClick:e.toggle},{default:(0,t.withCtx)(()=>n[13]||(n[13]=[(0,t.createTextVNode)(` Log In `)])),_:1},8,[`onClick`]))]),_:1},8,[`onSubmit`])]),_:1})]),_:1})}__name(_sfc_render$9,`_sfc_render`);var Ui=g(Hi,[[`render`,_sfc_render$9]]),Wi=(0,t.defineComponent)({name:`RequestPasswordReset`,emits:[`cancel`,`success`],data(){return{email:``,emailError:!1,emailHint:``,isSubmitting:!1,requestSent:!1}},methods:{validateEmail(){this.emailError=!1,this.emailHint=``,this.email&&(/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.email)||(this.emailError=!0,this.emailHint=`Please enter a valid email address`))},async handleSubmit(){if(this.validateEmail(),!(this.emailError||!this.email)){this.isSubmitting=!0;try{let e=typeof window<`u`?window.location.origin:void 0,t=await requestPasswordReset(this.email,e);t.ok?(this.requestSent=!0,this.$emit(`success`,this.email)):N({text:t.error||`Failed to send reset email`,status:r.Status.error})}catch{N({text:`An unexpected error occurred`,status:r.Status.error})}finally{this.isSubmitting=!1}}}}});_();var Gi={key:1,class:`text-center`};function _sfc_render$8(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card-title`),c=(0,t.resolveComponent)(`v-text-field`),l=(0,t.resolveComponent)(`v-icon`),u=(0,t.resolveComponent)(`v-btn`),d=(0,t.resolveComponent)(`v-form`),f=(0,t.resolveComponent)(`v-card-text`),p=(0,t.resolveComponent)(`v-spacer`),m=(0,t.resolveComponent)(`v-card-actions`),h=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(h,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{class:`text-h5 bg-grey-lighten-2`},{default:(0,t.withCtx)(()=>n[2]||(n[2]=[(0,t.createTextVNode)(` Reset Password `)])),_:1}),(0,t.createVNode)(f,{class:`pa-6`},{default:(0,t.withCtx)(()=>[e.requestSent?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Gi,[(0,t.createVNode)(l,{color:`success`,size:`64`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`mdi-email-check`)])),_:1}),n[9]||(n[9]=(0,t.createElementVNode)(`h3`,{class:`mb-2`},`Check Your Email`,-1)),(0,t.createElementVNode)(`p`,null,[n[7]||(n[7]=(0,t.createTextVNode)(` If an account exists with `)),(0,t.createElementVNode)(`strong`,null,(0,t.toDisplayString)(e.email),1),n[8]||(n[8]=(0,t.createTextVNode)(`, you will receive a password reset link shortly. `))]),n[10]||(n[10]=(0,t.createElementVNode)(`p`,{class:`text-caption mt-4`},`Didn't receive an email? Check your spam folder.`,-1))])):((0,t.openBlock)(),(0,t.createBlock)(d,{key:0,onSubmit:(0,t.withModifiers)(e.handleSubmit,[`prevent`])},{default:(0,t.withCtx)(()=>[n[5]||(n[5]=(0,t.createElementVNode)(`p`,{class:`mb-4`},` Enter your email address and we'll send you a link to reset your password. `,-1)),(0,t.createVNode)(c,{modelValue:e.email,"onUpdate:modelValue":n[0]||(n[0]=t=>e.email=t),name:`email`,label:`Email address`,type:`email`,"prepend-icon":`mdi-email`,error:e.emailError,hint:e.emailHint,disabled:e.isSubmitting,onBlur:e.validateEmail},null,8,[`modelValue`,`error`,`hint`,`disabled`,`onBlur`]),(0,t.createVNode)(u,{type:`submit`,color:`primary`,class:`mt-4`,loading:e.isSubmitting,disabled:!e.email||e.emailError,block:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{start:``},{default:(0,t.withCtx)(()=>n[3]||(n[3]=[(0,t.createTextVNode)(`mdi-email-send`)])),_:1}),n[4]||(n[4]=(0,t.createTextVNode)(` Send Reset Link `))]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`onSubmit`]))]),_:1}),e.requestSent?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(m,{key:0},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`back-action`,{},()=>[(0,t.createVNode)(u,{variant:`text`,onClick:n[1]||(n[1]=t=>e.$emit(`cancel`))},{default:(0,t.withCtx)(()=>n[11]||(n[11]=[(0,t.createTextVNode)(` Cancel `)])),_:1})]),(0,t.createVNode)(p)]),_:3}))]),_:3})}__name(_sfc_render$8,`_sfc_render`);var Ki=g(Wi,[[`render`,_sfc_render$8]]),qi={key:0},Ji={key:`login-buttons`},Yi={key:`user-chip`},Xi=(0,t.defineComponent)({__name:`UserLoginAndRegistrationContainer`,props:{showLoginButton:{type:Boolean},redirectToPath:{},showRegistration:{type:Boolean},onSignupSuccess:{type:Function}},emits:[`signup-success`],setup(e,{emit:n}){let r=e,a=n,s=(0,o.useRoute)(),c=useAuthStore(),l=useAuthUI();(0,t.onMounted)(async()=>{await l.detectSyncStrategy()});let u=(0,t.computed)(()=>{if(!s.name||typeof s.name!=`string`)return!0;let e=s.name.toLowerCase();return!(e===`login`||e===`signup`)}),d=(0,t.computed)(()=>c.onLoadComplete),f=(0,t.computed)(()=>c._user?c._user.getUsername().startsWith(i.GuestUsername):!c.loginAndRegistration.loggedIn),p=(0,t.computed)(()=>({...l.config.value||{showLoginRegistration:!0,showLogout:!0,showResetData:!1,logoutLabel:`Log out`,resetLabel:``},...r.showRegistration!==void 0&&{showLoginRegistration:r.showRegistration}})),m=(0,t.computed)({get:()=>c.loginAndRegistration.regDialogOpen,set:e=>{c.loginAndRegistration.regDialogOpen=e}}),h=(0,t.computed)({get:()=>c.loginAndRegistration.loginDialogOpen,set:e=>{c.loginAndRegistration.loginDialogOpen=e}}),g=(0,t.ref)(!1),toggle=()=>{if(m.value&&h.value)throw Error(`Registration / Login dialogs both activated.`);if(m.value===h.value)throw Error(`Registration / Login dialogs toggled while both were dormant.`);m.value=!m.value,h.value=!h.value},openResetDialog=()=>{h.value=!1,g.value=!0},closeResetDialog=()=>{g.value=!1},handleSignupSuccess=e=>{m.value=!1,r.onSignupSuccess&&r.onSignupSuccess(e),a(`signup-success`,e)};return(e,n)=>{let r=(0,t.resolveComponent)(`v-btn`),i=(0,t.resolveComponent)(`v-dialog`);return d.value&&u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,qi,[(0,t.createVNode)(t.Transition,{name:`component-fade`,mode:`out-in`},{default:(0,t.withCtx)(()=>[f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ji,[p.value.showLoginRegistration?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,modelValue:m.value,"onUpdate:modelValue":n[0]||(n[0]=e=>m.value=e),width:`500px`},{activator:(0,t.withCtx)(({props:e})=>[(0,t.createVNode)(r,(0,t.mergeProps)({class:`mr-2`,size:`small`,color:`success`},e),{default:(0,t.withCtx)(()=>n[3]||(n[3]=[(0,t.createTextVNode)(`Sign Up`)])),_:2},1040)]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(Ui,{onToggle:toggle,onSignupSuccess:handleSignupSuccess,"on-signup-success":handleSignupSuccess})]),_:1},8,[`modelValue`])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(i,{modelValue:h.value,"onUpdate:modelValue":n[1]||(n[1]=e=>h.value=e),width:`500px`},{activator:(0,t.withCtx)(({props:e})=>[(0,t.createVNode)(r,(0,t.mergeProps)({size:`small`,color:`success`},e),{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(`Log In`)])),_:2},1040)]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(Vi,{onToggle:toggle,onForgotPassword:openResetDialog})]),_:1},8,[`modelValue`]),(0,t.createVNode)(i,{modelValue:g.value,"onUpdate:modelValue":n[2]||(n[2]=e=>g.value=e),width:`500px`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(Ki,{onCancel:closeResetDialog,onSuccess:closeResetDialog})]),_:1},8,[`modelValue`])])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Yi,[(0,t.createVNode)(Li)]))]),_:1})])):(0,t.createCommentVNode)(``,!0)}}});_();var Zi=g(Xi,[[`__scopeId`,`data-v-5a55bdf0`]]),Qi=(0,t.defineComponent)({name:`VerifyEmail`,emits:[`verified`,`error`],props:{token:{type:String,default:null}},data(){return{isVerifying:!1,verificationStatus:null,errorMessage:``,username:``}},async mounted(){await this.performVerification()},methods:{async performVerification(){let e=this.token||this.getTokenFromURL();if(!e){this.verificationStatus=`error`,this.errorMessage=`No verification token provided`;return}this.isVerifying=!0;try{let t=await verifyEmail(e);t.ok?(this.verificationStatus=`success`,this.username=t.username||``,N({text:`Email verified successfully!`,status:r.Status.ok})):(this.verificationStatus=`error`,this.errorMessage=t.error||`Verification failed`,N({text:t.error||`Verification failed`,status:r.Status.error}))}catch{this.verificationStatus=`error`,this.errorMessage=`An unexpected error occurred`,N({text:`An unexpected error occurred`,status:r.Status.error})}finally{this.isVerifying=!1}},getTokenFromURL(){return typeof window>`u`?null:new URLSearchParams(window.location.search).get(`token`)}}});_();var $i={key:0,class:`text-center`},ea={key:1,class:`text-center`},ta={key:0},na={key:2,class:`text-center`},ra={key:3,class:`text-center`};function _sfc_render$7(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card-title`),c=(0,t.resolveComponent)(`v-progress-circular`),l=(0,t.resolveComponent)(`v-icon`),u=(0,t.resolveComponent)(`v-card-text`),d=(0,t.resolveComponent)(`v-spacer`),f=(0,t.resolveComponent)(`v-btn`),p=(0,t.resolveComponent)(`v-card-actions`),m=(0,t.resolveComponent)(`v-card`),h=(0,t.resolveComponent)(`v-col`),g=(0,t.resolveComponent)(`v-row`),_=(0,t.resolveComponent)(`v-container`);return(0,t.openBlock)(),(0,t.createBlock)(_,{class:`fill-height`,fluid:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(g,{align:`center`,justify:`center`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(h,{cols:`12`,sm:`8`,md:`6`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(m,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{class:`text-h5 bg-grey-lighten-2`},{default:(0,t.withCtx)(()=>n[2]||(n[2]=[(0,t.createTextVNode)(` Email Verification `)])),_:1}),(0,t.createVNode)(u,{class:`pa-6`},{default:(0,t.withCtx)(()=>[e.isVerifying?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,$i,[(0,t.createVNode)(c,{indeterminate:``,color:`primary`,size:`64`,class:`mb-4`}),n[3]||(n[3]=(0,t.createElementVNode)(`p`,null,`Verifying your email...`,-1))])):e.verificationStatus===`success`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ea,[(0,t.createVNode)(l,{color:`success`,size:`64`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(`mdi-check-circle`)])),_:1}),n[5]||(n[5]=(0,t.createElementVNode)(`h3`,{class:`mb-2`},`Email Verified!`,-1)),n[6]||(n[6]=(0,t.createElementVNode)(`p`,null,`Your account has been successfully verified.`,-1)),e.username?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,ta,`Welcome, `+(0,t.toDisplayString)(e.username)+`!`,1)):(0,t.createCommentVNode)(``,!0)])):e.verificationStatus===`error`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,na,[(0,t.createVNode)(l,{color:`error`,size:`64`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(`mdi-alert-circle`)])),_:1}),n[8]||(n[8]=(0,t.createElementVNode)(`h3`,{class:`mb-2`},`Verification Failed`,-1)),(0,t.createElementVNode)(`p`,null,(0,t.toDisplayString)(e.errorMessage),1)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ra,[(0,t.createVNode)(l,{color:`warning`,size:`64`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[9]||(n[9]=[(0,t.createTextVNode)(`mdi-help-circle`)])),_:1}),n[10]||(n[10]=(0,t.createElementVNode)(`h3`,{class:`mb-2`},`No Verification Token`,-1)),n[11]||(n[11]=(0,t.createElementVNode)(`p`,null,`Please use the link from your verification email.`,-1))]))]),_:1}),(0,t.createVNode)(p,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(d),(0,t.renderSlot)(e.$slots,`actions`,{status:e.verificationStatus,username:e.username},()=>[e.verificationStatus===`success`?((0,t.openBlock)(),(0,t.createBlock)(f,{key:0,color:`primary`,onClick:n[0]||(n[0]=t=>e.$emit(`verified`,e.username))},{default:(0,t.withCtx)(()=>n[12]||(n[12]=[(0,t.createTextVNode)(` Continue `)])),_:1})):e.verificationStatus===`error`?((0,t.openBlock)(),(0,t.createBlock)(f,{key:1,variant:`text`,onClick:n[1]||(n[1]=t=>e.$emit(`error`,e.errorMessage))},{default:(0,t.withCtx)(()=>n[13]||(n[13]=[(0,t.createTextVNode)(` Close `)])),_:1})):(0,t.createCommentVNode)(``,!0)])]),_:3})]),_:3})]),_:3})]),_:3})]),_:3})}__name(_sfc_render$7,`_sfc_render`);var ia=g(Qi,[[`render`,_sfc_render$7]]),aa=(0,t.defineComponent)({name:`ResetPassword`,emits:[`complete`,`error`],props:{token:{type:String,default:null}},data(){return{password:``,confirmPassword:``,passwordVisible:!1,confirmPasswordError:!1,confirmPasswordHint:``,isSubmitting:!1,isComplete:!1}},computed:{canSubmit(){return this.password.length>=4&&this.confirmPassword.length>=4&&this.password===this.confirmPassword&&!this.confirmPasswordError}},methods:{validateConfirmPassword(){this.confirmPasswordError=!1,this.confirmPasswordHint=``,this.confirmPassword&&this.password!==this.confirmPassword&&(this.confirmPasswordError=!0,this.confirmPasswordHint=`Passwords do not match`)},async handleSubmit(){if(this.validateConfirmPassword(),!this.canSubmit)return;let e=this.token||this.getTokenFromURL();if(!e){N({text:`No reset token provided. Please use the link from your email.`,status:r.Status.error}),this.$emit(`error`,`No token`);return}this.isSubmitting=!0;try{let t=await resetPassword(e,this.password);t.ok?(this.isComplete=!0,N({text:`Password reset successfully!`,status:r.Status.ok})):(N({text:t.error||`Failed to reset password`,status:r.Status.error}),this.$emit(`error`,t.error))}catch{N({text:`An unexpected error occurred`,status:r.Status.error}),this.$emit(`error`,`Unexpected error`)}finally{this.isSubmitting=!1}},getTokenFromURL(){return typeof window>`u`?null:new URLSearchParams(window.location.search).get(`token`)}}});_();var oa={key:1,class:`text-center`};function _sfc_render$6(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card-title`),c=(0,t.resolveComponent)(`v-text-field`),l=(0,t.resolveComponent)(`v-icon`),u=(0,t.resolveComponent)(`v-btn`),d=(0,t.resolveComponent)(`v-form`),f=(0,t.resolveComponent)(`v-card-text`),p=(0,t.resolveComponent)(`v-spacer`),m=(0,t.resolveComponent)(`v-card-actions`),h=(0,t.resolveComponent)(`v-card`),g=(0,t.resolveComponent)(`v-col`),_=(0,t.resolveComponent)(`v-row`),v=(0,t.resolveComponent)(`v-container`);return(0,t.openBlock)(),(0,t.createBlock)(v,{class:`fill-height`,fluid:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(_,{align:`center`,justify:`center`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(g,{cols:`12`,sm:`8`,md:`6`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(h,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{class:`text-h5 bg-grey-lighten-2`},{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(` Set New Password `)])),_:1}),(0,t.createVNode)(f,{class:`pa-6`},{default:(0,t.withCtx)(()=>[e.isComplete?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,oa,[(0,t.createVNode)(l,{color:`success`,size:`64`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(`mdi-check-circle`)])),_:1}),n[9]||(n[9]=(0,t.createElementVNode)(`h3`,{class:`mb-2`},`Password Reset Successful!`,-1)),n[10]||(n[10]=(0,t.createElementVNode)(`p`,null,`Your password has been updated. You can now log in with your new password.`,-1))])):((0,t.openBlock)(),(0,t.createBlock)(d,{key:0,onSubmit:(0,t.withModifiers)(e.handleSubmit,[`prevent`])},{default:(0,t.withCtx)(()=>[n[7]||(n[7]=(0,t.createElementVNode)(`p`,{class:`mb-4`},`Enter your new password below.`,-1)),(0,t.createVNode)(c,{modelValue:e.password,"onUpdate:modelValue":n[0]||(n[0]=t=>e.password=t),"prepend-icon":`mdi-lock`,name:`password`,label:`New password`,min:`4`,"append-icon":e.passwordVisible?`mdi-eye-off`:`mdi-eye`,type:e.passwordVisible?`text`:`password`,disabled:e.isSubmitting,"onClick:append":n[1]||(n[1]=()=>e.passwordVisible=!e.passwordVisible)},null,8,[`modelValue`,`append-icon`,`type`,`disabled`]),(0,t.createVNode)(c,{modelValue:e.confirmPassword,"onUpdate:modelValue":n[2]||(n[2]=t=>e.confirmPassword=t),"prepend-icon":`mdi-lock`,name:`confirmPassword`,label:`Confirm new password`,min:`4`,type:e.passwordVisible?`text`:`password`,error:e.confirmPasswordError,hint:e.confirmPasswordHint,disabled:e.isSubmitting,onBlur:e.validateConfirmPassword},null,8,[`modelValue`,`type`,`error`,`hint`,`disabled`,`onBlur`]),(0,t.createVNode)(u,{type:`submit`,color:`primary`,class:`mt-4`,loading:e.isSubmitting,disabled:!e.canSubmit,block:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{start:``},{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(`mdi-lock-reset`)])),_:1}),n[6]||(n[6]=(0,t.createTextVNode)(` Reset Password `))]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`onSubmit`]))]),_:1}),e.isComplete?((0,t.openBlock)(),(0,t.createBlock)(m,{key:0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(p),(0,t.renderSlot)(e.$slots,`success-action`,{},()=>[(0,t.createVNode)(u,{color:`primary`,onClick:n[3]||(n[3]=t=>e.$emit(`complete`))},{default:(0,t.withCtx)(()=>n[11]||(n[11]=[(0,t.createTextVNode)(` Continue to Login `)])),_:1})])]),_:3})):(0,t.createCommentVNode)(``,!0)]),_:3})]),_:3})]),_:3})]),_:3})}__name(_sfc_render$6,`_sfc_render`);var sa=g(aa,[[`render`,_sfc_render$6]]),ca=(0,t.defineComponent)({name:`SkTagsInput`,components:{VueTagsInput:s.VueTagsInput},props:{courseID:{type:String,required:!0,default:``},cardID:{type:String,required:!1,default:``},hideSubmit:{type:Boolean,required:!1,default:!1}},data(){return{loading:!0,tag:``,tags:[],initialTags:[],availableCourseTags:[],separators:[`;`,`,`,` `],courseDB:null}},computed:{autoCompleteSuggestions(){return this.availableCourseTags.filter(e=>e.name.toLowerCase().indexOf(this.tag.toLowerCase())!==-1).map(e=>({text:e.name,data:{snippet:e.snippet}}))}},watch:{async cardID(){await this.getAppliedTags()},async courseID(){this.courseDB=(0,i.getDataLayer)().getCourseDB(this.courseID),await this.updateAvailableCourseTags()}},async created(){this.courseDB=(0,i.getDataLayer)().getCourseDB(this.courseID),await this.updateAvailableCourseTags(),await this.getAppliedTags()},methods:{tagsChanged(e){console.log(`[TagsInput] Tags changing: ${JSON.stringify(e)}`),this.tags=e},async getAppliedTags(){this.initialTags=[],this.tags=[];try{(await this.courseDB.getAppliedTags(this.cardID)).rows.forEach(e=>{console.log(`[TagsInput] The following tag is applied:
76
- \t${JSON.stringify(e)}`),this.tags.push({text:e.value.name,style:``,classes:``})}),this.initialTags=this.tags.map(e=>e.text)}catch(e){console.error(`Error in init-getAppliedTags: ${JSON.stringify(e)}, ${e}`)}finally{this.loading=!1}},async updateAvailableCourseTags(){try{this.availableCourseTags=(await this.courseDB.getCourseTagStubs()).rows.map(e=>e.doc)}catch(e){console.error(`Error in init-availableCourseTags: ${JSON.stringify(e)}`)}},async submit(){console.log(`[TagsInput] tagsInput is submitting...`),this.loading=!0;try{await Promise.all(this.tags.map(async e=>{if(!this.initialTags.includes(e.text))try{await this.courseDB.addTagToCard(this.cardID,e.text),console.log(`[TagsInput] Successfully added tag: ${e.text}`)}catch(t){console.error(`Failed to add tag ${e.text}:`,t)}}))}catch(e){console.error(`Exception adding tags: ${JSON.stringify(e)}`)}try{await Promise.all(this.initialTags.map(async e=>{if(this.tags.filter(t=>t.text===e).length===0)try{await this.courseDB.removeTagFromCard(this.cardID,e),console.log(`[TagsInput] Successfully removed tag: ${e}`)}catch(t){console.error(`Failed to remove tag ${e}:`,t)}}))}catch(e){console.error(`Exception removing tags: ${JSON.stringify(e)}`)}this.loading=!1}}});_();var la={"data-cy":`tags-input`},ua={class:`tag-name`},da={key:0,class:`tag-snippet`};function _sfc_render$5(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`vue-tags-input`),c=(0,t.resolveComponent)(`v-btn`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,la,[(0,t.createVNode)(s,{modelValue:e.tag,"onUpdate:modelValue":n[0]||(n[0]=t=>e.tag=t),tags:e.tags,"autocomplete-items":e.autoCompleteSuggestions,separators:e.separators,"add-on-key":e.separators,onTagsChanged:e.tagsChanged},{"autocomplete-item":(0,t.withCtx)(e=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`autocomplete-item`,{"is-active":e.selected}])},[(0,t.createElementVNode)(`span`,ua,(0,t.toDisplayString)(e.item.text),1),e.item.data&&e.item.data.snippet?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,da,` - `+(0,t.toDisplayString)(e.item.data.snippet),1)):(0,t.createCommentVNode)(``,!0)],2)]),_:1},8,[`modelValue`,`tags`,`autocomplete-items`,`separators`,`add-on-key`,`onTagsChanged`]),e.hideSubmit?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,color:`success`,loading:e.loading,onClick:e.submit},{default:(0,t.withCtx)(()=>n[1]||(n[1]=[(0,t.createTextVNode)(`Save Changes`)])),_:1},8,[`loading`,`onClick`]))])}__name(_sfc_render$5,`_sfc_render`);var fa=g(ca,[[`render`,_sfc_render$5],[`__scopeId`,`data-v-f7373dc0`]]),pa=(0,t.defineComponent)({name:`CourseCardBrowser`,components:{CardLoader:Fi,TagsInput:fa,PaginatingToolbar:le},props:{courseId:{type:String,required:!0},tagId:{type:String,required:!1,default:``},viewLookupFunction:{type:Function,required:!0,default:()=>(console.warn(`No viewLookupFunction provided to CourseCardBrowser`),null)},editMode:{type:String,required:!1,default:`full`}},data(){return{courseDB:null,page:1,pages:[],cards:[],cardData:{},cardPreview:{},cardElos:{},cardTags:{},internalEditMode:`none`,delBtn:!1,updatePending:!0,userIsRegistered:!1,questionCount:0,tags:[],viewLookup:this.viewLookupFunction}},async created(){try{this.courseDB=(0,i.getDataLayer)().getCourseDB(this.courseId),this.tagId?this.questionCount=(await this.courseDB.getTag(this.tagId)).taggedCards.length:this.questionCount=(await this.courseDB.getCourseInfo()).cardCount;for(let e=1;(e-1)*25<this.questionCount;e++)this.pages.push(e);await this.populateTableData()}catch(e){console.error(`Error initializing CourseCardBrowser:`,e)}finally{this.updatePending=!1}},methods:{idQualify(e){return e.includes(`-`)?e:`${this.courseId}-${e}`},idToQualifiedObject(e){if(e.includes(`-`)){let t=e.split(`-`);return{courseID:t[0],cardID:t[1]}}else return{courseID:this.courseId,cardID:e}},first(){this.page=1,this.populateTableData()},prev(){this.page--,this.populateTableData()},next(){this.page++,this.populateTableData()},last(){this.page=this.pages.length,this.populateTableData()},setPage(e){this.page=e,this.populateTableData()},async loadCardTags(e){try{await Promise.all(e.map(async e=>{let t=await this.courseDB.getAppliedTags(e);this.cardTags[e]=t.rows.map(e=>({name:e.value.name,snippet:e.value.snippet,count:e.value.count}))}))}catch(e){console.error(`Error loading card tags:`,e)}},clearSelections(e=``){this.cards.forEach(t=>{t.card.cardID!==e&&(t.isOpen=!1)}),this.internalEditMode=`none`,this.delBtn=!1},async deleteCard(e){console.log(`Deleting card ${e}`);let t=await this.courseDB.removeCard(e);t.ok?(this.cards=this.cards.filter(t=>t.card.cardID!=e),this.clearSelections()):(console.error(`Failed to delete card:\n\n${JSON.stringify(t)}`),N({text:`Failed to delete card`,status:r.Status.error}))},async populateTableData(){this.updatePending=!0,this.tagId?this.cards=(await this.courseDB.getTag(this.tagId)).taggedCards.map(e=>({card:{cardID:e,courseID:this.courseId},isOpen:!1,delBtn:!1})):this.cards=(await this.courseDB.getCardsByELO(0,25)).map(e=>({card:e,isOpen:!1,delBtn:!1}));let e=[],t=(await this.courseDB.getCourseDocs(this.cards.map(e=>e.card.cardID),{include_docs:!0})).rows.filter(e=>e.doc?!0:(console.error(`Card ${e.id}.doc not found.\ncard: ${JSON.stringify(e)}`),!1)).map(e=>e.doc);this.cards=this.cards.filter(t=>!e.includes(t.card.cardID)),t.forEach(e=>{e&&e.id_displayable_data&&(this.cardData[e._id]=e.id_displayable_data)});try{await Promise.all(this.cards.map(async e=>{let n=e.card.cardID,i=t.find(e=>e._id==n);if(!i||!i.id_displayable_data){console.error(`No valid data found for card ${n}`);return}let a=this.viewLookupFunction(i.id_view||`default.question.BlanksCard.FillInView`),o=i.id_displayable_data.map(e=>this.courseDB.getCourseDoc(e,{attachments:!1,binary:!0})),s=await Promise.all(o);await Promise.all(s.map(t=>{[].unshift((0,r.displayableDataToViewData)(t)),this.cardPreview[e.card.cardID]=a.name?a.name:`Unknown`}))}));let e=this.cards.map(e=>e.card.cardID),n=await this.courseDB.getCardEloData(e);e.forEach((e,t)=>{this.cardElos[e]=n[t]}),await this.loadCardTags(e)}catch(e){console.error(`Error populating table data:`,e)}finally{this.updatePending=!1,this.$forceUpdate()}}}});_();var ma={key:0,class:`d-flex justify-center align-center pa-6`},ha={key:1},ga={key:0,class:`px-4 py-2 bg-blue-grey-lighten-5`},_a={key:0,class:`mt-4`},va={class:`mt-4`},ya={key:0,class:`ml-4`};function _sfc_render$4(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-progress-circular`),c=(0,t.resolveComponent)(`paginating-toolbar`),l=(0,t.resolveComponent)(`v-list-item-title`),u=(0,t.resolveComponent)(`v-list-item-subtitle`),d=(0,t.resolveComponent)(`v-btn`),f=(0,t.resolveComponent)(`v-icon`),p=(0,t.resolveComponent)(`v-speed-dial`),m=(0,t.resolveComponent)(`v-list-item`),h=(0,t.resolveComponent)(`card-loader`),g=(0,t.resolveComponent)(`v-chip`),_=(0,t.resolveComponent)(`v-chip-group`),v=(0,t.resolveComponent)(`tags-input`),y=(0,t.resolveComponent)(`v-list`),b=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(b,null,{default:(0,t.withCtx)(()=>[e.updatePending?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ma,[(0,t.createVNode)(s,{indeterminate:``,color:`primary`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ha,[(0,t.createVNode)(c,{title:`Exercises`,page:e.page,pages:e.pages,subtitle:`(${e.questionCount})`,onFirst:e.first,onPrev:e.prev,onNext:e.next,onLast:e.last,onSetPage:n[0]||(n[0]=t=>e.setPage(t))},null,8,[`page`,`pages`,`subtitle`,`onFirst`,`onPrev`,`onNext`,`onLast`]),(0,t.createVNode)(y,null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.cards,r=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:r.card.cardID},[(0,t.createVNode)(m,{class:(0,t.normalizeClass)({"bg-blue-grey-lighten-5":r.isOpen,"elevation-4":r.isOpen}),density:`compact`,"data-cy":`course-card`},{prepend:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,null,[(0,t.createVNode)(l,{class:(0,t.normalizeClass)([{"text-blue-grey-darken-1":r.isOpen},`font-weight-medium`])},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.cardPreview[r.card.cardID]),1)]),_:2},1032,[`class`]),(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)(` ELO: `+(0,t.toDisplayString)(e.cardElos[r.card.cardID]?.global?.score||`(unknown)`),1)]),_:2},1024)])]),append:(0,t.withCtx)(()=>[(0,t.createVNode)(p,{modelValue:r.isOpen,"onUpdate:modelValue":e=>r.isOpen=e,location:`left center`,transition:`slide-x-transition`,style:{display:`flex`,"flex-direction":`row-reverse`},persistent:``},{activator:(0,t.withCtx)(({props:n})=>[(0,t.createVNode)(d,(0,t.mergeProps)({ref_for:!0},n,{icon:r.isOpen?`mdi-close`:`mdi-plus`,size:`small`,variant:`text`,onClick:t=>e.clearSelections(r.card.cardID)}),null,16,[`icon`,`onClick`])]),default:(0,t.withCtx)(()=>[e.editMode===`full`?((0,t.openBlock)(),(0,t.createBlock)(d,{key:`tags`,icon:``,size:`small`,variant:e.internalEditMode===`tags`?`elevated`:`outlined`,color:e.internalEditMode===`tags`?`teal`:`teal-darken-3`,onClick:n[1]||(n[1]=(0,t.withModifiers)(t=>e.internalEditMode=`tags`,[`stop`]))},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(f,null,{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(`mdi-bookmark`)])),_:1})]),_:1},8,[`variant`,`color`])):(0,t.createCommentVNode)(``,!0),e.editMode===`full`?((0,t.openBlock)(),(0,t.createBlock)(d,{key:`flag`,icon:``,size:`small`,variant:e.internalEditMode===`flag`?`elevated`:`outlined`,color:e.internalEditMode===`flag`?`error`:`error-darken-3`,onClick:n[2]||(n[2]=(0,t.withModifiers)(t=>e.internalEditMode=`flag`,[`stop`]))},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(f,null,{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(`mdi-flag`)])),_:1})]),_:1},8,[`variant`,`color`])):(0,t.createCommentVNode)(``,!0)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`class`]),r.isOpen?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ga,[(0,t.createVNode)(h,{qualified_id:r.card,"view-lookup":e.viewLookup,class:`elevation-1`},null,8,[`qualified_id`,`view-lookup`]),e.editMode===`readonly`&&e.cardTags[r.card.cardID]?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,_a,[(0,t.createVNode)(_,null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.cardTags[r.card.cardID],e=>((0,t.openBlock)(),(0,t.createBlock)(g,{key:e.name,size:`small`,color:`primary`,variant:`outlined`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.name),1)]),_:2},1024))),128))]),_:2},1024)])):(0,t.createCommentVNode)(``,!0),(0,t.withDirectives)((0,t.createVNode)(v,{"course-i-d":e.courseId,"card-i-d":r.card.cardID,class:`mt-4`},null,8,[`course-i-d`,`card-i-d`]),[[t.vShow,e.internalEditMode===`tags`&&e.editMode===`full`]]),(0,t.withDirectives)((0,t.createElementVNode)(`div`,va,[(0,t.createVNode)(d,{color:`error`,variant:`outlined`,onClick:e=>r.delBtn=!0},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(` Delete this card `)])),_:2},1032,[`onClick`]),r.delBtn?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ya,[n[8]||(n[8]=(0,t.createElementVNode)(`span`,{class:`mr-2`},`Are you sure?`,-1)),(0,t.createVNode)(d,{color:`error`,variant:`elevated`,onClick:t=>e.deleteCard(r.card.cardID)},{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(` Confirm `)])),_:2},1032,[`onClick`])])):(0,t.createCommentVNode)(``,!0)],512),[[t.vShow,e.internalEditMode===`flag`&&e.editMode===`full`]])])):(0,t.createCommentVNode)(``,!0)],64))),128))]),_:1}),(0,t.createVNode)(c,{class:`elevation-0`,page:e.page,pages:e.pages,onFirst:e.first,onPrev:e.prev,onNext:e.next,onLast:e.last,onSetPage:n[3]||(n[3]=t=>e.setPage(t))},null,8,[`page`,`pages`,`onFirst`,`onPrev`,`onNext`,`onLast`])]))]),_:1})}__name(_sfc_render$4,`_sfc_render`);var ba=g(pa,[[`render`,_sfc_render$4],[`__scopeId`,`data-v-5ecc9d21`]]),xa=(0,t.defineComponent)({name:`CourseInformation`,components:{CourseCardBrowser:ba},props:{courseId:{type:String,required:!0},viewLookupFunction:{type:Function,required:!1,default:e=>(console.warn(`No viewLookupFunction provided to CourseInformation`),null)},editMode:{type:String,required:!1,default:`full`}},data(){return{courseDB:null,nameRules:[e=>e.length>30?`Course name must be 30 characters or less`:!0],updatePending:!0,courseConfig:{},userIsRegistered:!1,tags:[],user:null}},computed:{},async created(){this.courseDB=(0,i.getDataLayer)().getCourseDB(this.courseId),this.user=await getCurrentUser();let e=await this.user.getCourseRegistrationsDoc();this.user.getUsername()===`admin`?this.userIsRegistered=!0:this.userIsRegistered=e.courses.filter(e=>e.courseID===this.courseId&&(e.status===`active`||e.status===void 0)).length===1,this.courseConfig=await this.courseDB.getCourseConfig(),this.tags=(await this.courseDB.getCourseTagStubs()).rows.map(e=>e.doc),this.updatePending=!1},methods:{async register(){(0,r.log)(`Registering for ${this.courseId}`),(await this.user.registerForCourse(this.courseId)).ok&&(this.userIsRegistered=!0)},async drop(){(0,r.log)(`Dropping course ${this.courseId}`),(await this.user.dropCourse(this.courseId)).ok&&(this.userIsRegistered=!1)}}});_();var Sa={key:0},Ca={class:`text-h4 mb-2`},wa={class:`text-body-2`},Ta={key:0},Ea={key:1};function _sfc_render$3(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-btn`),c=(0,t.resolveComponent)(`v-icon`),l=(0,t.resolveComponent)(`v-toolbar-title`),u=(0,t.resolveComponent)(`v-toolbar-items`),d=(0,t.resolveComponent)(`v-toolbar`),f=(0,t.resolveComponent)(`v-chip`),p=(0,t.resolveComponent)(`v-card-text`),m=(0,t.resolveComponent)(`v-card`),h=(0,t.resolveComponent)(`course-card-browser`);return e.updatePending?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Sa,[(0,t.renderSlot)(e.$slots,`header`,{courseConfig:e.courseConfig,courseId:e.courseId},()=>[(0,t.createElementVNode)(`h1`,Ca,(0,t.toDisplayString)(e.courseConfig.name),1)],!0),(0,t.createElementVNode)(`p`,wa,(0,t.toDisplayString)(e.courseConfig.description),1),(0,t.renderSlot)(e.$slots,`actions`,{userIsRegistered:e.userIsRegistered,courseId:e.courseId,editMode:e.editMode,register:e.register,drop:e.drop},()=>[(0,t.createVNode)(t.Transition,{name:`component-fade`,mode:`out-in`},{default:(0,t.withCtx)(()=>[e.userIsRegistered?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ta,[(0,t.createVNode)(s,{color:`success`,"data-cy":`focused-study-session-btn`,class:`me-2`},{default:(0,t.withCtx)(()=>n[0]||(n[0]=[(0,t.createTextVNode)(`Start ad study session`)])),_:1}),e.editMode===`full`?((0,t.openBlock)(),(0,t.createBlock)(s,{key:0,"data-cy":`add-content-btn`,color:`indigo-lighten-1`,class:`me-2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{start:``},{default:(0,t.withCtx)(()=>n[1]||(n[1]=[(0,t.createTextVNode)(`mdi-plus`)])),_:1}),n[2]||(n[2]=(0,t.createTextVNode)(` Add content `))]),_:1})):(0,t.createCommentVNode)(``,!0),e.editMode===`full`?((0,t.openBlock)(),(0,t.createBlock)(s,{key:1,color:`green-darken-2`,title:`Rank course content for difficulty`,class:`me-2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{start:``},{default:(0,t.withCtx)(()=>n[3]||(n[3]=[(0,t.createTextVNode)(`mdi-format-list-numbered`)])),_:1}),n[4]||(n[4]=(0,t.createTextVNode)(` Arrange `))]),_:1})):(0,t.createCommentVNode)(``,!0),e.editMode===`full`?((0,t.openBlock)(),(0,t.createBlock)(s,{key:2,color:`error`,size:`small`,variant:`outlined`,onClick:e.drop},{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(` Drop this course `)])),_:1},8,[`onClick`])):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ea,[(0,t.createVNode)(s,{"data-cy":`register-btn`,color:`primary`,class:`me-2`,onClick:e.register},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`Register`)])),_:1},8,[`onClick`]),(0,t.createVNode)(s,{variant:`outlined`,color:`primary`,class:`me-2`},{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(`Start a trial study session`)])),_:1})]))]),_:1})],!0),(0,t.renderSlot)(e.$slots,`additional-content`,{},void 0,!0),(0,t.createVNode)(m,{class:`my-2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(d,{density:`compact`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,null,{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(`Tags`)])),_:1}),(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{variant:`text`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)(`(`+(0,t.toDisplayString)(e.tags.length)+`)`,1)]),_:1})]),_:1})]),_:1}),(0,t.createVNode)(p,null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.tags,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:r},[(0,t.renderSlot)(e.$slots,`tag-link`,{tag:n,courseId:e.courseId},()=>[(0,t.createVNode)(f,{variant:`tonal`,class:`me-2 mb-2`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.name),1)]),_:2},1024)],!0)]))),128))]),_:3})]),_:3}),(0,t.createVNode)(h,{class:`my-3`,"course-id":e.courseId,"view-lookup-function":e.viewLookupFunction,"edit-mode":e.editMode},null,8,[`course-id`,`view-lookup-function`,`edit-mode`])]))}__name(_sfc_render$3,`_sfc_render`);var Da=g(xa,[[`render`,_sfc_render$3],[`__scopeId`,`data-v-38e9efe1`]]);At();var Oa=(0,t.defineComponent)({name:`CardBrowser`,components:{CardViewer:P},props:{views:{type:Array,required:!0},data:{type:Array,required:!0},suppressSpinner:{type:Boolean,default:!1}},data(){return{viewIndex:0,previewMode:useCardPreviewModeStore()}},computed:{spinner(){return this.views.length>1}},created(){console.log(`[CardBrowser] Card browser created. Cards now in 'prewviewMode'`),this.previewMode.setPreviewMode(!0)},unmounted(){console.log(`[CardBrowser] Card browser unmounted. Cards no longer in 'prewviewMode'`),this.previewMode.setPreviewMode(!1)},methods:{incrementView(){this.viewIndex++,this.viewIndex=(this.viewIndex+this.views.length)%this.views.length},decrementView(){this.viewIndex--,this.viewIndex=(this.viewIndex+this.views.length)%this.views.length}}});_();var ka={key:0,class:`text-subtitle-1 pa-2`};function _sfc_render$2(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`CardViewer`),c=(0,t.resolveComponent)(`v-icon`),l=(0,t.resolveComponent)(`v-btn`),u=(0,t.resolveComponent)(`v-row`);return(0,t.openBlock)(),(0,t.createBlock)(u,{column:``,align:`center`,justify:`center`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{view:e.views[e.viewIndex],data:e.data,course_id:`[browsing]`,card_id:`[browsing]`},null,8,[`view`,`data`]),n[2]||(n[2]=(0,t.createElementVNode)(`br`,null,null,-1)),n[3]||(n[3]=(0,t.createElementVNode)(`br`,null,null,-1)),e.suppressSpinner?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ka,[e.spinner?((0,t.openBlock)(),(0,t.createBlock)(l,{key:0,icon:``,variant:`outlined`,color:`primary`,onClick:e.decrementView},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,null,{default:(0,t.withCtx)(()=>n[0]||(n[0]=[(0,t.createTextVNode)(`mdi-chevron-left`)])),_:1})]),_:1},8,[`onClick`])):(0,t.createCommentVNode)(``,!0),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.views[e.viewIndex].name)+` `,1),e.spinner?((0,t.openBlock)(),(0,t.createBlock)(l,{key:1,icon:``,variant:`outlined`,color:`primary`,onClick:e.incrementView},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,null,{default:(0,t.withCtx)(()=>n[1]||(n[1]=[(0,t.createTextVNode)(`mdi-chevron-right`)])),_:1})]),_:1},8,[`onClick`])):(0,t.createCommentVNode)(``,!0)]))]),_:1})}__name(_sfc_render$2,`_sfc_render`);var Aa=g(Oa,[[`render`,_sfc_render$2]]),ja=(0,t.defineComponent)({name:`CourseTagFilterWidget`,props:{courseId:{type:String,required:!0},modelValue:{type:Object,default:void 0}},emits:[`update:modelValue`],setup(e,{emit:n}){let a=(0,t.ref)(!0),o=(0,t.ref)([]),s=(0,t.ref)({}),c=(0,t.ref)(e.modelValue?{...e.modelValue}:(0,r.emptyTagFilter)()),l=(0,t.computed)(()=>o.value.filter(e=>!c.value.include.includes(e))),u=(0,t.computed)(()=>(0,r.hasActiveFilter)(c.value)),fuzzyFilter=(e,t)=>{if(!t)return!0;let n=t.toLowerCase(),r=e.toLowerCase(),i=0;for(let e=0;e<r.length&&i<n.length;e++)r[e]===n[i]&&i++;return i===n.length};(0,t.watch)(()=>e.modelValue,e=>{e?c.value={...e}:c.value=(0,r.emptyTagFilter)()},{deep:!0}),(0,t.watch)(c,e=>{n(`update:modelValue`,{...e})},{deep:!0}),(0,t.watch)(()=>e.courseId,async e=>{e&&await loadTags()});async function loadTags(){a.value=!0;try{let t=await(0,i.getDataLayer)().getCourseDB(e.courseId).getCourseTagStubs();o.value=[],s.value={};for(let e of t.rows)if(e.doc){let t=e.doc;o.value.push(t.name),t.snippet&&(s.value[t.name]=t.snippet)}o.value.sort((e,t)=>e.localeCompare(t))}catch(e){console.error(`[CourseTagFilterWidget] Failed to load tags:`,e),o.value=[],s.value={}}finally{a.value=!1}}return(0,t.onMounted)(()=>{e.courseId&&loadTags()}),{loading:a,availableTags:o,availableTagsForExclude:l,tagSnippets:s,localFilter:c,hasActiveFilter:u,fuzzyFilter}}});_();var Ma={class:`course-tag-filter-widget`},Na={key:0,class:`filter-summary text-caption mt-2`},Pa={key:0},Fa={key:1},Ia={key:2};function _sfc_render$1(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-chip`),c=(0,t.resolveComponent)(`v-list-item`),l=(0,t.resolveComponent)(`v-autocomplete`),u=(0,t.resolveComponent)(`v-icon`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ma,[(0,t.createVNode)(l,{modelValue:e.localFilter.include,"onUpdate:modelValue":n[0]||(n[0]=t=>e.localFilter.include=t),items:e.availableTags,loading:e.loading,disabled:e.loading,label:`Include tags`,placeholder:`Type to search tags...`,hint:`Cards must have at least one of these tags`,"persistent-hint":``,multiple:``,chips:``,"closable-chips":``,clearable:``,density:`compact`,variant:`outlined`,class:`mb-2`,"custom-filter":e.fuzzyFilter,"no-data-text":`No matching tags found`},{chip:(0,t.withCtx)(({props:e,item:n})=>[(0,t.createVNode)(s,(0,t.mergeProps)(e,{color:`primary`,variant:`tonal`,size:`small`}),{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.raw),1)]),_:2},1040)]),item:(0,t.withCtx)(({props:n,item:r})=>[(0,t.createVNode)(c,(0,t.mergeProps)(n,{title:r.raw}),(0,t.createSlots)({_:2},[e.tagSnippets[r.raw]?{name:`subtitle`,fn:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.tagSnippets[r.raw]),1)]),key:`0`}:void 0]),1040,[`title`])]),_:1},8,[`modelValue`,`items`,`loading`,`disabled`,`custom-filter`]),(0,t.createVNode)(l,{modelValue:e.localFilter.exclude,"onUpdate:modelValue":n[1]||(n[1]=t=>e.localFilter.exclude=t),items:e.availableTagsForExclude,loading:e.loading,disabled:e.loading,label:`Exclude tags`,placeholder:`Type to search tags...`,hint:`Cards with these tags will be excluded`,"persistent-hint":``,multiple:``,chips:``,"closable-chips":``,clearable:``,density:`compact`,variant:`outlined`,"custom-filter":e.fuzzyFilter,"no-data-text":`No matching tags found`},{chip:(0,t.withCtx)(({props:e,item:n})=>[(0,t.createVNode)(s,(0,t.mergeProps)(e,{color:`error`,variant:`tonal`,size:`small`}),{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.raw),1)]),_:2},1040)]),item:(0,t.withCtx)(({props:n,item:r})=>[(0,t.createVNode)(c,(0,t.mergeProps)(n,{title:r.raw}),(0,t.createSlots)({_:2},[e.tagSnippets[r.raw]?{name:`subtitle`,fn:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.tagSnippets[r.raw]),1)]),key:`0`}:void 0]),1040,[`title`])]),_:1},8,[`modelValue`,`items`,`loading`,`disabled`,`custom-filter`]),e.hasActiveFilter?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Na,[(0,t.createVNode)(u,{size:`small`,color:`info`,class:`mr-1`},{default:(0,t.withCtx)(()=>n[2]||(n[2]=[(0,t.createTextVNode)(`mdi-filter`)])),_:1}),e.localFilter.include.length?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Pa,` Including: `+(0,t.toDisplayString)(e.localFilter.include.join(`, `)),1)):(0,t.createCommentVNode)(``,!0),e.localFilter.include.length&&e.localFilter.exclude.length?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Fa,` · `)):(0,t.createCommentVNode)(``,!0),e.localFilter.exclude.length?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ia,` Excluding: `+(0,t.toDisplayString)(e.localFilter.exclude.join(`, `)),1)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)])}__name(_sfc_render$1,`_sfc_render`);var La=g(ja,[[`render`,_sfc_render$1],[`__scopeId`,`data-v-e1ba963b`]]),Ra={min:0,startingMax:2,absoluteMax:10},za=`UserTagPreferenceFilter`,Ba=(0,t.defineComponent)({name:`UserTagPreferences`,props:{courseId:{type:String,required:!1,default:``},sliderConfig:{type:Object,required:!1,default:()=>({})}},emits:[`preferences-saved`,`preferences-changed`],data(){return{loading:!0,saving:!1,saveError:``,saveSuccess:!1,preferences:{boost:{}},savedPreferences:{boost:{}},tagMaxRanges:{},availableTags:[],tagToAdd:null,courseDB:null,user:null}},computed:{sliderConfigResolved(){return{min:this.sliderConfig.min??Ra.min,startingMax:this.sliderConfig.startingMax??Ra.startingMax,absoluteMax:this.sliderConfig.absoluteMax??Ra.absoluteMax}},tagNames(){return Object.keys(this.preferences.boost).sort()},globalSliderMax(){let e=Object.values(this.tagMaxRanges);return e.length===0?this.sliderConfigResolved.startingMax:Math.max(...e)},availableTagsToAdd(){let e=new Set(Object.keys(this.preferences.boost));return this.availableTags.filter(t=>!e.has(t.name))},hasChanges(){let e=Object.keys(this.preferences.boost).sort(),t=Object.keys(this.savedPreferences.boost).sort();return e.length!==t.length||e.join(`,`)!==t.join(`,`)?!0:e.some(e=>this.preferences.boost[e]!==this.savedPreferences.boost[e])}},watch:{courseId:{immediate:!0,async handler(e){e?await this.loadPreferences():this.loading=!1}}},methods:{async loadPreferences(){this.loading=!0,this.saveError=``;try{if(this.user=await getCurrentUser()??null,!this.user)throw Error(`User not available`);this.courseDB=(0,i.getDataLayer)().getCourseDB(this.courseId),this.availableTags=(await this.courseDB.getCourseTagStubs()).rows.map(e=>e.doc).filter(Boolean);let e=await this.user.getStrategyState(this.courseId,za);e?this.preferences.boost={...e.boost}:this.preferences.boost={},this.savedPreferences.boost={...this.preferences.boost},this.tagMaxRanges={},Object.keys(this.preferences.boost).forEach(e=>{let t=this.preferences.boost[e],n=this.sliderConfigResolved.startingMax;t>n?this.tagMaxRanges[e]=Math.min(Math.ceil(t),this.sliderConfigResolved.absoluteMax):this.tagMaxRanges[e]=n})}catch(e){console.error(`Failed to load preferences:`,e),this.saveError=`Failed to load preferences. Please try again.`}finally{this.loading=!1}},addTag(e){e&&!(e in this.preferences.boost)&&(this.preferences.boost[e]=1,this.tagMaxRanges[e]=this.sliderConfigResolved.startingMax,this.$emit(`preferences-changed`,this.preferences)),this.$nextTick(()=>{this.tagToAdd=null})},removeTag(e){delete this.preferences.boost[e],delete this.tagMaxRanges[e],this.$emit(`preferences-changed`,this.preferences)},updateBoost(e,t){this.preferences.boost[e]=t,this.$emit(`preferences-changed`,this.preferences)},expandSliderRange(e){let t=this.globalSliderMax;if(t<this.sliderConfigResolved.absoluteMax){let n=t+1;Object.keys(this.tagMaxRanges).forEach(e=>{this.tagMaxRanges[e]=Math.max(this.tagMaxRanges[e],n)}),this.preferences.boost[e]=n,this.$emit(`preferences-changed`,this.preferences)}},formatMultiplier(e){return e===0?`0x`:e<.1?e.toFixed(2)+`x`:e.toFixed(1)+`x`},resetToSaved(){this.preferences.boost={...this.savedPreferences.boost},this.saveSuccess=!1,this.saveError=``,this.tagMaxRanges={},Object.keys(this.preferences.boost).forEach(e=>{let t=this.preferences.boost[e],n=this.sliderConfigResolved.startingMax;t>n?this.tagMaxRanges[e]=Math.min(Math.ceil(t),this.sliderConfigResolved.absoluteMax):this.tagMaxRanges[e]=n})},async savePreferences(){if(!this.user||!this.courseId){this.saveError=`Unable to save - user or course not available`;return}this.saving=!0,this.saveError=``,this.saveSuccess=!1;try{let e={boost:{...this.preferences.boost},updatedAt:new Date().toISOString()};await this.user.putStrategyState(this.courseId,za,e),this.savedPreferences.boost={...this.preferences.boost},this.saveSuccess=!0,this.$emit(`preferences-saved`,e)}catch(e){console.error(`Failed to save preferences:`,e),this.saveError=`Failed to save preferences. Please try again.`}finally{this.saving=!1}}}});_();var Va={key:1},Ha={class:`mb-6`},Ua={class:`text-subtitle-1 font-weight-bold mb-2`},Wa={class:`d-flex align-center ga-3 w-100`},Ga={class:`text-body-2 flex-shrink-0`,style:{"min-width":`60px`,"text-align":`right`}},Ka={key:2,class:`d-flex justify-center py-8`};function _sfc_render(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-icon`),c=(0,t.resolveComponent)(`v-card-title`),l=(0,t.resolveComponent)(`v-card-subtitle`),u=(0,t.resolveComponent)(`v-alert`),d=(0,t.resolveComponent)(`v-list-item`),f=(0,t.resolveComponent)(`v-autocomplete`),p=(0,t.resolveComponent)(`v-chip`),m=(0,t.resolveComponent)(`v-slider`),h=(0,t.resolveComponent)(`v-btn`),g=(0,t.resolveComponent)(`v-list`),_=(0,t.resolveComponent)(`v-progress-circular`),v=(0,t.resolveComponent)(`v-card-text`),y=(0,t.resolveComponent)(`v-spacer`),b=(0,t.resolveComponent)(`v-card-actions`),x=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(x,{loading:e.loading},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{start:``},{default:(0,t.withCtx)(()=>n[3]||(n[3]=[(0,t.createTextVNode)(`mdi-tune`)])),_:1}),n[4]||(n[4]=(0,t.createTextVNode)(` Learning Preferences `))]),_:1}),e.courseId?((0,t.openBlock)(),(0,t.createBlock)(l,{key:0},{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(` Customize how content is presented in this course `)])),_:1})):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(v,null,{default:(0,t.withCtx)(()=>[e.courseId?e.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ka,[(0,t.createVNode)(_,{indeterminate:``,color:`primary`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Va,[(0,t.createElementVNode)(`div`,Ha,[(0,t.createElementVNode)(`h3`,Ua,[(0,t.createVNode)(s,{start:``,size:`small`},{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(`mdi-tune-variant`)])),_:1}),n[8]||(n[8]=(0,t.createTextVNode)(` Tag Preferences `))]),n[10]||(n[10]=(0,t.createElementVNode)(`p`,{class:`text-body-2 text-medium-emphasis mb-3`},` Adjust how much you want to see cards with specific tags. 0 = exclude, 1 = neutral, higher = prefer more. `,-1)),(0,t.createVNode)(f,{modelValue:e.tagToAdd,"onUpdate:modelValue":[n[0]||(n[0]=t=>e.tagToAdd=t),e.addTag],items:e.availableTagsToAdd,"item-title":`name`,"item-value":`name`,label:`Add tag preference`,placeholder:`Search tags...`,density:`compact`,variant:`outlined`,clearable:``,"hide-details":``,class:`mb-4`},{item:(0,t.withCtx)(({props:e,item:n})=>[(0,t.createVNode)(d,(0,t.normalizeProps)((0,t.guardReactiveProps)(e)),{subtitle:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.raw.snippet),1)]),_:2},1040)]),_:1},8,[`modelValue`,`items`,`onUpdate:modelValue`]),e.tagNames.length>0?((0,t.openBlock)(),(0,t.createBlock)(g,{key:0,class:`mt-4`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.tagNames,n=>((0,t.openBlock)(),(0,t.createBlock)(d,{key:n,class:`px-0`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Wa,[(0,t.createVNode)(p,{size:`small`,variant:`tonal`,class:`flex-shrink-0`,style:{"min-width":`120px`}},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n),1)]),_:2},1024),(0,t.createVNode)(m,{"model-value":e.preferences.boost[n],min:e.sliderConfigResolved.min,max:e.globalSliderMax,step:.01,"hide-details":``,class:`flex-grow-1`,"thumb-label":``,"onUpdate:modelValue":t=>e.updateBoost(n,t)},{"thumb-label":(0,t.withCtx)(({modelValue:n})=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.formatMultiplier(n)),1)]),_:2},1032,[`model-value`,`min`,`max`,`onUpdate:modelValue`]),(0,t.createElementVNode)(`span`,Ga,(0,t.toDisplayString)(e.formatMultiplier(e.preferences.boost[n])),1),(0,t.createVNode)(h,{icon:`mdi-plus`,size:`small`,variant:`text`,density:`compact`,disabled:e.globalSliderMax>=e.sliderConfigResolved.absoluteMax,onClick:t=>e.expandSliderRange(n)},null,8,[`disabled`,`onClick`]),(0,t.createVNode)(h,{icon:`mdi-delete`,size:`small`,variant:`text`,density:`compact`,onClick:t=>e.removeTag(n)},null,8,[`onClick`])])]),_:2},1024))),128))]),_:1})):((0,t.openBlock)(),(0,t.createBlock)(u,{key:1,type:`info`,variant:`tonal`,class:`mt-4`},{default:(0,t.withCtx)(()=>n[9]||(n[9]=[(0,t.createTextVNode)(` No tag preferences configured yet. Add tags above to get started. `)])),_:1}))]),e.saveError?((0,t.openBlock)(),(0,t.createBlock)(u,{key:0,type:`error`,variant:`tonal`,class:`mt-4`,closable:``,"onClick:close":n[1]||(n[1]=t=>e.saveError=``)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.saveError),1)]),_:1})):(0,t.createCommentVNode)(``,!0),e.saveSuccess?((0,t.openBlock)(),(0,t.createBlock)(u,{key:1,type:`success`,variant:`tonal`,class:`mt-4`,closable:``,"onClick:close":n[2]||(n[2]=t=>e.saveSuccess=!1)},{default:(0,t.withCtx)(()=>n[11]||(n[11]=[(0,t.createTextVNode)(` Preferences saved successfully `)])),_:1})):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createBlock)(u,{key:0,type:`info`,variant:`tonal`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(` Select a course to configure your learning preferences. `)])),_:1}))]),_:1}),e.courseId&&!e.loading?((0,t.openBlock)(),(0,t.createBlock)(b,{key:1},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(y),(0,t.createVNode)(h,{variant:`text`,disabled:!e.hasChanges,onClick:e.resetToSaved},{default:(0,t.withCtx)(()=>n[12]||(n[12]=[(0,t.createTextVNode)(` Reset `)])),_:1},8,[`disabled`,`onClick`]),(0,t.createVNode)(h,{color:`primary`,variant:`flat`,loading:e.saving,disabled:!e.hasChanges,onClick:e.savePreferences},{default:(0,t.withCtx)(()=>n[13]||(n[13]=[(0,t.createTextVNode)(` Save Preferences `)])),_:1},8,[`loading`,`disabled`,`onClick`])]),_:1})):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`loading`])}var qa=g(Ba,[[`render`,_sfc_render],[`__scopeId`,`data-v-8fb14605`]]);k(),Ee(),L(),wr(),Ar(),On(),vi(),_r(),fi(),At(),F(),e.AudioAutoPlayer=_i,e.CardBrowser=Aa,e.CardHistoryViewer=Te,e.CardLoader=Fi,e.CardSearch=fe,e.CardSearchResults=ve,e.CardViewer=P,e.CodeBlockRenderer=gr,e.CourseCardBrowser=ba,e.CourseInformation=Da,e.CourseTagFilterWidget=La,e.Displayable=Displayable,e.FillInInput=kr,e.HeatMap=x,e.MarkdownRenderer=Si,e.MdTokenRenderer=di,e.MultipleChoiceOption=Ti,e.PaginatingToolbar=le,e.Question=Question,e.RadioMultipleChoice=Oi,e.RequestPasswordReset=Ki,e.ResetPassword=sa,e.SessionControllerDebug=gt,e.SkMouseTrap=j,e.SkMouseTrapToolTip=ne,e.SkldrMouseTrap=O,e.SnackbarService=oe,e.StudySession=Dt,e.StudySessionTimer=Oe,e.TFSelect=ji,e.TagsInput=fa,e.UserChip=Li,e.UserInputNumber=Ni,e.UserInputString=Cr,e.UserLogin=Vi,e.UserLoginAndRegistrationContainer=Zi,e.UserRegistration=Ui,e.UserTagPreferences=qa,e.VerifyEmail=ia,e.alertUser=N,e.containsComponent=containsComponent,e.getCurrentUser=getCurrentUser,e.getUserStatus=getUserStatus,e.isComponent=isComponent,e.isDefineComponent=isDefineComponent,e.isInlineComponent=isInlineComponent,e.isPasswordValid=isPasswordValid,e.isQuestionView=isQuestionView,e.parseComponentSyntax=parseComponentSyntax,e.parseComponentToken=parseComponentToken,e.piniaPlugin=kt,e.requestPasswordReset=requestPasswordReset,e.resetPassword=resetPassword,e.sendVerificationEmail=sendVerificationEmail,e.splitByDelimiters=splitByDelimiters,e.splitParagraphToken=splitParagraphToken,e.splitTextToken=splitTextToken,e.useAuthStore=useAuthStore,e.useCardPreviewModeStore=useCardPreviewModeStore,e.useConfigStore=useConfigStore,e.useEntitlements=useEntitlements,e.useQuestionView=useQuestionView,e.useViewable=useViewable,e.validatePassword=validatePassword,e.verifyEmail=verifyEmail});
75
+ `),this.password===this.retypedPassword){if(!this.user){console.error(`ERROR: No user object available`);return}this.user.createAccount(this.username,this.password).then(async e=>{if(e.status===r.Status.ok){if(this.authStore.loginAndRegistration.loggedIn=!0,this.authStore.loginAndRegistration.init=!1,this.authStore.loginAndRegistration.init=!0,this.email)try{await(await getCurrentUser()).setConfig({email:this.email});let e=typeof window<`u`?window.location.origin:void 0,t=await sendVerificationEmail(this.username,this.email,e);t.ok?N({text:`Account created! Please check your email to verify your account.`,status:r.Status.ok}):(0,r.log)(`Warning: Failed to send verification email: ${t.error}`)}catch(e){console.error(`Email save/send error:`,e),(0,r.log)(`Warning: Failed to save email or send verification: ${e}`)}this.onSignupSuccess&&(console.log(`[UserRegistration] Calling onSignupSuccess callback`),this.onSignupSuccess({username:this.username})),this.$emit(`signup-success`,{username:this.username})}else e.error===`This username is taken!`?(this.usernameError=!0,this.usernameHint=`Try a different name.`,this.$refs.userNameTextField.focus(),N({text:`The name ${this.username} is taken!`,status:e.status})):N({text:e.error,status:e.status})}).catch(e=>{console.error(`[UserRegistration] .catch() called with error:`,e),e&&N({text:e?.message||e?.error||e?.toString()||`Account creation failed`,status:r.Status.error})}),this.awaitingResponse=!1}else N({text:`Passwords do not match.`,status:r.Status.error}),this.awaitingResponse=!1}}});_();function _sfc_render$9(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card-title`),c=(0,t.resolveComponent)(`v-text-field`),l=(0,t.resolveComponent)(`v-btn`),u=(0,t.resolveComponent)(`v-snackbar`),d=(0,t.resolveComponent)(`v-icon`),f=(0,t.resolveComponent)(`router-link`),p=(0,t.resolveComponent)(`v-form`),m=(0,t.resolveComponent)(`v-card-text`),h=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(h,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{class:`text-h5 bg-grey-lighten-2`},{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(` Create an Account `)])),_:1}),(0,t.createVNode)(m,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(p,{onSubmit:(0,t.withModifiers)(e.createUser,[`prevent`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:e.email,"onUpdate:modelValue":n[0]||(n[0]=t=>e.email=t),name:`email`,label:`Email address`,type:`email`,"prepend-icon":`mdi-email`,error:e.emailError,hint:e.emailHint,onBlur:e.validateEmail},null,8,[`modelValue`,`error`,`hint`,`onBlur`]),(0,t.createVNode)(c,{id:``,ref:`userNameTextField`,modelValue:e.username,"onUpdate:modelValue":n[1]||(n[1]=t=>e.username=t),name:`username`,label:`Choose a Username`,"prepend-icon":`mdi-account-circle`,error:e.usernameError,hint:e.usernameHint,onBlur:e.validateUsername},null,8,[`modelValue`,`error`,`hint`,`onBlur`]),(0,t.createVNode)(c,{modelValue:e.password,"onUpdate:modelValue":n[2]||(n[2]=t=>e.password=t),"prepend-icon":`mdi-lock`,name:`password`,hover:`Show password`,label:`Create a password`,hint:e.passwordError,error:!!e.passwordError,min:`4`,"append-icon":e.passwordVisible?`mdi-eye-off`:`mdi-eye`,type:e.passwordVisible?`text`:`password`,"onClick:append":n[3]||(n[3]=()=>e.passwordVisible=!e.passwordVisible)},null,8,[`modelValue`,`hint`,`error`,`append-icon`,`type`]),(0,t.createVNode)(c,{modelValue:e.retypedPassword,"onUpdate:modelValue":n[4]||(n[4]=t=>e.retypedPassword=t),"prepend-icon":`mdi-lock`,name:`retypedPassword`,hover:`Show password`,label:`Retype your password`,disabled:e.password===``||!!e.passwordError,hint:e.passwordRetypeError,min:`4`,type:e.passwordVisible?`text`:`password`},null,8,[`modelValue`,`disabled`,`hint`,`type`]),(0,t.createVNode)(u,{modelValue:e.badLoginAttempt,"onUpdate:modelValue":n[6]||(n[6]=t=>e.badLoginAttempt=t),location:`bottom right`,timeout:5e3},{default:(0,t.withCtx)(()=>[n[9]||(n[9]=(0,t.createTextVNode)(` Username or password was incorrect. `)),(0,t.createVNode)(l,{color:`pink`,variant:`text`,onClick:n[5]||(n[5]=t=>e.badLoginAttempt=!1)},{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(` Close `)])),_:1})]),_:1},8,[`modelValue`]),(0,t.createVNode)(l,{class:`mr-2 my-2`,type:`submit`,loading:e.awaitingResponse,color:e.buttonStatus.color,disabled:!!e.passwordError||e.password!==e.retypedPassword},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(d,{start:``},{default:(0,t.withCtx)(()=>n[10]||(n[10]=[(0,t.createTextVNode)(`mdi-lock-open`)])),_:1}),n[11]||(n[11]=(0,t.createTextVNode)(` Create Account `))]),_:1},8,[`loading`,`color`,`disabled`]),e.registrationRoute?((0,t.openBlock)(),(0,t.createBlock)(f,{key:0,to:`login`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{variant:`text`},{default:(0,t.withCtx)(()=>n[12]||(n[12]=[(0,t.createTextVNode)(`Log In`)])),_:1})]),_:1})):((0,t.openBlock)(),(0,t.createBlock)(l,{key:1,variant:`text`,onClick:e.toggle},{default:(0,t.withCtx)(()=>n[13]||(n[13]=[(0,t.createTextVNode)(` Log In `)])),_:1},8,[`onClick`]))]),_:1},8,[`onSubmit`])]),_:1})]),_:1})}__name(_sfc_render$9,`_sfc_render`);var Pi=g(Ni,[[`render`,_sfc_render$9]]),Fi=(0,t.defineComponent)({name:`RequestPasswordReset`,emits:[`cancel`,`success`],data(){return{email:``,emailError:!1,emailHint:``,isSubmitting:!1,requestSent:!1}},methods:{validateEmail(){this.emailError=!1,this.emailHint=``,this.email&&(/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.email)||(this.emailError=!0,this.emailHint=`Please enter a valid email address`))},async handleSubmit(){if(this.validateEmail(),!(this.emailError||!this.email)){this.isSubmitting=!0;try{let e=typeof window<`u`?window.location.origin:void 0,t=await requestPasswordReset(this.email,e);t.ok?(this.requestSent=!0,this.$emit(`success`,this.email)):N({text:t.error||`Failed to send reset email`,status:r.Status.error})}catch{N({text:`An unexpected error occurred`,status:r.Status.error})}finally{this.isSubmitting=!1}}}}});_();var Ii={key:1,class:`text-center`};function _sfc_render$8(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card-title`),c=(0,t.resolveComponent)(`v-text-field`),l=(0,t.resolveComponent)(`v-icon`),u=(0,t.resolveComponent)(`v-btn`),d=(0,t.resolveComponent)(`v-form`),f=(0,t.resolveComponent)(`v-card-text`),p=(0,t.resolveComponent)(`v-spacer`),m=(0,t.resolveComponent)(`v-card-actions`),h=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(h,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{class:`text-h5 bg-grey-lighten-2`},{default:(0,t.withCtx)(()=>n[2]||(n[2]=[(0,t.createTextVNode)(` Reset Password `)])),_:1}),(0,t.createVNode)(f,{class:`pa-6`},{default:(0,t.withCtx)(()=>[e.requestSent?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ii,[(0,t.createVNode)(l,{color:`success`,size:`64`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`mdi-email-check`)])),_:1}),n[9]||(n[9]=(0,t.createElementVNode)(`h3`,{class:`mb-2`},`Check Your Email`,-1)),(0,t.createElementVNode)(`p`,null,[n[7]||(n[7]=(0,t.createTextVNode)(` If an account exists with `)),(0,t.createElementVNode)(`strong`,null,(0,t.toDisplayString)(e.email),1),n[8]||(n[8]=(0,t.createTextVNode)(`, you will receive a password reset link shortly. `))]),n[10]||(n[10]=(0,t.createElementVNode)(`p`,{class:`text-caption mt-4`},`Didn't receive an email? Check your spam folder.`,-1))])):((0,t.openBlock)(),(0,t.createBlock)(d,{key:0,onSubmit:(0,t.withModifiers)(e.handleSubmit,[`prevent`])},{default:(0,t.withCtx)(()=>[n[5]||(n[5]=(0,t.createElementVNode)(`p`,{class:`mb-4`},` Enter your email address and we'll send you a link to reset your password. `,-1)),(0,t.createVNode)(c,{modelValue:e.email,"onUpdate:modelValue":n[0]||(n[0]=t=>e.email=t),name:`email`,label:`Email address`,type:`email`,"prepend-icon":`mdi-email`,error:e.emailError,hint:e.emailHint,disabled:e.isSubmitting,onBlur:e.validateEmail},null,8,[`modelValue`,`error`,`hint`,`disabled`,`onBlur`]),(0,t.createVNode)(u,{type:`submit`,color:`primary`,class:`mt-4`,loading:e.isSubmitting,disabled:!e.email||e.emailError,block:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{start:``},{default:(0,t.withCtx)(()=>n[3]||(n[3]=[(0,t.createTextVNode)(`mdi-email-send`)])),_:1}),n[4]||(n[4]=(0,t.createTextVNode)(` Send Reset Link `))]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`onSubmit`]))]),_:1}),e.requestSent?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(m,{key:0},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`back-action`,{},()=>[(0,t.createVNode)(u,{variant:`text`,onClick:n[1]||(n[1]=t=>e.$emit(`cancel`))},{default:(0,t.withCtx)(()=>n[11]||(n[11]=[(0,t.createTextVNode)(` Cancel `)])),_:1})]),(0,t.createVNode)(p)]),_:3}))]),_:3})}__name(_sfc_render$8,`_sfc_render`);var Li=g(Fi,[[`render`,_sfc_render$8]]),Ri={key:0},zi={key:`login-buttons`},Bi={key:`user-chip`},Vi=(0,t.defineComponent)({__name:`UserLoginAndRegistrationContainer`,props:{showLoginButton:{type:Boolean},redirectToPath:{},showRegistration:{type:Boolean},onSignupSuccess:{type:Function}},emits:[`signup-success`],setup(e,{emit:n}){let r=e,a=n,s=(0,o.useRoute)(),c=useAuthStore(),l=useAuthUI();(0,t.onMounted)(async()=>{await l.detectSyncStrategy()});let u=(0,t.computed)(()=>{if(!s.name||typeof s.name!=`string`)return!0;let e=s.name.toLowerCase();return!(e===`login`||e===`signup`)}),d=(0,t.computed)(()=>c.onLoadComplete),f=(0,t.computed)(()=>c._user?c._user.getUsername().startsWith(i.GuestUsername):!c.loginAndRegistration.loggedIn),p=(0,t.computed)(()=>({...l.config.value||{showLoginRegistration:!0,showLogout:!0,showResetData:!1,logoutLabel:`Log out`,resetLabel:``},...r.showRegistration!==void 0&&{showLoginRegistration:r.showRegistration}})),m=(0,t.computed)({get:()=>c.loginAndRegistration.regDialogOpen,set:e=>{c.loginAndRegistration.regDialogOpen=e}}),h=(0,t.computed)({get:()=>c.loginAndRegistration.loginDialogOpen,set:e=>{c.loginAndRegistration.loginDialogOpen=e}}),g=(0,t.ref)(!1),toggle=()=>{if(m.value&&h.value)throw Error(`Registration / Login dialogs both activated.`);if(m.value===h.value)throw Error(`Registration / Login dialogs toggled while both were dormant.`);m.value=!m.value,h.value=!h.value},openResetDialog=()=>{h.value=!1,g.value=!0},closeResetDialog=()=>{g.value=!1},handleSignupSuccess=e=>{m.value=!1,r.onSignupSuccess&&r.onSignupSuccess(e),a(`signup-success`,e)};return(e,n)=>{let r=(0,t.resolveComponent)(`v-btn`),i=(0,t.resolveComponent)(`v-dialog`);return d.value&&u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ri,[(0,t.createVNode)(t.Transition,{name:`component-fade`,mode:`out-in`},{default:(0,t.withCtx)(()=>[f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,zi,[p.value.showLoginRegistration?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,modelValue:m.value,"onUpdate:modelValue":n[0]||(n[0]=e=>m.value=e),width:`500px`},{activator:(0,t.withCtx)(({props:e})=>[(0,t.createVNode)(r,(0,t.mergeProps)({class:`mr-2`,size:`small`,color:`success`},e),{default:(0,t.withCtx)(()=>n[3]||(n[3]=[(0,t.createTextVNode)(`Sign Up`)])),_:2},1040)]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(Pi,{onToggle:toggle,onSignupSuccess:handleSignupSuccess,"on-signup-success":handleSignupSuccess})]),_:1},8,[`modelValue`])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(i,{modelValue:h.value,"onUpdate:modelValue":n[1]||(n[1]=e=>h.value=e),width:`500px`},{activator:(0,t.withCtx)(({props:e})=>[(0,t.createVNode)(r,(0,t.mergeProps)({size:`small`,color:`success`},e),{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(`Log In`)])),_:2},1040)]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(Mi,{onToggle:toggle,onForgotPassword:openResetDialog})]),_:1},8,[`modelValue`]),(0,t.createVNode)(i,{modelValue:g.value,"onUpdate:modelValue":n[2]||(n[2]=e=>g.value=e),width:`500px`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(Li,{onCancel:closeResetDialog,onSuccess:closeResetDialog})]),_:1},8,[`modelValue`])])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Bi,[(0,t.createVNode)(Oi)]))]),_:1})])):(0,t.createCommentVNode)(``,!0)}}});_();var Hi=g(Vi,[[`__scopeId`,`data-v-5a55bdf0`]]),Ui=(0,t.defineComponent)({name:`VerifyEmail`,emits:[`verified`,`error`],props:{token:{type:String,default:null}},data(){return{isVerifying:!1,verificationStatus:null,errorMessage:``,username:``}},async mounted(){await this.performVerification()},methods:{async performVerification(){let e=this.token||this.getTokenFromURL();if(!e){this.verificationStatus=`error`,this.errorMessage=`No verification token provided`;return}this.isVerifying=!0;try{let t=await verifyEmail(e);t.ok?(this.verificationStatus=`success`,this.username=t.username||``,N({text:`Email verified successfully!`,status:r.Status.ok})):(this.verificationStatus=`error`,this.errorMessage=t.error||`Verification failed`,N({text:t.error||`Verification failed`,status:r.Status.error}))}catch{this.verificationStatus=`error`,this.errorMessage=`An unexpected error occurred`,N({text:`An unexpected error occurred`,status:r.Status.error})}finally{this.isVerifying=!1}},getTokenFromURL(){return typeof window>`u`?null:new URLSearchParams(window.location.search).get(`token`)}}});_();var Wi={key:0,class:`text-center`},Gi={key:1,class:`text-center`},Ki={key:0},qi={key:2,class:`text-center`},Ji={key:3,class:`text-center`};function _sfc_render$7(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card-title`),c=(0,t.resolveComponent)(`v-progress-circular`),l=(0,t.resolveComponent)(`v-icon`),u=(0,t.resolveComponent)(`v-card-text`),d=(0,t.resolveComponent)(`v-spacer`),f=(0,t.resolveComponent)(`v-btn`),p=(0,t.resolveComponent)(`v-card-actions`),m=(0,t.resolveComponent)(`v-card`),h=(0,t.resolveComponent)(`v-col`),g=(0,t.resolveComponent)(`v-row`),_=(0,t.resolveComponent)(`v-container`);return(0,t.openBlock)(),(0,t.createBlock)(_,{class:`fill-height`,fluid:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(g,{align:`center`,justify:`center`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(h,{cols:`12`,sm:`8`,md:`6`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(m,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{class:`text-h5 bg-grey-lighten-2`},{default:(0,t.withCtx)(()=>n[2]||(n[2]=[(0,t.createTextVNode)(` Email Verification `)])),_:1}),(0,t.createVNode)(u,{class:`pa-6`},{default:(0,t.withCtx)(()=>[e.isVerifying?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Wi,[(0,t.createVNode)(c,{indeterminate:``,color:`primary`,size:`64`,class:`mb-4`}),n[3]||(n[3]=(0,t.createElementVNode)(`p`,null,`Verifying your email...`,-1))])):e.verificationStatus===`success`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Gi,[(0,t.createVNode)(l,{color:`success`,size:`64`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(`mdi-check-circle`)])),_:1}),n[5]||(n[5]=(0,t.createElementVNode)(`h3`,{class:`mb-2`},`Email Verified!`,-1)),n[6]||(n[6]=(0,t.createElementVNode)(`p`,null,`Your account has been successfully verified.`,-1)),e.username?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,Ki,`Welcome, `+(0,t.toDisplayString)(e.username)+`!`,1)):(0,t.createCommentVNode)(``,!0)])):e.verificationStatus===`error`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,qi,[(0,t.createVNode)(l,{color:`error`,size:`64`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(`mdi-alert-circle`)])),_:1}),n[8]||(n[8]=(0,t.createElementVNode)(`h3`,{class:`mb-2`},`Verification Failed`,-1)),(0,t.createElementVNode)(`p`,null,(0,t.toDisplayString)(e.errorMessage),1)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ji,[(0,t.createVNode)(l,{color:`warning`,size:`64`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[9]||(n[9]=[(0,t.createTextVNode)(`mdi-help-circle`)])),_:1}),n[10]||(n[10]=(0,t.createElementVNode)(`h3`,{class:`mb-2`},`No Verification Token`,-1)),n[11]||(n[11]=(0,t.createElementVNode)(`p`,null,`Please use the link from your verification email.`,-1))]))]),_:1}),(0,t.createVNode)(p,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(d),(0,t.renderSlot)(e.$slots,`actions`,{status:e.verificationStatus,username:e.username},()=>[e.verificationStatus===`success`?((0,t.openBlock)(),(0,t.createBlock)(f,{key:0,color:`primary`,onClick:n[0]||(n[0]=t=>e.$emit(`verified`,e.username))},{default:(0,t.withCtx)(()=>n[12]||(n[12]=[(0,t.createTextVNode)(` Continue `)])),_:1})):e.verificationStatus===`error`?((0,t.openBlock)(),(0,t.createBlock)(f,{key:1,variant:`text`,onClick:n[1]||(n[1]=t=>e.$emit(`error`,e.errorMessage))},{default:(0,t.withCtx)(()=>n[13]||(n[13]=[(0,t.createTextVNode)(` Close `)])),_:1})):(0,t.createCommentVNode)(``,!0)])]),_:3})]),_:3})]),_:3})]),_:3})]),_:3})}__name(_sfc_render$7,`_sfc_render`);var Yi=g(Ui,[[`render`,_sfc_render$7]]),Xi=(0,t.defineComponent)({name:`ResetPassword`,emits:[`complete`,`error`],props:{token:{type:String,default:null}},data(){return{password:``,confirmPassword:``,passwordVisible:!1,confirmPasswordError:!1,confirmPasswordHint:``,isSubmitting:!1,isComplete:!1}},computed:{canSubmit(){return this.password.length>=4&&this.confirmPassword.length>=4&&this.password===this.confirmPassword&&!this.confirmPasswordError}},methods:{validateConfirmPassword(){this.confirmPasswordError=!1,this.confirmPasswordHint=``,this.confirmPassword&&this.password!==this.confirmPassword&&(this.confirmPasswordError=!0,this.confirmPasswordHint=`Passwords do not match`)},async handleSubmit(){if(this.validateConfirmPassword(),!this.canSubmit)return;let e=this.token||this.getTokenFromURL();if(!e){N({text:`No reset token provided. Please use the link from your email.`,status:r.Status.error}),this.$emit(`error`,`No token`);return}this.isSubmitting=!0;try{let t=await resetPassword(e,this.password);t.ok?(this.isComplete=!0,N({text:`Password reset successfully!`,status:r.Status.ok})):(N({text:t.error||`Failed to reset password`,status:r.Status.error}),this.$emit(`error`,t.error))}catch{N({text:`An unexpected error occurred`,status:r.Status.error}),this.$emit(`error`,`Unexpected error`)}finally{this.isSubmitting=!1}},getTokenFromURL(){return typeof window>`u`?null:new URLSearchParams(window.location.search).get(`token`)}}});_();var Zi={key:1,class:`text-center`};function _sfc_render$6(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-card-title`),c=(0,t.resolveComponent)(`v-text-field`),l=(0,t.resolveComponent)(`v-icon`),u=(0,t.resolveComponent)(`v-btn`),d=(0,t.resolveComponent)(`v-form`),f=(0,t.resolveComponent)(`v-card-text`),p=(0,t.resolveComponent)(`v-spacer`),m=(0,t.resolveComponent)(`v-card-actions`),h=(0,t.resolveComponent)(`v-card`),g=(0,t.resolveComponent)(`v-col`),_=(0,t.resolveComponent)(`v-row`),v=(0,t.resolveComponent)(`v-container`);return(0,t.openBlock)(),(0,t.createBlock)(v,{class:`fill-height`,fluid:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(_,{align:`center`,justify:`center`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(g,{cols:`12`,sm:`8`,md:`6`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(h,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{class:`text-h5 bg-grey-lighten-2`},{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(` Set New Password `)])),_:1}),(0,t.createVNode)(f,{class:`pa-6`},{default:(0,t.withCtx)(()=>[e.isComplete?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Zi,[(0,t.createVNode)(l,{color:`success`,size:`64`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(`mdi-check-circle`)])),_:1}),n[9]||(n[9]=(0,t.createElementVNode)(`h3`,{class:`mb-2`},`Password Reset Successful!`,-1)),n[10]||(n[10]=(0,t.createElementVNode)(`p`,null,`Your password has been updated. You can now log in with your new password.`,-1))])):((0,t.openBlock)(),(0,t.createBlock)(d,{key:0,onSubmit:(0,t.withModifiers)(e.handleSubmit,[`prevent`])},{default:(0,t.withCtx)(()=>[n[7]||(n[7]=(0,t.createElementVNode)(`p`,{class:`mb-4`},`Enter your new password below.`,-1)),(0,t.createVNode)(c,{modelValue:e.password,"onUpdate:modelValue":n[0]||(n[0]=t=>e.password=t),"prepend-icon":`mdi-lock`,name:`password`,label:`New password`,min:`4`,"append-icon":e.passwordVisible?`mdi-eye-off`:`mdi-eye`,type:e.passwordVisible?`text`:`password`,disabled:e.isSubmitting,"onClick:append":n[1]||(n[1]=()=>e.passwordVisible=!e.passwordVisible)},null,8,[`modelValue`,`append-icon`,`type`,`disabled`]),(0,t.createVNode)(c,{modelValue:e.confirmPassword,"onUpdate:modelValue":n[2]||(n[2]=t=>e.confirmPassword=t),"prepend-icon":`mdi-lock`,name:`confirmPassword`,label:`Confirm new password`,min:`4`,type:e.passwordVisible?`text`:`password`,error:e.confirmPasswordError,hint:e.confirmPasswordHint,disabled:e.isSubmitting,onBlur:e.validateConfirmPassword},null,8,[`modelValue`,`type`,`error`,`hint`,`disabled`,`onBlur`]),(0,t.createVNode)(u,{type:`submit`,color:`primary`,class:`mt-4`,loading:e.isSubmitting,disabled:!e.canSubmit,block:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{start:``},{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(`mdi-lock-reset`)])),_:1}),n[6]||(n[6]=(0,t.createTextVNode)(` Reset Password `))]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`onSubmit`]))]),_:1}),e.isComplete?((0,t.openBlock)(),(0,t.createBlock)(m,{key:0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(p),(0,t.renderSlot)(e.$slots,`success-action`,{},()=>[(0,t.createVNode)(u,{color:`primary`,onClick:n[3]||(n[3]=t=>e.$emit(`complete`))},{default:(0,t.withCtx)(()=>n[11]||(n[11]=[(0,t.createTextVNode)(` Continue to Login `)])),_:1})])]),_:3})):(0,t.createCommentVNode)(``,!0)]),_:3})]),_:3})]),_:3})]),_:3})}__name(_sfc_render$6,`_sfc_render`);var Qi=g(Xi,[[`render`,_sfc_render$6]]),$i=(0,t.defineComponent)({name:`SkTagsInput`,components:{VueTagsInput:s.VueTagsInput},props:{courseID:{type:String,required:!0,default:``},cardID:{type:String,required:!1,default:``},hideSubmit:{type:Boolean,required:!1,default:!1}},data(){return{loading:!0,tag:``,tags:[],initialTags:[],availableCourseTags:[],separators:[`;`,`,`,` `],courseDB:null}},computed:{autoCompleteSuggestions(){return this.availableCourseTags.filter(e=>e.name.toLowerCase().indexOf(this.tag.toLowerCase())!==-1).map(e=>({text:e.name,data:{snippet:e.snippet}}))}},watch:{async cardID(){await this.getAppliedTags()},async courseID(){this.courseDB=(0,i.getDataLayer)().getCourseDB(this.courseID),await this.updateAvailableCourseTags()}},async created(){this.courseDB=(0,i.getDataLayer)().getCourseDB(this.courseID),await this.updateAvailableCourseTags(),await this.getAppliedTags()},methods:{tagsChanged(e){console.log(`[TagsInput] Tags changing: ${JSON.stringify(e)}`),this.tags=e},async getAppliedTags(){this.initialTags=[],this.tags=[];try{(await this.courseDB.getAppliedTags(this.cardID)).rows.forEach(e=>{console.log(`[TagsInput] The following tag is applied:
76
+ \t${JSON.stringify(e)}`),this.tags.push({text:e.value.name,style:``,classes:``})}),this.initialTags=this.tags.map(e=>e.text)}catch(e){console.error(`Error in init-getAppliedTags: ${JSON.stringify(e)}, ${e}`)}finally{this.loading=!1}},async updateAvailableCourseTags(){try{this.availableCourseTags=(await this.courseDB.getCourseTagStubs()).rows.map(e=>e.doc)}catch(e){console.error(`Error in init-availableCourseTags: ${JSON.stringify(e)}`)}},async submit(){console.log(`[TagsInput] tagsInput is submitting...`),this.loading=!0;try{await Promise.all(this.tags.map(async e=>{if(!this.initialTags.includes(e.text))try{await this.courseDB.addTagToCard(this.cardID,e.text),console.log(`[TagsInput] Successfully added tag: ${e.text}`)}catch(t){console.error(`Failed to add tag ${e.text}:`,t)}}))}catch(e){console.error(`Exception adding tags: ${JSON.stringify(e)}`)}try{await Promise.all(this.initialTags.map(async e=>{if(this.tags.filter(t=>t.text===e).length===0)try{await this.courseDB.removeTagFromCard(this.cardID,e),console.log(`[TagsInput] Successfully removed tag: ${e}`)}catch(t){console.error(`Failed to remove tag ${e}:`,t)}}))}catch(e){console.error(`Exception removing tags: ${JSON.stringify(e)}`)}this.loading=!1}}});_();var ea={"data-cy":`tags-input`},ta={class:`tag-name`},na={key:0,class:`tag-snippet`};function _sfc_render$5(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`vue-tags-input`),c=(0,t.resolveComponent)(`v-btn`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,ea,[(0,t.createVNode)(s,{modelValue:e.tag,"onUpdate:modelValue":n[0]||(n[0]=t=>e.tag=t),tags:e.tags,"autocomplete-items":e.autoCompleteSuggestions,separators:e.separators,"add-on-key":e.separators,onTagsChanged:e.tagsChanged},{"autocomplete-item":(0,t.withCtx)(e=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`autocomplete-item`,{"is-active":e.selected}])},[(0,t.createElementVNode)(`span`,ta,(0,t.toDisplayString)(e.item.text),1),e.item.data&&e.item.data.snippet?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,na,` - `+(0,t.toDisplayString)(e.item.data.snippet),1)):(0,t.createCommentVNode)(``,!0)],2)]),_:1},8,[`modelValue`,`tags`,`autocomplete-items`,`separators`,`add-on-key`,`onTagsChanged`]),e.hideSubmit?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,color:`success`,loading:e.loading,onClick:e.submit},{default:(0,t.withCtx)(()=>n[1]||(n[1]=[(0,t.createTextVNode)(`Save Changes`)])),_:1},8,[`loading`,`onClick`]))])}__name(_sfc_render$5,`_sfc_render`);var ra=g($i,[[`render`,_sfc_render$5],[`__scopeId`,`data-v-f7373dc0`]]),ia=(0,t.defineComponent)({name:`CourseCardBrowser`,components:{CardLoader:Ei,TagsInput:ra,PaginatingToolbar:le},props:{courseId:{type:String,required:!0},tagId:{type:String,required:!1,default:``},viewLookupFunction:{type:Function,required:!0,default:()=>(console.warn(`No viewLookupFunction provided to CourseCardBrowser`),null)},editMode:{type:String,required:!1,default:`full`}},data(){return{courseDB:null,page:1,pages:[],cards:[],cardData:{},cardPreview:{},cardElos:{},cardTags:{},internalEditMode:`none`,delBtn:!1,updatePending:!0,userIsRegistered:!1,questionCount:0,tags:[],viewLookup:this.viewLookupFunction}},async created(){try{this.courseDB=(0,i.getDataLayer)().getCourseDB(this.courseId),this.tagId?this.questionCount=(await this.courseDB.getTag(this.tagId)).taggedCards.length:this.questionCount=(await this.courseDB.getCourseInfo()).cardCount;for(let e=1;(e-1)*25<this.questionCount;e++)this.pages.push(e);await this.populateTableData()}catch(e){console.error(`Error initializing CourseCardBrowser:`,e)}finally{this.updatePending=!1}},methods:{idQualify(e){return e.includes(`-`)?e:`${this.courseId}-${e}`},idToQualifiedObject(e){if(e.includes(`-`)){let t=e.split(`-`);return{courseID:t[0],cardID:t[1]}}else return{courseID:this.courseId,cardID:e}},first(){this.page=1,this.populateTableData()},prev(){this.page--,this.populateTableData()},next(){this.page++,this.populateTableData()},last(){this.page=this.pages.length,this.populateTableData()},setPage(e){this.page=e,this.populateTableData()},async loadCardTags(e){try{await Promise.all(e.map(async e=>{let t=await this.courseDB.getAppliedTags(e);this.cardTags[e]=t.rows.map(e=>({name:e.value.name,snippet:e.value.snippet,count:e.value.count}))}))}catch(e){console.error(`Error loading card tags:`,e)}},clearSelections(e=``){this.cards.forEach(t=>{t.card.cardID!==e&&(t.isOpen=!1)}),this.internalEditMode=`none`,this.delBtn=!1},async deleteCard(e){console.log(`Deleting card ${e}`);let t=await this.courseDB.removeCard(e);t.ok?(this.cards=this.cards.filter(t=>t.card.cardID!=e),this.clearSelections()):(console.error(`Failed to delete card:\n\n${JSON.stringify(t)}`),N({text:`Failed to delete card`,status:r.Status.error}))},async populateTableData(){this.updatePending=!0,this.tagId?this.cards=(await this.courseDB.getTag(this.tagId)).taggedCards.map(e=>({card:{cardID:e,courseID:this.courseId},isOpen:!1,delBtn:!1})):this.cards=(await this.courseDB.getCardsByELO(0,25)).map(e=>({card:e,isOpen:!1,delBtn:!1}));let e=[],t=(await this.courseDB.getCourseDocs(this.cards.map(e=>e.card.cardID),{include_docs:!0})).rows.filter(e=>e.doc?!0:(console.error(`Card ${e.id}.doc not found.\ncard: ${JSON.stringify(e)}`),!1)).map(e=>e.doc);this.cards=this.cards.filter(t=>!e.includes(t.card.cardID)),t.forEach(e=>{e&&e.id_displayable_data&&(this.cardData[e._id]=e.id_displayable_data)});try{await Promise.all(this.cards.map(async e=>{let n=e.card.cardID,i=t.find(e=>e._id==n);if(!i||!i.id_displayable_data){console.error(`No valid data found for card ${n}`);return}let a=this.viewLookupFunction(i.id_view||`default.question.BlanksCard.FillInView`),o=i.id_displayable_data.map(e=>this.courseDB.getCourseDoc(e,{attachments:!1,binary:!0})),s=await Promise.all(o);await Promise.all(s.map(t=>{[].unshift((0,r.displayableDataToViewData)(t)),this.cardPreview[e.card.cardID]=a.name?a.name:`Unknown`}))}));let e=this.cards.map(e=>e.card.cardID),n=await this.courseDB.getCardEloData(e);e.forEach((e,t)=>{this.cardElos[e]=n[t]}),await this.loadCardTags(e)}catch(e){console.error(`Error populating table data:`,e)}finally{this.updatePending=!1,this.$forceUpdate()}}}});_();var aa={key:0,class:`d-flex justify-center align-center pa-6`},oa={key:1},sa={key:0,class:`px-4 py-2 bg-blue-grey-lighten-5`},ca={key:0,class:`mt-4`},la={class:`mt-4`},ua={key:0,class:`ml-4`};function _sfc_render$4(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-progress-circular`),c=(0,t.resolveComponent)(`paginating-toolbar`),l=(0,t.resolveComponent)(`v-list-item-title`),u=(0,t.resolveComponent)(`v-list-item-subtitle`),d=(0,t.resolveComponent)(`v-btn`),f=(0,t.resolveComponent)(`v-icon`),p=(0,t.resolveComponent)(`v-speed-dial`),m=(0,t.resolveComponent)(`v-list-item`),h=(0,t.resolveComponent)(`card-loader`),g=(0,t.resolveComponent)(`v-chip`),_=(0,t.resolveComponent)(`v-chip-group`),v=(0,t.resolveComponent)(`tags-input`),y=(0,t.resolveComponent)(`v-list`),b=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(b,null,{default:(0,t.withCtx)(()=>[e.updatePending?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,aa,[(0,t.createVNode)(s,{indeterminate:``,color:`primary`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,oa,[(0,t.createVNode)(c,{title:`Exercises`,page:e.page,pages:e.pages,subtitle:`(${e.questionCount})`,onFirst:e.first,onPrev:e.prev,onNext:e.next,onLast:e.last,onSetPage:n[0]||(n[0]=t=>e.setPage(t))},null,8,[`page`,`pages`,`subtitle`,`onFirst`,`onPrev`,`onNext`,`onLast`]),(0,t.createVNode)(y,null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.cards,r=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:r.card.cardID},[(0,t.createVNode)(m,{class:(0,t.normalizeClass)({"bg-blue-grey-lighten-5":r.isOpen,"elevation-4":r.isOpen}),density:`compact`,"data-cy":`course-card`},{prepend:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,null,[(0,t.createVNode)(l,{class:(0,t.normalizeClass)([{"text-blue-grey-darken-1":r.isOpen},`font-weight-medium`])},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.cardPreview[r.card.cardID]),1)]),_:2},1032,[`class`]),(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)(` ELO: `+(0,t.toDisplayString)(e.cardElos[r.card.cardID]?.global?.score||`(unknown)`),1)]),_:2},1024)])]),append:(0,t.withCtx)(()=>[(0,t.createVNode)(p,{modelValue:r.isOpen,"onUpdate:modelValue":e=>r.isOpen=e,location:`left center`,transition:`slide-x-transition`,style:{display:`flex`,"flex-direction":`row-reverse`},persistent:``},{activator:(0,t.withCtx)(({props:n})=>[(0,t.createVNode)(d,(0,t.mergeProps)({ref_for:!0},n,{icon:r.isOpen?`mdi-close`:`mdi-plus`,size:`small`,variant:`text`,onClick:t=>e.clearSelections(r.card.cardID)}),null,16,[`icon`,`onClick`])]),default:(0,t.withCtx)(()=>[e.editMode===`full`?((0,t.openBlock)(),(0,t.createBlock)(d,{key:`tags`,icon:``,size:`small`,variant:e.internalEditMode===`tags`?`elevated`:`outlined`,color:e.internalEditMode===`tags`?`teal`:`teal-darken-3`,onClick:n[1]||(n[1]=(0,t.withModifiers)(t=>e.internalEditMode=`tags`,[`stop`]))},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(f,null,{default:(0,t.withCtx)(()=>n[4]||(n[4]=[(0,t.createTextVNode)(`mdi-bookmark`)])),_:1})]),_:1},8,[`variant`,`color`])):(0,t.createCommentVNode)(``,!0),e.editMode===`full`?((0,t.openBlock)(),(0,t.createBlock)(d,{key:`flag`,icon:``,size:`small`,variant:e.internalEditMode===`flag`?`elevated`:`outlined`,color:e.internalEditMode===`flag`?`error`:`error-darken-3`,onClick:n[2]||(n[2]=(0,t.withModifiers)(t=>e.internalEditMode=`flag`,[`stop`]))},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(f,null,{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(`mdi-flag`)])),_:1})]),_:1},8,[`variant`,`color`])):(0,t.createCommentVNode)(``,!0)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`class`]),r.isOpen?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,sa,[(0,t.createVNode)(h,{qualified_id:r.card,"view-lookup":e.viewLookup,class:`elevation-1`},null,8,[`qualified_id`,`view-lookup`]),e.editMode===`readonly`&&e.cardTags[r.card.cardID]?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ca,[(0,t.createVNode)(_,null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.cardTags[r.card.cardID],e=>((0,t.openBlock)(),(0,t.createBlock)(g,{key:e.name,size:`small`,color:`primary`,variant:`outlined`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.name),1)]),_:2},1024))),128))]),_:2},1024)])):(0,t.createCommentVNode)(``,!0),(0,t.withDirectives)((0,t.createVNode)(v,{"course-i-d":e.courseId,"card-i-d":r.card.cardID,class:`mt-4`},null,8,[`course-i-d`,`card-i-d`]),[[t.vShow,e.internalEditMode===`tags`&&e.editMode===`full`]]),(0,t.withDirectives)((0,t.createElementVNode)(`div`,la,[(0,t.createVNode)(d,{color:`error`,variant:`outlined`,onClick:e=>r.delBtn=!0},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(` Delete this card `)])),_:2},1032,[`onClick`]),r.delBtn?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ua,[n[8]||(n[8]=(0,t.createElementVNode)(`span`,{class:`mr-2`},`Are you sure?`,-1)),(0,t.createVNode)(d,{color:`error`,variant:`elevated`,onClick:t=>e.deleteCard(r.card.cardID)},{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(` Confirm `)])),_:2},1032,[`onClick`])])):(0,t.createCommentVNode)(``,!0)],512),[[t.vShow,e.internalEditMode===`flag`&&e.editMode===`full`]])])):(0,t.createCommentVNode)(``,!0)],64))),128))]),_:1}),(0,t.createVNode)(c,{class:`elevation-0`,page:e.page,pages:e.pages,onFirst:e.first,onPrev:e.prev,onNext:e.next,onLast:e.last,onSetPage:n[3]||(n[3]=t=>e.setPage(t))},null,8,[`page`,`pages`,`onFirst`,`onPrev`,`onNext`,`onLast`])]))]),_:1})}__name(_sfc_render$4,`_sfc_render`);var da=g(ia,[[`render`,_sfc_render$4],[`__scopeId`,`data-v-5ecc9d21`]]),fa=(0,t.defineComponent)({name:`CourseInformation`,components:{CourseCardBrowser:da},props:{courseId:{type:String,required:!0},viewLookupFunction:{type:Function,required:!1,default:e=>(console.warn(`No viewLookupFunction provided to CourseInformation`),null)},editMode:{type:String,required:!1,default:`full`}},data(){return{courseDB:null,nameRules:[e=>e.length>30?`Course name must be 30 characters or less`:!0],updatePending:!0,courseConfig:{},userIsRegistered:!1,tags:[],user:null}},computed:{},async created(){this.courseDB=(0,i.getDataLayer)().getCourseDB(this.courseId),this.user=await getCurrentUser();let e=await this.user.getCourseRegistrationsDoc();this.user.getUsername()===`admin`?this.userIsRegistered=!0:this.userIsRegistered=e.courses.filter(e=>e.courseID===this.courseId&&(e.status===`active`||e.status===void 0)).length===1,this.courseConfig=await this.courseDB.getCourseConfig(),this.tags=(await this.courseDB.getCourseTagStubs()).rows.map(e=>e.doc),this.updatePending=!1},methods:{async register(){(0,r.log)(`Registering for ${this.courseId}`),(await this.user.registerForCourse(this.courseId)).ok&&(this.userIsRegistered=!0)},async drop(){(0,r.log)(`Dropping course ${this.courseId}`),(await this.user.dropCourse(this.courseId)).ok&&(this.userIsRegistered=!1)}}});_();var pa={key:0},ma={class:`text-h4 mb-2`},ha={class:`text-body-2`},ga={key:0},_a={key:1};function _sfc_render$3(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-btn`),c=(0,t.resolveComponent)(`v-icon`),l=(0,t.resolveComponent)(`v-toolbar-title`),u=(0,t.resolveComponent)(`v-toolbar-items`),d=(0,t.resolveComponent)(`v-toolbar`),f=(0,t.resolveComponent)(`v-chip`),p=(0,t.resolveComponent)(`v-card-text`),m=(0,t.resolveComponent)(`v-card`),h=(0,t.resolveComponent)(`course-card-browser`);return e.updatePending?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pa,[(0,t.renderSlot)(e.$slots,`header`,{courseConfig:e.courseConfig,courseId:e.courseId},()=>[(0,t.createElementVNode)(`h1`,ma,(0,t.toDisplayString)(e.courseConfig.name),1)],!0),(0,t.createElementVNode)(`p`,ha,(0,t.toDisplayString)(e.courseConfig.description),1),(0,t.renderSlot)(e.$slots,`actions`,{userIsRegistered:e.userIsRegistered,courseId:e.courseId,editMode:e.editMode,register:e.register,drop:e.drop},()=>[(0,t.createVNode)(t.Transition,{name:`component-fade`,mode:`out-in`},{default:(0,t.withCtx)(()=>[e.userIsRegistered?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ga,[(0,t.createVNode)(s,{color:`success`,"data-cy":`focused-study-session-btn`,class:`me-2`},{default:(0,t.withCtx)(()=>n[0]||(n[0]=[(0,t.createTextVNode)(`Start ad study session`)])),_:1}),e.editMode===`full`?((0,t.openBlock)(),(0,t.createBlock)(s,{key:0,"data-cy":`add-content-btn`,color:`indigo-lighten-1`,class:`me-2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{start:``},{default:(0,t.withCtx)(()=>n[1]||(n[1]=[(0,t.createTextVNode)(`mdi-plus`)])),_:1}),n[2]||(n[2]=(0,t.createTextVNode)(` Add content `))]),_:1})):(0,t.createCommentVNode)(``,!0),e.editMode===`full`?((0,t.openBlock)(),(0,t.createBlock)(s,{key:1,color:`green-darken-2`,title:`Rank course content for difficulty`,class:`me-2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{start:``},{default:(0,t.withCtx)(()=>n[3]||(n[3]=[(0,t.createTextVNode)(`mdi-format-list-numbered`)])),_:1}),n[4]||(n[4]=(0,t.createTextVNode)(` Arrange `))]),_:1})):(0,t.createCommentVNode)(``,!0),e.editMode===`full`?((0,t.openBlock)(),(0,t.createBlock)(s,{key:2,color:`error`,size:`small`,variant:`outlined`,onClick:e.drop},{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(` Drop this course `)])),_:1},8,[`onClick`])):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,_a,[(0,t.createVNode)(s,{"data-cy":`register-btn`,color:`primary`,class:`me-2`,onClick:e.register},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(`Register`)])),_:1},8,[`onClick`]),(0,t.createVNode)(s,{variant:`outlined`,color:`primary`,class:`me-2`},{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(`Start a trial study session`)])),_:1})]))]),_:1})],!0),(0,t.renderSlot)(e.$slots,`additional-content`,{},void 0,!0),(0,t.createVNode)(m,{class:`my-2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(d,{density:`compact`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,null,{default:(0,t.withCtx)(()=>n[8]||(n[8]=[(0,t.createTextVNode)(`Tags`)])),_:1}),(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{variant:`text`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)(`(`+(0,t.toDisplayString)(e.tags.length)+`)`,1)]),_:1})]),_:1})]),_:1}),(0,t.createVNode)(p,null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.tags,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:r},[(0,t.renderSlot)(e.$slots,`tag-link`,{tag:n,courseId:e.courseId},()=>[(0,t.createVNode)(f,{variant:`tonal`,class:`me-2 mb-2`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.name),1)]),_:2},1024)],!0)]))),128))]),_:3})]),_:3}),(0,t.createVNode)(h,{class:`my-3`,"course-id":e.courseId,"view-lookup-function":e.viewLookupFunction,"edit-mode":e.editMode},null,8,[`course-id`,`view-lookup-function`,`edit-mode`])]))}__name(_sfc_render$3,`_sfc_render`);var va=g(fa,[[`render`,_sfc_render$3],[`__scopeId`,`data-v-38e9efe1`]]);St();var ya=(0,t.defineComponent)({name:`CardBrowser`,components:{CardViewer:Ae},props:{views:{type:Array,required:!0},data:{type:Array,required:!0},suppressSpinner:{type:Boolean,default:!1}},data(){return{viewIndex:0,previewMode:useCardPreviewModeStore()}},computed:{spinner(){return this.views.length>1}},created(){console.log(`[CardBrowser] Card browser created. Cards now in 'prewviewMode'`),this.previewMode.setPreviewMode(!0)},unmounted(){console.log(`[CardBrowser] Card browser unmounted. Cards no longer in 'prewviewMode'`),this.previewMode.setPreviewMode(!1)},methods:{incrementView(){this.viewIndex++,this.viewIndex=(this.viewIndex+this.views.length)%this.views.length},decrementView(){this.viewIndex--,this.viewIndex=(this.viewIndex+this.views.length)%this.views.length}}});_();var ba={key:0,class:`text-subtitle-1 pa-2`};function _sfc_render$2(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`CardViewer`),c=(0,t.resolveComponent)(`v-icon`),l=(0,t.resolveComponent)(`v-btn`),u=(0,t.resolveComponent)(`v-row`);return(0,t.openBlock)(),(0,t.createBlock)(u,{column:``,align:`center`,justify:`center`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{view:e.views[e.viewIndex],data:e.data,course_id:`[browsing]`,card_id:`[browsing]`},null,8,[`view`,`data`]),n[2]||(n[2]=(0,t.createElementVNode)(`br`,null,null,-1)),n[3]||(n[3]=(0,t.createElementVNode)(`br`,null,null,-1)),e.suppressSpinner?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ba,[e.spinner?((0,t.openBlock)(),(0,t.createBlock)(l,{key:0,icon:``,variant:`outlined`,color:`primary`,onClick:e.decrementView},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,null,{default:(0,t.withCtx)(()=>n[0]||(n[0]=[(0,t.createTextVNode)(`mdi-chevron-left`)])),_:1})]),_:1},8,[`onClick`])):(0,t.createCommentVNode)(``,!0),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.views[e.viewIndex].name)+` `,1),e.spinner?((0,t.openBlock)(),(0,t.createBlock)(l,{key:1,icon:``,variant:`outlined`,color:`primary`,onClick:e.incrementView},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,null,{default:(0,t.withCtx)(()=>n[1]||(n[1]=[(0,t.createTextVNode)(`mdi-chevron-right`)])),_:1})]),_:1},8,[`onClick`])):(0,t.createCommentVNode)(``,!0)]))]),_:1})}__name(_sfc_render$2,`_sfc_render`);var xa=g(ya,[[`render`,_sfc_render$2]]),Sa=(0,t.defineComponent)({name:`CourseTagFilterWidget`,props:{courseId:{type:String,required:!0},modelValue:{type:Object,default:void 0}},emits:[`update:modelValue`],setup(e,{emit:n}){let a=(0,t.ref)(!0),o=(0,t.ref)([]),s=(0,t.ref)({}),c=(0,t.ref)(e.modelValue?{...e.modelValue}:(0,r.emptyTagFilter)()),l=(0,t.computed)(()=>o.value.filter(e=>!c.value.include.includes(e))),u=(0,t.computed)(()=>(0,r.hasActiveFilter)(c.value)),fuzzyFilter=(e,t)=>{if(!t)return!0;let n=t.toLowerCase(),r=e.toLowerCase(),i=0;for(let e=0;e<r.length&&i<n.length;e++)r[e]===n[i]&&i++;return i===n.length};(0,t.watch)(()=>e.modelValue,e=>{e?c.value={...e}:c.value=(0,r.emptyTagFilter)()},{deep:!0}),(0,t.watch)(c,e=>{n(`update:modelValue`,{...e})},{deep:!0}),(0,t.watch)(()=>e.courseId,async e=>{e&&await loadTags()});async function loadTags(){a.value=!0;try{let t=await(0,i.getDataLayer)().getCourseDB(e.courseId).getCourseTagStubs();o.value=[],s.value={};for(let e of t.rows)if(e.doc){let t=e.doc;o.value.push(t.name),t.snippet&&(s.value[t.name]=t.snippet)}o.value.sort((e,t)=>e.localeCompare(t))}catch(e){console.error(`[CourseTagFilterWidget] Failed to load tags:`,e),o.value=[],s.value={}}finally{a.value=!1}}return(0,t.onMounted)(()=>{e.courseId&&loadTags()}),{loading:a,availableTags:o,availableTagsForExclude:l,tagSnippets:s,localFilter:c,hasActiveFilter:u,fuzzyFilter}}});_();var Ca={class:`course-tag-filter-widget`},wa={key:0,class:`filter-summary text-caption mt-2`},Ta={key:0},Ea={key:1},Da={key:2};function _sfc_render$1(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-chip`),c=(0,t.resolveComponent)(`v-list-item`),l=(0,t.resolveComponent)(`v-autocomplete`),u=(0,t.resolveComponent)(`v-icon`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ca,[(0,t.createVNode)(l,{modelValue:e.localFilter.include,"onUpdate:modelValue":n[0]||(n[0]=t=>e.localFilter.include=t),items:e.availableTags,loading:e.loading,disabled:e.loading,label:`Include tags`,placeholder:`Type to search tags...`,hint:`Cards must have at least one of these tags`,"persistent-hint":``,multiple:``,chips:``,"closable-chips":``,clearable:``,density:`compact`,variant:`outlined`,class:`mb-2`,"custom-filter":e.fuzzyFilter,"no-data-text":`No matching tags found`},{chip:(0,t.withCtx)(({props:e,item:n})=>[(0,t.createVNode)(s,(0,t.mergeProps)(e,{color:`primary`,variant:`tonal`,size:`small`}),{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.raw),1)]),_:2},1040)]),item:(0,t.withCtx)(({props:n,item:r})=>[(0,t.createVNode)(c,(0,t.mergeProps)(n,{title:r.raw}),(0,t.createSlots)({_:2},[e.tagSnippets[r.raw]?{name:`subtitle`,fn:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.tagSnippets[r.raw]),1)]),key:`0`}:void 0]),1040,[`title`])]),_:1},8,[`modelValue`,`items`,`loading`,`disabled`,`custom-filter`]),(0,t.createVNode)(l,{modelValue:e.localFilter.exclude,"onUpdate:modelValue":n[1]||(n[1]=t=>e.localFilter.exclude=t),items:e.availableTagsForExclude,loading:e.loading,disabled:e.loading,label:`Exclude tags`,placeholder:`Type to search tags...`,hint:`Cards with these tags will be excluded`,"persistent-hint":``,multiple:``,chips:``,"closable-chips":``,clearable:``,density:`compact`,variant:`outlined`,"custom-filter":e.fuzzyFilter,"no-data-text":`No matching tags found`},{chip:(0,t.withCtx)(({props:e,item:n})=>[(0,t.createVNode)(s,(0,t.mergeProps)(e,{color:`error`,variant:`tonal`,size:`small`}),{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.raw),1)]),_:2},1040)]),item:(0,t.withCtx)(({props:n,item:r})=>[(0,t.createVNode)(c,(0,t.mergeProps)(n,{title:r.raw}),(0,t.createSlots)({_:2},[e.tagSnippets[r.raw]?{name:`subtitle`,fn:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.tagSnippets[r.raw]),1)]),key:`0`}:void 0]),1040,[`title`])]),_:1},8,[`modelValue`,`items`,`loading`,`disabled`,`custom-filter`]),e.hasActiveFilter?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,wa,[(0,t.createVNode)(u,{size:`small`,color:`info`,class:`mr-1`},{default:(0,t.withCtx)(()=>n[2]||(n[2]=[(0,t.createTextVNode)(`mdi-filter`)])),_:1}),e.localFilter.include.length?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ta,` Including: `+(0,t.toDisplayString)(e.localFilter.include.join(`, `)),1)):(0,t.createCommentVNode)(``,!0),e.localFilter.include.length&&e.localFilter.exclude.length?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ea,` · `)):(0,t.createCommentVNode)(``,!0),e.localFilter.exclude.length?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Da,` Excluding: `+(0,t.toDisplayString)(e.localFilter.exclude.join(`, `)),1)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)])}__name(_sfc_render$1,`_sfc_render`);var Oa=g(Sa,[[`render`,_sfc_render$1],[`__scopeId`,`data-v-e1ba963b`]]),ka={min:0,startingMax:2,absoluteMax:10},Aa=`UserTagPreferenceFilter`,ja=(0,t.defineComponent)({name:`UserTagPreferences`,props:{courseId:{type:String,required:!1,default:``},sliderConfig:{type:Object,required:!1,default:()=>({})}},emits:[`preferences-saved`,`preferences-changed`],data(){return{loading:!0,saving:!1,saveError:``,saveSuccess:!1,preferences:{boost:{}},savedPreferences:{boost:{}},tagMaxRanges:{},availableTags:[],tagToAdd:null,courseDB:null,user:null}},computed:{sliderConfigResolved(){return{min:this.sliderConfig.min??ka.min,startingMax:this.sliderConfig.startingMax??ka.startingMax,absoluteMax:this.sliderConfig.absoluteMax??ka.absoluteMax}},tagNames(){return Object.keys(this.preferences.boost).sort()},globalSliderMax(){let e=Object.values(this.tagMaxRanges);return e.length===0?this.sliderConfigResolved.startingMax:Math.max(...e)},availableTagsToAdd(){let e=new Set(Object.keys(this.preferences.boost));return this.availableTags.filter(t=>!e.has(t.name))},hasChanges(){let e=Object.keys(this.preferences.boost).sort(),t=Object.keys(this.savedPreferences.boost).sort();return e.length!==t.length||e.join(`,`)!==t.join(`,`)?!0:e.some(e=>this.preferences.boost[e]!==this.savedPreferences.boost[e])}},watch:{courseId:{immediate:!0,async handler(e){e?await this.loadPreferences():this.loading=!1}}},methods:{async loadPreferences(){this.loading=!0,this.saveError=``;try{if(this.user=await getCurrentUser()??null,!this.user)throw Error(`User not available`);this.courseDB=(0,i.getDataLayer)().getCourseDB(this.courseId),this.availableTags=(await this.courseDB.getCourseTagStubs()).rows.map(e=>e.doc).filter(Boolean);let e=await this.user.getStrategyState(this.courseId,Aa);e?this.preferences.boost={...e.boost}:this.preferences.boost={},this.savedPreferences.boost={...this.preferences.boost},this.tagMaxRanges={},Object.keys(this.preferences.boost).forEach(e=>{let t=this.preferences.boost[e],n=this.sliderConfigResolved.startingMax;t>n?this.tagMaxRanges[e]=Math.min(Math.ceil(t),this.sliderConfigResolved.absoluteMax):this.tagMaxRanges[e]=n})}catch(e){console.error(`Failed to load preferences:`,e),this.saveError=`Failed to load preferences. Please try again.`}finally{this.loading=!1}},addTag(e){e&&!(e in this.preferences.boost)&&(this.preferences.boost[e]=1,this.tagMaxRanges[e]=this.sliderConfigResolved.startingMax,this.$emit(`preferences-changed`,this.preferences)),this.$nextTick(()=>{this.tagToAdd=null})},removeTag(e){delete this.preferences.boost[e],delete this.tagMaxRanges[e],this.$emit(`preferences-changed`,this.preferences)},updateBoost(e,t){this.preferences.boost[e]=t,this.$emit(`preferences-changed`,this.preferences)},expandSliderRange(e){let t=this.globalSliderMax;if(t<this.sliderConfigResolved.absoluteMax){let n=t+1;Object.keys(this.tagMaxRanges).forEach(e=>{this.tagMaxRanges[e]=Math.max(this.tagMaxRanges[e],n)}),this.preferences.boost[e]=n,this.$emit(`preferences-changed`,this.preferences)}},formatMultiplier(e){return e===0?`0x`:e<.1?e.toFixed(2)+`x`:e.toFixed(1)+`x`},resetToSaved(){this.preferences.boost={...this.savedPreferences.boost},this.saveSuccess=!1,this.saveError=``,this.tagMaxRanges={},Object.keys(this.preferences.boost).forEach(e=>{let t=this.preferences.boost[e],n=this.sliderConfigResolved.startingMax;t>n?this.tagMaxRanges[e]=Math.min(Math.ceil(t),this.sliderConfigResolved.absoluteMax):this.tagMaxRanges[e]=n})},async savePreferences(){if(!this.user||!this.courseId){this.saveError=`Unable to save - user or course not available`;return}this.saving=!0,this.saveError=``,this.saveSuccess=!1;try{let e={boost:{...this.preferences.boost},updatedAt:new Date().toISOString()};await this.user.putStrategyState(this.courseId,Aa,e),this.savedPreferences.boost={...this.preferences.boost},this.saveSuccess=!0,this.$emit(`preferences-saved`,e)}catch(e){console.error(`Failed to save preferences:`,e),this.saveError=`Failed to save preferences. Please try again.`}finally{this.saving=!1}}}});_();var Ma={key:1},Na={class:`mb-6`},Pa={class:`text-subtitle-1 font-weight-bold mb-2`},Fa={class:`d-flex align-center ga-3 w-100`},Ia={class:`text-body-2 flex-shrink-0`,style:{"min-width":`60px`,"text-align":`right`}},La={key:2,class:`d-flex justify-center py-8`};function _sfc_render(e,n,r,i,a,o){let s=(0,t.resolveComponent)(`v-icon`),c=(0,t.resolveComponent)(`v-card-title`),l=(0,t.resolveComponent)(`v-card-subtitle`),u=(0,t.resolveComponent)(`v-alert`),d=(0,t.resolveComponent)(`v-list-item`),f=(0,t.resolveComponent)(`v-autocomplete`),p=(0,t.resolveComponent)(`v-chip`),m=(0,t.resolveComponent)(`v-slider`),h=(0,t.resolveComponent)(`v-btn`),g=(0,t.resolveComponent)(`v-list`),_=(0,t.resolveComponent)(`v-progress-circular`),v=(0,t.resolveComponent)(`v-card-text`),y=(0,t.resolveComponent)(`v-spacer`),b=(0,t.resolveComponent)(`v-card-actions`),x=(0,t.resolveComponent)(`v-card`);return(0,t.openBlock)(),(0,t.createBlock)(x,{loading:e.loading},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{start:``},{default:(0,t.withCtx)(()=>n[3]||(n[3]=[(0,t.createTextVNode)(`mdi-tune`)])),_:1}),n[4]||(n[4]=(0,t.createTextVNode)(` Learning Preferences `))]),_:1}),e.courseId?((0,t.openBlock)(),(0,t.createBlock)(l,{key:0},{default:(0,t.withCtx)(()=>n[5]||(n[5]=[(0,t.createTextVNode)(` Customize how content is presented in this course `)])),_:1})):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(v,null,{default:(0,t.withCtx)(()=>[e.courseId?e.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,La,[(0,t.createVNode)(_,{indeterminate:``,color:`primary`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ma,[(0,t.createElementVNode)(`div`,Na,[(0,t.createElementVNode)(`h3`,Pa,[(0,t.createVNode)(s,{start:``,size:`small`},{default:(0,t.withCtx)(()=>n[7]||(n[7]=[(0,t.createTextVNode)(`mdi-tune-variant`)])),_:1}),n[8]||(n[8]=(0,t.createTextVNode)(` Tag Preferences `))]),n[10]||(n[10]=(0,t.createElementVNode)(`p`,{class:`text-body-2 text-medium-emphasis mb-3`},` Adjust how much you want to see cards with specific tags. 0 = exclude, 1 = neutral, higher = prefer more. `,-1)),(0,t.createVNode)(f,{modelValue:e.tagToAdd,"onUpdate:modelValue":[n[0]||(n[0]=t=>e.tagToAdd=t),e.addTag],items:e.availableTagsToAdd,"item-title":`name`,"item-value":`name`,label:`Add tag preference`,placeholder:`Search tags...`,density:`compact`,variant:`outlined`,clearable:``,"hide-details":``,class:`mb-4`},{item:(0,t.withCtx)(({props:e,item:n})=>[(0,t.createVNode)(d,(0,t.normalizeProps)((0,t.guardReactiveProps)(e)),{subtitle:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.raw.snippet),1)]),_:2},1040)]),_:1},8,[`modelValue`,`items`,`onUpdate:modelValue`]),e.tagNames.length>0?((0,t.openBlock)(),(0,t.createBlock)(g,{key:0,class:`mt-4`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.tagNames,n=>((0,t.openBlock)(),(0,t.createBlock)(d,{key:n,class:`px-0`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Fa,[(0,t.createVNode)(p,{size:`small`,variant:`tonal`,class:`flex-shrink-0`,style:{"min-width":`120px`}},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n),1)]),_:2},1024),(0,t.createVNode)(m,{"model-value":e.preferences.boost[n],min:e.sliderConfigResolved.min,max:e.globalSliderMax,step:.01,"hide-details":``,class:`flex-grow-1`,"thumb-label":``,"onUpdate:modelValue":t=>e.updateBoost(n,t)},{"thumb-label":(0,t.withCtx)(({modelValue:n})=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.formatMultiplier(n)),1)]),_:2},1032,[`model-value`,`min`,`max`,`onUpdate:modelValue`]),(0,t.createElementVNode)(`span`,Ia,(0,t.toDisplayString)(e.formatMultiplier(e.preferences.boost[n])),1),(0,t.createVNode)(h,{icon:`mdi-plus`,size:`small`,variant:`text`,density:`compact`,disabled:e.globalSliderMax>=e.sliderConfigResolved.absoluteMax,onClick:t=>e.expandSliderRange(n)},null,8,[`disabled`,`onClick`]),(0,t.createVNode)(h,{icon:`mdi-delete`,size:`small`,variant:`text`,density:`compact`,onClick:t=>e.removeTag(n)},null,8,[`onClick`])])]),_:2},1024))),128))]),_:1})):((0,t.openBlock)(),(0,t.createBlock)(u,{key:1,type:`info`,variant:`tonal`,class:`mt-4`},{default:(0,t.withCtx)(()=>n[9]||(n[9]=[(0,t.createTextVNode)(` No tag preferences configured yet. Add tags above to get started. `)])),_:1}))]),e.saveError?((0,t.openBlock)(),(0,t.createBlock)(u,{key:0,type:`error`,variant:`tonal`,class:`mt-4`,closable:``,"onClick:close":n[1]||(n[1]=t=>e.saveError=``)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.saveError),1)]),_:1})):(0,t.createCommentVNode)(``,!0),e.saveSuccess?((0,t.openBlock)(),(0,t.createBlock)(u,{key:1,type:`success`,variant:`tonal`,class:`mt-4`,closable:``,"onClick:close":n[2]||(n[2]=t=>e.saveSuccess=!1)},{default:(0,t.withCtx)(()=>n[11]||(n[11]=[(0,t.createTextVNode)(` Preferences saved successfully `)])),_:1})):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createBlock)(u,{key:0,type:`info`,variant:`tonal`,class:`mb-4`},{default:(0,t.withCtx)(()=>n[6]||(n[6]=[(0,t.createTextVNode)(` Select a course to configure your learning preferences. `)])),_:1}))]),_:1}),e.courseId&&!e.loading?((0,t.openBlock)(),(0,t.createBlock)(b,{key:1},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(y),(0,t.createVNode)(h,{variant:`text`,disabled:!e.hasChanges,onClick:e.resetToSaved},{default:(0,t.withCtx)(()=>n[12]||(n[12]=[(0,t.createTextVNode)(` Reset `)])),_:1},8,[`disabled`,`onClick`]),(0,t.createVNode)(h,{color:`primary`,variant:`flat`,loading:e.saving,disabled:!e.hasChanges,onClick:e.savePreferences},{default:(0,t.withCtx)(()=>n[13]||(n[13]=[(0,t.createTextVNode)(` Save Preferences `)])),_:1},8,[`loading`,`disabled`,`onClick`])]),_:1})):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`loading`])}var Ra=g(ja,[[`render`,_sfc_render],[`__scopeId`,`data-v-8fb14605`]]);k(),Ee(),wt(),hr(),xr(),yn(),li(),cr(),ri(),St(),P(),e.AudioAutoPlayer=ci,e.CardBrowser=xa,e.CardHistoryViewer=Te,e.CardLoader=Ei,e.CardSearch=fe,e.CardSearchResults=ve,e.CardViewer=Ae,e.CodeBlockRenderer=sr,e.CourseCardBrowser=da,e.CourseInformation=va,e.CourseTagFilterWidget=Oa,e.Displayable=Displayable,e.FillInInput=br,e.HeatMap=x,e.MarkdownRenderer=pi,e.MdTokenRenderer=ni,e.MultipleChoiceOption=gi,e.PaginatingToolbar=le,e.Question=Question,e.RadioMultipleChoice=yi,e.RequestPasswordReset=Li,e.ResetPassword=Qi,e.SessionControllerDebug=ct,e.SkMouseTrap=j,e.SkMouseTrapToolTip=ne,e.SkldrMouseTrap=O,e.SnackbarService=oe,e.StudySession=yt,e.StudySessionTimer=Oe,e.TFSelect=Si,e.TagsInput=ra,e.UserChip=Oi,e.UserInputNumber=wi,e.UserInputString=mr,e.UserLogin=Mi,e.UserLoginAndRegistrationContainer=Hi,e.UserRegistration=Pi,e.UserTagPreferences=Ra,e.VerifyEmail=Yi,e.alertUser=N,e.containsComponent=containsComponent,e.getCurrentUser=getCurrentUser,e.getUserStatus=getUserStatus,e.isComponent=isComponent,e.isDefineComponent=isDefineComponent,e.isInlineComponent=isInlineComponent,e.isPasswordValid=isPasswordValid,e.isQuestionView=isQuestionView,e.parseComponentSyntax=parseComponentSyntax,e.parseComponentToken=parseComponentToken,e.piniaPlugin=xt,e.requestPasswordReset=requestPasswordReset,e.resetPassword=resetPassword,e.sendVerificationEmail=sendVerificationEmail,e.splitByDelimiters=splitByDelimiters,e.splitParagraphToken=splitParagraphToken,e.splitTextToken=splitTextToken,e.useAuthStore=useAuthStore,e.useCardPreviewModeStore=useCardPreviewModeStore,e.useConfigStore=useConfigStore,e.useEntitlements=useEntitlements,e.useQuestionView=useQuestionView,e.useViewable=useViewable,e.validatePassword=validatePassword,e.verifyEmail=verifyEmail});
77
77
  //# sourceMappingURL=common-ui.umd.js.map