@pickaxeproject/react 0.0.26 → 0.0.27

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 (37) hide show
  1. package/dist/cjs/components/Core/SpringTransition.js +1 -0
  2. package/dist/cjs/components/Pickaxe/Chat/History/index.js +1 -1
  3. package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -1
  4. package/dist/cjs/components/Pickaxe/Form/History/Item.js +1 -1
  5. package/dist/cjs/components/Pickaxe/Form/History/Response.js +1 -1
  6. package/dist/cjs/components/Pickaxe/Form/Questions/Submit.js +1 -1
  7. package/dist/cjs/components/Pickaxe/Form/Questions/index.js +1 -1
  8. package/dist/cjs/components/Pickaxe/Provider.js +1 -1
  9. package/dist/cjs/components/Pickaxe/ResponseProvider.js +1 -1
  10. package/dist/cjs/components/Pickaxe/common/PickaxeInfoModal.js +1 -1
  11. package/dist/cjs/components/Pickaxe/common/PickaxeUpgradeCard.js +1 -0
  12. package/dist/cjs/components/Pickaxe/index.js +1 -1
  13. package/dist/cjs/src/components/Core/SpringTransition.d.ts +9 -0
  14. package/dist/cjs/src/components/Pickaxe/Provider.d.ts +3 -1
  15. package/dist/cjs/src/components/Pickaxe/ResponseProvider.d.ts +10 -1
  16. package/dist/cjs/src/components/Pickaxe/common/PickaxeUpgradeCard.d.ts +7 -0
  17. package/dist/cjs/src/components/Pickaxe/index.d.ts +1 -2
  18. package/dist/cjs/src/hooks/pickaxe/useResponseContext.d.ts +3 -0
  19. package/dist/esm/components/Core/SpringTransition.js +1 -0
  20. package/dist/esm/components/Pickaxe/Chat/History/index.js +1 -1
  21. package/dist/esm/components/Pickaxe/Chat/Input.js +1 -1
  22. package/dist/esm/components/Pickaxe/Form/History/Item.js +1 -1
  23. package/dist/esm/components/Pickaxe/Form/History/Response.js +1 -1
  24. package/dist/esm/components/Pickaxe/Form/Questions/Submit.js +1 -1
  25. package/dist/esm/components/Pickaxe/Form/Questions/index.js +1 -1
  26. package/dist/esm/components/Pickaxe/Provider.js +1 -1
  27. package/dist/esm/components/Pickaxe/ResponseProvider.js +1 -1
  28. package/dist/esm/components/Pickaxe/common/PickaxeInfoModal.js +1 -1
  29. package/dist/esm/components/Pickaxe/common/PickaxeUpgradeCard.js +1 -0
  30. package/dist/esm/components/Pickaxe/index.js +1 -1
  31. package/dist/esm/src/components/Core/SpringTransition.d.ts +9 -0
  32. package/dist/esm/src/components/Pickaxe/Provider.d.ts +3 -1
  33. package/dist/esm/src/components/Pickaxe/ResponseProvider.d.ts +10 -1
  34. package/dist/esm/src/components/Pickaxe/common/PickaxeUpgradeCard.d.ts +7 -0
  35. package/dist/esm/src/components/Pickaxe/index.d.ts +1 -2
  36. package/dist/esm/src/hooks/pickaxe/useResponseContext.d.ts +3 -0
  37. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("framer-motion");exports.default=({children:s,className:t,power:a=300,isVertical:n})=>e.jsx(i.motion.div,Object.assign({initial:Object.assign(Object.assign({},n?{y:a}:{x:a}),{opacity:0}),animate:Object.assign(Object.assign({},n?{y:0}:{x:0}),{opacity:1}),exit:Object.assign(Object.assign({},n?{y:a}:{x:a}),{opacity:0}),transition:{type:"spring",stiffness:260,damping:20,duration:.3}},t&&{className:t},{children:s}));
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),a=require("../../../../hooks/pickaxe/useResponseContext.js"),l=require("../../../../hooks/studio/useStyleFontSize.js"),i=require("../../../../hooks/pickaxe/useConversation.js"),o=require("../../../Icons/circle-info.svg.js"),r=require("../../common/PickaxeIcon.js"),n=require("../../../Core/HtmlRenderer.js"),c=require("../../Addons/Scroll/ScrollLockView.js"),d=require("../../common/PickaxeInfoModal.js"),x=require("./Message.js"),u=require("../../../../common/cn.js");exports.default=()=>{var m;const{pickaxe:p,styles:j,colors:f,isNewChat:g,responsiveBy:h}=t.usePickaxeContext(),{messages:v,status:b,error:y}=a.useResponseContext(),w=i.useConversation(),[k,E]=s.useState(!1),N=l.useStyleFontSize({type:"body"}),O=s.useMemo((()=>!!w.data&&!(w.data.messages.length<=1)),[w.data]),C=s.useMemo((()=>w.isSuccess&&g&&!O),[w.isSuccess,g,O]);return e.jsxs("div",Object.assign({className:"relative flex flex-grow flex-col justify-end"},{children:[k&&e.jsx(d.default,{isOpen:k,onChangeIsOpen:E}),e.jsxs("div",Object.assign({className:u.default("absolute left-1/2 top-5 flex w-full max-w-[400px] -translate-x-1/2 -translate-y-1/3 transform flex-col items-center px-4 opacity-0 duration-300",C&&"top-1/3 opacity-100")},{children:[e.jsx(r.default,{src:null==p?void 0:p.coverphoto,alt:`${null==p?void 0:p.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e.jsxs("div",Object.assign({className:"flex flex-col items-center"},{children:[e.jsxs("h2",Object.assign({className:u.default("mt-6 text-center font-semibold opacity-70","viewport"===h?"min-[767px]:text-lg":"@[767px]/pickaxe-root:text-lg")},{children:[`${null==p?void 0:p.formtitle.slice(0,130)}${(null!==(m=null==p?void 0:p.formtitle)&&void 0!==m?m:"").length>130?"...":""}`,e.jsx("button",Object.assign({className:"ml-2 inline-block outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>E(!0)},{children:e.jsx(o.default,{className:"h-5 w-5 shrink-0",style:{color:f.accent}})}))]})),e.jsx("p",Object.assign({className:N("mt-2 line-clamp-3 whitespace-pre-line max-w-[600px] text-center font-semilight opacity-70")},{children:null==p?void 0:p.formdescription}))]}))]})),e.jsx("div",Object.assign({className:"flex w-full justify-center"},{children:w.isLoading?e.jsxs("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[e.jsx("div",{className:"h-10 w-[70%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===j.theme?"#1E1E1F":"#E5E7EB"}}),e.jsx("div",{className:"h-[150px] w-[70%] animate-pulse rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===j.theme?"#1E1E1F":"#E5E7EB"}}),e.jsx("div",{className:"h-10 w-[50%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===j.theme?"#1E1E1F":"#E5E7EB"}})]})):w.isError?e.jsx("div",Object.assign({className:"flex w-full max-w-[800px] justify-center pt-10"},{children:e.jsxs("p",Object.assign({className:"text-center text-xl font-semibold"},{children:["Something went wrong. Please try again, or"," ",e.jsx("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help"},{children:"contact us"}))," ","for help."]}))})):e.jsxs("div",Object.assign({className:u.default("relative grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-4 pt-6","viewport"===h?"min-[767px]:pt-10":"@[767px]/pickaxe-root:pt-10")},{children:[w.data.messages.map(((s,t)=>e.jsx(x.default,{message:s},t))),v.map(((s,t)=>e.jsx(x.default,{message:s},t))),"fetching"===b?e.jsxs("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:["NONE"!==(null==p?void 0:p.chaticon)&&e.jsx(r.default,{src:null==p?void 0:p.chaticon,alt:`${null==p?void 0:p.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6"}),e.jsxs("div",Object.assign({className:"flex items-center gap-x-2 rounded px-4 py-4",style:{backgroundColor:f.secondary+"80",color:f.secondaryText}},{children:[e.jsx("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:f.secondaryText}}),e.jsx("div",{className:"h-1.5 w-1.5 animate-dot-down rounded-full",style:{backgroundColor:f.secondaryText}}),e.jsx("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:f.secondaryText}})]}))]})):y?e.jsxs("div",Object.assign({className:"flex max-w-[80%] gap-x-3"},{children:[e.jsx(o.default,{className:"mt-2 h-6 w-6 shrink-0 text-red-500"}),e.jsx(n.default,{className:"x-4 py-2 font-semibold text-red-500",html:y})]})):null,e.jsx(c.default,{className:"absolute bottom-0 left-0 w-full"})]}))}))]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),a=require("../../../../hooks/pickaxe/useResponseContext.js"),l=require("../../../../hooks/studio/useStyleFontSize.js"),i=require("../../../../hooks/pickaxe/useConversation.js"),o=require("../../../Icons/circle-info.svg.js"),r=require("../../common/PickaxeIcon.js"),c=require("../../Addons/Scroll/ScrollLockView.js"),n=require("../../common/PickaxeInfoModal.js"),d=require("../../common/PickaxeUpgradeCard.js"),x=require("./Message.js"),u=require("../../../../common/cn.js"),m=require("../../../Core/ErrorAlert.js");exports.default=()=>{var p;const{pickaxe:j,styles:f,colors:g,isNewChat:h,responsiveBy:v,setChatId:b}=t.usePickaxeContext(),{messages:y,status:k,limitData:w,error:E}=a.useResponseContext(),N=i.useConversation(),[C,O]=s.useState(!1),q=l.useStyleFontSize({type:"body"}),S=s.useMemo((()=>!!N.data&&!(N.data.messages.length<=1)),[N.data]),P=s.useMemo((()=>N.isSuccess&&h&&!S),[N.isSuccess,h,S]);return e.jsxs("div",Object.assign({className:"relative flex flex-grow flex-col justify-end"},{children:[C&&e.jsx(n.default,{isOpen:C,onChangeIsOpen:O}),e.jsxs("div",Object.assign({className:u.default("absolute left-1/2 top-5 flex w-full max-w-[400px] -translate-x-1/2 -translate-y-1/3 transform flex-col items-center px-4 opacity-0 duration-300",P&&"top-1/3 opacity-100")},{children:[e.jsx("button",Object.assign({className:"duration-300 hover:opacity-90 active:opacity-100 outline-none",onClick:()=>b("")},{children:e.jsx(r.default,{src:null==j?void 0:j.coverphoto,alt:`${null==j?void 0:j.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"})})),e.jsxs("div",Object.assign({className:"flex flex-col items-center"},{children:[e.jsxs("h2",Object.assign({className:u.default("mt-6 text-center font-semibold opacity-70","viewport"===v?"min-[767px]:text-lg":"@[767px]/pickaxe-root:text-lg")},{children:[`${null==j?void 0:j.formtitle.slice(0,130)}${(null!==(p=null==j?void 0:j.formtitle)&&void 0!==p?p:"").length>130?"...":""}`,e.jsx("button",Object.assign({className:"ml-2 inline-block outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>O(!0)},{children:e.jsx(o.default,{className:"h-5 w-5 shrink-0",style:{color:g.accent}})}))]})),e.jsx("p",Object.assign({className:q("mt-2 line-clamp-3 whitespace-pre-line max-w-[600px] text-center font-semilight opacity-70")},{children:null==j?void 0:j.formdescription}))]}))]})),e.jsx("div",Object.assign({className:"flex w-full justify-center"},{children:N.isLoading?e.jsxs("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[e.jsx("div",{className:"h-10 w-[70%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===f.theme?"#1E1E1F":"#E5E7EB"}}),e.jsx("div",{className:"h-[150px] w-[70%] animate-pulse rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===f.theme?"#1E1E1F":"#E5E7EB"}}),e.jsx("div",{className:"h-10 w-[50%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===f.theme?"#1E1E1F":"#E5E7EB"}})]})):N.isError?e.jsx("div",Object.assign({className:"flex w-full max-w-[800px] justify-center pt-10"},{children:e.jsxs("p",Object.assign({className:"text-center text-xl font-semibold"},{children:["Something went wrong. Please try again, or"," ",e.jsx("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help"},{children:"contact us"}))," ","for help."]}))})):e.jsxs("div",Object.assign({className:u.default("relative grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-4 pt-6","viewport"===v?"min-[767px]:pt-10":"@[767px]/pickaxe-root:pt-10")},{children:[N.data.messages.map(((s,t)=>e.jsx(x.default,{message:s},t))),y.map(((s,t)=>e.jsx(x.default,{message:s},t))),"fetching"===k?e.jsxs("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:["NONE"!==(null==j?void 0:j.chaticon)&&e.jsx(r.default,{src:null==j?void 0:j.chaticon,alt:`${null==j?void 0:j.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6"}),e.jsxs("div",Object.assign({className:"flex items-center gap-x-2 rounded px-4 py-4",style:{backgroundColor:g.secondary+"80",color:g.secondaryText}},{children:[e.jsx("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:g.secondaryText}}),e.jsx("div",{className:"h-1.5 w-1.5 animate-dot-down rounded-full",style:{backgroundColor:g.secondaryText}}),e.jsx("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:g.secondaryText}})]}))]})):w?e.jsx("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:e.jsx(d.default,{})})):E?e.jsx("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:e.jsx(m.default,{error:E})})):null,e.jsx(c.default,{className:"absolute bottom-0 left-0 w-full"})]}))}))]}))};
@@ -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"),a=require("../../../hooks/studio/useStyleInput.js"),n=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"),y=require("../Addons/IceBreaker/index.js"),b=require("../../../common/error.js"),j=require("../../../common/cn.js");exports.default=()=>{var v,k,w,I;const{formId:q,chatId:S,userId:D,studioUserId:A,pickaxe:C,colors:_,responsiveBy:N,isNewChat:O,isForceMobile:M,setIsNewChat:R}=r.usePickaxeContext(),{messages:E,status:z,setMessages:F,setStatus:U,setError:T}=i.useResponseContext(),{documents:B,isUploading:P,isImageUploadAllowed:K,upsertDocuments:Q,onFileUpload:W,onEditDocumentByDocId:L}=c.useDocument(),{isScrollIncreasing:G,scrollToBottom:H,scrollStart:J,scrollEnd:V}=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=a.useStyleInput(),re=n.useStyleFontSize({type:"body"}),ie=s=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(P)return;T(""),R(!1);const e=null!=s?s:$;if(!e||"fetching"===z||"streaming"===z)return;const t=new Date;ee("");const o="enduserupload"===(null==C?void 0:C.documentuploadtype),r=B.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";U("fetching");const a=[...E,{id:E.length+1,role:"user",content:e}];F(a);const{success:n,data:l,usedDocumentIds:d,newDocumentId:u,newDocumentName:c,isInsertedFile:m,error:p}=yield Y.mutateAsync(Object.assign({formId:q,responseId:S,value:e},o&&i&&{documentId:i}));if(!n)throw new Error(null!=p?p:"An error occurred, please try again.");m&&i&&L({documentId:i,isInsertedAsRaw:!0}),u&&c&&Q([{type:"website",id:c,name:c,status:"finished",documentId:u}]),J(),H();const x=(yield h.streamer({formId:q,responseId:S,data:l})).body;if(!x)throw new Error("Streaming error");const f=x.getReader(),g=new TextDecoder,y=a.length;let b="",j=!0;for(U("streaming");j;){const{value:e,done:s}=yield f.read();j=!s;if(b+=g.decode(e),b)F([...a.slice(0,y),{id:E.length+1,role:"assistant",content:b}]),G&&H();else if(!j&&!b)throw new Error("Server error")}const v=new Date;b&&(H(),U("idle"),yield Z.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:q,responseId:S,documentIds:d},D&&{userId:D}),A&&{studioUserId:A}),A&&(null==C?void 0:C.studioid)&&{studioId:C.studioid}),{messages:[{role:"user",message:e,sentAt:t},{role:"assistant",message:b,sentAt:v}]})))}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."),T(s),H()}finally{U("idle"),V()}}));return s.jsxs("div",Object.assign({className:j.default("fixed flex w-full flex-col bottom-0 left-0","viewport"===N?"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:[O&&C&&!X.isLoading&&(null!==(k=null===(v=X.data)||void 0===v?void 0:v.messages.length)&&void 0!==k?k:0)<=1&&C.icebreakers&&C.icebreakers.length>0&&s.jsx(y.default,{data:null!==(w=C.icebreakers)&&void 0!==w?w:[],style:{backgroundColor:_.secondary,color:_.secondaryText},isMobile:M||te,onSend:ie}),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==C?void 0:C.documentuploadtype)&&s.jsxs("div",Object.assign({className:"tooltip"},{children:[s.jsx("input",{id:"file-upload",ref:se,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:P,onClick:()=>{var e;return null===(e=se.current)||void 0===e?void 0:e.click()}},{children:s.jsx(f.default,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:_.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!==(I=null==C?void 0:C.placeholdertext)&&void 0!==I?I:"What do you want to talk about?",onChange:e=>ee(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),ie())}}),s.jsx("button",Object.assign({className:"outline-none disabled:cursor-default disabled:opacity-50",disabled:"idle"!==z||P,onClick:()=>ie()},{children:s.jsx(g.default,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:_.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"),b=require("../Addons/IceBreaker/index.js"),y=require("../../../common/error.js"),j=require("../../../common/cn.js");exports.default=()=>{var v,k,w,I;const{formId:q,chatId:S,userId:D,studioUserId:A,pickaxe:C,colors:O,responsiveBy:_,isNewChat:N,isForceMobile:M,setIsNewChat:R}=r.usePickaxeContext(),{messages:E,status:z,limits:F,setMessages:U,setStatus:T,setLimitData:B,setError:P}=i.useResponseContext(),{documents:K,isUploading:L,isImageUploadAllowed:Q,upsertDocuments:W,onFileUpload:G,onEditDocumentByDocId:H}=c.useDocument(),{isScrollIncreasing:J,scrollToBottom:V,scrollStart:X,scrollEnd:Y}=m.useScroll(),Z=l.useConversation(),$=d.useSubmit(),ee=u.useSubmitResult(),[se,te]=t.useState(""),oe=t.useRef(null),[re]=o.useMediaQuery("(max-width: 767px)"),ie=n.useStyleInput(),ne=a.useStyleFontSize({type:"body"}),ae=s=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(L)return;B(null),P(""),R(!1);const e=null!=s?s:se;if(!e||"fetching"===z||"streaming"===z)return;const t=new Date;te("");const o="enduserupload"===(null==C?void 0:C.documentuploadtype),r=K.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";T("fetching");const n=[...E,{id:E.length+1,role:"user",content:e}];U(n);const{success:a,data:l,usedDocumentIds:d,newDocumentId:u,newDocumentName:c,isInsertedFile:m,error:p}=yield $.mutateAsync(Object.assign({formId:q,responseId:S,value:e},o&&i&&{documentId:i}));if(!a)throw new Error(null!=p?p:"An error occurred, please try again.");m&&i&&H({documentId:i,isInsertedAsRaw:!0}),u&&c&&W([{type:"website",id:c,name:c,status:"finished",documentId:u}]),X(),V();const x=(yield h.streamer({formId:q,responseId:S,data:l})).body;if(!x)throw new Error("Streaming error");const f=x.getReader(),g=new TextDecoder,b=n.length;let y="",j=!0;for(T("streaming");j;){const{value:e,done:s}=yield f.read();j=!s;if(y+=g.decode(e),y)U([...n.slice(0,b),{id:E.length+1,role:"assistant",content:y}]),J&&V();else if(!j&&!y)throw new Error("Server error")}const v=new Date;y&&(V(),T("idle"),yield ee.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:q,responseId:S,documentIds:d},D&&{userId:D}),A&&{studioUserId:A}),A&&(null==C?void 0:C.studioid)&&{studioId:C.studioid}),{messages:[{role:"user",message:e,sentAt:t},{role:"assistant",message:y,sentAt:v}]})))}catch(e){let s=y.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(F).find((([e])=>s.includes(e)));t?B(t[1]):P(s),V()}finally{T("idle"),Y()}}));return s.jsxs("div",Object.assign({className:j.default("fixed flex w-full flex-col bottom-0 left-0","viewport"===_?"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:[N&&C&&!Z.isLoading&&(null!==(k=null===(v=Z.data)||void 0===v?void 0:v.messages.length)&&void 0!==k?k:0)<=1&&C.icebreakers&&C.icebreakers.length>0&&s.jsx(b.default,{data:null!==(w=C.icebreakers)&&void 0!==w?w:[],style:{backgroundColor:O.secondary,color:O.secondaryText},isMobile:M||re,onSend:ae}),s.jsxs("div",Object.assign({style:ie,className:"flex min-h-[56px] items-end gap-x-2 px-4 py-3 pb-[15px] shadow"},{children:["enduserupload"===(null==C?void 0:C.documentuploadtype)&&s.jsxs("div",Object.assign({className:"tooltip"},{children:[s.jsx("input",{id:"file-upload",ref:oe,type:"file",accept:[...p.allowedFileMimeTypes,...Q?p.allowedImageMimeTypes:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:s=>e.__awaiter(void 0,void 0,void 0,(function*(){yield G(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=oe.current)||void 0===e?void 0:e.click()}},{children:s.jsx(f.default,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:O.accent}})}))]})),s.jsx(x.default,{className:j.default(ne("max-h-60 w-full resize-none border-transparent bg-transparent outline-none ring-0 scrollbar scrollbar-thin placeholder:font-semilight"),!se.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:se,placeholder:null!==(I=null==C?void 0:C.placeholdertext)&&void 0!==I?I:"What do you want to talk about?",onChange:e=>te(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"!==z||L,onClick:()=>ae()},{children:s.jsx(g.default,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:O.accent}})}))]}))]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),l=require("date-fns"),a=require("../../../Icons/message-square-notes.svg.js"),i=require("../../../Icons/visitor.svg.js"),o=require("../../common/PickaxeIcon.js"),r=require("../../common/PickaxeMarkdown.js"),n=require("../../common/PickaxeSimpleButton.js"),c=require("../../common/PickaxeCopyButton.js");exports.default=({item:d})=>{const{pickaxe:m,colors:x,setChatId:u,setIsNewChat:h}=t.usePickaxeContext(),p=s.useMemo((()=>l.format(d.createdAt,"hh:mm a MMM dd, yy")),[d]),j=s.useMemo((()=>d&&d.messages?d.messages.length:0),[d]),f=s.useMemo((()=>{var e,s,t,l;if("form"===d.type){return(null!==(e=d.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}return null!==(l=null===(t=null===(s=d.messages)||void 0===s?void 0:s[0])||void 0===t?void 0:t.message)&&void 0!==l?l:""}),[d]),g=s.useMemo((()=>{var e,s,t,l;return"form"===d.type?null!==(e=d.questionResponse)&&void 0!==e?e:"":null!==(l=null===(t=null===(s=d.messages)||void 0===s?void 0:s[1])||void 0===t?void 0:t.message)&&void 0!==l?l:""}),[d]);return e.jsxs("div",Object.assign({className:"flex flex-co transition hover:shadow"},{children:[e.jsxs("div",Object.assign({className:"flex gap-x-3 overflow-hidden bg-white px-4 py-5"},{children:[e.jsx("div",Object.assign({className:"shrink-0 pt-1"},{children:e.jsx(i.default,{className:"h-6 w-6"})})),e.jsxs("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-1.5 scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[e.jsx("input",{id:`${d.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:f.length<280}),e.jsx("div",{className:"danger-html hidden flex-col peer-checked:flex",dangerouslySetInnerHTML:{__html:f}}),e.jsx("label",Object.assign({htmlFor:`${d.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:hidden hover:cursor-pointer",style:{color:x.accent}},{children:"See input"})),e.jsx("label",Object.assign({htmlFor:`${d.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:flex hover:cursor-pointer",style:{color:x.accent}},{children:"Hide input"}))]}))]})),e.jsxs("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:x.secondary,color:x.secondaryText}},{children:[e.jsx(o.default,{src:null==m?void 0:m.chaticon,alt:`${null==m?void 0:m.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:x.secondaryText}),e.jsxs("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[e.jsx(r.default,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:g}),e.jsxs("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==m?void 0:m.enablechatresponses)&&e.jsxs(n.default,Object.assign({color:x.accent,onClick:()=>{return e=d.responseId,h(!1),void u(e);var e}},{children:[e.jsx(a.default,{className:"h-4 w-4 shrink-0"}),e.jsx("p",Object.assign({className:"text-sm font-semibold"},{children:j+1}))]})),e.jsx(c.default,{color:x.accent,text:g})]})),e.jsx("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:e.jsx("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:p}))}))]}))]}))]}))]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),l=require("date-fns"),a=require("../../../Icons/message-square-notes.svg.js"),o=require("../../../Icons/visitor.svg.js"),r=require("../../common/PickaxeIcon.js"),i=require("../../common/PickaxeMarkdown.js"),n=require("../../common/PickaxeSimpleButton.js"),c=require("../../common/PickaxeCopyButton.js");exports.default=({item:d})=>{const{pickaxe:m,colors:u,setChatId:x,setIsNewChat:h}=t.usePickaxeContext(),p=s.useMemo((()=>l.format(d.createdAt,"hh:mm a MMM dd, yy")),[d]),j=s.useMemo((()=>d&&d.messages?d.messages.length:0),[d]),f=s.useMemo((()=>{var e,s,t,l;if("form"===d.type){return(null!==(e=d.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}return null!==(l=null===(t=null===(s=d.messages)||void 0===s?void 0:s[0])||void 0===t?void 0:t.message)&&void 0!==l?l:""}),[d]),g=s.useMemo((()=>{var e,s,t,l;return"form"===d.type?null!==(e=d.questionResponse)&&void 0!==e?e:"":null!==(l=null===(t=null===(s=d.messages)||void 0===s?void 0:s[1])||void 0===t?void 0:t.message)&&void 0!==l?l:""}),[d]);return e.jsxs("div",Object.assign({className:"flex flex-col shadow-black transition duration-300 hover:shadow"},{children:[e.jsxs("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:u.primary,color:u.text}},{children:[e.jsx("div",Object.assign({className:"shrink-0 pt-1"},{children:e.jsx(o.default,{className:"h-6 w-6"})})),e.jsxs("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-1.5 scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[e.jsx("input",{id:`${d.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:f.length<280}),e.jsx("div",{className:"danger-html hidden flex-col peer-checked:flex",dangerouslySetInnerHTML:{__html:f}}),e.jsx("label",Object.assign({htmlFor:`${d.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:hidden hover:cursor-pointer",style:{color:u.accent}},{children:"See input"})),e.jsx("label",Object.assign({htmlFor:`${d.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:flex hover:cursor-pointer",style:{color:u.accent}},{children:"Hide input"}))]}))]})),e.jsxs("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:u.secondary,color:u.secondaryText}},{children:[e.jsx(r.default,{src:null==m?void 0:m.chaticon,alt:`${null==m?void 0:m.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:u.secondaryText}),e.jsxs("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[e.jsx(i.default,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:g}),e.jsxs("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==m?void 0:m.enablechatresponses)&&e.jsxs(n.default,Object.assign({color:u.accent,onClick:()=>{return e=d.responseId,h(!1),void x(e);var e}},{children:[e.jsx(a.default,{className:"h-4 w-4 shrink-0"}),e.jsx("p",Object.assign({className:"text-sm font-semibold"},{children:j+1}))]})),e.jsx(c.default,{color:u.accent,text:g})]})),e.jsx("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:e.jsx("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:p}))}))]}))]}))]}))]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),a=require("../../../../hooks/pickaxe/useResponseContext.js"),r=require("date-fns"),l=require("../../../Icons/message-square-notes.svg.js"),o=require("../../../Icons/visitor.svg.js"),n=require("../../common/PickaxeIcon.js"),c=require("../../common/PickaxeMarkdown.js"),i=require("../../common/PickaxeSimpleButton.js"),d=require("../../Addons/Scroll/ScrollLockView.js"),x=require("../../common/PickaxeCopyButton.js");exports.default=()=>{var h;const{pickaxe:u,colors:p,setChatId:m,setIsNewChat:j}=t.usePickaxeContext(),{response:f}=a.useResponseContext(),g=s.useMemo((()=>f?r.format(f.createdAt,"hh:mm a MMM dd, yy"):r.format(new Date,"hh:mm a MMM dd, yy")),[f]),b=s.useMemo((()=>{var e;if(!f)return"";return(null!==(e=f.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}),[f]);return f?e.jsxs("div",Object.assign({className:"flex flex-col shadow-black transition hover:shadow"},{children:[e.jsxs("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:p.primary,color:p.text}},{children:[e.jsx("div",Object.assign({className:"shrink-0 pt-1"},{children:e.jsx(o.default,{className:"h-6 w-6"})})),e.jsxs("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[e.jsx("input",{id:`${f.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:b.length<280}),e.jsx("div",{className:"danger-html hidden flex-col opacity-50 peer-checked:flex",dangerouslySetInnerHTML:{__html:b}}),e.jsx("label",Object.assign({htmlFor:`${f.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer",style:{color:p.accent}},{children:"See input"})),e.jsx("label",Object.assign({htmlFor:`${f.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer",style:{color:p.accent}},{children:"Hide input"}))]}))]})),e.jsxs("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:p.secondary,color:p.secondaryText}},{children:[e.jsx(n.default,{src:null==u?void 0:u.chaticon,alt:`${null==u?void 0:u.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:p.secondaryText}),e.jsxs("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[e.jsx(c.default,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:f.questionResponse}),e.jsxs("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==u?void 0:u.enablechatresponses)&&e.jsxs(i.default,Object.assign({color:p.accent,onClick:()=>{return e=f.responseId,j(!1),void m(e);var e}},{children:[e.jsx(l.default,{className:"h-4 w-4 shrink-0"}),e.jsx("p",Object.assign({className:"text-sm font-semibold"},{children:f.messages.length+1}))]})),e.jsx(x.default,{color:p.accent,text:null!==(h=f.questionResponse)&&void 0!==h?h:""})]})),e.jsx("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:e.jsx("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:g}))}))]}))]}))]})),e.jsx(d.default,{})]})):null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),a=require("../../../../hooks/pickaxe/useResponseContext.js"),r=require("date-fns"),l=require("../../../Icons/message-square-notes.svg.js"),o=require("../../../Icons/visitor.svg.js"),n=require("../../common/PickaxeIcon.js"),i=require("../../common/PickaxeMarkdown.js"),c=require("../../common/PickaxeSimpleButton.js"),d=require("../../Addons/Scroll/ScrollLockView.js"),x=require("../../common/PickaxeCopyButton.js");exports.default=()=>{var u;const{pickaxe:h,colors:p,setChatId:m,setIsNewChat:j}=t.usePickaxeContext(),{response:f}=a.useResponseContext(),g=s.useMemo((()=>f?r.format(f.createdAt,"hh:mm a MMM dd, yy"):r.format(new Date,"hh:mm a MMM dd, yy")),[f]),b=s.useMemo((()=>{var e;if(!f)return"";return(null!==(e=f.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}),[f]);return f?e.jsxs("div",Object.assign({className:"flex flex-col shadow-black transition duration-300 hover:shadow"},{children:[e.jsxs("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:p.primary,color:p.text}},{children:[e.jsx("div",Object.assign({className:"shrink-0 pt-1"},{children:e.jsx(o.default,{className:"h-6 w-6"})})),e.jsxs("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[e.jsx("input",{id:`${f.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:b.length<280}),e.jsx("div",{className:"danger-html hidden flex-col opacity-50 peer-checked:flex",dangerouslySetInnerHTML:{__html:b}}),e.jsx("label",Object.assign({htmlFor:`${f.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer",style:{color:p.accent}},{children:"See input"})),e.jsx("label",Object.assign({htmlFor:`${f.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer",style:{color:p.accent}},{children:"Hide input"}))]}))]})),e.jsxs("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:p.secondary,color:p.secondaryText}},{children:[e.jsx(n.default,{src:null==h?void 0:h.chaticon,alt:`${null==h?void 0:h.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:p.secondaryText}),e.jsxs("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[e.jsx(i.default,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:f.questionResponse}),e.jsxs("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==h?void 0:h.enablechatresponses)&&e.jsxs(c.default,Object.assign({color:p.accent,onClick:()=>{return e=f.responseId,j(!1),void m(e);var e}},{children:[e.jsx(l.default,{className:"h-4 w-4 shrink-0"}),e.jsx("p",Object.assign({className:"text-sm font-semibold"},{children:f.messages.length+1}))]})),e.jsx(x.default,{color:p.accent,text:null!==(u=f.questionResponse)&&void 0!==u?u:""})]})),e.jsx("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:e.jsx("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:g}))}))]}))]}))]})),e.jsx(d.default,{})]})):null};
@@ -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"),f=require("../../../../common/cn.js");exports.default=({questions:g})=>{const{formId:x,userId:h,studioUserId:w,pickaxe:j,isShowHistory:q,responsiveBy:b,setIsShowHistory:k}=o.usePickaxeContext(),{status:v,setResponse:y,setStatus:I,setError:S}=r.useResponseContext(),{documents:O,websiteLink:P,isUploading:R,onWebsiteUpload:C,setDocumentError:E}=u.useDocument(),{isScrollIncreasing:U,scrollToContainer:D,scrollToBottom:A,scrollStart:_,scrollEnd:T}=a.useScroll(),B=i.useSubmit(),L=n.useSubmitResult(),[N,H]=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:f.default("w-full","viewport"===b?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:R||N||"fetching"===v||"streaming"===v,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(R||N||"fetching"===v||"streaming"===v)return;E("");const s="enduserupload"===(null==j?void 0:j.documentuploadtype),t=g.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),o=O.filter((e=>"finished"===e.status)),r=l.extractUrlsFromText(P),i=O.map((e=>e.name)),n=r.filter((e=>!i.includes(e)));if(n.length){const e=n[n.length-1],s=yield C(e);s&&(o.push(s),H(!0),yield new Promise((e=>setTimeout(e,5e3))),H(!1))}else if(t&&s&&!o.length)return void E("Please paste a valid website/video link or drag a file to add to the knowledge base.");S("");const u=["Multiple Choice","Checkbox"];for(const e of g){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={};g.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}))),I("fetching");const{success:p,responseId:f,data:q,usedDocumentIds:b,rawUserInput:k,error:D}=yield B.mutateAsync(Object.assign({formId:x,valueObj:m},s&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}));if(!p)throw new Error(null!=D?D:"An error occurred, please try again.");_();const T=(yield d.streamer({formId:x,responseId:f,data:q})).body;if(!T)throw new Error("Streaming error");const M=T.getReader(),W=new TextDecoder;let F="",K=!0;y(null);const Y=g.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;K;){const{value:e,done:s}=yield M.read();K=!s;if(F+=W.decode(e),F)I("streaming"),y({formId:x,responseId:f,documentIds:b,messages:[],questions:Y,questionPrompt:k,questionResponse:F,createdAt:new Date}),U&&A();else if(!K&&!F)throw new Error("Server error")}F&&(A(),I("idle"),yield L.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:x,responseId:f,documentIds:b},h&&{userId:h}),w&&{studioUserId:w}),w&&(null==j?void 0:j.studioid)&&{studioId:j.studioid}),{questions:Y,questionPrompt:k,questionResponse:F})))}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."),S(s),H(!1),D()}finally{I("idle"),T()}}))},{children:N?"Processing...":R?"Uploading...":"fetching"===v||"streaming"===v?"Loading...":"Submit"})),!q&&s.jsx(m.default,Object.assign({variant:"transparent-text",className:f.default("w-full","viewport"===b?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>k(!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"),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"),f=require("../../../../common/cn.js");exports.default=({questions:g})=>{const{formId:x,userId:h,studioUserId:w,pickaxe:j,isShowHistory:b,responsiveBy:q,setIsShowHistory:k}=o.usePickaxeContext(),{status:v,limits:y,setResponse:I,setStatus:S,setLimitData:O,setError:P}=r.useResponseContext(),{documents:R,websiteLink:C,isUploading:D,onWebsiteUpload:E,setDocumentError:U}=u.useDocument(),{isScrollIncreasing:A,scrollToContainer:_,scrollToBottom:T,scrollStart:L,scrollEnd:B}=a.useScroll(),N=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:f.default("w-full","viewport"===q?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:D||M||"fetching"===v||"streaming"===v,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(D||M||"fetching"===v||"streaming"===v)return;O(null),U("");const s="enduserupload"===(null==j?void 0:j.documentuploadtype),t=g.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),o=R.filter((e=>"finished"===e.status)),r=l.extractUrlsFromText(C),i=R.map((e=>e.name)),n=r.filter((e=>!i.includes(e)));if(n.length){const e=n[n.length-1],s=yield E(e);s&&(o.push(s),W(!0),yield new Promise((e=>setTimeout(e,5e3))),W(!1))}else if(t&&s&&!o.length)return void U("Please paste a valid website/video link or drag a file to add to the knowledge base.");P("");const u=["Multiple Choice","Checkbox"];for(const e of g){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={};g.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}))),S("fetching");const{success:p,responseId:f,data:b,usedDocumentIds:q,rawUserInput:k,error:y}=yield N.mutateAsync(Object.assign({formId:x,valueObj:m},s&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}));if(!p)throw new Error(null!=y?y:"An error occurred, please try again.");L();const _=(yield d.streamer({formId:x,responseId:f,data:b})).body;if(!_)throw new Error("Streaming error");const B=_.getReader(),F=new TextDecoder;let K="",Y=!0;I(null);const z=g.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;Y;){const{value:e,done:s}=yield B.read();Y=!s;if(K+=F.decode(e),K)S("streaming"),I({formId:x,responseId:f,documentIds:q,messages:[],questions:z,questionPrompt:k,questionResponse:K,createdAt:new Date}),A&&T();else if(!Y&&!K)throw new Error("Server error")}K&&(T(),S("idle"),yield H.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:x,responseId:f,documentIds:q},h&&{userId:h}),w&&{studioUserId:w}),w&&(null==j?void 0:j.studioid)&&{studioId:j.studioid}),{questions:z,questionPrompt:k,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(y).find((([e])=>s.includes(e)));t?O(t[1]):P(s),W(!1),_()}finally{S("idle"),B()}}))},{children:M?"Processing...":D?"Uploading...":"fetching"===v||"streaming"===v?"Loading...":"Submit"})),!b&&s.jsx(m.default,Object.assign({variant:"transparent-text",className:f.default("w-full","viewport"===q?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>k(!0)},{children:"See history"}))]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),i=require("../../../../hooks/pickaxe/usePickaxeContext.js"),r=require("../../../Core/ErrorAlert.js"),s=require("./Input.js"),u=require("./Option.js"),d=require("./Document.js"),n=require("./Checkbox.js"),a=require("./Submit.js");exports.default=()=>{const{pickaxe:p}=i.usePickaxeContext(),[l,o]=t.useState([]),x=e=>{o((t=>t.map((t=>t.id===e.id?e:t))))};return t.useEffect((()=>{p&&p._questions&&o(p._questions.map(((e,t)=>{let i="";if("Knowledge Upload"===e.type||"userinput:documentupload"===e.id)i="";else if("Multiple Choice"===e.type){const t=e.example.split("S3P32X");t.includes(i)||(i=t[0])}return Object.assign(Object.assign({order:t+1,id:e.id,type:e.type,main:e.main,example:e.example,input:i,length:0,maxLength:parseInt(e.answerlength)},e.isRequired&&{isRequired:"string"==typeof e.isRequired?"true"===e.isRequired:e.isRequired}),e.isDropdown&&{isDropdown:"string"==typeof e.isDropdown?"true"===e.isDropdown:e.isDropdown})})))}),[p]),e.jsxs("div",Object.assign({className:"mt-8 flex flex-col gap-y-8 max-lg:px-4"},{children:[l.map(((i,r)=>"Multiple Choice"===i.type?e.jsx(t.Fragment,{children:e.jsx(u.default,{field:i,update:x})},r):"Checkbox"===i.type?e.jsx(t.Fragment,{children:e.jsx(n.default,{field:i,update:x})},r):"userinput:documentupload"===i.id?e.jsx(t.Fragment,{children:e.jsx(d.default,{field:i,update:x})},r):e.jsx(t.Fragment,{children:e.jsx(s.default,{field:i,update:x})},r))),e.jsx(r.default,{}),e.jsx(a.default,{questions:l,update:x})]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("../../../../hooks/pickaxe/usePickaxeContext.js"),s=require("../../../../hooks/pickaxe/useResponseContext.js"),i=require("../../../Core/ErrorAlert.js"),u=require("../../common/PickaxeUpgradeCard.js"),n=require("./Input.js"),a=require("./Option.js"),d=require("./Document.js"),o=require("./Checkbox.js"),p=require("./Submit.js");exports.default=()=>{const{pickaxe:l}=r.usePickaxeContext(),{error:x}=s.useResponseContext(),[c,j]=t.useState([]),m=e=>{j((t=>t.map((t=>t.id===e.id?e:t))))};return t.useEffect((()=>{l&&l._questions&&j(l._questions.map(((e,t)=>{let r="";if("Knowledge Upload"===e.type||"userinput:documentupload"===e.id)r="";else if("Multiple Choice"===e.type){const t=e.example.split("S3P32X");t.includes(r)||(r=t[0])}return Object.assign(Object.assign({order:t+1,id:e.id,type:e.type,main:e.main,example:e.example,input:r,length:0,maxLength:parseInt(e.answerlength)},e.isRequired&&{isRequired:"string"==typeof e.isRequired?"true"===e.isRequired:e.isRequired}),e.isDropdown&&{isDropdown:"string"==typeof e.isDropdown?"true"===e.isDropdown:e.isDropdown})})))}),[l]),e.jsxs("div",Object.assign({className:"mt-8 flex flex-col gap-y-8 max-lg:px-4"},{children:[c.map(((r,s)=>"Multiple Choice"===r.type?e.jsx(t.Fragment,{children:e.jsx(a.default,{field:r,update:m})},s):"Checkbox"===r.type?e.jsx(t.Fragment,{children:e.jsx(o.default,{field:r,update:m})},s):"userinput:documentupload"===r.id?e.jsx(t.Fragment,{children:e.jsx(d.default,{field:r,update:m})},s):e.jsx(t.Fragment,{children:e.jsx(n.default,{field:r,update:m})},s))),e.jsx(i.default,{error:x}),e.jsx(u.default,{}),e.jsx(p.default,{questions:c,update:m})]}))};
@@ -1 +1 @@
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=({userId:i="",studioUserId:a="",styles:c,colors:d,responsiveBy:n="viewport",isForceMobile:u=!1,children:l})=>{const[F,x]=t.useState(""),[h,I]=t.useState(""),[S,y]=t.useState(null),[j,p]=t.useState(!0),[v,P]=t.useState(!0),[b,f]=t.useState(!1);return e.jsx(o.Provider,Object.assign({value:{formId:F,chatId:h,userId:i,studioUserId:a,pickaxe:S,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:j,isShowIceBreaker:v,isShowHistory:b,isForceMobile:u,setFormId:x,setChatId:I,setPickaxe:y,setIsNewChat:p,setIsShowIceBreaker:P,setIsShowHistory:f}},{children:e.jsx(r.default,{children:e.jsx(s.default,{children:l})})}))};
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 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react");const t=s.createContext({});exports.ResponseContext=t,exports.default=({children:r})=>{const[a,n]=s.useState([]),[u,i]=s.useState(null),[o,c]=s.useState("idle"),[l,d]=s.useState(""),[g,p]=s.useState(!1);return e.jsx(t.Provider,Object.assign({value:{messages:a,response:u,status:o,error:l,isGenerating:g,setMessages:n,setResponse:i,setStatus:c,setError:d,setIsGenerating:p,setMessage:e=>{n((s=>s.map(((s,t)=>t===e.id?Object.assign(Object.assign({},s),e):s))))}}},{children:r}))};
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 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../../hooks/pickaxe/usePickaxeContext.js"),t=require("../../../hooks/studio/useStyleFontSize.js"),i=require("../../Icons/x.svg.js"),r=require("../../Core/Modal/index.js"),l=require("../../Core/Modal/Body.js"),o=require("./PickaxeIcon.js"),a=require("./PickaxeSimpleButton.js"),c=require("../../../common/cn.js");exports.default=({isOpen:n,onChangeIsOpen:x})=>{const{pickaxe:d,colors:u,responsiveBy:p}=s.usePickaxeContext(),j=t.useStyleFontSize({type:"body"});return e.jsx(r.default,Object.assign({isOpen:n,onChange:x},{children:e.jsxs(l.default,Object.assign({className:"relative flex flex-col px-8 py-[26px] w-full min-[767px]:max-w-[480px] max-[767px]:border-0",style:{backgroundColor:u.primary,color:u.text,borderColor:u.text+"4D"},avoidOverflow:!0},{children:[e.jsx("div",Object.assign({className:"flex items-start justify-end gap-4"},{children:e.jsx(a.default,Object.assign({color:u.text,onClick:()=>x(!1)},{children:e.jsx(i.default,{className:"h-6 w-6 shrink-0"})}))})),e.jsx("div",Object.assign({className:"mt-8 flex flex-col items-center"},{children:e.jsxs("div",Object.assign({className:"flex w-full max-w-[360px] flex-col items-center text-center"},{children:[e.jsx(o.default,{src:null==d?void 0:d.coverphoto,alt:`${null==d?void 0:d.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e.jsx("h2",Object.assign({className:c.default("mt-6 text-center font-semibold opacity-70","viewport"===p?"min-[767px]:text-[18px]":"@[767px]/pickaxe-root:text-[18px]")},{children:null==d?void 0:d.formtitle})),e.jsx("p",Object.assign({className:j("mt-4 font-semilight opacity-70")},{children:null==d?void 0:d.formdescription}))]}))}))]}))}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../../hooks/pickaxe/usePickaxeContext.js"),t=require("../../../hooks/studio/useStyleFontSize.js"),i=require("../../Icons/x.svg.js"),r=require("../../Core/Modal/index.js"),l=require("../../Core/Modal/Body.js"),o=require("./PickaxeIcon.js"),a=require("./PickaxeSimpleButton.js"),c=require("../../../common/cn.js");exports.default=({isOpen:n,onChangeIsOpen:x})=>{const{pickaxe:d,colors:u,responsiveBy:p}=s.usePickaxeContext(),j=t.useStyleFontSize({type:"body"});return e.jsx(r.default,Object.assign({isOpen:n,onChange:x},{children:e.jsxs(l.default,Object.assign({className:"relative flex flex-col px-8 pt-[26px] pb-8 w-full min-[767px]:max-w-[480px] max-[767px]:border-0",style:{backgroundColor:u.primary,color:u.text,borderColor:u.text+"4D"},avoidOverflow:!0},{children:[e.jsx("div",Object.assign({className:"flex items-start justify-end gap-4"},{children:e.jsx(a.default,Object.assign({color:u.text,onClick:()=>x(!1)},{children:e.jsx(i.default,{className:"h-6 w-6 shrink-0"})}))})),e.jsx("div",Object.assign({className:"mt-6 flex flex-col items-center"},{children:e.jsxs("div",Object.assign({className:"flex w-full max-w-[360px] flex-col items-center text-center"},{children:[e.jsx(o.default,{src:null==d?void 0:d.coverphoto,alt:`${null==d?void 0:d.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e.jsx("h2",Object.assign({className:c.default("mt-6 text-center font-semibold opacity-70","viewport"===p?"min-[767px]:text-[18px]":"@[767px]/pickaxe-root:text-[18px]")},{children:null==d?void 0:d.formtitle})),e.jsx("p",Object.assign({className:j("mt-4 font-semilight opacity-70")},{children:null==d?void 0:d.formdescription}))]}))}))]}))}))};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("framer-motion"),t=require("../../../hooks/pickaxe/usePickaxeContext.js"),a=require("../../../hooks/pickaxe/useResponseContext.js"),r=require("../../Icons/circle-exclamation.svg.js"),i=require("../../Core/SpringTransition.js"),c=require("../../Core/HtmlRenderer.js"),l=require("./PickaxeButton.js"),n=require("../../../common/cn.js");exports.default=({className:o,iconClassName:u,htmlClassName:x})=>{const{colors:m}=t.usePickaxeContext(),{limitData:j}=a.useResponseContext();return e.jsx(s.AnimatePresence,{children:!!j&&e.jsxs(i.default,Object.assign({className:n.default("flex gap-3",o)},{children:[e.jsx(r.default,{className:n.default("h-5 w-5 shrink-0",u),style:{color:m.accent}}),e.jsxs("div",Object.assign({className:"flex flex-col gap-4"},{children:[e.jsx(c.default,{className:n.default("text-sm font-semibold",x),style:{color:m.text},html:j.html}),e.jsx("a",Object.assign({href:j.ctaLink},{children:e.jsx(l.default,Object.assign({variant:"primary",className:"min-h-[38px]"},{children:j.cta}))}))]}))]}))})};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("../../hooks/pickaxe/usePickaxe.js"),t=require("react"),a=require("../../hooks/pickaxe/usePickaxeContext.js"),s=require("../../common/utils.js"),c=require("./Addons/Scroll/Provider.js"),o=require("./Chat/index.js"),i=require("./Form/index.js"),l=require("../../common/cn.js");exports.Pickaxe=({formId:u,chatId:d,className:x})=>{const{chatId:n,styles:f,colors:j,setFormId:k,setChatId:m,setPickaxe:h}=a.usePickaxeContext(),q=r.usePickaxe();return t.useEffect((()=>{k(u)}),[u]),t.useEffect((()=>{"string"==typeof d&&m(d)}),[d]),t.useEffect((()=>{q.data&&(m(q.data.chatflag?s.generateId(15):""),h(q.data))}),[q.data]),q.data?e.jsx(c.default,{children:e.jsx("div",Object.assign({className:l.default("relative @container/pickaxe-root flex flex-col flex-grow w-full h-full",x,"dark"===f.theme&&"dark"),style:{backgroundColor:j.primary,color:j.text}},{children:n?e.jsx(o.default,{}):e.jsx(i.default,{})}))}):null};
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"),o=require("./Addons/Scroll/Provider.js"),c=require("./Chat/index.js"),i=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(o.default,{children: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,{}):e.jsx(i.default,{})}))}):null};
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from "react";
2
+ interface SpringTransitionProps {
3
+ children: ReactNode;
4
+ className?: string;
5
+ power?: number;
6
+ isVertical?: boolean;
7
+ }
8
+ declare const SpringTransition: ({ children, className, power, isVertical, }: SpringTransitionProps) => import("react/jsx-runtime").JSX.Element;
9
+ export default SpringTransition;
@@ -2,6 +2,7 @@ import type { SetState } from "../../types/common";
2
2
  import type { Pickaxe } from "../../types/pickaxe";
3
3
  import type { StudioFontSize, StudioFormFieldStyle, StudioButtonStyle } from "../../types/studio";
4
4
  import { type ReactNode } from "react";
5
+ import { type PickaxeLimitData } from "./ResponseProvider";
5
6
  export type PickaxeProviderStyles = {
6
7
  theme: "light" | "dark";
7
8
  font: string;
@@ -47,9 +48,10 @@ export interface IPickaxeProviderProps {
47
48
  styles?: Partial<PickaxeProviderStyles>;
48
49
  colors?: Partial<PickaxeProviderColors>;
49
50
  responsiveBy?: PickaxeResponsiveBy;
51
+ limits?: Record<string, PickaxeLimitData>;
50
52
  isForceMobile?: boolean;
51
53
  children: ReactNode;
52
54
  }
53
55
  export declare const PickaxeContext: import("react").Context<PickaxeContextType>;
54
- export declare const PickaxeProvider: ({ userId, studioUserId, styles, colors, responsiveBy, isForceMobile, children, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
56
+ export declare const PickaxeProvider: ({ userId, studioUserId, styles, colors, responsiveBy, limits, isForceMobile, children, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
55
57
  export {};
@@ -3,22 +3,31 @@ import type { MemoryStoredChatMessage } from "../../types/chat";
3
3
  import type { MemoryStoredResponse } from "../../types/form";
4
4
  import { type ReactNode } from "react";
5
5
  export type ResponseStatus = "fetching" | "streaming" | "idle";
6
+ export type PickaxeLimitData = {
7
+ html: string;
8
+ cta: string;
9
+ ctaLink: string;
10
+ };
6
11
  type ResponseContextType = {
7
12
  messages: MemoryStoredChatMessage[];
8
13
  response: MemoryStoredResponse | null;
9
14
  status: ResponseStatus;
15
+ limits: Record<string, PickaxeLimitData>;
16
+ limitData: PickaxeLimitData | null;
10
17
  error: string;
11
18
  isGenerating: boolean;
12
19
  setMessages: SetState<MemoryStoredChatMessage[]>;
13
20
  setMessage: (message: MemoryStoredChatMessage) => void;
14
21
  setResponse: SetState<MemoryStoredResponse | null>;
15
22
  setStatus: SetState<ResponseStatus>;
23
+ setLimitData: SetState<PickaxeLimitData | null>;
16
24
  setError: SetState<string>;
17
25
  setIsGenerating: SetState<boolean>;
18
26
  };
19
27
  interface IResponseProviderProps {
28
+ limits: Record<string, PickaxeLimitData>;
20
29
  children: ReactNode;
21
30
  }
22
31
  export declare const ResponseContext: import("react").Context<ResponseContextType>;
23
- declare const ResponseProvider: ({ children }: IResponseProviderProps) => import("react/jsx-runtime").JSX.Element;
32
+ declare const ResponseProvider: ({ limits, children }: IResponseProviderProps) => import("react/jsx-runtime").JSX.Element;
24
33
  export default ResponseProvider;
@@ -0,0 +1,7 @@
1
+ interface PickaxeUpgradeCardProps {
2
+ className?: string;
3
+ iconClassName?: string;
4
+ htmlClassName?: string;
5
+ }
6
+ declare const PickaxeUpgradeCard: ({ className, iconClassName, htmlClassName, }: PickaxeUpgradeCardProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default PickaxeUpgradeCard;
@@ -1,6 +1,5 @@
1
1
  export interface PickaxeProps {
2
2
  formId: string;
3
- chatId?: string;
4
3
  className?: string;
5
4
  }
6
- export declare const Pickaxe: ({ formId: _formId, chatId: _chatId, className, }: PickaxeProps) => import("react/jsx-runtime").JSX.Element | null;
5
+ export declare const Pickaxe: ({ formId: _formId, className }: PickaxeProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -2,12 +2,15 @@ export declare const useResponseContext: () => {
2
2
  messages: import("../../types/chat").MemoryStoredChatMessage[];
3
3
  response: import("../../types/form").MemoryStoredResponse | null;
4
4
  status: import("../../components/Pickaxe/ResponseProvider").ResponseStatus;
5
+ limits: Record<string, import("../../components/Pickaxe/ResponseProvider").PickaxeLimitData>;
6
+ limitData: import("../../components/Pickaxe/ResponseProvider").PickaxeLimitData | null;
5
7
  error: string;
6
8
  isGenerating: boolean;
7
9
  setMessages: import("../../types/common").SetState<import("../../types/chat").MemoryStoredChatMessage[]>;
8
10
  setMessage: (message: import("../../types/chat").MemoryStoredChatMessage) => void;
9
11
  setResponse: import("../../types/common").SetState<import("../../types/form").MemoryStoredResponse | null>;
10
12
  setStatus: import("../../types/common").SetState<import("../../components/Pickaxe/ResponseProvider").ResponseStatus>;
13
+ setLimitData: import("../../types/common").SetState<import("../../components/Pickaxe/ResponseProvider").PickaxeLimitData | null>;
11
14
  setError: import("../../types/common").SetState<string>;
12
15
  setIsGenerating: import("../../types/common").SetState<boolean>;
13
16
  };
@@ -0,0 +1 @@
1
+ import{jsx as i}from"react/jsx-runtime";import{motion as s}from"framer-motion";const t=({children:t,className:a,power:e=300,isVertical:n})=>i(s.div,Object.assign({initial:Object.assign(Object.assign({},n?{y:e}:{x:e}),{opacity:0}),animate:Object.assign(Object.assign({},n?{y:0}:{x:0}),{opacity:1}),exit:Object.assign(Object.assign({},n?{y:e}:{x:e}),{opacity:0}),transition:{type:"spring",stiffness:260,damping:20,duration:.3}},a&&{className:a},{children:t}));export{t as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useState as t,useMemo as o}from"react";import{usePickaxeContext as a}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as l}from"../../../../hooks/pickaxe/useResponseContext.js";import{useStyleFontSize as i}from"../../../../hooks/studio/useStyleFontSize.js";import{useConversation as r}from"../../../../hooks/pickaxe/useConversation.js";import c from"../../../Icons/circle-info.svg.js";import n from"../../common/PickaxeIcon.js";import m from"../../../Core/HtmlRenderer.js";import d from"../../Addons/Scroll/ScrollLockView.js";import p from"../../common/PickaxeInfoModal.js";import x from"./Message.js";import u from"../../../../common/cn.js";const f=()=>{var f;const{pickaxe:g,styles:h,colors:b,isNewChat:v,responsiveBy:y}=a(),{messages:j,status:w,error:k}=l(),E=r(),[N,O]=t(!1),C=i({type:"body"}),B=o((()=>!!E.data&&!(E.data.messages.length<=1)),[E.data]),F=o((()=>E.isSuccess&&v&&!B),[E.isSuccess,v,B]);return e("div",Object.assign({className:"relative flex flex-grow flex-col justify-end"},{children:[N&&s(p,{isOpen:N,onChangeIsOpen:O}),e("div",Object.assign({className:u("absolute left-1/2 top-5 flex w-full max-w-[400px] -translate-x-1/2 -translate-y-1/3 transform flex-col items-center px-4 opacity-0 duration-300",F&&"top-1/3 opacity-100")},{children:[s(n,{src:null==g?void 0:g.coverphoto,alt:`${null==g?void 0:g.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e("div",Object.assign({className:"flex flex-col items-center"},{children:[e("h2",Object.assign({className:u("mt-6 text-center font-semibold opacity-70","viewport"===y?"min-[767px]:text-lg":"@[767px]/pickaxe-root:text-lg")},{children:[`${null==g?void 0:g.formtitle.slice(0,130)}${(null!==(f=null==g?void 0:g.formtitle)&&void 0!==f?f:"").length>130?"...":""}`,s("button",Object.assign({className:"ml-2 inline-block outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>O(!0)},{children:s(c,{className:"h-5 w-5 shrink-0",style:{color:b.accent}})}))]})),s("p",Object.assign({className:C("mt-2 line-clamp-3 whitespace-pre-line max-w-[600px] text-center font-semilight opacity-70")},{children:null==g?void 0:g.formdescription}))]}))]})),s("div",Object.assign({className:"flex w-full justify-center"},{children:E.isLoading?e("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[s("div",{className:"h-10 w-[70%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===h.theme?"#1E1E1F":"#E5E7EB"}}),s("div",{className:"h-[150px] w-[70%] animate-pulse rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===h.theme?"#1E1E1F":"#E5E7EB"}}),s("div",{className:"h-10 w-[50%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===h.theme?"#1E1E1F":"#E5E7EB"}})]})):E.isError?s("div",Object.assign({className:"flex w-full max-w-[800px] justify-center pt-10"},{children:e("p",Object.assign({className:"text-center text-xl font-semibold"},{children:["Something went wrong. Please try again, or"," ",s("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help"},{children:"contact us"}))," ","for help."]}))})):e("div",Object.assign({className:u("relative grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-4 pt-6","viewport"===y?"min-[767px]:pt-10":"@[767px]/pickaxe-root:pt-10")},{children:[E.data.messages.map(((e,t)=>s(x,{message:e},t))),j.map(((e,t)=>s(x,{message:e},t))),"fetching"===w?e("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:["NONE"!==(null==g?void 0:g.chaticon)&&s(n,{src:null==g?void 0:g.chaticon,alt:`${null==g?void 0:g.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6"}),e("div",Object.assign({className:"flex items-center gap-x-2 rounded px-4 py-4",style:{backgroundColor:b.secondary+"80",color:b.secondaryText}},{children:[s("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:b.secondaryText}}),s("div",{className:"h-1.5 w-1.5 animate-dot-down rounded-full",style:{backgroundColor:b.secondaryText}}),s("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:b.secondaryText}})]}))]})):k?e("div",Object.assign({className:"flex max-w-[80%] gap-x-3"},{children:[s(c,{className:"mt-2 h-6 w-6 shrink-0 text-red-500"}),s(m,{className:"x-4 py-2 font-semibold text-red-500",html:k})]})):null,s(d,{className:"absolute bottom-0 left-0 w-full"})]}))}))]}))};export{f as default};
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useState as t,useMemo as o}from"react";import{usePickaxeContext as a}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as i}from"../../../../hooks/pickaxe/useResponseContext.js";import{useStyleFontSize as l}from"../../../../hooks/studio/useStyleFontSize.js";import{useConversation as r}from"../../../../hooks/pickaxe/useConversation.js";import c from"../../../Icons/circle-info.svg.js";import n from"../../common/PickaxeIcon.js";import m from"../../Addons/Scroll/ScrollLockView.js";import d from"../../common/PickaxeInfoModal.js";import p from"../../common/PickaxeUpgradeCard.js";import x from"./Message.js";import u from"../../../../common/cn.js";import f from"../../../Core/ErrorAlert.js";const g=()=>{var g;const{pickaxe:h,styles:b,colors:v,isNewChat:j,responsiveBy:y,setChatId:w}=a(),{messages:k,status:E,limitData:N,error:O}=i(),C=r(),[B,F]=t(!1),P=l({type:"body"}),S=o((()=>!!C.data&&!(C.data.messages.length<=1)),[C.data]),I=o((()=>C.isSuccess&&j&&!S),[C.isSuccess,j,S]);return e("div",Object.assign({className:"relative flex flex-grow flex-col justify-end"},{children:[B&&s(d,{isOpen:B,onChangeIsOpen:F}),e("div",Object.assign({className:u("absolute left-1/2 top-5 flex w-full max-w-[400px] -translate-x-1/2 -translate-y-1/3 transform flex-col items-center px-4 opacity-0 duration-300",I&&"top-1/3 opacity-100")},{children:[s("button",Object.assign({className:"duration-300 hover:opacity-90 active:opacity-100 outline-none",onClick:()=>w("")},{children:s(n,{src:null==h?void 0:h.coverphoto,alt:`${null==h?void 0:h.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"})})),e("div",Object.assign({className:"flex flex-col items-center"},{children:[e("h2",Object.assign({className:u("mt-6 text-center font-semibold opacity-70","viewport"===y?"min-[767px]:text-lg":"@[767px]/pickaxe-root:text-lg")},{children:[`${null==h?void 0:h.formtitle.slice(0,130)}${(null!==(g=null==h?void 0:h.formtitle)&&void 0!==g?g:"").length>130?"...":""}`,s("button",Object.assign({className:"ml-2 inline-block outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>F(!0)},{children:s(c,{className:"h-5 w-5 shrink-0",style:{color:v.accent}})}))]})),s("p",Object.assign({className:P("mt-2 line-clamp-3 whitespace-pre-line max-w-[600px] text-center font-semilight opacity-70")},{children:null==h?void 0:h.formdescription}))]}))]})),s("div",Object.assign({className:"flex w-full justify-center"},{children:C.isLoading?e("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[s("div",{className:"h-10 w-[70%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===b.theme?"#1E1E1F":"#E5E7EB"}}),s("div",{className:"h-[150px] w-[70%] animate-pulse rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===b.theme?"#1E1E1F":"#E5E7EB"}}),s("div",{className:"h-10 w-[50%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",style:{backgroundColor:"dark"===b.theme?"#1E1E1F":"#E5E7EB"}})]})):C.isError?s("div",Object.assign({className:"flex w-full max-w-[800px] justify-center pt-10"},{children:e("p",Object.assign({className:"text-center text-xl font-semibold"},{children:["Something went wrong. Please try again, or"," ",s("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help"},{children:"contact us"}))," ","for help."]}))})):e("div",Object.assign({className:u("relative grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-4 pt-6","viewport"===y?"min-[767px]:pt-10":"@[767px]/pickaxe-root:pt-10")},{children:[C.data.messages.map(((e,t)=>s(x,{message:e},t))),k.map(((e,t)=>s(x,{message:e},t))),"fetching"===E?e("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:["NONE"!==(null==h?void 0:h.chaticon)&&s(n,{src:null==h?void 0:h.chaticon,alt:`${null==h?void 0:h.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6"}),e("div",Object.assign({className:"flex items-center gap-x-2 rounded px-4 py-4",style:{backgroundColor:v.secondary+"80",color:v.secondaryText}},{children:[s("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:v.secondaryText}}),s("div",{className:"h-1.5 w-1.5 animate-dot-down rounded-full",style:{backgroundColor:v.secondaryText}}),s("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:v.secondaryText}})]}))]})):N?s("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:s(p,{})})):O?s("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:s(f,{error:O})})):null,s(m,{className:"absolute bottom-0 left-0 w-full"})]}))}))]}))};export{g 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}from"react";import{useMediaQuery as i}from"../../../hooks/core/useMediaQuery.js";import{usePickaxeContext as n}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as a}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as l}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as d}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as c}from"../../../hooks/pickaxe/useConversation.js";import{useSubmit as m}from"../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as u}from"../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as p}from"../Addons/Document/hooks/useDocument.js";import{useScroll as f}from"../Addons/Scroll/hooks/useScroll.js";import{allowedFileMimeTypes as h,allowedImageMimeTypes as g}from"../../../common/documents.js";import{streamer as x}from"../../../common/api/streamer.js";import b 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 v from"../../Icons/attach.svg.js";import y from"../../Icons/send.svg.js";import k from"../Addons/IceBreaker/index.js";import j from"../../../common/error.js";import I from"../../../common/cn.js";const w=()=>{var w,A,D,S;const{formId:N,chatId:O,userId:C,studioUserId:E,pickaxe:_,colors:U,responsiveBy:z,isNewChat:R,isForceMobile:B,setIsNewChat:F}=n(),{messages:M,status:T,setMessages:K,setStatus:P,setError:W}=a(),{documents:L,isUploading:Q,isImageUploadAllowed:q,upsertDocuments:G,onFileUpload:H,onEditDocumentByDocId:J}=p(),{isScrollIncreasing:V,scrollToBottom:X,scrollStart:Y,scrollEnd:Z}=f(),$=c(),ee=m(),oe=u(),[te,se]=s(""),re=r(null),[ie]=i("(max-width: 767px)"),ne=l(),ae=d({type:"body"}),le=o=>e(void 0,void 0,void 0,(function*(){try{if(Q)return;W(""),F(!1);const e=null!=o?o:te;if(!e||"fetching"===T||"streaming"===T)return;const t=new Date;se("");const s="enduserupload"===(null==_?void 0:_.documentuploadtype),r=L.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);const{success:a,data:l,usedDocumentIds:d,newDocumentId:c,newDocumentName:m,isInsertedFile:u,error:p}=yield ee.mutateAsync(Object.assign({formId:N,responseId:O,value:e},s&&i&&{documentId:i}));if(!a)throw new Error(null!=p?p:"An error occurred, please try again.");u&&i&&J({documentId:i,isInsertedAsRaw:!0}),c&&m&&G([{type:"website",id:m,name:m,status:"finished",documentId:c}]),Y(),X();const f=(yield x({formId:N,responseId:O,data:l})).body;if(!f)throw new Error("Streaming error");const h=f.getReader(),g=new TextDecoder,b=n.length;let v="",y=!0;for(P("streaming");y;){const{value:e,done:o}=yield h.read();y=!o;if(v+=g.decode(e),v)K([...n.slice(0,b),{id:M.length+1,role:"assistant",content:v}]),V&&X();else if(!y&&!v)throw new Error("Server error")}const k=new Date;v&&(X(),P("idle"),yield oe.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:N,responseId:O,documentIds:d},C&&{userId:C}),E&&{studioUserId:E}),E&&(null==_?void 0:_.studioid)&&{studioId:_.studioid}),{messages:[{role:"user",message:e,sentAt:t},{role:"assistant",message:v,sentAt:k}]})))}catch(e){let o=j(e);o.includes("Unexpected token 'A',")&&(o="Oops! We're experiencing high traffic at the moment. Please try again later."),W(o),X()}finally{P("idle"),Z()}}));return o("div",Object.assign({className:I("fixed flex w-full flex-col bottom-0 left-0","viewport"===z?"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:[R&&_&&!$.isLoading&&(null!==(A=null===(w=$.data)||void 0===w?void 0:w.messages.length)&&void 0!==A?A:0)<=1&&_.icebreakers&&_.icebreakers.length>0&&t(k,{data:null!==(D=_.icebreakers)&&void 0!==D?D:[],style:{backgroundColor:U.secondary,color:U.secondaryText},isMobile:B||ie,onSend:le}),o("div",Object.assign({style:ne,className:"flex min-h-[56px] items-end gap-x-2 px-4 py-3 pb-[15px] shadow"},{children:["enduserupload"===(null==_?void 0:_.documentuploadtype)&&o("div",Object.assign({className:"tooltip"},{children:[t("input",{id:"file-upload",ref:re,type:"file",accept:[...h,...q?g:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:o=>e(void 0,void 0,void 0,(function*(){yield H(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=re.current)||void 0===e?void 0:e.click()}},{children:t(v,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:U.accent}})}))]})),t(b,{className:I(ae("max-h-60 w-full resize-none border-transparent bg-transparent outline-none ring-0 scrollbar scrollbar-thin placeholder:font-semilight"),!te.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:te,placeholder:null!==(S=null==_?void 0:_.placeholdertext)&&void 0!==S?S:"What do you want to talk about?",onChange:e=>se(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),le())}}),t("button",Object.assign({className:"outline-none disabled:cursor-default disabled:opacity-50",disabled:"idle"!==T||Q,onClick:()=>le()},{children:t(y,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:U.accent}})}))]}))]}))};export{w 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}from"react";import{useMediaQuery as i}from"../../../hooks/core/useMediaQuery.js";import{usePickaxeContext as n}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as a}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as l}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as d}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as c}from"../../../hooks/pickaxe/useConversation.js";import{useSubmit as m}from"../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as u}from"../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as p}from"../Addons/Document/hooks/useDocument.js";import{useScroll as f}from"../Addons/Scroll/hooks/useScroll.js";import{allowedFileMimeTypes as h,allowedImageMimeTypes as g}from"../../../common/documents.js";import{streamer as x}from"../../../common/api/streamer.js";import b 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 v from"../../Icons/attach.svg.js";import y from"../../Icons/send.svg.js";import k from"../Addons/IceBreaker/index.js";import j from"../../../common/error.js";import I from"../../../common/cn.js";const w=()=>{var w,D,A,S;const{formId:N,chatId:O,userId:C,studioUserId:E,pickaxe:_,colors:U,responsiveBy:z,isNewChat:R,isForceMobile:B,setIsNewChat:F}=n(),{messages:M,status:T,limits:K,setMessages:L,setStatus:P,setLimitData:W,setError:Q}=a(),{documents:q,isUploading:G,isImageUploadAllowed:H,upsertDocuments:J,onFileUpload:V,onEditDocumentByDocId:X}=p(),{isScrollIncreasing:Y,scrollToBottom:Z,scrollStart:$,scrollEnd:ee}=f(),oe=c(),te=m(),se=u(),[re,ie]=s(""),ne=r(null),[ae]=i("(max-width: 767px)"),le=l(),de=d({type:"body"}),ce=o=>e(void 0,void 0,void 0,(function*(){try{if(G)return;W(null),Q(""),F(!1);const e=null!=o?o:re;if(!e||"fetching"===T||"streaming"===T)return;const t=new Date;ie("");const s="enduserupload"===(null==_?void 0:_.documentuploadtype),r=q.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}];L(n);const{success:a,data:l,usedDocumentIds:d,newDocumentId:c,newDocumentName:m,isInsertedFile:u,error:p}=yield te.mutateAsync(Object.assign({formId:N,responseId:O,value:e},s&&i&&{documentId:i}));if(!a)throw new Error(null!=p?p:"An error occurred, please try again.");u&&i&&X({documentId:i,isInsertedAsRaw:!0}),c&&m&&J([{type:"website",id:m,name:m,status:"finished",documentId:c}]),$(),Z();const f=(yield x({formId:N,responseId:O,data:l})).body;if(!f)throw new Error("Streaming error");const h=f.getReader(),g=new TextDecoder,b=n.length;let v="",y=!0;for(P("streaming");y;){const{value:e,done:o}=yield h.read();y=!o;if(v+=g.decode(e),v)L([...n.slice(0,b),{id:M.length+1,role:"assistant",content:v}]),Y&&Z();else if(!y&&!v)throw new Error("Server error")}const k=new Date;v&&(Z(),P("idle"),yield se.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:N,responseId:O,documentIds:d},C&&{userId:C}),E&&{studioUserId:E}),E&&(null==_?void 0:_.studioid)&&{studioId:_.studioid}),{messages:[{role:"user",message:e,sentAt:t},{role:"assistant",message:v,sentAt:k}]})))}catch(e){let o=j(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?W(t[1]):Q(o),Z()}finally{P("idle"),ee()}}));return o("div",Object.assign({className:I("fixed flex w-full flex-col bottom-0 left-0","viewport"===z?"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:[R&&_&&!oe.isLoading&&(null!==(D=null===(w=oe.data)||void 0===w?void 0:w.messages.length)&&void 0!==D?D:0)<=1&&_.icebreakers&&_.icebreakers.length>0&&t(k,{data:null!==(A=_.icebreakers)&&void 0!==A?A:[],style:{backgroundColor:U.secondary,color:U.secondaryText},isMobile:B||ae,onSend:ce}),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==_?void 0:_.documentuploadtype)&&o("div",Object.assign({className:"tooltip"},{children:[t("input",{id:"file-upload",ref:ne,type:"file",accept:[...h,...H?g:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:o=>e(void 0,void 0,void 0,(function*(){yield V(Array.from(o.target.files||[])),o.target.value=""}))}),t("button",Object.assign({className:"flex items-center disabled:cursor-wait disabled:opacity-50",disabled:G,onClick:()=>{var e;return null===(e=ne.current)||void 0===e?void 0:e.click()}},{children:t(v,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:U.accent}})}))]})),t(b,{className:I(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!==(S=null==_?void 0:_.placeholdertext)&&void 0!==S?S:"What do you want to talk about?",onChange:e=>ie(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),ce())}}),t("button",Object.assign({className:"outline-none disabled:cursor-default disabled:opacity-50",disabled:"idle"!==T||G,onClick:()=>ce()},{children:t(y,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:U.accent}})}))]}))]}))};export{w as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as o}from"react";import{usePickaxeContext as t}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{format as l}from"date-fns";import i from"../../../Icons/message-square-notes.svg.js";import a from"../../../Icons/visitor.svg.js";import n from"../../common/PickaxeIcon.js";import r from"../../common/PickaxeMarkdown.js";import c from"../../common/PickaxeSimpleButton.js";import d from"../../common/PickaxeCopyButton.js";const m=({item:m})=>{const{pickaxe:p,colors:h,setChatId:f,setIsNewChat:x}=t(),u=o((()=>l(m.createdAt,"hh:mm a MMM dd, yy")),[m]),g=o((()=>m&&m.messages?m.messages.length:0),[m]),v=o((()=>{var e,s,o,t;if("form"===m.type){return(null!==(e=m.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}return null!==(t=null===(o=null===(s=m.messages)||void 0===s?void 0:s[0])||void 0===o?void 0:o.message)&&void 0!==t?t:""}),[m]),b=o((()=>{var e,s,o,t;return"form"===m.type?null!==(e=m.questionResponse)&&void 0!==e?e:"":null!==(t=null===(o=null===(s=m.messages)||void 0===s?void 0:s[1])||void 0===o?void 0:o.message)&&void 0!==t?t:""}),[m]);return e("div",Object.assign({className:"flex flex-co transition hover:shadow"},{children:[e("div",Object.assign({className:"flex gap-x-3 overflow-hidden bg-white px-4 py-5"},{children:[s("div",Object.assign({className:"shrink-0 pt-1"},{children:s(a,{className:"h-6 w-6"})})),e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-1.5 scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[s("input",{id:`${m.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:v.length<280}),s("div",{className:"danger-html hidden flex-col peer-checked:flex",dangerouslySetInnerHTML:{__html:v}}),s("label",Object.assign({htmlFor:`${m.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:hidden hover:cursor-pointer",style:{color:h.accent}},{children:"See input"})),s("label",Object.assign({htmlFor:`${m.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:flex hover:cursor-pointer",style:{color:h.accent}},{children:"Hide input"}))]}))]})),e("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:h.secondary,color:h.secondaryText}},{children:[s(n,{src:null==p?void 0:p.chaticon,alt:`${null==p?void 0:p.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:h.secondaryText}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[s(r,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:b}),e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==p?void 0:p.enablechatresponses)&&e(c,Object.assign({color:h.accent,onClick:()=>{return e=m.responseId,x(!1),void f(e);var e}},{children:[s(i,{className:"h-4 w-4 shrink-0"}),s("p",Object.assign({className:"text-sm font-semibold"},{children:g+1}))]})),s(d,{color:h.accent,text:b})]})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:u}))}))]}))]}))]}))]}))};export{m as default};
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as o}from"react";import{usePickaxeContext as t}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{format as l}from"date-fns";import a from"../../../Icons/message-square-notes.svg.js";import i from"../../../Icons/visitor.svg.js";import r from"../../common/PickaxeIcon.js";import n from"../../common/PickaxeMarkdown.js";import c from"../../common/PickaxeSimpleButton.js";import d from"../../common/PickaxeCopyButton.js";const m=({item:m})=>{const{pickaxe:p,colors:h,setChatId:f,setIsNewChat:u}=t(),x=o((()=>l(m.createdAt,"hh:mm a MMM dd, yy")),[m]),g=o((()=>m&&m.messages?m.messages.length:0),[m]),v=o((()=>{var e,s,o,t;if("form"===m.type){return(null!==(e=m.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}return null!==(t=null===(o=null===(s=m.messages)||void 0===s?void 0:s[0])||void 0===o?void 0:o.message)&&void 0!==t?t:""}),[m]),b=o((()=>{var e,s,o,t;return"form"===m.type?null!==(e=m.questionResponse)&&void 0!==e?e:"":null!==(t=null===(o=null===(s=m.messages)||void 0===s?void 0:s[1])||void 0===o?void 0:o.message)&&void 0!==t?t:""}),[m]);return e("div",Object.assign({className:"flex flex-col shadow-black transition duration-300 hover:shadow"},{children:[e("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:h.primary,color:h.text}},{children:[s("div",Object.assign({className:"shrink-0 pt-1"},{children:s(i,{className:"h-6 w-6"})})),e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-1.5 scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[s("input",{id:`${m.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:v.length<280}),s("div",{className:"danger-html hidden flex-col peer-checked:flex",dangerouslySetInnerHTML:{__html:v}}),s("label",Object.assign({htmlFor:`${m.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:hidden hover:cursor-pointer",style:{color:h.accent}},{children:"See input"})),s("label",Object.assign({htmlFor:`${m.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:flex hover:cursor-pointer",style:{color:h.accent}},{children:"Hide input"}))]}))]})),e("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:h.secondary,color:h.secondaryText}},{children:[s(r,{src:null==p?void 0:p.chaticon,alt:`${null==p?void 0:p.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:h.secondaryText}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[s(n,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:b}),e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==p?void 0:p.enablechatresponses)&&e(c,Object.assign({color:h.accent,onClick:()=>{return e=m.responseId,u(!1),void f(e);var e}},{children:[s(a,{className:"h-4 w-4 shrink-0"}),s("p",Object.assign({className:"text-sm font-semibold"},{children:g+1}))]})),s(d,{color:h.accent,text:b})]})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:x}))}))]}))]}))]}))]}))};export{m as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as o}from"react";import{usePickaxeContext as t}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as r}from"../../../../hooks/pickaxe/useResponseContext.js";import{format as a}from"date-fns";import l from"../../../Icons/message-square-notes.svg.js";import n from"../../../Icons/visitor.svg.js";import c from"../../common/PickaxeIcon.js";import i from"../../common/PickaxeMarkdown.js";import m from"../../common/PickaxeSimpleButton.js";import d from"../../Addons/Scroll/ScrollLockView.js";import p from"../../common/PickaxeCopyButton.js";const h=()=>{var h;const{pickaxe:x,colors:f,setChatId:u,setIsNewChat:g}=t(),{response:b}=r(),v=o((()=>a(b?b.createdAt:new Date,"hh:mm a MMM dd, yy")),[b]),k=o((()=>{var e;if(!b)return"";return(null!==(e=b.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}),[b]);return b?e("div",Object.assign({className:"flex flex-col shadow-black transition hover:shadow"},{children:[e("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:f.primary,color:f.text}},{children:[s("div",Object.assign({className:"shrink-0 pt-1"},{children:s(n,{className:"h-6 w-6"})})),e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[s("input",{id:`${b.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:k.length<280}),s("div",{className:"danger-html hidden flex-col opacity-50 peer-checked:flex",dangerouslySetInnerHTML:{__html:k}}),s("label",Object.assign({htmlFor:`${b.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer",style:{color:f.accent}},{children:"See input"})),s("label",Object.assign({htmlFor:`${b.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer",style:{color:f.accent}},{children:"Hide input"}))]}))]})),e("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:f.secondary,color:f.secondaryText}},{children:[s(c,{src:null==x?void 0:x.chaticon,alt:`${null==x?void 0:x.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:f.secondaryText}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[s(i,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:b.questionResponse}),e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==x?void 0:x.enablechatresponses)&&e(m,Object.assign({color:f.accent,onClick:()=>{return e=b.responseId,g(!1),void u(e);var e}},{children:[s(l,{className:"h-4 w-4 shrink-0"}),s("p",Object.assign({className:"text-sm font-semibold"},{children:b.messages.length+1}))]})),s(p,{color:f.accent,text:null!==(h=b.questionResponse)&&void 0!==h?h:""})]})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:v}))}))]}))]}))]})),s(d,{})]})):null};export{h as default};
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as o}from"react";import{usePickaxeContext as t}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as r}from"../../../../hooks/pickaxe/useResponseContext.js";import{format as a}from"date-fns";import l from"../../../Icons/message-square-notes.svg.js";import n from"../../../Icons/visitor.svg.js";import c from"../../common/PickaxeIcon.js";import i from"../../common/PickaxeMarkdown.js";import m from"../../common/PickaxeSimpleButton.js";import d from"../../Addons/Scroll/ScrollLockView.js";import p from"../../common/PickaxeCopyButton.js";const h=()=>{var h;const{pickaxe:x,colors:f,setChatId:u,setIsNewChat:g}=t(),{response:b}=r(),v=o((()=>a(b?b.createdAt:new Date,"hh:mm a MMM dd, yy")),[b]),k=o((()=>{var e;if(!b)return"";return(null!==(e=b.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}),[b]);return b?e("div",Object.assign({className:"flex flex-col shadow-black transition duration-300 hover:shadow"},{children:[e("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:f.primary,color:f.text}},{children:[s("div",Object.assign({className:"shrink-0 pt-1"},{children:s(n,{className:"h-6 w-6"})})),e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[s("input",{id:`${b.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:k.length<280}),s("div",{className:"danger-html hidden flex-col opacity-50 peer-checked:flex",dangerouslySetInnerHTML:{__html:k}}),s("label",Object.assign({htmlFor:`${b.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer",style:{color:f.accent}},{children:"See input"})),s("label",Object.assign({htmlFor:`${b.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer",style:{color:f.accent}},{children:"Hide input"}))]}))]})),e("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:f.secondary,color:f.secondaryText}},{children:[s(c,{src:null==x?void 0:x.chaticon,alt:`${null==x?void 0:x.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:f.secondaryText}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[s(i,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:b.questionResponse}),e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==x?void 0:x.enablechatresponses)&&e(m,Object.assign({color:f.accent,onClick:()=>{return e=b.responseId,g(!1),void u(e);var e}},{children:[s(l,{className:"h-4 w-4 shrink-0"}),s("p",Object.assign({className:"text-sm font-semibold"},{children:b.messages.length+1}))]})),s(p,{color:f.accent,text:null!==(h=b.questionResponse)&&void 0!==h?h:""})]})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:v}))}))]}))]}))]})),s(d,{})]})):null};export{h 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 r}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as i}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:k,responsiveBy:I,setIsShowHistory:y}=r(),{status:v,setResponse:O,setStatus:S,setError:q}=i(),{documents:E,websiteLink:P,isUploading:R,onWebsiteUpload:U,setDocumentError:A}=a(),{isScrollIncreasing:C,scrollToContainer:D,scrollToBottom:T,scrollStart:B,scrollEnd:L}=l(),N=n(),H=d(),[W,_]=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"===I?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:R||W||"fetching"===v||"streaming"===v,onClick:()=>e(void 0,void 0,void 0,(function*(){var e;try{if(R||W||"fetching"===v||"streaming"===v)return;A("");const o="enduserupload"===(null==b?void 0:b.documentuploadtype),t=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),s=E.filter((e=>"finished"===e.status)),r=c(P),i=E.map((e=>e.name)),n=r.filter((e=>!i.includes(e)));if(n.length){const e=n[n.length-1],o=yield U(e);o&&(s.push(o),_(!0),yield new Promise((e=>setTimeout(e,5e3))),_(!1))}else if(t&&o&&!s.length)return void A("Please paste a valid website/video link or drag a file to add to the knowledge base.");q("");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}))),S("fetching");const{success:p,responseId:f,data:g,usedDocumentIds:k,rawUserInput:I,error:y}=yield N.mutateAsync(Object.assign({formId:x,valueObj:l},o&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}));if(!p)throw new Error(null!=y?y:"An error occurred, please try again.");B();const D=(yield m({formId:x,responseId:f,data:g})).body;if(!D)throw new Error("Streaming error");const L=D.getReader(),K=new TextDecoder;let M="",Y=!0;O(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(M+=K.decode(e),M)S("streaming"),O({formId:x,responseId:f,documentIds:k,messages:[],questions:z,questionPrompt:I,questionResponse:M,createdAt:new Date}),C&&T();else if(!Y&&!M)throw new Error("Server error")}M&&(T(),S("idle"),yield H.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:x,responseId:f,documentIds:k},w&&{userId:w}),j&&{studioUserId:j}),j&&(null==b?void 0:b.studioid)&&{studioId:b.studioid}),{questions:z,questionPrompt:I,questionResponse:M})))}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."),q(o),_(!1),D()}finally{S("idle"),L()}}))},{children:W?"Processing...":R?"Uploading...":"fetching"===v||"streaming"===v?"Loading...":"Submit"})),!k&&t(p,Object.assign({variant:"transparent-text",className:g("w-full","viewport"===I?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>y(!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 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:k,responsiveBy:I,setIsShowHistory:y}=i(),{status:v,limits:O,setResponse:S,setStatus:q,setLimitData:E,setError:D}=r(),{documents:P,websiteLink:R,isUploading:U,onWebsiteUpload:A,setDocumentError:C}=a(),{isScrollIncreasing:L,scrollToContainer:T,scrollToBottom:B,scrollStart:N,scrollEnd:H}=l(),W=n(),_=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"===I?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:U||K||"fetching"===v||"streaming"===v,onClick:()=>e(void 0,void 0,void 0,(function*(){var e;try{if(U||K||"fetching"===v||"streaming"===v)return;E(null),C("");const o="enduserupload"===(null==b?void 0:b.documentuploadtype),t=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),s=P.filter((e=>"finished"===e.status)),i=c(R),r=P.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:k,rawUserInput:I,error:y}=yield W.mutateAsync(Object.assign({formId:x,valueObj:l},o&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}));if(!p)throw new Error(null!=y?y:"An error occurred, please try again.");N();const O=(yield m({formId:x,responseId:f,data:g})).body;if(!O)throw new Error("Streaming error");const T=O.getReader(),H=new TextDecoder;let Y="",z=!0;S(null);const F=h.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;z;){const{value:e,done:o}=yield T.read();z=!o;if(Y+=H.decode(e),Y)q("streaming"),S({formId:x,responseId:f,documentIds:k,messages:[],questions:F,questionPrompt:I,questionResponse:Y,createdAt:new Date}),L&&B();else if(!z&&!Y)throw new Error("Server error")}Y&&(B(),q("idle"),yield _.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:x,responseId:f,documentIds:k},w&&{userId:w}),j&&{studioUserId:j}),j&&(null==b?void 0:b.studioid)&&{studioId:b.studioid}),{questions:F,questionPrompt:I,questionResponse:Y})))}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),T()}finally{q("idle"),H()}}))},{children:K?"Processing...":U?"Uploading...":"fetching"===v||"streaming"===v?"Loading...":"Submit"})),!k&&t(p,Object.assign({variant:"transparent-text",className:g("w-full","viewport"===I?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>y(!0)},{children:"See history"}))]}))};export{h as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as i}from"react/jsx-runtime";import{useState as t,useEffect as o,Fragment as r}from"react";import{usePickaxeContext as p}from"../../../../hooks/pickaxe/usePickaxeContext.js";import s from"../../../Core/ErrorAlert.js";import n from"./Input.js";import d from"./Option.js";import m from"./Document.js";import u from"./Checkbox.js";import a from"./Submit.js";const l=()=>{const{pickaxe:l}=p(),[c,f]=t([]),x=e=>{f((i=>i.map((i=>i.id===e.id?e:i))))};return o((()=>{l&&l._questions&&f(l._questions.map(((e,i)=>{let t="";if("Knowledge Upload"===e.type||"userinput:documentupload"===e.id)t="";else if("Multiple Choice"===e.type){const i=e.example.split("S3P32X");i.includes(t)||(t=i[0])}return Object.assign(Object.assign({order:i+1,id:e.id,type:e.type,main:e.main,example:e.example,input:t,length:0,maxLength:parseInt(e.answerlength)},e.isRequired&&{isRequired:"string"==typeof e.isRequired?"true"===e.isRequired:e.isRequired}),e.isDropdown&&{isDropdown:"string"==typeof e.isDropdown?"true"===e.isDropdown:e.isDropdown})})))}),[l]),e("div",Object.assign({className:"mt-8 flex flex-col gap-y-8 max-lg:px-4"},{children:[c.map(((e,t)=>"Multiple Choice"===e.type?i(r,{children:i(d,{field:e,update:x})},t):"Checkbox"===e.type?i(r,{children:i(u,{field:e,update:x})},t):"userinput:documentupload"===e.id?i(r,{children:i(m,{field:e,update:x})},t):i(r,{children:i(n,{field:e,update:x})},t))),i(s,{}),i(a,{questions:c,update:x})]}))};export{l as default};
1
+ import{jsxs as e,jsx as i}from"react/jsx-runtime";import{useState as o,useEffect as r,Fragment as t}from"react";import{usePickaxeContext as p}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as s}from"../../../../hooks/pickaxe/useResponseContext.js";import n from"../../../Core/ErrorAlert.js";import d from"../../common/PickaxeUpgradeCard.js";import m from"./Input.js";import a from"./Option.js";import u from"./Document.js";import l from"./Checkbox.js";import c from"./Submit.js";const f=()=>{const{pickaxe:f}=p(),{error:x}=s(),[h,j]=o([]),g=e=>{j((i=>i.map((i=>i.id===e.id?e:i))))};return r((()=>{f&&f._questions&&j(f._questions.map(((e,i)=>{let o="";if("Knowledge Upload"===e.type||"userinput:documentupload"===e.id)o="";else if("Multiple Choice"===e.type){const i=e.example.split("S3P32X");i.includes(o)||(o=i[0])}return Object.assign(Object.assign({order:i+1,id:e.id,type:e.type,main:e.main,example:e.example,input:o,length:0,maxLength:parseInt(e.answerlength)},e.isRequired&&{isRequired:"string"==typeof e.isRequired?"true"===e.isRequired:e.isRequired}),e.isDropdown&&{isDropdown:"string"==typeof e.isDropdown?"true"===e.isDropdown:e.isDropdown})})))}),[f]),e("div",Object.assign({className:"mt-8 flex flex-col gap-y-8 max-lg:px-4"},{children:[h.map(((e,o)=>"Multiple Choice"===e.type?i(t,{children:i(a,{field:e,update:g})},o):"Checkbox"===e.type?i(t,{children:i(l,{field:e,update:g})},o):"userinput:documentupload"===e.id?i(t,{children:i(u,{field:e,update:g})},o):i(t,{children:i(m,{field:e,update:g})},o))),i(n,{error:x}),i(d,{}),i(c,{questions:h,update:g})]}))};export{f as default};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{createContext as r,useState as s}from"react";import o from"./Addons/Document/Provider.js";import t from"./ResponseProvider.js";const i=r({}),c=({userId:r="",studioUserId:c="",styles:n,colors:d,responsiveBy:a="viewport",isForceMobile:l=!1,children:F})=>{const[m,h]=s(""),[I,p]=s(""),[u,y]=s(null),[f,x]=s(!0),[b,v]=s(!0),[w,S]=s(!1);return e(i.Provider,Object.assign({value:{formId:m,chatId:I,userId:r,studioUserId:c,pickaxe:u,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:f,isShowIceBreaker:b,isShowHistory:w,isForceMobile:l,setFormId:h,setChatId:p,setPickaxe:y,setIsNewChat:x,setIsShowIceBreaker:v,setIsShowHistory:S}},{children:e(t,{children:e(o,{children:F})})}))};export{i as PickaxeContext,c as PickaxeProvider};
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 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{createContext as s,useState as t}from"react";const r=s({}),a=({children:s})=>{const[a,n]=t([]),[i,o]=t(null),[c,g]=t("idle"),[l,m]=t(""),[u,d]=t(!1);return e(r.Provider,Object.assign({value:{messages:a,response:i,status:c,error:l,isGenerating:u,setMessages:n,setResponse:o,setStatus:g,setError:m,setIsGenerating:d,setMessage:e=>{n((s=>s.map(((s,t)=>t===e.id?Object.assign(Object.assign({},s),e):s))))}}},{children:s}))};export{r as ResponseContext,a 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,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 +1 @@
1
- import{jsx as e,jsxs as o}from"react/jsx-runtime";import{usePickaxeContext as t}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useStyleFontSize as i}from"../../../hooks/studio/useStyleFontSize.js";import s from"../../Icons/x.svg.js";import r from"../../Core/Modal/index.js";import l from"../../Core/Modal/Body.js";import c from"./PickaxeIcon.js";import n from"./PickaxeSimpleButton.js";import a from"../../../common/cn.js";const m=({isOpen:m,onChangeIsOpen:p})=>{const{pickaxe:x,colors:d,responsiveBy:f}=t(),h=i({type:"body"});return e(r,Object.assign({isOpen:m,onChange:p},{children:o(l,Object.assign({className:"relative flex flex-col px-8 py-[26px] w-full min-[767px]:max-w-[480px] max-[767px]:border-0",style:{backgroundColor:d.primary,color:d.text,borderColor:d.text+"4D"},avoidOverflow:!0},{children:[e("div",Object.assign({className:"flex items-start justify-end gap-4"},{children:e(n,Object.assign({color:d.text,onClick:()=>p(!1)},{children:e(s,{className:"h-6 w-6 shrink-0"})}))})),e("div",Object.assign({className:"mt-8 flex flex-col items-center"},{children:o("div",Object.assign({className:"flex w-full max-w-[360px] flex-col items-center text-center"},{children:[e(c,{src:null==x?void 0:x.coverphoto,alt:`${null==x?void 0:x.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e("h2",Object.assign({className:a("mt-6 text-center font-semibold opacity-70","viewport"===f?"min-[767px]:text-[18px]":"@[767px]/pickaxe-root:text-[18px]")},{children:null==x?void 0:x.formtitle})),e("p",Object.assign({className:h("mt-4 font-semilight opacity-70")},{children:null==x?void 0:x.formdescription}))]}))}))]}))}))};export{m as default};
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{usePickaxeContext as t}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useStyleFontSize as i}from"../../../hooks/studio/useStyleFontSize.js";import s from"../../Icons/x.svg.js";import r from"../../Core/Modal/index.js";import l from"../../Core/Modal/Body.js";import c from"./PickaxeIcon.js";import n from"./PickaxeSimpleButton.js";import a from"../../../common/cn.js";const m=({isOpen:m,onChangeIsOpen:p})=>{const{pickaxe:x,colors:d,responsiveBy:f}=t(),h=i({type:"body"});return e(r,Object.assign({isOpen:m,onChange:p},{children:o(l,Object.assign({className:"relative flex flex-col px-8 pt-[26px] pb-8 w-full min-[767px]:max-w-[480px] max-[767px]:border-0",style:{backgroundColor:d.primary,color:d.text,borderColor:d.text+"4D"},avoidOverflow:!0},{children:[e("div",Object.assign({className:"flex items-start justify-end gap-4"},{children:e(n,Object.assign({color:d.text,onClick:()=>p(!1)},{children:e(s,{className:"h-6 w-6 shrink-0"})}))})),e("div",Object.assign({className:"mt-6 flex flex-col items-center"},{children:o("div",Object.assign({className:"flex w-full max-w-[360px] flex-col items-center text-center"},{children:[e(c,{src:null==x?void 0:x.coverphoto,alt:`${null==x?void 0:x.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e("h2",Object.assign({className:a("mt-6 text-center font-semibold opacity-70","viewport"===f?"min-[767px]:text-[18px]":"@[767px]/pickaxe-root:text-[18px]")},{children:null==x?void 0:x.formtitle})),e("p",Object.assign({className:h("mt-4 font-semilight opacity-70")},{children:null==x?void 0:x.formdescription}))]}))}))]}))}))};export{m as default};
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as s}from"react/jsx-runtime";import{AnimatePresence as o}from"framer-motion";import{usePickaxeContext as t}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as r}from"../../../hooks/pickaxe/useResponseContext.js";import a from"../../Icons/circle-exclamation.svg.js";import m from"../../Core/SpringTransition.js";import i from"../../Core/HtmlRenderer.js";import c from"./PickaxeButton.js";import n from"../../../common/cn.js";const l=({className:l,iconClassName:p,htmlClassName:f})=>{const{colors:x}=t(),{limitData:h}=r();return e(o,{children:!!h&&s(m,Object.assign({className:n("flex gap-3",l)},{children:[e(a,{className:n("h-5 w-5 shrink-0",p),style:{color:x.accent}}),s("div",Object.assign({className:"flex flex-col gap-4"},{children:[e(i,{className:n("text-sm font-semibold",f),style:{color:x.text},html:h.html}),e("a",Object.assign({href:h.ctaLink},{children:e(c,Object.assign({variant:"primary",className:"min-h-[38px]"},{children:h.cta}))}))]}))]}))})};export{l as default};
@@ -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,chatId:d,className:n})=>{const{chatId:f,styles:p,colors:x,setFormId:h,setChatId:k,setPickaxe:j}=e(),u=r();return t((()=>{h(l)}),[l]),t((()=>{"string"==typeof d&&k(d)}),[d]),t((()=>{u.data&&(k(u.data.chatflag?a(15):""),j(u.data))}),[u.data]),u.data?o(m,{children:o("div",Object.assign({className:c("relative @container/pickaxe-root flex flex-col flex-grow w-full h-full",n,"dark"===p.theme&&"dark"),style:{backgroundColor:x.primary,color:x.text}},{children:o(f?s:i,{})}))}):null};export{l as Pickaxe};
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:k,setPickaxe:h}=e(),j=r();return t((()=>{p(l)}),[l]),t((()=>{j.data&&(k(j.data.chatflag?a(15):""),h(j.data))}),[j.data]),j.data?o(m,{children: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(n?s:i,{})}))}):null};export{l as Pickaxe};
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from "react";
2
+ interface SpringTransitionProps {
3
+ children: ReactNode;
4
+ className?: string;
5
+ power?: number;
6
+ isVertical?: boolean;
7
+ }
8
+ declare const SpringTransition: ({ children, className, power, isVertical, }: SpringTransitionProps) => import("react/jsx-runtime").JSX.Element;
9
+ export default SpringTransition;
@@ -2,6 +2,7 @@ import type { SetState } from "../../types/common";
2
2
  import type { Pickaxe } from "../../types/pickaxe";
3
3
  import type { StudioFontSize, StudioFormFieldStyle, StudioButtonStyle } from "../../types/studio";
4
4
  import { type ReactNode } from "react";
5
+ import { type PickaxeLimitData } from "./ResponseProvider";
5
6
  export type PickaxeProviderStyles = {
6
7
  theme: "light" | "dark";
7
8
  font: string;
@@ -47,9 +48,10 @@ export interface IPickaxeProviderProps {
47
48
  styles?: Partial<PickaxeProviderStyles>;
48
49
  colors?: Partial<PickaxeProviderColors>;
49
50
  responsiveBy?: PickaxeResponsiveBy;
51
+ limits?: Record<string, PickaxeLimitData>;
50
52
  isForceMobile?: boolean;
51
53
  children: ReactNode;
52
54
  }
53
55
  export declare const PickaxeContext: import("react").Context<PickaxeContextType>;
54
- export declare const PickaxeProvider: ({ userId, studioUserId, styles, colors, responsiveBy, isForceMobile, children, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
56
+ export declare const PickaxeProvider: ({ userId, studioUserId, styles, colors, responsiveBy, limits, isForceMobile, children, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
55
57
  export {};
@@ -3,22 +3,31 @@ import type { MemoryStoredChatMessage } from "../../types/chat";
3
3
  import type { MemoryStoredResponse } from "../../types/form";
4
4
  import { type ReactNode } from "react";
5
5
  export type ResponseStatus = "fetching" | "streaming" | "idle";
6
+ export type PickaxeLimitData = {
7
+ html: string;
8
+ cta: string;
9
+ ctaLink: string;
10
+ };
6
11
  type ResponseContextType = {
7
12
  messages: MemoryStoredChatMessage[];
8
13
  response: MemoryStoredResponse | null;
9
14
  status: ResponseStatus;
15
+ limits: Record<string, PickaxeLimitData>;
16
+ limitData: PickaxeLimitData | null;
10
17
  error: string;
11
18
  isGenerating: boolean;
12
19
  setMessages: SetState<MemoryStoredChatMessage[]>;
13
20
  setMessage: (message: MemoryStoredChatMessage) => void;
14
21
  setResponse: SetState<MemoryStoredResponse | null>;
15
22
  setStatus: SetState<ResponseStatus>;
23
+ setLimitData: SetState<PickaxeLimitData | null>;
16
24
  setError: SetState<string>;
17
25
  setIsGenerating: SetState<boolean>;
18
26
  };
19
27
  interface IResponseProviderProps {
28
+ limits: Record<string, PickaxeLimitData>;
20
29
  children: ReactNode;
21
30
  }
22
31
  export declare const ResponseContext: import("react").Context<ResponseContextType>;
23
- declare const ResponseProvider: ({ children }: IResponseProviderProps) => import("react/jsx-runtime").JSX.Element;
32
+ declare const ResponseProvider: ({ limits, children }: IResponseProviderProps) => import("react/jsx-runtime").JSX.Element;
24
33
  export default ResponseProvider;
@@ -0,0 +1,7 @@
1
+ interface PickaxeUpgradeCardProps {
2
+ className?: string;
3
+ iconClassName?: string;
4
+ htmlClassName?: string;
5
+ }
6
+ declare const PickaxeUpgradeCard: ({ className, iconClassName, htmlClassName, }: PickaxeUpgradeCardProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default PickaxeUpgradeCard;
@@ -1,6 +1,5 @@
1
1
  export interface PickaxeProps {
2
2
  formId: string;
3
- chatId?: string;
4
3
  className?: string;
5
4
  }
6
- export declare const Pickaxe: ({ formId: _formId, chatId: _chatId, className, }: PickaxeProps) => import("react/jsx-runtime").JSX.Element | null;
5
+ export declare const Pickaxe: ({ formId: _formId, className }: PickaxeProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -2,12 +2,15 @@ export declare const useResponseContext: () => {
2
2
  messages: import("../../types/chat").MemoryStoredChatMessage[];
3
3
  response: import("../../types/form").MemoryStoredResponse | null;
4
4
  status: import("../../components/Pickaxe/ResponseProvider").ResponseStatus;
5
+ limits: Record<string, import("../../components/Pickaxe/ResponseProvider").PickaxeLimitData>;
6
+ limitData: import("../../components/Pickaxe/ResponseProvider").PickaxeLimitData | null;
5
7
  error: string;
6
8
  isGenerating: boolean;
7
9
  setMessages: import("../../types/common").SetState<import("../../types/chat").MemoryStoredChatMessage[]>;
8
10
  setMessage: (message: import("../../types/chat").MemoryStoredChatMessage) => void;
9
11
  setResponse: import("../../types/common").SetState<import("../../types/form").MemoryStoredResponse | null>;
10
12
  setStatus: import("../../types/common").SetState<import("../../components/Pickaxe/ResponseProvider").ResponseStatus>;
13
+ setLimitData: import("../../types/common").SetState<import("../../components/Pickaxe/ResponseProvider").PickaxeLimitData | null>;
11
14
  setError: import("../../types/common").SetState<string>;
12
15
  setIsGenerating: import("../../types/common").SetState<boolean>;
13
16
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pickaxeproject/react",
3
- "version": "0.0.26",
3
+ "version": "0.0.27",
4
4
  "description": "Client utility library for Pickaxe",
5
5
  "repository": {
6
6
  "type": "git",