open-chat-studio-widget 0.4.6 → 0.4.8

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.
Files changed (60) hide show
  1. package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
  3. package/dist/cjs/{index-c9203be6.js → index-AhSI5tER.js} +329 -238
  4. package/dist/cjs/index-AhSI5tER.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +1 -0
  6. package/dist/cjs/index.cjs.js.map +1 -1
  7. package/dist/cjs/loader.cjs.js +4 -5
  8. package/dist/cjs/loader.cjs.js.map +1 -1
  9. package/dist/cjs/open-chat-studio-widget.cjs.entry.js +3941 -3904
  10. package/dist/cjs/open-chat-studio-widget.cjs.entry.js.map +1 -1
  11. package/dist/cjs/open-chat-studio-widget.cjs.js +8 -7
  12. package/dist/cjs/open-chat-studio-widget.cjs.js.map +1 -1
  13. package/dist/cjs/open-chat-studio-widget.entry.cjs.js.map +1 -0
  14. package/dist/collection/collection-manifest.json +1 -1
  15. package/dist/collection/components/ocs-chat/ocs-chat.css +36 -661
  16. package/dist/collection/components/ocs-chat/ocs-chat.js +41 -20
  17. package/dist/collection/components/ocs-chat/ocs-chat.js.map +1 -1
  18. package/dist/components/index.js +2 -1
  19. package/dist/components/open-chat-studio-widget.js +3939 -3900
  20. package/dist/components/open-chat-studio-widget.js.map +1 -1
  21. package/dist/esm/app-globals-DQuL1Twl.js +6 -0
  22. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
  23. package/dist/esm/{index-0349ca51.js → index-DkJ7OJTS.js} +327 -216
  24. package/dist/esm/index-DkJ7OJTS.js.map +1 -0
  25. package/dist/esm/index.js +1 -0
  26. package/dist/esm/index.js.map +1 -1
  27. package/dist/esm/loader.js +5 -4
  28. package/dist/esm/loader.js.map +1 -1
  29. package/dist/esm/open-chat-studio-widget.entry.js +3942 -3903
  30. package/dist/esm/open-chat-studio-widget.entry.js.map +1 -1
  31. package/dist/esm/open-chat-studio-widget.js +7 -5
  32. package/dist/esm/open-chat-studio-widget.js.map +1 -1
  33. package/dist/open-chat-studio-widget/index.esm.js.map +1 -1
  34. package/dist/open-chat-studio-widget/loader.esm.js.map +1 -0
  35. package/dist/open-chat-studio-widget/open-chat-studio-widget.entry.esm.js.map +1 -0
  36. package/dist/open-chat-studio-widget/open-chat-studio-widget.esm.js +1 -1
  37. package/dist/open-chat-studio-widget/open-chat-studio-widget.esm.js.map +1 -1
  38. package/dist/open-chat-studio-widget/p-DQuL1Twl.js +2 -0
  39. package/dist/open-chat-studio-widget/p-DQuL1Twl.js.map +1 -0
  40. package/dist/open-chat-studio-widget/p-DkJ7OJTS.js +3 -0
  41. package/dist/open-chat-studio-widget/p-DkJ7OJTS.js.map +1 -0
  42. package/dist/open-chat-studio-widget/p-bde68fbd.entry.js +4 -0
  43. package/dist/open-chat-studio-widget/p-bde68fbd.entry.js.map +1 -0
  44. package/dist/types/components/ocs-chat/ocs-chat.d.ts +5 -0
  45. package/dist/types/components.d.ts +20 -0
  46. package/dist/types/stencil-public-runtime.d.ts +35 -6
  47. package/package.json +2 -2
  48. package/dist/cjs/app-globals-3a1e7e63.js +0 -7
  49. package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
  50. package/dist/cjs/index-c9203be6.js.map +0 -1
  51. package/dist/esm/app-globals-0f993ce5.js +0 -5
  52. package/dist/esm/app-globals-0f993ce5.js.map +0 -1
  53. package/dist/esm/index-0349ca51.js.map +0 -1
  54. package/dist/open-chat-studio-widget/p-16df1b20.entry.js +0 -4
  55. package/dist/open-chat-studio-widget/p-16df1b20.entry.js.map +0 -1
  56. package/dist/open-chat-studio-widget/p-3dc66a9a.js +0 -3
  57. package/dist/open-chat-studio-widget/p-3dc66a9a.js.map +0 -1
  58. package/dist/open-chat-studio-widget/p-e1255160.js +0 -2
  59. package/dist/open-chat-studio-widget/p-e1255160.js.map +0 -1
  60. package/loader/package.json +0 -11
@@ -1,4 +0,0 @@
1
- import{h as e,r as n,H as t,g as o}from"./p-3dc66a9a.js";const r=()=>e("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18 18 6M6 6l12 12"}));const s=()=>e("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 24 24"},e("circle",{cx:"8",cy:"6",r:"1.5"}),e("circle",{cx:"8",cy:"12",r:"1.5"}),e("circle",{cx:"8",cy:"18",r:"1.5"}),e("circle",{cx:"16",cy:"6",r:"1.5"}),e("circle",{cx:"16",cy:"12",r:"1.5"}),e("circle",{cx:"16",cy:"18",r:"1.5"}));const a=()=>e("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}));const i=()=>e("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"}));const l=()=>e("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 9V4.5M9 9H4.5M9 9 3.75 3.75M15 9h4.5M15 9V4.5M15 9l5.25-5.25M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25"}));const c=()=>e("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13"}));const u=()=>e("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.125 2.25h-4.5c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125v-9M10.125 2.25h.375a9 9 0 0 1 9 9v.375M10.125 2.25A3.375 3.375 0 0 1 13.5 5.625v1.5c0 .621.504 1.125 1.125 1.125h1.5a3.375 3.375 0 0 1 3.375 3.375M9 15l2.25 2.25L15 12"}));const h=()=>e("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18 18 6M6 6l12 12"}));var d=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};var p={exports:{}};(function(e,n){(function(e,t){t(n)})(d,(function(e){function n(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||false;o.configurable=true;if("value"in o)o.writable=true;Object.defineProperty(e,l(o.key),o)}}function t(e,t,o){if(t)n(e.prototype,t);if(o)n(e,o);Object.defineProperty(e,"prototype",{writable:false});return e}function o(){o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t){if(Object.prototype.hasOwnProperty.call(t,o)){e[o]=t[o]}}}return e};return o.apply(this,arguments)}function r(e,n){if(!e)return;if(typeof e==="string")return s(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor)t=e.constructor.name;if(t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return s(e,n)}function s(e,n){if(n==null||n>e.length)n=e.length;for(var t=0,o=new Array(n);t<n;t++)o[t]=e[t];return o}function a(e,n){var t=typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=r(e))||n&&e&&typeof e.length==="number"){if(t)e=t;var o=0;return function(){if(o>=e.length)return{done:true};return{done:false,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(e,n){if(typeof e!=="object"||e===null)return e;var t=e[Symbol.toPrimitive];if(t!==undefined){var o=t.call(e,n||"default");if(typeof o!=="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function l(e){var n=i(e,"string");return typeof n==="symbol"?n:String(n)}function c(){return{async:false,baseUrl:null,breaks:false,extensions:null,gfm:true,headerIds:true,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:true,pedantic:false,renderer:null,sanitize:false,sanitizer:null,silent:false,smartypants:false,tokenizer:null,walkTokens:null,xhtml:false}}e.defaults=c();function u(n){e.defaults=n}var h=/[&<>"']/;var d=new RegExp(h.source,"g");var p=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/;var m=new RegExp(p.source,"g");var f={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};var w=function e(n){return f[n]};function b(e,n){if(n){if(h.test(e)){return e.replace(d,w)}}else{if(p.test(e)){return e.replace(m,w)}}return e}var g=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function D(e){return e.replace(g,(function(e,n){n=n.toLowerCase();if(n==="colon")return":";if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""}))}var v=/(^|[^\[])\^/g;function k(e,n){e=typeof e==="string"?e:e.source;n=n||"";var t={replace:function n(o,r){r=r.source||r;r=r.replace(v,"$1");e=e.replace(o,r);return t},getRegex:function t(){return new RegExp(e,n)}};return t}var x=/[^\w:]/g;var y=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function F(e,n,t){if(e){var o;try{o=decodeURIComponent(D(t)).replace(x,"").toLowerCase()}catch(e){return null}if(o.indexOf("javascript:")===0||o.indexOf("vbscript:")===0||o.indexOf("data:")===0){return null}}if(n&&!y.test(t)){t=z(n,t)}try{t=encodeURI(t).replace(/%25/g,"%")}catch(e){return null}return t}var A={};var C=/^[^:]+:\/*[^/]*$/;var E=/^([^:]+:)[\s\S]*$/;var B=/^([^:]+:\/*[^/]*)[\s\S]*$/;function z(e,n){if(!A[" "+e]){if(C.test(e)){A[" "+e]=e+"/"}else{A[" "+e]=$(e,"/",true)}}e=A[" "+e];var t=e.indexOf(":")===-1;if(n.substring(0,2)==="//"){if(t){return n}return e.replace(E,"$1")+n}else if(n.charAt(0)==="/"){if(t){return n}return e.replace(B,"$1")+n}else{return e+n}}var S={exec:function e(){}};function _(e,n){var t=e.replace(/\|/g,(function(e,n,t){var o=false,r=n;while(--r>=0&&t[r]==="\\"){o=!o}if(o){return"|"}else{return" |"}})),o=t.split(/ \|/);var r=0;if(!o[0].trim()){o.shift()}if(o.length>0&&!o[o.length-1].trim()){o.pop()}if(o.length>n){o.splice(n)}else{while(o.length<n){o.push("")}}for(;r<o.length;r++){o[r]=o[r].trim().replace(/\\\|/g,"|")}return o}function $(e,n,t){var o=e.length;if(o===0){return""}var r=0;while(r<o){var s=e.charAt(o-r-1);if(s===n&&!t){r++}else if(s!==n&&t){r++}else{break}}return e.slice(0,o-r)}function T(e,n){if(e.indexOf(n[1])===-1){return-1}var t=e.length;var o=0,r=0;for(;r<t;r++){if(e[r]==="\\"){r++}else if(e[r]===n[0]){o++}else if(e[r]===n[1]){o--;if(o<0){return r}}}return-1}function q(e){if(e&&e.sanitize&&!e.silent){console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}}function M(e,n){if(n<1){return""}var t="";while(n>1){if(n&1){t+=e}n>>=1;e+=e}return t+e}function R(e,n,t,o){var r=n.href;var s=n.title?b(n.title):null;var a=e[1].replace(/\\([\[\]])/g,"$1");if(e[0].charAt(0)!=="!"){o.state.inLink=true;var i={type:"link",raw:t,href:r,title:s,text:a,tokens:o.inlineTokens(a)};o.state.inLink=false;return i}return{type:"image",raw:t,href:r,title:s,text:b(a)}}function I(e,n){var t=e.match(/^(\s+)(?:```)/);if(t===null){return n}var o=t[1];return n.split("\n").map((function(e){var n=e.match(/^\s+/);if(n===null){return e}var t=n[0];if(t.length>=o.length){return e.slice(o.length)}return e})).join("\n")}var j=function(){function n(n){this.options=n||e.defaults}var t=n.prototype;t.space=function e(n){var t=this.rules.block.newline.exec(n);if(t&&t[0].length>0){return{type:"space",raw:t[0]}}};t.code=function e(n){var t=this.rules.block.code.exec(n);if(t){var o=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:!this.options.pedantic?$(o,"\n"):o}}};t.fences=function e(n){var t=this.rules.block.fences.exec(n);if(t){var o=t[0];var r=I(o,t[3]||"");return{type:"code",raw:o,lang:t[2]?t[2].trim().replace(this.rules.inline._escapes,"$1"):t[2],text:r}}};t.heading=function e(n){var t=this.rules.block.heading.exec(n);if(t){var o=t[2].trim();if(/#$/.test(o)){var r=$(o,"#");if(this.options.pedantic){o=r.trim()}else if(!r||/ $/.test(r)){o=r.trim()}}return{type:"heading",raw:t[0],depth:t[1].length,text:o,tokens:this.lexer.inline(o)}}};t.hr=function e(n){var t=this.rules.block.hr.exec(n);if(t){return{type:"hr",raw:t[0]}}};t.blockquote=function e(n){var t=this.rules.block.blockquote.exec(n);if(t){var o=t[0].replace(/^ *>[ \t]?/gm,"");var r=this.lexer.state.top;this.lexer.state.top=true;var s=this.lexer.blockTokens(o);this.lexer.state.top=r;return{type:"blockquote",raw:t[0],tokens:s,text:o}}};t.list=function e(n){var t=this.rules.block.list.exec(n);if(t){var o,r,s,a,i,l,c,u,h,d,p,m;var f=t[1].trim();var w=f.length>1;var e={type:"list",raw:"",ordered:w,start:w?+f.slice(0,-1):"",loose:false,items:[]};f=w?"\\d{1,9}\\"+f.slice(-1):"\\"+f;if(this.options.pedantic){f=w?f:"[*+-]"}var b=new RegExp("^( {0,3}"+f+")((?:[\t ][^\\n]*)?(?:\\n|$))");while(n){m=false;if(!(t=b.exec(n))){break}if(this.rules.block.hr.test(n)){break}o=t[0];n=n.substring(o.length);u=t[2].split("\n",1)[0].replace(/^\t+/,(function(e){return" ".repeat(3*e.length)}));h=n.split("\n",1)[0];if(this.options.pedantic){a=2;p=u.trimLeft()}else{a=t[2].search(/[^ ]/);a=a>4?1:a;p=u.slice(a);a+=t[1].length}l=false;if(!u&&/^ *$/.test(h)){o+=h+"\n";n=n.substring(h.length+1);m=true}if(!m){var g=new RegExp("^ {0,"+Math.min(3,a-1)+"}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))");var D=new RegExp("^ {0,"+Math.min(3,a-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)");var v=new RegExp("^ {0,"+Math.min(3,a-1)+"}(?:```|~~~)");var k=new RegExp("^ {0,"+Math.min(3,a-1)+"}#");while(n){d=n.split("\n",1)[0];h=d;if(this.options.pedantic){h=h.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")}if(v.test(h)){break}if(k.test(h)){break}if(g.test(h)){break}if(D.test(n)){break}if(h.search(/[^ ]/)>=a||!h.trim()){p+="\n"+h.slice(a)}else{if(l){break}if(u.search(/[^ ]/)>=4){break}if(v.test(u)){break}if(k.test(u)){break}if(D.test(u)){break}p+="\n"+h}if(!l&&!h.trim()){l=true}o+=d+"\n";n=n.substring(d.length+1);u=h.slice(a)}}if(!e.loose){if(c){e.loose=true}else if(/\n *\n *$/.test(o)){c=true}}if(this.options.gfm){r=/^\[[ xX]\] /.exec(p);if(r){s=r[0]!=="[ ] ";p=p.replace(/^\[[ xX]\] +/,"")}}e.items.push({type:"list_item",raw:o,task:!!r,checked:s,loose:false,text:p});e.raw+=o}e.items[e.items.length-1].raw=o.trimRight();e.items[e.items.length-1].text=p.trimRight();e.raw=e.raw.trimRight();var x=e.items.length;for(i=0;i<x;i++){this.lexer.state.top=false;e.items[i].tokens=this.lexer.blockTokens(e.items[i].text,[]);if(!e.loose){var y=e.items[i].tokens.filter((function(e){return e.type==="space"}));var F=y.length>0&&y.some((function(e){return/\n.*\n/.test(e.raw)}));e.loose=F}}if(e.loose){for(i=0;i<x;i++){e.items[i].loose=true}}return e}};t.html=function e(n){var t=this.rules.block.html.exec(n);if(t){var o={type:"html",raw:t[0],pre:!this.options.sanitizer&&(t[1]==="pre"||t[1]==="script"||t[1]==="style"),text:t[0]};if(this.options.sanitize){var r=this.options.sanitizer?this.options.sanitizer(t[0]):b(t[0]);o.type="paragraph";o.text=r;o.tokens=this.lexer.inline(r)}return o}};t.def=function e(n){var t=this.rules.block.def.exec(n);if(t){var o=t[1].toLowerCase().replace(/\s+/g," ");var r=t[2]?t[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline._escapes,"$1"):"";var s=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline._escapes,"$1"):t[3];return{type:"def",tag:o,raw:t[0],href:r,title:s}}};t.table=function e(n){var t=this.rules.block.table.exec(n);if(t){var o={type:"table",header:_(t[1]).map((function(e){return{text:e}})),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(o.header.length===o.align.length){o.raw=t[0];var r=o.align.length;var s,a,i,l;for(s=0;s<r;s++){if(/^ *-+: *$/.test(o.align[s])){o.align[s]="right"}else if(/^ *:-+: *$/.test(o.align[s])){o.align[s]="center"}else if(/^ *:-+ *$/.test(o.align[s])){o.align[s]="left"}else{o.align[s]=null}}r=o.rows.length;for(s=0;s<r;s++){o.rows[s]=_(o.rows[s],o.header.length).map((function(e){return{text:e}}))}r=o.header.length;for(a=0;a<r;a++){o.header[a].tokens=this.lexer.inline(o.header[a].text)}r=o.rows.length;for(a=0;a<r;a++){l=o.rows[a];for(i=0;i<l.length;i++){l[i].tokens=this.lexer.inline(l[i].text)}}return o}}};t.lheading=function e(n){var t=this.rules.block.lheading.exec(n);if(t){return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}};t.paragraph=function e(n){var t=this.rules.block.paragraph.exec(n);if(t){var o=t[1].charAt(t[1].length-1)==="\n"?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:o,tokens:this.lexer.inline(o)}}};t.text=function e(n){var t=this.rules.block.text.exec(n);if(t){return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}};t.escape=function e(n){var t=this.rules.inline.escape.exec(n);if(t){return{type:"escape",raw:t[0],text:b(t[1])}}};t.tag=function e(n){var t=this.rules.inline.tag.exec(n);if(t){if(!this.lexer.state.inLink&&/^<a /i.test(t[0])){this.lexer.state.inLink=true}else if(this.lexer.state.inLink&&/^<\/a>/i.test(t[0])){this.lexer.state.inLink=false}if(!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])){this.lexer.state.inRawBlock=true}else if(this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])){this.lexer.state.inRawBlock=false}return{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):b(t[0]):t[0]}}};t.link=function e(n){var t=this.rules.inline.link.exec(n);if(t){var o=t[2].trim();if(!this.options.pedantic&&/^</.test(o)){if(!/>$/.test(o)){return}var r=$(o.slice(0,-1),"\\");if((o.length-r.length)%2===0){return}}else{var s=T(t[2],"()");if(s>-1){var a=t[0].indexOf("!")===0?5:4;var i=a+t[1].length+s;t[2]=t[2].substring(0,s);t[0]=t[0].substring(0,i).trim();t[3]=""}}var l=t[2];var c="";if(this.options.pedantic){var e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(l);if(e){l=e[1];c=e[3]}}else{c=t[3]?t[3].slice(1,-1):""}l=l.trim();if(/^</.test(l)){if(this.options.pedantic&&!/>$/.test(o)){l=l.slice(1)}else{l=l.slice(1,-1)}}return R(t,{href:l?l.replace(this.rules.inline._escapes,"$1"):l,title:c?c.replace(this.rules.inline._escapes,"$1"):c},t[0],this.lexer)}};t.reflink=function e(n,t){var o;if((o=this.rules.inline.reflink.exec(n))||(o=this.rules.inline.nolink.exec(n))){var r=(o[2]||o[1]).replace(/\s+/g," ");r=t[r.toLowerCase()];if(!r){var s=o[0].charAt(0);return{type:"text",raw:s,text:s}}return R(o,r,o[0],this.lexer)}};t.emStrong=function e(n,t,o){if(o===void 0){o=""}var r=this.rules.inline.emStrong.lDelim.exec(n);if(!r)return;if(r[3]&&o.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))return;var s=r[1]||r[2]||"";if(!s||s&&(o===""||this.rules.inline.punctuation.exec(o))){var a=r[0].length-1;var i,l,c=a,u=0;var h=r[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;h.lastIndex=0;t=t.slice(-1*n.length+a);while((r=h.exec(t))!=null){i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6];if(!i)continue;l=i.length;if(r[3]||r[4]){c+=l;continue}else if(r[5]||r[6]){if(a%3&&!((a+l)%3)){u+=l;continue}}c-=l;if(c>0)continue;l=Math.min(l,l+c+u);var d=n.slice(0,a+r.index+(r[0].length-i.length)+l);if(Math.min(a,l)%2){var p=d.slice(1,-1);return{type:"em",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}var m=d.slice(2,-2);return{type:"strong",raw:d,text:m,tokens:this.lexer.inlineTokens(m)}}}};t.codespan=function e(n){var t=this.rules.inline.code.exec(n);if(t){var o=t[2].replace(/\n/g," ");var r=/[^ ]/.test(o);var s=/^ /.test(o)&&/ $/.test(o);if(r&&s){o=o.substring(1,o.length-1)}o=b(o,true);return{type:"codespan",raw:t[0],text:o}}};t.br=function e(n){var t=this.rules.inline.br.exec(n);if(t){return{type:"br",raw:t[0]}}};t.del=function e(n){var t=this.rules.inline.del.exec(n);if(t){return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}};t.autolink=function e(n,t){var o=this.rules.inline.autolink.exec(n);if(o){var r,s;if(o[2]==="@"){r=b(this.options.mangle?t(o[1]):o[1]);s="mailto:"+r}else{r=b(o[1]);s=r}return{type:"link",raw:o[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}};t.url=function e(n,t){var o;if(o=this.rules.inline.url.exec(n)){var r,s;if(o[2]==="@"){r=b(this.options.mangle?t(o[0]):o[0]);s="mailto:"+r}else{var a;do{a=o[0];o[0]=this.rules.inline._backpedal.exec(o[0])[0]}while(a!==o[0]);r=b(o[0]);if(o[1]==="www."){s="http://"+o[0]}else{s=o[0]}}return{type:"link",raw:o[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}};t.inlineText=function e(n,t){var o=this.rules.inline.text.exec(n);if(o){var r;if(this.lexer.state.inRawBlock){r=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(o[0]):b(o[0]):o[0]}else{r=b(this.options.smartypants?t(o[0]):o[0])}return{type:"text",raw:o[0],text:r}}};return n}();var O={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {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|$)"+")",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:S,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};O._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;O._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;O.def=k(O.def).replace("label",O._label).replace("title",O._title).getRegex();O.bullet=/(?:[*+-]|\d{1,9}[.)])/;O.listItemStart=k(/^( *)(bull) */).replace("bull",O.bullet).getRegex();O.list=k(O.list).replace(/bull/g,O.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+O.def.source+")").getRegex();O._tag="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|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr"+"|track|ul";O._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/;O.html=k(O.html,"i").replace("comment",O._comment).replace("tag",O._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();O.paragraph=k(O._paragraph).replace("hr",O.hr).replace("heading"," {0,3}#{1,6} ").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",O._tag).getRegex();O.blockquote=k(O.blockquote).replace("paragraph",O.paragraph).getRegex();O.normal=o({},O);O.gfm=o({},O.normal,{table:"^ *([^\\n ].*\\|.*)\\n"+" {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?"+"(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});O.gfm.table=k(O.gfm.table).replace("hr",O.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\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",O._tag).getRegex();O.gfm.paragraph=k(O._paragraph).replace("hr",O.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",O.gfm.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",O._tag).getRegex();O.pedantic=o({},O.normal,{html:k("^ *(?:comment *(?:\\n|\\s*$)"+"|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)"+"|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",O._comment).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:S,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:k(O.normal._paragraph).replace("hr",O.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",O.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var L={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:S,tag:"^comment"+"|^</[a-zA-Z][\\w:-]*\\s*>"+"|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>"+"|^<\\?[\\s\\S]*?\\?>"+"|^<![a-zA-Z]+\\s[\\s\\S]*?>"+"|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:S,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};L._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~";L.punctuation=k(L.punctuation).replace(/punctuation/g,L._punctuation).getRegex();L.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;L.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g;L._comment=k(O._comment).replace("(?:--\x3e|$)","--\x3e").getRegex();L.emStrong.lDelim=k(L.emStrong.lDelim).replace(/punct/g,L._punctuation).getRegex();L.emStrong.rDelimAst=k(L.emStrong.rDelimAst,"g").replace(/punct/g,L._punctuation).getRegex();L.emStrong.rDelimUnd=k(L.emStrong.rDelimUnd,"g").replace(/punct/g,L._punctuation).getRegex();L._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;L._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;L._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])?)+(?![-_])/;L.autolink=k(L.autolink).replace("scheme",L._scheme).replace("email",L._email).getRegex();L._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;L.tag=k(L.tag).replace("comment",L._comment).replace("attribute",L._attribute).getRegex();L._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;L._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;L._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;L.link=k(L.link).replace("label",L._label).replace("href",L._href).replace("title",L._title).getRegex();L.reflink=k(L.reflink).replace("label",L._label).replace("ref",O._label).getRegex();L.nolink=k(L.nolink).replace("ref",O._label).getRegex();L.reflinkSearch=k(L.reflinkSearch,"g").replace("reflink",L.reflink).replace("nolink",L.nolink).getRegex();L.normal=o({},L);L.pedantic=o({},L.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:k(/^!?\[(label)\]\((.*?)\)/).replace("label",L._label).getRegex(),reflink:k(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",L._label).getRegex()});L.gfm=o({},L.normal,{escape:k(L.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\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.!#$%&'*+\/=?_`{\|}~-]+@)))/});L.gfm.url=k(L.gfm.url,"i").replace("email",L.gfm._extended_email).getRegex();L.breaks=o({},L.gfm,{br:k(L.br).replace("{2,}","*").getRegex(),text:k(L.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});function P(e){return e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function U(e){var n="",t,o;var r=e.length;for(t=0;t<r;t++){o=e.charCodeAt(t);if(Math.random()>.5){o="x"+o.toString(16)}n+="&#"+o+";"}return n}var N=function(){function n(n){this.tokens=[];this.tokens.links=Object.create(null);this.options=n||e.defaults;this.options.tokenizer=this.options.tokenizer||new j;this.tokenizer=this.options.tokenizer;this.tokenizer.options=this.options;this.tokenizer.lexer=this;this.inlineQueue=[];this.state={inLink:false,inRawBlock:false,top:true};var t={block:O.normal,inline:L.normal};if(this.options.pedantic){t.block=O.pedantic;t.inline=L.pedantic}else if(this.options.gfm){t.block=O.gfm;if(this.options.breaks){t.inline=L.breaks}else{t.inline=L.gfm}}this.tokenizer.rules=t}n.lex=function e(t,o){var r=new n(o);return r.lex(t)};n.lexInline=function e(t,o){var r=new n(o);return r.inlineTokens(t)};var o=n.prototype;o.lex=function e(n){n=n.replace(/\r\n|\r/g,"\n");this.blockTokens(n,this.tokens);var t;while(t=this.inlineQueue.shift()){this.inlineTokens(t.src,t.tokens)}return this.tokens};o.blockTokens=function e(n,t){var o=this;if(t===void 0){t=[]}if(this.options.pedantic){n=n.replace(/\t/g," ").replace(/^ +$/gm,"")}else{n=n.replace(/^( *)(\t+)/gm,(function(e,n,t){return n+" ".repeat(t.length)}))}var r,s,a,i;while(n){if(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((function(e){if(r=e.call({lexer:o},n,t)){n=n.substring(r.raw.length);t.push(r);return true}return false}))){continue}if(r=this.tokenizer.space(n)){n=n.substring(r.raw.length);if(r.raw.length===1&&t.length>0){t[t.length-1].raw+="\n"}else{t.push(r)}continue}if(r=this.tokenizer.code(n)){n=n.substring(r.raw.length);s=t[t.length-1];if(s&&(s.type==="paragraph"||s.type==="text")){s.raw+="\n"+r.raw;s.text+="\n"+r.text;this.inlineQueue[this.inlineQueue.length-1].src=s.text}else{t.push(r)}continue}if(r=this.tokenizer.fences(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.heading(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.hr(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.blockquote(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.list(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.html(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.def(n)){n=n.substring(r.raw.length);s=t[t.length-1];if(s&&(s.type==="paragraph"||s.type==="text")){s.raw+="\n"+r.raw;s.text+="\n"+r.raw;this.inlineQueue[this.inlineQueue.length-1].src=s.text}else if(!this.tokens.links[r.tag]){this.tokens.links[r.tag]={href:r.href,title:r.title}}continue}if(r=this.tokenizer.table(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.lheading(n)){n=n.substring(r.raw.length);t.push(r);continue}a=n;if(this.options.extensions&&this.options.extensions.startBlock){(function(){var e=Infinity;var t=n.slice(1);var r=void 0;o.options.extensions.startBlock.forEach((function(n){r=n.call({lexer:this},t);if(typeof r==="number"&&r>=0){e=Math.min(e,r)}}));if(e<Infinity&&e>=0){a=n.substring(0,e+1)}})()}if(this.state.top&&(r=this.tokenizer.paragraph(a))){s=t[t.length-1];if(i&&s.type==="paragraph"){s.raw+="\n"+r.raw;s.text+="\n"+r.text;this.inlineQueue.pop();this.inlineQueue[this.inlineQueue.length-1].src=s.text}else{t.push(r)}i=a.length!==n.length;n=n.substring(r.raw.length);continue}if(r=this.tokenizer.text(n)){n=n.substring(r.raw.length);s=t[t.length-1];if(s&&s.type==="text"){s.raw+="\n"+r.raw;s.text+="\n"+r.text;this.inlineQueue.pop();this.inlineQueue[this.inlineQueue.length-1].src=s.text}else{t.push(r)}continue}if(n){var l="Infinite loop on byte: "+n.charCodeAt(0);if(this.options.silent){console.error(l);break}else{throw new Error(l)}}}this.state.top=true;return t};o.inline=function e(n,t){if(t===void 0){t=[]}this.inlineQueue.push({src:n,tokens:t});return t};o.inlineTokens=function e(n,t){var o=this;if(t===void 0){t=[]}var r,s,a;var i=n;var l;var c,u;if(this.tokens.links){var h=Object.keys(this.tokens.links);if(h.length>0){while((l=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null){if(h.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))){i=i.slice(0,l.index)+"["+M("a",l[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)}}}}while((l=this.tokenizer.rules.inline.blockSkip.exec(i))!=null){i=i.slice(0,l.index)+"["+M("a",l[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex)}while((l=this.tokenizer.rules.inline.escapedEmSt.exec(i))!=null){i=i.slice(0,l.index+l[0].length-2)+"++"+i.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);this.tokenizer.rules.inline.escapedEmSt.lastIndex--}while(n){if(!c){u=""}c=false;if(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(e){if(r=e.call({lexer:o},n,t)){n=n.substring(r.raw.length);t.push(r);return true}return false}))){continue}if(r=this.tokenizer.escape(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.tag(n)){n=n.substring(r.raw.length);s=t[t.length-1];if(s&&r.type==="text"&&s.type==="text"){s.raw+=r.raw;s.text+=r.text}else{t.push(r)}continue}if(r=this.tokenizer.link(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.reflink(n,this.tokens.links)){n=n.substring(r.raw.length);s=t[t.length-1];if(s&&r.type==="text"&&s.type==="text"){s.raw+=r.raw;s.text+=r.text}else{t.push(r)}continue}if(r=this.tokenizer.emStrong(n,i,u)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.codespan(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.br(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.del(n)){n=n.substring(r.raw.length);t.push(r);continue}if(r=this.tokenizer.autolink(n,U)){n=n.substring(r.raw.length);t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(n,U))){n=n.substring(r.raw.length);t.push(r);continue}a=n;if(this.options.extensions&&this.options.extensions.startInline){(function(){var e=Infinity;var t=n.slice(1);var r=void 0;o.options.extensions.startInline.forEach((function(n){r=n.call({lexer:this},t);if(typeof r==="number"&&r>=0){e=Math.min(e,r)}}));if(e<Infinity&&e>=0){a=n.substring(0,e+1)}})()}if(r=this.tokenizer.inlineText(a,P)){n=n.substring(r.raw.length);if(r.raw.slice(-1)!=="_"){u=r.raw.slice(-1)}c=true;s=t[t.length-1];if(s&&s.type==="text"){s.raw+=r.raw;s.text+=r.text}else{t.push(r)}continue}if(n){var d="Infinite loop on byte: "+n.charCodeAt(0);if(this.options.silent){console.error(d);break}else{throw new Error(d)}}}return t};t(n,null,[{key:"rules",get:function e(){return{block:O,inline:L}}}]);return n}();var H=function(){function n(n){this.options=n||e.defaults}var t=n.prototype;t.code=function e(n,t,o){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var s=this.options.highlight(n,r);if(s!=null&&s!==n){o=true;n=s}}n=n.replace(/\n$/,"")+"\n";if(!r){return"<pre><code>"+(o?n:b(n,true))+"</code></pre>\n"}return'<pre><code class="'+this.options.langPrefix+b(r)+'">'+(o?n:b(n,true))+"</code></pre>\n"};t.blockquote=function e(n){return"<blockquote>\n"+n+"</blockquote>\n"};t.html=function e(n){return n};t.heading=function e(n,t,o,r){if(this.options.headerIds){var s=this.options.headerPrefix+r.slug(o);return"<h"+t+' id="'+s+'">'+n+"</h"+t+">\n"}return"<h"+t+">"+n+"</h"+t+">\n"};t.hr=function e(){return this.options.xhtml?"<hr/>\n":"<hr>\n"};t.list=function e(n,t,o){var r=t?"ol":"ul",s=t&&o!==1?' start="'+o+'"':"";return"<"+r+s+">\n"+n+"</"+r+">\n"};t.listitem=function e(n){return"<li>"+n+"</li>\n"};t.checkbox=function e(n){return"<input "+(n?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "};t.paragraph=function e(n){return"<p>"+n+"</p>\n"};t.table=function e(n,t){if(t)t="<tbody>"+t+"</tbody>";return"<table>\n"+"<thead>\n"+n+"</thead>\n"+t+"</table>\n"};t.tablerow=function e(n){return"<tr>\n"+n+"</tr>\n"};t.tablecell=function e(n,t){var o=t.header?"th":"td";var r=t.align?"<"+o+' align="'+t.align+'">':"<"+o+">";return r+n+("</"+o+">\n")};t.strong=function e(n){return"<strong>"+n+"</strong>"};t.em=function e(n){return"<em>"+n+"</em>"};t.codespan=function e(n){return"<code>"+n+"</code>"};t.br=function e(){return this.options.xhtml?"<br/>":"<br>"};t.del=function e(n){return"<del>"+n+"</del>"};t.link=function e(n,t,o){n=F(this.options.sanitize,this.options.baseUrl,n);if(n===null){return o}var r='<a href="'+n+'"';if(t){r+=' title="'+t+'"'}r+=">"+o+"</a>";return r};t.image=function e(n,t,o){n=F(this.options.sanitize,this.options.baseUrl,n);if(n===null){return o}var r='<img src="'+n+'" alt="'+o+'"';if(t){r+=' title="'+t+'"'}r+=this.options.xhtml?"/>":">";return r};t.text=function e(n){return n};return n}();var X=function(){function e(){}var n=e.prototype;n.strong=function e(n){return n};n.em=function e(n){return n};n.codespan=function e(n){return n};n.del=function e(n){return n};n.html=function e(n){return n};n.text=function e(n){return n};n.link=function e(n,t,o){return""+o};n.image=function e(n,t,o){return""+o};n.br=function e(){return""};return e}();var Z=function(){function e(){this.seen={}}var n=e.prototype;n.serialize=function e(n){return n.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")};n.getNextSafeSlug=function e(n,t){var o=n;var r=0;if(this.seen.hasOwnProperty(o)){r=this.seen[n];do{r++;o=n+"-"+r}while(this.seen.hasOwnProperty(o))}if(!t){this.seen[n]=r;this.seen[o]=0}return o};n.slug=function e(n,t){if(t===void 0){t={}}var e=this.serialize(n);return this.getNextSafeSlug(e,t.dryrun)};return e}();var W=function(){function n(n){this.options=n||e.defaults;this.options.renderer=this.options.renderer||new H;this.renderer=this.options.renderer;this.renderer.options=this.options;this.textRenderer=new X;this.slugger=new Z}n.parse=function e(t,o){var r=new n(o);return r.parse(t)};n.parseInline=function e(t,o){var r=new n(o);return r.parseInline(t)};var t=n.prototype;t.parse=function e(n,t){if(t===void 0){t=true}var o="",r,s,a,i,l,c,u,h,d,p,m,f,w,b,g,v,k,x,y;var F=n.length;for(r=0;r<F;r++){p=n[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[p.type]){y=this.options.extensions.renderers[p.type].call({parser:this},p);if(y!==false||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(p.type)){o+=y||"";continue}}switch(p.type){case"space":{continue}case"hr":{o+=this.renderer.hr();continue}case"heading":{o+=this.renderer.heading(this.parseInline(p.tokens),p.depth,D(this.parseInline(p.tokens,this.textRenderer)),this.slugger);continue}case"code":{o+=this.renderer.code(p.text,p.lang,p.escaped);continue}case"table":{h="";u="";i=p.header.length;for(s=0;s<i;s++){u+=this.renderer.tablecell(this.parseInline(p.header[s].tokens),{header:true,align:p.align[s]})}h+=this.renderer.tablerow(u);d="";i=p.rows.length;for(s=0;s<i;s++){c=p.rows[s];u="";l=c.length;for(a=0;a<l;a++){u+=this.renderer.tablecell(this.parseInline(c[a].tokens),{header:false,align:p.align[a]})}d+=this.renderer.tablerow(u)}o+=this.renderer.table(h,d);continue}case"blockquote":{d=this.parse(p.tokens);o+=this.renderer.blockquote(d);continue}case"list":{m=p.ordered;f=p.start;w=p.loose;i=p.items.length;d="";for(s=0;s<i;s++){g=p.items[s];v=g.checked;k=g.task;b="";if(g.task){x=this.renderer.checkbox(v);if(w){if(g.tokens.length>0&&g.tokens[0].type==="paragraph"){g.tokens[0].text=x+" "+g.tokens[0].text;if(g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&g.tokens[0].tokens[0].type==="text"){g.tokens[0].tokens[0].text=x+" "+g.tokens[0].tokens[0].text}}else{g.tokens.unshift({type:"text",text:x})}}else{b+=x}}b+=this.parse(g.tokens,w);d+=this.renderer.listitem(b,k,v)}o+=this.renderer.list(d,m,f);continue}case"html":{o+=this.renderer.html(p.text);continue}case"paragraph":{o+=this.renderer.paragraph(this.parseInline(p.tokens));continue}case"text":{d=p.tokens?this.parseInline(p.tokens):p.text;while(r+1<F&&n[r+1].type==="text"){p=n[++r];d+="\n"+(p.tokens?this.parseInline(p.tokens):p.text)}o+=t?this.renderer.paragraph(d):d;continue}default:{var A='Token with "'+p.type+'" type was not found.';if(this.options.silent){console.error(A);return}else{throw new Error(A)}}}}return o};t.parseInline=function e(n,t){t=t||this.renderer;var o="",r,s,a;var i=n.length;for(r=0;r<i;r++){s=n[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[s.type]){a=this.options.extensions.renderers[s.type].call({parser:this},s);if(a!==false||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){o+=a||"";continue}}switch(s.type){case"escape":{o+=t.text(s.text);break}case"html":{o+=t.html(s.text);break}case"link":{o+=t.link(s.href,s.title,this.parseInline(s.tokens,t));break}case"image":{o+=t.image(s.href,s.title,s.text);break}case"strong":{o+=t.strong(this.parseInline(s.tokens,t));break}case"em":{o+=t.em(this.parseInline(s.tokens,t));break}case"codespan":{o+=t.codespan(s.text);break}case"br":{o+=t.br();break}case"del":{o+=t.del(this.parseInline(s.tokens,t));break}case"text":{o+=t.text(s.text);break}default:{var l='Token with "'+s.type+'" type was not found.';if(this.options.silent){console.error(l);return}else{throw new Error(l)}}}}return o};return n}();var Y=function(){function n(n){this.options=n||e.defaults}var t=n.prototype;t.preprocess=function e(n){return n};t.postprocess=function e(n){return n};return n}();Y.passThroughHooks=new Set(["preprocess","postprocess"]);function G(e,n,t){return function(o){o.message+="\nPlease report this to https://github.com/markedjs/marked.";if(e){var r="<p>An error occurred:</p><pre>"+b(o.message+"",true)+"</pre>";if(n){return Promise.resolve(r)}if(t){t(null,r);return}return r}if(n){return Promise.reject(o)}if(t){t(o);return}throw o}}function J(e,n){return function(t,r,s){if(typeof r==="function"){s=r;r=null}var a=o({},r);r=o({},K.defaults,a);var i=G(r.silent,r.async,s);if(typeof t==="undefined"||t===null){return i(new Error("marked(): input parameter is undefined or null"))}if(typeof t!=="string"){return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"))}q(r);if(r.hooks){r.hooks.options=r}if(s){var l=r.highlight;var c;try{if(r.hooks){t=r.hooks.preprocess(t)}c=e(t,r)}catch(e){return i(e)}var u=function e(t){var o;if(!t){try{if(r.walkTokens){K.walkTokens(c,r.walkTokens)}o=n(c,r);if(r.hooks){o=r.hooks.postprocess(o)}}catch(e){t=e}}r.highlight=l;return t?i(t):s(null,o)};if(!l||l.length<3){return u()}delete r.highlight;if(!c.length)return u();var h=0;K.walkTokens(c,(function(e){if(e.type==="code"){h++;setTimeout((function(){l(e.text,e.lang,(function(n,t){if(n){return u(n)}if(t!=null&&t!==e.text){e.text=t;e.escaped=true}h--;if(h===0){u()}}))}),0)}}));if(h===0){u()}return}if(r.async){return Promise.resolve(r.hooks?r.hooks.preprocess(t):t).then((function(n){return e(n,r)})).then((function(e){return r.walkTokens?Promise.all(K.walkTokens(e,r.walkTokens)).then((function(){return e})):e})).then((function(e){return n(e,r)})).then((function(e){return r.hooks?r.hooks.postprocess(e):e}))["catch"](i)}try{if(r.hooks){t=r.hooks.preprocess(t)}var d=e(t,r);if(r.walkTokens){K.walkTokens(d,r.walkTokens)}var p=n(d,r);if(r.hooks){p=r.hooks.postprocess(p)}return p}catch(e){return i(e)}}}function K(e,n,t){return J(N.lex,W.parse)(e,n,t)}K.options=K.setOptions=function(e){K.defaults=o({},K.defaults,e);u(K.defaults);return K};K.getDefaults=c;K.defaults=e.defaults;K.use=function(){var e=K.defaults.extensions||{renderers:{},childTokens:{}};for(var n=arguments.length,t=new Array(n),r=0;r<n;r++){t[r]=arguments[r]}t.forEach((function(n){var t=o({},n);t.async=K.defaults.async||t.async||false;if(n.extensions){n.extensions.forEach((function(n){if(!n.name){throw new Error("extension name required")}if(n.renderer){var t=e.renderers[n.name];if(t){e.renderers[n.name]=function(){for(var e=arguments.length,o=new Array(e),r=0;r<e;r++){o[r]=arguments[r]}var s=n.renderer.apply(this,o);if(s===false){s=t.apply(this,o)}return s}}else{e.renderers[n.name]=n.renderer}}if(n.tokenizer){if(!n.level||n.level!=="block"&&n.level!=="inline"){throw new Error("extension level must be 'block' or 'inline'")}if(e[n.level]){e[n.level].unshift(n.tokenizer)}else{e[n.level]=[n.tokenizer]}if(n.start){if(n.level==="block"){if(e.startBlock){e.startBlock.push(n.start)}else{e.startBlock=[n.start]}}else if(n.level==="inline"){if(e.startInline){e.startInline.push(n.start)}else{e.startInline=[n.start]}}}}if(n.childTokens){e.childTokens[n.name]=n.childTokens}}));t.extensions=e}if(n.renderer){(function(){var e=K.defaults.renderer||new H;var o=function t(o){var r=e[o];e[o]=function(){for(var t=arguments.length,s=new Array(t),a=0;a<t;a++){s[a]=arguments[a]}var i=n.renderer[o].apply(e,s);if(i===false){i=r.apply(e,s)}return i}};for(var r in n.renderer){o(r)}t.renderer=e})()}if(n.tokenizer){(function(){var e=K.defaults.tokenizer||new j;var o=function t(o){var r=e[o];e[o]=function(){for(var t=arguments.length,s=new Array(t),a=0;a<t;a++){s[a]=arguments[a]}var i=n.tokenizer[o].apply(e,s);if(i===false){i=r.apply(e,s)}return i}};for(var r in n.tokenizer){o(r)}t.tokenizer=e})()}if(n.hooks){(function(){var e=K.defaults.hooks||new Y;var o=function t(o){var r=e[o];if(Y.passThroughHooks.has(o)){e[o]=function(t){if(K.defaults.async){return Promise.resolve(n.hooks[o].call(e,t)).then((function(n){return r.call(e,n)}))}var s=n.hooks[o].call(e,t);return r.call(e,s)}}else{e[o]=function(){for(var t=arguments.length,s=new Array(t),a=0;a<t;a++){s[a]=arguments[a]}var i=n.hooks[o].apply(e,s);if(i===false){i=r.apply(e,s)}return i}}};for(var r in n.hooks){o(r)}t.hooks=e})()}if(n.walkTokens){var r=K.defaults.walkTokens;t.walkTokens=function(e){var t=[];t.push(n.walkTokens.call(this,e));if(r){t=t.concat(r.call(this,e))}return t}}K.setOptions(t)}))};K.walkTokens=function(e,n){var t=[];var o=function e(){var o=s.value;t=t.concat(n.call(K,o));switch(o.type){case"table":{for(var r=a(o.header),i;!(i=r()).done;){var l=i.value;t=t.concat(K.walkTokens(l.tokens,n))}for(var c=a(o.rows),u;!(u=c()).done;){var h=u.value;for(var d=a(h),p;!(p=d()).done;){var m=p.value;t=t.concat(K.walkTokens(m.tokens,n))}}break}case"list":{t=t.concat(K.walkTokens(o.items,n));break}default:{if(K.defaults.extensions&&K.defaults.extensions.childTokens&&K.defaults.extensions.childTokens[o.type]){K.defaults.extensions.childTokens[o.type].forEach((function(e){t=t.concat(K.walkTokens(o[e],n))}))}else if(o.tokens){t=t.concat(K.walkTokens(o.tokens,n))}}}};for(var r=a(e),s;!(s=r()).done;){o()}return t};K.parseInline=J(N.lexInline,W.parseInline);K.Parser=W;K.parser=W.parse;K.Renderer=H;K.TextRenderer=X;K.Lexer=N;K.lexer=N.lex;K.Tokenizer=j;K.Slugger=Z;K.Hooks=Y;K.parse=K;var V=K.options;var Q=K.setOptions;var ee=K.use;var ne=K.walkTokens;var te=K.parseInline;var oe=K;var re=W.parse;var se=N.lex;e.Hooks=Y;e.Lexer=N;e.Parser=W;e.Renderer=H;e.Slugger=Z;e.TextRenderer=X;e.Tokenizer=j;e.getDefaults=c;e.lexer=se;e.marked=K;e.options=V;e.parse=oe;e.parseInline=te;e.parser=re;e.setOptions=Q;e.use=ee;e.walkTokens=ne}))})(p,p.exports);var m={exports:{}};
2
- /*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */(function(e,n){(function(n,t){e.exports=t()})(d,(function(){const{entries:e,setPrototypeOf:n,isFrozen:t,getPrototypeOf:o,getOwnPropertyDescriptor:r}=Object;let{freeze:s,seal:a,create:i}=Object;let{apply:l,construct:c}=typeof Reflect!=="undefined"&&Reflect;if(!s){s=function e(n){return n}}if(!a){a=function e(n){return n}}if(!l){l=function e(n,t,o){return n.apply(t,o)}}if(!c){c=function e(n,t){return new n(...t)}}const u=F(Array.prototype.forEach);const h=F(Array.prototype.lastIndexOf);const d=F(Array.prototype.pop);const p=F(Array.prototype.push);const m=F(Array.prototype.splice);const f=F(String.prototype.toLowerCase);const w=F(String.prototype.toString);const b=F(String.prototype.match);const g=F(String.prototype.replace);const D=F(String.prototype.indexOf);const v=F(String.prototype.trim);const k=F(Object.prototype.hasOwnProperty);const x=F(RegExp.prototype.test);const y=A(TypeError);function F(e){return function(n){if(n instanceof RegExp){n.lastIndex=0}for(var t=arguments.length,o=new Array(t>1?t-1:0),r=1;r<t;r++){o[r-1]=arguments[r]}return l(e,n,o)}}function A(e){return function(){for(var n=arguments.length,t=new Array(n),o=0;o<n;o++){t[o]=arguments[o]}return c(e,t)}}function C(e,o){let r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:f;if(n){n(e,null)}let s=o.length;while(s--){let n=o[s];if(typeof n==="string"){const e=r(n);if(e!==n){if(!t(o)){o[s]=e}n=e}}e[n]=true}return e}function E(e){for(let n=0;n<e.length;n++){const t=k(e,n);if(!t){e[n]=null}}return e}function B(n){const t=i(null);for(const[o,r]of e(n)){const e=k(n,o);if(e){if(Array.isArray(r)){t[o]=E(r)}else if(r&&typeof r==="object"&&r.constructor===Object){t[o]=B(r)}else{t[o]=r}}}return t}function z(e,n){while(e!==null){const t=r(e,n);if(t){if(t.get){return F(t.get)}if(typeof t.value==="function"){return F(t.value)}}e=o(e)}function t(){return null}return t}const S=s(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]);const _=s(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]);const $=s(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]);const T=s(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]);const q=s(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]);const M=s(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]);const R=s(["#text"]);const I=s(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]);const j=s(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]);const O=s(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]);const L=s(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]);const P=a(/\{\{[\w\W]*|[\w\W]*\}\}/gm);const U=a(/<%[\w\W]*|[\w\W]*%>/gm);const N=a(/\$\{[\w\W]*/gm);const H=a(/^data-[\-\w.\u00B7-\uFFFF]+$/);const X=a(/^aria-[\-\w]+$/);const Z=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i);const W=a(/^(?:\w+script|data):/i);const Y=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g);const G=a(/^html$/i);const J=a(/^[a-z][.\w]*(-[.\w]+)+$/i);var K=Object.freeze({__proto__:null,ARIA_ATTR:X,ATTR_WHITESPACE:Y,CUSTOM_ELEMENT:J,DATA_ATTR:H,DOCTYPE_NAME:G,ERB_EXPR:U,IS_ALLOWED_URI:Z,IS_SCRIPT_OR_DATA:W,MUSTACHE_EXPR:P,TMPLIT_EXPR:N});const V={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12};const Q=function e(){return typeof window==="undefined"?null:window};const ee=function e(n,t){if(typeof n!=="object"||typeof n.createPolicy!=="function"){return null}let o=null;const r="data-tt-policy-suffix";if(t&&t.hasAttribute(r)){o=t.getAttribute(r)}const s="dompurify"+(o?"#"+o:"");try{return n.createPolicy(s,{createHTML(e){return e},createScriptURL(e){return e}})}catch(e){console.warn("TrustedTypes policy "+s+" could not be created.");return null}};const ne=function e(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function te(){let n=arguments.length>0&&arguments[0]!==undefined?arguments[0]:Q();const t=e=>te(e);t.version="3.2.6";t.removed=[];if(!n||!n.document||n.document.nodeType!==V.document||!n.Element){t.isSupported=false;return t}let{document:o}=n;const r=o;const a=r.currentScript;const{DocumentFragment:l,HTMLTemplateElement:c,Node:F,Element:A,NodeFilter:E,NamedNodeMap:P=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:U,DOMParser:N,trustedTypes:H}=n;const X=A.prototype;const W=z(X,"cloneNode");const Y=z(X,"remove");const J=z(X,"nextSibling");const oe=z(X,"childNodes");const re=z(X,"parentNode");if(typeof c==="function"){const e=o.createElement("template");if(e.content&&e.content.ownerDocument){o=e.content.ownerDocument}}let se;let ae="";const{implementation:ie,createNodeIterator:le,createDocumentFragment:ce,getElementsByTagName:ue}=o;const{importNode:he}=r;let de=ne();t.isSupported=typeof e==="function"&&typeof re==="function"&&ie&&ie.createHTMLDocument!==undefined;const{MUSTACHE_EXPR:pe,ERB_EXPR:me,TMPLIT_EXPR:fe,DATA_ATTR:we,ARIA_ATTR:be,IS_SCRIPT_OR_DATA:ge,ATTR_WHITESPACE:De,CUSTOM_ELEMENT:ve}=K;let{IS_ALLOWED_URI:ke}=K;let xe=null;const ye=C({},[...S,..._,...$,...q,...R]);let Fe=null;const Ae=C({},[...I,...j,...O,...L]);let Ce=Object.seal(i(null,{tagNameCheck:{writable:true,configurable:false,enumerable:true,value:null},attributeNameCheck:{writable:true,configurable:false,enumerable:true,value:null},allowCustomizedBuiltInElements:{writable:true,configurable:false,enumerable:true,value:false}}));let Ee=null;let Be=null;let ze=true;let Se=true;let _e=false;let $e=true;let Te=false;let qe=true;let Me=false;let Re=false;let Ie=false;let je=false;let Oe=false;let Le=false;let Pe=true;let Ue=false;const Ne="user-content-";let He=true;let Xe=false;let Ze={};let We=null;const Ye=C({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ge=null;const Je=C({},["audio","video","img","source","image","track"]);let Ke=null;const Ve=C({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]);const Qe="http://www.w3.org/1998/Math/MathML";const en="http://www.w3.org/2000/svg";const nn="http://www.w3.org/1999/xhtml";let tn=nn;let on=false;let rn=null;const sn=C({},[Qe,en,nn],w);let an=C({},["mi","mo","mn","ms","mtext"]);let ln=C({},["annotation-xml"]);const cn=C({},["title","style","font","a","script"]);let un=null;const hn=["application/xhtml+xml","text/html"];const dn="text/html";let pn=null;let mn=null;const fn=o.createElement("form");const wn=function e(n){return n instanceof RegExp||n instanceof Function};const bn=function e(){let n=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(mn&&mn===n){return}if(!n||typeof n!=="object"){n={}}n=B(n);un=hn.indexOf(n.PARSER_MEDIA_TYPE)===-1?dn:n.PARSER_MEDIA_TYPE;pn=un==="application/xhtml+xml"?w:f;xe=k(n,"ALLOWED_TAGS")?C({},n.ALLOWED_TAGS,pn):ye;Fe=k(n,"ALLOWED_ATTR")?C({},n.ALLOWED_ATTR,pn):Ae;rn=k(n,"ALLOWED_NAMESPACES")?C({},n.ALLOWED_NAMESPACES,w):sn;Ke=k(n,"ADD_URI_SAFE_ATTR")?C(B(Ve),n.ADD_URI_SAFE_ATTR,pn):Ve;Ge=k(n,"ADD_DATA_URI_TAGS")?C(B(Je),n.ADD_DATA_URI_TAGS,pn):Je;We=k(n,"FORBID_CONTENTS")?C({},n.FORBID_CONTENTS,pn):Ye;Ee=k(n,"FORBID_TAGS")?C({},n.FORBID_TAGS,pn):B({});Be=k(n,"FORBID_ATTR")?C({},n.FORBID_ATTR,pn):B({});Ze=k(n,"USE_PROFILES")?n.USE_PROFILES:false;ze=n.ALLOW_ARIA_ATTR!==false;Se=n.ALLOW_DATA_ATTR!==false;_e=n.ALLOW_UNKNOWN_PROTOCOLS||false;$e=n.ALLOW_SELF_CLOSE_IN_ATTR!==false;Te=n.SAFE_FOR_TEMPLATES||false;qe=n.SAFE_FOR_XML!==false;Me=n.WHOLE_DOCUMENT||false;je=n.RETURN_DOM||false;Oe=n.RETURN_DOM_FRAGMENT||false;Le=n.RETURN_TRUSTED_TYPE||false;Ie=n.FORCE_BODY||false;Pe=n.SANITIZE_DOM!==false;Ue=n.SANITIZE_NAMED_PROPS||false;He=n.KEEP_CONTENT!==false;Xe=n.IN_PLACE||false;ke=n.ALLOWED_URI_REGEXP||Z;tn=n.NAMESPACE||nn;an=n.MATHML_TEXT_INTEGRATION_POINTS||an;ln=n.HTML_INTEGRATION_POINTS||ln;Ce=n.CUSTOM_ELEMENT_HANDLING||{};if(n.CUSTOM_ELEMENT_HANDLING&&wn(n.CUSTOM_ELEMENT_HANDLING.tagNameCheck)){Ce.tagNameCheck=n.CUSTOM_ELEMENT_HANDLING.tagNameCheck}if(n.CUSTOM_ELEMENT_HANDLING&&wn(n.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)){Ce.attributeNameCheck=n.CUSTOM_ELEMENT_HANDLING.attributeNameCheck}if(n.CUSTOM_ELEMENT_HANDLING&&typeof n.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements==="boolean"){Ce.allowCustomizedBuiltInElements=n.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements}if(Te){Se=false}if(Oe){je=true}if(Ze){xe=C({},R);Fe=[];if(Ze.html===true){C(xe,S);C(Fe,I)}if(Ze.svg===true){C(xe,_);C(Fe,j);C(Fe,L)}if(Ze.svgFilters===true){C(xe,$);C(Fe,j);C(Fe,L)}if(Ze.mathMl===true){C(xe,q);C(Fe,O);C(Fe,L)}}if(n.ADD_TAGS){if(xe===ye){xe=B(xe)}C(xe,n.ADD_TAGS,pn)}if(n.ADD_ATTR){if(Fe===Ae){Fe=B(Fe)}C(Fe,n.ADD_ATTR,pn)}if(n.ADD_URI_SAFE_ATTR){C(Ke,n.ADD_URI_SAFE_ATTR,pn)}if(n.FORBID_CONTENTS){if(We===Ye){We=B(We)}C(We,n.FORBID_CONTENTS,pn)}if(He){xe["#text"]=true}if(Me){C(xe,["html","head","body"])}if(xe.table){C(xe,["tbody"]);delete Ee.tbody}if(n.TRUSTED_TYPES_POLICY){if(typeof n.TRUSTED_TYPES_POLICY.createHTML!=="function"){throw y('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.')}if(typeof n.TRUSTED_TYPES_POLICY.createScriptURL!=="function"){throw y('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.')}se=n.TRUSTED_TYPES_POLICY;ae=se.createHTML("")}else{if(se===undefined){se=ee(H,a)}if(se!==null&&typeof ae==="string"){ae=se.createHTML("")}}if(s){s(n)}mn=n};const gn=C({},[..._,...$,...T]);const Dn=C({},[...q,...M]);const vn=function e(n){let t=re(n);if(!t||!t.tagName){t={namespaceURI:tn,tagName:"template"}}const o=f(n.tagName);const r=f(t.tagName);if(!rn[n.namespaceURI]){return false}if(n.namespaceURI===en){if(t.namespaceURI===nn){return o==="svg"}if(t.namespaceURI===Qe){return o==="svg"&&(r==="annotation-xml"||an[r])}return Boolean(gn[o])}if(n.namespaceURI===Qe){if(t.namespaceURI===nn){return o==="math"}if(t.namespaceURI===en){return o==="math"&&ln[r]}return Boolean(Dn[o])}if(n.namespaceURI===nn){if(t.namespaceURI===en&&!ln[r]){return false}if(t.namespaceURI===Qe&&!an[r]){return false}return!Dn[o]&&(cn[o]||!gn[o])}if(un==="application/xhtml+xml"&&rn[n.namespaceURI]){return true}return false};const kn=function e(n){p(t.removed,{element:n});try{re(n).removeChild(n)}catch(e){Y(n)}};const xn=function e(n,o){try{p(t.removed,{attribute:o.getAttributeNode(n),from:o})}catch(e){p(t.removed,{attribute:null,from:o})}o.removeAttribute(n);if(n==="is"){if(je||Oe){try{kn(o)}catch(e){}}else{try{o.setAttribute(n,"")}catch(e){}}}};const yn=function e(n){let t=null;let r=null;if(Ie){n="<remove></remove>"+n}else{const e=b(n,/^[\r\n\t ]+/);r=e&&e[0]}if(un==="application/xhtml+xml"&&tn===nn){n='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+n+"</body></html>"}const s=se?se.createHTML(n):n;if(tn===nn){try{t=(new N).parseFromString(s,un)}catch(e){}}if(!t||!t.documentElement){t=ie.createDocument(tn,"template",null);try{t.documentElement.innerHTML=on?ae:s}catch(e){}}const a=t.body||t.documentElement;if(n&&r){a.insertBefore(o.createTextNode(r),a.childNodes[0]||null)}if(tn===nn){return ue.call(t,Me?"html":"body")[0]}return Me?t.documentElement:a};const Fn=function e(n){return le.call(n.ownerDocument||n,n,E.SHOW_ELEMENT|E.SHOW_COMMENT|E.SHOW_TEXT|E.SHOW_PROCESSING_INSTRUCTION|E.SHOW_CDATA_SECTION,null)};const An=function e(n){return n instanceof U&&(typeof n.nodeName!=="string"||typeof n.textContent!=="string"||typeof n.removeChild!=="function"||!(n.attributes instanceof P)||typeof n.removeAttribute!=="function"||typeof n.setAttribute!=="function"||typeof n.namespaceURI!=="string"||typeof n.insertBefore!=="function"||typeof n.hasChildNodes!=="function")};const Cn=function e(n){return typeof F==="function"&&n instanceof F};function En(e,n,o){u(e,(e=>{e.call(t,n,o,mn)}))}const Bn=function e(n){let o=null;En(de.beforeSanitizeElements,n,null);if(An(n)){kn(n);return true}const r=pn(n.nodeName);En(de.uponSanitizeElement,n,{tagName:r,allowedTags:xe});if(qe&&n.hasChildNodes()&&!Cn(n.firstElementChild)&&x(/<[/\w!]/g,n.innerHTML)&&x(/<[/\w!]/g,n.textContent)){kn(n);return true}if(n.nodeType===V.progressingInstruction){kn(n);return true}if(qe&&n.nodeType===V.comment&&x(/<[/\w]/g,n.data)){kn(n);return true}if(!xe[r]||Ee[r]){if(!Ee[r]&&Sn(r)){if(Ce.tagNameCheck instanceof RegExp&&x(Ce.tagNameCheck,r)){return false}if(Ce.tagNameCheck instanceof Function&&Ce.tagNameCheck(r)){return false}}if(He&&!We[r]){const e=re(n)||n.parentNode;const t=oe(n)||n.childNodes;if(t&&e){const o=t.length;for(let r=o-1;r>=0;--r){const o=W(t[r],true);o.__removalCount=(n.__removalCount||0)+1;e.insertBefore(o,J(n))}}}kn(n);return true}if(n instanceof A&&!vn(n)){kn(n);return true}if((r==="noscript"||r==="noembed"||r==="noframes")&&x(/<\/no(script|embed|frames)/i,n.innerHTML)){kn(n);return true}if(Te&&n.nodeType===V.text){o=n.textContent;u([pe,me,fe],(e=>{o=g(o,e," ")}));if(n.textContent!==o){p(t.removed,{element:n.cloneNode()});n.textContent=o}}En(de.afterSanitizeElements,n,null);return false};const zn=function e(n,t,r){if(Pe&&(t==="id"||t==="name")&&(r in o||r in fn)){return false}if(Se&&!Be[t]&&x(we,t));else if(ze&&x(be,t));else if(!Fe[t]||Be[t]){if(Sn(n)&&(Ce.tagNameCheck instanceof RegExp&&x(Ce.tagNameCheck,n)||Ce.tagNameCheck instanceof Function&&Ce.tagNameCheck(n))&&(Ce.attributeNameCheck instanceof RegExp&&x(Ce.attributeNameCheck,t)||Ce.attributeNameCheck instanceof Function&&Ce.attributeNameCheck(t))||t==="is"&&Ce.allowCustomizedBuiltInElements&&(Ce.tagNameCheck instanceof RegExp&&x(Ce.tagNameCheck,r)||Ce.tagNameCheck instanceof Function&&Ce.tagNameCheck(r)));else{return false}}else if(Ke[t]);else if(x(ke,g(r,De,"")));else if((t==="src"||t==="xlink:href"||t==="href")&&n!=="script"&&D(r,"data:")===0&&Ge[n]);else if(_e&&!x(ge,g(r,De,"")));else if(r){return false}else;return true};const Sn=function e(n){return n!=="annotation-xml"&&b(n,ve)};const _n=function e(n){En(de.beforeSanitizeAttributes,n,null);const{attributes:o}=n;if(!o||An(n)){return}const r={attrName:"",attrValue:"",keepAttr:true,allowedAttributes:Fe,forceKeepAttr:undefined};let s=o.length;while(s--){const e=o[s];const{name:a,namespaceURI:i,value:l}=e;const c=pn(a);const h=l;let p=a==="value"?h:v(h);r.attrName=c;r.attrValue=p;r.keepAttr=true;r.forceKeepAttr=undefined;En(de.uponSanitizeAttribute,n,r);p=r.attrValue;if(Ue&&(c==="id"||c==="name")){xn(a,n);p=Ne+p}if(qe&&x(/((--!?|])>)|<\/(style|title)/i,p)){xn(a,n);continue}if(r.forceKeepAttr){continue}if(!r.keepAttr){xn(a,n);continue}if(!$e&&x(/\/>/i,p)){xn(a,n);continue}if(Te){u([pe,me,fe],(e=>{p=g(p,e," ")}))}const m=pn(n.nodeName);if(!zn(m,c,p)){xn(a,n);continue}if(se&&typeof H==="object"&&typeof H.getAttributeType==="function"){if(i);else{switch(H.getAttributeType(m,c)){case"TrustedHTML":{p=se.createHTML(p);break}case"TrustedScriptURL":{p=se.createScriptURL(p);break}}}}if(p!==h){try{if(i){n.setAttributeNS(i,a,p)}else{n.setAttribute(a,p)}if(An(n)){kn(n)}else{d(t.removed)}}catch(e){xn(a,n)}}}En(de.afterSanitizeAttributes,n,null)};const $n=function e(n){let t=null;const o=Fn(n);En(de.beforeSanitizeShadowDOM,n,null);while(t=o.nextNode()){En(de.uponSanitizeShadowNode,t,null);Bn(t);_n(t);if(t.content instanceof l){e(t.content)}}En(de.afterSanitizeShadowDOM,n,null)};t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};let o=null;let s=null;let a=null;let i=null;on=!e;if(on){e="\x3c!--\x3e"}if(typeof e!=="string"&&!Cn(e)){if(typeof e.toString==="function"){e=e.toString();if(typeof e!=="string"){throw y("dirty is not a string, aborting")}}else{throw y("toString is not a function")}}if(!t.isSupported){return e}if(!Re){bn(n)}t.removed=[];if(typeof e==="string"){Xe=false}if(Xe){if(e.nodeName){const n=pn(e.nodeName);if(!xe[n]||Ee[n]){throw y("root node is forbidden and cannot be sanitized in-place")}}}else if(e instanceof F){o=yn("\x3c!----\x3e");s=o.ownerDocument.importNode(e,true);if(s.nodeType===V.element&&s.nodeName==="BODY"){o=s}else if(s.nodeName==="HTML"){o=s}else{o.appendChild(s)}}else{if(!je&&!Te&&!Me&&e.indexOf("<")===-1){return se&&Le?se.createHTML(e):e}o=yn(e);if(!o){return je?null:Le?ae:""}}if(o&&Ie){kn(o.firstChild)}const c=Fn(Xe?e:o);while(a=c.nextNode()){Bn(a);_n(a);if(a.content instanceof l){$n(a.content)}}if(Xe){return e}if(je){if(Oe){i=ce.call(o.ownerDocument);while(o.firstChild){i.appendChild(o.firstChild)}}else{i=o}if(Fe.shadowroot||Fe.shadowrootmode){i=he.call(r,i,true)}return i}let h=Me?o.outerHTML:o.innerHTML;if(Me&&xe["!doctype"]&&o.ownerDocument&&o.ownerDocument.doctype&&o.ownerDocument.doctype.name&&x(G,o.ownerDocument.doctype.name)){h="<!DOCTYPE "+o.ownerDocument.doctype.name+">\n"+h}if(Te){u([pe,me,fe],(e=>{h=g(h,e," ")}))}return se&&Le?se.createHTML(h):h};t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};bn(e);Re=true};t.clearConfig=function(){mn=null;Re=false};t.isValidAttribute=function(e,n,t){if(!mn){bn({})}const o=pn(e);const r=pn(n);return zn(o,r,t)};t.addHook=function(e,n){if(typeof n!=="function"){return}p(de[e],n)};t.removeHook=function(e,n){if(n!==undefined){const t=h(de[e],n);return t===-1?undefined:m(de[e],t,1)[0]}return d(de[e])};t.removeHooks=function(e){de[e]=[]};t.removeAllHooks=function(){de=ne()};return t}var oe=te();return oe}))})(m);const f=m.exports;p.exports.marked.setOptions({breaks:true,gfm:true,smartypants:true});function w(e){if(typeof window==="undefined"){return e}try{const n=document.createElement("div");n.innerHTML=e;const t=n.querySelectorAll("a[href]");t.forEach((e=>{const n=e.getAttribute("href");if(n&&(n.startsWith("http://")||n.startsWith("https://"))){e.setAttribute("target","_blank");e.setAttribute("rel","noopener noreferrer")}}));return n.innerHTML}catch(n){console.error("Error post-processing markdown HTML:",n);return e}}function b(e){if(!e||typeof e!=="string"){return""}try{const n=p.exports.marked.parse(e);const t=f.sanitize(n,{ALLOWED_TAGS:["p","br","strong","b","em","i","u","code","pre","ul","ol","li","h1","h2","h3","h4","h5","h6","blockquote","a","img","hr","table","thead","tbody","tr","td","th","del","ins","sub","sup"],ALLOWED_ATTR:["href","target","rel","class","src","alt","title","width","height","align","colspan","rowspan"],ALLOWED_URI_REGEXP:/^(?:(?:https?):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,ADD_ATTR:["target"],FORBID_TAGS:["script","style","form","input","button"],FORBID_ATTR:["onclick","onload","onerror","onmouseover"]});return w(t)}catch(n){console.error("Error rendering markdown sync:",n);return f.sanitize(e)}}var g={exports:{}};
3
- /*! js-cookie v3.0.5 | MIT */(function(e,n){(function(n,t){e.exports=t()})(d,(function(){function e(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t){e[o]=t[o]}}return e}var n={read:function(e){if(e[0]==='"'){e=e.slice(1,-1)}return e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function t(n,o){function r(t,r,s){if(typeof document==="undefined"){return}s=e({},o,s);if(typeof s.expires==="number"){s.expires=new Date(Date.now()+s.expires*864e5)}if(s.expires){s.expires=s.expires.toUTCString()}t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var a="";for(var i in s){if(!s[i]){continue}a+="; "+i;if(s[i]===true){continue}a+="="+s[i].split(";")[0]}return document.cookie=t+"="+n.write(r,t)+a}function s(e){if(typeof document==="undefined"||arguments.length&&!e){return}var t=document.cookie?document.cookie.split("; "):[];var o={};for(var r=0;r<t.length;r++){var s=t[r].split("=");var a=s.slice(1).join("=");try{var i=decodeURIComponent(s[0]);o[i]=n.read(a,i);if(e===i){break}}catch(e){}}return e?o[e]:o}return Object.create({set:r,get:s,remove:function(n,t){r(n,"",e({},t,{expires:-1}))},withAttributes:function(n){return t(this.converter,e({},this.attributes,n))},withConverter:function(n){return t(e({},this.converter,n),this.attributes)}},{attributes:{value:Object.freeze(o)},converter:{value:Object.freeze(n)}})}var o=t(n,{path:"/"});return o}))})(g);const D=g.exports;function v(e){if(!k(e)){return undefined}return D.get("csrftoken")}function k(e){const n=window.location.hostname;const t=x(e);if(!t){return false}return n===t}function x(e){try{const n=new URL(e);return n.hostname}catch(e){return null}}const y=(e,n,t)=>{e=e.trim();if(e.includes("%")){const t=F(e);if(!isNaN(t)){return n*t}}else if(e.includes("px")){const n=parseFloat(e);if(!isNaN(n)){return n}}return t};const F=e=>{const n=parseFloat(e);if(isNaN(n)){return NaN}return n/100};const A='*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: \'\';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user\'s configured `sans` font-family by default.\n5. Use the user\'s configured `sans` font-feature-settings by default.\n6. Use the user\'s configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user\'s configured `mono` font-family by default.\n2. Use the user\'s configured `mono` font-feature-settings by default.\n3. Use the user\'s configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type=\'button\']),\ninput:where([type=\'reset\']),\ninput:where([type=\'submit\']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type=\'search\'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user\'s configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role="button"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don\'t get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden]:where(:not([hidden="until-found"])) {\n display: none;\n}\n#ocs-chat-window {\n z-index: var(--chat-z-index);\n font-size: var(--chat-window-font-size);\n }\n.starter-question {\n border-radius: 0.5rem;\n text-align: left;\n transition-duration: 200ms;\n padding: 0.75em;\n background-color: var(--starter-question-bg-color);\n border: 1px solid var(--starter-question-border-color);\n color: var(--starter-question-text-color);\n}\n.starter-question:hover {\n background-color: var(--starter-question-bg-hover-color);\n border-color: var(--starter-question-border-hover-color);\n }\n.chat-btn-text,\n .chat-btn-icon {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-radius: 0.5rem;\n border-width: 0px;\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n transition-property: all;\n transition-duration: 200ms;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.chat-btn-text:hover,\n .chat-btn-icon:hover {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.chat-btn-text,\n .chat-btn-icon {\n background-color: var(--button-background-color, white);\n border: 1px solid var(--button-border-color);\n z-index: var(--chat-z-index, 50);\n font-size: var(--button-font-size);\n padding: 0.5em;\n }\n.chat-btn-text:hover, .chat-btn-icon:hover {\n color: var(--button-text-color-hover, #1d4ed8);\n border: 1px solid var(--button-border-color-hover);\n }\n/* Button with text and icon */\n.chat-btn-text {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--button-text-color, #111827);\n}\n.chat-btn-text span {\n white-space: nowrap;\n font-weight: 500;\n}\n.chat-btn-text img {\n flex-shrink: 0;\n -o-object-fit: contain;\n object-fit: contain;\n width: var(--button-icon-size);\n height: var(--button-icon-size);\n}\n/* Icon-only button */\n.chat-btn-icon {\n }\n.chat-btn-icon img {\n -o-object-fit: contain;\n object-fit: contain;\n width: var(--button-icon-size);\n height: var(--button-icon-size);\n}\n.chat-btn-text.round,\n .chat-btn-icon.round {\n border-radius: 9999px;\n}\n/* Error message styling */\n.error-message {\n padding: 0.5em;\n color: var(--error-text-color);\n }\n/* Chat window positioning classes */\n.chat-window-fullscreen {\n position: fixed;\n inset: 0px;\n z-index: 9999;\n display: flex;\n height: 100%;\n max-height: 100%;\n width: 100%;\n flex-direction: column;\n overflow: hidden;\n border-radius: 0px;\n border-width: 0px;\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n background-color: var(--chat-window-bg-color);\n max-width: var(--chat-window-fullscreen-width);\n}\n.chat-window-normal {\n position: fixed;\n display: flex;\n height: 100vh;\n min-height: 300px;\n width: 100vw;\n min-width: 300px;\n max-width: 1024px;\n flex-direction: column;\n overflow: hidden;\n border-radius: 0.5rem;\n}\n@media (min-width: 640px) {\n\n .chat-window-normal {\n height: var(--chat-window-height);\n width: var(--chat-window-width);\n }\n}\n.chat-window-normal {\n background-color: var(--chat-window-bg-color);\n border: 1px solid var(--chat-window-border-color);\n }\n.chat-window-dragging {\n cursor: grabbing;\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.chat-window-normal:not(.chat-window-dragging) {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n}\n/* Header/drag bar classes */\n.chat-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n padding: 0.5em;\n background-color: var(--header-bg-color);\n border-bottom: 1px solid var(--header-border-color);\n font-size: var(--header-font-size);\n}\n.header-text {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--header-text-font-size);\n color: var(--header-text-color);\n}\n.chat-header:hover,\n .chat-header:active {\n background-color: var(--header-bg-hover-color);\n }\n.chat-header-draggable {\n cursor: grab;\n}\n.chat-header-dragging {\n cursor: grabbing;\n}\n.drag-indicator {\n display: none;\n}\n@media (min-width: 640px) {\n\n .drag-indicator {\n display: flex;\n }\n}\n.drag-dots {\n pointer-events: none;\n margin-left: 2px;\n display: flex;\n gap: 2px;\n}\n.header-buttons {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n/* Header button classes */\n.header-button {\n border-radius: 0.375rem;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n padding: 0.375em;\n color: var(--header-button-text-color);\n}\n.header-button svg {\n width: var(--header-button-icon-size);\n height: var(--header-button-icon-size);\n }\n.header-button:hover {\n background-color: var(--header-button-bg-hover-color);\n }\n.fullscreen-button {\n display: none;\n}\n@media (min-width: 640px) {\n\n .fullscreen-button {\n display: block;\n }\n}\n/* Chat content area */\n.chat-content {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n overflow: hidden;\n}\n/* Loading state */\n.loading-container {\n display: flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n}\n.loading-text {\n margin-left: 2px;\n color: var(--loading-text-color);\n }\n/* Messages container */\n.messages-container {\n flex-grow: 1;\n}\n.messages-container > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.messages-container {\n overflow-y: auto;\n}\n.messages-container::-webkit-scrollbar {\n width: 0.375rem;\n}\n.messages-container::-webkit-scrollbar-track {\n border-radius: 0.25rem;\n background-color: var(--scrollbar-track-color);\n}\n.messages-container::-webkit-scrollbar-thumb {\n border-radius: 0.25rem;\n background-color: var(--scrollbar-thumb-color);\n}\n.messages-container::-webkit-scrollbar-thumb:hover {\n background-color: var(--scrollbar-thumb-hover-color);\n}\n.messages-container {\n padding: 1em;\n }\n/* Message bubbles */\n.message-row {\n display: flex;\n}\n.message-row-user {\n justify-content: flex-end;\n}\n.message-row-assistant {\n justify-content: flex-start;\n}\n.message-bubble {\n border-radius: 0.5rem;\n padding: 0.5em 1em;\n}\n.message-bubble-user {\n background-color: var(--message-user-bg-color);\n color: var(--message-user-text-color);\n }\n.message-bubble-assistant {\n background-color: var(--message-assistant-bg-color);\n color: var(--message-assistant-text-color);\n }\n.message-bubble-system {\n background-color: var(--message-system-bg-color);\n color: var(--message-system-text-color);\n }\n.message-timestamp {\n margin-top: 4px;\n opacity: 0.7;\n font-size: var(--chat-window-font-size-sm);\n}\n.message-attachments {\n margin-top: 8px;\n}\n.message-attachments > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n/* Welcome messages */\n.welcome-messages > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n/* Typing indicator */\n.typing-indicator {\n height: 0.375rem;\n width: 100%;\n overflow: hidden;\n}\n.typing-progress {\n height: 100%;\n width: 100%;\n transform-origin: 0% 50%;\n}\n@keyframes progress {\n\n 0% {\n transform: translateX(0) scaleX(0);\n }\n\n 10% {\n transform: translateX(0) scaleX(0.3);\n }\n\n 50% {\n transform: translateX(100%) scaleX(0.3);\n }\n\n 90% {\n transform: translateX(0) scaleX(0.3);\n }\n\n 100% {\n transform: translateX(0) scaleX(0);\n }\n}\n.typing-progress {\n animation: progress 3s infinite linear;\n border-radius: 0.5rem;\n background-color: var(--typing-progress-bg-color);\n}\n.typing-text {\n width: 100%;\n justify-content: center;\n opacity: 0.7;\n font-size: var(--chat-window-font-size-sm);\n}\n@keyframes dots {\n\n 0%, 20% {\n color: rgba(0,0,0,0);\n text-shadow: .25em 0 0 rgba(0,0,0,0), .5em 0 0 rgba(0,0,0,0);\n }\n\n 40% {\n color: black;\n text-shadow: .25em 0 0 rgba(0,0,0,0), .5em 0 0 rgba(0,0,0,0);\n }\n\n 60% {\n text-shadow: .25em 0 0 black, .5em 0 0 rgba(0,0,0,0);\n }\n\n 80%, 100% {\n text-shadow: .25em 0 0 black, .5em 0 0 black;\n }\n}\n.typing-dots {\n animation: dots 1s steps(5, end) infinite;\n}\n.typing-dots:after {\n content: \' .\';\n}\n/* Starter questions */\n.starter-questions > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.starter-questions {\n padding: 1em;\n }\n.starter-question-row {\n display: flex;\n justify-content: flex-end;\n}\n/* Input area */\n.input-area {\n padding: 1em 1em 0 1em;\n background-color: var(--input-bg-color);\n border-top: 1px solid var(--input-border-color);\n }\n.input-container {\n display: flex;\n gap: 8px;\n}\n.message-textarea {\n flex-grow: 1;\n resize: none;\n border-radius: 0.375rem;\n border-width: 1px;\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.message-textarea:focus {\n outline-color: #93c5fd;\n}\n.message-textarea {\n background-color: var(--input-bg-color);\n padding: 0.5em 0.75em;\n color: var(--input-text-color);\n border: 1px solid var(--input-border-color);\n }\n.message-textarea:focus {\n outline-color: var(--input-outline-focus-color);\n }\n.send-button {\n border-radius: 0.375rem;\n font-weight: 500;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n padding: 0.5em 1em;\n}\n.send-button-enabled {\n background-color: var(--send-button-bg-color);\n color: var(--send-button-text-color);\n }\n.send-button-enabled:hover {\n background-color: var(--send-button-bg-hover-color);\n }\n.send-button-disabled {\n cursor: not-allowed;\n background-color: var(--send-button-bg-disabled-color);\n color: var(--send-button-text-disabled-color);\n}\n/* Confirmation dialog */\n.confirmation-overlay {\n position: fixed;\n inset: 0px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--confirmation-overlay-bg-color);\n z-index: 9999;\n}\n.confirmation-dialog {\n margin-left: 1rem;\n margin-right: 1rem;\n width: 100%;\n max-width: 24rem;\n background-color: var(--confirmation-dialog-bg-color);\n border: 1px solid var(--confirmation-dialog-border-color);\n border-radius: 0.75em;\n box-shadow: 0 0.625em 1.5625em var(--confirmation-dialog-shadow-color);\n}\n.confirmation-content {\n padding: 1.5em;\n }\n.confirmation-title {\n margin-bottom: 0.5rem;\n font-weight: 600;\n color: var(--confirmation-title-color);\n font-size: var(--confirmation-title-font-size);\n}\n.confirmation-message {\n margin-bottom: 1rem;\n color: var(--confirmation-message-color);\n font-size: var(--confirmation-message-font-size);\n}\n.confirmation-buttons {\n display: flex;\n justify-content: flex-end;\n gap: 0.75em;\n}\n.confirmation-button {\n border-radius: 0.375rem;\n font-weight: 500;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n padding: 0.5em 1em;\n}\n.confirmation-button-cancel {\n background-color: var(--confirmation-button-cancel-bg-color);\n color: var(--confirmation-button-cancel-text-color);\n }\n.confirmation-button-cancel:hover {\n background-color: var(--confirmation-button-cancel-bg-hover-color);\n }\n.confirmation-button-confirm {\n background-color: var(--confirmation-button-confirm-bg-color);\n color: var(--confirmation-button-confirm-text-color);\n }\n.confirmation-button-confirm:hover {\n background-color: var(--confirmation-button-confirm-bg-hover-color);\n }\n.\\!visible {\n visibility: visible !important;\n}\n.visible {\n visibility: visible;\n}\n.static {\n position: static;\n}\n.relative {\n position: relative;\n}\n.flex {\n display: flex;\n}\n.table {\n display: table;\n}\n.hidden {\n display: none;\n}\n.w-full {\n width: 100%;\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.resize {\n resize: both;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.gap-\\[0\\.5em\\] {\n gap: 0.5em;\n}\n.space-y-\\[0\\.25em\\] > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25em * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25em * var(--tw-space-y-reverse));\n}\n.border {\n border-width: 1px;\n}\n.py-\\[2px\\] {\n padding-top: 2px;\n padding-bottom: 2px;\n}\n.text-\\[0\\.8em\\] {\n font-size: 0.8em;\n}\n.font-light {\n font-weight: 300;\n}\n.text-slate-500 {\n --tw-text-opacity: 1;\n color: rgb(100 116 139 / var(--tw-text-opacity, 1));\n}\n.underline {\n text-decoration-line: underline;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n:host {\n /**\n * @prop --chat-z-index: Z-index for chat widget (50)\n *\n * @prop --button-background-color: Button background color (#ffffff)\n * @prop --button-background-color-hover: Button background color on hover (#f3f4f6)\n * @prop --button-text-color: Button text color (#111827)\n * @prop --button-text-color-hover: Button text color on hover (#1d4ed8)\n * @prop --button-border-color: Button border color (#6b7280)\n * @prop --button-border-color-hover: Button border color on hover (#374151)\n * @prop --button-font-size: Button text font size (0.875em)\n * @prop --button-icon-size: Button icon size (1.5em)\n *\n * @prop --chat-window-height: Chat window height in pixels or percent (60%)\n * @prop --chat-window-width: Chat window width in pixels or percent (25%)\n * @prop --chat-window-fullscreen-width: Chat window fullscreen width in pixels or percent (80%)\n * @prop --chat-window-bg-color: Chat window background color (#ffffff)\n * @prop --chat-window-border-color: Chat window border color (#d1d5db)\n * @prop --chat-window-shadow-color: Chat window shadow color (rgba(0, 0, 0, 0.1))\n * @prop --chat-window-font-size: Default font size for text in the chat window (0.875em)\n * @prop --chat-window-font-size-sm: Font size for small text in the chat window (0.75em)\n *\n * @prop --header-bg-color: Header background color (transparent)\n * @prop --header-bg-hover-color: Header background color on hover (#f9fafb)\n * @prop --header-border-color: Header border color (#f3f4f6)\n * @prop --header-button-text-color: Header button text color (#6b7280)\n * @prop --header-button-bg-hover-color: Header button background on hover (#f3f4f6)\n * @prop --header-font-size: Header font size (1em)\n * @prop --header-button-icon-size: Icon size for buttons in the header (1.5em)\n * @prop --header-text-font-size: Font size for the text in the header (1em)\n * @prop --header-text-color: Color for the text in the header (#525762)\n *\n * @prop --starter-question-bg-color: Starter question background color (transparent)\n * @prop --starter-question-bg-hover-color: Starter question background on hover (#eff6ff)\n * @prop --starter-question-text-color: Starter question text color (#3b82f6)\n * @prop --starter-question-border-color: Starter question border color (#3b82f6)\n * @prop --starter-question-border-hover-color: Starter question border on hover (#2563eb)\n *\n * @prop --message-user-bg-color: User message background color (#e4edfb)\n * @prop --message-user-text-color: User message text color (#1f2937)\n * @prop --message-user-link-color: User message link color (#155dfc)\n\n * @prop --message-assistant-bg-color: Assistant message background color (#eae7e8)\n * @prop --message-assistant-text-color: Assistant message text color (--message-user-text-color)\n * @prop --message-assistant-link-color: Assistant message link color (--message-user-link-color)\n\n * @prop --message-system-bg-color: System message background color (#fbe4f8)\n * @prop --message-system-text-color: System message text color (--message-user-text-color)\n * @prop --message-system-link-color: System message link color (--message-user-link-color)\n\n * @prop --message-timestamp-color: User message timestamp color (rgba(255, 255, 255, 0.7))\n * @prop --message-timestamp-assistant-color: Assistant message timestamp color (rgba(75, 85, 99, 0.7))\n *\n * @prop --input-bg-color: Input area background color (transparent)\n * @prop --input-border-color: Input field border color (#d1d5db)\n * @prop --input-text-color: Input text color (#111827)\n * @prop --input-placeholder-color: Input placeholder text color (#6b7280)\n * @prop --input-outline-focus-color: Input field focus ring color (#3b82f6)\n *\n * @prop --send-button-bg-color: Send button background color (#3b82f6)\n * @prop --send-button-bg-hover-color: Send button background on hover (#2563eb)\n * @prop --send-button-text-color: Send button text color (#ffffff)\n * @prop --send-button-bg-disabled-color: Send button background when disabled (#d1d5db)\n * @prop --send-button-text-disabled-color: Send button text when disabled (#6b7280)\n *\n * @prop --loading-text-color: Loading text color (#6b7280)\n * @prop --loading-spinner-track-color: Loading spinner track color (#e5e7eb)\n * @prop --loading-spinner-fill-color: Loading spinner fill color (#3b82f6)\n * @prop --loading-spinner-size: Loading spinner size (1.25em)\n *\n * @prop --typing-progress-bg-color: Typing progress bar background color (#ade3ff)\n *\n * @prop --scrollbar-track-color: Scrollbar track color (#f3f4f6)\n * @prop --scrollbar-thumb-color: Scrollbar thumb color (#d1d5db)\n * @prop --scrollbar-thumb-hover-color: Scrollbar thumb hover color (#9ca3af)\n *\n * @prop --error-text-color: Error text color (#ef4444)\n * @prop --success-text-color: Success text color (#10b981)\n *\n * @prop --code-bg-user-color: Code background in user messages (--message-user-bg-color + 20% white)\n * @prop --code-text-user-color: Code text color in user messages (--message-user-text-color)\n * @prop --code-border-user-color: Code border in user messages (--message-user-bg-color + 20% black)\n * @prop --code-bg-assistant-color: Code background in assistant messages (--message-assistant-bg-color + 50% white)\n * @prop --code-text-assistant-color: Code text color in assistant messages (--message-assistant-text-color)\n * @prop --code-border-assistant-color: Code border in assistant messages (--message-assistant-bg-color + 10% black)\n *\n * @prop --confirmation-overlay-bg-color: Confirmation dialog overlay background color (rgba(0, 0, 0, 0.5))\n * @prop --confirmation-dialog-bg-color: Confirmation dialog background color (uses --chat-window-bg-color)\n * @prop --confirmation-dialog-border-color: Confirmation dialog border color (uses --chat-window-border-color)\n * @prop --confirmation-dialog-shadow-color: Confirmation dialog shadow color (uses --chat-window-shadow-color)\n * @prop --confirmation-title-color: Confirmation dialog title text color (uses #111827)\n * @prop --confirmation-title-font-size: Confirmation dialog title font size (1.125em)\n * @prop --confirmation-message-color: Confirmation dialog message text color (uses --loading-text-color)\n * @prop --confirmation-message-font-size: Confirmation dialog message font size (uses 1em)\n * @prop --confirmation-button-cancel-bg-color: Cancel button background color (uses --button-background-color-hover)\n * @prop --confirmation-button-cancel-bg-hover-color: Cancel button background on hover (uses #e5e7eb)\n * @prop --confirmation-button-cancel-text-color: Cancel button text color (uses --header-button-text-color)\n * @prop --confirmation-button-confirm-bg-color: Confirm button background color (uses --error-text-color)\n * @prop --confirmation-button-confirm-bg-hover-color: Confirm button background on hover (uses --error-text-color)\n * @prop --confirmation-button-confirm-text-color: Confirm button text color (uses --send-button-text-color)\n * @prop --file-attachment-button-bg-color: Attach file button background color (transparent)\n * @prop --file-attachment-button-bg-hover-color: Attach file button background hover color (--header-button-bg-hover-color)\n * @prop --file-attachment-button-text-color: Attach file button text color (--header-button-text-color)\n * @prop --file-attachment-button-text-disabled-color: Attach file button disabled text color (--send-button-text-disabled-color)\n *\n * @prop --selected-files-bg-color: Selected files container background color (--chat-window-bg-color)\n * @prop --selected-files-border-color: Selected files container border color (--header-border-color)\n *\n * @prop --selected-file-bg-color: Selected file item background color (--message-system-bg-color)\n * @prop --selected-file-font-size: Selected file item font size (--chat-window-font-size-sm)\n * @prop --selected-file-name-color: Selected file name color (--message-assistant-text-color)\n * @prop --selected-file-size-color: Selected file size display color (--input-placeholder-color)\n * @prop --selected-file-icon-size: Selected file item icon size (1.25em)\n * @prop --selected-file-remove-icon-color: Selected file remove icon color (--error-text-color)\n * @prop --selected-file-remove-icon-hover-color: Selected file remove icon hover (#dc2626)\n *\n * @prop --message-attachment-icon-size: Message attachment icon size (1em)\n */\n /* Global variables */\n --chat-z-index: 50;\n\n /* Button variables */\n --button-background-color: #ffffff;\n --button-background-color-hover: #f3f4f6;\n --button-text-color: #111827;\n --button-text-color-hover: #1d4ed8;\n --button-border-color: #d1d5db;\n --button-border-color-hover: #6b7280;\n --button-font-size: 1em; /* text-sm */\n --button-icon-size: 1.5em;\n\n /* Chat window variables */\n --chat-window-height: 60%;\n --chat-window-width: 25%;\n --chat-window-fullscreen-width: 80%;\n --chat-window-bg-color: #ffffff;\n --chat-window-border-color: #d1d5db;\n --chat-window-shadow-color: rgba(0, 0, 0, 0.1);\n --chat-window-font-size: 0.875em; /* text-sm */\n --chat-window-font-size-sm: 0.75em; /* text-xs */\n\n /* Header variables */\n --header-bg-color: transparent;\n --header-bg-hover-color: #f9fafb;\n --header-border-color: #f3f4f6;\n --header-button-text-color: #6b7280;\n --header-button-bg-hover-color: #f3f4f6;\n --header-font-size: 1em;\n --header-text-font-size: 1em;\n --header-text-color: #525762;\n --header-button-icon-size: 1.5em;\n\n /* Starter question variables */\n --starter-question-bg-color: transparent;\n --starter-question-bg-hover-color: #eff6ff;\n --starter-question-text-color: #3b82f6;\n --starter-question-border-color: #3b82f6;\n --starter-question-border-hover-color: #2563eb;\n\n /* Message bubble variables */\n --message-user-bg-color: #e4edfb;\n --message-user-text-color: #1f2937;\n --message-user-link-color: #155dfc;\n\n --message-assistant-bg-color: #eae7e8;\n --message-assistant-text-color: var(--message-user-text-color);\n --message-assistant-link-color: var(--message-user-link-color);\n\n --message-system-bg-color: #fbe4f8;\n --message-system-text-color: var(--message-user-text-color);\n --message-system-link-color: var(--message-user-link-color);\n\n --message-timestamp-color: rgba(255, 255, 255, 0.7);\n --message-timestamp-assistant-color: rgba(75, 85, 99, 0.7);\n\n /* Input area variables */\n --input-bg-color: transparent;\n --input-border-color: #d1d5db;\n --input-text-color: #111827;\n --input-placeholder-color: #6b7280;\n --input-outline-focus-color: #3b82f6;\n\n /* Send button variables */\n --send-button-bg-color: #3b82f6;\n --send-button-bg-hover-color: #2563eb;\n --send-button-text-color: #ffffff;\n --send-button-bg-disabled-color: #d1d5db;\n --send-button-text-disabled-color: #6b7280;\n\n /* Loading variables */\n --loading-text-color: #6b7280;\n --loading-spinner-track-color: #e5e7eb;\n --loading-spinner-fill-color: #3b82f6;\n --loading-spinner-size: 1.25em;\n\n /* Typing indicator variables */\n --typing-progress-bg-color: #ade3ff;\n\n /* Scrollbar variables */\n --scrollbar-track-color: #f3f4f6;\n --scrollbar-thumb-color: #d1d5db;\n --scrollbar-thumb-hover-color: #9ca3af;\n\n /* Error variables */\n --error-text-color: #ef4444;\n --success-text-color: #10b981; /* Complementary green to existing blue palette */;\n\n /* Markdown code variables */\n --code-bg-user-color: color-mix(in srgb, var(--message-user-bg-color) 80%, white 20%);\n --code-text-user-color: var(--message-user-text-color);\n --code-border-user-color: color-mix(in srgb, var(--message-user-bg-color) 90%, black 10%);\n --code-bg-assistant-color: color-mix(in srgb, var(--message-assistant-bg-color) 50%, white 50%);\n --code-text-assistant-color: var(--message-assistant-text-color);\n --code-border-assistant-color: color-mix(in srgb, var(--message-assistant-bg-color) 90%, black 10%);;\n\n --confirmation-overlay-bg-color: rgba(0, 0, 0, 0.5);\n --confirmation-dialog-bg-color: var(--chat-window-bg-color);\n --confirmation-dialog-border-color: var(--chat-window-border-color);\n --confirmation-dialog-shadow-color: var(--chat-window-shadow-color);\n --confirmation-title-color: #111827;\n --confirmation-title-font-size: 1.125em;\n --confirmation-message-color: var(--loading-text-color);\n --confirmation-message-font-size: 1em;\n --confirmation-button-cancel-bg-color: var(--button-background-color-hover);\n --confirmation-button-cancel-bg-hover-color: #e5e7eb;\n --confirmation-button-cancel-text-color: var(--header-button-text-color);\n --confirmation-button-confirm-bg-color: var(--error-text-color);\n --confirmation-button-confirm-bg-hover-color: var(--error-text-color);\n --confirmation-button-confirm-text-color: var(--send-button-text-color);\n\n /* File upload variables */\n --file-attachment-button-bg-color: transparent;\n --file-attachment-button-bg-hover-color: var(--header-button-bg-hover-color); /* #f3f4f6 */\n --file-attachment-button-text-color: var(--header-button-text-color); /* #6b7280 */\n --file-attachment-button-text-disabled-color: var(--send-button-text-disabled-color); /* #6b7280 */\n\n /* Selected files variables */\n --selected-files-bg-color: var(--chat-window-bg-color); /* transparent */\n --selected-files-border-color: var(--header-border-color); /* #f3f4f6 */\n\n /* Selected file item variables */\n --selected-file-bg-color: var(--message-system-bg-color); /* #f3f4f6 */\n\n /* Selected file text variables */\n --selected-file-font-size: var(--chat-window-font-size-sm);\n --selected-file-name-color: var(--message-assistant-text-color); /* #1f2937 */\n --selected-file-size-color: var(--input-placeholder-color); /* #6b7280 */\n\n /* Selected file icon variables */\n --selected-file-icon-size: 1.25em;\n --selected-file-remove-icon-color: var(--error-text-color); /* #ef4444 */\n --selected-file-remove-icon-hover-color: #dc2626; /* Darker red for hover */\n\n /* Message attachment variables */\n --message-attachment-icon-size: 1em;\n\n display: block;\n position: fixed;\n right: 30px;\n bottom: 30px;\n}\ntextarea {\n max-height: 8rem;\n min-height: 2.5rem;\n resize: none;\n overflow-y: auto;\n}\ntextarea::-webkit-scrollbar {\n width: 0.375rem;\n}\ntextarea::-webkit-scrollbar-track {\n border-radius: 0.25rem;\n background-color: var(--scrollbar-track-color);\n}\ntextarea::-webkit-scrollbar-thumb {\n border-radius: 0.25rem;\n background-color: var(--scrollbar-thumb-color);\n}\ntextarea::-webkit-scrollbar-thumb:hover {\n background-color: var(--scrollbar-thumb-hover-color);\n}\n@keyframes spin {\n\n to {\n transform: rotate(360deg);\n }\n}\n.loading-spinner {\n animation: spin 1s linear infinite;\n border-radius: 9999px;\n border-width: 2px;\n border-color: var(--loading-spinner-track-color);\n border-top-color: var(--loading-spinner-fill-color);\n width: var(--loading-spinner-size);\n height: var(--loading-spinner-size);\n}\n.overflow-y-auto::-webkit-scrollbar {\n width: 0.375rem;\n}\n.overflow-y-auto::-webkit-scrollbar-track {\n border-radius: 0.25rem;\n background-color: var(--scrollbar-track-color);\n}\n.overflow-y-auto::-webkit-scrollbar-thumb {\n border-radius: 0.25rem;\n background-color: var(--scrollbar-thumb-color);\n}\n.overflow-y-auto::-webkit-scrollbar-thumb:hover {\n background-color: var(--scrollbar-thumb-hover-color);\n}\n/* Markdown content styling for chat messages */\n.chat-markdown {\n color: var(--tw-prose-body);\n max-width: 65ch;\n}\n.chat-markdown :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n}\n.chat-markdown :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-lead);\n font-size: 1.25em;\n line-height: 1.6;\n margin-top: 1.2em;\n margin-bottom: 1.2em;\n}\n.chat-markdown :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-links);\n text-decoration: underline;\n font-weight: 500;\n}\n.chat-markdown :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-bold);\n font-weight: 600;\n}\n.chat-markdown :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.chat-markdown :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.chat-markdown :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.chat-markdown :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: decimal;\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n padding-inline-start: 1.625em;\n}\n.chat-markdown :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: upper-alpha;\n}\n.chat-markdown :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: lower-alpha;\n}\n.chat-markdown :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: upper-alpha;\n}\n.chat-markdown :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: lower-alpha;\n}\n.chat-markdown :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: upper-roman;\n}\n.chat-markdown :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: lower-roman;\n}\n.chat-markdown :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: upper-roman;\n}\n.chat-markdown :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: lower-roman;\n}\n.chat-markdown :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: decimal;\n}\n.chat-markdown :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: disc;\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n padding-inline-start: 1.625em;\n}\n.chat-markdown :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {\n font-weight: 400;\n color: var(--tw-prose-counters);\n}\n.chat-markdown :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {\n color: var(--tw-prose-bullets);\n}\n.chat-markdown :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n margin-top: 1.25em;\n}\n.chat-markdown :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n border-color: var(--tw-prose-hr);\n border-top-width: 1px;\n margin-top: 3em;\n margin-bottom: 3em;\n}\n.chat-markdown :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 500;\n font-style: italic;\n color: var(--tw-prose-quotes);\n border-inline-start-width: 0.25rem;\n border-inline-start-color: var(--tw-prose-quote-borders);\n quotes: "\\201C""\\201D""\\2018""\\2019";\n margin-top: 1.6em;\n margin-bottom: 1.6em;\n padding-inline-start: 1em;\n}\n.chat-markdown :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {\n content: open-quote;\n}\n.chat-markdown :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {\n content: close-quote;\n}\n.chat-markdown :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 800;\n font-size: 2.25em;\n margin-top: 0;\n margin-bottom: 0.8888889em;\n line-height: 1.1111111;\n}\n.chat-markdown :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 900;\n color: inherit;\n}\n.chat-markdown :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 700;\n font-size: 1.5em;\n margin-top: 2em;\n margin-bottom: 1em;\n line-height: 1.3333333;\n}\n.chat-markdown :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 800;\n color: inherit;\n}\n.chat-markdown :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n font-size: 1.25em;\n margin-top: 1.6em;\n margin-bottom: 0.6em;\n line-height: 1.6;\n}\n.chat-markdown :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 700;\n color: inherit;\n}\n.chat-markdown :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n margin-top: 1.5em;\n margin-bottom: 0.5em;\n line-height: 1.5;\n}\n.chat-markdown :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 700;\n color: inherit;\n}\n.chat-markdown :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.chat-markdown :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n display: block;\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.chat-markdown :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.chat-markdown :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 500;\n font-family: inherit;\n color: var(--tw-prose-kbd);\n box-shadow: 0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%);\n font-size: 0.875em;\n border-radius: 0.3125rem;\n padding-top: 0.1875em;\n padding-inline-end: 0.375em;\n padding-bottom: 0.1875em;\n padding-inline-start: 0.375em;\n}\n.chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-code);\n font-weight: 600;\n font-size: 0.875em;\n}\n.chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {\n content: "`";\n}\n.chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {\n content: "`";\n}\n.chat-markdown :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.chat-markdown :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.chat-markdown :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n font-size: 0.875em;\n}\n.chat-markdown :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n font-size: 0.9em;\n}\n.chat-markdown :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.chat-markdown :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.chat-markdown :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.chat-markdown :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-pre-code);\n background-color: var(--tw-prose-pre-bg);\n overflow-x: auto;\n font-weight: 400;\n font-size: 0.875em;\n line-height: 1.7142857;\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n border-radius: 0.375rem;\n padding-top: 0.8571429em;\n padding-inline-end: 1.1428571em;\n padding-bottom: 0.8571429em;\n padding-inline-start: 1.1428571em;\n}\n.chat-markdown :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n background-color: transparent;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-weight: inherit;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\n.chat-markdown :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {\n content: none;\n}\n.chat-markdown :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {\n content: none;\n}\n.chat-markdown :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n width: 100%;\n table-layout: auto;\n margin-top: 2em;\n margin-bottom: 2em;\n font-size: 0.875em;\n line-height: 1.7142857;\n}\n.chat-markdown :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n border-bottom-width: 1px;\n border-bottom-color: var(--tw-prose-th-borders);\n}\n.chat-markdown :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n vertical-align: bottom;\n padding-inline-end: 0.5714286em;\n padding-bottom: 0.5714286em;\n padding-inline-start: 0.5714286em;\n}\n.chat-markdown :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n border-bottom-width: 1px;\n border-bottom-color: var(--tw-prose-td-borders);\n}\n.chat-markdown :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n border-bottom-width: 0;\n}\n.chat-markdown :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n vertical-align: baseline;\n}\n.chat-markdown :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n border-top-width: 1px;\n border-top-color: var(--tw-prose-th-borders);\n}\n.chat-markdown :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n vertical-align: top;\n}\n.chat-markdown :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n text-align: start;\n}\n.chat-markdown :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.chat-markdown :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-captions);\n font-size: 0.875em;\n line-height: 1.4285714;\n margin-top: 0.8571429em;\n}\n.chat-markdown {\n --tw-prose-body: #374151;\n --tw-prose-headings: #111827;\n --tw-prose-lead: #4b5563;\n --tw-prose-links: #111827;\n --tw-prose-bold: #111827;\n --tw-prose-counters: #6b7280;\n --tw-prose-bullets: #d1d5db;\n --tw-prose-hr: #e5e7eb;\n --tw-prose-quotes: #111827;\n --tw-prose-quote-borders: #e5e7eb;\n --tw-prose-captions: #6b7280;\n --tw-prose-kbd: #111827;\n --tw-prose-kbd-shadows: 17 24 39;\n --tw-prose-code: #111827;\n --tw-prose-pre-code: #e5e7eb;\n --tw-prose-pre-bg: #1f2937;\n --tw-prose-th-borders: #d1d5db;\n --tw-prose-td-borders: #e5e7eb;\n --tw-prose-invert-body: #d1d5db;\n --tw-prose-invert-headings: #fff;\n --tw-prose-invert-lead: #9ca3af;\n --tw-prose-invert-links: #fff;\n --tw-prose-invert-bold: #fff;\n --tw-prose-invert-counters: #9ca3af;\n --tw-prose-invert-bullets: #4b5563;\n --tw-prose-invert-hr: #374151;\n --tw-prose-invert-quotes: #f3f4f6;\n --tw-prose-invert-quote-borders: #374151;\n --tw-prose-invert-captions: #9ca3af;\n --tw-prose-invert-kbd: #fff;\n --tw-prose-invert-kbd-shadows: 255 255 255;\n --tw-prose-invert-code: #fff;\n --tw-prose-invert-pre-code: #d1d5db;\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\n --tw-prose-invert-th-borders: #4b5563;\n --tw-prose-invert-td-borders: #374151;\n font-size: 1rem;\n line-height: 1.75;\n}\n.chat-markdown :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.chat-markdown :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n.chat-markdown :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0.375em;\n}\n.chat-markdown :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0.375em;\n}\n.chat-markdown :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n}\n.chat-markdown :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.25em;\n}\n.chat-markdown :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 1.25em;\n}\n.chat-markdown :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.25em;\n}\n.chat-markdown :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 1.25em;\n}\n.chat-markdown :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n}\n.chat-markdown :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n}\n.chat-markdown :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.5em;\n padding-inline-start: 1.625em;\n}\n.chat-markdown :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.chat-markdown :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.chat-markdown :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.chat-markdown :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.chat-markdown :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0;\n}\n.chat-markdown :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-end: 0;\n}\n.chat-markdown :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-top: 0.5714286em;\n padding-inline-end: 0.5714286em;\n padding-bottom: 0.5714286em;\n padding-inline-start: 0.5714286em;\n}\n.chat-markdown :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0;\n}\n.chat-markdown :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-end: 0;\n}\n.chat-markdown :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.chat-markdown :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.chat-markdown :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 0;\n}\n.chat-markdown {\n font-size: 0.875rem;\n line-height: 1.7142857;\n}\n.chat-markdown :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n}\n.chat-markdown :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 1.2857143em;\n line-height: 1.5555556;\n margin-top: 0.8888889em;\n margin-bottom: 0.8888889em;\n}\n.chat-markdown :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.3333333em;\n margin-bottom: 1.3333333em;\n padding-inline-start: 1.1111111em;\n}\n.chat-markdown :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 2.1428571em;\n margin-top: 0;\n margin-bottom: 0.8em;\n line-height: 1.2;\n}\n.chat-markdown :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 1.4285714em;\n margin-top: 1.6em;\n margin-bottom: 0.8em;\n line-height: 1.4;\n}\n.chat-markdown :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 1.2857143em;\n margin-top: 1.5555556em;\n margin-bottom: 0.4444444em;\n line-height: 1.5555556;\n}\n.chat-markdown :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.4285714em;\n margin-bottom: 0.5714286em;\n line-height: 1.4285714;\n}\n.chat-markdown :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.chat-markdown :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.chat-markdown :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.chat-markdown :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.chat-markdown :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8571429em;\n border-radius: 0.3125rem;\n padding-top: 0.1428571em;\n padding-inline-end: 0.3571429em;\n padding-bottom: 0.1428571em;\n padding-inline-start: 0.3571429em;\n}\n.chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8571429em;\n}\n.chat-markdown :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.9em;\n}\n.chat-markdown :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8888889em;\n}\n.chat-markdown :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8571429em;\n line-height: 1.6666667;\n margin-top: 1.6666667em;\n margin-bottom: 1.6666667em;\n border-radius: 0.25rem;\n padding-top: 0.6666667em;\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.chat-markdown :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n padding-inline-start: 1.5714286em;\n}\n.chat-markdown :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n padding-inline-start: 1.5714286em;\n}\n.chat-markdown :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.2857143em;\n margin-bottom: 0.2857143em;\n}\n.chat-markdown :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0.4285714em;\n}\n.chat-markdown :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0.4285714em;\n}\n.chat-markdown :where(.prose-sm > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.5714286em;\n margin-bottom: 0.5714286em;\n}\n.chat-markdown :where(.prose-sm > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n}\n.chat-markdown :where(.prose-sm > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 1.1428571em;\n}\n.chat-markdown :where(.prose-sm > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n}\n.chat-markdown :where(.prose-sm > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 1.1428571em;\n}\n.chat-markdown :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.5714286em;\n margin-bottom: 0.5714286em;\n}\n.chat-markdown :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n}\n.chat-markdown :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n}\n.chat-markdown :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.2857143em;\n padding-inline-start: 1.5714286em;\n}\n.chat-markdown :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 2.8571429em;\n margin-bottom: 2.8571429em;\n}\n.chat-markdown :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.chat-markdown :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.chat-markdown :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.chat-markdown :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.chat-markdown :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8571429em;\n line-height: 1.5;\n}\n.chat-markdown :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.chat-markdown :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0;\n}\n.chat-markdown :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-end: 0;\n}\n.chat-markdown :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-top: 0.6666667em;\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.chat-markdown :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0;\n}\n.chat-markdown :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-end: 0;\n}\n.chat-markdown :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.chat-markdown :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.chat-markdown :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8571429em;\n line-height: 1.3333333;\n margin-top: 0.6666667em;\n}\n.chat-markdown :where(.prose-sm > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.chat-markdown :where(.prose-sm > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 0;\n}\n.chat-markdown {\n --tw-prose-body: #374151;\n --tw-prose-headings: #111827;\n --tw-prose-lead: #4b5563;\n --tw-prose-links: #111827;\n --tw-prose-bold: #111827;\n --tw-prose-counters: #6b7280;\n --tw-prose-bullets: #d1d5db;\n --tw-prose-hr: #e5e7eb;\n --tw-prose-quotes: #111827;\n --tw-prose-quote-borders: #e5e7eb;\n --tw-prose-captions: #6b7280;\n --tw-prose-kbd: #111827;\n --tw-prose-kbd-shadows: 17 24 39;\n --tw-prose-code: #111827;\n --tw-prose-pre-code: #e5e7eb;\n --tw-prose-pre-bg: #1f2937;\n --tw-prose-th-borders: #d1d5db;\n --tw-prose-td-borders: #e5e7eb;\n --tw-prose-invert-body: #d1d5db;\n --tw-prose-invert-headings: #fff;\n --tw-prose-invert-lead: #9ca3af;\n --tw-prose-invert-links: #fff;\n --tw-prose-invert-bold: #fff;\n --tw-prose-invert-counters: #9ca3af;\n --tw-prose-invert-bullets: #4b5563;\n --tw-prose-invert-hr: #374151;\n --tw-prose-invert-quotes: #f3f4f6;\n --tw-prose-invert-quote-borders: #374151;\n --tw-prose-invert-captions: #9ca3af;\n --tw-prose-invert-kbd: #fff;\n --tw-prose-invert-kbd-shadows: 255 255 255;\n --tw-prose-invert-code: #fff;\n --tw-prose-invert-pre-code: #d1d5db;\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\n --tw-prose-invert-th-borders: #4b5563;\n --tw-prose-invert-td-borders: #374151;\n max-width: none;\n}\n.chat-markdown :is(:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *))) {\n text-decoration-line: none;\n}\n.chat-markdown :is(:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *))):hover {\n text-decoration-line: underline;\n}\n.chat-markdown {\n font-size: 1em;\n}\n/* override spacing */\n.chat-markdown > * {\n margin-top: 0.1em;\n margin-bottom: 0.1em;\n}\n.message-bubble-assistant .chat-markdown {\n color: var(--tw-prose-body);\n max-width: 65ch;\n}\n.message-bubble-assistant .chat-markdown :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n}\n.message-bubble-assistant .chat-markdown :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-lead);\n font-size: 1.25em;\n line-height: 1.6;\n margin-top: 1.2em;\n margin-bottom: 1.2em;\n}\n.message-bubble-assistant .chat-markdown :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-links);\n text-decoration: underline;\n font-weight: 500;\n}\n.message-bubble-assistant .chat-markdown :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-bold);\n font-weight: 600;\n}\n.message-bubble-assistant .chat-markdown :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: decimal;\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n padding-inline-start: 1.625em;\n}\n.message-bubble-assistant .chat-markdown :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: upper-alpha;\n}\n.message-bubble-assistant .chat-markdown :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: lower-alpha;\n}\n.message-bubble-assistant .chat-markdown :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: upper-alpha;\n}\n.message-bubble-assistant .chat-markdown :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: lower-alpha;\n}\n.message-bubble-assistant .chat-markdown :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: upper-roman;\n}\n.message-bubble-assistant .chat-markdown :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: lower-roman;\n}\n.message-bubble-assistant .chat-markdown :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: upper-roman;\n}\n.message-bubble-assistant .chat-markdown :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: lower-roman;\n}\n.message-bubble-assistant .chat-markdown :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: decimal;\n}\n.message-bubble-assistant .chat-markdown :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n list-style-type: disc;\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n padding-inline-start: 1.625em;\n}\n.message-bubble-assistant .chat-markdown :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {\n font-weight: 400;\n color: var(--tw-prose-counters);\n}\n.message-bubble-assistant .chat-markdown :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {\n color: var(--tw-prose-bullets);\n}\n.message-bubble-assistant .chat-markdown :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n margin-top: 1.25em;\n}\n.message-bubble-assistant .chat-markdown :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n border-color: var(--tw-prose-hr);\n border-top-width: 1px;\n margin-top: 3em;\n margin-bottom: 3em;\n}\n.message-bubble-assistant .chat-markdown :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 500;\n font-style: italic;\n color: var(--tw-prose-quotes);\n border-inline-start-width: 0.25rem;\n border-inline-start-color: var(--tw-prose-quote-borders);\n quotes: "\\201C""\\201D""\\2018""\\2019";\n margin-top: 1.6em;\n margin-bottom: 1.6em;\n padding-inline-start: 1em;\n}\n.message-bubble-assistant .chat-markdown :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {\n content: open-quote;\n}\n.message-bubble-assistant .chat-markdown :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {\n content: close-quote;\n}\n.message-bubble-assistant .chat-markdown :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 800;\n font-size: 2.25em;\n margin-top: 0;\n margin-bottom: 0.8888889em;\n line-height: 1.1111111;\n}\n.message-bubble-assistant .chat-markdown :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 900;\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 700;\n font-size: 1.5em;\n margin-top: 2em;\n margin-bottom: 1em;\n line-height: 1.3333333;\n}\n.message-bubble-assistant .chat-markdown :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 800;\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n font-size: 1.25em;\n margin-top: 1.6em;\n margin-bottom: 0.6em;\n line-height: 1.6;\n}\n.message-bubble-assistant .chat-markdown :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 700;\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n margin-top: 1.5em;\n margin-bottom: 0.5em;\n line-height: 1.5;\n}\n.message-bubble-assistant .chat-markdown :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 700;\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.message-bubble-assistant .chat-markdown :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n display: block;\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.message-bubble-assistant .chat-markdown :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.message-bubble-assistant .chat-markdown :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-weight: 500;\n font-family: inherit;\n color: var(--tw-prose-kbd);\n box-shadow: 0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%);\n font-size: 0.875em;\n border-radius: 0.3125rem;\n padding-top: 0.1875em;\n padding-inline-end: 0.375em;\n padding-bottom: 0.1875em;\n padding-inline-start: 0.375em;\n}\n.message-bubble-assistant .chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-code);\n font-weight: 600;\n font-size: 0.875em;\n}\n.message-bubble-assistant .chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {\n content: "`";\n}\n.message-bubble-assistant .chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {\n content: "`";\n}\n.message-bubble-assistant .chat-markdown :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n font-size: 0.875em;\n}\n.message-bubble-assistant .chat-markdown :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n font-size: 0.9em;\n}\n.message-bubble-assistant .chat-markdown :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-pre-code);\n background-color: var(--tw-prose-pre-bg);\n overflow-x: auto;\n font-weight: 400;\n font-size: 0.875em;\n line-height: 1.7142857;\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n border-radius: 0.375rem;\n padding-top: 0.8571429em;\n padding-inline-end: 1.1428571em;\n padding-bottom: 0.8571429em;\n padding-inline-start: 1.1428571em;\n}\n.message-bubble-assistant .chat-markdown :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n background-color: transparent;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-weight: inherit;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\n.message-bubble-assistant .chat-markdown :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {\n content: none;\n}\n.message-bubble-assistant .chat-markdown :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {\n content: none;\n}\n.message-bubble-assistant .chat-markdown :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n width: 100%;\n table-layout: auto;\n margin-top: 2em;\n margin-bottom: 2em;\n font-size: 0.875em;\n line-height: 1.7142857;\n}\n.message-bubble-assistant .chat-markdown :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n border-bottom-width: 1px;\n border-bottom-color: var(--tw-prose-th-borders);\n}\n.message-bubble-assistant .chat-markdown :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n vertical-align: bottom;\n padding-inline-end: 0.5714286em;\n padding-bottom: 0.5714286em;\n padding-inline-start: 0.5714286em;\n}\n.message-bubble-assistant .chat-markdown :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n border-bottom-width: 1px;\n border-bottom-color: var(--tw-prose-td-borders);\n}\n.message-bubble-assistant .chat-markdown :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n border-bottom-width: 0;\n}\n.message-bubble-assistant .chat-markdown :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n vertical-align: baseline;\n}\n.message-bubble-assistant .chat-markdown :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n border-top-width: 1px;\n border-top-color: var(--tw-prose-th-borders);\n}\n.message-bubble-assistant .chat-markdown :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n vertical-align: top;\n}\n.message-bubble-assistant .chat-markdown :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n text-align: start;\n}\n.message-bubble-assistant .chat-markdown :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.message-bubble-assistant .chat-markdown :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n color: var(--tw-prose-captions);\n font-size: 0.875em;\n line-height: 1.4285714;\n margin-top: 0.8571429em;\n}\n.message-bubble-assistant .chat-markdown {\n --tw-prose-body: #374151;\n --tw-prose-headings: #111827;\n --tw-prose-lead: #4b5563;\n --tw-prose-links: #111827;\n --tw-prose-bold: #111827;\n --tw-prose-counters: #6b7280;\n --tw-prose-bullets: #d1d5db;\n --tw-prose-hr: #e5e7eb;\n --tw-prose-quotes: #111827;\n --tw-prose-quote-borders: #e5e7eb;\n --tw-prose-captions: #6b7280;\n --tw-prose-kbd: #111827;\n --tw-prose-kbd-shadows: 17 24 39;\n --tw-prose-code: #111827;\n --tw-prose-pre-code: #e5e7eb;\n --tw-prose-pre-bg: #1f2937;\n --tw-prose-th-borders: #d1d5db;\n --tw-prose-td-borders: #e5e7eb;\n --tw-prose-invert-body: #d1d5db;\n --tw-prose-invert-headings: #fff;\n --tw-prose-invert-lead: #9ca3af;\n --tw-prose-invert-links: #fff;\n --tw-prose-invert-bold: #fff;\n --tw-prose-invert-counters: #9ca3af;\n --tw-prose-invert-bullets: #4b5563;\n --tw-prose-invert-hr: #374151;\n --tw-prose-invert-quotes: #f3f4f6;\n --tw-prose-invert-quote-borders: #374151;\n --tw-prose-invert-captions: #9ca3af;\n --tw-prose-invert-kbd: #fff;\n --tw-prose-invert-kbd-shadows: 255 255 255;\n --tw-prose-invert-code: #fff;\n --tw-prose-invert-pre-code: #d1d5db;\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\n --tw-prose-invert-th-borders: #4b5563;\n --tw-prose-invert-td-borders: #374151;\n font-size: 1rem;\n line-height: 1.75;\n}\n.message-bubble-assistant .chat-markdown :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.message-bubble-assistant .chat-markdown :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n.message-bubble-assistant .chat-markdown :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0.375em;\n}\n.message-bubble-assistant .chat-markdown :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0.375em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.25em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 1.25em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.25em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 1.25em;\n}\n.message-bubble-assistant .chat-markdown :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n}\n.message-bubble-assistant .chat-markdown :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n}\n.message-bubble-assistant .chat-markdown :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.5em;\n padding-inline-start: 1.625em;\n}\n.message-bubble-assistant .chat-markdown :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.message-bubble-assistant .chat-markdown :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.message-bubble-assistant .chat-markdown :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.message-bubble-assistant .chat-markdown :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.message-bubble-assistant .chat-markdown :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0;\n}\n.message-bubble-assistant .chat-markdown :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-end: 0;\n}\n.message-bubble-assistant .chat-markdown :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-top: 0.5714286em;\n padding-inline-end: 0.5714286em;\n padding-bottom: 0.5714286em;\n padding-inline-start: 0.5714286em;\n}\n.message-bubble-assistant .chat-markdown :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0;\n}\n.message-bubble-assistant .chat-markdown :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-end: 0;\n}\n.message-bubble-assistant .chat-markdown :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.message-bubble-assistant .chat-markdown :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 0;\n}\n.message-bubble-assistant .chat-markdown {\n font-size: 0.875rem;\n line-height: 1.7142857;\n}\n.message-bubble-assistant .chat-markdown :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n}\n.message-bubble-assistant .chat-markdown :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 1.2857143em;\n line-height: 1.5555556;\n margin-top: 0.8888889em;\n margin-bottom: 0.8888889em;\n}\n.message-bubble-assistant .chat-markdown :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.3333333em;\n margin-bottom: 1.3333333em;\n padding-inline-start: 1.1111111em;\n}\n.message-bubble-assistant .chat-markdown :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 2.1428571em;\n margin-top: 0;\n margin-bottom: 0.8em;\n line-height: 1.2;\n}\n.message-bubble-assistant .chat-markdown :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 1.4285714em;\n margin-top: 1.6em;\n margin-bottom: 0.8em;\n line-height: 1.4;\n}\n.message-bubble-assistant .chat-markdown :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 1.2857143em;\n margin-top: 1.5555556em;\n margin-bottom: 0.4444444em;\n line-height: 1.5555556;\n}\n.message-bubble-assistant .chat-markdown :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.4285714em;\n margin-bottom: 0.5714286em;\n line-height: 1.4285714;\n}\n.message-bubble-assistant .chat-markdown :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.message-bubble-assistant .chat-markdown :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.message-bubble-assistant .chat-markdown :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.message-bubble-assistant .chat-markdown :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.message-bubble-assistant .chat-markdown :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8571429em;\n border-radius: 0.3125rem;\n padding-top: 0.1428571em;\n padding-inline-end: 0.3571429em;\n padding-bottom: 0.1428571em;\n padding-inline-start: 0.3571429em;\n}\n.message-bubble-assistant .chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8571429em;\n}\n.message-bubble-assistant .chat-markdown :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.9em;\n}\n.message-bubble-assistant .chat-markdown :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8888889em;\n}\n.message-bubble-assistant .chat-markdown :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8571429em;\n line-height: 1.6666667;\n margin-top: 1.6666667em;\n margin-bottom: 1.6666667em;\n border-radius: 0.25rem;\n padding-top: 0.6666667em;\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.message-bubble-assistant .chat-markdown :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n padding-inline-start: 1.5714286em;\n}\n.message-bubble-assistant .chat-markdown :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n padding-inline-start: 1.5714286em;\n}\n.message-bubble-assistant .chat-markdown :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.2857143em;\n margin-bottom: 0.2857143em;\n}\n.message-bubble-assistant .chat-markdown :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0.4285714em;\n}\n.message-bubble-assistant .chat-markdown :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0.4285714em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose-sm > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.5714286em;\n margin-bottom: 0.5714286em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose-sm > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose-sm > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 1.1428571em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose-sm > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose-sm > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 1.1428571em;\n}\n.message-bubble-assistant .chat-markdown :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.5714286em;\n margin-bottom: 0.5714286em;\n}\n.message-bubble-assistant .chat-markdown :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n}\n.message-bubble-assistant .chat-markdown :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.1428571em;\n}\n.message-bubble-assistant .chat-markdown :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0.2857143em;\n padding-inline-start: 1.5714286em;\n}\n.message-bubble-assistant .chat-markdown :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 2.8571429em;\n margin-bottom: 2.8571429em;\n}\n.message-bubble-assistant .chat-markdown :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.message-bubble-assistant .chat-markdown :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.message-bubble-assistant .chat-markdown :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.message-bubble-assistant .chat-markdown :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.message-bubble-assistant .chat-markdown :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8571429em;\n line-height: 1.5;\n}\n.message-bubble-assistant .chat-markdown :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.message-bubble-assistant .chat-markdown :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0;\n}\n.message-bubble-assistant .chat-markdown :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-end: 0;\n}\n.message-bubble-assistant .chat-markdown :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-top: 0.6666667em;\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.message-bubble-assistant .chat-markdown :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-start: 0;\n}\n.message-bubble-assistant .chat-markdown :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n padding-inline-end: 0;\n}\n.message-bubble-assistant .chat-markdown :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.message-bubble-assistant .chat-markdown :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.message-bubble-assistant .chat-markdown :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n font-size: 0.8571429em;\n line-height: 1.3333333;\n margin-top: 0.6666667em;\n}\n.message-bubble-assistant .chat-markdown :where(.prose-sm > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-top: 0;\n}\n.message-bubble-assistant .chat-markdown :where(.prose-sm > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {\n margin-bottom: 0;\n}\n.message-bubble-assistant .chat-markdown {\n --tw-prose-body: #374151;\n --tw-prose-headings: #111827;\n --tw-prose-lead: #4b5563;\n --tw-prose-links: #111827;\n --tw-prose-bold: #111827;\n --tw-prose-counters: #6b7280;\n --tw-prose-bullets: #d1d5db;\n --tw-prose-hr: #e5e7eb;\n --tw-prose-quotes: #111827;\n --tw-prose-quote-borders: #e5e7eb;\n --tw-prose-captions: #6b7280;\n --tw-prose-kbd: #111827;\n --tw-prose-kbd-shadows: 17 24 39;\n --tw-prose-code: #111827;\n --tw-prose-pre-code: #e5e7eb;\n --tw-prose-pre-bg: #1f2937;\n --tw-prose-th-borders: #d1d5db;\n --tw-prose-td-borders: #e5e7eb;\n --tw-prose-invert-body: #d1d5db;\n --tw-prose-invert-headings: #fff;\n --tw-prose-invert-lead: #9ca3af;\n --tw-prose-invert-links: #fff;\n --tw-prose-invert-bold: #fff;\n --tw-prose-invert-counters: #9ca3af;\n --tw-prose-invert-bullets: #4b5563;\n --tw-prose-invert-hr: #374151;\n --tw-prose-invert-quotes: #f3f4f6;\n --tw-prose-invert-quote-borders: #374151;\n --tw-prose-invert-captions: #9ca3af;\n --tw-prose-invert-kbd: #fff;\n --tw-prose-invert-kbd-shadows: 255 255 255;\n --tw-prose-invert-code: #fff;\n --tw-prose-invert-pre-code: #d1d5db;\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\n --tw-prose-invert-th-borders: #4b5563;\n --tw-prose-invert-td-borders: #374151;\n max-width: none;\n}\n.message-bubble-assistant .chat-markdown :is(:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *))) {\n text-decoration-line: none;\n}\n.message-bubble-assistant .chat-markdown :is(:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *))):hover {\n text-decoration-line: underline;\n}\n.message-bubble-assistant .chat-markdown {\n --tw-prose-body: var(--message-assistant-text-color);\n --tw-prose-headings: var(--message-assistant-text-color);\n --tw-prose-lead: var(--message-assistant-text-color);\n --tw-prose-links: var(--message-assistant-link-color);\n --tw-prose-bold: var(--message-assistant-text-color);\n --tw-prose-counters: var(--message-assistant-text-color);\n --tw-prose-bullets: var(--message-assistant-text-color);\n --tw-prose-hr: var(--message-assistant-text-color);\n --tw-prose-quotes: var(--message-assistant-text-color);\n --tw-prose-quote-borders: var(--message-assistant-text-color);\n --tw-prose-captions: var(--message-assistant-text-color);\n --tw-prose-kbd: var(--message-assistant-text-color);\n --tw-prose-kbd-shadows: var(--message-assistant-text-color);\n --tw-prose-code: var(--code-text-assistant-color);\n --tw-prose-pre-code: var(--code-text-assistant-color);\n --tw-prose-pre-bg: var(--code-bg-assistant-color);\n --tw-prose-th-borders: var(--message-assistant-text-color);\n --tw-prose-td-borders: var(--message-assistant-text-color);\n}\n.message-bubble-user .chat-markdown {\n --tw-prose-body: var(--message-user-text-color);\n --tw-prose-headings: var(--message-user-text-color);\n --tw-prose-lead: var(--message-user-text-color);\n --tw-prose-links: var(--message-user-link-color);\n --tw-prose-bold: var(--message-user-text-color);\n --tw-prose-counters: var(--message-user-text-color);\n --tw-prose-bullets: var(--message-user-text-color);\n --tw-prose-hr: var(--message-user-text-color);\n --tw-prose-quotes: var(--message-user-text-color);\n --tw-prose-quote-borders: var(--message-user-text-color);\n --tw-prose-captions: var(--message-user-text-color);\n --tw-prose-kbd: var(--message-user-text-color);\n --tw-prose-kbd-shadows: var(--message-user-text-color);\n --tw-prose-code: var(--code-text-user-color);\n --tw-prose-pre-code: var(--code-text-user-color);\n --tw-prose-pre-bg: var(--code-bg-user-color);\n --tw-prose-th-borders: var(--message-user-text-color);\n --tw-prose-td-borders: var(--message-user-text-color);\n}\n.message-bubble-system .chat-markdown {\n --tw-prose-body: var(--message-system-text-color);\n --tw-prose-headings: var(--message-system-text-color);\n --tw-prose-lead: var(--message-system-text-color);\n --tw-prose-links: var(--message-system-link-color);\n --tw-prose-bold: var(--message-system-text-color);\n --tw-prose-counters: var(--message-system-text-color);\n --tw-prose-bullets: var(--message-system-text-color);\n --tw-prose-hr: var(--message-system-text-color);\n --tw-prose-quotes: var(--message-system-text-color);\n --tw-prose-quote-borders: var(--message-system-text-color);\n --tw-prose-captions: var(--message-system-text-color);\n --tw-prose-kbd: var(--message-system-text-color);\n --tw-prose-kbd-shadows: var(--message-system-text-color);\n --tw-prose-code: var(--message-system-text-color);\n --tw-prose-pre-code: var(--message-system-text-color);\n --tw-prose-pre-bg: var(--message-system-text-color);\n --tw-prose-th-borders: var(--message-system-text-color);\n --tw-prose-td-borders: var(--message-system-text-color);\n}\n.message-bubble-user .chat-markdown pre {\n border: 1px solid var(--code-border-user-color);\n}\n.message-bubble-assistant .chat-markdown pre {\n border: 1px solid var(--code-border-assistant-color);\n}\n.loading:after {\n content: \' .\';\n}\n/* File Upload Button */\n.file-attachment-button {\n border-radius: 0.375rem;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n}\n.file-attachment-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.file-attachment-button {\n padding: 0.375em;\n background-color: var(--file-attachment-button-bg-color);\n color: var(--file-attachment-button-text-color);\n}\n.file-attachment-button svg {\n width: 1.5em;\n height: 1.5em;\n}\n.file-attachment-button:hover:not(:disabled) {\n background-color: var(--file-attachment-button-bg-hover-color);\n}\n.file-attachment-button:disabled {\n color: var(--file-attachment-button-text-disabled-color);\n}\n/* Selected Files Container */\n.selected-files-container {\n padding: 1em 1em 0.5em 1em;\n background-color: var(--selected-files-bg-color);\n border-top: 1px solid var(--selected-files-border-color);\n}\n/* Selected File Item */\n.selected-file-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: var(--selected-file-bg-color);\n border-radius: 0.375em;\n padding: 0.25em 0.5em;\n font-size: var(--selected-file-font-size);\n color: var(--selected-file-name-color);\n}\n.selected-file-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.selected-file-icon svg {\n width: var(--selected-file-icon-size);\n height: var(--selected-file-icon-size);\n}\n.selected-file-size {\n color: var(--selected-file-size-color);\n}\n.selected-file-error {\n color: var(--error-text-color);\n}\n.selected-file-success-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--success-text-color);\n width: var(--selected-file-icon-size);\n height: var(--selected-file-icon-size);\n}\n.selected-file-remove-button {\n font-weight: 700;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n color: var(--selected-file-remove-icon-color);\n padding: 0.375em;\n}\n.selected-file-remove-button svg {\n width: var(--selected-file-icon-size);\n height: var(--selected-file-icon-size);\n}\n.selected-file-remove-button:hover {\n color: var(--selected-file-remove-icon-hover-color);\n}\n/* Message Attachments */\n.message-attachments {\n margin-top: 0.5em;\n}\n.message-attachments > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25em * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25em * var(--tw-space-y-reverse));\n}\n.message-attachments {\n font-size: var(--chat-window-font-size-sm);\n}\n.message-attachment-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--message-attachment-icon-size);\n height: var(--message-attachment-icon-size);\n}\n/* Update Send Button for Upload State */\n.send-button-disabled {\n cursor: not-allowed;\n background-color: var(--send-button-bg-disabled-color);\n color: var(--send-button-text-disabled-color);\n}\n';const C=A;const E=class{constructor(e){n(this,e);this.apiBaseUrl="https://chatbots.dimagi.com";this.buttonShape="square";this.newChatConfirmationMessage="Starting a new chat will clear your current conversation. Continue?";this.visible=false;this.position="right";this.persistentSession=true;this.persistentSessionExpire=60*24;this.allowFullScreen=true;this.allowAttachments=false;this.typingIndicatorText="Preparing response";this.error="";this.messages=[];this.isLoading=false;this.isTyping=false;this.messageInput="";this.currentPollTaskId="";this.isDragging=false;this.dragOffset={x:0,y:0};this.windowPosition={x:0,y:0};this.fullscreenPosition={x:0};this.parsedWelcomeMessages=[];this.parsedStarterQuestions=[];this.isFullscreen=false;this.showNewChatConfirmation=false;this.selectedFiles=[];this.isUploadingFiles=false;this.chatWindowHeight=600;this.chatWindowWidth=450;this.chatWindowFullscreenWidth=1024;this.positionInitialized=false;this.handleMouseDown=e=>{if(!this.isFullscreen&&window.innerWidth<E.MOBILE_BREAKPOINT)return;if(e.target.closest("button"))return;const n=this.getPointerCoordinates(e);if(!n)return;this.startDrag(n);this.addEventListeners();e.preventDefault()};this.handleMouseMove=e=>{const n=this.getPointerCoordinates(e);if(!n)return;this.updateDragPosition(n)};this.handleMouseUp=()=>{this.endDrag()};this.handleTouchStart=e=>{if(e.target.closest("button"))return;if(!this.chatWindowRef)return;const n=this.getPointerCoordinates(e);if(!n)return;this.startDrag(n);this.addEventListeners();e.preventDefault()};this.handleTouchMove=e=>{const n=this.getPointerCoordinates(e);if(!n)return;this.updateDragPosition(n);e.preventDefault()};this.handleTouchEnd=()=>{this.endDrag()};this.handleWindowResize=()=>{this.positionInitialized=false;this.initializePosition()}}componentWillLoad(){if(!this.chatbotId){this.error="Chatbot ID is required";return}if(this.persistentSession&&this.isLocalStorageAvailable()){const{sessionId:e,messages:n}=this.loadSessionFromStorage();if(e&&n){this.sessionId=e;this.messages=n}}this.parseWelcomeMessages();this.parseStarterQuestions()}componentDidLoad(){const e=getComputedStyle(this.host);const n=e.getPropertyValue("--chat-window-height");const t=e.getPropertyValue("--chat-window-width");const o=e.getPropertyValue("--chat-window-fullscreen-width");this.chatWindowHeight=y(n,window.innerHeight,this.chatWindowHeight);this.chatWindowWidth=y(t,window.innerWidth,this.chatWindowWidth);this.chatWindowFullscreenWidth=y(o,window.innerWidth,this.chatWindowFullscreenWidth);if(this.visible){this.initializePosition()}if(this.visible&&!this.sessionId){this.startSession()}else if(this.visible&&this.sessionId){this.startPolling()}window.addEventListener("resize",this.handleWindowResize)}disconnectedCallback(){this.cleanup();this.removeEventListeners();window.removeEventListener("resize",this.handleWindowResize)}addErrorMessage(e){const n={created_at:(new Date).toISOString(),role:"system",content:`**Error:** ${e}\nPlease try again.`,attachments:[]};this.messages=[...this.messages,n];this.saveSessionToStorage();this.scrollToBottom()}handleError(e){this.addErrorMessage(e);this.isLoading=false;this.isTyping=false;this.isUploadingFiles=false;this.currentPollTaskId=""}parseJSONProp(e,n){try{if(e){try{return JSON.parse(e)}catch(n){const t=e.replace(/'/g,'"');return JSON.parse(t)}}}catch(e){console.warn(`Failed to parse ${n}:`,e)}return[]}parseWelcomeMessages(){this.parsedWelcomeMessages=this.parseJSONProp(this.welcomeMessages,"welcome messages")}parseStarterQuestions(){this.parsedStarterQuestions=this.parseJSONProp(this.starterQuestions,"starter questions")}cleanup(){if(this.pollingIntervalRef){clearInterval(this.pollingIntervalRef);this.pollingIntervalRef=undefined}this.currentPollTaskId=""}getApiBaseUrl(){return this.apiBaseUrl||window.location.origin}getApiHeaders(){const e={"Content-Type":"application/json"};const n=v(this.getApiBaseUrl());if(n){e["X-CSRFToken"]=n}return e}async startSession(){try{this.isLoading=true;const e=this.getOrGenerateUserId();const n={chatbot_id:this.chatbotId,session_data:{source:"widget",page_url:window.location.href},participant_remote_id:e};if(this.userName){n.participant_name=this.userName}const t=await fetch(`${this.getApiBaseUrl()}/api/chat/start/`,{method:"POST",headers:this.getApiHeaders(),body:JSON.stringify(n)});if(!t.ok){this.handleError(`Failed to start session: ${t.statusText}`);return}const o=await t.json();this.sessionId=o.session_id;this.saveSessionToStorage();if(o.seed_message_task_id){this.isTyping=true;this.currentPollTaskId=o.seed_message_task_id;await this.pollTaskResponse()}this.startPolling()}catch(e){this.handleError("Failed to start chat session")}finally{this.isLoading=false}}markPendingFilesWithError(e){this.selectedFiles=this.selectedFiles.map((n=>{if(!n.error&&!n.uploaded){return Object.assign(Object.assign({},n),{error:e})}return n}))}async uploadFiles(){if(this.selectedFiles.length===0||!this.sessionId||!this.allowAttachments){return[]}this.isUploadingFiles=true;const e=[];try{const n=new FormData;for(const t of this.selectedFiles){if(!t.error&&!t.uploaded){n.append("files",t.file)}else if(t.uploaded){e.push(t.uploaded.id)}}const t=this.getOrGenerateUserId();n.append("participant_remote_id",t);if(this.userName){n.append("participant_name",this.userName)}if(n.has("files")){const t=await fetch(`${this.getApiBaseUrl()}/api/chat/${this.sessionId}/upload/`,{method:"POST",body:n});if(!t.ok){const n=await t.json();const o=n.error||"Failed to upload files";this.markPendingFilesWithError(o);return e}const o=await t.json();let r=0;this.selectedFiles=this.selectedFiles.map((e=>{if(!e.error&&!e.uploaded){return Object.assign(Object.assign({},e),{uploaded:o.files[r++]})}return e}));e.push(...o.files.map((e=>e.id)))}return e}catch(n){const t=n instanceof Error?n.message:"Failed to upload files";this.markPendingFilesWithError(t);return e}finally{this.isUploadingFiles=false}}async sendMessage(e){if(!this.sessionId||!e.trim())return;try{let n=[];if(this.allowAttachments&&this.selectedFiles.length>0){n=await this.uploadFiles();const e=this.selectedFiles.some((e=>e.error));if(e){this.handleError("Please remove or fix file errors before sending your message.");return}}if(this.messages.length===0&&this.parsedWelcomeMessages.length>0){const e=new Date;const n=this.parsedWelcomeMessages.map(((n,t)=>({created_at:new Date(e.getTime()-(this.parsedWelcomeMessages.length-t)*1e3).toISOString(),role:"assistant",content:n,attachments:[]})));this.messages=[...this.messages,...n]}const t={created_at:(new Date).toISOString(),role:"user",content:e.trim(),attachments:this.allowAttachments?this.selectedFiles.filter((e=>!e.error&&e.uploaded)).map((e=>({name:e.file.name,content_type:e.file.type,size:e.file.size}))):[]};this.messages=[...this.messages,t];this.saveSessionToStorage();this.messageInput="";if(this.allowAttachments){this.selectedFiles=[]}this.scrollToBottom();this.isTyping=true;const o={message:e.trim()};if(this.allowAttachments&&n.length>0){o.attachment_ids=n}const r=await fetch(`${this.getApiBaseUrl()}/api/chat/${this.sessionId}/message/`,{method:"POST",headers:this.getApiHeaders(),body:JSON.stringify(o)});if(!r.ok){throw new Error(`Failed to send message: ${r.statusText}`)}const s=await r.json();if(s.status==="error"){throw new Error(s.error||"Failed to send message")}this.currentPollTaskId=s.task_id;await this.pollTaskResponse()}catch(e){const n=e instanceof Error?e.message:"Failed to send message";this.handleError(n)}}handleStarterQuestionClick(e){this.sendMessage(e)}async pollTaskResponse(){if(!this.sessionId||!this.currentPollTaskId)return;this.pauseMessagePolling();let e=0;const n=async()=>{if(!this.sessionId||!this.currentPollTaskId)return;try{const t=await fetch(`${this.getApiBaseUrl()}/api/chat/${this.sessionId}/${this.currentPollTaskId}/poll/`);if(!t.ok){throw new Error(`Failed to poll task: ${t.statusText}`)}const o=await t.json();if(o.error){throw new Error(o.error)}if(o.status==="complete"&&o.message){this.messages=[...this.messages,o.message];this.saveSessionToStorage();this.scrollToBottom();this.isTyping=false;this.currentPollTaskId="";this.resumeMessagePolling();this.focusInput();return}if(o.status==="processing"&&e<E.TASK_POLLING_MAX_ATTEMPTS){e++;setTimeout(n,E.TASK_POLLING_INTERVAL_MS)}else if(e>=E.TASK_POLLING_MAX_ATTEMPTS){const e={created_at:(new Date).toISOString(),role:"system",content:"The response is taking longer than expected. The system may be experiencing delays. Please try sending your message again.",attachments:[]};this.messages=[...this.messages,e];this.saveSessionToStorage();this.scrollToBottom();this.isTyping=false;this.currentPollTaskId="";this.resumeMessagePolling();this.focusInput()}}catch(e){const n=e instanceof Error?e.message:"Failed to get response";this.handleError(n);this.currentPollTaskId="";this.resumeMessagePolling()}};await n()}startPolling(){if(this.pollingIntervalRef)return;this.pollingIntervalRef=setInterval((async()=>{if(!this.currentPollTaskId){await this.pollForMessages()}}),E.MESSAGE_POLLING_INTERVAL_MS)}pauseMessagePolling(){if(this.pollingIntervalRef){clearInterval(this.pollingIntervalRef);this.pollingIntervalRef=undefined}}resumeMessagePolling(){this.startPolling()}async pollForMessages(){if(!this.sessionId)return;try{const e=new URL(`${this.getApiBaseUrl()}/api/chat/${this.sessionId}/poll/`);if(this.messages&&this.messages.length>0){e.searchParams.set("since",this.messages.at(-1).created_at)}const n=await fetch(e.toString());if(!n.ok)return;const t=await n.json();if(t.messages.length>0){this.messages=[...this.messages,...t.messages];this.saveSessionToStorage();this.scrollToBottom();this.focusInput()}}catch(e){}}scrollToBottom(){setTimeout((()=>{if(this.messageListRef){this.messageListRef.scrollTop=this.messageListRef.scrollHeight}}),E.SCROLL_DELAY_MS)}focusInput(){setTimeout((()=>{if(this.textareaRef&&!this.isTyping){this.textareaRef.focus()}}),E.FOCUS_DELAY_MS)}handleKeyPress(e){if(e.key==="Enter"&&!e.shiftKey){e.preventDefault();this.sendMessage(this.messageInput)}}handleInputChange(e){this.messageInput=e.target.value}handleFileSelect(e){var n;if(!this.allowAttachments)return;const t=e.target;if(!t.files||t.files.length===0)return;const o=[];let r=this.selectedFiles.reduce(((e,n)=>e+n.file.size),0);for(let e=0;e<t.files.length;e++){const s=t.files[e];const a="."+((n=s.name.split(".").pop())===null||n===void 0?void 0:n.toLowerCase());if(!E.SUPPORTED_FILE_EXTENSIONS.includes(a)){o.push({file:s,error:`File type ${a} not supported`});continue}const i=s.size/(1024*1024);if(i>E.MAX_FILE_SIZE_MB){o.push({file:s,error:`File exceeds ${E.MAX_FILE_SIZE_MB}MB limit`});continue}r+=s.size;const l=r/(1024*1024);if(l>E.MAX_TOTAL_SIZE_MB){o.push({file:s,error:`Total size exceeds ${E.MAX_TOTAL_SIZE_MB}MB limit`});continue}o.push({file:s})}this.selectedFiles=[...this.selectedFiles,...o];t.value=""}removeSelectedFile(e){if(!this.allowAttachments)return;this.selectedFiles=this.selectedFiles.filter(((n,t)=>t!==e))}formatFileSize(e){if(e===0)return"0 KB";const n=1024;if(e<n*n){return Math.round(e/n*100)/100+" KB"}else{return Math.round(e/(n*n)*100)/100+" MB"}}formatTime(e){const n=new Date(e);return n.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}toggleWindowVisibility(){this.visible=!this.visible}async visibilityHandler(e){if(e){this.initializePosition()}if(e&&!this.sessionId){await this.startSession()}else if(!e){this.pauseMessagePolling()}else{this.resumeMessagePolling()}}setPosition(e){if(e===this.position)return;this.position=e}getPositionClasses(){if(this.isFullscreen){return"chat-window-fullscreen"}const e="chat-window-normal";const n=this.isDragging?" chat-window-dragging":"";return e+n}getFullscreenBounds(){const e=window.innerWidth;const n=Math.min(e,this.chatWindowFullscreenWidth);const t=(e-n)/2;const o=(e-n)/2;console.log(e,n,t,o);return{windowWidth:e,actualChatWidth:n,centeredX:t,maxOffset:o}}getPositionStyles(){if(this.isFullscreen){const{centeredX:e}=this.getFullscreenBounds();const n=e+this.fullscreenPosition.x;return{left:`${n}px`,top:"0px",transform:"none"}}return{left:`${this.windowPosition.x}px`,top:`${this.windowPosition.y}px`}}initializePosition(){if(this.positionInitialized){return}this.positionInitialized=true;const e=window.innerWidth;const n=window.innerHeight;const t=e<E.MOBILE_BREAKPOINT?e:this.chatWindowWidth;const o=e<E.MOBILE_BREAKPOINT;if(o){this.windowPosition={x:0,y:0};return}switch(this.position){case"left":this.windowPosition={x:E.WINDOW_MARGIN,y:n-this.chatWindowHeight-E.WINDOW_MARGIN};break;case"right":this.windowPosition={x:e-t-E.WINDOW_MARGIN,y:n-this.chatWindowHeight-E.WINDOW_MARGIN};break;case"center":this.windowPosition={x:(e-t)/2,y:(n-this.chatWindowHeight)/2};break}}getPointerCoordinates(e){if(e instanceof MouseEvent){return{clientX:e.clientX,clientY:e.clientY}}else if(e instanceof TouchEvent&&e.touches.length===1){const n=e.touches[0];return{clientX:n.clientX,clientY:n.clientY}}return null}startDrag(e){if(!this.chatWindowRef)return;this.isDragging=true;if(this.isFullscreen){this.dragOffset={x:e.clientX,y:e.clientY}}else{const n=this.chatWindowRef.getBoundingClientRect();this.dragOffset={x:e.clientX-n.left,y:e.clientY-n.top}}}updateDragPosition(e){if(!this.isDragging)return;if(this.isFullscreen){const{maxOffset:n}=this.getFullscreenBounds();const t=e.clientX-this.dragOffset.x;this.fullscreenPosition={x:Math.max(-n,Math.min(n,t))}}else{const n=e.clientX-this.dragOffset.x;const t=e.clientY-this.dragOffset.y;const o=window.innerWidth;const r=window.innerHeight;const s=o<E.MOBILE_BREAKPOINT?o:this.chatWindowWidth;const a=this.chatWindowRef.offsetHeight;this.windowPosition={x:Math.max(0,Math.min(n,o-s)),y:Math.max(0,Math.min(t,r-a))}}}endDrag(){this.isDragging=false;this.removeEventListeners()}addEventListeners(){document.addEventListener("mousemove",this.handleMouseMove);document.addEventListener("mouseup",this.handleMouseUp);document.addEventListener("touchmove",this.handleTouchMove,{passive:false});document.addEventListener("touchend",this.handleTouchEnd)}removeEventListeners(){document.removeEventListener("mousemove",this.handleMouseMove);document.removeEventListener("mouseup",this.handleMouseUp);document.removeEventListener("touchmove",this.handleTouchMove);document.removeEventListener("touchend",this.handleTouchEnd)}getDefaultIconUrl(){return`${this.getApiBaseUrl()}/static/images/favicons/favicon.svg`}getButtonClasses(){const e=this.buttonText&&this.buttonText.trim();const n=e?"chat-btn-text":"chat-btn-icon";const t=this.buttonShape==="round"?"round":"";return`${n} ${t}`.trim()}renderButton(){const n=this.buttonText&&this.buttonText.trim();const t=this.iconUrl&&this.iconUrl.trim();const o=t?this.iconUrl:this.getDefaultIconUrl();const r=this.getButtonClasses();if(n){return e("button",{class:r,onClick:()=>this.toggleWindowVisibility(),"aria-label":`Open chat - ${this.buttonText}`,title:this.buttonText},e("img",{src:o,alt:""}),e("span",null,this.buttonText))}else{return e("button",{class:r,onClick:()=>this.toggleWindowVisibility(),"aria-label":"Open chat",title:"Open chat"},e("img",{src:o,alt:"Chat"}))}}getStorageKeys(){return{sessionId:`ocs-chat-session-${this.chatbotId}`,messages:`ocs-chat-messages-${this.chatbotId}`,lastActivity:`ocs-chat-activity-${this.chatbotId}`}}saveSessionToStorage(){if(!this.persistentSession){return}const e=this.getStorageKeys();try{if(this.sessionId){localStorage.setItem(e.sessionId,this.sessionId);localStorage.setItem(e.lastActivity,(new Date).toISOString())}localStorage.setItem(e.messages,JSON.stringify(this.messages))}catch(e){console.warn("Failed to save chat session to localStorage:",e)}}loadSessionFromStorage(){const e=this.getStorageKeys();try{if(this.persistentSessionExpire>0){const n=localStorage.getItem(e.lastActivity);if(n){const e=new Date(n);const t=(Date.now()-e.getTime())/(1e3*60);if(t>this.persistentSessionExpire){this.clearSessionStorage();return{messages:[]}}}}const n=localStorage.getItem(e.sessionId);const t=n?n:undefined;const o=localStorage.getItem(e.messages);let r=[];if(o){try{const e=JSON.parse(o);r=Array.isArray(e)?e:[]}catch(e){console.warn("Failed to parse messages from localStorage:",e);r=[]}}return{sessionId:t,messages:r}}catch(e){console.warn("Failed to load chat session from localStorage, starting new session:",e);return{messages:[]}}}getOrGenerateUserId(){if(this.userId){return this.userId}if(this.generatedUserId){return this.generatedUserId}const e=`ocs-user-id`;const n=localStorage.getItem(e);if(n){this.generatedUserId=n;return n}const t=new Uint8Array(9);window.crypto.getRandomValues(t);const o=Array.from(t,(e=>e.toString(36))).join("").substr(0,9);const r=`ocs:${Date.now()}_${o}`;this.generatedUserId=r;localStorage.setItem(e,r);return r}clearSessionStorage(){const e=this.getStorageKeys();try{localStorage.removeItem(e.sessionId);localStorage.removeItem(e.messages);localStorage.removeItem(e.lastActivity)}catch(e){console.warn("Failed to clear chat session from localStorage:",e)}}isLocalStorageAvailable(){try{localStorage.setItem(E.LOCALSTORAGE_TEST_KEY,"test");localStorage.removeItem(E.LOCALSTORAGE_TEST_KEY);return true}catch(e){return false}}showConfirmationDialog(){this.showNewChatConfirmation=true}hideConfirmationDialog(){this.showNewChatConfirmation=false}async confirmNewChat(){this.hideConfirmationDialog();await this.actuallyStartNewChat()}async actuallyStartNewChat(){this.clearSessionStorage();this.sessionId=undefined;this.messages=[];this.isTyping=false;this.currentPollTaskId="";if(this.allowAttachments){this.selectedFiles=[]}this.cleanup();await this.startSession()}toggleFullscreen(){this.isFullscreen=!this.isFullscreen;this.fullscreenPosition={x:0}}render(){if(this.error&&!this.sessionId){return e(t,null,e("p",{class:"error-message"},this.error))}return e(t,null,this.renderButton(),this.visible&&e("div",{ref:e=>this.chatWindowRef=e,id:"ocs-chat-window",class:this.getPositionClasses(),style:this.getPositionStyles()},e("div",{class:`chat-header ${this.isDragging?"chat-header-dragging":"chat-header-draggable"}`,onMouseDown:this.handleMouseDown,onTouchStart:this.handleTouchStart},e("div",{class:"drag-indicator"},e("div",{class:"drag-dots header-button"},e(s,null))),e("div",{class:"header-text"},this.headerText),e("div",{class:"header-buttons"},this.messages.length>0&&e("button",{class:"header-button",onClick:()=>this.showConfirmationDialog(),title:"Start new chat","aria-label":"Start new chat"},e(a,null)),this.allowFullScreen&&e("button",{class:"header-button fullscreen-button",onClick:()=>this.toggleFullscreen(),title:this.isFullscreen?"Exit fullscreen":"Enter fullscreen","aria-label":this.isFullscreen?"Exit fullscreen":"Enter fullscreen"},this.isFullscreen?e(l,null):e(i,null)),e("button",{class:"header-button",onClick:()=>this.visible=false,"aria-label":"Close"},e(r,null)))),this.showNewChatConfirmation&&e("div",{class:"confirmation-overlay"},e("div",{class:"confirmation-dialog"},e("div",{class:"confirmation-content"},e("h3",{class:"confirmation-title"},"Start New Chat"),e("p",{class:"confirmation-message"},this.newChatConfirmationMessage),e("div",{class:"confirmation-buttons"},e("button",{class:"confirmation-button confirmation-button-cancel",onClick:()=>this.hideConfirmationDialog()},"Cancel"),e("button",{class:"confirmation-button confirmation-button-confirm",onClick:()=>this.confirmNewChat()},"Continue"))))),e("div",{class:"chat-content"},this.isLoading&&!this.sessionId&&e("div",{class:"loading-container"},e("div",{class:"loading-spinner"}),e("span",{class:"loading-text"},"Starting chat...")),e("div",{ref:e=>this.messageListRef=e,class:"messages-container"},this.messages.length===0&&this.parsedWelcomeMessages.length>0&&e("div",{class:"welcome-messages"},this.parsedWelcomeMessages.map(((n,t)=>e("div",{key:`welcome-${t}`,class:"message-row message-row-assistant"},e("div",{class:"message-bubble message-bubble-assistant"},e("div",{class:"chat-markdown",innerHTML:b(n)})))))),this.messages.map(((n,t)=>e("div",{key:t,class:`message-row ${n.role==="user"?"message-row-user":"message-row-assistant"}`},e("div",{class:`message-bubble ${n.role==="user"?"message-bubble-user":n.role==="assistant"?"message-bubble-assistant":"message-bubble-system"}`},e("div",{class:"chat-markdown",innerHTML:b(n.content)}),n.attachments&&n.attachments.length>0&&e("div",{class:"message-attachments"},n.attachments.map(((n,t)=>e("div",{key:t,class:"flex items-center gap-[0.5em]"},e("span",{class:"message-attachment-icon"},e(c,null)),e("span",{class:"message-attachment-name"},n.name))))),e("div",{class:"message-timestamp"},this.formatTime(n.created_at)))))),this.isTyping&&e("div",null,e("div",{class:"typing-indicator"},e("div",{class:"typing-progress"})),e("div",{class:"typing-text"},e("span",null,this.typingIndicatorText),e("span",{class:"typing-dots"})))),this.messages.length===0&&this.parsedStarterQuestions.length>0&&e("div",{class:"starter-questions"},this.parsedStarterQuestions.map(((n,t)=>e("div",{key:`starter-${t}`,class:"starter-question-row"},e("button",{class:"starter-question",onClick:()=>this.handleStarterQuestionClick(n)},n))))),this.allowAttachments&&this.selectedFiles.length>0&&e("div",{class:"selected-files-container"},e("div",{class:"space-y-[0.25em]"},this.selectedFiles.map(((n,t)=>e("div",{key:t,class:"selected-file-item"},e("div",{class:"flex items-center gap-[0.5em]"},e("span",{class:"selected-file-icon"},e(c,null)),e("span",null,n.file.name),e("span",{class:"selected-file-size"},"(",this.formatFileSize(n.file.size),")"),n.error&&e("span",{class:"selected-file-error"},n.error),n.uploaded&&e("span",{class:"selected-file-success-icon"},e(u,null))),e("button",{onClick:()=>this.removeSelectedFile(t),class:"selected-file-remove-button","aria-label":"Remove file"},e(h,null))))))),this.sessionId&&e("div",{class:"input-area"},e("div",{class:"input-container"},e("textarea",{ref:e=>this.textareaRef=e,class:"message-textarea",rows:1,placeholder:"Type your message...",value:this.messageInput,onInput:e=>this.handleInputChange(e),onKeyPress:e=>this.handleKeyPress(e),disabled:this.isTyping||this.isUploadingFiles}),this.allowAttachments&&e("input",{ref:e=>{if(e){this.fileInputRef=e}},id:"ocs-file-input",type:"file",multiple:true,accept:E.SUPPORTED_FILE_EXTENSIONS.join(","),onChange:e=>this.handleFileSelect(e),class:"hidden"}),this.allowAttachments&&e("button",{class:"file-attachment-button",onClick:()=>{var e;return(e=this.fileInputRef)===null||e===void 0?void 0:e.click()},disabled:this.isTyping||this.isUploadingFiles,title:"Attach files","aria-label":"Attach files"},e(c,null)),e("button",{class:`send-button ${!this.isTyping&&!!this.messageInput.trim()?"send-button-enabled":"send-button-disabled"}`,onClick:()=>this.sendMessage(this.messageInput),disabled:this.isTyping||this.isUploadingFiles||!this.messageInput.trim()},this.isUploadingFiles?"Uploading...":"Send"))),e("div",{class:"flex items-center justify-center text-[0.8em] font-light w-full text-slate-500 py-[2px]"},e("p",null,"Powered by ",e("a",{class:"underline",href:"https://www.dimagi.com",target:"_blank"},"Dimagi"))))))}get host(){return o(this)}static get watchers(){return{visible:["visibilityHandler"]}}};E.TASK_POLLING_MAX_ATTEMPTS=120;E.TASK_POLLING_INTERVAL_MS=1e3;E.MESSAGE_POLLING_INTERVAL_MS=3e4;E.SCROLL_DELAY_MS=100;E.FOCUS_DELAY_MS=100;E.MOBILE_BREAKPOINT=640;E.WINDOW_MARGIN=20;E.LOCALSTORAGE_TEST_KEY="__ocs_test__";E.MAX_FILE_SIZE_MB=50;E.MAX_TOTAL_SIZE_MB=50;E.SUPPORTED_FILE_EXTENSIONS=[".txt",".pdf",".doc",".docx",".xls",".xlsx",".csv",".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".mp4",".mov",".avi",".mp3",".wav"];E.style=C;export{E as open_chat_studio_widget};
4
- //# sourceMappingURL=p-16df1b20.entry.js.map