@epam/statgpt-conversation-list 0.4.0-rc.2 → 0.4.0-rc.21

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 (3) hide show
  1. package/index.js +1 -1
  2. package/index.mjs +32 -29
  3. package/package.json +4 -4
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),L=require("classnames"),m=require("react"),re=require("lodash"),v=require("@epam/statgpt-ui-components"),X=require("@tabler/icons-react"),Ae=require("jszip"),B=require("@epam/statgpt-shared-toolkit"),$=require("@epam/statgpt-dial-toolkit");var O=(s=>(s.DELETE="delete",s.EXPORT="export",s.SHARE="share",s.RENAME="rename",s))(O||{}),k=(s=>(s.SHARED="shared",s.TODAY="today",s.YESTERDAY="yesterday",s.WEEK="week",s.EARLIER="earlier",s))(k||{});const J=(s,r)=>s?.resources?.filter(o=>o?.parentPath===r)?.map(o=>{const l=`${o?.bucket}/${r}`,u=o?.url?.split("/")?.slice(1)?.join("/");return{...o,folderId:l,id:u,isShared:!0}})||[],ue=s=>({[k.SHARED]:s}),Ie={[k.TODAY]:[],[k.YESTERDAY]:[],[k.WEEK]:[],[k.EARLIER]:[]},de=(s,r)=>s.toDateString()===r.toDateString(),Pe=(s,r)=>{const o=new Date(s.getFullYear(),s.getMonth(),s.getDate()-1);return de(r,o)},je=(s,r)=>{const o=s.getTime()-r.getTime();return Math.floor(o/(1e3*60*60*24))},le=s=>s.updatedAt||Number(s.id?.split("-").pop()),Te=s=>{const r=new Date,o=re.cloneDeep(Ie);for(const l of s)if(l.updatedAt){const u=new Date(l.updatedAt);let d;de(r,u)?d=o[k.TODAY]:Pe(r,u)?d=o[k.YESTERDAY]:je(r,u)<=7?d=o[k.WEEK]:d=o[k.EARLIER],d?.some(f=>f.id===l.id)||d.push(l)}return o},he=s=>s?.sort((r,o)=>(le(o)||0)-(le(r)||0)),De=(s,r)=>s===k.SHARED?r?.shared||"Shared":s===k.TODAY?r?.today||"Today":s===k.YESTERDAY?r?.yesterday||"Yesterday":s===k.WEEK?r?.lastWeek||"Last week":r?.earlier||"Earlier",Oe=({onCloseModal:s,disableModalDividers:r,deleteConversation:o,isSmallButton:l,titles:u,locale:d})=>c.jsxs(v.Popup,{heading:u?.deleteTitle??"Delete conversation",portalId:"delete-conversation",containerClassName:"delete-conversation-popup",size:v.PopUpSize.SM,dividers:!r,onClose:s,closeButtonTitle:u?.close??"Cancel",children:[c.jsx("div",{className:"py-4 px-6 sm:px-0",lang:d,children:u?.deleteMessage??"Are you sure you want to delete this conversation? This action cannot be undone."}),c.jsxs("div",{className:"flex justify-end gap-x-2 py-3 px-6 delete-conversation-popup-footer",children:[c.jsx(v.Button,{buttonClassName:"cancel-button",title:u?.cancel??"Cancel",isSmallButton:l,onClick:f=>{f.stopPropagation(),s()}}),c.jsx(v.Button,{buttonClassName:"text-button-primary text-button-primary-error",title:u?.delete??"Delete",isSmallButton:l,onClick:f=>{f.stopPropagation(),o()}})]})]}),Le=s=>{const r=Fe(B.getConversationAttachments(s)).map(o=>({...o,relativePath:"",contentLength:0}));return re.uniqBy(r,o=>K(o.relativePath,o.name))},ke=s=>s.endsWith("/"),Be=s=>{const r=s.toLowerCase();return["data:","//","http://","https://","file://","ftp://","mailto:","telnet://","api/files"].some(o=>r.startsWith(o))},Ue=s=>{const r=K(...s.split("/").map(l=>decodeURIComponent(l))),o=r.lastIndexOf("/");return{absolutePath:r.slice(0,o),name:r.slice(o+1)}},Fe=s=>s?s.map(r=>{if(!r.url||Be(r.url)||ke(r.url))return null;const{absolutePath:o,name:l}=Ue(r.url);return{id:r.url,name:l,contentType:r.type,folderId:o,absolutePath:o}}).filter(Boolean):[];async function ze(s,r){const o=Le(s),l=new Ae;o.forEach(g=>{const e=encodeURI(K(g.absolutePath,g.name)),n=r(`${e}`.replace("files/","")),t=_e(g.folderId),a=K("res",t,g.name);l.file(a,n)});const u={version:5,history:[s].map($e)||[],folders:[]},d=JSON.stringify(u,null,2);return l.file("conversations/conversations_history.json",d),await l.generateAsync({type:"base64"})}const _e=s=>{const r=s.split("/");return r.length>2?K(...r.slice(2)):void 0},$e=s=>re.omit(s,["publicationInfo"]),K=(...s)=>s.filter(Boolean).join("/");function He(s,r){const o=document.createElement("a");o.download=r,o.href=s,o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}var Ye=Object.defineProperty,ee=Object.getOwnPropertySymbols,pe=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable,ce=(s,r,o)=>r in s?Ye(s,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):s[r]=o,se=(s,r)=>{for(var o in r||(r={}))pe.call(r,o)&&ce(s,o,r[o]);if(ee)for(var o of ee(r))me.call(r,o)&&ce(s,o,r[o]);return s},oe=(s,r)=>{var o={};for(var l in s)pe.call(s,l)&&r.indexOf(l)<0&&(o[l]=s[l]);if(s!=null&&ee)for(var l of ee(s))r.indexOf(l)<0&&me.call(s,l)&&(o[l]=s[l]);return o};var W;(s=>{const r=class w{constructor(e,n,t,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<w.MIN_VERSION||e>w.MAX_VERSION)throw new RangeError("Version value out of range");if(a<-1||a>7)throw new RangeError("Mask value out of range");this.size=e*4+17;let i=[];for(let h=0;h<this.size;h++)i.push(!1);for(let h=0;h<this.size;h++)this.modules.push(i.slice()),this.isFunction.push(i.slice());this.drawFunctionPatterns();const p=this.addEccAndInterleave(t);if(this.drawCodewords(p),a==-1){let h=1e9;for(let x=0;x<8;x++){this.applyMask(x),this.drawFormatBits(x);const C=this.getPenaltyScore();C<h&&(a=x,h=C),this.applyMask(x)}}u(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(e,n){const t=s.QrSegment.makeSegments(e);return w.encodeSegments(t,n)}static encodeBinary(e,n){const t=s.QrSegment.makeBytes(e);return w.encodeSegments([t],n)}static encodeSegments(e,n,t=1,a=40,i=-1,p=!0){if(!(w.MIN_VERSION<=t&&t<=a&&a<=w.MAX_VERSION)||i<-1||i>7)throw new RangeError("Invalid value");let h,x;for(h=t;;h++){const E=w.getNumDataCodewords(h,n)*8,R=f.getTotalBits(e,h);if(R<=E){x=R;break}if(h>=a)throw new RangeError("Data too long")}for(const E of[w.Ecc.MEDIUM,w.Ecc.QUARTILE,w.Ecc.HIGH])p&&x<=w.getNumDataCodewords(h,E)*8&&(n=E);let C=[];for(const E of e){o(E.mode.modeBits,4,C),o(E.numChars,E.mode.numCharCountBits(h),C);for(const R of E.getData())C.push(R)}u(C.length==x);const M=w.getNumDataCodewords(h,n)*8;u(C.length<=M),o(0,Math.min(4,M-C.length),C),o(0,(8-C.length%8)%8,C),u(C.length%8==0);for(let E=236;C.length<M;E^=253)o(E,8,C);let N=[];for(;N.length*8<C.length;)N.push(0);return C.forEach((E,R)=>N[R>>>3]|=E<<7-(R&7)),new w(h,n,N,i)}getModule(e,n){return 0<=e&&e<this.size&&0<=n&&n<this.size&&this.modules[n][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let t=0;t<this.size;t++)this.setFunctionModule(6,t,t%2==0),this.setFunctionModule(t,6,t%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);const e=this.getAlignmentPatternPositions(),n=e.length;for(let t=0;t<n;t++)for(let a=0;a<n;a++)t==0&&a==0||t==0&&a==n-1||t==n-1&&a==0||this.drawAlignmentPattern(e[t],e[a]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){const n=this.errorCorrectionLevel.formatBits<<3|e;let t=n;for(let i=0;i<10;i++)t=t<<1^(t>>>9)*1335;const a=(n<<10|t)^21522;u(a>>>15==0);for(let i=0;i<=5;i++)this.setFunctionModule(8,i,l(a,i));this.setFunctionModule(8,7,l(a,6)),this.setFunctionModule(8,8,l(a,7)),this.setFunctionModule(7,8,l(a,8));for(let i=9;i<15;i++)this.setFunctionModule(14-i,8,l(a,i));for(let i=0;i<8;i++)this.setFunctionModule(this.size-1-i,8,l(a,i));for(let i=8;i<15;i++)this.setFunctionModule(8,this.size-15+i,l(a,i));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;const n=this.version<<12|e;u(n>>>18==0);for(let t=0;t<18;t++){const a=l(n,t),i=this.size-11+t%3,p=Math.floor(t/3);this.setFunctionModule(i,p,a),this.setFunctionModule(p,i,a)}}drawFinderPattern(e,n){for(let t=-4;t<=4;t++)for(let a=-4;a<=4;a++){const i=Math.max(Math.abs(a),Math.abs(t)),p=e+a,h=n+t;0<=p&&p<this.size&&0<=h&&h<this.size&&this.setFunctionModule(p,h,i!=2&&i!=4)}}drawAlignmentPattern(e,n){for(let t=-2;t<=2;t++)for(let a=-2;a<=2;a++)this.setFunctionModule(e+a,n+t,Math.max(Math.abs(a),Math.abs(t))!=1)}setFunctionModule(e,n,t){this.modules[n][e]=t,this.isFunction[n][e]=!0}addEccAndInterleave(e){const n=this.version,t=this.errorCorrectionLevel;if(e.length!=w.getNumDataCodewords(n,t))throw new RangeError("Invalid argument");const a=w.NUM_ERROR_CORRECTION_BLOCKS[t.ordinal][n],i=w.ECC_CODEWORDS_PER_BLOCK[t.ordinal][n],p=Math.floor(w.getNumRawDataModules(n)/8),h=a-p%a,x=Math.floor(p/a);let C=[];const M=w.reedSolomonComputeDivisor(i);for(let E=0,R=0;E<a;E++){let I=e.slice(R,R+x-i+(E<h?0:1));R+=I.length;const j=w.reedSolomonComputeRemainder(I,M);E<h&&I.push(0),C.push(I.concat(j))}let N=[];for(let E=0;E<C[0].length;E++)C.forEach((R,I)=>{(E!=x-i||I>=h)&&N.push(R[E])});return u(N.length==p),N}drawCodewords(e){if(e.length!=Math.floor(w.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let a=0;a<this.size;a++)for(let i=0;i<2;i++){const p=t-i,x=(t+1&2)==0?this.size-1-a:a;!this.isFunction[x][p]&&n<e.length*8&&(this.modules[x][p]=l(e[n>>>3],7-(n&7)),n++)}}u(n==e.length*8)}applyMask(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(let n=0;n<this.size;n++)for(let t=0;t<this.size;t++){let a;switch(e){case 0:a=(t+n)%2==0;break;case 1:a=n%2==0;break;case 2:a=t%3==0;break;case 3:a=(t+n)%3==0;break;case 4:a=(Math.floor(t/3)+Math.floor(n/2))%2==0;break;case 5:a=t*n%2+t*n%3==0;break;case 6:a=(t*n%2+t*n%3)%2==0;break;case 7:a=((t+n)%2+t*n%3)%2==0;break;default:throw new Error("Unreachable")}!this.isFunction[n][t]&&a&&(this.modules[n][t]=!this.modules[n][t])}}getPenaltyScore(){let e=0;for(let i=0;i<this.size;i++){let p=!1,h=0,x=[0,0,0,0,0,0,0];for(let C=0;C<this.size;C++)this.modules[i][C]==p?(h++,h==5?e+=w.PENALTY_N1:h>5&&e++):(this.finderPenaltyAddHistory(h,x),p||(e+=this.finderPenaltyCountPatterns(x)*w.PENALTY_N3),p=this.modules[i][C],h=1);e+=this.finderPenaltyTerminateAndCount(p,h,x)*w.PENALTY_N3}for(let i=0;i<this.size;i++){let p=!1,h=0,x=[0,0,0,0,0,0,0];for(let C=0;C<this.size;C++)this.modules[C][i]==p?(h++,h==5?e+=w.PENALTY_N1:h>5&&e++):(this.finderPenaltyAddHistory(h,x),p||(e+=this.finderPenaltyCountPatterns(x)*w.PENALTY_N3),p=this.modules[C][i],h=1);e+=this.finderPenaltyTerminateAndCount(p,h,x)*w.PENALTY_N3}for(let i=0;i<this.size-1;i++)for(let p=0;p<this.size-1;p++){const h=this.modules[i][p];h==this.modules[i][p+1]&&h==this.modules[i+1][p]&&h==this.modules[i+1][p+1]&&(e+=w.PENALTY_N2)}let n=0;for(const i of this.modules)n=i.reduce((p,h)=>p+(h?1:0),n);const t=this.size*this.size,a=Math.ceil(Math.abs(n*20-t*10)/t)-1;return u(0<=a&&a<=9),e+=a*w.PENALTY_N4,u(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{const e=Math.floor(this.version/7)+2,n=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2;let t=[6];for(let a=this.size-7;t.length<e;a-=n)t.splice(1,0,a);return t}}static getNumRawDataModules(e){if(e<w.MIN_VERSION||e>w.MAX_VERSION)throw new RangeError("Version number out of range");let n=(16*e+128)*e+64;if(e>=2){const t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return u(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(w.getNumRawDataModules(e)/8)-w.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*w.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw new RangeError("Degree out of range");let n=[];for(let a=0;a<e-1;a++)n.push(0);n.push(1);let t=1;for(let a=0;a<e;a++){for(let i=0;i<n.length;i++)n[i]=w.reedSolomonMultiply(n[i],t),i+1<n.length&&(n[i]^=n[i+1]);t=w.reedSolomonMultiply(t,2)}return n}static reedSolomonComputeRemainder(e,n){let t=n.map(a=>0);for(const a of e){const i=a^t.shift();t.push(0),n.forEach((p,h)=>t[h]^=w.reedSolomonMultiply(p,i))}return t}static reedSolomonMultiply(e,n){if(e>>>8||n>>>8)throw new RangeError("Byte out of range");let t=0;for(let a=7;a>=0;a--)t=t<<1^(t>>>7)*285,t^=(n>>>a&1)*e;return u(t>>>8==0),t}finderPenaltyCountPatterns(e){const n=e[1];u(n<=this.size*3);const t=n>0&&e[2]==n&&e[3]==n*3&&e[4]==n&&e[5]==n;return(t&&e[0]>=n*4&&e[6]>=n?1:0)+(t&&e[6]>=n*4&&e[0]>=n?1:0)}finderPenaltyTerminateAndCount(e,n,t){return e&&(this.finderPenaltyAddHistory(n,t),n=0),n+=this.size,this.finderPenaltyAddHistory(n,t),this.finderPenaltyCountPatterns(t)}finderPenaltyAddHistory(e,n){n[0]==0&&(e+=this.size),n.pop(),n.unshift(e)}};r.MIN_VERSION=1,r.MAX_VERSION=40,r.PENALTY_N1=3,r.PENALTY_N2=3,r.PENALTY_N3=40,r.PENALTY_N4=10,r.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],r.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],s.QrCode=r;function o(g,e,n){if(e<0||e>31||g>>>e)throw new RangeError("Value out of range");for(let t=e-1;t>=0;t--)n.push(g>>>t&1)}function l(g,e){return(g>>>e&1)!=0}function u(g){if(!g)throw new Error("Assertion error")}const d=class y{constructor(e,n,t){if(this.mode=e,this.numChars=n,this.bitData=t,n<0)throw new RangeError("Invalid argument");this.bitData=t.slice()}static makeBytes(e){let n=[];for(const t of e)o(t,8,n);return new y(y.Mode.BYTE,e.length,n)}static makeNumeric(e){if(!y.isNumeric(e))throw new RangeError("String contains non-numeric characters");let n=[];for(let t=0;t<e.length;){const a=Math.min(e.length-t,3);o(parseInt(e.substring(t,t+a),10),a*3+1,n),t+=a}return new y(y.Mode.NUMERIC,e.length,n)}static makeAlphanumeric(e){if(!y.isAlphanumeric(e))throw new RangeError("String contains unencodable characters in alphanumeric mode");let n=[],t;for(t=0;t+2<=e.length;t+=2){let a=y.ALPHANUMERIC_CHARSET.indexOf(e.charAt(t))*45;a+=y.ALPHANUMERIC_CHARSET.indexOf(e.charAt(t+1)),o(a,11,n)}return t<e.length&&o(y.ALPHANUMERIC_CHARSET.indexOf(e.charAt(t)),6,n),new y(y.Mode.ALPHANUMERIC,e.length,n)}static makeSegments(e){return e==""?[]:y.isNumeric(e)?[y.makeNumeric(e)]:y.isAlphanumeric(e)?[y.makeAlphanumeric(e)]:[y.makeBytes(y.toUtf8ByteArray(e))]}static makeEci(e){let n=[];if(e<0)throw new RangeError("ECI assignment value out of range");if(e<128)o(e,8,n);else if(e<16384)o(2,2,n),o(e,14,n);else if(e<1e6)o(6,3,n),o(e,21,n);else throw new RangeError("ECI assignment value out of range");return new y(y.Mode.ECI,0,n)}static isNumeric(e){return y.NUMERIC_REGEX.test(e)}static isAlphanumeric(e){return y.ALPHANUMERIC_REGEX.test(e)}getData(){return this.bitData.slice()}static getTotalBits(e,n){let t=0;for(const a of e){const i=a.mode.numCharCountBits(n);if(a.numChars>=1<<i)return 1/0;t+=4+i+a.bitData.length}return t}static toUtf8ByteArray(e){e=encodeURI(e);let n=[];for(let t=0;t<e.length;t++)e.charAt(t)!="%"?n.push(e.charCodeAt(t)):(n.push(parseInt(e.substring(t+1,t+3),16)),t+=2);return n}};d.NUMERIC_REGEX=/^[0-9]*$/,d.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,d.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";let f=d;s.QrSegment=d})(W||(W={}));(s=>{(r=>{const o=class{constructor(u,d){this.ordinal=u,this.formatBits=d}};o.LOW=new o(0,1),o.MEDIUM=new o(1,0),o.QUARTILE=new o(2,3),o.HIGH=new o(3,2),r.Ecc=o})(s.QrCode||(s.QrCode={}))})(W||(W={}));(s=>{(r=>{const o=class{constructor(u,d){this.modeBits=u,this.numBitsCharCount=d}numCharCountBits(u){return this.numBitsCharCount[Math.floor((u+7)/17)]}};o.NUMERIC=new o(1,[10,12,14]),o.ALPHANUMERIC=new o(2,[9,11,13]),o.BYTE=new o(4,[8,16,16]),o.KANJI=new o(8,[8,10,12]),o.ECI=new o(7,[0,0,0]),r.Mode=o})(s.QrSegment||(s.QrSegment={}))})(W||(W={}));var V=W;var Qe={L:V.QrCode.Ecc.LOW,M:V.QrCode.Ecc.MEDIUM,Q:V.QrCode.Ecc.QUARTILE,H:V.QrCode.Ecc.HIGH},fe=128,ge="L",Ce="#FFFFFF",Ee="#000000",xe=!1,ve=1,Ge=4,We=0,Ve=.1;function we(s,r=0){const o=[];return s.forEach(function(l,u){let d=null;l.forEach(function(f,g){if(!f&&d!==null){o.push(`M${d+r} ${u+r}h${g-d}v1H${d+r}z`),d=null;return}if(g===l.length-1){if(!f)return;d===null?o.push(`M${g+r},${u+r} h1v1H${g+r}z`):o.push(`M${d+r},${u+r} h${g+1-d}v1H${d+r}z`);return}f&&d===null&&(d=g)})}),o.join("")}function Ne(s,r){return s.slice().map((o,l)=>l<r.y||l>=r.y+r.h?o:o.map((u,d)=>d<r.x||d>=r.x+r.w?u:!1))}function Xe(s,r,o,l){if(l==null)return null;const u=s.length+o*2,d=Math.floor(r*Ve),f=u/r,g=(l.width||d)*f,e=(l.height||d)*f,n=l.x==null?s.length/2-g/2:l.x*f,t=l.y==null?s.length/2-e/2:l.y*f,a=l.opacity==null?1:l.opacity;let i=null;if(l.excavate){let h=Math.floor(n),x=Math.floor(t),C=Math.ceil(g+n-h),M=Math.ceil(e+t-x);i={x:h,y:x,w:C,h:M}}const p=l.crossOrigin;return{x:n,y:t,h:e,w:g,excavation:i,opacity:a,crossOrigin:p}}function Ke(s,r){return r!=null?Math.max(Math.floor(r),0):s?Ge:We}function Re({value:s,level:r,minVersion:o,includeMargin:l,marginSize:u,imageSettings:d,size:f,boostLevel:g}){let e=m.useMemo(()=>{const h=(Array.isArray(s)?s:[s]).reduce((x,C)=>(x.push(...V.QrSegment.makeSegments(C)),x),[]);return V.QrCode.encodeSegments(h,Qe[r],o,void 0,void 0,g)},[s,r,o,g]);const{cells:n,margin:t,numCells:a,calculatedImageSettings:i}=m.useMemo(()=>{let p=e.getModules();const h=Ke(l,u),x=p.length+h*2,C=Xe(p,f,h,d);return{cells:p,margin:h,numCells:x,calculatedImageSettings:C}},[e,f,d,l,u]);return{qrcode:e,margin:t,cells:n,numCells:a,calculatedImageSettings:i}}var qe=(function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0})(),Ze=m.forwardRef(function(r,o){const l=r,{value:u,size:d=fe,level:f=ge,bgColor:g=Ce,fgColor:e=Ee,includeMargin:n=xe,minVersion:t=ve,boostLevel:a,marginSize:i,imageSettings:p}=l,x=oe(l,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","marginSize","imageSettings"]),{style:C}=x,M=oe(x,["style"]),N=p?.src,E=m.useRef(null),R=m.useRef(null),I=m.useCallback(U=>{E.current=U,typeof o=="function"?o(U):o&&(o.current=U)},[o]),[j,b]=m.useState(!1),{margin:T,cells:F,numCells:z,calculatedImageSettings:P}=Re({value:u,level:f,minVersion:t,boostLevel:a,includeMargin:n,marginSize:i,imageSettings:p,size:d});m.useEffect(()=>{if(E.current!=null){const U=E.current,S=U.getContext("2d");if(!S)return;let A=F;const D=R.current,Q=P!=null&&D!==null&&D.complete&&D.naturalHeight!==0&&D.naturalWidth!==0;Q&&P.excavation!=null&&(A=Ne(F,P.excavation));const q=window.devicePixelRatio||1;U.height=U.width=d*q;const Z=d/z*q;S.scale(Z,Z),S.fillStyle=g,S.fillRect(0,0,z,z),S.fillStyle=e,qe?S.fill(new Path2D(we(A,T))):F.forEach(function(G,H){G.forEach(function(te,ne){te&&S.fillRect(ne+T,H+T,1,1)})}),P&&(S.globalAlpha=P.opacity),Q&&S.drawImage(D,P.x+T,P.y+T,P.w,P.h)}}),m.useEffect(()=>{b(!1)},[N]);const _=se({height:d,width:d},C);let Y=null;return N!=null&&(Y=m.createElement("img",{src:N,key:N,style:{display:"none"},onLoad:()=>{b(!0)},ref:R,crossOrigin:P?.crossOrigin})),m.createElement(m.Fragment,null,m.createElement("canvas",se({style:_,height:d,width:d,ref:I,role:"img"},M)),Y)});Ze.displayName="QRCodeCanvas";var Me=m.forwardRef(function(r,o){const l=r,{value:u,size:d=fe,level:f=ge,bgColor:g=Ce,fgColor:e=Ee,includeMargin:n=xe,minVersion:t=ve,boostLevel:a,title:i,marginSize:p,imageSettings:h}=l,x=oe(l,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","title","marginSize","imageSettings"]),{margin:C,cells:M,numCells:N,calculatedImageSettings:E}=Re({value:u,level:f,minVersion:t,boostLevel:a,includeMargin:n,marginSize:p,imageSettings:h,size:d});let R=M,I=null;h!=null&&E!=null&&(E.excavation!=null&&(R=Ne(M,E.excavation)),I=m.createElement("image",{href:h.src,height:E.h,width:E.w,x:E.x+C,y:E.y+C,preserveAspectRatio:"none",opacity:E.opacity,crossOrigin:E.crossOrigin}));const j=we(R,C);return m.createElement("svg",se({height:d,width:d,viewBox:`0 0 ${N} ${N}`,ref:o,role:"img"},x),!!i&&m.createElement("title",null,i),m.createElement("path",{fill:g,d:`M0,0 h${N}v${N}H0z`,shapeRendering:"crispEdges"}),m.createElement("path",{fill:e,d:j,shapeRendering:"crispEdges"}),I)});Me.displayName="QRCodeSVG";const Je=(s,r)=>({invitationType:$.InvitationType.LINK,resources:[{url:`conversations/${encodeURI(s)}`},...r]}),et=s=>{const r=s?.invitationLink?.split("/").at(-1)||"";return`/${B.SHARE_CONVERSATION_ROUTE}/${r}`},tt=(s,r)=>r?.find(o=>{const l=s?.id?.split("/")?.pop(),u=o?.url?.split("/")?.pop()||"";return u===l||decodeURI(u)===l}),nt=s=>s?.messages?.filter(o=>!!o?.custom_content?.attachments)?.flatMap(o=>o?.custom_content?.attachments?.map(l=>({url:l?.url||""}))||[])?.filter(o=>!!o?.url)||[],st=({conversation:s,locale:r,onCloseModal:o,modalDividers:l,getConversation:u,generateConversationLink:d,chatExpiration:f,chatExpirationDays:g,close:e,chatWarning:n,shareLink:t,shareCopyLink:a,shareCopiedLink:i,shareDescription:p,shareRemoveAccessToUsers:h,chatName:x,getSharedConversations:C,revokeSharedConversations:M,baseUrl:N,id:E,clientSharedPage:R,clientSharedProp:I})=>{const[j,b]=m.useState(null),[T,F]=m.useState(),[z,P]=m.useState(!1),[_,Y]=m.useState(!1),[U,S]=m.useState(),A=m.useMemo(()=>{const G=N||window.location.origin;if(N&&N!==window.location.origin&&R&&I){const H=j?.split(`/${B.SHARE_CONVERSATION_ROUTE}/`)?.[1];return`${G}/${R}?${I}=${H}`}return`${G}/${r}${j}`},[N,j,r,R,I]);m.useEffect(()=>{(async()=>{try{const H=decodeURI(s?s?.id:`${E?.[0]}/${r}/${E?.[1]}`),te=`${decodeURI(H)}`,ne=await u?.(te),ye=Je(H,nt(ne)),ae=await d?.(ye),ie=await C?.($.getSharedConversationsRequest($.ShareTarget.OTHERS));ae&&ie&&(P(!0),b(et(ae)),F(tt(s,ie?.resources)))}catch(H){P(!1),console.error("Error sharing conversation",H)}})()},[s,d,u,C,E,r]);const D=m.useCallback(()=>{o(),b(null),P(!1),Y(!1)},[o]),Q=m.useCallback(()=>{Y(!0),navigator.clipboard.writeText(A||"")},[A]),q=async()=>{try{S(!0),T&&await M?.({resources:[T]})}catch(G){S(!1),console.error("Error revoking shared conversation",G)}},Z=m.useCallback(()=>c.jsx(v.Button,{buttonClassName:_?"text-button-secondary":"text-button-primary",iconBefore:_?c.jsx(X.IconCheck,{width:20,height:20}):c.jsx(X.IconCopy,{width:20,height:20}),title:_?i??"Copied":a??"Copy link",disabled:_,onClick:Q}),[_,Q,i,a]);return c.jsxs(v.Popup,{heading:t??"Share link",portalId:"share",size:v.PopUpSize.SM,dividers:l,onClose:D,closeButtonTitle:e??"Close",children:[z?c.jsxs("div",{className:"share flex flex-col gap-y-4 px-6 pb-6 overflow-auto sm:p-0",children:[s?.name?c.jsxs("div",{className:"flex share-info w-full",children:[c.jsx("p",{className:"share-info-title text-neutrals-800 mr-1 body-1",children:x??"Chat name:"}),c.jsx("h3",{className:"flex-1 min-w-0 truncate",title:s?.name,children:s?.name})]}):null,c.jsxs("div",{className:"flex share-info",children:[c.jsx("p",{className:"share-info-title text-neutrals-800 mr-1 body-1",children:f??"Link expiration date:"}),c.jsxs("h3",{children:["3 ",g??"days"]})]}),c.jsx(Me,{className:"self-center border border-neutrals-600 p-2 rounded min-h-[200px]",value:A,size:200}),c.jsx("p",{className:"body-2 text-neutrals-1000",children:p??"Your name, special instructions, and any messages you add after sharing remain confidential."}),c.jsx(v.InputWithIcon,{containerClasses:"share-input-container",cssClass:"share-input",readonly:!0,placeholder:A,value:A,inputId:"conversationLink",iconAfterInput:Z()})]}):c.jsx("div",{className:"flex justify-center items-center py-6 px-6",children:c.jsx(v.Loader,{})}),z?s&&T?c.jsx("div",{className:"remove-access",children:c.jsx(v.Button,{title:h??"Remove access to all users",buttonClassName:"remove-access-button py-3 px-4",isSmallButton:!0,disabled:U,onClick:q})}):c.jsx("p",{className:"body-2 text-neutrals-800 share-footer",children:n??"This chat has not been shared with anyone yet."}):c.jsx("div",{})]})},ot=({conversation:s,onCloseModal:r,renameConversation:o,locale:l,disableModalDividers:u,titles:d,isSmallButton:f})=>{const[g,e]=m.useState(s?.name||""),n=a=>{e(a)},t=()=>{const a=`${s?.folderId}/${encodeURIComponent(B.getClearedConversationName(g))}-${new Date().getTime()}`;o(`conversations/${s.id}`,`conversations/${a}`)};return c.jsxs(v.Popup,{heading:d?.renameTitle??"Rename conversation",portalId:"rename-conversation",containerClassName:"rename-conversation-popup",size:v.PopUpSize.SM,dividers:!u,onClose:r,closeButtonTitle:d?.close??"Cancel",children:[c.jsx("div",{className:"py-4 px-6 sm:px-0",lang:l,children:c.jsx(v.Input,{inputId:"rename",value:g,onChange:n,cssClass:"w-full"})}),c.jsxs("div",{className:"flex justify-end gap-x-2 py-3 px-6 delete-conversation-popup-footer",children:[c.jsx(v.Button,{buttonClassName:"cancel-button",title:d?.cancel??"Cancel",isSmallButton:f,onClick:a=>{a.stopPropagation(),r()}}),c.jsx(v.Button,{buttonClassName:"text-button-primary text-button-primary",title:d?.save??"Rename",isSmallButton:f,disabled:!g,onClick:a=>{a.stopPropagation(),t()}})]})]})},Se=({conversation:s,conversationStyles:r,shareConversationProps:o,onConversationDelete:l,getConversation:u,getFileBlob:d,renameConversation:f,triggerButton:g,locale:e,isDisabled:n})=>{const t=m.useMemo(()=>{const b=[{key:O.DELETE,title:r?.titles?.delete??"Delete",icon:r.actionsIcons?.[O.DELETE]}];return s?.model?.id?.endsWith(B.ONBOARDING_MODEL_POSTFIX)?b:[...s.isShared?[]:[{key:O.SHARE,title:r?.titles?.share??"Share",icon:r.actionsIcons?.[O.SHARE]},{key:O.RENAME,title:r?.titles?.rename??"Rename",icon:r.actionsIcons?.[O.RENAME]}],{key:O.EXPORT,title:r?.titles?.export??"Export",icon:r.actionsIcons?.[O.EXPORT]},...b]},[s.isShared,s?.model?.id,r.titles,r.actionsIcons]),[a,i]=m.useState(v.PopUpState.Closed),[p,h]=m.useState(v.PopUpState.Closed),[x,C]=m.useState(v.PopUpState.Closed),M=m.useCallback(()=>{i(v.PopUpState.Closed)},[i]),N=m.useCallback(()=>{h(v.PopUpState.Closed)},[h]),E=m.useCallback(()=>{C(v.PopUpState.Closed)},[C]),R=m.useCallback(()=>{l(s),M()},[s,l,M]),I=m.useCallback((b,T)=>{f(b,T),E()},[f,E]),j=b=>{b===O.DELETE&&i(v.PopUpState.Opened),b===O.SHARE&&h(v.PopUpState.Opened),b===O.RENAME&&C(v.PopUpState.Opened),b===O.EXPORT&&u(decodeURI(s.id)).then(T=>{ze(T,d).then(F=>{He(`data:application/zip;base64,${F}`,`chat_with_attachments_${new Date().toLocaleDateString()}.dial`)})})};return c.jsxs(c.Fragment,{children:[c.jsx(v.Dropdown,{containerClassName:"ml-3 group-hover:visible invisible",triggerButton:g??c.jsx(rt,{disabled:n}),options:t,openedClassName:"action-menu-opened",onOptionSelect:j,disabled:n}),a===v.PopUpState.Opened&&c.jsx(Oe,{titles:r.titles,locale:e,disableModalDividers:r.disableModalDividers,isSmallButton:r.isSmallModalButton,deleteConversation:R,onCloseModal:M}),p===v.PopUpState.Opened&&c.jsx(st,{conversation:s,locale:e,onCloseModal:N,...o}),x===v.PopUpState.Opened&&c.jsx(ot,{conversation:s,locale:e,titles:r.titles,renameConversation:I,onCloseModal:E,disableModalDividers:r.disableModalDividers,isSmallButton:r.isSmallModalButton})]})},rt=({disabled:s})=>c.jsx("div",{className:L("flex items-center justify-center w-[24px]",s?"cursor-not-allowed":"cursor-pointer"),children:c.jsx(X.IconDotsVertical,{width:20,height:20,stroke:2,className:"text-primary"})}),be=({conversation:s,selectedConversationId:r,searchQuery:o,onConversationClick:l,actions:u,locale:d,isDisabled:f,conversationStyles:g,shareConversationProps:e})=>{const n=m.useRef(null),t=B.getClearedConversationName(s?.name);return m.useEffect(()=>{if(s?.id===r&&n?.current){const a=n.current.parentElement?.parentElement?.parentElement;if(a){const i=n.current.getBoundingClientRect(),p=a.getBoundingClientRect(),h=i.height,x=p.height,M=i.top-p.top+a.scrollTop-(x/2-h/2);a.scrollTo({top:M,behavior:"smooth"})}}},[s,r]),c.jsxs("div",{ref:n,className:L("flex justify-between items-center py-2 px-3 border-transparent relative group border","conversation-item",r===s?.id&&"bg-hues-100 conversation-item-active",f?"cursor-not-allowed":"cursor-pointer hover:border-hues-600"),onClick:()=>!f&&l(s.folderId,s?.id),title:f?g?.titles?.noActionsAllowed:t,children:[c.jsxs("div",{className:"flex flex-1 min-w-0 items-center",children:[g.conversationItemIcon?g.conversationItemIcon:null,c.jsx("h3",{className:L("truncate font-semibold text-neutrals-1000 sm:body-2","conversation-item-text",r===s?.id?"conversation-item-text-active":""),title:f?g?.titles?.noActionsAllowed:t,children:o?.length?c.jsx(v.HighlightText,{text:t,highlightText:o}):t})]}),c.jsx(Se,{locale:d,conversationStyles:g,conversation:s,onConversationDelete:u.deleteConversation,getConversation:u.getConversation,getFileBlob:u.getFileBlob,renameConversation:u.renameConversation,shareConversationProps:e,isDisabled:f})]})},at=({handleConversationClick:s,actions:r,selectedConversationId:o,groupLabel:l,conversationStyles:u,groupedConversations:d,shareConversationProps:f,locale:g,isDisabled:e})=>{const[n,t]=m.useState(!1),a=m.useCallback(()=>{t(i=>!i)},[t]);return c.jsxs("div",{children:[c.jsxs("div",{className:"inline-flex gap-1 items-center text-neutrals-700 mb-3 cursor-pointer conversation-group-items-title",onClick:a,children:[c.jsx(X.IconCaretRightFilled,{className:L("w-3 h-3 conversation-group-items-arrow",n?"rotate-[90deg]":"rotate-0")}),c.jsx("span",{className:"body-3 conversation-group-items-title-text",children:De(l,u?.titles)})]}),!n&&c.jsx("div",{className:L("flex flex-col gap-y-3","conversation-group-items"),children:he(d).map(i=>c.jsx(be,{locale:g,isDisabled:e,conversationStyles:u,conversation:i,selectedConversationId:o,onConversationClick:s,actions:r,shareConversationProps:f},i.id||i.name))})]},l)},it=({searchQuery:s,isExpandedSearch:r,titles:o,searchIcon:l,onSearchConversations:u,toggleSearchField:d})=>c.jsx(c.Fragment,{children:r?c.jsx(v.InputWithIcon,{inputId:"conversations-search",placeholder:o?.searchPlaceholder??"Search",containerClasses:"conversation-list-search-input h-[40px] bg-transparent px-4 py-2 rounded-full border-neutrals-400 shadow-none",cssClass:"h-auto",value:s,iconAfterInput:c.jsx(v.IconButton,{buttonClassName:"text-button-tertiary items-center p-0 ml-4 border-0 w-5 h-5",onClick:d,icon:c.jsx(X.IconX,{})}),onChange:u}):c.jsx(v.Button,{buttonClassName:"text-button-tertiary p-0 search-button",iconBefore:l||c.jsx(X.IconSearch,{className:"w-5 h-5"}),onClick:d})}),lt=({conversations:s,selectedConversationId:r,searchQuery:o,conversationStyles:l,handleConversationClick:u,actions:d,locale:f,shareConversationProps:g})=>{const[e,n]=m.useState([]);return m.useEffect(()=>{n(he(s?.filter(t=>B.getClearedConversationName(t?.name)?.includes(o||""))))},[s,o]),c.jsx(c.Fragment,{children:e?.length?e.map(t=>c.jsx(be,{locale:f,conversationStyles:l,conversation:t,searchQuery:o,selectedConversationId:r,onConversationClick:u,actions:d,shareConversationProps:g},t.id)):c.jsx("h3",{className:"text-neutrals-800",children:l?.titles?.noConversation??"No conversations yet"})})},ct=({titles:s})=>c.jsxs("div",{className:"p-8 text-center flex flex-col",children:[c.jsx("p",{className:"text-neutrals-800",children:s?.noConversation??"No conversations yet"}),c.jsx("p",{className:"text-sm text-neutrals-800 mt-2",children:s?.clickNewChat??'Click "New Chat" to start a conversation'})]}),ut=({handleConversationClick:s,selectedConversationId:r,actions:o,children:l,isCollapsed:u,isStreaming:d,conversationStyles:f,conversations:g,locale:e,sharedConversations:n,setConversations:t,setSharedConversations:a,shareConversationProps:i,handleSelectedConversationRemove:p})=>{const[h,x]=m.useState({}),[C,M]=m.useState(!0),[N,E]=m.useState(""),[R,I]=m.useState(!1),{getConversations:j,getSharedConversations:b,deleteConversation:T,renameConversation:F}=o,z=m.useMemo(()=>!!N?.length,[N]);m.useEffect(()=>{x({...ue(n),...Te(g)})},[g,n]),m.useEffect(()=>{async function S(){try{M(!0);const A=await j(e),D=await b($.getSharedConversationsRequest($.ShareTarget.ME));t(B.cleanConversationNames(A)),a(B.cleanConversationNames(J(D,e)))}catch(A){console.error("Error loading conversation",A)}finally{M(!1)}}S()},[j,t,e,b,a]);const P=m.useCallback(async S=>{try{await T(S);const A=await j(e),D=await b($.getSharedConversationsRequest($.ShareTarget.ME));t(B.cleanConversationNames(A)),a(B.cleanConversationNames(J(D,e))),r===S?.id&&p()}catch(A){console.error("Error deleting conversation",A)}},[T,j,e,b,t,a,r,p]),_=m.useCallback(async(S,A)=>{try{M(!0),await F(S,A);const D=await j(e),Q=await b($.getSharedConversationsRequest($.ShareTarget.ME));t(B.cleanConversationNames(D)),a(B.cleanConversationNames(J(Q,e)))}catch(D){console.error("Error renaming conversation",D)}finally{M(!1)}},[j,e,b,t,a,F]),Y=m.useCallback(S=>{E(S)},[E]),U=m.useCallback(()=>{I(S=>!S),E("")},[I]);return C?c.jsx(v.Loader,{}):c.jsxs(c.Fragment,{children:[!u&&c.jsxs("div",{className:L("flex justify-between items-center",R?" pt-4 pb-0 sm:pt-10":" pt-6 pb-2 sm:pt-10"),children:[!R&&c.jsx("h3",{className:"text-neutrals-700 sm:body-2",children:f?.titles?.allChats??"All Chats"}),c.jsx(it,{searchQuery:N,searchIcon:f.searchIcon,titles:f.titles,isExpandedSearch:R,onSearchConversations:Y,toggleSearchField:U})]}),c.jsx("div",{className:L("scroll-hidden-container flex flex-col mt-4 flex-1 min-h-0 pr-2",z?"gap-y-1":"gap-y-6"),children:u?null:c.jsx(c.Fragment,{children:g?.length===0&&n?.length===0?c.jsx(ct,{titles:f.titles}):z?c.jsx(lt,{locale:e,conversationStyles:f,conversations:[...n,...g],searchQuery:N,selectedConversationId:r,handleConversationClick:s,shareConversationProps:i,actions:{...o,deleteConversation:P}}):Object.entries(h).map(([S,A])=>A?.length>0&&c.jsx(at,{locale:e,isDisabled:d,groupLabel:S,conversationStyles:f,groupedConversations:A,handleConversationClick:s,actions:{...o,deleteConversation:P,renameConversation:_},shareConversationProps:i,selectedConversationId:r},S))})}),l]})},dt=({onCloseModal:s,disableModalDividers:r,signOut:o,isSmallButton:l,locale:u,titles:d})=>c.jsxs(v.Popup,{heading:d?.popupTitle||"Log out?",portalId:"sign-out",containerClassName:"sign-out-popup",size:v.PopUpSize.SM,dividers:!r,onClose:s,closeButtonTitle:"Cancel",children:[c.jsx("div",{className:"py-4 px-6 sm:px-0",lang:u,children:d?.popupText}),c.jsxs("div",{className:"flex justify-end gap-x-2 py-3 px-6 delete-conversation-popup-footer",children:[c.jsx(v.Button,{buttonClassName:"cancel-button",title:d?.popupCancel||"Cancel",isSmallButton:l,onClick:f=>{f.stopPropagation(),s()}}),c.jsx(v.Button,{buttonClassName:"text-button-primary",title:d?.popupApply||"Sign Out",isSmallButton:l,onClick:f=>{f.stopPropagation(),o?.()}})]})]}),ht=({userInfo:s,signOutAction:r,styles:o,locale:l,titles:u})=>{const d=x=>x?.split(" ")?.map((C,M)=>M<2?C[0].toUpperCase():"")?.join("")??"",f=m.useMemo(()=>s?.name?d(s?.name):s?.email?.[0].toUpperCase()??"",[s]),[g,e]=m.useState(!1),n=s?.name?.split(" "),t=n?`${n?.[0]??""} ${n?.[1]?.[0]?n?.[1]?.[0]+".":""}`:s?.email??"",a=m.useCallback(()=>{e(!0)},[]),i=m.useCallback(()=>{e(!1)},[]),p=m.useMemo(()=>c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:L("cursor-pointer flex items-center justify-center size-11 rounded-[100px] p-[10px] sm:h-[32px] sm:w-[32px] flex-shrink-0",o?.initialStyles),children:f}),c.jsx("p",{className:L("h3 cursor-pointer overflow-hidden text-ellipsis",o?.userNameStyles),children:(o?.showShortName?t:s?.name)??s?.email??""})]}),[f,t,o,s]),h=m.useMemo(()=>c.jsxs("div",{className:L("py-1",o?.dropDownStyles),children:[o?.settingsIcon&&c.jsxs("button",{className:L("p-2 items-center flex gap-1 text-primary fill-primary body-1",o?.dropdownButtonStyles),title:u?.settings,children:[o?.settingsIcon,u?.settings||"Settings"]}),c.jsx("div",{className:L("h-0 border-t border-neutrals-600 my-2",o?.showSeparator?"block":"hidden")}),c.jsxs("button",{className:L("p-2 items-center flex gap-1 text-primary fill-primary body-1",o?.dropdownButtonStyles),title:u?.signOut,onClick:a,children:[o?.signOutIcon,u?.signOut||"Sign out",g&&c.jsx(dt,{onCloseModal:i,signOut:()=>r?.(),locale:l,disableModalDividers:o?.disableModalDividers,titles:u})]})]}),[o,u,a,g,i,l,r]);if(s)return c.jsx(v.Dropdown,{containerClassName:L("transition-opacity group-hover:opacity-100 shrink w-full",o?.dropdownContainerClassName),triggerButton:p,content:h,openedClassName:"action-menu-opened"})};exports.ActionMenu=Se;exports.ActionMenuItem=O;exports.ConversationList=ut;exports.User=ht;exports.getSharedConversationsGroup=ue;exports.transformSharedConversations=J;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),L=require("classnames"),m=require("react"),re=require("lodash"),v=require("@epam/statgpt-ui-components"),X=require("@tabler/icons-react"),Ae=require("jszip"),B=require("@epam/statgpt-shared-toolkit"),$=require("@epam/statgpt-dial-toolkit");var O=(s=>(s.DELETE="delete",s.EXPORT="export",s.SHARE="share",s.RENAME="rename",s))(O||{}),k=(s=>(s.SHARED="shared",s.TODAY="today",s.YESTERDAY="yesterday",s.WEEK="week",s.EARLIER="earlier",s))(k||{});const J=(s,r)=>s?.resources?.filter(o=>o?.parentPath===r)?.map(o=>{const l=`${o?.bucket}/${r}`,u=o?.url?.split("/")?.slice(1)?.join("/");return{...o,folderId:l,id:u,isShared:!0}})||[],ue=s=>({[k.SHARED]:s}),Ie={[k.TODAY]:[],[k.YESTERDAY]:[],[k.WEEK]:[],[k.EARLIER]:[]},de=(s,r)=>s.toDateString()===r.toDateString(),Pe=(s,r)=>{const o=new Date(s.getFullYear(),s.getMonth(),s.getDate()-1);return de(r,o)},je=(s,r)=>{const o=s.getTime()-r.getTime();return Math.floor(o/(1e3*60*60*24))},le=s=>s.updatedAt||Number(s.id?.split("-").pop()),De=s=>{const r=new Date,o=re.cloneDeep(Ie);for(const l of s)if(l.updatedAt){const u=new Date(l.updatedAt);let d;de(r,u)?d=o[k.TODAY]:Pe(r,u)?d=o[k.YESTERDAY]:je(r,u)<=7?d=o[k.WEEK]:d=o[k.EARLIER],d?.some(f=>f.id===l.id)||d.push(l)}return o},he=s=>s?.sort((r,o)=>(le(o)||0)-(le(r)||0)),Te=(s,r)=>s===k.SHARED?r?.shared||"Shared":s===k.TODAY?r?.today||"Today":s===k.YESTERDAY?r?.yesterday||"Yesterday":s===k.WEEK?r?.lastWeek||"Last week":r?.earlier||"Earlier",Oe=({onCloseModal:s,disableModalDividers:r,deleteConversation:o,isSmallButton:l,titles:u,locale:d})=>c.jsxs(v.Popup,{heading:u?.deleteTitle??"Delete conversation",portalId:"delete-conversation",containerClassName:"delete-conversation-popup",size:v.PopUpSize.SM,dividers:!r,onClose:s,closeButtonTitle:u?.close??"Cancel",children:[c.jsx("div",{className:"px-6 py-4 sm:px-0",lang:d,children:u?.deleteMessage??"Are you sure you want to delete this conversation? This action cannot be undone."}),c.jsxs("div",{className:"delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3",children:[c.jsx(v.Button,{buttonClassName:"cancel-button",title:u?.cancel??"Cancel",isSmallButton:l,onClick:f=>{f.stopPropagation(),s()}}),c.jsx(v.Button,{buttonClassName:"text-button-primary text-button-primary-error",title:u?.delete??"Delete",isSmallButton:l,onClick:f=>{f.stopPropagation(),o()}})]})]}),Le=s=>{const r=Fe(B.getConversationAttachments(s)).map(o=>({...o,relativePath:"",contentLength:0}));return re.uniqBy(r,o=>K(o.relativePath,o.name))},ke=s=>s.endsWith("/"),Be=s=>{const r=s.toLowerCase();return["data:","//","http://","https://","file://","ftp://","mailto:","telnet://","api/files"].some(o=>r.startsWith(o))},Ue=s=>{const r=K(...s.split("/").map(l=>decodeURIComponent(l))),o=r.lastIndexOf("/");return{absolutePath:r.slice(0,o),name:r.slice(o+1)}},Fe=s=>s?s.map(r=>{if(!r.url||Be(r.url)||ke(r.url))return null;const{absolutePath:o,name:l}=Ue(r.url);return{id:r.url,name:l,contentType:r.type,folderId:o,absolutePath:o}}).filter(Boolean):[];async function ze(s,r){const o=Le(s),l=new Ae;o.forEach(g=>{const e=encodeURI(K(g.absolutePath,g.name)),n=r(`${e}`.replace("files/","")),t=_e(g.folderId),a=K("res",t,g.name);l.file(a,n)});const u={version:5,history:[s].map($e)||[],folders:[]},d=JSON.stringify(u,null,2);return l.file("conversations/conversations_history.json",d),await l.generateAsync({type:"base64"})}const _e=s=>{const r=s.split("/");return r.length>2?K(...r.slice(2)):void 0},$e=s=>re.omit(s,["publicationInfo"]),K=(...s)=>s.filter(Boolean).join("/");function He(s,r){const o=document.createElement("a");o.download=r,o.href=s,o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}var Ye=Object.defineProperty,ee=Object.getOwnPropertySymbols,pe=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable,ce=(s,r,o)=>r in s?Ye(s,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):s[r]=o,se=(s,r)=>{for(var o in r||(r={}))pe.call(r,o)&&ce(s,o,r[o]);if(ee)for(var o of ee(r))me.call(r,o)&&ce(s,o,r[o]);return s},oe=(s,r)=>{var o={};for(var l in s)pe.call(s,l)&&r.indexOf(l)<0&&(o[l]=s[l]);if(s!=null&&ee)for(var l of ee(s))r.indexOf(l)<0&&me.call(s,l)&&(o[l]=s[l]);return o};var W;(s=>{const r=class w{constructor(e,n,t,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<w.MIN_VERSION||e>w.MAX_VERSION)throw new RangeError("Version value out of range");if(a<-1||a>7)throw new RangeError("Mask value out of range");this.size=e*4+17;let i=[];for(let h=0;h<this.size;h++)i.push(!1);for(let h=0;h<this.size;h++)this.modules.push(i.slice()),this.isFunction.push(i.slice());this.drawFunctionPatterns();const p=this.addEccAndInterleave(t);if(this.drawCodewords(p),a==-1){let h=1e9;for(let x=0;x<8;x++){this.applyMask(x),this.drawFormatBits(x);const C=this.getPenaltyScore();C<h&&(a=x,h=C),this.applyMask(x)}}u(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(e,n){const t=s.QrSegment.makeSegments(e);return w.encodeSegments(t,n)}static encodeBinary(e,n){const t=s.QrSegment.makeBytes(e);return w.encodeSegments([t],n)}static encodeSegments(e,n,t=1,a=40,i=-1,p=!0){if(!(w.MIN_VERSION<=t&&t<=a&&a<=w.MAX_VERSION)||i<-1||i>7)throw new RangeError("Invalid value");let h,x;for(h=t;;h++){const E=w.getNumDataCodewords(h,n)*8,R=f.getTotalBits(e,h);if(R<=E){x=R;break}if(h>=a)throw new RangeError("Data too long")}for(const E of[w.Ecc.MEDIUM,w.Ecc.QUARTILE,w.Ecc.HIGH])p&&x<=w.getNumDataCodewords(h,E)*8&&(n=E);let C=[];for(const E of e){o(E.mode.modeBits,4,C),o(E.numChars,E.mode.numCharCountBits(h),C);for(const R of E.getData())C.push(R)}u(C.length==x);const M=w.getNumDataCodewords(h,n)*8;u(C.length<=M),o(0,Math.min(4,M-C.length),C),o(0,(8-C.length%8)%8,C),u(C.length%8==0);for(let E=236;C.length<M;E^=253)o(E,8,C);let N=[];for(;N.length*8<C.length;)N.push(0);return C.forEach((E,R)=>N[R>>>3]|=E<<7-(R&7)),new w(h,n,N,i)}getModule(e,n){return 0<=e&&e<this.size&&0<=n&&n<this.size&&this.modules[n][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let t=0;t<this.size;t++)this.setFunctionModule(6,t,t%2==0),this.setFunctionModule(t,6,t%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);const e=this.getAlignmentPatternPositions(),n=e.length;for(let t=0;t<n;t++)for(let a=0;a<n;a++)t==0&&a==0||t==0&&a==n-1||t==n-1&&a==0||this.drawAlignmentPattern(e[t],e[a]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){const n=this.errorCorrectionLevel.formatBits<<3|e;let t=n;for(let i=0;i<10;i++)t=t<<1^(t>>>9)*1335;const a=(n<<10|t)^21522;u(a>>>15==0);for(let i=0;i<=5;i++)this.setFunctionModule(8,i,l(a,i));this.setFunctionModule(8,7,l(a,6)),this.setFunctionModule(8,8,l(a,7)),this.setFunctionModule(7,8,l(a,8));for(let i=9;i<15;i++)this.setFunctionModule(14-i,8,l(a,i));for(let i=0;i<8;i++)this.setFunctionModule(this.size-1-i,8,l(a,i));for(let i=8;i<15;i++)this.setFunctionModule(8,this.size-15+i,l(a,i));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;const n=this.version<<12|e;u(n>>>18==0);for(let t=0;t<18;t++){const a=l(n,t),i=this.size-11+t%3,p=Math.floor(t/3);this.setFunctionModule(i,p,a),this.setFunctionModule(p,i,a)}}drawFinderPattern(e,n){for(let t=-4;t<=4;t++)for(let a=-4;a<=4;a++){const i=Math.max(Math.abs(a),Math.abs(t)),p=e+a,h=n+t;0<=p&&p<this.size&&0<=h&&h<this.size&&this.setFunctionModule(p,h,i!=2&&i!=4)}}drawAlignmentPattern(e,n){for(let t=-2;t<=2;t++)for(let a=-2;a<=2;a++)this.setFunctionModule(e+a,n+t,Math.max(Math.abs(a),Math.abs(t))!=1)}setFunctionModule(e,n,t){this.modules[n][e]=t,this.isFunction[n][e]=!0}addEccAndInterleave(e){const n=this.version,t=this.errorCorrectionLevel;if(e.length!=w.getNumDataCodewords(n,t))throw new RangeError("Invalid argument");const a=w.NUM_ERROR_CORRECTION_BLOCKS[t.ordinal][n],i=w.ECC_CODEWORDS_PER_BLOCK[t.ordinal][n],p=Math.floor(w.getNumRawDataModules(n)/8),h=a-p%a,x=Math.floor(p/a);let C=[];const M=w.reedSolomonComputeDivisor(i);for(let E=0,R=0;E<a;E++){let I=e.slice(R,R+x-i+(E<h?0:1));R+=I.length;const j=w.reedSolomonComputeRemainder(I,M);E<h&&I.push(0),C.push(I.concat(j))}let N=[];for(let E=0;E<C[0].length;E++)C.forEach((R,I)=>{(E!=x-i||I>=h)&&N.push(R[E])});return u(N.length==p),N}drawCodewords(e){if(e.length!=Math.floor(w.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let a=0;a<this.size;a++)for(let i=0;i<2;i++){const p=t-i,x=(t+1&2)==0?this.size-1-a:a;!this.isFunction[x][p]&&n<e.length*8&&(this.modules[x][p]=l(e[n>>>3],7-(n&7)),n++)}}u(n==e.length*8)}applyMask(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(let n=0;n<this.size;n++)for(let t=0;t<this.size;t++){let a;switch(e){case 0:a=(t+n)%2==0;break;case 1:a=n%2==0;break;case 2:a=t%3==0;break;case 3:a=(t+n)%3==0;break;case 4:a=(Math.floor(t/3)+Math.floor(n/2))%2==0;break;case 5:a=t*n%2+t*n%3==0;break;case 6:a=(t*n%2+t*n%3)%2==0;break;case 7:a=((t+n)%2+t*n%3)%2==0;break;default:throw new Error("Unreachable")}!this.isFunction[n][t]&&a&&(this.modules[n][t]=!this.modules[n][t])}}getPenaltyScore(){let e=0;for(let i=0;i<this.size;i++){let p=!1,h=0,x=[0,0,0,0,0,0,0];for(let C=0;C<this.size;C++)this.modules[i][C]==p?(h++,h==5?e+=w.PENALTY_N1:h>5&&e++):(this.finderPenaltyAddHistory(h,x),p||(e+=this.finderPenaltyCountPatterns(x)*w.PENALTY_N3),p=this.modules[i][C],h=1);e+=this.finderPenaltyTerminateAndCount(p,h,x)*w.PENALTY_N3}for(let i=0;i<this.size;i++){let p=!1,h=0,x=[0,0,0,0,0,0,0];for(let C=0;C<this.size;C++)this.modules[C][i]==p?(h++,h==5?e+=w.PENALTY_N1:h>5&&e++):(this.finderPenaltyAddHistory(h,x),p||(e+=this.finderPenaltyCountPatterns(x)*w.PENALTY_N3),p=this.modules[C][i],h=1);e+=this.finderPenaltyTerminateAndCount(p,h,x)*w.PENALTY_N3}for(let i=0;i<this.size-1;i++)for(let p=0;p<this.size-1;p++){const h=this.modules[i][p];h==this.modules[i][p+1]&&h==this.modules[i+1][p]&&h==this.modules[i+1][p+1]&&(e+=w.PENALTY_N2)}let n=0;for(const i of this.modules)n=i.reduce((p,h)=>p+(h?1:0),n);const t=this.size*this.size,a=Math.ceil(Math.abs(n*20-t*10)/t)-1;return u(0<=a&&a<=9),e+=a*w.PENALTY_N4,u(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{const e=Math.floor(this.version/7)+2,n=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2;let t=[6];for(let a=this.size-7;t.length<e;a-=n)t.splice(1,0,a);return t}}static getNumRawDataModules(e){if(e<w.MIN_VERSION||e>w.MAX_VERSION)throw new RangeError("Version number out of range");let n=(16*e+128)*e+64;if(e>=2){const t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return u(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(w.getNumRawDataModules(e)/8)-w.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*w.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw new RangeError("Degree out of range");let n=[];for(let a=0;a<e-1;a++)n.push(0);n.push(1);let t=1;for(let a=0;a<e;a++){for(let i=0;i<n.length;i++)n[i]=w.reedSolomonMultiply(n[i],t),i+1<n.length&&(n[i]^=n[i+1]);t=w.reedSolomonMultiply(t,2)}return n}static reedSolomonComputeRemainder(e,n){let t=n.map(a=>0);for(const a of e){const i=a^t.shift();t.push(0),n.forEach((p,h)=>t[h]^=w.reedSolomonMultiply(p,i))}return t}static reedSolomonMultiply(e,n){if(e>>>8||n>>>8)throw new RangeError("Byte out of range");let t=0;for(let a=7;a>=0;a--)t=t<<1^(t>>>7)*285,t^=(n>>>a&1)*e;return u(t>>>8==0),t}finderPenaltyCountPatterns(e){const n=e[1];u(n<=this.size*3);const t=n>0&&e[2]==n&&e[3]==n*3&&e[4]==n&&e[5]==n;return(t&&e[0]>=n*4&&e[6]>=n?1:0)+(t&&e[6]>=n*4&&e[0]>=n?1:0)}finderPenaltyTerminateAndCount(e,n,t){return e&&(this.finderPenaltyAddHistory(n,t),n=0),n+=this.size,this.finderPenaltyAddHistory(n,t),this.finderPenaltyCountPatterns(t)}finderPenaltyAddHistory(e,n){n[0]==0&&(e+=this.size),n.pop(),n.unshift(e)}};r.MIN_VERSION=1,r.MAX_VERSION=40,r.PENALTY_N1=3,r.PENALTY_N2=3,r.PENALTY_N3=40,r.PENALTY_N4=10,r.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],r.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],s.QrCode=r;function o(g,e,n){if(e<0||e>31||g>>>e)throw new RangeError("Value out of range");for(let t=e-1;t>=0;t--)n.push(g>>>t&1)}function l(g,e){return(g>>>e&1)!=0}function u(g){if(!g)throw new Error("Assertion error")}const d=class y{constructor(e,n,t){if(this.mode=e,this.numChars=n,this.bitData=t,n<0)throw new RangeError("Invalid argument");this.bitData=t.slice()}static makeBytes(e){let n=[];for(const t of e)o(t,8,n);return new y(y.Mode.BYTE,e.length,n)}static makeNumeric(e){if(!y.isNumeric(e))throw new RangeError("String contains non-numeric characters");let n=[];for(let t=0;t<e.length;){const a=Math.min(e.length-t,3);o(parseInt(e.substring(t,t+a),10),a*3+1,n),t+=a}return new y(y.Mode.NUMERIC,e.length,n)}static makeAlphanumeric(e){if(!y.isAlphanumeric(e))throw new RangeError("String contains unencodable characters in alphanumeric mode");let n=[],t;for(t=0;t+2<=e.length;t+=2){let a=y.ALPHANUMERIC_CHARSET.indexOf(e.charAt(t))*45;a+=y.ALPHANUMERIC_CHARSET.indexOf(e.charAt(t+1)),o(a,11,n)}return t<e.length&&o(y.ALPHANUMERIC_CHARSET.indexOf(e.charAt(t)),6,n),new y(y.Mode.ALPHANUMERIC,e.length,n)}static makeSegments(e){return e==""?[]:y.isNumeric(e)?[y.makeNumeric(e)]:y.isAlphanumeric(e)?[y.makeAlphanumeric(e)]:[y.makeBytes(y.toUtf8ByteArray(e))]}static makeEci(e){let n=[];if(e<0)throw new RangeError("ECI assignment value out of range");if(e<128)o(e,8,n);else if(e<16384)o(2,2,n),o(e,14,n);else if(e<1e6)o(6,3,n),o(e,21,n);else throw new RangeError("ECI assignment value out of range");return new y(y.Mode.ECI,0,n)}static isNumeric(e){return y.NUMERIC_REGEX.test(e)}static isAlphanumeric(e){return y.ALPHANUMERIC_REGEX.test(e)}getData(){return this.bitData.slice()}static getTotalBits(e,n){let t=0;for(const a of e){const i=a.mode.numCharCountBits(n);if(a.numChars>=1<<i)return 1/0;t+=4+i+a.bitData.length}return t}static toUtf8ByteArray(e){e=encodeURI(e);let n=[];for(let t=0;t<e.length;t++)e.charAt(t)!="%"?n.push(e.charCodeAt(t)):(n.push(parseInt(e.substring(t+1,t+3),16)),t+=2);return n}};d.NUMERIC_REGEX=/^[0-9]*$/,d.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,d.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";let f=d;s.QrSegment=d})(W||(W={}));(s=>{(r=>{const o=class{constructor(u,d){this.ordinal=u,this.formatBits=d}};o.LOW=new o(0,1),o.MEDIUM=new o(1,0),o.QUARTILE=new o(2,3),o.HIGH=new o(3,2),r.Ecc=o})(s.QrCode||(s.QrCode={}))})(W||(W={}));(s=>{(r=>{const o=class{constructor(u,d){this.modeBits=u,this.numBitsCharCount=d}numCharCountBits(u){return this.numBitsCharCount[Math.floor((u+7)/17)]}};o.NUMERIC=new o(1,[10,12,14]),o.ALPHANUMERIC=new o(2,[9,11,13]),o.BYTE=new o(4,[8,16,16]),o.KANJI=new o(8,[8,10,12]),o.ECI=new o(7,[0,0,0]),r.Mode=o})(s.QrSegment||(s.QrSegment={}))})(W||(W={}));var V=W;var Qe={L:V.QrCode.Ecc.LOW,M:V.QrCode.Ecc.MEDIUM,Q:V.QrCode.Ecc.QUARTILE,H:V.QrCode.Ecc.HIGH},fe=128,ge="L",Ce="#FFFFFF",Ee="#000000",xe=!1,ve=1,Ge=4,We=0,Ve=.1;function we(s,r=0){const o=[];return s.forEach(function(l,u){let d=null;l.forEach(function(f,g){if(!f&&d!==null){o.push(`M${d+r} ${u+r}h${g-d}v1H${d+r}z`),d=null;return}if(g===l.length-1){if(!f)return;d===null?o.push(`M${g+r},${u+r} h1v1H${g+r}z`):o.push(`M${d+r},${u+r} h${g+1-d}v1H${d+r}z`);return}f&&d===null&&(d=g)})}),o.join("")}function Ne(s,r){return s.slice().map((o,l)=>l<r.y||l>=r.y+r.h?o:o.map((u,d)=>d<r.x||d>=r.x+r.w?u:!1))}function Xe(s,r,o,l){if(l==null)return null;const u=s.length+o*2,d=Math.floor(r*Ve),f=u/r,g=(l.width||d)*f,e=(l.height||d)*f,n=l.x==null?s.length/2-g/2:l.x*f,t=l.y==null?s.length/2-e/2:l.y*f,a=l.opacity==null?1:l.opacity;let i=null;if(l.excavate){let h=Math.floor(n),x=Math.floor(t),C=Math.ceil(g+n-h),M=Math.ceil(e+t-x);i={x:h,y:x,w:C,h:M}}const p=l.crossOrigin;return{x:n,y:t,h:e,w:g,excavation:i,opacity:a,crossOrigin:p}}function Ke(s,r){return r!=null?Math.max(Math.floor(r),0):s?Ge:We}function Re({value:s,level:r,minVersion:o,includeMargin:l,marginSize:u,imageSettings:d,size:f,boostLevel:g}){let e=m.useMemo(()=>{const h=(Array.isArray(s)?s:[s]).reduce((x,C)=>(x.push(...V.QrSegment.makeSegments(C)),x),[]);return V.QrCode.encodeSegments(h,Qe[r],o,void 0,void 0,g)},[s,r,o,g]);const{cells:n,margin:t,numCells:a,calculatedImageSettings:i}=m.useMemo(()=>{let p=e.getModules();const h=Ke(l,u),x=p.length+h*2,C=Xe(p,f,h,d);return{cells:p,margin:h,numCells:x,calculatedImageSettings:C}},[e,f,d,l,u]);return{qrcode:e,margin:t,cells:n,numCells:a,calculatedImageSettings:i}}var qe=(function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0})(),Ze=m.forwardRef(function(r,o){const l=r,{value:u,size:d=fe,level:f=ge,bgColor:g=Ce,fgColor:e=Ee,includeMargin:n=xe,minVersion:t=ve,boostLevel:a,marginSize:i,imageSettings:p}=l,x=oe(l,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","marginSize","imageSettings"]),{style:C}=x,M=oe(x,["style"]),N=p?.src,E=m.useRef(null),R=m.useRef(null),I=m.useCallback(U=>{E.current=U,typeof o=="function"?o(U):o&&(o.current=U)},[o]),[j,b]=m.useState(!1),{margin:D,cells:F,numCells:z,calculatedImageSettings:P}=Re({value:u,level:f,minVersion:t,boostLevel:a,includeMargin:n,marginSize:i,imageSettings:p,size:d});m.useEffect(()=>{if(E.current!=null){const U=E.current,S=U.getContext("2d");if(!S)return;let A=F;const T=R.current,Q=P!=null&&T!==null&&T.complete&&T.naturalHeight!==0&&T.naturalWidth!==0;Q&&P.excavation!=null&&(A=Ne(F,P.excavation));const q=window.devicePixelRatio||1;U.height=U.width=d*q;const Z=d/z*q;S.scale(Z,Z),S.fillStyle=g,S.fillRect(0,0,z,z),S.fillStyle=e,qe?S.fill(new Path2D(we(A,D))):F.forEach(function(G,H){G.forEach(function(te,ne){te&&S.fillRect(ne+D,H+D,1,1)})}),P&&(S.globalAlpha=P.opacity),Q&&S.drawImage(T,P.x+D,P.y+D,P.w,P.h)}}),m.useEffect(()=>{b(!1)},[N]);const _=se({height:d,width:d},C);let Y=null;return N!=null&&(Y=m.createElement("img",{src:N,key:N,style:{display:"none"},onLoad:()=>{b(!0)},ref:R,crossOrigin:P?.crossOrigin})),m.createElement(m.Fragment,null,m.createElement("canvas",se({style:_,height:d,width:d,ref:I,role:"img"},M)),Y)});Ze.displayName="QRCodeCanvas";var Me=m.forwardRef(function(r,o){const l=r,{value:u,size:d=fe,level:f=ge,bgColor:g=Ce,fgColor:e=Ee,includeMargin:n=xe,minVersion:t=ve,boostLevel:a,title:i,marginSize:p,imageSettings:h}=l,x=oe(l,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","title","marginSize","imageSettings"]),{margin:C,cells:M,numCells:N,calculatedImageSettings:E}=Re({value:u,level:f,minVersion:t,boostLevel:a,includeMargin:n,marginSize:p,imageSettings:h,size:d});let R=M,I=null;h!=null&&E!=null&&(E.excavation!=null&&(R=Ne(M,E.excavation)),I=m.createElement("image",{href:h.src,height:E.h,width:E.w,x:E.x+C,y:E.y+C,preserveAspectRatio:"none",opacity:E.opacity,crossOrigin:E.crossOrigin}));const j=we(R,C);return m.createElement("svg",se({height:d,width:d,viewBox:`0 0 ${N} ${N}`,ref:o,role:"img"},x),!!i&&m.createElement("title",null,i),m.createElement("path",{fill:g,d:`M0,0 h${N}v${N}H0z`,shapeRendering:"crispEdges"}),m.createElement("path",{fill:e,d:j,shapeRendering:"crispEdges"}),I)});Me.displayName="QRCodeSVG";const Je=(s,r)=>({invitationType:$.InvitationType.LINK,resources:[{url:`conversations/${encodeURI(s)}`},...r]}),et=s=>{const r=s?.invitationLink?.split("/").at(-1)||"";return`/${B.SHARE_CONVERSATION_ROUTE}/${r}`},tt=(s,r)=>r?.find(o=>{const l=s?.id?.split("/")?.pop(),u=o?.url?.split("/")?.pop()||"";return u===l||decodeURI(u)===l}),nt=s=>s?.messages?.filter(o=>!!o?.custom_content?.attachments)?.flatMap(o=>o?.custom_content?.attachments?.map(l=>({url:l?.url||""}))||[])?.filter(o=>!!o?.url)||[],st=({conversation:s,locale:r,onCloseModal:o,modalDividers:l,getConversation:u,generateConversationLink:d,chatExpiration:f,chatExpirationDays:g,close:e,chatWarning:n,shareLink:t,shareCopyLink:a,shareCopiedLink:i,shareDescription:p,shareRemoveAccessToUsers:h,chatName:x,getSharedConversations:C,revokeSharedConversations:M,baseUrl:N,id:E,clientSharedPage:R,clientSharedProp:I})=>{const[j,b]=m.useState(null),[D,F]=m.useState(),[z,P]=m.useState(!1),[_,Y]=m.useState(!1),[U,S]=m.useState(),A=m.useMemo(()=>{const G=N||window.location.origin;if(N&&N!==window.location.origin&&R&&I){const H=j?.split(`/${B.SHARE_CONVERSATION_ROUTE}/`)?.[1];return`${G}/${R}?${I}=${H}`}return`${G}/${r}${j}`},[N,j,r,R,I]);m.useEffect(()=>{(async()=>{try{const H=decodeURI(s?s?.id:`${E?.[0]}/${r}/${E?.[1]}`),te=`${decodeURI(H)}`,ne=await u?.(te),ye=Je(H,nt(ne)),ae=await d?.(ye),ie=await C?.($.getSharedConversationsRequest($.ShareTarget.OTHERS));ae&&ie&&(P(!0),b(et(ae)),F(tt(s,ie?.resources)))}catch(H){P(!1),console.error("Error sharing conversation",H)}})()},[s,d,u,C,E,r]);const T=m.useCallback(()=>{o(),b(null),P(!1),Y(!1)},[o]),Q=m.useCallback(()=>{Y(!0),navigator.clipboard.writeText(A||"")},[A]),q=async()=>{try{S(!0),D&&await M?.({resources:[D]})}catch(G){S(!1),console.error("Error revoking shared conversation",G)}},Z=m.useCallback(()=>c.jsx(v.Button,{buttonClassName:_?"text-button-secondary":"text-button-primary",iconBefore:_?c.jsx(X.IconCheck,{width:20,height:20}):c.jsx(X.IconCopy,{width:20,height:20}),title:_?i??"Copied":a??"Copy link",disabled:_,onClick:Q}),[_,Q,i,a]);return c.jsxs(v.Popup,{heading:t??"Share link",portalId:"share",size:v.PopUpSize.SM,dividers:l,onClose:T,closeButtonTitle:e??"Close",children:[z?c.jsxs("div",{className:"share flex flex-col gap-y-4 overflow-auto px-6 pb-6 sm:p-0",children:[s?.name?c.jsxs("div",{className:"share-info flex w-full",children:[c.jsx("p",{className:"share-info-title body-1 mr-1 text-neutrals-800",children:x??"Chat name:"}),c.jsx("h3",{className:"min-w-0 flex-1 truncate",title:s?.name,children:s?.name})]}):null,c.jsxs("div",{className:"share-info flex",children:[c.jsx("p",{className:"share-info-title body-1 mr-1 text-neutrals-800",children:f??"Link expiration date:"}),c.jsxs("h3",{children:["3 ",g??"days"]})]}),c.jsx(Me,{className:"min-h-[200px] self-center rounded border border-neutrals-600 p-2",value:A,size:200}),c.jsx("p",{className:"body-2 text-neutrals-1000",children:p??"Your name, special instructions, and any messages you add after sharing remain confidential."}),c.jsx(v.InputWithIcon,{containerClasses:"share-input-container",cssClass:"share-input",readonly:!0,placeholder:A,value:A,inputId:"conversationLink",iconAfterInput:Z()})]}):c.jsx("div",{className:"flex items-center justify-center p-6",children:c.jsx(v.Loader,{})}),z?s&&D?c.jsx("div",{className:"remove-access",children:c.jsx(v.Button,{title:h??"Remove access to all users",buttonClassName:"remove-access-button py-3 px-4",isSmallButton:!0,disabled:U,onClick:q})}):c.jsx("p",{className:"body-2 share-footer text-neutrals-800",children:n??"This chat has not been shared with anyone yet."}):c.jsx("div",{})]})},ot=({conversation:s,onCloseModal:r,renameConversation:o,locale:l,disableModalDividers:u,titles:d,isSmallButton:f})=>{const[g,e]=m.useState(s?.name||""),n=a=>{e(a)},t=()=>{const a=`${s?.folderId}/${encodeURIComponent(B.getClearedConversationName(g))}-${new Date().getTime()}`;o(`conversations/${s.id}`,`conversations/${a}`)};return c.jsxs(v.Popup,{heading:d?.renameTitle??"Rename conversation",portalId:"rename-conversation",containerClassName:"rename-conversation-popup",size:v.PopUpSize.SM,dividers:!u,onClose:r,closeButtonTitle:d?.close??"Cancel",children:[c.jsx("div",{className:"px-6 py-4 sm:px-0",lang:l,children:c.jsx(v.Input,{inputId:"rename",value:g,onChange:n,cssClass:"w-full"})}),c.jsxs("div",{className:"delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3",children:[c.jsx(v.Button,{buttonClassName:"cancel-button",title:d?.cancel??"Cancel",isSmallButton:f,onClick:a=>{a.stopPropagation(),r()}}),c.jsx(v.Button,{buttonClassName:"text-button-primary text-button-primary",title:d?.save??"Rename",isSmallButton:f,disabled:!g,onClick:a=>{a.stopPropagation(),t()}})]})]})},Se=({conversation:s,conversationStyles:r,shareConversationProps:o,onConversationDelete:l,getConversation:u,getFileBlob:d,renameConversation:f,triggerButton:g,locale:e,isDisabled:n})=>{const t=m.useMemo(()=>{const b=[{key:O.DELETE,title:r?.titles?.delete??"Delete",icon:r.actionsIcons?.[O.DELETE]}];return s?.model?.id?.endsWith(B.ONBOARDING_MODEL_POSTFIX)?b:[...s.isShared?[]:[{key:O.SHARE,title:r?.titles?.share??"Share",icon:r.actionsIcons?.[O.SHARE]},{key:O.RENAME,title:r?.titles?.rename??"Rename",icon:r.actionsIcons?.[O.RENAME]}],{key:O.EXPORT,title:r?.titles?.export??"Export",icon:r.actionsIcons?.[O.EXPORT]},...b]},[s.isShared,s?.model?.id,r.titles,r.actionsIcons]),[a,i]=m.useState(v.PopUpState.Closed),[p,h]=m.useState(v.PopUpState.Closed),[x,C]=m.useState(v.PopUpState.Closed),M=m.useCallback(()=>{i(v.PopUpState.Closed)},[i]),N=m.useCallback(()=>{h(v.PopUpState.Closed)},[h]),E=m.useCallback(()=>{C(v.PopUpState.Closed)},[C]),R=m.useCallback(()=>{l(s),M()},[s,l,M]),I=m.useCallback((b,D)=>{f(b,D),E()},[f,E]),j=b=>{b===O.DELETE&&i(v.PopUpState.Opened),b===O.SHARE&&h(v.PopUpState.Opened),b===O.RENAME&&C(v.PopUpState.Opened),b===O.EXPORT&&u(decodeURI(s.id)).then(D=>{ze(D,d).then(F=>{He(`data:application/zip;base64,${F}`,`chat_with_attachments_${new Date().toLocaleDateString()}.dial`)})})};return c.jsxs(c.Fragment,{children:[c.jsx(v.Dropdown,{containerClassName:"ml-3 group-hover:visible invisible",triggerButton:g??c.jsx(rt,{disabled:n}),options:t,openedClassName:"action-menu-opened",onOptionSelect:j,disabled:n}),a===v.PopUpState.Opened&&c.jsx(Oe,{titles:r.titles,locale:e,disableModalDividers:r.disableModalDividers,isSmallButton:r.isSmallModalButton,deleteConversation:R,onCloseModal:M}),p===v.PopUpState.Opened&&c.jsx(st,{conversation:s,locale:e,onCloseModal:N,...o}),x===v.PopUpState.Opened&&c.jsx(ot,{conversation:s,locale:e,titles:r.titles,renameConversation:I,onCloseModal:E,disableModalDividers:r.disableModalDividers,isSmallButton:r.isSmallModalButton})]})},rt=({disabled:s})=>c.jsx("div",{className:L("flex items-center justify-center w-[24px]",s?"cursor-not-allowed":"cursor-pointer"),children:c.jsx(X.IconDotsVertical,{width:20,height:20,stroke:2,className:"text-primary"})}),be=({conversation:s,selectedConversationId:r,searchQuery:o,onConversationClick:l,actions:u,locale:d,isDisabled:f,conversationStyles:g,shareConversationProps:e})=>{const n=m.useRef(null),t=B.getClearedConversationName(s?.name);return m.useEffect(()=>{if(s?.id===r&&n?.current){const a=n.current.parentElement?.parentElement?.parentElement;if(a){const i=n.current.getBoundingClientRect(),p=a.getBoundingClientRect(),h=i.height,x=p.height,M=i.top-p.top+a.scrollTop-(x/2-h/2);a.scrollTo({top:M,behavior:"smooth"})}}},[s,r]),c.jsxs("div",{ref:n,className:L("flex justify-between items-center py-2 px-3 border-transparent relative group border","conversation-item",r===s?.id&&"bg-hues-100 conversation-item-active",f?"cursor-not-allowed":"cursor-pointer hover:border-hues-600"),onClick:()=>!f&&l(s.folderId,s?.id),title:f?g?.titles?.noActionsAllowed:t,children:[c.jsxs("div",{className:"flex min-w-0 flex-1 items-center",children:[g.conversationItemIcon?g.conversationItemIcon:null,c.jsx("h3",{className:L("truncate font-semibold text-neutrals-1000 sm:body-2","conversation-item-text",r===s?.id?"conversation-item-text-active":""),title:f?g?.titles?.noActionsAllowed:t,children:o?.length?c.jsx(v.HighlightText,{text:t,highlightText:o}):t})]}),c.jsx(Se,{locale:d,conversationStyles:g,conversation:s,onConversationDelete:u.deleteConversation,getConversation:u.getConversation,getFileBlob:u.getFileBlob,renameConversation:u.renameConversation,shareConversationProps:e,isDisabled:f})]})},at=({handleConversationClick:s,actions:r,selectedConversationId:o,groupLabel:l,conversationStyles:u,groupedConversations:d,shareConversationProps:f,locale:g,isDisabled:e})=>{const[n,t]=m.useState(!1),a=m.useCallback(()=>{t(i=>!i)},[t]);return c.jsxs("div",{children:[c.jsxs("div",{className:"conversation-group-items-title mb-3 inline-flex cursor-pointer items-center gap-1 text-neutrals-700",onClick:a,children:[c.jsx(X.IconCaretRightFilled,{className:L("w-3 h-3 conversation-group-items-arrow",n?"rotate-[90deg]":"rotate-0")}),c.jsx("span",{className:"body-3 conversation-group-items-title-text",children:Te(l,u?.titles)})]}),!n&&c.jsx("div",{className:L("flex flex-col gap-y-3","conversation-group-items"),children:he(d).map(i=>c.jsx(be,{locale:g,isDisabled:e,conversationStyles:u,conversation:i,selectedConversationId:o,onConversationClick:s,actions:r,shareConversationProps:f},i.id||i.name))})]},l)},it=({searchQuery:s,isExpandedSearch:r,titles:o,searchIcon:l,onSearchConversations:u,toggleSearchField:d})=>c.jsx(c.Fragment,{children:r?c.jsx(v.InputWithIcon,{inputId:"conversations-search",placeholder:o?.searchPlaceholder??"Search",containerClasses:"conversation-list-search-input h-[40px] bg-transparent px-4 py-2 rounded-full border-neutrals-400 shadow-none",cssClass:"h-auto",value:s,iconAfterInput:c.jsx(v.IconButton,{buttonClassName:"text-button-tertiary items-center p-0 ml-4 border-0 w-5 h-5",onClick:d,icon:c.jsx(X.IconX,{})}),onChange:u}):c.jsx(v.Button,{buttonClassName:"text-button-tertiary p-0 search-button",iconBefore:l||c.jsx(X.IconSearch,{className:"size-5"}),onClick:d})}),lt=({conversations:s,selectedConversationId:r,searchQuery:o,conversationStyles:l,handleConversationClick:u,actions:d,locale:f,shareConversationProps:g,isDisabled:e})=>{const[n,t]=m.useState([]);return m.useEffect(()=>{t(he(s?.filter(a=>B.getClearedConversationName(a?.name)?.includes(o||""))))},[s,o]),c.jsx(c.Fragment,{children:n?.length?n.map(a=>c.jsx(be,{locale:f,conversationStyles:l,conversation:a,searchQuery:o,selectedConversationId:r,onConversationClick:u,actions:d,shareConversationProps:g,isDisabled:e},a.id)):c.jsx("h3",{className:"text-neutrals-800",children:l?.titles?.noConversation??"No conversations yet"})})},ct=({titles:s})=>c.jsxs("div",{className:"flex flex-col p-8 text-center",children:[c.jsx("p",{className:"text-neutrals-800",children:s?.noConversation??"No conversations yet"}),c.jsx("p",{className:"mt-2 text-sm text-neutrals-800",children:s?.clickNewChat??'Click "New Chat" to start a conversation'})]}),ut=({handleConversationClick:s,selectedConversationId:r,actions:o,children:l,isCollapsed:u,isStreaming:d,conversationStyles:f,conversations:g,locale:e,sharedConversations:n,setConversations:t,setSharedConversations:a,shareConversationProps:i,handleSelectedConversationRemove:p})=>{const[h,x]=m.useState({}),[C,M]=m.useState(!0),[N,E]=m.useState(""),[R,I]=m.useState(!1),{getConversations:j,getSharedConversations:b,deleteConversation:D,renameConversation:F}=o,z=m.useMemo(()=>!!N?.length,[N]);m.useEffect(()=>{x({...ue(n),...De(g)})},[g,n]),m.useEffect(()=>{async function S(){try{M(!0);const A=await j(e),T=await b($.getSharedConversationsRequest($.ShareTarget.ME));t(B.cleanConversationNames(A)),a(B.cleanConversationNames(J(T,e)))}catch(A){console.error("Error loading conversation",A)}finally{M(!1)}}S()},[j,t,e,b,a]);const P=m.useCallback(async S=>{try{await D(S);const A=await j(e),T=await b($.getSharedConversationsRequest($.ShareTarget.ME));t(B.cleanConversationNames(A)),a(B.cleanConversationNames(J(T,e))),r===S?.id&&p()}catch(A){console.error("Error deleting conversation",A)}},[D,j,e,b,t,a,r,p]),_=m.useCallback(async(S,A)=>{try{M(!0),await F(S,A);const T=await j(e),Q=await b($.getSharedConversationsRequest($.ShareTarget.ME));t(B.cleanConversationNames(T)),a(B.cleanConversationNames(J(Q,e)))}catch(T){console.error("Error renaming conversation",T)}finally{M(!1)}},[j,e,b,t,a,F]),Y=m.useCallback(S=>{E(S)},[E]),U=m.useCallback(()=>{I(S=>!S),E("")},[I]);return C?c.jsx(v.Loader,{}):c.jsxs(c.Fragment,{children:[!u&&c.jsxs("div",{className:L("flex justify-between items-center",R?" pt-4 pb-0 sm:pt-10":" pt-6 pb-2 sm:pt-10"),children:[!R&&c.jsx("h3",{className:"sm:body-2 text-neutrals-700",children:f?.titles?.allChats??"All Chats"}),c.jsx(it,{searchQuery:N,searchIcon:f.searchIcon,titles:f.titles,isExpandedSearch:R,onSearchConversations:Y,toggleSearchField:U})]}),c.jsx("div",{className:L("scroll-hidden-container flex flex-col mt-4 flex-1 min-h-0 pr-2",z?"gap-y-1":"gap-y-6"),children:u?null:c.jsx(c.Fragment,{children:g?.length===0&&n?.length===0?c.jsx(ct,{titles:f.titles}):z?c.jsx(lt,{locale:e,conversationStyles:f,conversations:[...n,...g],searchQuery:N,selectedConversationId:r,handleConversationClick:s,shareConversationProps:i,isDisabled:d,actions:{...o,deleteConversation:P}}):Object.entries(h).map(([S,A])=>A?.length>0&&c.jsx(at,{locale:e,isDisabled:d,groupLabel:S,conversationStyles:f,groupedConversations:A,handleConversationClick:s,actions:{...o,deleteConversation:P,renameConversation:_},shareConversationProps:i,selectedConversationId:r},S))})}),l]})},dt=({onCloseModal:s,disableModalDividers:r,signOut:o,isSmallButton:l,locale:u,titles:d})=>c.jsxs(v.Popup,{heading:d?.popupTitle||"Log out?",portalId:"sign-out",containerClassName:"sign-out-popup",size:v.PopUpSize.SM,dividers:!r,onClose:s,closeButtonTitle:"Cancel",children:[c.jsx("div",{className:"px-6 py-4 sm:px-0",lang:u,children:d?.popupText}),c.jsxs("div",{className:"delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3",children:[c.jsx(v.Button,{buttonClassName:"cancel-button",title:d?.popupCancel||"Cancel",isSmallButton:l,onClick:f=>{f.stopPropagation(),s()}}),c.jsx(v.Button,{buttonClassName:"text-button-primary",title:d?.popupApply||"Sign Out",isSmallButton:l,onClick:f=>{f.stopPropagation(),o?.()}})]})]}),ht=({userInfo:s,signOutAction:r,styles:o,locale:l,titles:u})=>{const d=x=>x?.split(" ")?.map((C,M)=>M<2?C[0].toUpperCase():"")?.join("")??"",f=m.useMemo(()=>s?.name?d(s?.name):s?.email?.[0].toUpperCase()??"",[s]),[g,e]=m.useState(!1),n=s?.name?.split(" "),t=n?`${n?.[0]??""} ${n?.[1]?.[0]?n?.[1]?.[0]+".":""}`:s?.email??"",a=m.useCallback(()=>{e(!0)},[]),i=m.useCallback(()=>{e(!1)},[]),p=m.useMemo(()=>c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:L("cursor-pointer flex items-center justify-center size-11 rounded-[100px] p-[10px] sm:h-[32px] sm:w-[32px] flex-shrink-0",o?.initialStyles),children:f}),c.jsx("p",{className:L("h3 cursor-pointer overflow-hidden text-ellipsis",o?.userNameStyles),children:(o?.showShortName?t:s?.name)??s?.email??""})]}),[f,t,o,s]),h=m.useMemo(()=>c.jsxs("div",{className:L("py-1",o?.dropDownStyles),children:[o?.settingsIcon&&c.jsxs("button",{className:L("p-2 items-center flex gap-1 text-primary fill-primary body-1",o?.dropdownButtonStyles),title:u?.settings,children:[o?.settingsIcon,u?.settings||"Settings"]}),c.jsx("div",{className:L("h-0 border-t border-neutrals-600 my-2",o?.showSeparator?"block":"hidden")}),c.jsxs("button",{className:L("p-2 items-center flex gap-1 text-primary fill-primary body-1",o?.dropdownButtonStyles),title:u?.signOut,onClick:a,children:[o?.signOutIcon,u?.signOut||"Sign out",g&&c.jsx(dt,{onCloseModal:i,signOut:()=>r?.(),locale:l,disableModalDividers:o?.disableModalDividers,titles:u})]})]}),[o,u,a,g,i,l,r]);if(s)return c.jsx(v.Dropdown,{containerClassName:L("transition-opacity group-hover:opacity-100 shrink w-full",o?.dropdownContainerClassName),triggerButton:p,content:h,openedClassName:"action-menu-opened"})};exports.ActionMenu=Se;exports.ActionMenuItem=O;exports.ConversationList=ut;exports.User=ht;exports.getSharedConversationsGroup=ue;exports.transformSharedConversations=J;
package/index.mjs CHANGED
@@ -64,8 +64,8 @@ const ue = (o, s) => o?.resources?.filter((r) => r?.parentPath === s)?.map((r) =
64
64
  onClose: o,
65
65
  closeButtonTitle: c?.close ?? "Cancel",
66
66
  children: [
67
- /* @__PURE__ */ m("div", { className: "py-4 px-6 sm:px-0", lang: d, children: c?.deleteMessage ?? "Are you sure you want to delete this conversation? This action cannot be undone." }),
68
- /* @__PURE__ */ y("div", { className: "flex justify-end gap-x-2 py-3 px-6 delete-conversation-popup-footer", children: [
67
+ /* @__PURE__ */ m("div", { className: "px-6 py-4 sm:px-0", lang: d, children: c?.deleteMessage ?? "Are you sure you want to delete this conversation? This action cannot be undone." }),
68
+ /* @__PURE__ */ y("div", { className: "delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3", children: [
69
69
  /* @__PURE__ */ m(
70
70
  Q,
71
71
  {
@@ -1087,20 +1087,20 @@ const bt = (o, s) => ({
1087
1087
  onClose: L,
1088
1088
  closeButtonTitle: e ?? "Close",
1089
1089
  children: [
1090
- H ? /* @__PURE__ */ y("div", { className: "share flex flex-col gap-y-4 px-6 pb-6 overflow-auto sm:p-0", children: [
1091
- o?.name ? /* @__PURE__ */ y("div", { className: "flex share-info w-full", children: [
1092
- /* @__PURE__ */ m("p", { className: "share-info-title text-neutrals-800 mr-1 body-1", children: E ?? "Chat name:" }),
1090
+ H ? /* @__PURE__ */ y("div", { className: "share flex flex-col gap-y-4 overflow-auto px-6 pb-6 sm:p-0", children: [
1091
+ o?.name ? /* @__PURE__ */ y("div", { className: "share-info flex w-full", children: [
1092
+ /* @__PURE__ */ m("p", { className: "share-info-title body-1 mr-1 text-neutrals-800", children: E ?? "Chat name:" }),
1093
1093
  /* @__PURE__ */ m(
1094
1094
  "h3",
1095
1095
  {
1096
- className: "flex-1 min-w-0 truncate",
1096
+ className: "min-w-0 flex-1 truncate",
1097
1097
  title: o?.name,
1098
1098
  children: o?.name
1099
1099
  }
1100
1100
  )
1101
1101
  ] }) : null,
1102
- /* @__PURE__ */ y("div", { className: "flex share-info", children: [
1103
- /* @__PURE__ */ m("p", { className: "share-info-title text-neutrals-800 mr-1 body-1", children: f ?? "Link expiration date:" }),
1102
+ /* @__PURE__ */ y("div", { className: "share-info flex", children: [
1103
+ /* @__PURE__ */ m("p", { className: "share-info-title body-1 mr-1 text-neutrals-800", children: f ?? "Link expiration date:" }),
1104
1104
  /* @__PURE__ */ y("h3", { children: [
1105
1105
  "3 ",
1106
1106
  p ?? "days"
@@ -1109,7 +1109,7 @@ const bt = (o, s) => ({
1109
1109
  /* @__PURE__ */ m(
1110
1110
  ke,
1111
1111
  {
1112
- className: "self-center border border-neutrals-600 p-2 rounded min-h-[200px]",
1112
+ className: "min-h-[200px] self-center rounded border border-neutrals-600 p-2",
1113
1113
  value: b,
1114
1114
  size: 200
1115
1115
  }
@@ -1127,7 +1127,7 @@ const bt = (o, s) => ({
1127
1127
  iconAfterInput: oe()
1128
1128
  }
1129
1129
  )
1130
- ] }) : /* @__PURE__ */ m("div", { className: "flex justify-center items-center py-6 px-6", children: /* @__PURE__ */ m(we, {}) }),
1130
+ ] }) : /* @__PURE__ */ m("div", { className: "flex items-center justify-center p-6", children: /* @__PURE__ */ m(we, {}) }),
1131
1131
  H ? o && O ? /* @__PURE__ */ m("div", { className: "remove-access", children: /* @__PURE__ */ m(
1132
1132
  Q,
1133
1133
  {
@@ -1137,7 +1137,7 @@ const bt = (o, s) => ({
1137
1137
  disabled: $,
1138
1138
  onClick: ne
1139
1139
  }
1140
- ) }) : /* @__PURE__ */ m("p", { className: "body-2 text-neutrals-800 share-footer", children: n ?? "This chat has not been shared with anyone yet." }) : /* @__PURE__ */ m("div", {})
1140
+ ) }) : /* @__PURE__ */ m("p", { className: "body-2 share-footer text-neutrals-800", children: n ?? "This chat has not been shared with anyone yet." }) : /* @__PURE__ */ m("div", {})
1141
1141
  ]
1142
1142
  }
1143
1143
  );
@@ -1170,7 +1170,7 @@ const bt = (o, s) => ({
1170
1170
  onClose: s,
1171
1171
  closeButtonTitle: d?.close ?? "Cancel",
1172
1172
  children: [
1173
- /* @__PURE__ */ m("div", { className: "py-4 px-6 sm:px-0", lang: l, children: /* @__PURE__ */ m(
1173
+ /* @__PURE__ */ m("div", { className: "px-6 py-4 sm:px-0", lang: l, children: /* @__PURE__ */ m(
1174
1174
  Ye,
1175
1175
  {
1176
1176
  inputId: "rename",
@@ -1179,7 +1179,7 @@ const bt = (o, s) => ({
1179
1179
  cssClass: "w-full"
1180
1180
  }
1181
1181
  ) }),
1182
- /* @__PURE__ */ y("div", { className: "flex justify-end gap-x-2 py-3 px-6 delete-conversation-popup-footer", children: [
1182
+ /* @__PURE__ */ y("div", { className: "delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3", children: [
1183
1183
  /* @__PURE__ */ m(
1184
1184
  Q,
1185
1185
  {
@@ -1373,7 +1373,7 @@ const bt = (o, s) => ({
1373
1373
  onClick: () => !f && l(o.folderId, o?.id),
1374
1374
  title: f ? p?.titles?.noActionsAllowed : t,
1375
1375
  children: [
1376
- /* @__PURE__ */ y("div", { className: "flex flex-1 min-w-0 items-center", children: [
1376
+ /* @__PURE__ */ y("div", { className: "flex min-w-0 flex-1 items-center", children: [
1377
1377
  p.conversationItemIcon ? p.conversationItemIcon : null,
1378
1378
  /* @__PURE__ */ m(
1379
1379
  "h3",
@@ -1429,7 +1429,7 @@ const bt = (o, s) => ({
1429
1429
  /* @__PURE__ */ y(
1430
1430
  "div",
1431
1431
  {
1432
- className: "inline-flex gap-1 items-center text-neutrals-700 mb-3 cursor-pointer conversation-group-items-title",
1432
+ className: "conversation-group-items-title mb-3 inline-flex cursor-pointer items-center gap-1 text-neutrals-700",
1433
1433
  onClick: i,
1434
1434
  children: [
1435
1435
  /* @__PURE__ */ m(
@@ -1500,7 +1500,7 @@ const bt = (o, s) => ({
1500
1500
  Q,
1501
1501
  {
1502
1502
  buttonClassName: "text-button-tertiary p-0 search-button",
1503
- iconBefore: l || /* @__PURE__ */ m(Ze, { className: "w-5 h-5" }),
1503
+ iconBefore: l || /* @__PURE__ */ m(Ze, { className: "size-5" }),
1504
1504
  onClick: d
1505
1505
  }
1506
1506
  ) }), Ft = ({
@@ -1511,36 +1511,38 @@ const bt = (o, s) => ({
1511
1511
  handleConversationClick: c,
1512
1512
  actions: d,
1513
1513
  locale: f,
1514
- shareConversationProps: p
1514
+ shareConversationProps: p,
1515
+ isDisabled: e
1515
1516
  }) => {
1516
- const [e, n] = T([]);
1517
+ const [n, t] = T([]);
1517
1518
  return ee(() => {
1518
- n(
1519
+ t(
1519
1520
  ye(
1520
1521
  o?.filter(
1521
- (t) => fe(t?.name)?.includes(
1522
+ (i) => fe(i?.name)?.includes(
1522
1523
  r || ""
1523
1524
  )
1524
1525
  )
1525
1526
  )
1526
1527
  );
1527
- }, [o, r]), /* @__PURE__ */ m(q, { children: e?.length ? e.map((t) => /* @__PURE__ */ m(
1528
+ }, [o, r]), /* @__PURE__ */ m(q, { children: n?.length ? n.map((i) => /* @__PURE__ */ m(
1528
1529
  Fe,
1529
1530
  {
1530
1531
  locale: f,
1531
1532
  conversationStyles: l,
1532
- conversation: t,
1533
+ conversation: i,
1533
1534
  searchQuery: r,
1534
1535
  selectedConversationId: s,
1535
1536
  onConversationClick: c,
1536
1537
  actions: d,
1537
- shareConversationProps: p
1538
+ shareConversationProps: p,
1539
+ isDisabled: e
1538
1540
  },
1539
- t.id
1541
+ i.id
1540
1542
  )) : /* @__PURE__ */ m("h3", { className: "text-neutrals-800", children: l?.titles?.noConversation ?? "No conversations yet" }) });
1541
- }, Ut = ({ titles: o }) => /* @__PURE__ */ y("div", { className: "p-8 text-center flex flex-col", children: [
1543
+ }, Ut = ({ titles: o }) => /* @__PURE__ */ y("div", { className: "flex flex-col p-8 text-center", children: [
1542
1544
  /* @__PURE__ */ m("p", { className: "text-neutrals-800", children: o?.noConversation ?? "No conversations yet" }),
1543
- /* @__PURE__ */ m("p", { className: "text-sm text-neutrals-800 mt-2", children: o?.clickNewChat ?? 'Click "New Chat" to start a conversation' })
1545
+ /* @__PURE__ */ m("p", { className: "mt-2 text-sm text-neutrals-800", children: o?.clickNewChat ?? 'Click "New Chat" to start a conversation' })
1544
1546
  ] }), Zt = ({
1545
1547
  handleConversationClick: o,
1546
1548
  selectedConversationId: s,
@@ -1663,7 +1665,7 @@ const bt = (o, s) => ({
1663
1665
  R ? " pt-4 pb-0 sm:pt-10" : " pt-6 pb-2 sm:pt-10"
1664
1666
  ),
1665
1667
  children: [
1666
- !R && /* @__PURE__ */ m("h3", { className: "text-neutrals-700 sm:body-2", children: f?.titles?.allChats ?? "All Chats" }),
1668
+ !R && /* @__PURE__ */ m("h3", { className: "sm:body-2 text-neutrals-700", children: f?.titles?.allChats ?? "All Chats" }),
1667
1669
  /* @__PURE__ */ m(
1668
1670
  kt,
1669
1671
  {
@@ -1695,6 +1697,7 @@ const bt = (o, s) => ({
1695
1697
  selectedConversationId: s,
1696
1698
  handleConversationClick: o,
1697
1699
  shareConversationProps: a,
1700
+ isDisabled: d,
1698
1701
  actions: {
1699
1702
  ...r,
1700
1703
  deleteConversation: P
@@ -1743,8 +1746,8 @@ const bt = (o, s) => ({
1743
1746
  onClose: o,
1744
1747
  closeButtonTitle: "Cancel",
1745
1748
  children: [
1746
- /* @__PURE__ */ m("div", { className: "py-4 px-6 sm:px-0", lang: c, children: d?.popupText }),
1747
- /* @__PURE__ */ y("div", { className: "flex justify-end gap-x-2 py-3 px-6 delete-conversation-popup-footer", children: [
1749
+ /* @__PURE__ */ m("div", { className: "px-6 py-4 sm:px-0", lang: c, children: d?.popupText }),
1750
+ /* @__PURE__ */ y("div", { className: "delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3", children: [
1748
1751
  /* @__PURE__ */ m(
1749
1752
  Q,
1750
1753
  {
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@epam/statgpt-conversation-list",
3
- "version": "0.4.0-rc.2",
3
+ "version": "0.4.0-rc.21",
4
4
  "license": "MIT",
5
5
  "dependencies": {
6
6
  "@tabler/icons-react": "^3.34.1",
7
7
  "@epam/ai-dial-shared": "^0.43.3",
8
- "@epam/statgpt-ui-components": "0.4.0-rc.2",
8
+ "@epam/statgpt-ui-components": "0.4.0-rc.21",
9
9
  "classnames": "^2.5.1",
10
- "@epam/statgpt-shared-toolkit": "0.4.0-rc.2",
11
- "@epam/statgpt-dial-toolkit": "0.4.0-rc.2",
10
+ "@epam/statgpt-shared-toolkit": "0.4.0-rc.21",
11
+ "@epam/statgpt-dial-toolkit": "0.4.0-rc.21",
12
12
  "jszip": "3.10.1",
13
13
  "lodash": "^4.17.23"
14
14
  },