@dynamiq/assistant
Version:
A chat widget library for React and vanilla JavaScript
1 lines • 959 kB
JavaScript
import e,{useRef as t,useEffect as n,isValidElement as i}from"react";import{renderToString as r}from"react-dom/server";function a(e,t,n,i){return new(n||(n=Promise))(function(r,a){function o(e){try{l(i.next(e))}catch(e){a(e)}}function s(e){try{l(i.throw(e))}catch(e){a(e)}}function l(e){e.done?r(e.value):function(e){return e instanceof n?e:new n(function(t){t(e)})}(e.value).then(o,s)}l((i=i.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;class o extends Error{constructor(e,t){super(e),this.name="ParseError",this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}}function s(e){}function l(e){if("function"==typeof e)throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");const{onEvent:t=s,onError:n=s,onRetry:i=s,onComment:r}=e;let a,l="",c=!0,u="",f="";function d(e){if(""===e)return u.length>0&&t({id:a,event:f||void 0,data:u.endsWith("\n")?u.slice(0,-1):u}),a=void 0,u="",void(f="");if(e.startsWith(":"))return void(r&&r(e.slice(e.startsWith(": ")?2:1)));const n=e.indexOf(":");if(-1!==n){const t=e.slice(0,n),i=" "===e[n+1]?2:1;return void h(t,e.slice(n+i),e)}h(e,"",e)}function h(e,t,r){switch(e){case"event":f=t;break;case"data":u=`${u}${t}\n`;break;case"id":a=t.includes("\0")?void 0:t;break;case"retry":/^\d+$/.test(t)?i(parseInt(t,10)):n(new o(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:r}));break;default:n(new o(`Unknown field "${e.length>20?`${e.slice(0,20)}…`:e}"`,{type:"unknown-field",field:e,value:t,line:r}))}}return{feed:function(e){const t=c?e.replace(/^\xEF\xBB\xBF/,""):e,[n,i]=function(e){const t=[];let n="",i=0;for(;i<e.length;){const r=e.indexOf("\r",i),a=e.indexOf("\n",i);let o=-1;if(-1!==r&&-1!==a?o=Math.min(r,a):-1!==r?o=r===e.length-1?-1:r:-1!==a&&(o=a),-1===o){n=e.slice(i);break}{const n=e.slice(i,o);t.push(n),i=o+1,"\r"===e[i-1]&&"\n"===e[i]&&i++}}return[t,n]}(`${l}${t}`);for(const e of n)d(e);l=i,c=!1},reset:function(e={}){l&&e.consume&&d(l),c=!0,a=void 0,u="",f="",l=""}}}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}('.chat-widget{--text-color:#333;color:var(--text-color);font-family:var(\n --font-family,"Inter",-apple-system,BlinkMacSystemFont,sans-serif\n );position:fixed;z-index:9999}.chat-widget-generating{.chat-widget-send{display:none!important}.chat-widget-abort{display:flex!important}}.chat-widget-bottom-right{bottom:20px;right:20px}.chat-widget-bottom-left{bottom:20px;left:20px}.chat-widget-top-right{right:20px;top:20px}.chat-widget-top-left{left:20px;top:20px}.chat-widget-toggle{align-items:center;background-color:var(--primary-color);border:none;border-radius:50%;box-shadow:0 4px 12px rgba(108,92,231,.4);color:#fff;cursor:pointer;display:flex;height:56px;justify-content:center;width:56px}.chat-widget-container{background-color:#fff;border-radius:16px;bottom:-20px;box-shadow:0 5px 40px rgba(0,0,0,.12);display:flex;flex-direction:column;height:100vh;overflow:hidden;position:absolute;transition:all .3s ease;width:calc(100vw - var(--scrollbar-width))}@media only screen and (min-width:768px){.chat-widget-container{bottom:70px;height:670px;width:480px}.chat-widget-container-toggle-button{bottom:-5px}}.chat-widget-container-full-screen{bottom:0;height:100vh;position:fixed;right:0;width:100vw}.chat-widget-bottom-right .chat-widget-container{right:-20px}@media only screen and (min-width:768px){.chat-widget-bottom-right .chat-widget-container{right:0}}.chat-widget-bottom-left .chat-widget-container{left:-20px}@media only screen and (min-width:768px){.chat-widget-bottom-left .chat-widget-container{left:0}}.chat-widget-top-right .chat-widget-container{bottom:auto;right:-20px;top:-20px}@media only screen and (min-width:768px){.chat-widget-top-right .chat-widget-container{right:0;top:70px}}.chat-widget-top-left .chat-widget-container{bottom:auto;left:-20px;top:-20px}@media only screen and (min-width:768px){.chat-widget-top-left .chat-widget-container{left:0;top:70px}}.chat-widget-header{align-items:center;background-color:#fff;border-bottom:1px solid #f0f0f0;color:var(--text-color);display:flex;padding:16px 20px}.chat-widget-header h3{font-size:16px;font-weight:600;margin:0}.chat-widget-container-full-screen .chat-widget-header h3{left:50%;position:absolute;transform:translateX(-50%)}.chat-widget-header-actions{align-items:center;display:flex;margin-left:auto}.chat-widget-new-chat{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;font-size:14px;margin-right:16px;padding:8px 12px}.chat-widget-new-chat:hover{background-color:#f0f0f0;border-radius:4px}.chat-widget-new-chat svg{margin-right:6px}.chat-widget-new-chat:disabled{color:#999;cursor:not-allowed;opacity:.5}.chat-widget-new-chat:disabled:hover{background-color:transparent}.chat-widget-close{font-size:20px}.chat-widget-close,.chat-widget-full-screen{background:none;border:none;color:#666;cursor:pointer}.chat-widget-full-screen{display:none;font-size:14px}@media only screen and (min-width:768px){.chat-widget-full-screen{display:block}}.chat-widget-content{flex:1;min-height:0}.chat-widget-welcome-title{font-size:24px;font-weight:500}.chat-widget-welcome-subtitle,.chat-widget-welcome-title{color:var(--text-color);line-height:1.25;margin:0;text-align:center}.chat-widget-welcome-subtitle{font-size:14px}.chat-widget-prompts{display:flex;flex-direction:column;gap:8px;justify-content:flex-end;margin-top:16px;width:100%}.chat-widget-container-full-screen .chat-widget-prompts{flex-direction:row;justify-content:center}.chat-widget-welcome-icon{margin-bottom:10px}.chat-widget-welcome-icon svg path{fill:var(--primary-color)}.chat-widget-prompt{align-items:center;background-color:color-mix(in srgb,var(--primary-color) 10%,transparent);border-radius:4px;border-width:0;cursor:pointer;display:flex;font-family:var(--font-family);font-size:14px;font-weight:500;gap:8px;height:56px;padding:4px 16px;text-align:left}.chat-widget-container-full-screen .chat-widget-prompt{align-items:flex-start;flex-direction:column;height:104px}.chat-widget-messages,.chat-widget-welcome-screen{background-color:#fff;box-sizing:border-box;height:100%;overflow-y:auto;padding:16px}.chat-widget-welcome-screen{align-items:center;display:flex;flex-direction:column;justify-content:center}.chat-message{align-items:flex-start;display:flex;margin-bottom:16px;max-width:100%}.chat-message-user{justify-content:flex-end;margin-left:auto}.chat-message-bot{flex-direction:column;justify-content:flex-start;margin-right:auto}.chat-message-content-wrapper-main{display:flex;flex-direction:row;max-width:100%;overflow:hidden}.chat-message-content-main{min-width:0;overflow:hidden;width:100%}.chat-message-bot .chat-message-content-wrapper-main{background-color:color-mix(in srgb,var(--primary-color) 10%,transparent);border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.05);color:var(--text-color);padding:12px 16px}.chat-message-bot .chat-message-content{width:100%}.chat-message-bot .chat-message-text{padding:0}.chat-message-avatar{align-items:center;border-radius:50%;display:flex;flex-shrink:0;height:32px;justify-content:center;margin:0 4px;width:32px}.chat-message-avatar svg path{fill:var(--primary-color)}.chat-message-user .chat-message-avatar{background-color:var(--primary-color);color:#fff;margin-left:8px;margin-right:0}.chat-message-bot .chat-message-avatar{margin-left:0}.chat-message-content{display:flex;flex-direction:column;max-width:100%;overflow:hidden}.chat-message-text{border-radius:4px;font-size:14px;line-height:1.5;max-width:100%;overflow:hidden;overflow-wrap:break-word;padding:12px 16px;word-break:break-word}.chat-message-user .chat-message-text{background-color:#f4f5f7;color:var(--text-color)}.chat-message-timestamp{color:#999;font-size:11px;margin-top:4px}.chat-message-user .chat-message-timestamp{margin-left:0;margin-right:4px;text-align:right}.chat-message-bot .chat-message-timestamp{margin-left:4px;margin-right:0;text-align:left}.chat-message-feedback{display:flex;gap:8px;margin-left:4px;margin-top:8px}.chat-message-feedback-button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:16px;opacity:.6;padding:4px 8px;transition:all .2s ease;svg{pointer-events:none}}.chat-message-feedback-button:hover{background-color:color-mix(in srgb,var(--primary-color) 10%,transparent);color:var(--primary-color);opacity:1}.chat-message-feedback-button.feedback-selected{background-color:color-mix(in srgb,var(--primary-color) 15%,transparent);color:var(--primary-color);opacity:1}.chat-widget-input{background-color:#fff;border-top:1px solid #f0f0f0;display:flex;flex-wrap:wrap;padding:16px;position:relative}.chat-widget-input textarea{border:1px solid #424652;border-radius:4px;box-sizing:content-box;color:var(--text-color);flex:1;font-family:var(--font-family);font-size:14px;outline:none;padding:18px 52px 18px 12px;resize:none}.chat-widget-input textarea:focus{border-color:var(--primary-color)}.chat-widget-input:has(.chat-widget-file-input-container) textarea{padding-left:52px}.chat-widget-file-input-container{bottom:24px;left:24px;position:absolute}.chat-widget-file-input{display:none}.chat-widget-file-button{align-items:center;background-color:var(--secondary-color);border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;height:40px;justify-content:center;width:40px}.chat-widget-file-button:hover{background-color:#e0e0e0}.chat-widget-file-preview{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0;width:100%}.chat-widget-file-item{align-items:center;background-color:#f0f0f0;border-radius:12px;display:flex;font-size:12px;padding:4px 8px}.chat-widget-file-item span{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-widget-file-item button{background:none;border:none;color:#888;cursor:pointer;font-size:14px;margin-left:5px}.chat-message-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px}.chat-message-file{align-items:center;display:flex;flex-direction:column;max-width:100px}.chat-message-file-preview{border-radius:4px;height:80px;object-fit:cover;width:80px}.chat-message-file-icon{align-items:center;color:#555;display:flex;height:40px;justify-content:center;width:40px}.chat-message-file-name{font-size:10px;margin-top:4px;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.chat-message-user .chat-message-files{align-self:flex-end;justify-content:flex-end}.chat-message-bot .chat-message-files{align-self:flex-start;justify-content:flex-start}.chat-message-file-preview:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);transform:scale(1.05);transition:transform .2s ease}.chat-message-file-download{background:none;border:none;border-radius:4px;color:var(--primary-color);cursor:pointer;font-size:12px;margin-top:4px;padding:2px 6px}.chat-message-file-download:hover{background-color:rgba(108,92,231,.1)}.chat-loading-spinner{align-items:center;display:flex;justify-content:center;margin:16px 0 16px 40px}.chat-loading-spinner-dot{animation:bounce 1.4s ease-in-out infinite both;background-color:var(--primary-color);border-radius:50%;height:8px;margin:0 4px;width:8px}.chat-loading-spinner-dot:first-child{animation-delay:-.32s}.chat-loading-spinner-dot:nth-child(2){animation-delay:-.16s}.chat-widget-send{align-items:center;background-color:transparent;border:none;bottom:24px;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;position:absolute;right:24px;width:40px}.chat-widget-send svg path{fill:var(--primary-color)}.chat-widget-abort{align-items:center;background-color:var(--primary-color);border:none;border-radius:50%;bottom:29px;color:#fff;cursor:pointer;display:none;height:30px;justify-content:center;position:absolute;right:30px;width:30px}.chat-widget-footer,.chat-widget-powered-by{border-top:1px solid #f0f0f0;color:#999;font-size:12px;padding:12px 16px;text-align:center}.chat-widget-container-full-screen .chat-widget-footer,.chat-widget-container-full-screen .chat-widget-powered-by{background-color:#fff;border-top:none}.chat-widget-footer a{color:var(--primary-color);text-decoration:none}.chat-message-loading{align-items:center;display:flex;justify-content:flex-start;margin-top:6px;min-height:20px;min-width:50px;&~.chat-message-feedback{display:none}}.chat-message-dots{align-items:center;display:flex}.chat-message-dot{animation:bounce 1.4s ease-in-out infinite both;background-color:color-mix(in srgb,var(--primary-color) 10%,transparent);border-radius:50%;height:6px;margin:0 2px;width:6px}.chat-message-progress{color:color-mix(in srgb,var(--text-color) 60%,transparent);font-size:12px;font-style:italic;margin-left:8px;min-height:16px;opacity:.8;order:2;transition:opacity .3s ease;white-space:nowrap;width:100%}.chat-message-dot:first-child{animation-delay:-.32s}.chat-message-dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(.6)}40%{transform:scale(1)}}.chat-widget-human-support{padding:8px 16px 16px;text-align:center}.chat-widget-human-support a{align-items:center;color:var(--primary-color);display:inline-flex;font-size:14px;text-decoration:none;transition:color .2s}.chat-widget-human-link:hover{color:color-mix(in srgb,var(--primary-color) 80%,transparent);text-decoration:underline}.chat-widget-human-link svg{height:14px;margin-left:6px;width:14px}.chat-message-markdown{overflow:hidden}.chat-message-markdown h1,.chat-message-markdown h2,.chat-message-markdown h3,.chat-message-markdown h4,.chat-message-markdown h5,.chat-message-markdown h6{font-weight:600;line-height:1.25;margin-bottom:.5em;margin-top:.5em}.chat-message-markdown h1{font-size:1.5em}.chat-message-markdown h2{font-size:1.25em}.chat-message-markdown h3{font-size:1.125em}.chat-message-markdown p{margin-bottom:.75em;margin-top:0}.chat-message-markdown p:last-child{margin-bottom:0}.chat-message-markdown ol,.chat-message-markdown ul{margin-bottom:.75em;margin-top:0;padding-left:1.5em}.chat-message-markdown ul{list-style-type:"- "}.chat-message-markdown li{display:list-item;margin-bottom:.25em}.chat-message-markdown code{border-radius:3px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;padding:.2em .4em;word-break:break-all}.chat-message-markdown code,.chat-message-markdown pre{background-color:rgba(0,0,0,.05);font-size:.9em;max-width:100%}.chat-message-markdown pre{border-radius:6px;line-height:1.45;margin-bottom:.75em;margin-top:0;overflow-x:auto;padding:.75em;white-space:pre}.chat-message-markdown pre code{word-wrap:normal;background-color:transparent;border-radius:0;display:block;max-width:100%;overflow-x:auto;padding:0;white-space:pre}.chat-message-markdown a{color:var(--primary-color);text-decoration:none}.chat-message-markdown a:hover{text-decoration:underline}.chat-message-markdown blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;margin:0 0 .75em;padding:0 1em}.chat-message-markdown img{border-radius:4px;display:inline-block;height:auto;max-width:100%}.chat-message-markdown table{border-collapse:collapse;border-radius:4px;margin-bottom:.75em;width:100%;word-break:normal}.chat-message-markdown table th{color:hsla(0,0%,49%,.6);font-weight:400;padding:13px;text-align:left}.chat-message-markdown table td{font-weight:500;padding:17px 13px}.chat-message-markdown table tr{background-color:#fff;border-top:1px solid #eeeff1;position:relative}.chat-widget-panel{display:flex;flex:1;min-height:0}.chat-widget-container-full-screen .chat-widget-panel{background-color:#f0f0f0;gap:16px;padding:40px}.chat-widget-main{border-radius:4px;display:flex;flex:1;flex-direction:column;overflow:hidden;width:100%}.chat-widget-history{background-color:#fff;border-radius:4px;display:none;max-width:320px;min-width:250px;width:25%}.chat-widget-container-full-screen .chat-widget-history{display:flex;flex-direction:column}.chat-widget-history-title{border-bottom:1px solid #f0f0f0;font-size:16px;font-weight:500;margin:0;padding:32px 16px}.chat-widget-history-chats-container{display:flex;flex:1;flex-direction:column;overflow-y:auto;padding:16px}.chat-widget-history-empty{align-items:center;display:flex;flex:1;flex-direction:column;justify-content:center;padding:16px;text-align:center}.chat-widget-history-empty h4{font-size:24px;font-weight:500;line-height:32px;margin:0}.chat-widget-history-empty span{color:#7e7e7e;font-size:14px;line-height:22px}.chat-widget-history-chat{align-items:center;background:#fcfcfd;border-radius:6px;box-shadow:none;color:var(--text-color);cursor:pointer;display:flex;font-family:var(--font-family);gap:8px;justify-content:space-between;margin-bottom:10px;padding:12px;transition:background .15s,color .15s}.chat-widget-history-chat.active,.chat-widget-history-chat:hover{background:color-mix(in srgb,var(--primary-color) 5%,transparent);color:var(--primary-color)}.chat-widget-history-chat-title{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-widget-history-chat-delete{appearance:none;background:transparent;border:none;border-radius:4px;color:#9aa0a6;cursor:pointer;padding:6px}.chat-widget-history-chat.active .chat-widget-history-chat-delete,.chat-widget-history-chat:hover .chat-widget-history-chat-delete{color:var(--primary-color)}.chat-widget-history-chat-delete:hover{background:rgba(0,0,0,.04)}.chat-widget-history-chat-timestamp{color:#b2aecd;font-size:13px;font-weight:400;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-widget-history-date-header{color:#7e7e7e;font-size:14px;font-weight:500;margin:16px 0 8px;padding:0 4px}.chat-widget-history-date-header:first-child{margin-top:0}.chat-message-chart{height:100%;width:100%}.chat-message-chart-container{min-height:300px;min-width:250px;width:100%}#vg-tooltip-element{z-index:99999}.chat-message--full-width>.chat-message-content{width:100%}.chat-message-intermediate-steps{background-color:color-mix(in srgb,var(--primary-color) 5%,transparent);border:1px solid color-mix(in srgb,var(--primary-color) 10%,transparent);border-radius:4px;margin-bottom:12px;overflow:hidden}.chat-message-intermediate-steps>summary{align-items:center;color:var(--text-color);cursor:pointer;display:flex;font-size:14px;font-weight:500;padding:5px 8px;transition:background-color .2s ease;user-select:none}.chat-message-intermediate-steps[open]>summary{color:var(--primary-color)}.chat-message-intermediate-steps>summary:hover{background-color:color-mix(in srgb,var(--primary-color) 5%,transparent);color:var(--primary-color)}.chat-message-intermediate-steps>summary::marker{content:""}.chat-message-intermediate-steps>summary:before{content:"🤔 Show thinking";font-size:14px;font-weight:500}.chat-message-intermediate-steps[open]>summary:before{content:"💡 Hide thinking"}.chat-message-intermediate-step{border-top:1px solid color-mix(in srgb,var(--primary-color) 10%,transparent);color:color-mix(in srgb,var(--text-color) 60%,transparent);font-size:13px;line-height:1.5;margin:0;padding:12px 16px 12px 40px;position:relative;transition:background-color .2s ease}.chat-message-intermediate-step:last-child{border-bottom:none}.chat-message-intermediate-step:before{background-color:var(--primary-color);border-radius:50%;content:"";height:8px;left:16px;opacity:.5;position:absolute;top:50%;transform:translateY(-50%);width:8px}.chat-message-intermediate-step:after{background-color:var(--primary-color);content:"";height:100%;left:19px;opacity:.2;position:absolute;top:0;width:2px}.chat-message-intermediate-step:first-of-type:last-of-type:after{display:none}.chat-message-intermediate-step:first-of-type:after{height:50%;top:50%}.chat-message-intermediate-step:last-child:after{height:50%}.chat-message-intermediate-step:hover{background-color:color-mix(in srgb,var(--primary-color) 5%,transparent)}.chat-message-intermediate-steps::details-content{height:0;overflow:clip;transition:height .5s ease,content-visibility allow-discrete .5s ease}.chat-message-image-link-container{align-items:center;display:flex;gap:24px}.chat-message-image-link-container a{line-height:0}.chat-contract-image{border-radius:50%!important;height:32px!important;left:10px;object-fit:cover!important;position:absolute;width:32px!important}.chat-message-markdown table tr:has(.chat-contract-image-loaded) td:first-child{padding-left:50px}.chat-message-flag-container{align-items:center;display:flex;gap:4px}.chat-message-flag-container img{border-radius:50%;height:16px;object-fit:cover;width:16px}.chat-message-report-container{display:flex;flex-direction:column;gap:16px;margin-bottom:16px;max-width:360px;overflow:hidden}.chat-message-report-card{align-items:center;background:#fff;border:1px solid #eeeff1;border-radius:4px;box-shadow:0 1px 2px rgba(16,24,40,.04);box-sizing:border-box;display:flex;gap:12px;height:56px;justify-content:space-between;padding:0 16px;position:relative;z-index:2}.chat-message-report-text{display:flex;flex-direction:column;gap:2px}.chat-message-report-card:has(.chat-contract-image-loaded) .chat-message-report-text{padding-left:40px}.chat-message-report-name{color:#000;font-size:14;font-weight:500;line-height:22px}.chat-message-report-role{color:#545454;font-size:12px;line-height:20px}.chat-message-report-children{display:flex;flex-direction:column;gap:12px;padding-left:50px;position:relative;z-index:1}.chat-message-children-report-arrow{bottom:22px;left:-28px;position:absolute;z-index:1}@supports (interpolate-size:allow-keywords){:root{interpolate-size:allow-keywords}.chat-message-intermediate-steps[open]::details-content{height:auto}}');class c{static createWidget(e){const t=document.createElement("div");t.className=`chat-widget chat-widget-${e.position}`;const n=window.innerWidth-document.body.clientWidth;return e.theme&&(t.style.setProperty("--primary-color",e.theme.primaryColor||"#6c5ce7"),t.style.setProperty("--secondary-color",e.theme.secondaryColor||"#f5f5f5"),t.style.setProperty("--font-family",e.theme.fontFamily||"Inter, sans-serif"),t.style.setProperty("--scrollbar-width",n+"px")),t}static createToggleButton(){const e=document.createElement("button");return e.className="chat-widget-toggle",e.type="button",e.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>',e}static createChatContainer(e){const t=document.createElement("div");return t.className=e.toggleButton?"chat-widget-container chat-widget-container-toggle-button":"chat-widget-container",t.style.display="none",t}static createHeader(e){const t=document.createElement("div");t.className="chat-widget-header";const n=document.createElement("h3");n.innerHTML=e.title||"Chat Assistant";const i=document.createElement("div");i.className="chat-widget-header-actions";const r=document.createElement("button");r.className="chat-widget-new-chat",r.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg> New Chat';const a=document.createElement("button");a.className="chat-widget-close",a.type="button",a.innerHTML="×";const o=document.createElement("button");return o.className="chat-widget-full-screen",o.type="button",o.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7"></path></svg>',i.appendChild(r),e.allowFullScreen&&i.appendChild(o),e.hideCloseButton||i.appendChild(a),t.appendChild(n),t.appendChild(i),t}static createContentContainer(){const e=document.createElement("div");e.className="chat-widget-content";const t=document.createElement("div");return t.className="chat-widget-messages",t.style.display="none",e.appendChild(t),e}static createInputContainer(e){const t=document.createElement("div");t.className="chat-widget-input";const n=document.createElement("textarea");n.rows=1,n.placeholder=e.placeholder||"Type your message...";const i=document.createElement("button");i.className="chat-widget-send",i.type="button",i.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21.7499 11.9895C21.7506 12.2567 21.6798 12.5193 21.545 12.7501C21.4102 12.9808 21.2162 13.1714 20.983 13.302L5.24144 22.3029C5.01527 22.4312 4.75987 22.499 4.49988 22.4998C4.26011 22.4993 4.02395 22.4413 3.8112 22.3308C3.59845 22.2202 3.4153 22.0602 3.27711 21.8643C3.13892 21.6684 3.04972 21.4421 3.01698 21.2046C2.98424 20.9671 3.00892 20.7252 3.08894 20.4992L5.653 13.0039C5.67827 12.9297 5.72612 12.8653 5.78985 12.8198C5.85357 12.7742 5.92997 12.7497 6.00831 12.7498H12.7499C12.8527 12.75 12.9545 12.7291 13.0488 12.6883C13.1432 12.6476 13.2282 12.5879 13.2986 12.5129C13.3689 12.4379 13.4231 12.3492 13.4577 12.2524C13.4923 12.1556 13.5067 12.0527 13.4999 11.9501C13.4829 11.7572 13.3936 11.5779 13.25 11.4481C13.1064 11.3182 12.9191 11.2474 12.7255 11.2498H6.01488C5.93665 11.2499 5.86034 11.2256 5.79662 11.1802C5.73291 11.1348 5.68499 11.0706 5.65956 10.9967L3.08706 3.49667C2.98688 3.20928 2.9765 2.89821 3.05728 2.60478C3.13807 2.31135 3.3062 2.04943 3.53936 1.85381C3.77251 1.65819 4.05966 1.53812 4.36267 1.50955C4.66567 1.48098 4.9702 1.54526 5.23581 1.69385L20.9858 10.6835C21.2175 10.814 21.4103 11.0036 21.5446 11.2331C21.6788 11.4626 21.7497 11.7236 21.7499 11.9895Z" fill="#783F8E"/></svg>';const r=document.createElement("button");if(r.className="chat-widget-abort",r.type="button",r.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="6" width="12" height="12" rx="2" fill="currentColor" stroke="currentColor"/></svg>',r.title="Stop generating",e.allowFileUpload){const n=document.createElement("div");n.className="chat-widget-file-input-container";const i=document.createElement("input");i.type="file",i.id="chat-widget-file-input",i.className="chat-widget-file-input",i.multiple=!0,i.accept=e.acceptedFileTypes||"*";const r=document.createElement("button");r.className="chat-widget-file-button",r.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"></path></svg>',r.title="Attach files",n.appendChild(i),n.appendChild(r),t.appendChild(n)}return t.appendChild(n),t.appendChild(i),t.appendChild(r),t}static createWelcomeScreen(e){const t=document.createElement("div");t.className="chat-widget-welcome-screen";const n=document.createElement("div");n.className="chat-widget-welcome-icon",n.innerHTML='<svg width="104" height="104" viewBox="0 0 104 104" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="104" height="104" rx="52" fill="#F7F4F8"/><path d="M78.25 57.25C78.25 57.7141 78.0656 58.1593 77.7374 58.4874C77.4092 58.8156 76.9641 59 76.5 59H73V62.5C73 62.9641 72.8156 63.4092 72.4874 63.7374C72.1592 64.0656 71.7141 64.25 71.25 64.25C70.7858 64.25 70.3407 64.0656 70.0125 63.7374C69.6843 63.4092 69.5 62.9641 69.5 62.5V59H66C65.5358 59 65.0907 58.8156 64.7625 58.4874C64.4343 58.1593 64.25 57.7141 64.25 57.25C64.25 56.7859 64.4343 56.3407 64.7625 56.0126C65.0907 55.6844 65.5358 55.5 66 55.5H69.5V52C69.5 51.5359 69.6843 51.0908 70.0125 50.7626C70.3407 50.4344 70.7858 50.25 71.25 50.25C71.7141 50.25 72.1592 50.4344 72.4874 50.7626C72.8156 51.0908 73 51.5359 73 52V55.5H76.5C76.9641 55.5 77.4092 55.6844 77.7374 56.0126C78.0656 56.3407 78.25 56.7859 78.25 57.25ZM36.2499 39.75H39.75V43.25C39.75 43.7141 39.9343 44.1592 40.2625 44.4874C40.5907 44.8156 41.0358 45 41.5 45C41.9641 45 42.4092 44.8156 42.7374 44.4874C43.0656 44.1592 43.25 43.7141 43.25 43.25V39.75H46.75C47.2141 39.75 47.6592 39.5656 47.9874 39.2374C48.3156 38.9092 48.5 38.4641 48.5 38C48.5 37.5359 48.3156 37.0908 47.9874 36.7626C47.6592 36.4344 47.2141 36.25 46.75 36.25H43.25V32.75C43.25 32.2859 43.0656 31.8408 42.7374 31.5126C42.4092 31.1844 41.9641 31 41.5 31C41.0358 31 40.5907 31.1844 40.2625 31.5126C39.9343 31.8408 39.75 32.2859 39.75 32.75V36.25H36.2499C35.7858 36.25 35.3407 36.4344 35.0125 36.7626C34.6843 37.0908 34.4999 37.5359 34.4999 38C34.4999 38.4641 34.6843 38.9092 35.0125 39.2374C35.3407 39.5656 35.7858 39.75 36.2499 39.75ZM64.25 66H62.5V64.25C62.5 63.7859 62.3156 63.3408 61.9874 63.0126C61.6592 62.6844 61.2141 62.5 60.75 62.5C60.2858 62.5 59.8407 62.6844 59.5125 63.0126C59.1843 63.3408 59 63.7859 59 64.25V66H57.25C56.7858 66 56.3407 66.1844 56.0125 66.5126C55.6843 66.8408 55.5 67.2859 55.5 67.75C55.5 68.2141 55.6843 68.6592 56.0125 68.9874C56.3407 69.3156 56.7858 69.5 57.25 69.5H59V71.25C59 71.7141 59.1843 72.1592 59.5125 72.4874C59.8407 72.8156 60.2858 73 60.75 73C61.2141 73 61.6592 72.8156 61.9874 72.4874C62.3156 72.1592 62.5 71.7141 62.5 71.25V69.5H64.25C64.7141 69.5 65.1592 69.3156 65.4874 68.9874C65.8156 68.6592 66 68.2141 66 67.75C66 67.2859 65.8156 66.8408 65.4874 66.5126C65.1592 66.1844 64.7141 66 64.25 66ZM71.974 41.5L41.5 71.9741C40.8436 72.6299 39.9537 72.9984 39.0259 72.9984C38.098 72.9984 37.2081 72.6299 36.5518 71.9741L32.0237 67.4503C31.6986 67.1253 31.4407 66.7394 31.2648 66.3147C31.0888 65.89 30.9983 65.4348 30.9983 64.9752C30.9983 64.5155 31.0888 64.0603 31.2648 63.6356C31.4407 63.2109 31.6986 62.825 32.0237 62.5L62.5 32.0259C62.825 31.7008 63.2108 31.443 63.6355 31.267C64.0602 31.0911 64.5154 31.0005 64.9751 31.0005C65.4348 31.0005 65.89 31.0911 66.3147 31.267C66.7394 31.443 67.1252 31.7008 67.4503 32.0259L71.974 36.5497C72.2991 36.8747 72.557 37.2606 72.7329 37.6853C72.9089 38.11 72.9994 38.5651 72.9994 39.0248C72.9994 39.4845 72.9089 39.9397 72.7329 40.3644C72.557 40.7891 72.2991 41.175 71.974 41.5ZM69.5 39.0259L64.974 34.5L57.974 41.5L62.5 46.0259L69.5 39.0259Z" fill="#783F8E"/></svg>';const i=document.createElement("h3");i.className="chat-widget-welcome-title",i.textContent=e.welcomeTitle;const r=document.createElement("p");if(r.className="chat-widget-welcome-subtitle",r.textContent=e.welcomeSubtitle,t.appendChild(n),t.appendChild(i),t.appendChild(r),e.prompts){const n=document.createElement("div");n.className="chat-widget-prompts",e.prompts.forEach(e=>{const t=document.createElement("button");t.type="button",t.className="chat-widget-prompt",t.innerHTML=`${e.icon} ${e.text}`,t.dataset.prompt=e.text,n.appendChild(t)}),t.appendChild(n)}return t}static createFooter(e){const t=document.createElement("div");return t.className="chat-widget-footer",t.innerHTML=e.footerText||"",t}static createPoweredBy(e){const t=document.createElement("div");return t.className="chat-widget-powered-by",t.innerHTML=e.poweredBy||"",t}static createHumanSupport(e){var t;const n=document.createElement("div");return n.className="chat-widget-human-support",n.innerHTML=null!==(t=e.humanSupport)&&void 0!==t?t:"",n}static createIntermediateSteps(e){const t=document.createElement("details");if(t.className="chat-message-intermediate-steps",e.length>0){const n=document.createElement("summary");t.appendChild(n),e.forEach(e=>{let n;n="string"==typeof e?e:e.thought;const i=c.createIntermediateStep(n);t.appendChild(i)})}return t}static createIntermediateStep(e){const t=document.createElement("div");return t.className="chat-message-intermediate-step",t.textContent=e,t}static createFeedbackButtons(e,t){const n=document.createElement("div");n.className="chat-message-feedback";const i=document.createElement("button");i.className="positive"===t?"chat-message-feedback-button feedback-selected":"chat-message-feedback-button",i.innerHTML=c.getThumbsUpIcon("positive"===t),i.title="Helpful",i.setAttribute("aria-label","Helpful"),i.type="button",i.dataset.feedback="positive",i.dataset.messageId=e;const r=document.createElement("button");return r.className="negative"===t?"chat-message-feedback-button feedback-selected":"chat-message-feedback-button",r.innerHTML=c.getThumbsDownIcon("negative"===t),r.title="Not helpful",r.setAttribute("aria-label","Not helpful"),r.type="button",r.dataset.feedback="negative",r.dataset.messageId=e,"positive"===t?r.style.display="none":"negative"===t&&(i.style.display="none"),n.appendChild(i),n.appendChild(r),n}static createContractLinkIcon(){return'<svg width="20" height="20" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.4569 7.7975C15.435 7.74813 14.9056 6.57375 13.7287 5.39687C12.1606 3.82875 10.18 3 7.99999 3C5.81999 3 3.83937 3.82875 2.27124 5.39687C1.09437 6.57375 0.562494 7.75 0.543119 7.7975C0.51469 7.86144 0.5 7.93064 0.5 8.00062C0.5 8.0706 0.51469 8.1398 0.543119 8.20375C0.564994 8.25312 1.09437 9.42688 2.27124 10.6038C3.83937 12.1713 5.81999 13 7.99999 13C10.18 13 12.1606 12.1713 13.7287 10.6038C14.9056 9.42688 15.435 8.25312 15.4569 8.20375C15.4853 8.1398 15.5 8.0706 15.5 8.00062C15.5 7.93064 15.4853 7.86144 15.4569 7.7975ZM7.99999 12C6.07624 12 4.39562 11.3006 3.00437 9.92188C2.43352 9.35418 1.94786 8.70685 1.56249 8C1.94776 7.29309 2.43343 6.64574 3.00437 6.07812C4.39562 4.69938 6.07624 4 7.99999 4C9.92374 4 11.6044 4.69938 12.9956 6.07812C13.5676 6.6456 14.0543 7.29295 14.4406 8C13.99 8.84125 12.0269 12 7.99999 12ZM7.99999 5C7.40665 5 6.82663 5.17595 6.33328 5.50559C5.83994 5.83524 5.45542 6.30377 5.22836 6.85195C5.00129 7.40013 4.94188 8.00333 5.05764 8.58527C5.17339 9.16721 5.45912 9.70176 5.87867 10.1213C6.29823 10.5409 6.83278 10.8266 7.41472 10.9424C7.99667 11.0581 8.59987 10.9987 9.14804 10.7716C9.69622 10.5446 10.1648 10.1601 10.4944 9.66671C10.824 9.17336 11 8.59334 11 8C10.9992 7.2046 10.6828 6.44202 10.1204 5.87959C9.55797 5.31716 8.79539 5.00083 7.99999 5ZM7.99999 10C7.60443 10 7.21775 9.8827 6.88885 9.66294C6.55996 9.44318 6.30361 9.13082 6.15224 8.76537C6.00086 8.39991 5.96125 7.99778 6.03842 7.60982C6.11559 7.22186 6.30608 6.86549 6.58578 6.58579C6.86549 6.30608 7.22185 6.1156 7.60981 6.03843C7.99778 5.96126 8.39991 6.00087 8.76536 6.15224C9.13081 6.30362 9.44317 6.55996 9.66293 6.88886C9.8827 7.21776 9.99999 7.60444 9.99999 8C9.99999 8.53043 9.78928 9.03914 9.41421 9.41421C9.03913 9.78929 8.53043 10 7.99999 10Z" fill="#783F8E"/></svg>'}static getThumbsUpIcon(e=!1){return e?'<svg width="14" height="14" viewBox="0 0 256 256" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M234,80.12A24,24,0,0,0,216,72H160V56a40,40,0,0,0-40-40,8,8,0,0,0-7.16,4.42L75.06,96H32a16,16,0,0,0-16,16v88a16,16,0,0,0,16,16H204a24,24,0,0,0,23.82-21l12-96A24,24,0,0,0,234,80.12ZM32,112H72v88H32Z"></path></svg>':'<svg width="14" height="13" viewBox="0 0 14 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.625 4.0075C13.4842 3.84795 13.3111 3.72019 13.1171 3.63269C12.9231 3.54519 12.7128 3.49996 12.5 3.5H9V2.5C9 1.83696 8.73661 1.20107 8.26777 0.732233C7.79893 0.263392 7.16304 1.28189e-07 6.5 1.28189e-07C6.40711 -6.63752e-05 6.31604 0.0257445 6.237 0.0745385C6.15795 0.123333 6.09407 0.19318 6.0525 0.27625L3.69125 5H1C0.734784 5 0.48043 5.10536 0.292893 5.29289C0.105357 5.48043 0 5.73478 0 6V11.5C0 11.7652 0.105357 12.0196 0.292893 12.2071C0.48043 12.3946 0.734784 12.5 1 12.5H11.75C12.1154 12.5001 12.4684 12.3668 12.7425 12.1252C13.0166 11.8835 13.1931 11.5501 13.2388 11.1875L13.9888 5.1875C14.0153 4.97626 13.9966 4.76179 13.9339 4.55833C13.8712 4.35488 13.7659 4.16711 13.625 4.0075ZM1 6H3.5V11.5H1V6ZM12.9963 5.0625L12.2463 11.0625C12.231 11.1834 12.1722 11.2945 12.0808 11.3751C11.9895 11.4556 11.8718 11.5 11.75 11.5H4.5V5.61812L6.79437 1.02875C7.13443 1.09681 7.4404 1.2806 7.66021 1.54884C7.88002 1.81708 8.0001 2.1532 8 2.5V4C8 4.13261 8.05268 4.25979 8.14645 4.35355C8.24021 4.44732 8.36739 4.5 8.5 4.5H12.5C12.571 4.49998 12.6411 4.51505 12.7058 4.54423C12.7704 4.5734 12.8282 4.61601 12.8751 4.66922C12.9221 4.72242 12.9571 4.78501 12.978 4.85282C12.9989 4.92063 13.0051 4.9921 12.9963 5.0625Z" fill="currentColor" /></svg>'}static getThumbsDownIcon(e=!1){return e?'<svg width="14" height="14" viewBox="0 0 256 256" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M239.82,157l-12-96A24,24,0,0,0,204,40H32A16,16,0,0,0,16,56v88a16,16,0,0,0,16,16H75.06l37.78,75.58A8,8,0,0,0,120,240a40,40,0,0,0,40-40V184h56a24,24,0,0,0,23.82-27ZM72,144H32V56H72Z"></path></svg>':'<svg width="14" height="13" viewBox="0 0 14 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.9888 7.8125L13.2388 1.8125C13.1931 1.44993 13.0166 1.1165 12.7425 0.87483C12.4684 0.633161 12.1154 0.499875 11.75 0.5H1C0.734784 0.5 0.48043 0.605357 0.292893 0.792893C0.105357 0.98043 0 1.23478 0 1.5V7C0 7.26522 0.105357 7.51957 0.292893 7.70711C0.48043 7.89464 0.734784 8 1 8H3.69125L6.0525 12.7238C6.09407 12.8068 6.15795 12.8767 6.237 12.9255C6.31604 12.9743 6.40711 13.0001 6.5 13C7.16304 13 7.79893 12.7366 8.26777 12.2678C8.73661 11.7989 9 11.163 9 10.5V9.5H12.5C12.7129 9.50007 12.9233 9.45484 13.1173 9.36732C13.3113 9.27979 13.4845 9.15197 13.6253 8.99235C13.7662 8.83273 13.8714 8.64497 13.9341 8.44154C13.9967 8.23812 14.0154 8.02369 13.9888 7.8125ZM3.5 7H1V1.5H3.5V7ZM12.875 8.33062C12.8284 8.38423 12.7708 8.42712 12.706 8.45635C12.6413 8.48559 12.571 8.50048 12.5 8.5H8.5C8.36739 8.5 8.24021 8.55268 8.14645 8.64645C8.05268 8.74021 8 8.86739 8 9V10.5C8.0001 10.8468 7.88002 11.1829 7.66021 11.4512C7.4404 11.7194 7.13443 11.9032 6.79437 11.9712L4.5 7.38188V1.5H11.75C11.8718 1.49996 11.9895 1.54439 12.0808 1.62494C12.1722 1.7055 12.231 1.81664 12.2463 1.9375L12.9963 7.9375C13.0056 8.0079 12.9996 8.07949 12.9787 8.14735C12.9578 8.21521 12.9224 8.27773 12.875 8.33062Z" fill="currentColor"/></svg>'}}const u={$schema:"https://vega.github.io/schema/vega-lite/v6.json",width:"container",height:"container",mark:{cornerRadiusTopLeft:5,cornerRadiusTopRight:5,tooltip:!0},params:[{name:"hover",select:{type:"point",on:"pointerover",clear:"pointerout"}}]};function f(e,t=navigator.language){const n="number"==typeof e?e:e.getTime(),i=Math.round((n-Date.now())/1e3),r=[60,3600,86400,604800,2592e3,31536e3,1/0],a=r.findIndex(e=>e>Math.abs(i)),o=a?r[a-1]:1;return new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(Math.floor(i/o),["second","minute","hour","day","week","month","year"][a])}function d(e,t,n){e.style.height="auto";const i=e.scrollHeight-t;e.style.height=`${Math.min(i,n)}px`}function h(e){return e.split("\n").map(e=>e.trimStart()).join("\n").replaceAll("\\n\\n","\n").replaceAll("Photo/Documents","")}const p=(e,t)=>{var n,i;const r=crypto.randomUUID(),a=c.createContractLinkIcon();return e.onImageBlock||e.onLink?`<div class="chat-message-image-link-container" data-contract-id="${r}" data-contract="${t.contract}">\n ${e.onImageBlock?'<img src="" class="chat-contract-image" style="display: none;" data-loading="true" />':""}\n ${(null===(n=e.onLink)||void 0===n?void 0:n.call(e,t))?`<a href="${null===(i=e.onLink)||void 0===i?void 0:i.call(e,t)}" target="_blank">${a}</a>`:""}\n </div>`:""};function m(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var g={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};function y(e){g=e}var b={exec:()=>null};function v(e,t=""){let n="string"==typeof e?e:e.source,i={replace:(e,t)=>{let r="string"==typeof t?t:t.source;return r=r.replace(w.caret,"$1"),n=n.replace(e,r),i},getRegex:()=>new RegExp(n,t)};return i}var x=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),w={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]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ 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=>new RegExp(`^( {0,3}${e})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},_=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,k=/(?:[*+-]|\d{1,9}[.)])/,C=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,E=v(C).replace(/bull/g,k).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(),$=v(C).replace(/bull/g,k).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(),S=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,A=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,D=v(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",A).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),M=v(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,k).getRegex(),F="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",T=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,N=v("^ {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[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",T).replace("tag",F).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),O=v(S).replace("hr",_).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",F).getRegex(),z={blockquote:v(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",O).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:D,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:_,html:N,lheading:E,list:M,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:O,table:b,text:/^[^\n]+/},R=v("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\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",F).getRegex(),L={...z,lheading:$,table:R,paragraph:v(S).replace("hr",_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",R).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",F).getRegex()},P={...z,html:v("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",T).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:b,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:v(S).replace("hr",_).replace("heading"," *#{1,6} *[^\n]").replace("lheading",E).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},I=/^( {2,}|\\)\n(?!\s*$)/,B=/[\p{P}\p{S}]/u,j=/[\s\p{P}\p{S}]/u,q=/[^\s\p{P}\p{S}]/u,U=v(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,j).getRegex(),H=/(?!~)[\p{P}\p{S}]/u,W=v(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",x?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),V=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,G=v(V,"u").replace(/punct/g,B).getRegex(),Y=v(V,"u").replace(/punct/g,H).getRegex(),X="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Z=v(X,"gu").replace(/notPunctSpace/g,q).replace(/punctSpace/g,j).replace(/punct/g,B).getRegex(),J=v(X,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,H).getRegex(),Q=v("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,q).replace(/punctSpace/g,j).replace(/punct/g,B).getRegex(),K=v(/\\(punct)/,"gu").replace(/punct/g,B).getRegex(),ee=v(/^<(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(),te=v(T).replace("(?:--\x3e|$)","--\x3e").getRegex(),ne=v("^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",te).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),ie=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,re=v(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",ie).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ae=v(/^!?\[(label)\]\[(ref)\]/).replace("label",ie).replace("ref",A).getRegex(),oe=v(/^!?\[(ref)\](?:\[\])?/).replace("ref",A).getRegex(),se=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,le={_backpedal:b,anyPunctuation:K,autolink:ee,blockSkip:W,br:I,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:b,emStrongLDelim:G,emStrongRDelimAst:Z,emStrongRDelimUnd:Q,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:re,nolink:oe,punctuation:U,reflink:ae,reflinkSearch:v("reflink|nolink(?!\\()","g").replace("reflink",ae).replace("nolink",oe).getRegex(),tag:ne,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:b},ce={...le,link:v(/^!?\[(label)\]\((.*?)\)/).replace("label",ie).getRegex(),reflink:v(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ie).getRegex()},ue={...le,emStrongRDelimAst:J,emStron