@pickaxeproject/react 0.0.37 → 0.0.38

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 (47) hide show
  1. package/dist/cjs/common/api/streamer.js +1 -1
  2. package/dist/cjs/common/utils.js +1 -1
  3. package/dist/cjs/components/Core/Modal/CloseButton.js +1 -0
  4. package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -1
  5. package/dist/cjs/components/Pickaxe/Form/Questions/Submit.js +1 -1
  6. package/dist/cjs/components/Pickaxe/Provider.js +1 -1
  7. package/dist/cjs/components/Pickaxe/ResponseProvider.js +1 -1
  8. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/Custom/A/index.js +1 -1
  9. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/Custom/Code/index.js +1 -0
  10. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/Custom/Iframe/index.js +1 -0
  11. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/Custom/Img/ImgModal.js +1 -0
  12. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/Custom/Img/index.js +1 -1
  13. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/Custom/common/Action.js +1 -1
  14. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/Renderer.js +1 -1
  15. package/dist/cjs/components/Pickaxe/index.js +1 -1
  16. package/dist/cjs/src/common/utils.d.ts +1 -0
  17. package/dist/cjs/src/components/Pickaxe/Provider.d.ts +8 -4
  18. package/dist/cjs/src/components/Pickaxe/ResponseProvider.d.ts +0 -1
  19. package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown/Custom/Code/index.d.ts +4 -0
  20. package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown/Custom/Iframe/index.d.ts +4 -0
  21. package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown/Custom/Img/ImgModal.d.ts +8 -0
  22. package/dist/cjs/src/hooks/pickaxe/usePickaxeContext.d.ts +3 -1
  23. package/dist/cjs/src/hooks/pickaxe/useResponseContext.d.ts +0 -1
  24. package/dist/esm/common/api/streamer.js +1 -1
  25. package/dist/esm/common/utils.js +1 -1
  26. package/dist/esm/components/Core/Modal/CloseButton.js +1 -0
  27. package/dist/esm/components/Pickaxe/Chat/Input.js +1 -1
  28. package/dist/esm/components/Pickaxe/Form/Questions/Submit.js +1 -1
  29. package/dist/esm/components/Pickaxe/Provider.js +1 -1
  30. package/dist/esm/components/Pickaxe/ResponseProvider.js +1 -1
  31. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/Custom/A/index.js +1 -1
  32. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/Custom/Code/index.js +1 -0
  33. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/Custom/Iframe/index.js +1 -0
  34. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/Custom/Img/ImgModal.js +1 -0
  35. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/Custom/Img/index.js +1 -1
  36. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/Custom/common/Action.js +1 -1
  37. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/Renderer.js +1 -1
  38. package/dist/esm/components/Pickaxe/index.js +1 -1
  39. package/dist/esm/src/common/utils.d.ts +1 -0
  40. package/dist/esm/src/components/Pickaxe/Provider.d.ts +8 -4
  41. package/dist/esm/src/components/Pickaxe/ResponseProvider.d.ts +0 -1
  42. package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown/Custom/Code/index.d.ts +4 -0
  43. package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown/Custom/Iframe/index.d.ts +4 -0
  44. package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown/Custom/Img/ImgModal.d.ts +8 -0
  45. package/dist/esm/src/hooks/pickaxe/usePickaxeContext.d.ts +3 -1
  46. package/dist/esm/src/hooks/pickaxe/useResponseContext.d.ts +0 -1
  47. package/package.json +5 -2
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js");exports.streamer=r=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=yield fetch(`${process.env.NEXT_PUBLIC_API_UTILS_URL}/streamer`,{method:"POST",body:JSON.stringify(r)});if(200!==e.status){const r=yield e.json();throw new Error(r.detail)}return e}));
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js");exports.streamer=r=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=yield fetch(`${process.env.NEXT_PUBLIC_API_UTILS_URL}/streamer`,{method:"POST",body:JSON.stringify(r)});if(200!==e.status){const r=yield e.json();throw new Error(r.error)}return e}));
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.extractUrlsFromText=t=>{const e=t.match(/(https?:\/\/[^\s]+)/g)||[];return Array.from(new Set(e))},exports.generateId=(t,e="",r="")=>{let o="";for(let e=0;e<t;e++){o+="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[Math.floor(36*Math.random())]}return e+o+r},exports.randomStr=(t,e=!1)=>{let r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";e&&(r=r.replace(/[0-9]/g,""));let o="";for(let e=0;e<t;e++)o+=r.charAt(Math.floor(Math.random()*r.length));return o};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.extractUrlsFromText=t=>{const r=t.match(/(https?:\/\/[^\s]+)/g)||[];return Array.from(new Set(r))},exports.generateId=(t,r="",e="")=>{let o="";for(let r=0;r<t;r++){o+="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[Math.floor(36*Math.random())]}return r+o+e},exports.getContrastColor=t=>{if(!t)return"#FFFFFF";return(299*parseInt(t.substring(1,2),16)+587*parseInt(t.substring(3,2),16)+114*parseInt(t.substring(5,2),16))/1e3>=128?"#000000":"#FFFFFF"},exports.randomStr=(t,r=!1)=>{let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";r&&(e=e.replace(/[0-9]/g,""));let o="";for(let r=0;r<t;r++)o+=e.charAt(Math.floor(Math.random()*e.length));return o};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("./index.js"),r=require("../../Icons/x.svg.js"),n=require("../../../common/cn.js");exports.default=({className:o,iconClassName:a,icon:i,onClick:c})=>{const{setIsOpen:u}=s.useContext(t.ModalContext);return e.jsx("button",Object.assign({className:n.default("outline-none hover:opacity-70 hover:duration-300 active:opacity-100",o),onClick:()=>{u(!1),c&&c()}},{children:i||e.jsx(r.default,{className:n.default("h-6 w-6 shrink-0",a)})}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),s=require("react/jsx-runtime"),t=require("react"),o=require("../../../hooks/core/useMediaQuery.js"),r=require("../../../hooks/pickaxe/usePickaxeContext.js"),i=require("../../../hooks/pickaxe/useResponseContext.js"),n=require("../../../hooks/studio/useStyleInput.js"),a=require("../../../hooks/studio/useStyleFontSize.js"),l=require("../../../hooks/pickaxe/useConversation.js"),d=require("../../../hooks/pickaxe/useSubmit.js"),u=require("../../../hooks/pickaxe/useSubmitResult.js"),c=require("../Addons/Document/hooks/useDocument.js"),m=require("../Addons/Scroll/hooks/useScroll.js"),p=require("../../../common/documents.js"),h=require("../../../common/api/streamer.js"),x=require("../../../node_modules/.pnpm/react-textarea-autosize@8.5.7_@types_react@18.3.18_react@18.3.1/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js"),g=require("../../Icons/attach.svg.js"),f=require("../../Icons/send.svg.js"),v=require("../Addons/IceBreaker/index.js"),b=require("../../../common/error.js"),j=require("../../../common/cn.js");exports.default=()=>{var y;const{formId:k,chatId:I,userId:w,studioUserId:q,pickaxe:S,colors:D,responsiveBy:O,isNewChat:N,isForceMobile:_,setIsNewChat:A,setIsShowIceBreaker:C}=r.usePickaxeContext(),{messages:E,status:M,limits:R,setMessages:U,setStatus:z,setLimitData:F,setError:B}=i.useResponseContext(),{documents:T,isUploading:P,isImageUploadAllowed:L,upsertDocuments:K,onFileUpload:Q,onEditDocumentByDocId:W}=c.useDocument(),{isScrollIncreasing:V,scrollToBottom:G,scrollStart:H,scrollEnd:J}=m.useScroll(),X=l.useConversation(),Y=d.useSubmit(),Z=u.useSubmitResult(),[$,ee]=t.useState(""),se=t.useRef(null),[te]=o.useMediaQuery("(max-width: 767px)"),oe=n.useStyleInput(),re=a.useStyleFontSize({type:"body"}),ie=t.useMemo((()=>{var e,s,t;return!!N&&(!!S&&(!X.isLoading&&(!((null!==(s=null===(e=X.data)||void 0===e?void 0:e.messages.length)&&void 0!==s?s:0)>1)&&!!(null===(t=S.icebreakers)||void 0===t?void 0:t.length))))}),[S,N,X.data,X.isLoading]);t.useEffect((()=>{C(ie)}),[ie]);const ne=s=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(P)return;F(null),B(""),A(!1);const e=null!=s?s:$;if(!e||"fetching"===M||"streaming"===M)return;const t=new Date;ee("");const o="enduserupload"===(null==S?void 0:S.documentuploadtype),r=T.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";z("fetching");const n=[...E,{id:E.length+1,role:"user",content:e}];U(n),H(),G();const{success:a,data:l,usedDocumentIds:d,newDocumentId:u,newDocumentName:c,isInsertedFile:m,error:p}=yield Y.mutateAsync(Object.assign(Object.assign({formId:k,responseId:I,value:e},o&&i&&{documentId:i}),q&&{studioUserId:q}));if(!a)throw new Error(null!=p?p:"An error occurred, please try again.");m&&i&&W({documentId:i,isInsertedAsRaw:!0}),u&&c&&K([{type:"website",id:c,name:c,status:"finished",documentId:u}]),G();const x=(yield h.streamer({formId:k,responseId:I,data:l})).body;if(!x)throw new Error("Streaming error");const g=x.getReader(),f=new TextDecoder,v=n.length;let b="",j=!0;for(z("streaming");j;){const{value:e,done:s}=yield g.read();j=!s;if(b+=f.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",b),b)U([...n.slice(0,v),{id:E.length+1,role:"assistant",content:b}]),V&&G();else if(!j&&!b)throw new Error("Server error")}const y=new Date;b&&(G(),z("idle"),yield Z.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:k,responseId:I,documentIds:d},w&&{userId:w}),q&&{studioUserId:q}),q&&(null==S?void 0:S.studioid)&&{studioId:S.studioid}),{messages:[{role:"user",message:e,sentAt:t},{role:"assistant",message:b,sentAt:y}]})))}catch(e){let s=b.default(e);s.includes("Unexpected token 'A',")&&(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(R).find((([e])=>s.includes(e)));t?F(t[1]):B(s),G()}finally{z("idle"),J()}}));return s.jsxs("div",Object.assign({className:j.default("fixed flex w-full flex-col bottom-0 left-0","viewport"===O?"min-[767px]:relative min-[767px]:bottom-auto min-[767px]:left-auto":"absolute @[767px]/pickaxe-root:relative @[767px]/pickaxe-root:bottom-auto @[767px]/pickaxe-root:left-auto")},{children:[ie&&s.jsx(v.default,{data:(null==S?void 0:S.icebreakers)||[],style:{backgroundColor:D.secondary,color:D.secondaryText},isMobile:_||te,onSend:ne}),s.jsxs("div",Object.assign({style:oe,className:"flex min-h-[56px] items-end gap-x-2 px-4 py-3 pb-[15px] shadow"},{children:["enduserupload"===(null==S?void 0:S.documentuploadtype)&&s.jsxs("div",Object.assign({className:"tooltip"},{children:[s.jsx("input",{id:"file-upload",ref:se,type:"file",accept:[...p.allowedFileMimeTypes,...L?p.allowedImageMimeTypes:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:s=>e.__awaiter(void 0,void 0,void 0,(function*(){yield Q(Array.from(s.target.files||[])),s.target.value=""}))}),s.jsx("button",Object.assign({className:"flex items-center disabled:cursor-wait disabled:opacity-50",disabled:P,onClick:()=>{var e;return null===(e=se.current)||void 0===e?void 0:e.click()}},{children:s.jsx(g.default,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:D.accent}})}))]})),s.jsx(x.default,{className:j.default(re("max-h-60 w-full resize-none border-transparent bg-transparent outline-none ring-0 scrollbar scrollbar-thin placeholder:font-semilight"),!$.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:$,placeholder:null!==(y=null==S?void 0:S.placeholdertext)&&void 0!==y?y:"What do you want to talk about?",onChange:e=>ee(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),ne())}}),s.jsx("button",Object.assign({className:"outline-none disabled:cursor-default disabled:opacity-50",disabled:"idle"!==M||P,onClick:()=>ne()},{children:s.jsx(f.default,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:D.accent}})}))]}))]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),s=require("react/jsx-runtime"),t=require("react"),o=require("../../../hooks/core/useMediaQuery.js"),r=require("../../../hooks/pickaxe/usePickaxeContext.js"),i=require("../../../hooks/pickaxe/useResponseContext.js"),n=require("../../../hooks/studio/useStyleInput.js"),a=require("../../../hooks/studio/useStyleFontSize.js"),l=require("../../../hooks/pickaxe/useConversation.js"),d=require("../../../hooks/pickaxe/useSubmit.js"),u=require("../../../hooks/pickaxe/useSubmitResult.js"),c=require("../Addons/Document/hooks/useDocument.js"),m=require("../Addons/Scroll/hooks/useScroll.js"),p=require("../../../common/documents.js"),h=require("../../../common/api/streamer.js"),x=require("../../../node_modules/.pnpm/react-textarea-autosize@8.5.7_@types_react@18.3.18_react@18.3.1/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js"),f=require("../../Icons/attach.svg.js"),g=require("../../Icons/send.svg.js"),v=require("../Addons/IceBreaker/index.js"),b=require("../../../common/error.js"),j=require("../../../common/cn.js");exports.default=()=>{var y;const{formId:k,chatId:I,userId:w,studioUserId:q,pickaxe:S,colors:D,responsiveBy:O,isNewChat:C,forceMobile:N,setIsNewChat:_,setIsShowIceBreaker:A,onGenerateComplete:E}=r.usePickaxeContext(),{messages:M,status:R,limits:U,setMessages:z,setStatus:B,setLimitData:F,setError:T}=i.useResponseContext(),{documents:P,isUploading:L,isImageUploadAllowed:K,upsertDocuments:Q,onFileUpload:W,onEditDocumentByDocId:G}=c.useDocument(),{isScrollIncreasing:V,scrollToBottom:H,scrollStart:J,scrollEnd:X}=m.useScroll(),Y=l.useConversation(),Z=d.useSubmit(),$=u.useSubmitResult(),[ee,se]=t.useState(""),te=t.useRef(null),[oe]=o.useMediaQuery("(max-width: 767px)"),re=n.useStyleInput(),ie=a.useStyleFontSize({type:"body"}),ne=t.useMemo((()=>{var e,s,t;return!!C&&(!!S&&(!Y.isLoading&&(!((null!==(s=null===(e=Y.data)||void 0===e?void 0:e.messages.length)&&void 0!==s?s:0)>1)&&!!(null===(t=S.icebreakers)||void 0===t?void 0:t.length))))}),[S,C,Y.data,Y.isLoading]);t.useEffect((()=>{A(ne)}),[ne]);const ae=s=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(L)return;F(null),T(""),_(!1);const e=null!=s?s:ee;if(!e||"fetching"===R||"streaming"===R)return;const t=new Date;se("");const o="enduserupload"===(null==S?void 0:S.documentuploadtype),r=P.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";B("fetching");const n=[...M,{id:M.length+1,role:"user",content:e}];z(n),J(),H();const{success:a,data:l,usedDocumentIds:d,newDocumentId:u,newDocumentName:c,isInsertedFile:m,error:p}=yield Z.mutateAsync(Object.assign(Object.assign({formId:k,responseId:I,value:e},o&&i&&{documentId:i}),q&&{studioUserId:q}));if(!a)throw new Error(null!=p?p:"An error occurred, please try again.");m&&i&&G({documentId:i,isInsertedAsRaw:!0}),u&&c&&Q([{type:"website",id:c,name:c,status:"finished",documentId:u}]),H();const x=(yield h.streamer({formId:k,responseId:I,data:l})).body;if(!x)throw new Error("Streaming error");const f=x.getReader(),g=new TextDecoder,v=n.length;let b="",j=!0;for(B("streaming");j;){const{value:e,done:s}=yield f.read();j=!s;if(b+=g.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",b),b)z([...n.slice(0,v),{id:M.length+1,role:"assistant",content:b}]),V&&H();else if(!j&&!b)throw new Error("Server error")}const y=new Date;b&&(H(),B("idle"),yield $.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:k,responseId:I,documentIds:d},w&&{userId:w}),q&&{studioUserId:q}),q&&(null==S?void 0:S.studioid)&&{studioId:S.studioid}),{messages:[{role:"user",message:e,sentAt:t},{role:"assistant",message:b,sentAt:y}]})),null==E||E(I))}catch(e){let s=b.default(e);s.includes("Unexpected token 'A',")&&(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(U).find((([e])=>s.includes(e)));t?F(t[1]):T(s),H()}finally{B("idle"),X()}}));return s.jsxs("div",Object.assign({className:j.default("fixed flex w-full flex-col bottom-0 left-0","viewport"===O?"min-[767px]:relative min-[767px]:bottom-auto min-[767px]:left-auto":"absolute @[767px]/pickaxe-root:relative @[767px]/pickaxe-root:bottom-auto @[767px]/pickaxe-root:left-auto")},{children:[ne&&s.jsx(v.default,{data:(null==S?void 0:S.icebreakers)||[],style:{backgroundColor:D.secondary,color:D.secondaryText},isMobile:N||oe,onSend:ae}),s.jsxs("div",Object.assign({style:re,className:"flex min-h-[56px] items-end gap-x-2 px-4 py-3 pb-[15px] shadow"},{children:["enduserupload"===(null==S?void 0:S.documentuploadtype)&&s.jsxs("div",Object.assign({className:"tooltip"},{children:[s.jsx("input",{id:"file-upload",ref:te,type:"file",accept:[...p.allowedFileMimeTypes,...K?p.allowedImageMimeTypes:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:s=>e.__awaiter(void 0,void 0,void 0,(function*(){yield W(Array.from(s.target.files||[])),s.target.value=""}))}),s.jsx("button",Object.assign({className:"flex items-center disabled:cursor-wait disabled:opacity-50",disabled:L,onClick:()=>{var e;return null===(e=te.current)||void 0===e?void 0:e.click()}},{children:s.jsx(f.default,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:D.accent}})}))]})),s.jsx(x.default,{className:j.default(ie("max-h-60 w-full resize-none border-transparent bg-transparent outline-none ring-0 scrollbar scrollbar-thin placeholder:font-semilight"),!ee.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:ee,placeholder:null!==(y=null==S?void 0:S.placeholdertext)&&void 0!==y?y:"What do you want to talk about?",onChange:e=>se(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),ae())}}),s.jsx("button",Object.assign({className:"outline-none disabled:cursor-default disabled:opacity-50",disabled:"idle"!==R||L,onClick:()=>ae()},{children:s.jsx(g.default,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:D.accent}})}))]}))]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/_tslib.js"),s=require("react/jsx-runtime"),t=require("react"),o=require("../../../../hooks/pickaxe/usePickaxeContext.js"),r=require("../../../../hooks/pickaxe/useResponseContext.js"),i=require("../../../../hooks/pickaxe/useSubmit.js"),n=require("../../../../hooks/pickaxe/useSubmitResult.js"),u=require("../../Addons/Document/hooks/useDocument.js"),a=require("../../Addons/Scroll/hooks/useScroll.js"),d=require("../../../../common/api/streamer.js"),l=require("../../../../common/utils.js"),c=require("@nem035/gpt-3-encoder"),m=require("../../common/PickaxeButton.js"),p=require("../../../../common/error.js"),g=require("../../../../common/cn.js");exports.default=({questions:f})=>{const{formId:x,userId:h,studioUserId:w,pickaxe:j,isShowHistory:b,responsiveBy:q,setIsShowHistory:v}=o.usePickaxeContext(),{status:k,limits:I,setResponse:y,setStatus:O,setLimitData:S,setError:E}=r.useResponseContext(),{documents:R,websiteLink:D,isUploading:P,onWebsiteUpload:U,setDocumentError:C}=u.useDocument(),{isScrollIncreasing:A,scrollToContainer:_,scrollToBottom:N,scrollStart:T,scrollEnd:L}=a.useScroll(),B=i.useSubmit(),H=n.useSubmitResult(),[M,W]=t.useState(!1);return s.jsxs("div",Object.assign({className:"mt-4 flex flex-wrap gap-2"},{children:[s.jsx(m.default,Object.assign({className:g.default("w-full","viewport"===q?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:P||M||"fetching"===k||"streaming"===k,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(P||M||"fetching"===k||"streaming"===k)return;S(null),C("");const s="enduserupload"===(null==j?void 0:j.documentuploadtype),t=f.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),o=R.filter((e=>"finished"===e.status)),r=l.extractUrlsFromText(D),i=R.map((e=>e.name)),n=r.filter((e=>!i.includes(e)));if(n.length){const e=n[n.length-1],s=yield U(e);s&&(o.push(s),W(!0),yield new Promise((e=>setTimeout(e,5e3))),W(!1))}else if(t&&s&&!o.length)return void C("Please paste a valid website/video link or drag a file to add to the knowledge base.");E("");const u=["Multiple Choice","Checkbox"];for(const e of f){if(c.encode(e.input).length>e.maxLength&&!u.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const a=o.length?o[o.length-1]:null;let m={};f.forEach((e=>m=Object.assign(Object.assign({},m),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==a?void 0:a.name)||"":e.input}))),O("fetching");const{success:p,responseId:g,data:b,usedDocumentIds:q,rawUserInput:v,error:I}=yield B.mutateAsync(Object.assign(Object.assign({formId:x,valueObj:m},s&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}),w&&{studioUserId:w}));if(!p)throw new Error(null!=I?I:"An error occurred, please try again.");T();const _=(yield d.streamer({formId:x,responseId:g,data:b})).body;if(!_)throw new Error("Streaming error");const L=_.getReader(),F=new TextDecoder;let K="",V=!0;y(null);const Y=f.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;V;){const{value:e,done:s}=yield L.read();V=!s;if(K+=F.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",K),K)O("streaming"),y({formId:x,responseId:g,documentIds:q,messages:[],questions:Y,questionPrompt:v,questionResponse:K,createdAt:new Date}),A&&N();else if(!V&&!K)throw new Error("Server error")}K&&(N(),O("idle"),yield H.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:x,responseId:g,documentIds:q},h&&{userId:h}),w&&{studioUserId:w}),w&&(null==j?void 0:j.studioid)&&{studioId:j.studioid}),{questions:Y,questionPrompt:v,questionResponse:K})))}catch(e){let s=p.default(e);s.includes("Unexpected token 'A',")&&(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(I).find((([e])=>s.includes(e)));t?S(t[1]):E(s),W(!1),_()}finally{O("idle"),L()}}))},{children:M?"Processing...":P?"Uploading...":"fetching"===k||"streaming"===k?"Loading...":"Submit"})),!b&&s.jsx(m.default,Object.assign({variant:"transparent-text",className:g.default("w-full","viewport"===q?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>v(!0)},{children:"See history"}))]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/_tslib.js"),s=require("react/jsx-runtime"),t=require("react"),o=require("../../../../hooks/pickaxe/usePickaxeContext.js"),r=require("../../../../hooks/pickaxe/useResponseContext.js"),i=require("../../../../hooks/pickaxe/useSubmit.js"),n=require("../../../../hooks/pickaxe/useSubmitResult.js"),u=require("../../Addons/Document/hooks/useDocument.js"),l=require("../../Addons/Scroll/hooks/useScroll.js"),a=require("../../../../common/api/streamer.js"),d=require("../../../../common/utils.js"),c=require("@nem035/gpt-3-encoder"),m=require("../../common/PickaxeButton.js"),p=require("../../../../common/error.js"),g=require("../../../../common/cn.js");exports.default=({questions:f})=>{const{formId:x,userId:h,studioUserId:w,pickaxe:j,isShowHistory:b,responsiveBy:q,setIsShowHistory:v,onGenerateComplete:k}=o.usePickaxeContext(),{status:I,limits:y,setResponse:O,setStatus:S,setLimitData:E,setError:R}=r.useResponseContext(),{documents:C,websiteLink:D,isUploading:P,onWebsiteUpload:U,setDocumentError:A}=u.useDocument(),{isScrollIncreasing:_,scrollToContainer:N,scrollToBottom:T,scrollStart:L,scrollEnd:B}=l.useScroll(),H=i.useSubmit(),M=n.useSubmitResult(),[W,F]=t.useState(!1);return s.jsxs("div",Object.assign({className:"mt-4 flex flex-wrap gap-2"},{children:[s.jsx(m.default,Object.assign({className:g.default("w-full","viewport"===q?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:P||W||"fetching"===I||"streaming"===I,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(P||W||"fetching"===I||"streaming"===I)return;E(null),A("");const s="enduserupload"===(null==j?void 0:j.documentuploadtype),t=f.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),o=C.filter((e=>"finished"===e.status)),r=d.extractUrlsFromText(D),i=C.map((e=>e.name)),n=r.filter((e=>!i.includes(e)));if(n.length){const e=n[n.length-1],s=yield U(e);s&&(o.push(s),F(!0),yield new Promise((e=>setTimeout(e,5e3))),F(!1))}else if(t&&s&&!o.length)return void A("Please paste a valid website/video link or drag a file to add to the knowledge base.");R("");const u=["Multiple Choice","Checkbox"];for(const e of f){if(c.encode(e.input).length>e.maxLength&&!u.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const l=o.length?o[o.length-1]:null;let m={};f.forEach((e=>m=Object.assign(Object.assign({},m),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==l?void 0:l.name)||"":e.input}))),S("fetching");const{success:p,responseId:g,data:b,usedDocumentIds:q,rawUserInput:v,error:y}=yield H.mutateAsync(Object.assign(Object.assign({formId:x,valueObj:m},s&&l&&{documentId:null!==(e=l.documentId)&&void 0!==e?e:""}),w&&{studioUserId:w}));if(!p)throw new Error(null!=y?y:"An error occurred, please try again.");L();const N=(yield a.streamer({formId:x,responseId:g,data:b})).body;if(!N)throw new Error("Streaming error");const B=N.getReader(),G=new TextDecoder;let K="",V=!0;O(null);const Y=f.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;V;){const{value:e,done:s}=yield B.read();V=!s;if(K+=G.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",K),K)S("streaming"),O({formId:x,responseId:g,documentIds:q,messages:[],questions:Y,questionPrompt:v,questionResponse:K,createdAt:new Date}),_&&T();else if(!V&&!K)throw new Error("Server error")}K&&(T(),S("idle"),yield M.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:x,responseId:g,documentIds:q},h&&{userId:h}),w&&{studioUserId:w}),w&&(null==j?void 0:j.studioid)&&{studioId:j.studioid}),{questions:Y,questionPrompt:v,questionResponse:K})),null==k||k(g))}catch(e){let s=p.default(e);s.includes("Unexpected token 'A',")&&(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(y).find((([e])=>s.includes(e)));t?E(t[1]):R(s),F(!1),N()}finally{S("idle"),B()}}))},{children:W?"Processing...":P?"Uploading...":"fetching"===I||"streaming"===I?"Loading...":"Submit"})),!b&&s.jsx(m.default,Object.assign({variant:"transparent-text",className:g.default("w-full","viewport"===q?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>v(!0)},{children:"See history"}))]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("./Addons/Document/Provider.js"),r=require("./ResponseProvider.js");const i=s.createContext({});exports.PickaxeContext=i,exports.PickaxeProvider=({userId:o="",studioUserId:a="",styles:c,colors:d,responsiveBy:n="viewport",limits:l={},isForceMobile:u=!1,children:F})=>{const[x,h]=s.useState(""),[I,S]=s.useState(""),[y,j]=s.useState(null),[m,p]=s.useState(!0),[v,b]=s.useState(!0),[P,f]=s.useState(!1);return e.jsx(i.Provider,Object.assign({value:{formId:x,chatId:I,userId:o,studioUserId:a,pickaxe:y,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},c),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},d),responsiveBy:n,isNewChat:m,isShowIceBreaker:v,isShowHistory:P,isForceMobile:u,setFormId:h,setChatId:S,setPickaxe:j,setIsNewChat:p,setIsShowIceBreaker:b,setIsShowHistory:f}},{children:e.jsx(r.default,Object.assign({limits:l},{children:e.jsx(t.default,{children:F})}))}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),s=require("./Addons/Document/Provider.js"),r=require("./ResponseProvider.js");const o=t.createContext({});exports.PickaxeContext=o,exports.PickaxeProvider=({children:i,userId:a="",studioUserId:n="",styles:c,colors:d,responsiveBy:l="viewport",limits:u={},loadFont:F=!0,forceMobile:x=!1,onGenerateComplete:h})=>{const[I,S]=t.useState(""),[j,m]=t.useState(""),[p,y]=t.useState(null),[b,f]=t.useState(!0),[v,P]=t.useState(!0),[k,w]=t.useState(!1);return e.jsx(o.Provider,Object.assign({value:Object.assign({formId:I,chatId:j,userId:a,studioUserId:n,pickaxe:p,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},c),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},d),responsiveBy:l,isNewChat:b,isShowIceBreaker:v,isShowHistory:k,loadFont:F,forceMobile:x,setFormId:S,setChatId:m,setPickaxe:y,setIsNewChat:f,setIsShowIceBreaker:P,setIsShowHistory:w},h&&{onGenerateComplete:h})},{children:e.jsx(r.default,Object.assign({limits:u},{children:e.jsx(s.default,{children:i})}))}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react");const s=t.createContext({});exports.ResponseContext=s,exports.default=({limits:r,children:a})=>{const[i,n]=t.useState([]),[u,o]=t.useState(null),[l,c]=t.useState("idle"),[d,g]=t.useState(null),[p,m]=t.useState(""),[x,S]=t.useState(!1);return e.jsx(s.Provider,Object.assign({value:{messages:i,response:u,status:l,limits:r,limitData:d,error:p,isGenerating:x,setMessages:n,setResponse:o,setStatus:c,setLimitData:g,setError:m,setIsGenerating:S,setMessage:e=>{n((t=>t.map(((t,s)=>s===e.id?Object.assign(Object.assign({},t),e):t))))}}},{children:a}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react");const s=t.createContext({});exports.ResponseContext=s,exports.default=({limits:r,children:a})=>{const[i,n]=t.useState([]),[u,o]=t.useState(null),[l,c]=t.useState("idle"),[d,p]=t.useState(null),[x,S]=t.useState(""),[m,g]=t.useState(!1);return e.jsx(s.Provider,Object.assign({value:{messages:i,response:u,status:l,limits:r,limitData:d,error:x,isGenerating:m,setMessages:n,setResponse:o,setStatus:c,setLimitData:p,setError:S,setIsGenerating:g}},{children:a}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("../../hooks/usePickaxeMarkdownContext.js"),r=require("../common/Action.js"),s=require("../Img/index.js");exports.default=({node:i,href:n="",children:o})=>{const{accentColor:a,linkPreviews:l,actions:c}=t.usePickaxeMarkdownContext(),u=(n||"").startsWith("www.")?`https://${n}`:n,d=u.match(/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([\w-]+)/i);if(d&&(null==d?void 0:d[1]))return e.jsx("div",Object.assign({style:{marginTop:"2.5rem",marginBottom:"2.5rem",display:"flex",width:"100%",justifyContent:"center"}},{children:e.jsx("iframe",Object.assign({title:"youtube-embed",src:`https://www.youtube.com/embed/${d[1]}`,style:{width:"100%",maxWidth:"560px"},allowFullScreen:!0},{children:"Iframe not supported, use a different browser."}))}));return u.match(/\.(jpeg|jpg|gif|bmp|webp|svg|tiff|avif)$/)?e.jsx(s.default,{src:u,alt:"string"==typeof o?o:"Markdown Image"}):c&&u.includes("pickaxe")&&(u.includes("/api/fn/result")||u.includes("/api/function_call_results"))?e.jsx(r.default,{jobUrl:u}):e.jsx("a",Object.assign({href:u,target:"_blank",rel:"noopener noreferrer"},l&&{className:"marked-link-possible-preview-render"},{style:{color:a,fontWeight:600}},{children:o}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("../../hooks/usePickaxeMarkdownContext.js"),r=require("../common/Action.js"),s=require("../Img/index.js");exports.default=({node:i,href:n="",children:o})=>{const{accentColor:a,linkPreviews:l,actions:c}=t.usePickaxeMarkdownContext(),u=(n||"").startsWith("www.")?`https://${n}`:n,d=u.match(/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([\w-]+)/i);if(d&&(null==d?void 0:d[1]))return e.jsx("div",Object.assign({style:{marginTop:"2rem",marginBottom:"2rem",display:"flex",width:"100%",justifyContent:"center"}},{children:e.jsx("iframe",Object.assign({title:"youtube-embed",src:`https://www.youtube.com/embed/${d[1]}`,style:{width:"100%",maxWidth:"560px"},allowFullScreen:!0},{children:"Iframe not supported, use a different browser."}))}));return u.match(/\.(jpeg|jpg|gif|bmp|webp|svg|tiff|avif)$/)?e.jsx(s.default,{src:u,alt:"string"==typeof o?o:"Markdown Image"}):c&&u.includes("pickaxe")&&(u.includes("/api/fn/result")||u.includes("/api/function_call_results"))?e.jsx(r.default,{jobUrl:u}):e.jsx("a",Object.assign({href:u,target:"_blank",rel:"noopener noreferrer"},l&&{className:"marked-link-possible-preview-render"},{style:{color:a,fontWeight:600}},{children:o}))};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../../../_virtual/_tslib.js"),r=require("react/jsx-runtime"),s=require("react-syntax-highlighter"),a=require("../../hooks/usePickaxeMarkdownContext.js");exports.default=t=>{var{node:i,children:n,className:c}=t,l=e.__rest(t,["node","children","className"]);const{syntaxTheme:u}=a.usePickaxeMarkdownContext(),o=/language-(\w+)/.exec(c||"");return o?r.jsx(s.Prism,Object.assign({},l,{PreTag:"div",language:o[1],style:u,showLineNumbers:!0},{children:String(n).replace(/\n$/,"")})):r.jsx("code",Object.assign({},l,{className:c},{children:n}))};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../../../_virtual/_tslib.js"),r=require("react/jsx-runtime");exports.default=t=>{var{node:i,title:l="Random Iframe",children:s}=t,a=e.__rest(t,["node","title","children"]);return r.jsx("iframe",Object.assign({title:l,style:{borderRadius:"8px"},allowFullScreen:!0},a,{children:s}))};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../../../../../hooks/pickaxe/usePickaxeContext.js"),r=require("../../../../../Core/Modal/index.js"),o=require("../../../../../Core/Modal/Body.js"),t=require("../../../../../Core/Modal/CloseButton.js");exports.default=({children:l,isOpen:a,onChangeIsOpen:i})=>{const{colors:n}=s.usePickaxeContext();return e.jsx(r.default,Object.assign({isOpen:a,onChange:i},{children:e.jsxs(o.default,Object.assign({className:"border-0 w-full h-full",style:{backgroundColor:n.primary,color:n.text,borderColor:n.text+"4D"},avoidOverflow:!0},{children:[e.jsx("div",Object.assign({className:"flex items-start justify-end gap-4"},{children:e.jsx(t.default,{})})),e.jsx("div",Object.assign({className:"mt-4 flex flex-col flex-grow"},{children:l}))]}))}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../../../_virtual/_tslib.js"),r=require("react/jsx-runtime"),o=require("react"),t=require("../../hooks/usePickaxeMarkdownContext.js"),i=require("../../../../../../hooks/core/useHover.js"),s=require("framer-motion"),n=require("../../../../../Icons/download.svg.js");exports.default=({node:a,src:l,alt:d})=>{const{accentColor:c}=t.usePickaxeMarkdownContext(),[u,x]=o.useState(!1),p=i.useHover(),{isHover:b}=p,h=e.__rest(p,["isHover"]);return r.jsx("div",Object.assign({style:{marginTop:"2.5rem",marginBottom:"2.5rem",display:"flex",width:"100%",justifyContent:"center",overflow:"hidden",borderRadius:"8px",transition:"transform 0.3s ease, box-shadow 0.3s ease",transform:b?"translateY(-5px)":"translateY(0)"}},h,{children:u?r.jsx("p",Object.assign({style:{userSelect:"none",opacity:.5,fontStyle:"italic"}},{children:"[Image link is broken]"})):r.jsxs(r.Fragment,{children:[r.jsx(s.motion.button,Object.assign({initial:"hidden",animate:b?"visible":"hidden",variants:{hidden:{opacity:0,y:-10,pointerEvents:"none"},visible:{opacity:1,y:0,pointerEvents:"auto"}},style:{position:"absolute",top:"10px",right:"10px",backgroundColor:"#007bff",color:"#fff",border:"none",borderRadius:"4px",padding:"0.5rem 0.75rem",cursor:"pointer",fontSize:"0.875rem",boxShadow:"0px 4px 6px rgba(0, 0, 0, 0.1)",transition:"background-color 0.2s ease"},whileHover:{backgroundColor:c},whileTap:{scale:.95},onClick:()=>window.open(l,"_blank")},{children:r.jsx(n.default,{width:24,height:24,style:{flexShrink:0}})})),r.jsx("img",{src:l,alt:d,style:{borderRadius:"8px",maxWidth:"680px"},onError:()=>x(!0)})]})}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../../../_virtual/_tslib.js"),o=require("react/jsx-runtime"),r=require("react"),s=require("../../hooks/usePickaxeMarkdownContext.js"),t=require("../../../../../../hooks/core/useHover.js"),i=require("framer-motion"),n=require("../../../../../../common/utils.js"),a=require("../../../../../Icons/download.svg.js"),l=require("../../../PickaxeCopyButton.js"),d=require("./ImgModal.js");exports.default=({node:c,src:u,alt:x})=>{const{accentColor:p}=s.usePickaxeMarkdownContext(),[b,g]=r.useState(!1),[h,j]=r.useState(!1),m=t.useHover(),{isHover:k}=m,v=e.__rest(m,["isHover"]),w={hidden:{opacity:0,y:-10,pointerEvents:"none"},visible:{opacity:1,y:0,pointerEvents:"auto"}},y=()=>o.jsxs("div",Object.assign({style:{position:"relative"}},{children:[o.jsxs(i.motion.div,Object.assign({initial:"hidden",animate:k?"visible":"hidden",variants:w,style:{position:"absolute",display:"flex",gap:"0.4rem",top:"10px",right:"10px",color:"#FFF"}},{children:[o.jsx(i.motion.button,Object.assign({style:{outline:"none",padding:"0.5rem 0.65rem",borderRadius:"4px",boxShadow:"0px 4px 6px rgba(0, 0, 0, 0.1)",transition:"background-color 0.2s ease",backgroundColor:p+"07"},whileHover:{backgroundColor:p||"#000000"},whileTap:{scale:.95},onClick:e=>{e.stopPropagation(),window.open(u,"_blank")}},{children:o.jsx(a.default,{width:24,height:24,style:{color:n.getContrastColor(p||"#000000"),flexShrink:0}})})),o.jsx(i.motion.button,Object.assign({style:{outline:"none",padding:"0.5rem 0.65rem",borderRadius:"4px",boxShadow:"0px 4px 6px rgba(0, 0, 0, 0.1)",transition:"background-color 0.2s ease",backgroundColor:p+"07"},whileHover:{backgroundColor:p||"#000000"},whileTap:{scale:.95},onClick:e=>e.stopPropagation()},{children:o.jsx(l.default,{color:n.getContrastColor(p||"#000000"),iconClassName:"w-6 h-6",text:u||""})}))]})),o.jsx("img",{src:u,alt:x,style:{borderRadius:"8px",width:"100%",transition:"box-shadow 0.3s ease",boxShadow:k?"inset 0px 4px 10px rgba(0, 0, 0, 0.5)":"none"},onError:()=>g(!0),onClick:()=>j(!0)})]}));return o.jsxs("div",Object.assign({style:{marginTop:"2rem",marginBottom:"2rem",display:"flex",width:"100%",justifyContent:"center",overflow:"hidden",borderRadius:"8px",transition:"transform 0.3s ease, box-shadow 0.3s ease",transform:k?"translateY(-5px)":"translateY(0)"}},v,{children:[b?o.jsx("p",Object.assign({style:{userSelect:"none",opacity:.5,fontStyle:"italic"}},{children:"[Image link is broken]"})):o.jsx(y,{}),h&&o.jsx(d.default,Object.assign({isOpen:h,onChangeIsOpen:j},{children:o.jsx(y,{})}))]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),i=require("react"),r=require("@tanstack/react-query"),o=require("../../hooks/usePickaxeMarkdownContext.js"),n=require("../../../../../../common/lotties/loader-black.js"),a=require("../../../../../../common/lotties/loader-white.js"),s=require("../../../PickaxeLottie.js"),d=require("../../../../../../common/api/streamer.js"),c=require("../../Renderer.js"),l=require("framer-motion"),u=require("../../../../../../common/api/utils.js"),m=require("../../../../../../common/error.js");exports.default=({jobUrl:v})=>{var p,x;const{theme:j}=o.usePickaxeMarkdownContext(),[y,f]=i.useState(""),h=i.useRef(null),k=r.useQuery({queryKey:[v],queryFn:()=>(t=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(!t||t.includes("undefined"))throw new Error("Invalid action job URL");const e=yield fetch(t);return yield e.json()}catch(e){const t=m.default(e);return"development"===process.env.NODE_ENV&&console.error("[getJobResult]",t),{success:!1,error:t}}})))(v),enabled:"undefined"!=typeof window,retry:10,onSuccess:t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(!t.success)return;if("text"in t)return void f(t.text||"");if(!("fcid"in t)){const e=(yield d.streamer({formId:t.formId,responseId:t.responseId,data:t.encodedData})).body;if(!e)return;let i=!0,r="";const o=e.getReader(),n=new TextDecoder;for(;i;){const{value:e,done:t}=yield o.read();i=!t;r+=n.decode(e),f(r)}return f(r),yield u.default.post("/fn/update",{id:t.jobId,data:Object.assign(Object.assign({},t),{text:r})}),void console.log("[Action] streaming done")}yield new Promise((e=>setTimeout(e,3e3))),k.refetch(),"development"===process.env.NODE_ENV&&console.log(`[Action] refetching <${v}>`)}))});return console.log("[ActionResult]",k.data,y),t.jsx("div",Object.assign({ref:h,className:"pxe-action"},{children:t.jsx(l.AnimatePresence,{children:k.error||(null===(p=k.data)||void 0===p?void 0:p.error)?t.jsx(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:t.jsx(c.PickaxeMarkdownRenderer,{value:`> ${(null===(x=k.data)||void 0===x?void 0:x.error)||"Failed to process, please try again."}`})})):y?t.jsx(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3},className:"mt-4"},{children:t.jsx(c.PickaxeMarkdownRenderer,{value:y})})):t.jsx(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:t.jsx(s.PickaxeLottie,{id:"dark"===j?"loader-white":"loader-black",getJson:()=>e.__awaiter(void 0,void 0,void 0,(function*(){return"dark"===j?a.loaderWhite:n.loaderBlack})),autoplay:!0,loop:!0,style:{cursor:"default",pointerEvents:"none",width:"100%",maxWidth:"150px",height:"150px"}})}))})}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),r=require("react"),i=require("@tanstack/react-query"),o=require("../../hooks/usePickaxeMarkdownContext.js"),a=require("../../../../../../common/lotties/loader-black.js"),n=require("../../../../../../common/lotties/loader-white.js"),s=require("../../../PickaxeLottie.js"),d=require("../../../../../../common/api/streamer.js"),c=require("../../Renderer.js"),l=require("framer-motion"),u=require("../../../../../../common/api/utils.js"),m=require("../../../../../../common/error.js");exports.default=({jobUrl:v})=>{var j,p,x,y;const{theme:f}=o.usePickaxeMarkdownContext(),[h,b]=r.useState(""),[g,k]=r.useState(""),q=r.useRef(null),w=i.useQuery({queryKey:[v],queryFn:()=>(t=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(!t||t.includes("undefined"))throw new Error("Invalid action job URL");const e=yield fetch(t);return yield e.json()}catch(e){const t=m.default(e);return"development"===process.env.NODE_ENV&&console.error("[getJobResult]",t),{success:!1,error:t}}})))(v),enabled:"undefined"!=typeof window,retry:10,onSuccess:t=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(k(""),!t.success)return;if("text"in t)return void b(t.text||"");if(!("fcid"in t)){const e=(yield d.streamer({formId:t.formId,responseId:t.responseId,data:t.encodedData})).body;if(!e)return;let r=!0,i="";const o=e.getReader(),a=new TextDecoder;for(;r;){const{value:e,done:t}=yield o.read();r=!t;i+=a.decode(e),b(i)}return b(i),yield u.default.post("/fn/update",{id:t.jobId,data:Object.assign(Object.assign({},t),{text:i})}),void console.log("[Action] streaming done")}yield new Promise((e=>setTimeout(e,3e3))),w.refetch(),"development"===process.env.NODE_ENV&&console.log(`[Action] refetching <${v}>`)}catch(e){k(m.default(e))}}))});return t.jsx("div",Object.assign({ref:q,className:"pxe-action"},{children:t.jsx(l.AnimatePresence,{children:g||w.error||(null===(j=w.data)||void 0===j?void 0:j.error)?t.jsxs(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3},className:"mt-4"},{children:[t.jsx("blockquote",Object.assign({style:{lineHeight:"20px",borderLeft:"4px solid #FF0000",color:"#FF0000",paddingLeft:"1rem",marginBottom:"1rem"}},{children:g||(null===(p=w.data)||void 0===p?void 0:p.error)||"Failed to process, please try again."})),(null===(x=w.data)||void 0===x?void 0:x.traceback)&&t.jsxs(t.Fragment,{children:[t.jsxs("p",Object.assign({style:{color:"#FF0000"}},{children:["Traceback:"," "]})),t.jsx(c.PickaxeMarkdownRenderer,{value:`\`\`\`js\n${null===(y=w.data)||void 0===y?void 0:y.traceback}\n\`\`\``})]})]})):h?t.jsx(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3},className:"mt-4"},{children:t.jsx(c.PickaxeMarkdownRenderer,{value:h})})):t.jsx(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:t.jsx(s.PickaxeLottie,{id:"dark"===f?"loader-white":"loader-black",getJson:()=>e.__awaiter(void 0,void 0,void 0,(function*(){return"dark"===f?n.loaderWhite:a.loaderBlack})),autoplay:!0,loop:!0,style:{cursor:"default",pointerEvents:"none",width:"100%",maxWidth:"150px",height:"150px"}})}))})}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/_tslib.js"),i=require("react/jsx-runtime"),r=require("react"),t=require("./hooks/usePickaxeMarkdownContext.js"),s=require("react-syntax-highlighter"),n=require("react-markdown"),l=require("remark-gfm"),d=require("remark-math"),a=require("rehype-katex"),c=require("./Custom/A/index.js"),o=require("./Custom/P/index.js"),h=require("./Custom/Img/index.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=u(n),g=u(l),j=u(d),x=u(a);exports.PickaxeMarkdownRenderer=({className:n,style:l,value:d})=>{const{theme:a,syntaxTheme:u}=t.usePickaxeMarkdownContext(),b=r.useRef(null),f={h1:({node:e,children:r})=>i.jsx("h1",Object.assign({style:{fontSize:"2.25rem",lineHeight:"2.5rem"}},{children:r})),h2:({node:e,children:r})=>i.jsx("h2",Object.assign({style:{fontSize:"1.875rem",lineHeight:"2.25rem"}},{children:r})),h3:({node:e,children:r})=>i.jsx("h3",Object.assign({style:{fontSize:"1.5rem",lineHeight:"2rem"}},{children:r})),h4:({node:e,children:r})=>i.jsx("h4",Object.assign({className:"mt-2 text-xl",style:{fontSize:"1.25rem",lineHeight:"1.75rem"}},{children:r})),h5:({node:e,children:r})=>i.jsx("h5",Object.assign({style:{fontSize:"1.125rem",lineHeight:"1.75rem"}},{children:r})),p:o.default,a:c.default,ol:({node:e,children:r})=>i.jsx("ol",Object.assign({style:{listStyleType:"decimal",listStylePosition:"inside",paddingLeft:"1.5rem"}},{children:r})),ul:({node:e,children:r})=>i.jsx("ul",Object.assign({style:{listStyleType:"disc",listStylePosition:"inside",paddingLeft:"1.5rem"}},{children:r})),li:({node:e,children:r})=>i.jsx("li",{children:r}),table:({children:e})=>i.jsx("div",Object.assign({className:"overflow-auto"},{children:i.jsx("table",Object.assign({style:{tableLayout:"fixed",fontSize:"0.875rem",lineHeight:"1.24rem"}},{children:e}))})),th:({node:e,children:r})=>i.jsx("th",Object.assign({style:{padding:"0.75em 1em",fontWeight:600,textAlign:"left"}},{children:r})),tr:({node:e,children:r})=>i.jsx("tr",Object.assign({style:{border:"dark"===a?"1px solid #30363D":"1px solid #D0D7DE"}},{children:r})),td:({node:e,children:r})=>i.jsx("td",Object.assign({style:{padding:"0.75em 1em"}},{children:r})),code:r=>{var{node:t,children:n,className:l}=r,d=e.__rest(r,["node","children","className"]);const a=/language-(\w+)/.exec(l||"");return a?i.jsx(s.Prism,Object.assign({},d,{PreTag:"div",language:a[1],style:u,showLineNumbers:!0},{children:String(n).replace(/\n$/,"")})):i.jsx("code",Object.assign({},d,{className:l},{children:n}))},blockquote:({node:e,children:r})=>i.jsx("blockquote",Object.assign({style:{lineHeight:"15px",borderLeft:"dark"===a?"4px solid #30363D":"4px solid #D0D7DE",color:"dark"===a?"#8B8B8B":"#656D76",paddingLeft:"1rem",marginBottom:"1rem"}},{children:r})),img:h.default};return i.jsx("div",Object.assign({className:"pxe-markdown",ref:b,style:Object.assign({position:"relative",whiteSpace:"pre-wrap"},l)},{children:i.jsx(m.default,Object.assign({},n&&{className:n},{components:f,remarkPlugins:[g.default,j.default],rehypePlugins:[x.default]},{children:(null!=d?d:"").replace(/\u200B/g,"")}))}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),t=require("./hooks/usePickaxeMarkdownContext.js"),r=require("react-markdown"),s=require("remark-gfm"),n=require("remark-math"),l=require("rehype-katex"),d=require("./Custom/A/index.js"),a=require("./Custom/P/index.js"),o=require("./Custom/Img/index.js"),c=require("./Custom/Iframe/index.js"),h=require("./Custom/Code/index.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=u(r),j=u(s),x=u(n),g=u(l);exports.PickaxeMarkdownRenderer=({className:r,style:s,value:n})=>{const{theme:l}=t.usePickaxeMarkdownContext(),u=i.useRef(null),f={h1:({node:i,children:t})=>e.jsx("h1",Object.assign({style:{fontSize:"2.25rem",lineHeight:"2.5rem"}},{children:t})),h2:({node:i,children:t})=>e.jsx("h2",Object.assign({style:{fontSize:"1.875rem",lineHeight:"2.25rem"}},{children:t})),h3:({node:i,children:t})=>e.jsx("h3",Object.assign({style:{fontSize:"1.5rem",lineHeight:"2rem"}},{children:t})),h4:({node:i,children:t})=>e.jsx("h4",Object.assign({className:"mt-2 text-xl",style:{fontSize:"1.25rem",lineHeight:"1.75rem"}},{children:t})),h5:({node:i,children:t})=>e.jsx("h5",Object.assign({style:{fontSize:"1.125rem",lineHeight:"1.75rem"}},{children:t})),p:a.default,a:d.default,ol:({node:i,children:t})=>e.jsx("ol",Object.assign({style:{listStyleType:"decimal",listStylePosition:"inside",paddingLeft:"1.5rem"}},{children:t})),ul:({node:i,children:t})=>e.jsx("ul",Object.assign({style:{listStyleType:"disc",listStylePosition:"inside",paddingLeft:"1.5rem"}},{children:t})),li:({node:i,children:t})=>e.jsx("li",{children:t}),table:({children:i})=>e.jsx("div",Object.assign({className:"overflow-auto"},{children:e.jsx("table",Object.assign({style:{tableLayout:"fixed",fontSize:"0.875rem",lineHeight:"1.24rem"}},{children:i}))})),th:({node:i,children:t})=>e.jsx("th",Object.assign({style:{padding:"0.75em 1em",fontWeight:600,textAlign:"left"}},{children:t})),tr:({node:i,children:t})=>e.jsx("tr",Object.assign({style:{border:"dark"===l?"1px solid #30363D":"1px solid #D0D7DE"}},{children:t})),td:({node:i,children:t})=>e.jsx("td",Object.assign({style:{padding:"0.75em 1em"}},{children:t})),code:h.default,blockquote:({node:i,children:t})=>e.jsx("blockquote",Object.assign({style:{lineHeight:"15px",borderLeft:"dark"===l?"4px solid #30363D":"4px solid #D0D7DE",color:"dark"===l?"#8B8B8B":"#656D76",paddingLeft:"1rem",marginBottom:"1rem"}},{children:t})),img:o.default,iframe:c.default};return e.jsx("div",Object.assign({className:"pxe-markdown",ref:u,style:Object.assign({position:"relative",whiteSpace:"pre-wrap"},s)},{children:e.jsx(m.default,Object.assign({},r&&{className:r},{components:f,remarkPlugins:[j.default,x.default],rehypePlugins:[g.default]},{children:(null!=n?n:"").replace(/\u200B/g,"")}))}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("../../hooks/pickaxe/usePickaxe.js"),a=require("react"),t=require("../../hooks/pickaxe/usePickaxeContext.js"),s=require("../../common/utils.js"),c=require("./Addons/Scroll/Provider.js"),i=require("./Chat/index.js"),o=require("./Form/index.js"),l=require("../../common/cn.js");exports.Pickaxe=({formId:u,className:d})=>{const{chatId:x,styles:n,colors:f,setFormId:j,setChatId:k,setPickaxe:m}=t.usePickaxeContext(),h=r.usePickaxe();return a.useEffect((()=>{j(u)}),[u]),a.useEffect((()=>{h.data&&(k(h.data.chatflag?s.generateId(15):""),m(h.data))}),[h.data]),h.data?e.jsx("div",Object.assign({className:l.default("relative @container/pickaxe-root flex flex-col flex-grow w-full h-full",d,"dark"===n.theme&&"dark"),style:{backgroundColor:f.primary,color:f.text}},{children:x?e.jsx(c.default,{children:e.jsx(i.default,{})}):e.jsx(c.default,{children:e.jsx(o.default,{})})})):null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("../../hooks/pickaxe/usePickaxe.js"),r=require("react"),s=require("../../hooks/pickaxe/usePickaxeContext.js"),a=require("../../hooks/pickaxe/useResponseContext.js"),o=require("../../common/utils.js"),i=require("webfontloader"),l=require("./Addons/Scroll/Provider.js"),u=require("./Chat/index.js"),n=require("./Form/index.js"),d=require("../../common/cn.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=c(i);exports.Pickaxe=({formId:i,className:c})=>{const{chatId:x,styles:j,colors:k,loadFont:m,setFormId:p,setChatId:h,setPickaxe:q}=s.usePickaxeContext(),{setMessages:P,setResponse:g}=a.useResponseContext(),[y,C]=r.useState(!1),v=t.usePickaxe();return r.useEffect((()=>{p(i)}),[i]),r.useEffect((()=>{if(!v.data)return;const e=v.data.chatflag;h(e?o.generateId(15):""),e?P([]):g(null),q(v.data)}),[v.data]),r.useEffect((()=>{"undefined"!=typeof window&&(y||m&&"Real Head Pro"!==j.font&&(f.default.load({google:{families:[j.font]}}),C(!0)))}),[j.font,y]),v.data?e.jsx("div",Object.assign({className:d.default("relative @container/pickaxe-root flex flex-col flex-grow w-full h-full",c,"dark"===j.theme&&"dark"),style:{backgroundColor:k.primary,color:k.text,fontFamily:j.font}},{children:x?e.jsx(l.default,{children:e.jsx(u.default,{})}):e.jsx(l.default,{children:e.jsx(n.default,{})})})):null};
@@ -1,3 +1,4 @@
1
1
  export declare const generateId: (length: number, prefix?: string, suffix?: string) => string;
2
2
  export declare const randomStr: (len: number, charOnly?: boolean) => string;
3
3
  export declare const extractUrlsFromText: (text: string) => string[];
4
+ export declare const getContrastColor: (hex: string) => "#FFFFFF" | "#000000";
@@ -34,24 +34,28 @@ type PickaxeContextType = {
34
34
  isNewChat: boolean;
35
35
  isShowIceBreaker: boolean;
36
36
  isShowHistory: boolean;
37
- isForceMobile: boolean;
37
+ loadFont: boolean;
38
+ forceMobile: boolean;
38
39
  setFormId: SetState<string>;
39
40
  setChatId: SetState<string>;
40
41
  setPickaxe: SetState<Pickaxe | null>;
41
42
  setIsNewChat: SetState<boolean>;
42
43
  setIsShowIceBreaker: SetState<boolean>;
43
44
  setIsShowHistory: SetState<boolean>;
45
+ onGenerateComplete?: (responseId: string) => void;
44
46
  };
45
47
  export interface IPickaxeProviderProps {
48
+ children: ReactNode;
46
49
  userId?: string;
47
50
  studioUserId?: string;
48
51
  styles?: Partial<PickaxeProviderStyles>;
49
52
  colors?: Partial<PickaxeProviderColors>;
50
53
  responsiveBy?: PickaxeResponsiveBy;
51
54
  limits?: Record<string, PickaxeLimitData>;
52
- isForceMobile?: boolean;
53
- children: ReactNode;
55
+ loadFont?: boolean;
56
+ forceMobile?: boolean;
57
+ onGenerateComplete?: (responseId: string) => void;
54
58
  }
55
59
  export declare const PickaxeContext: import("react").Context<PickaxeContextType>;
56
- export declare const PickaxeProvider: ({ userId, studioUserId, styles, colors, responsiveBy, limits, isForceMobile, children, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
60
+ export declare const PickaxeProvider: ({ children, userId, studioUserId, styles, colors, responsiveBy, limits, loadFont, forceMobile, onGenerateComplete, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
57
61
  export {};
@@ -17,7 +17,6 @@ type ResponseContextType = {
17
17
  error: string;
18
18
  isGenerating: boolean;
19
19
  setMessages: SetState<MemoryStoredChatMessage[]>;
20
- setMessage: (message: MemoryStoredChatMessage) => void;
21
20
  setResponse: SetState<MemoryStoredResponse | null>;
22
21
  setStatus: SetState<ResponseStatus>;
23
22
  setLimitData: SetState<PickaxeLimitData | null>;
@@ -0,0 +1,4 @@
1
+ import { type FC, type ComponentPropsWithoutRef } from "react";
2
+ import type { Node } from "../../Renderer";
3
+ declare const Code: FC<ComponentPropsWithoutRef<"code"> & Node>;
4
+ export default Code;
@@ -0,0 +1,4 @@
1
+ import type { FC, ComponentPropsWithoutRef } from "react";
2
+ import type { Node } from "../../Renderer";
3
+ declare const Iframe: FC<ComponentPropsWithoutRef<"iframe"> & Node>;
4
+ export default Iframe;
@@ -0,0 +1,8 @@
1
+ import type { ReactNode } from "react";
2
+ interface ImgModalProps {
3
+ children?: ReactNode;
4
+ isOpen: boolean;
5
+ onChangeIsOpen: (isOpen: boolean) => void;
6
+ }
7
+ declare const ImgModal: ({ children, isOpen, onChangeIsOpen }: ImgModalProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default ImgModal;
@@ -10,11 +10,13 @@ export declare const usePickaxeContext: () => {
10
10
  isNewChat: boolean;
11
11
  isShowIceBreaker: boolean;
12
12
  isShowHistory: boolean;
13
- isForceMobile: boolean;
13
+ loadFont: boolean;
14
+ forceMobile: boolean;
14
15
  setFormId: import("../../types/common").SetState<string>;
15
16
  setChatId: import("../../types/common").SetState<string>;
16
17
  setPickaxe: import("../../types/common").SetState<import("../../types/pickaxe").Pickaxe | null>;
17
18
  setIsNewChat: import("../../types/common").SetState<boolean>;
18
19
  setIsShowIceBreaker: import("../../types/common").SetState<boolean>;
19
20
  setIsShowHistory: import("../../types/common").SetState<boolean>;
21
+ onGenerateComplete?: ((responseId: string) => void) | undefined;
20
22
  };
@@ -7,7 +7,6 @@ export declare const useResponseContext: () => {
7
7
  error: string;
8
8
  isGenerating: boolean;
9
9
  setMessages: import("../../types/common").SetState<import("../../types/chat").MemoryStoredChatMessage[]>;
10
- setMessage: (message: import("../../types/chat").MemoryStoredChatMessage) => void;
11
10
  setResponse: import("../../types/common").SetState<import("../../types/form").MemoryStoredResponse | null>;
12
11
  setStatus: import("../../types/common").SetState<import("../../components/Pickaxe/ResponseProvider").ResponseStatus>;
13
12
  setLimitData: import("../../types/common").SetState<import("../../components/Pickaxe/ResponseProvider").PickaxeLimitData | null>;
@@ -1 +1 @@
1
- import{__awaiter as t}from"../../_virtual/_tslib.js";const o=o=>t(void 0,void 0,void 0,(function*(){const t=yield fetch(`${process.env.NEXT_PUBLIC_API_UTILS_URL}/streamer`,{method:"POST",body:JSON.stringify(o)});if(200!==t.status){const o=yield t.json();throw new Error(o.detail)}return t}));export{o as streamer};
1
+ import{__awaiter as o}from"../../_virtual/_tslib.js";const r=r=>o(void 0,void 0,void 0,(function*(){const o=yield fetch(`${process.env.NEXT_PUBLIC_API_UTILS_URL}/streamer`,{method:"POST",body:JSON.stringify(r)});if(200!==o.status){const r=yield o.json();throw new Error(r.error)}return o}));export{r as streamer};
@@ -1 +1 @@
1
- const t=(t,r="",e="")=>{let o="";for(let r=0;r<t;r++){o+="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[Math.floor(36*Math.random())]}return r+o+e},r=(t,r=!1)=>{let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";r&&(e=e.replace(/[0-9]/g,""));let o="";for(let r=0;r<t;r++)o+=e.charAt(Math.floor(Math.random()*e.length));return o},e=t=>{const r=t.match(/(https?:\/\/[^\s]+)/g)||[];return Array.from(new Set(r))};export{e as extractUrlsFromText,t as generateId,r as randomStr};
1
+ const t=(t,r="",e="")=>{let n="";for(let r=0;r<t;r++){n+="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[Math.floor(36*Math.random())]}return r+n+e},r=(t,r=!1)=>{let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";r&&(e=e.replace(/[0-9]/g,""));let n="";for(let r=0;r<t;r++)n+=e.charAt(Math.floor(Math.random()*e.length));return n},e=t=>{const r=t.match(/(https?:\/\/[^\s]+)/g)||[];return Array.from(new Set(r))},n=t=>{if(!t)return"#FFFFFF";return(299*parseInt(t.substring(1,2),16)+587*parseInt(t.substring(3,2),16)+114*parseInt(t.substring(5,2),16))/1e3>=128?"#000000":"#FFFFFF"};export{e as extractUrlsFromText,t as generateId,n as getContrastColor,r as randomStr};
@@ -0,0 +1 @@
1
+ import{jsx as o}from"react/jsx-runtime";import{useContext as s}from"react";import{ModalContext as t}from"./index.js";import n from"../../Icons/x.svg.js";import r from"../../../common/cn.js";const e=({className:e,iconClassName:c,icon:i,onClick:a})=>{const{setIsOpen:m}=s(t);return o("button",Object.assign({className:r("outline-none hover:opacity-70 hover:duration-300 active:opacity-100",e),onClick:()=>{m(!1),a&&a()}},{children:i||o(n,{className:r("h-6 w-6 shrink-0",c)})}))};export{e as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as s,useRef as r,useMemo as i,useEffect as n}from"react";import{useMediaQuery as a}from"../../../hooks/core/useMediaQuery.js";import{usePickaxeContext as l}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as d}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as c}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as m}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as u}from"../../../hooks/pickaxe/useConversation.js";import{useSubmit as p}from"../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as f}from"../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as h}from"../Addons/Document/hooks/useDocument.js";import{useScroll as g}from"../Addons/Scroll/hooks/useScroll.js";import{allowedFileMimeTypes as v,allowedImageMimeTypes as x}from"../../../common/documents.js";import{streamer as b}from"../../../common/api/streamer.js";import y from"../../../node_modules/.pnpm/react-textarea-autosize@8.5.7_@types_react@18.3.18_react@18.3.1/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js";import k from"../../Icons/attach.svg.js";import I from"../../Icons/send.svg.js";import j from"../Addons/IceBreaker/index.js";import w from"../../../common/error.js";import D from"../../../common/cn.js";const N=()=>{var N;const{formId:O,chatId:S,userId:A,studioUserId:C,pickaxe:E,colors:_,responsiveBy:U,isNewChat:R,isForceMobile:z,setIsNewChat:B,setIsShowIceBreaker:F}=l(),{messages:M,status:L,limits:T,setMessages:K,setStatus:P,setLimitData:W,setError:Q}=d(),{documents:V,isUploading:q,isImageUploadAllowed:G,upsertDocuments:H,onFileUpload:J,onEditDocumentByDocId:X}=h(),{isScrollIncreasing:Y,scrollToBottom:Z,scrollStart:$,scrollEnd:ee}=g(),oe=u(),te=p(),se=f(),[re,ie]=s(""),ne=r(null),[ae]=a("(max-width: 767px)"),le=c(),de=m({type:"body"}),ce=i((()=>{var e,o,t;return!!R&&(!!E&&(!oe.isLoading&&(!((null!==(o=null===(e=oe.data)||void 0===e?void 0:e.messages.length)&&void 0!==o?o:0)>1)&&!!(null===(t=E.icebreakers)||void 0===t?void 0:t.length))))}),[E,R,oe.data,oe.isLoading]);n((()=>{F(ce)}),[ce]);const me=o=>e(void 0,void 0,void 0,(function*(){try{if(q)return;W(null),Q(""),B(!1);const e=null!=o?o:re;if(!e||"fetching"===L||"streaming"===L)return;const t=new Date;ie("");const s="enduserupload"===(null==E?void 0:E.documentuploadtype),r=V.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";P("fetching");const n=[...M,{id:M.length+1,role:"user",content:e}];K(n),$(),Z();const{success:a,data:l,usedDocumentIds:d,newDocumentId:c,newDocumentName:m,isInsertedFile:u,error:p}=yield te.mutateAsync(Object.assign(Object.assign({formId:O,responseId:S,value:e},s&&i&&{documentId:i}),C&&{studioUserId:C}));if(!a)throw new Error(null!=p?p:"An error occurred, please try again.");u&&i&&X({documentId:i,isInsertedAsRaw:!0}),c&&m&&H([{type:"website",id:m,name:m,status:"finished",documentId:c}]),Z();const f=(yield b({formId:O,responseId:S,data:l})).body;if(!f)throw new Error("Streaming error");const h=f.getReader(),g=new TextDecoder,v=n.length;let x="",y=!0;for(P("streaming");y;){const{value:e,done:o}=yield h.read();y=!o;if(x+=g.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",x),x)K([...n.slice(0,v),{id:M.length+1,role:"assistant",content:x}]),Y&&Z();else if(!y&&!x)throw new Error("Server error")}const k=new Date;x&&(Z(),P("idle"),yield se.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:O,responseId:S,documentIds:d},A&&{userId:A}),C&&{studioUserId:C}),C&&(null==E?void 0:E.studioid)&&{studioId:E.studioid}),{messages:[{role:"user",message:e,sentAt:t},{role:"assistant",message:x,sentAt:k}]})))}catch(e){let o=w(e);o.includes("Unexpected token 'A',")&&(o="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(T).find((([e])=>o.includes(e)));t?W(t[1]):Q(o),Z()}finally{P("idle"),ee()}}));return o("div",Object.assign({className:D("fixed flex w-full flex-col bottom-0 left-0","viewport"===U?"min-[767px]:relative min-[767px]:bottom-auto min-[767px]:left-auto":"absolute @[767px]/pickaxe-root:relative @[767px]/pickaxe-root:bottom-auto @[767px]/pickaxe-root:left-auto")},{children:[ce&&t(j,{data:(null==E?void 0:E.icebreakers)||[],style:{backgroundColor:_.secondary,color:_.secondaryText},isMobile:z||ae,onSend:me}),o("div",Object.assign({style:le,className:"flex min-h-[56px] items-end gap-x-2 px-4 py-3 pb-[15px] shadow"},{children:["enduserupload"===(null==E?void 0:E.documentuploadtype)&&o("div",Object.assign({className:"tooltip"},{children:[t("input",{id:"file-upload",ref:ne,type:"file",accept:[...v,...G?x:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:o=>e(void 0,void 0,void 0,(function*(){yield J(Array.from(o.target.files||[])),o.target.value=""}))}),t("button",Object.assign({className:"flex items-center disabled:cursor-wait disabled:opacity-50",disabled:q,onClick:()=>{var e;return null===(e=ne.current)||void 0===e?void 0:e.click()}},{children:t(k,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:_.accent}})}))]})),t(y,{className:D(de("max-h-60 w-full resize-none border-transparent bg-transparent outline-none ring-0 scrollbar scrollbar-thin placeholder:font-semilight"),!re.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:re,placeholder:null!==(N=null==E?void 0:E.placeholdertext)&&void 0!==N?N:"What do you want to talk about?",onChange:e=>ie(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),me())}}),t("button",Object.assign({className:"outline-none disabled:cursor-default disabled:opacity-50",disabled:"idle"!==L||q,onClick:()=>me()},{children:t(I,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:_.accent}})}))]}))]}))};export{N as default};
1
+ import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as s,useRef as r,useMemo as n,useEffect as i}from"react";import{useMediaQuery as a}from"../../../hooks/core/useMediaQuery.js";import{usePickaxeContext as l}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as d}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as c}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as m}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as u}from"../../../hooks/pickaxe/useConversation.js";import{useSubmit as p}from"../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as f}from"../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as h}from"../Addons/Document/hooks/useDocument.js";import{useScroll as g}from"../Addons/Scroll/hooks/useScroll.js";import{allowedFileMimeTypes as v,allowedImageMimeTypes as x}from"../../../common/documents.js";import{streamer as b}from"../../../common/api/streamer.js";import y from"../../../node_modules/.pnpm/react-textarea-autosize@8.5.7_@types_react@18.3.18_react@18.3.1/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js";import k from"../../Icons/attach.svg.js";import I from"../../Icons/send.svg.js";import j from"../Addons/IceBreaker/index.js";import w from"../../../common/error.js";import D from"../../../common/cn.js";const N=()=>{var N;const{formId:O,chatId:S,userId:A,studioUserId:C,pickaxe:E,colors:_,responsiveBy:U,isNewChat:R,forceMobile:z,setIsNewChat:B,setIsShowIceBreaker:M,onGenerateComplete:F}=l(),{messages:L,status:T,limits:K,setMessages:P,setStatus:W,setLimitData:G,setError:Q}=d(),{documents:V,isUploading:q,isImageUploadAllowed:H,upsertDocuments:J,onFileUpload:X,onEditDocumentByDocId:Y}=h(),{isScrollIncreasing:Z,scrollToBottom:$,scrollStart:ee,scrollEnd:oe}=g(),te=u(),se=p(),re=f(),[ne,ie]=s(""),ae=r(null),[le]=a("(max-width: 767px)"),de=c(),ce=m({type:"body"}),me=n((()=>{var e,o,t;return!!R&&(!!E&&(!te.isLoading&&(!((null!==(o=null===(e=te.data)||void 0===e?void 0:e.messages.length)&&void 0!==o?o:0)>1)&&!!(null===(t=E.icebreakers)||void 0===t?void 0:t.length))))}),[E,R,te.data,te.isLoading]);i((()=>{M(me)}),[me]);const ue=o=>e(void 0,void 0,void 0,(function*(){try{if(q)return;G(null),Q(""),B(!1);const e=null!=o?o:ne;if(!e||"fetching"===T||"streaming"===T)return;const t=new Date;ie("");const s="enduserupload"===(null==E?void 0:E.documentuploadtype),r=V.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),n=r.length?r[r.length-1].documentId:"";W("fetching");const i=[...L,{id:L.length+1,role:"user",content:e}];P(i),ee(),$();const{success:a,data:l,usedDocumentIds:d,newDocumentId:c,newDocumentName:m,isInsertedFile:u,error:p}=yield se.mutateAsync(Object.assign(Object.assign({formId:O,responseId:S,value:e},s&&n&&{documentId:n}),C&&{studioUserId:C}));if(!a)throw new Error(null!=p?p:"An error occurred, please try again.");u&&n&&Y({documentId:n,isInsertedAsRaw:!0}),c&&m&&J([{type:"website",id:m,name:m,status:"finished",documentId:c}]),$();const f=(yield b({formId:O,responseId:S,data:l})).body;if(!f)throw new Error("Streaming error");const h=f.getReader(),g=new TextDecoder,v=i.length;let x="",y=!0;for(W("streaming");y;){const{value:e,done:o}=yield h.read();y=!o;if(x+=g.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",x),x)P([...i.slice(0,v),{id:L.length+1,role:"assistant",content:x}]),Z&&$();else if(!y&&!x)throw new Error("Server error")}const k=new Date;x&&($(),W("idle"),yield re.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:O,responseId:S,documentIds:d},A&&{userId:A}),C&&{studioUserId:C}),C&&(null==E?void 0:E.studioid)&&{studioId:E.studioid}),{messages:[{role:"user",message:e,sentAt:t},{role:"assistant",message:x,sentAt:k}]})),null==F||F(S))}catch(e){let o=w(e);o.includes("Unexpected token 'A',")&&(o="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(K).find((([e])=>o.includes(e)));t?G(t[1]):Q(o),$()}finally{W("idle"),oe()}}));return o("div",Object.assign({className:D("fixed flex w-full flex-col bottom-0 left-0","viewport"===U?"min-[767px]:relative min-[767px]:bottom-auto min-[767px]:left-auto":"absolute @[767px]/pickaxe-root:relative @[767px]/pickaxe-root:bottom-auto @[767px]/pickaxe-root:left-auto")},{children:[me&&t(j,{data:(null==E?void 0:E.icebreakers)||[],style:{backgroundColor:_.secondary,color:_.secondaryText},isMobile:z||le,onSend:ue}),o("div",Object.assign({style:de,className:"flex min-h-[56px] items-end gap-x-2 px-4 py-3 pb-[15px] shadow"},{children:["enduserupload"===(null==E?void 0:E.documentuploadtype)&&o("div",Object.assign({className:"tooltip"},{children:[t("input",{id:"file-upload",ref:ae,type:"file",accept:[...v,...H?x:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:o=>e(void 0,void 0,void 0,(function*(){yield X(Array.from(o.target.files||[])),o.target.value=""}))}),t("button",Object.assign({className:"flex items-center disabled:cursor-wait disabled:opacity-50",disabled:q,onClick:()=>{var e;return null===(e=ae.current)||void 0===e?void 0:e.click()}},{children:t(k,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:_.accent}})}))]})),t(y,{className:D(ce("max-h-60 w-full resize-none border-transparent bg-transparent outline-none ring-0 scrollbar scrollbar-thin placeholder:font-semilight"),!ne.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:ne,placeholder:null!==(N=null==E?void 0:E.placeholdertext)&&void 0!==N?N:"What do you want to talk about?",onChange:e=>ie(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),ue())}}),t("button",Object.assign({className:"outline-none disabled:cursor-default disabled:opacity-50",disabled:"idle"!==T||q,onClick:()=>ue()},{children:t(I,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:_.accent}})}))]}))]}))};export{N as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as s}from"react";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as r}from"../../../../hooks/pickaxe/useResponseContext.js";import{useSubmit as n}from"../../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as d}from"../../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as a}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as l}from"../../Addons/Scroll/hooks/useScroll.js";import{streamer as m}from"../../../../common/api/streamer.js";import{extractUrlsFromText as c}from"../../../../common/utils.js";import{encode as u}from"@nem035/gpt-3-encoder";import p from"../../common/PickaxeButton.js";import f from"../../../../common/error.js";import g from"../../../../common/cn.js";const h=({questions:h})=>{const{formId:x,userId:w,studioUserId:j,pickaxe:b,isShowHistory:I,responsiveBy:k,setIsShowHistory:v}=i(),{status:y,limits:O,setResponse:S,setStatus:q,setLimitData:E,setError:D}=r(),{documents:R,websiteLink:U,isUploading:P,onWebsiteUpload:A,setDocumentError:C}=a(),{isScrollIncreasing:N,scrollToContainer:L,scrollToBottom:T,scrollStart:B,scrollEnd:_}=l(),H=n(),W=d(),[K,M]=s(!1);return o("div",Object.assign({className:"mt-4 flex flex-wrap gap-2"},{children:[t(p,Object.assign({className:g("w-full","viewport"===k?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:P||K||"fetching"===y||"streaming"===y,onClick:()=>e(void 0,void 0,void 0,(function*(){var e;try{if(P||K||"fetching"===y||"streaming"===y)return;E(null),C("");const o="enduserupload"===(null==b?void 0:b.documentuploadtype),t=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),s=R.filter((e=>"finished"===e.status)),i=c(U),r=R.map((e=>e.name)),n=i.filter((e=>!r.includes(e)));if(n.length){const e=n[n.length-1],o=yield A(e);o&&(s.push(o),M(!0),yield new Promise((e=>setTimeout(e,5e3))),M(!1))}else if(t&&o&&!s.length)return void C("Please paste a valid website/video link or drag a file to add to the knowledge base.");D("");const d=["Multiple Choice","Checkbox"];for(const e of h){if(u(e.input).length>e.maxLength&&!d.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const a=s.length?s[s.length-1]:null;let l={};h.forEach((e=>l=Object.assign(Object.assign({},l),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==a?void 0:a.name)||"":e.input}))),q("fetching");const{success:p,responseId:f,data:g,usedDocumentIds:I,rawUserInput:k,error:v}=yield H.mutateAsync(Object.assign(Object.assign({formId:x,valueObj:l},o&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}),j&&{studioUserId:j}));if(!p)throw new Error(null!=v?v:"An error occurred, please try again.");B();const O=(yield m({formId:x,responseId:f,data:g})).body;if(!O)throw new Error("Streaming error");const L=O.getReader(),_=new TextDecoder;let V="",Y=!0;S(null);const z=h.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;Y;){const{value:e,done:o}=yield L.read();Y=!o;if(V+=_.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",V),V)q("streaming"),S({formId:x,responseId:f,documentIds:I,messages:[],questions:z,questionPrompt:k,questionResponse:V,createdAt:new Date}),N&&T();else if(!Y&&!V)throw new Error("Server error")}V&&(T(),q("idle"),yield W.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:x,responseId:f,documentIds:I},w&&{userId:w}),j&&{studioUserId:j}),j&&(null==b?void 0:b.studioid)&&{studioId:b.studioid}),{questions:z,questionPrompt:k,questionResponse:V})))}catch(e){let o=f(e);o.includes("Unexpected token 'A',")&&(o="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(O).find((([e])=>o.includes(e)));t?E(t[1]):D(o),M(!1),L()}finally{q("idle"),_()}}))},{children:K?"Processing...":P?"Uploading...":"fetching"===y||"streaming"===y?"Loading...":"Submit"})),!I&&t(p,Object.assign({variant:"transparent-text",className:g("w-full","viewport"===k?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>v(!0)},{children:"See history"}))]}))};export{h as default};
1
+ import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as s}from"react";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as r}from"../../../../hooks/pickaxe/useResponseContext.js";import{useSubmit as n}from"../../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as d}from"../../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as l}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as a}from"../../Addons/Scroll/hooks/useScroll.js";import{streamer as m}from"../../../../common/api/streamer.js";import{extractUrlsFromText as c}from"../../../../common/utils.js";import{encode as u}from"@nem035/gpt-3-encoder";import p from"../../common/PickaxeButton.js";import f from"../../../../common/error.js";import g from"../../../../common/cn.js";const h=({questions:h})=>{const{formId:x,userId:w,studioUserId:j,pickaxe:b,isShowHistory:I,responsiveBy:k,setIsShowHistory:v,onGenerateComplete:y}=i(),{status:O,limits:S,setResponse:q,setStatus:E,setLimitData:D,setError:R}=r(),{documents:U,websiteLink:C,isUploading:P,onWebsiteUpload:A,setDocumentError:N}=l(),{isScrollIncreasing:L,scrollToContainer:T,scrollToBottom:B,scrollStart:_,scrollEnd:H}=a(),W=n(),G=d(),[K,M]=s(!1);return o("div",Object.assign({className:"mt-4 flex flex-wrap gap-2"},{children:[t(p,Object.assign({className:g("w-full","viewport"===k?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:P||K||"fetching"===O||"streaming"===O,onClick:()=>e(void 0,void 0,void 0,(function*(){var e;try{if(P||K||"fetching"===O||"streaming"===O)return;D(null),N("");const o="enduserupload"===(null==b?void 0:b.documentuploadtype),t=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),s=U.filter((e=>"finished"===e.status)),i=c(C),r=U.map((e=>e.name)),n=i.filter((e=>!r.includes(e)));if(n.length){const e=n[n.length-1],o=yield A(e);o&&(s.push(o),M(!0),yield new Promise((e=>setTimeout(e,5e3))),M(!1))}else if(t&&o&&!s.length)return void N("Please paste a valid website/video link or drag a file to add to the knowledge base.");R("");const d=["Multiple Choice","Checkbox"];for(const e of h){if(u(e.input).length>e.maxLength&&!d.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const l=s.length?s[s.length-1]:null;let a={};h.forEach((e=>a=Object.assign(Object.assign({},a),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==l?void 0:l.name)||"":e.input}))),E("fetching");const{success:p,responseId:f,data:g,usedDocumentIds:I,rawUserInput:k,error:v}=yield W.mutateAsync(Object.assign(Object.assign({formId:x,valueObj:a},o&&l&&{documentId:null!==(e=l.documentId)&&void 0!==e?e:""}),j&&{studioUserId:j}));if(!p)throw new Error(null!=v?v:"An error occurred, please try again.");_();const S=(yield m({formId:x,responseId:f,data:g})).body;if(!S)throw new Error("Streaming error");const T=S.getReader(),H=new TextDecoder;let V="",Y=!0;q(null);const z=h.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;Y;){const{value:e,done:o}=yield T.read();Y=!o;if(V+=H.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",V),V)E("streaming"),q({formId:x,responseId:f,documentIds:I,messages:[],questions:z,questionPrompt:k,questionResponse:V,createdAt:new Date}),L&&B();else if(!Y&&!V)throw new Error("Server error")}V&&(B(),E("idle"),yield G.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:x,responseId:f,documentIds:I},w&&{userId:w}),j&&{studioUserId:j}),j&&(null==b?void 0:b.studioid)&&{studioId:b.studioid}),{questions:z,questionPrompt:k,questionResponse:V})),null==y||y(f))}catch(e){let o=f(e);o.includes("Unexpected token 'A',")&&(o="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(S).find((([e])=>o.includes(e)));t?D(t[1]):R(o),M(!1),T()}finally{E("idle"),H()}}))},{children:K?"Processing...":P?"Uploading...":"fetching"===O||"streaming"===O?"Loading...":"Submit"})),!I&&t(p,Object.assign({variant:"transparent-text",className:g("w-full","viewport"===k?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>v(!0)},{children:"See history"}))]}))};export{h as default};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{createContext as s,useState as r}from"react";import t from"./Addons/Document/Provider.js";import o from"./ResponseProvider.js";const i=s({}),c=({userId:s="",studioUserId:c="",styles:n,colors:d,responsiveBy:a="viewport",limits:l={},isForceMobile:F=!1,children:m})=>{const[h,I]=r(""),[p,u]=r(""),[y,f]=r(null),[b,x]=r(!0),[j,v]=r(!0),[w,S]=r(!1);return e(i.Provider,Object.assign({value:{formId:h,chatId:p,userId:s,studioUserId:c,pickaxe:y,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},n),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},d),responsiveBy:a,isNewChat:b,isShowIceBreaker:j,isShowHistory:w,isForceMobile:F,setFormId:I,setChatId:u,setPickaxe:f,setIsNewChat:x,setIsShowIceBreaker:v,setIsShowHistory:S}},{children:e(o,Object.assign({limits:l},{children:e(t,{children:m})}))}))};export{i as PickaxeContext,c as PickaxeProvider};
1
+ import{jsx as e}from"react/jsx-runtime";import{createContext as o,useState as r}from"react";import t from"./Addons/Document/Provider.js";import s from"./ResponseProvider.js";const i=o({}),n=({children:o,userId:n="",studioUserId:c="",styles:a,colors:d,responsiveBy:l="viewport",limits:m={},loadFont:F=!0,forceMobile:h=!1,onGenerateComplete:p})=>{const[I,f]=r(""),[u,y]=r(""),[b,j]=r(null),[x,v]=r(!0),[w,S]=r(!0),[g,k]=r(!1);return e(i.Provider,Object.assign({value:Object.assign({formId:I,chatId:u,userId:n,studioUserId:c,pickaxe:b,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},a),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},d),responsiveBy:l,isNewChat:x,isShowIceBreaker:w,isShowHistory:g,loadFont:F,forceMobile:h,setFormId:f,setChatId:y,setPickaxe:j,setIsNewChat:v,setIsShowIceBreaker:S,setIsShowHistory:k},p&&{onGenerateComplete:p})},{children:e(s,Object.assign({limits:m},{children:e(t,{children:o})}))}))};export{i as PickaxeContext,n as PickaxeProvider};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{createContext as s,useState as t}from"react";const r=s({}),i=({limits:s,children:i})=>{const[a,n]=t([]),[l,o]=t(null),[m,c]=t("idle"),[g,u]=t(null),[d,p]=t(""),[j,b]=t(!1);return e(r.Provider,Object.assign({value:{messages:a,response:l,status:m,limits:s,limitData:g,error:d,isGenerating:j,setMessages:n,setResponse:o,setStatus:c,setLimitData:u,setError:p,setIsGenerating:b,setMessage:e=>{n((s=>s.map(((s,t)=>t===e.id?Object.assign(Object.assign({},s),e):s))))}}},{children:i}))};export{r as ResponseContext,i as default};
1
+ import{jsx as e}from"react/jsx-runtime";import{createContext as s,useState as t}from"react";const r=s({}),i=({limits:s,children:i})=>{const[a,n]=t([]),[l,o]=t(null),[m,u]=t("idle"),[c,d]=t(null),[g,p]=t(""),[f,h]=t(!1);return e(r.Provider,Object.assign({value:{messages:a,response:l,status:m,limits:s,limitData:c,error:g,isGenerating:f,setMessages:n,setResponse:o,setStatus:u,setLimitData:d,setError:p,setIsGenerating:h}},{children:i}))};export{r as ResponseContext,i as default};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{usePickaxeMarkdownContext as t}from"../../hooks/usePickaxeMarkdownContext.js";import r from"../common/Action.js";import i from"../Img/index.js";const o=({node:o,href:n="",children:s})=>{const{accentColor:a,linkPreviews:l,actions:c}=t(),m=(n||"").startsWith("www.")?`https://${n}`:n,d=m.match(/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([\w-]+)/i);if(d&&(null==d?void 0:d[1]))return e("div",Object.assign({style:{marginTop:"2.5rem",marginBottom:"2.5rem",display:"flex",width:"100%",justifyContent:"center"}},{children:e("iframe",Object.assign({title:"youtube-embed",src:`https://www.youtube.com/embed/${d[1]}`,style:{width:"100%",maxWidth:"560px"},allowFullScreen:!0},{children:"Iframe not supported, use a different browser."}))}));return m.match(/\.(jpeg|jpg|gif|bmp|webp|svg|tiff|avif)$/)?e(i,{src:m,alt:"string"==typeof s?s:"Markdown Image"}):c&&m.includes("pickaxe")&&(m.includes("/api/fn/result")||m.includes("/api/function_call_results"))?e(r,{jobUrl:m}):e("a",Object.assign({href:m,target:"_blank",rel:"noopener noreferrer"},l&&{className:"marked-link-possible-preview-render"},{style:{color:a,fontWeight:600}},{children:s}))};export{o as default};
1
+ import{jsx as e}from"react/jsx-runtime";import{usePickaxeMarkdownContext as t}from"../../hooks/usePickaxeMarkdownContext.js";import r from"../common/Action.js";import i from"../Img/index.js";const o=({node:o,href:n="",children:s})=>{const{accentColor:a,linkPreviews:l,actions:c}=t(),m=(n||"").startsWith("www.")?`https://${n}`:n,d=m.match(/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([\w-]+)/i);if(d&&(null==d?void 0:d[1]))return e("div",Object.assign({style:{marginTop:"2rem",marginBottom:"2rem",display:"flex",width:"100%",justifyContent:"center"}},{children:e("iframe",Object.assign({title:"youtube-embed",src:`https://www.youtube.com/embed/${d[1]}`,style:{width:"100%",maxWidth:"560px"},allowFullScreen:!0},{children:"Iframe not supported, use a different browser."}))}));return m.match(/\.(jpeg|jpg|gif|bmp|webp|svg|tiff|avif)$/)?e(i,{src:m,alt:"string"==typeof s?s:"Markdown Image"}):c&&m.includes("pickaxe")&&(m.includes("/api/fn/result")||m.includes("/api/function_call_results"))?e(r,{jobUrl:m}):e("a",Object.assign({href:m,target:"_blank",rel:"noopener noreferrer"},l&&{className:"marked-link-possible-preview-render"},{style:{color:a,fontWeight:600}},{children:s}))};export{o as default};
@@ -0,0 +1 @@
1
+ import{__rest as e}from"../../../../../../_virtual/_tslib.js";import{jsx as r}from"react/jsx-runtime";import{Prism as a}from"react-syntax-highlighter";import{usePickaxeMarkdownContext as s}from"../../hooks/usePickaxeMarkdownContext.js";const t=t=>{var{node:n,children:i,className:o}=t,c=e(t,["node","children","className"]);const{syntaxTheme:l}=s(),m=/language-(\w+)/.exec(o||"");return m?r(a,Object.assign({},c,{PreTag:"div",language:m[1],style:l,showLineNumbers:!0},{children:String(i).replace(/\n$/,"")})):r("code",Object.assign({},c,{className:o},{children:i}))};export{t as default};
@@ -0,0 +1 @@
1
+ import{__rest as e}from"../../../../../../_virtual/_tslib.js";import{jsx as r}from"react/jsx-runtime";const t=t=>{var{node:i,title:l="Random Iframe",children:a}=t,n=e(t,["node","title","children"]);return r("iframe",Object.assign({title:l,style:{borderRadius:"8px"},allowFullScreen:!0},n,{children:a}))};export{t as default};
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{usePickaxeContext as r}from"../../../../../../hooks/pickaxe/usePickaxeContext.js";import s from"../../../../../Core/Modal/index.js";import t from"../../../../../Core/Modal/Body.js";import l from"../../../../../Core/Modal/CloseButton.js";const i=({children:i,isOpen:a,onChangeIsOpen:n})=>{const{colors:c}=r();return e(s,Object.assign({isOpen:a,onChange:n},{children:o(t,Object.assign({className:"border-0 w-full h-full",style:{backgroundColor:c.primary,color:c.text,borderColor:c.text+"4D"},avoidOverflow:!0},{children:[e("div",Object.assign({className:"flex items-start justify-end gap-4"},{children:e(l,{})})),e("div",Object.assign({className:"mt-4 flex flex-col flex-grow"},{children:i}))]}))}))};export{i as default};
@@ -1 +1 @@
1
- import{__rest as o}from"../../../../../../_virtual/_tslib.js";import{jsx as r,jsxs as e,Fragment as t}from"react/jsx-runtime";import{useState as i}from"react";import{usePickaxeMarkdownContext as n}from"../../hooks/usePickaxeMarkdownContext.js";import{useHover as s}from"../../../../../../hooks/core/useHover.js";import{motion as a}from"framer-motion";import l from"../../../../../Icons/download.svg.js";const d=({node:d,src:c,alt:p})=>{const{accentColor:m}=n(),[f,b]=i(!1),h=s(),{isHover:x}=h,u=o(h,["isHover"]);return r("div",Object.assign({style:{marginTop:"2.5rem",marginBottom:"2.5rem",display:"flex",width:"100%",justifyContent:"center",overflow:"hidden",borderRadius:"8px",transition:"transform 0.3s ease, box-shadow 0.3s ease",transform:x?"translateY(-5px)":"translateY(0)"}},u,{children:f?r("p",Object.assign({style:{userSelect:"none",opacity:.5,fontStyle:"italic"}},{children:"[Image link is broken]"})):e(t,{children:[r(a.button,Object.assign({initial:"hidden",animate:x?"visible":"hidden",variants:{hidden:{opacity:0,y:-10,pointerEvents:"none"},visible:{opacity:1,y:0,pointerEvents:"auto"}},style:{position:"absolute",top:"10px",right:"10px",backgroundColor:"#007bff",color:"#fff",border:"none",borderRadius:"4px",padding:"0.5rem 0.75rem",cursor:"pointer",fontSize:"0.875rem",boxShadow:"0px 4px 6px rgba(0, 0, 0, 0.1)",transition:"background-color 0.2s ease"},whileHover:{backgroundColor:m},whileTap:{scale:.95},onClick:()=>window.open(c,"_blank")},{children:r(l,{width:24,height:24,style:{flexShrink:0}})})),r("img",{src:c,alt:p,style:{borderRadius:"8px",maxWidth:"680px"},onError:()=>b(!0)})]})}))};export{d as default};
1
+ import{__rest as o}from"../../../../../../_virtual/_tslib.js";import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useState as i}from"react";import{usePickaxeMarkdownContext as t}from"../../hooks/usePickaxeMarkdownContext.js";import{useHover as n}from"../../../../../../hooks/core/useHover.js";import{motion as s}from"framer-motion";import{getContrastColor as a}from"../../../../../../common/utils.js";import l from"../../../../../Icons/download.svg.js";import d from"../../../PickaxeCopyButton.js";import p from"./ImgModal.js";const c=({node:c,src:m,alt:b})=>{const{accentColor:h}=t(),[g,x]=i(!1),[u,f]=i(!1),k=n(),{isHover:w}=k,y=o(k,["isHover"]),v={hidden:{opacity:0,y:-10,pointerEvents:"none"},visible:{opacity:1,y:0,pointerEvents:"auto"}},j=()=>e("div",Object.assign({style:{position:"relative"}},{children:[e(s.div,Object.assign({initial:"hidden",animate:w?"visible":"hidden",variants:v,style:{position:"absolute",display:"flex",gap:"0.4rem",top:"10px",right:"10px",color:"#FFF"}},{children:[r(s.button,Object.assign({style:{outline:"none",padding:"0.5rem 0.65rem",borderRadius:"4px",boxShadow:"0px 4px 6px rgba(0, 0, 0, 0.1)",transition:"background-color 0.2s ease",backgroundColor:h+"07"},whileHover:{backgroundColor:h||"#000000"},whileTap:{scale:.95},onClick:o=>{o.stopPropagation(),window.open(m,"_blank")}},{children:r(l,{width:24,height:24,style:{color:a(h||"#000000"),flexShrink:0}})})),r(s.button,Object.assign({style:{outline:"none",padding:"0.5rem 0.65rem",borderRadius:"4px",boxShadow:"0px 4px 6px rgba(0, 0, 0, 0.1)",transition:"background-color 0.2s ease",backgroundColor:h+"07"},whileHover:{backgroundColor:h||"#000000"},whileTap:{scale:.95},onClick:o=>o.stopPropagation()},{children:r(d,{color:a(h||"#000000"),iconClassName:"w-6 h-6",text:m||""})}))]})),r("img",{src:m,alt:b,style:{borderRadius:"8px",width:"100%",transition:"box-shadow 0.3s ease",boxShadow:w?"inset 0px 4px 10px rgba(0, 0, 0, 0.5)":"none"},onError:()=>x(!0),onClick:()=>f(!0)})]}));return e("div",Object.assign({style:{marginTop:"2rem",marginBottom:"2rem",display:"flex",width:"100%",justifyContent:"center",overflow:"hidden",borderRadius:"8px",transition:"transform 0.3s ease, box-shadow 0.3s ease",transform:w?"translateY(-5px)":"translateY(0)"}},y,{children:[g?r("p",Object.assign({style:{userSelect:"none",opacity:.5,fontStyle:"italic"}},{children:"[Image link is broken]"})):r(j,{}),u&&r(p,Object.assign({isOpen:u,onChangeIsOpen:f},{children:r(j,{})}))]}))};export{c as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../../../_virtual/_tslib.js";import{jsx as o}from"react/jsx-runtime";import{useState as t,useRef as i}from"react";import{useQuery as r}from"@tanstack/react-query";import{usePickaxeMarkdownContext as n}from"../../hooks/usePickaxeMarkdownContext.js";import{loaderBlack as a}from"../../../../../../common/lotties/loader-black.js";import{loaderWhite as s}from"../../../../../../common/lotties/loader-white.js";import{PickaxeLottie as d}from"../../../PickaxeLottie.js";import{streamer as c}from"../../../../../../common/api/streamer.js";import{PickaxeMarkdownRenderer as l}from"../../Renderer.js";import{AnimatePresence as m,motion as p}from"framer-motion";import u from"../../../../../../common/api/utils.js";import f from"../../../../../../common/error.js";const v=({jobUrl:v})=>{var y,j;const{theme:h}=n(),[g,x]=t(""),b=i(null),w=r({queryKey:[v],queryFn:()=>(o=>e(void 0,void 0,void 0,(function*(){try{if(!o||o.includes("undefined"))throw new Error("Invalid action job URL");const e=yield fetch(o);return yield e.json()}catch(e){const o=f(e);return"development"===process.env.NODE_ENV&&console.error("[getJobResult]",o),{success:!1,error:o}}})))(v),enabled:"undefined"!=typeof window,retry:10,onSuccess:o=>e(void 0,void 0,void 0,(function*(){if(!o.success)return;if("text"in o)return void x(o.text||"");if(!("fcid"in o)){const e=(yield c({formId:o.formId,responseId:o.responseId,data:o.encodedData})).body;if(!e)return;let t=!0,i="";const r=e.getReader(),n=new TextDecoder;for(;t;){const{value:e,done:o}=yield r.read();t=!o;i+=n.decode(e),x(i)}return x(i),yield u.post("/fn/update",{id:o.jobId,data:Object.assign(Object.assign({},o),{text:i})}),void console.log("[Action] streaming done")}yield new Promise((e=>setTimeout(e,3e3))),w.refetch(),"development"===process.env.NODE_ENV&&console.log(`[Action] refetching <${v}>`)}))});return console.log("[ActionResult]",w.data,g),o("div",Object.assign({ref:b,className:"pxe-action"},{children:o(m,{children:w.error||(null===(y=w.data)||void 0===y?void 0:y.error)?o(p.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:o(l,{value:`> ${(null===(j=w.data)||void 0===j?void 0:j.error)||"Failed to process, please try again."}`})})):o(p.div,g?Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3},className:"mt-4"},{children:o(l,{value:g})}):Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:o(d,{id:"dark"===h?"loader-white":"loader-black",getJson:()=>e(void 0,void 0,void 0,(function*(){return"dark"===h?s:a})),autoplay:!0,loop:!0,style:{cursor:"default",pointerEvents:"none",width:"100%",maxWidth:"150px",height:"150px"}})}))})}))};export{v as default};
1
+ import{__awaiter as e}from"../../../../../../_virtual/_tslib.js";import{jsx as o,jsxs as t,Fragment as i}from"react/jsx-runtime";import{useState as r,useRef as n}from"react";import{useQuery as a}from"@tanstack/react-query";import{usePickaxeMarkdownContext as d}from"../../hooks/usePickaxeMarkdownContext.js";import{loaderBlack as c}from"../../../../../../common/lotties/loader-black.js";import{loaderWhite as s}from"../../../../../../common/lotties/loader-white.js";import{PickaxeLottie as l}from"../../../PickaxeLottie.js";import{streamer as m}from"../../../../../../common/api/streamer.js";import{PickaxeMarkdownRenderer as p}from"../../Renderer.js";import{AnimatePresence as u,motion as f}from"framer-motion";import v from"../../../../../../common/api/utils.js";import y from"../../../../../../common/error.js";const h=({jobUrl:h})=>{var j,b,g,x;const{theme:k}=d(),[w,O]=r(""),[F,N]=r(""),E=n(null),I=a({queryKey:[h],queryFn:()=>(o=>e(void 0,void 0,void 0,(function*(){try{if(!o||o.includes("undefined"))throw new Error("Invalid action job URL");const e=yield fetch(o);return yield e.json()}catch(e){const o=y(e);return"development"===process.env.NODE_ENV&&console.error("[getJobResult]",o),{success:!1,error:o}}})))(h),enabled:"undefined"!=typeof window,retry:10,onSuccess:o=>e(void 0,void 0,void 0,(function*(){try{if(N(""),!o.success)return;if("text"in o)return void O(o.text||"");if(!("fcid"in o)){const e=(yield m({formId:o.formId,responseId:o.responseId,data:o.encodedData})).body;if(!e)return;let t=!0,i="";const r=e.getReader(),n=new TextDecoder;for(;t;){const{value:e,done:o}=yield r.read();t=!o;i+=n.decode(e),O(i)}return O(i),yield v.post("/fn/update",{id:o.jobId,data:Object.assign(Object.assign({},o),{text:i})}),void console.log("[Action] streaming done")}yield new Promise((e=>setTimeout(e,3e3))),I.refetch(),"development"===process.env.NODE_ENV&&console.log(`[Action] refetching <${h}>`)}catch(e){N(y(e))}}))});return o("div",Object.assign({ref:E,className:"pxe-action"},{children:o(u,{children:F||I.error||(null===(j=I.data)||void 0===j?void 0:j.error)?t(f.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3},className:"mt-4"},{children:[o("blockquote",Object.assign({style:{lineHeight:"20px",borderLeft:"4px solid #FF0000",color:"#FF0000",paddingLeft:"1rem",marginBottom:"1rem"}},{children:F||(null===(b=I.data)||void 0===b?void 0:b.error)||"Failed to process, please try again."})),(null===(g=I.data)||void 0===g?void 0:g.traceback)&&t(i,{children:[t("p",Object.assign({style:{color:"#FF0000"}},{children:["Traceback:"," "]})),o(p,{value:`\`\`\`js\n${null===(x=I.data)||void 0===x?void 0:x.traceback}\n\`\`\``})]})]})):o(f.div,w?Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3},className:"mt-4"},{children:o(p,{value:w})}):Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:o(l,{id:"dark"===k?"loader-white":"loader-black",getJson:()=>e(void 0,void 0,void 0,(function*(){return"dark"===k?s:c})),autoplay:!0,loop:!0,style:{cursor:"default",pointerEvents:"none",width:"100%",maxWidth:"150px",height:"150px"}})}))})}))};export{h as default};
@@ -1 +1 @@
1
- import{__rest as e}from"../../../../_virtual/_tslib.js";import{jsx as i}from"react/jsx-runtime";import{useRef as t}from"react";import{usePickaxeMarkdownContext as r}from"./hooks/usePickaxeMarkdownContext.js";import{Prism as n}from"react-syntax-highlighter";import l from"react-markdown";import s from"remark-gfm";import o from"remark-math";import d from"rehype-katex";import c from"./Custom/A/index.js";import a from"./Custom/P/index.js";import m from"./Custom/Img/index.js";const h=({className:h,style:g,value:p})=>{const{theme:f,syntaxTheme:b}=r(),y=t(null),j={h1:({node:e,children:t})=>i("h1",Object.assign({style:{fontSize:"2.25rem",lineHeight:"2.5rem"}},{children:t})),h2:({node:e,children:t})=>i("h2",Object.assign({style:{fontSize:"1.875rem",lineHeight:"2.25rem"}},{children:t})),h3:({node:e,children:t})=>i("h3",Object.assign({style:{fontSize:"1.5rem",lineHeight:"2rem"}},{children:t})),h4:({node:e,children:t})=>i("h4",Object.assign({className:"mt-2 text-xl",style:{fontSize:"1.25rem",lineHeight:"1.75rem"}},{children:t})),h5:({node:e,children:t})=>i("h5",Object.assign({style:{fontSize:"1.125rem",lineHeight:"1.75rem"}},{children:t})),p:a,a:c,ol:({node:e,children:t})=>i("ol",Object.assign({style:{listStyleType:"decimal",listStylePosition:"inside",paddingLeft:"1.5rem"}},{children:t})),ul:({node:e,children:t})=>i("ul",Object.assign({style:{listStyleType:"disc",listStylePosition:"inside",paddingLeft:"1.5rem"}},{children:t})),li:({node:e,children:t})=>i("li",{children:t}),table:({children:e})=>i("div",Object.assign({className:"overflow-auto"},{children:i("table",Object.assign({style:{tableLayout:"fixed",fontSize:"0.875rem",lineHeight:"1.24rem"}},{children:e}))})),th:({node:e,children:t})=>i("th",Object.assign({style:{padding:"0.75em 1em",fontWeight:600,textAlign:"left"}},{children:t})),tr:({node:e,children:t})=>i("tr",Object.assign({style:{border:"dark"===f?"1px solid #30363D":"1px solid #D0D7DE"}},{children:t})),td:({node:e,children:t})=>i("td",Object.assign({style:{padding:"0.75em 1em"}},{children:t})),code:t=>{var{node:r,children:l,className:s}=t,o=e(t,["node","children","className"]);const d=/language-(\w+)/.exec(s||"");return d?i(n,Object.assign({},o,{PreTag:"div",language:d[1],style:b,showLineNumbers:!0},{children:String(l).replace(/\n$/,"")})):i("code",Object.assign({},o,{className:s},{children:l}))},blockquote:({node:e,children:t})=>i("blockquote",Object.assign({style:{lineHeight:"15px",borderLeft:"dark"===f?"4px solid #30363D":"4px solid #D0D7DE",color:"dark"===f?"#8B8B8B":"#656D76",paddingLeft:"1rem",marginBottom:"1rem"}},{children:t})),img:m};return i("div",Object.assign({className:"pxe-markdown",ref:y,style:Object.assign({position:"relative",whiteSpace:"pre-wrap"},g)},{children:i(l,Object.assign({},h&&{className:h},{components:j,remarkPlugins:[s,o],rehypePlugins:[d]},{children:(null!=p?p:"").replace(/\u200B/g,"")}))}))};export{h as PickaxeMarkdownRenderer};
1
+ import{jsx as e}from"react/jsx-runtime";import{useRef as i}from"react";import{usePickaxeMarkdownContext as t}from"./hooks/usePickaxeMarkdownContext.js";import r from"react-markdown";import n from"remark-gfm";import l from"remark-math";import s from"rehype-katex";import o from"./Custom/A/index.js";import d from"./Custom/P/index.js";import m from"./Custom/Img/index.js";import c from"./Custom/Iframe/index.js";import a from"./Custom/Code/index.js";const h=({className:h,style:g,value:p})=>{const{theme:f}=t(),b=i(null),j={h1:({node:i,children:t})=>e("h1",Object.assign({style:{fontSize:"2.25rem",lineHeight:"2.5rem"}},{children:t})),h2:({node:i,children:t})=>e("h2",Object.assign({style:{fontSize:"1.875rem",lineHeight:"2.25rem"}},{children:t})),h3:({node:i,children:t})=>e("h3",Object.assign({style:{fontSize:"1.5rem",lineHeight:"2rem"}},{children:t})),h4:({node:i,children:t})=>e("h4",Object.assign({className:"mt-2 text-xl",style:{fontSize:"1.25rem",lineHeight:"1.75rem"}},{children:t})),h5:({node:i,children:t})=>e("h5",Object.assign({style:{fontSize:"1.125rem",lineHeight:"1.75rem"}},{children:t})),p:d,a:o,ol:({node:i,children:t})=>e("ol",Object.assign({style:{listStyleType:"decimal",listStylePosition:"inside",paddingLeft:"1.5rem"}},{children:t})),ul:({node:i,children:t})=>e("ul",Object.assign({style:{listStyleType:"disc",listStylePosition:"inside",paddingLeft:"1.5rem"}},{children:t})),li:({node:i,children:t})=>e("li",{children:t}),table:({children:i})=>e("div",Object.assign({className:"overflow-auto"},{children:e("table",Object.assign({style:{tableLayout:"fixed",fontSize:"0.875rem",lineHeight:"1.24rem"}},{children:i}))})),th:({node:i,children:t})=>e("th",Object.assign({style:{padding:"0.75em 1em",fontWeight:600,textAlign:"left"}},{children:t})),tr:({node:i,children:t})=>e("tr",Object.assign({style:{border:"dark"===f?"1px solid #30363D":"1px solid #D0D7DE"}},{children:t})),td:({node:i,children:t})=>e("td",Object.assign({style:{padding:"0.75em 1em"}},{children:t})),code:a,blockquote:({node:i,children:t})=>e("blockquote",Object.assign({style:{lineHeight:"15px",borderLeft:"dark"===f?"4px solid #30363D":"4px solid #D0D7DE",color:"dark"===f?"#8B8B8B":"#656D76",paddingLeft:"1rem",marginBottom:"1rem"}},{children:t})),img:m,iframe:c};return e("div",Object.assign({className:"pxe-markdown",ref:b,style:Object.assign({position:"relative",whiteSpace:"pre-wrap"},g)},{children:e(r,Object.assign({},h&&{className:h},{components:j,remarkPlugins:[n,l],rehypePlugins:[s]},{children:(null!=p?p:"").replace(/\u200B/g,"")}))}))};export{h as PickaxeMarkdownRenderer};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{usePickaxe as r}from"../../hooks/pickaxe/usePickaxe.js";import{useEffect as t}from"react";import{usePickaxeContext as e}from"../../hooks/pickaxe/usePickaxeContext.js";import{generateId as a}from"../../common/utils.js";import m from"./Addons/Scroll/Provider.js";import s from"./Chat/index.js";import i from"./Form/index.js";import c from"../../common/cn.js";const l=({formId:l,className:d})=>{const{chatId:n,styles:f,colors:x,setFormId:p,setChatId:h,setPickaxe:k}=e(),j=r();return t((()=>{p(l)}),[l]),t((()=>{j.data&&(h(j.data.chatflag?a(15):""),k(j.data))}),[j.data]),j.data?o("div",Object.assign({className:c("relative @container/pickaxe-root flex flex-col flex-grow w-full h-full",d,"dark"===f.theme&&"dark"),style:{backgroundColor:x.primary,color:x.text}},{children:o(m,n?{children:o(s,{})}:{children:o(i,{})})})):null};export{l as Pickaxe};
1
+ import{jsx as o}from"react/jsx-runtime";import{usePickaxe as e}from"../../hooks/pickaxe/usePickaxe.js";import{useState as t,useEffect as r}from"react";import{usePickaxeContext as a}from"../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as s}from"../../hooks/pickaxe/useResponseContext.js";import{generateId as i}from"../../common/utils.js";import m from"webfontloader";import n from"./Addons/Scroll/Provider.js";import l from"./Chat/index.js";import c from"./Form/index.js";import d from"../../common/cn.js";const f=({formId:f,className:p})=>{const{chatId:x,styles:k,colors:u,loadFont:h,setFormId:j,setChatId:g,setPickaxe:w}=a(),{setMessages:y,setResponse:C}=s(),[P,F]=t(!1),I=e();return r((()=>{j(f)}),[f]),r((()=>{if(!I.data)return;const o=I.data.chatflag;g(o?i(15):""),o?y([]):C(null),w(I.data)}),[I.data]),r((()=>{"undefined"!=typeof window&&(P||h&&"Real Head Pro"!==k.font&&(m.load({google:{families:[k.font]}}),F(!0)))}),[k.font,P]),I.data?o("div",Object.assign({className:d("relative @container/pickaxe-root flex flex-col flex-grow w-full h-full",p,"dark"===k.theme&&"dark"),style:{backgroundColor:u.primary,color:u.text,fontFamily:k.font}},{children:o(n,x?{children:o(l,{})}:{children:o(c,{})})})):null};export{f as Pickaxe};
@@ -1,3 +1,4 @@
1
1
  export declare const generateId: (length: number, prefix?: string, suffix?: string) => string;
2
2
  export declare const randomStr: (len: number, charOnly?: boolean) => string;
3
3
  export declare const extractUrlsFromText: (text: string) => string[];
4
+ export declare const getContrastColor: (hex: string) => "#FFFFFF" | "#000000";
@@ -34,24 +34,28 @@ type PickaxeContextType = {
34
34
  isNewChat: boolean;
35
35
  isShowIceBreaker: boolean;
36
36
  isShowHistory: boolean;
37
- isForceMobile: boolean;
37
+ loadFont: boolean;
38
+ forceMobile: boolean;
38
39
  setFormId: SetState<string>;
39
40
  setChatId: SetState<string>;
40
41
  setPickaxe: SetState<Pickaxe | null>;
41
42
  setIsNewChat: SetState<boolean>;
42
43
  setIsShowIceBreaker: SetState<boolean>;
43
44
  setIsShowHistory: SetState<boolean>;
45
+ onGenerateComplete?: (responseId: string) => void;
44
46
  };
45
47
  export interface IPickaxeProviderProps {
48
+ children: ReactNode;
46
49
  userId?: string;
47
50
  studioUserId?: string;
48
51
  styles?: Partial<PickaxeProviderStyles>;
49
52
  colors?: Partial<PickaxeProviderColors>;
50
53
  responsiveBy?: PickaxeResponsiveBy;
51
54
  limits?: Record<string, PickaxeLimitData>;
52
- isForceMobile?: boolean;
53
- children: ReactNode;
55
+ loadFont?: boolean;
56
+ forceMobile?: boolean;
57
+ onGenerateComplete?: (responseId: string) => void;
54
58
  }
55
59
  export declare const PickaxeContext: import("react").Context<PickaxeContextType>;
56
- export declare const PickaxeProvider: ({ userId, studioUserId, styles, colors, responsiveBy, limits, isForceMobile, children, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
60
+ export declare const PickaxeProvider: ({ children, userId, studioUserId, styles, colors, responsiveBy, limits, loadFont, forceMobile, onGenerateComplete, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
57
61
  export {};
@@ -17,7 +17,6 @@ type ResponseContextType = {
17
17
  error: string;
18
18
  isGenerating: boolean;
19
19
  setMessages: SetState<MemoryStoredChatMessage[]>;
20
- setMessage: (message: MemoryStoredChatMessage) => void;
21
20
  setResponse: SetState<MemoryStoredResponse | null>;
22
21
  setStatus: SetState<ResponseStatus>;
23
22
  setLimitData: SetState<PickaxeLimitData | null>;
@@ -0,0 +1,4 @@
1
+ import { type FC, type ComponentPropsWithoutRef } from "react";
2
+ import type { Node } from "../../Renderer";
3
+ declare const Code: FC<ComponentPropsWithoutRef<"code"> & Node>;
4
+ export default Code;
@@ -0,0 +1,4 @@
1
+ import type { FC, ComponentPropsWithoutRef } from "react";
2
+ import type { Node } from "../../Renderer";
3
+ declare const Iframe: FC<ComponentPropsWithoutRef<"iframe"> & Node>;
4
+ export default Iframe;
@@ -0,0 +1,8 @@
1
+ import type { ReactNode } from "react";
2
+ interface ImgModalProps {
3
+ children?: ReactNode;
4
+ isOpen: boolean;
5
+ onChangeIsOpen: (isOpen: boolean) => void;
6
+ }
7
+ declare const ImgModal: ({ children, isOpen, onChangeIsOpen }: ImgModalProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default ImgModal;
@@ -10,11 +10,13 @@ export declare const usePickaxeContext: () => {
10
10
  isNewChat: boolean;
11
11
  isShowIceBreaker: boolean;
12
12
  isShowHistory: boolean;
13
- isForceMobile: boolean;
13
+ loadFont: boolean;
14
+ forceMobile: boolean;
14
15
  setFormId: import("../../types/common").SetState<string>;
15
16
  setChatId: import("../../types/common").SetState<string>;
16
17
  setPickaxe: import("../../types/common").SetState<import("../../types/pickaxe").Pickaxe | null>;
17
18
  setIsNewChat: import("../../types/common").SetState<boolean>;
18
19
  setIsShowIceBreaker: import("../../types/common").SetState<boolean>;
19
20
  setIsShowHistory: import("../../types/common").SetState<boolean>;
21
+ onGenerateComplete?: ((responseId: string) => void) | undefined;
20
22
  };
@@ -7,7 +7,6 @@ export declare const useResponseContext: () => {
7
7
  error: string;
8
8
  isGenerating: boolean;
9
9
  setMessages: import("../../types/common").SetState<import("../../types/chat").MemoryStoredChatMessage[]>;
10
- setMessage: (message: import("../../types/chat").MemoryStoredChatMessage) => void;
11
10
  setResponse: import("../../types/common").SetState<import("../../types/form").MemoryStoredResponse | null>;
12
11
  setStatus: import("../../types/common").SetState<import("../../components/Pickaxe/ResponseProvider").ResponseStatus>;
13
12
  setLimitData: import("../../types/common").SetState<import("../../components/Pickaxe/ResponseProvider").PickaxeLimitData | null>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pickaxeproject/react",
3
- "version": "0.0.37",
3
+ "version": "0.0.38",
4
4
  "description": "Client utility library for Pickaxe",
5
5
  "repository": {
6
6
  "type": "git",
@@ -70,6 +70,7 @@
70
70
  "@types/react": "^18.0.26",
71
71
  "@types/react-dom": "^18.0.10",
72
72
  "@types/react-syntax-highlighter": "^15.5.13",
73
+ "@types/webfontloader": "^1.6.38",
73
74
  "@typescript-eslint/eslint-plugin": "^5.48.1",
74
75
  "@typescript-eslint/parser": "^5.48.1",
75
76
  "@zerollup/ts-transform-paths": "^1.7.18",
@@ -123,6 +124,7 @@
123
124
  "vite": "^6.0.7",
124
125
  "vite-plugin-svgr": "^4.3.0",
125
126
  "vite-tsconfig-paths": "^5.1.4",
127
+ "webfontloader": "^1.6.28",
126
128
  "webpack": "^5.75.0",
127
129
  "webpack-cli": "^5.0.1"
128
130
  },
@@ -150,7 +152,8 @@
150
152
  "remark-gfm": "^4.0.0",
151
153
  "remark-math": "^6.0.0",
152
154
  "tailwind-merge": "^2.6.0",
153
- "tailwind-scrollbar": "^3.1.0"
155
+ "tailwind-scrollbar": "^3.1.0",
156
+ "webfontloader": "^1.6.28"
154
157
  },
155
158
  "engines": {
156
159
  "node": ">=18"