@pickaxeproject/react 0.0.44 → 0.0.46
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.
- package/dist/cjs/components/Icons/pickaxe.svg.js +1 -0
- package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -1
- package/dist/cjs/components/Pickaxe/Form/NewChat.js +1 -1
- package/dist/cjs/components/Pickaxe/Form/Questions/Submit.js +1 -1
- package/dist/cjs/components/Pickaxe/Provider.js +1 -1
- package/dist/cjs/components/Pickaxe/common/PickaxeBranding.js +1 -0
- package/dist/cjs/hooks/studio/useStyleButton.js +1 -1
- package/dist/cjs/src/components/Pickaxe/Provider.d.ts +11 -2
- package/dist/cjs/src/components/Pickaxe/common/PickaxeBranding.d.ts +6 -0
- package/dist/cjs/src/hooks/pickaxe/usePickaxeContext.d.ts +2 -0
- package/dist/esm/components/Icons/pickaxe.svg.js +1 -0
- package/dist/esm/components/Pickaxe/Chat/Input.js +1 -1
- package/dist/esm/components/Pickaxe/Form/NewChat.js +1 -1
- package/dist/esm/components/Pickaxe/Form/Questions/Submit.js +1 -1
- package/dist/esm/components/Pickaxe/Provider.js +1 -1
- package/dist/esm/components/Pickaxe/common/PickaxeBranding.js +1 -0
- package/dist/esm/hooks/studio/useStyleButton.js +1 -1
- package/dist/esm/src/components/Pickaxe/Provider.d.ts +11 -2
- package/dist/esm/src/components/Pickaxe/common/PickaxeBranding.d.ts +6 -0
- package/dist/esm/src/hooks/pickaxe/usePickaxeContext.d.ts +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function e(e){if(e&&e.__esModule)return e;var c=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(c,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),c.default=e,Object.freeze(c)}Object.defineProperty(exports,"__esModule",{value:!0});var c,t,a,r,n=e(require("react"));function l(){return l=Object.assign?Object.assign.bind():function(e){for(var c=1;c<arguments.length;c++){var t=arguments[c];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},l.apply(null,arguments)}var i=e=>n.createElement("svg",l({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 18 18"},e),c||(c=n.createElement("path",{fill:"#1C1C1C",d:"M15.014 17.998c-.74-.29-1.195-.922-1.73-1.451-1.31-1.296-2.605-2.606-3.907-3.91-.18-.18-.359-.364-.55-.533a1.45 1.45 0 0 1-.418-.633c-.161-.483-.458-.867-.829-1.208-.714-.656-1.382-1.359-2.067-2.045-.167-.166-.17-.174-.329.003-.09.1-.14.104-.237.001-.285-.302-.587-.589-.876-.887-.106-.11-.164-.11-.267.018-.658.82-.97 1.758-.991 2.799-.01.497-.005.937.002 1.435.002.125-.071.204-.215.21a27 27 0 0 0-.954.005c-.654-.03-1.138-.343-1.456-.915-.127-.211-.158-.241-.19-.342V9.68l.093-.885c.11-.964.394-1.878.778-2.765.243-.56.551-1.082.876-1.596.03-.048.055-.082.032-.145-.18-.51-.106-.99.253-1.388.344-.381.68-.784 1.131-1.05.342-.202.717-.222 1.092-.099.087.029.139.023.209-.024a9.8 9.8 0 0 1 1.872-1A10 10 0 0 1 8.702.092a10 10 0 0 1 1.434-.098c.657.01 1.123.335 1.458.878.16.262.224.55.22.856-.005.3 0 0 .002.867.006.147-.097.213-.234.212-.57-.003-1.09-.017-1.66.011a4.3 4.3 0 0 0-2.564.978c-.13.107-.116.168-.011.27.287.275.564.561.853.835.118.112.152.2-.002.305-.12.081-.12.15-.006.264q1.177 1.17 2.335 2.357c.253.259.554.428.885.554.299.114.553.286.78.515 1.507 1.518 3.022 3.03 4.533 4.544.314.315.641.617.932.956.374.436.447 1.21.196 1.72-.219.444-.6.734-.925 1.076-.24.254-.473.519-.81.659-.076.032-.166.042-.238.085 0 0-.177.044-.403.062-.18.015-.462 0-.462 0zM3.214 4.324c.005.07-.05.107-.084.153-.141.19-.293.374-.426.57a9 9 0 0 0-1.329 3.027c-.155.663-.22 1.334-.24 2.011-.008.269.128.438.375.553.145.068.174.03.175-.114 0-.485-.002-.967.098-1.449a5.9 5.9 0 0 1 .556-1.543c.364-.692.87-1.273 1.448-1.796.12-.109.196-.1.303.01.284.292.583.571.862.869.097.102.15.081.227-.005.054-.062.104-.132.192-.152.023.034.04.074.07.102 1.046 1.045 2.09 2.093 3.143 3.132.314.309.59.63.731 1.06q.125.38.424.674c1.228 1.217 2.445 2.444 3.668 3.666.546.545 1.091 1.091 1.647 1.626.23.222.519.213.754-.01q.449-.425.88-.867c.272-.28.259-.582-.024-.865-1.593-1.594-3.188-3.184-4.774-4.784-.432-.435-.862-.857-1.472-1.035a.7.7 0 0 1-.307-.18Q8.997 7.857 7.88 6.74c-.468-.467-.94-.928-1.41-1.392a.33.33 0 0 1 .133-.163c.115-.084.112-.152.008-.252-.294-.284-.577-.581-.869-.869-.098-.097-.114-.172-.003-.278.188-.18.359-.378.551-.557a5.75 5.75 0 0 1 3.137-1.514c.364-.054.73-.039 1.096-.035.15.001.174-.037.115-.177-.107-.254-.28-.384-.566-.377-.925.023-1.831.152-2.715.444a9.2 9.2 0 0 0-2.434 1.218c-.198.139-.366.32-.59.42-.109-.11-.212-.224-.326-.327-.12-.107-.261-.104-.373.001q-.383.362-.745.745c-.112.12-.11.26.01.384q.156.158.315.313"})),t||(t=n.createElement("path",{fill:"#EBA300",d:"M6.474 5.344c.47.464.943.926 1.41 1.393q1.117 1.116 2.232 2.237a.7.7 0 0 0 .306.18c.61.177 1.04.6 1.472 1.034 1.586 1.6 3.182 3.191 4.774 4.785.283.283.296.584.023.864a30 30 0 0 1-.879.868c-.234.222-.523.232-.754.01-.555-.535-1.1-1.081-1.647-1.626-1.223-1.222-2.44-2.45-3.668-3.666a1.7 1.7 0 0 1-.423-.674c-.142-.43-.418-.751-.731-1.06-1.053-1.04-2.097-2.087-3.144-3.132-.029-.029-.047-.068-.07-.103.095-.201.289-.312.434-.467.21-.225.423-.45.664-.643"})),a||(a=n.createElement("path",{fill:"#CCC",d:"M6.472 5.347a6.4 6.4 0 0 0-.665.643c-.145.155-.339.266-.434.467-.088.02-.138.091-.192.153-.076.086-.13.107-.226.004-.28-.297-.578-.576-.863-.869-.107-.11-.183-.118-.303-.01-.578.524-1.084 1.104-1.448 1.797q-.385.729-.555 1.543c-.101.482-.099.964-.1 1.449 0 .145-.029.182-.174.114-.246-.115-.383-.284-.375-.553.02-.677.085-1.348.24-2.011a9 9 0 0 1 1.33-3.027c.132-.197.284-.38.425-.57.035-.046.09-.084.085-.153.006 0 .015.003.017 0q.529-.57 1.1-1.099c.003-.003 0-.012 0-.018.225-.1.394-.28.591-.42A9.2 9.2 0 0 1 7.36 1.57c.883-.292 1.789-.421 2.714-.444.287-.007.459.123.566.377.06.14.035.179-.115.177-.366-.003-.733-.018-1.096.035a5.75 5.75 0 0 0-3.137 1.515c-.192.178-.363.376-.551.557-.111.106-.095.18.004.278.29.288.574.584.868.868.104.1.107.169-.007.253a.34.34 0 0 0-.134.162"})),r||(r=n.createElement("path",{fill:"#EBA300",d:"M4.338 3.21q.002.012-.001.018-.571.529-1.1 1.099c-.002.003-.011 0-.017 0q-.159-.155-.316-.313c-.12-.124-.121-.264-.009-.384q.362-.383.745-.745c.112-.105.253-.109.373 0 .114.102.217.216.325.326"})));exports.default=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),s=require("react/jsx-runtime"),t=require("react"),o=require("../../../hooks/core/useMediaQuery.js"),r=require("../../../hooks/pickaxe/usePickaxeContext.js"),i=require("../../../hooks/pickaxe/useResponseContext.js"),n=require("../../../hooks/studio/useStyleInput.js"),a=require("../../../hooks/studio/useStyleFontSize.js"),l=require("../../../hooks/pickaxe/useConversation.js"),d=require("../../../hooks/pickaxe/useSubmit.js"),u=require("../../../hooks/pickaxe/useSubmitResult.js"),c=require("../Addons/Document/hooks/useDocument.js"),m=require("../Addons/Scroll/hooks/useScroll.js"),p=require("../../../common/documents.js"),h=require("../../../common/api/streamer.js"),x=require("../../../node_modules/.pnpm/react-textarea-autosize@8.5.7_@types_react@18.3.18_react@18.3.1/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js"),f=require("../../Icons/attach.svg.js"),g=require("../../Icons/send.svg.js"),v=require("../Addons/IceBreaker/index.js"),b=require("../../../common/error.js"),
|
|
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"),j=require("../common/PickaxeBranding.js"),v=require("../Addons/IceBreaker/index.js"),b=require("../../../common/error.js"),y=require("../../../common/cn.js");exports.default=()=>{var k;const{formId:I,chatId:w,userId:q,studioUserId:S,pickaxe:D,colors:O,misc:N,responsiveBy:C,isNewChat:_,forceMobile:A,setIsNewChat:E,setIsShowIceBreaker:M,onGenerateComplete:R}=r.usePickaxeContext(),{messages:U,status:z,limits:B,setMessages:F,setStatus:P,setLimitData:T,setError:L}=i.useResponseContext(),{documents:W,isUploading:K,isImageUploadAllowed:Q,upsertDocuments:G,onFileUpload:H,onEditDocumentByDocId:V}=c.useDocument(),{isScrollIncreasing:J,scrollToBottom:X,scrollStart:Y,scrollEnd:Z}=m.useScroll(),$=l.useConversation(),ee=d.useSubmit(),se=u.useSubmitResult(),[te,oe]=t.useState(""),re=t.useRef(null),[ie]=o.useMediaQuery("(max-width: 767px)"),ne=n.useStyleInput(),ae=a.useStyleFontSize({type:"body"}),le=t.useMemo((()=>{var e,s,t;return!!_&&(!!D&&(!$.isLoading&&(!((null!==(s=null===(e=$.data)||void 0===e?void 0:e.messages.length)&&void 0!==s?s:0)>1)&&!!(null===(t=D.icebreakers)||void 0===t?void 0:t.length))))}),[D,_,$.data,$.isLoading]);t.useEffect((()=>{M(le)}),[le]);const de=s=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(K)return;T(null),L(""),E(!1);const e=null!=s?s:te;if(!e||"fetching"===z||"streaming"===z)return;const t=new Date;oe("");const o="enduserupload"===(null==D?void 0:D.documentuploadtype),r=W.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";P("fetching");const n=[...U,{id:U.length+1,role:"user",content:e}];F(n),Y(),X();const{success:a,data:l,usedDocumentIds:d,newDocumentId:u,newDocumentName:c,isInsertedFile:m,error:p}=yield ee.mutateAsync(Object.assign(Object.assign({formId:I,responseId:w,value:e},o&&i&&{documentId:i}),S&&{studioUserId:S}));if(!a)throw new Error(null!=p?p:"An error occurred, please try again.");m&&i&&V({documentId:i,isInsertedAsRaw:!0}),u&&c&&G([{type:"website",id:c,name:c,status:"finished",documentId:u}]),X();const x=(yield h.streamer({formId:I,responseId:w,data:l})).body;if(!x)throw new Error("Streaming error");const f=x.getReader(),g=new TextDecoder,j=n.length;let v="",b=!0;for(P("streaming");b;){const{value:e,done:s}=yield f.read();b=!s;if(v+=g.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",v),v)F([...n.slice(0,j),{id:U.length+1,role:"assistant",content:v}]),J&&X();else if(!b&&!v)throw new Error("Server error")}const y=new Date;v&&(X(),P("idle"),yield se.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:I,responseId:w,documentIds:d},q&&{userId:q}),S&&{studioUserId:S}),S&&(null==D?void 0:D.studioid)&&{studioId:D.studioid}),{messages:[{role:"user",message:e,sentAt:t},{role:"assistant",message:v,sentAt:y}]})),null==R||R(w))}catch(e){let s=b.default(e)||"";s&&!s.includes("Unexpected token 'A',")||(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(B).find((([e])=>s.includes(e)));t?T(t[1]):L(s),X()}finally{P("idle"),Z()}}));return s.jsxs("div",Object.assign({className:y.default("fixed flex w-full flex-col bottom-0 left-0","viewport"===C?"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.isWhiteLabel&&s.jsx("div",Object.assign({className:"flex justify-end pr-3"},{children:s.jsx(j.default,{animateHover:!0})})),le&&s.jsx(v.default,{data:(null==D?void 0:D.icebreakers)||[],style:{backgroundColor:O.secondary,color:O.secondaryText},isMobile:A||ie,onSend:de}),s.jsxs("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==D?void 0:D.documentuploadtype)&&s.jsxs("div",Object.assign({className:"tooltip"},{children:[s.jsx("input",{id:"file-upload",ref:re,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 H(Array.from(s.target.files||[])),s.target.value=""}))}),s.jsx("button",Object.assign({className:"flex items-center disabled:cursor-wait disabled:opacity-50",disabled:K,onClick:()=>{var e;return null===(e=re.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:y.default(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!==(k=null==D?void 0:D.placeholdertext)&&void 0!==k?k:"What do you want to talk about?",onChange:e=>oe(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),de())}}),s.jsx("button",Object.assign({className:"outline-none disabled:cursor-default disabled:opacity-50",disabled:"idle"!==z||K,onClick:()=>de()},{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"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../../hooks/pickaxe/usePickaxeContext.js"),t=require("../../../common/utils.js"),i=require("../common/PickaxeButton.js"),a=require("../common/PickaxeBranding.js"),r=require("../../../common/cn.js");exports.default=()=>{const{misc:x,responsiveBy:o,isShowHistory:c,setChatId:n,setIsNewChat:l,setIsShowHistory:p}=s.usePickaxeContext();return e.jsxs("div",Object.assign({className:r.default("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===o?"min-[767px]:flex-row":"@[767px]/pickaxe-root:flex-row")},{children:[e.jsxs("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[e.jsx(i.default,Object.assign({className:r.default("w-full","viewport"===o?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>{return e=t.generateId(20),l(!0),void n(e);var e}},{children:"New chat"})),!c&&e.jsx(i.default,Object.assign({variant:"transparent-text",className:r.default("w-full","viewport"===o?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>p(!0)},{children:"See history"}))]})),!x.isWhiteLabel&&e.jsx("div",Object.assign({className:"flex justify-end pr-3"},{children:e.jsx(a.default,{})}))]}))};
|
|
@@ -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"),
|
|
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"),i=require("../../../../hooks/pickaxe/useResponseContext.js"),r=require("../../../../hooks/pickaxe/useSubmit.js"),n=require("../../../../hooks/pickaxe/useSubmitResult.js"),l=require("../../Addons/Document/hooks/useDocument.js"),u=require("../../Addons/Scroll/hooks/useScroll.js"),a=require("../../../../common/api/streamer.js"),d=require("../../../../common/utils.js"),c=require("@nem035/gpt-3-encoder"),m=require("../../common/PickaxeBranding.js"),p=require("../../common/PickaxeButton.js"),f=require("../../../../common/error.js"),x=require("../../../../common/cn.js");exports.default=({questions:g})=>{const{formId:h,userId:j,studioUserId:w,pickaxe:b,misc:q,responsiveBy:v,isShowHistory:k,setIsShowHistory:y,onGenerateComplete:I}=o.usePickaxeContext(),{status:O,limits:S,setResponse:E,setStatus:P,setLimitData:R,setError:C}=i.useResponseContext(),{documents:D,websiteLink:U,isUploading:A,onWebsiteUpload:N,setDocumentError:_}=l.useDocument(),{isScrollIncreasing:L,scrollToContainer:T,scrollToBottom:B,scrollStart:W,scrollEnd:H}=u.useScroll(),M=r.useSubmit(),F=n.useSubmitResult(),[G,K]=t.useState(!1);return s.jsxs("div",Object.assign({className:x.default("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===v?"min-[767px]:flex-row":"@[767px]/pickaxe-root:flex-row")},{children:[s.jsxs("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[s.jsx(p.default,Object.assign({className:x.default("w-full","viewport"===v?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:A||G||"fetching"===O||"streaming"===O,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(A||G||"fetching"===O||"streaming"===O)return;R(null),_("");const s="enduserupload"===(null==b?void 0:b.documentuploadtype),t=g.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),o=D.filter((e=>"finished"===e.status)),i=d.extractUrlsFromText(U),r=D.map((e=>e.name)),n=i.filter((e=>!r.includes(e)));if(n.length){const e=n[n.length-1],s=yield N(e);s&&(o.push(s),K(!0),yield new Promise((e=>setTimeout(e,5e3))),K(!1))}else if(t&&s&&!o.length)return void _("Please paste a valid website/video link or drag a file to add to the knowledge base.");C("");const l=["Multiple Choice","Checkbox"];for(const e of g){if(c.encode(e.input).length>e.maxLength&&!l.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 u=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==u?void 0:u.name)||"":e.input}))),P("fetching");const{success:p,responseId:f,data:x,usedDocumentIds:q,rawUserInput:v,error:k}=yield M.mutateAsync(Object.assign(Object.assign({formId:h,valueObj:m},s&&u&&{documentId:null!==(e=u.documentId)&&void 0!==e?e:""}),w&&{studioUserId:w}));if(!p)throw new Error(null!=k?k:"An error occurred, please try again.");W();const y=(yield a.streamer({formId:h,responseId:f,data:x})).body;if(!y)throw new Error("Streaming error");const S=y.getReader(),T=new TextDecoder;let H="",V=!0;E(null);const Y=g.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;V;){const{value:e,done:s}=yield S.read();V=!s;if(H+=T.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",H),H)P("streaming"),E({formId:h,responseId:f,documentIds:q,messages:[],questions:Y,questionPrompt:v,questionResponse:H,createdAt:new Date}),L&&B();else if(!V&&!H)throw new Error("Server error")}H&&(B(),P("idle"),yield F.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:h,responseId:f,documentIds:q},j&&{userId:j}),w&&{studioUserId:w}),w&&(null==b?void 0:b.studioid)&&{studioId:b.studioid}),{questions:Y,questionPrompt:v,questionResponse:H})),null==I||I(f))}catch(e){let s=f.default(e)||"";s&&!s.includes("Unexpected token 'A',")||(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(S).find((([e])=>s.includes(e)));t?R(t[1]):C(s),K(!1),T()}finally{P("idle"),H()}}))},{children:G?"Processing...":A?"Uploading...":"fetching"===O||"streaming"===O?"Loading...":"Submit"})),!k&&s.jsx(p.default,Object.assign({variant:"transparent-text",className:x.default("w-full","viewport"===v?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>y(!0)},{children:"See history"}))]})),!q.isWhiteLabel&&s.jsx("div",Object.assign({className:"flex justify-end pr-3"},{children:s.jsx(m.default,{})}))]}))};
|
|
@@ -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=({children:i,userId:a="",studioUserId:n="",styles:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),s=require("./Addons/Document/Provider.js"),r=require("./ResponseProvider.js");const o=t.createContext({});exports.PickaxeContext=o,exports.PickaxeProvider=({children:i,userId:a="",studioUserId:n="",styles:c,colors:d,limits:l={},misc:u,responsiveBy:F="viewport",loadFont:h=!0,forceMobile:x=!1,onGenerateComplete:m})=>{const[I,S]=t.useState(""),[f,p]=t.useState(""),[j,y]=t.useState(null),[b,v]=t.useState(null!=u?u:{isWhiteLabel:!0,isProfileImage:!0,isChatImage:!0,isDescription:!0}),[P,g]=t.useState(!1),[C,k]=t.useState(!0),[w,O]=t.useState(!0),[q,B]=t.useState(!1);return t.useEffect((()=>{g(!1)}),[null==c?void 0:c.font]),e.jsx(o.Provider,Object.assign({value:Object.assign({formId:I,chatId:f,userId:a,studioUserId:n,pickaxe:j,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),misc:b,responsiveBy:F,isFontLoaded:P,isNewChat:C,isShowIceBreaker:w,isShowHistory:q,loadFont:h,forceMobile:x,setIsFontLoaded:g,setFormId:S,setChatId:p,setPickaxe:y,setMisc:v,setIsNewChat:k,setIsShowIceBreaker:O,setIsShowHistory:B},m&&{onGenerateComplete:m})},{children:e.jsx(r.default,Object.assign({limits:l},{children:e.jsx(s.default,{children:i})}))}))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../../hooks/pickaxe/usePickaxeContext.js"),a=require("framer-motion"),r=require("../../Icons/pickaxe.svg.js"),i=require("../../../common/cn.js");exports.default=({className:t,animateHover:c=!0})=>{const{misc:n}=s.usePickaxeContext();return n.isWhiteLabel?null:e.jsxs(a.motion.a,Object.assign({href:`https://${process.env.NEXT_PUBLIC_PICKAXE_DOMAIN}`,className:i.default("flex items-center gap-2 select-none overflow-hidden px-2 py-1 rounded",t)},c&&{initial:{scale:1},whileHover:{scale:1.05},whileTap:{scale:.95}},{children:[e.jsx(r.default,{className:"h-3.5 w-3.5 shrink-0"}),e.jsx("span",Object.assign({className:"text-xs opacity-50"},{children:"Powered by Pickaxe"}))]}))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("../pickaxe/usePickaxeContext.js");exports.useStyleButton=({variant:t="primary"})=>{const{styles:o,colors:n}=r.usePickaxeContext();return e.useMemo((()=>Object.assign(Object.assign(Object.assign({},"primary"===t&&Object.assign(Object.assign(Object.assign({borderWidth:`${o.outlineThickness}px`},"filled"===o.btnStyle&&{borderColor:n.accent,backgroundColor:n.accent,color:n.accentText}),"outlined"===o.btnStyle&&{color:n.accent,backgroundColor:"transparent",borderColor:n.accent}),"transparent"===o.btnStyle&&{color:n.accent,backgroundColor:"transparent",borderColor:"transparent"})),"secondary"===t&&{backgroundColor:"transparent",color:n.accent}),"transparent-text"===t&&{color:n.accent})),[o,n,t])};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("../pickaxe/usePickaxeContext.js");exports.useStyleButton=({variant:t="primary"})=>{const{styles:o,colors:n}=r.usePickaxeContext();return e.useMemo((()=>Object.assign(Object.assign(Object.assign({borderRadius:`${o.cornerRadius}px`},"primary"===t&&Object.assign(Object.assign(Object.assign({borderWidth:`${o.outlineThickness}px`},"filled"===o.btnStyle&&{borderColor:n.accent,backgroundColor:n.accent,color:n.accentText}),"outlined"===o.btnStyle&&{color:n.accent,backgroundColor:"transparent",borderColor:n.accent}),"transparent"===o.btnStyle&&{color:n.accent,backgroundColor:"transparent",borderColor:"transparent"})),"secondary"===t&&{backgroundColor:"transparent",color:n.accent}),"transparent-text"===t&&{color:n.accent})),[o,n,t])};
|
|
@@ -22,6 +22,12 @@ export type PickaxeProviderColors = {
|
|
|
22
22
|
error: string;
|
|
23
23
|
};
|
|
24
24
|
export type PickaxeResponsiveBy = "viewport" | "container";
|
|
25
|
+
export type PickaxeMisc = {
|
|
26
|
+
isWhiteLabel: boolean;
|
|
27
|
+
isProfileImage: boolean;
|
|
28
|
+
isChatImage: boolean;
|
|
29
|
+
isDescription: boolean;
|
|
30
|
+
};
|
|
25
31
|
type PickaxeContextType = {
|
|
26
32
|
formId: string;
|
|
27
33
|
chatId: string;
|
|
@@ -30,6 +36,7 @@ type PickaxeContextType = {
|
|
|
30
36
|
pickaxe: Pickaxe | null;
|
|
31
37
|
styles: PickaxeProviderStyles;
|
|
32
38
|
colors: PickaxeProviderColors;
|
|
39
|
+
misc: PickaxeMisc;
|
|
33
40
|
responsiveBy: PickaxeResponsiveBy;
|
|
34
41
|
isFontLoaded: boolean;
|
|
35
42
|
isNewChat: boolean;
|
|
@@ -40,6 +47,7 @@ type PickaxeContextType = {
|
|
|
40
47
|
setFormId: SetState<string>;
|
|
41
48
|
setChatId: SetState<string>;
|
|
42
49
|
setPickaxe: SetState<Pickaxe | null>;
|
|
50
|
+
setMisc: SetState<PickaxeMisc>;
|
|
43
51
|
setIsFontLoaded: SetState<boolean>;
|
|
44
52
|
setIsNewChat: SetState<boolean>;
|
|
45
53
|
setIsShowIceBreaker: SetState<boolean>;
|
|
@@ -52,12 +60,13 @@ export interface IPickaxeProviderProps {
|
|
|
52
60
|
studioUserId?: string;
|
|
53
61
|
styles?: Partial<PickaxeProviderStyles>;
|
|
54
62
|
colors?: Partial<PickaxeProviderColors>;
|
|
55
|
-
responsiveBy?: PickaxeResponsiveBy;
|
|
56
63
|
limits?: Record<string, PickaxeLimitData>;
|
|
64
|
+
misc?: PickaxeMisc;
|
|
65
|
+
responsiveBy?: PickaxeResponsiveBy;
|
|
57
66
|
loadFont?: boolean;
|
|
58
67
|
forceMobile?: boolean;
|
|
59
68
|
onGenerateComplete?: (responseId: string) => void;
|
|
60
69
|
}
|
|
61
70
|
export declare const PickaxeContext: import("react").Context<PickaxeContextType>;
|
|
62
|
-
export declare const PickaxeProvider: ({ children, userId, studioUserId, styles, colors,
|
|
71
|
+
export declare const PickaxeProvider: ({ children, userId, studioUserId, styles, colors, limits, misc: _misc, responsiveBy, loadFont, forceMobile, onGenerateComplete, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
63
72
|
export {};
|
|
@@ -6,6 +6,7 @@ export declare const usePickaxeContext: () => {
|
|
|
6
6
|
pickaxe: import("../../types/pickaxe").Pickaxe | null;
|
|
7
7
|
styles: import("../../components/Pickaxe/Provider").PickaxeProviderStyles;
|
|
8
8
|
colors: import("../../components/Pickaxe/Provider").PickaxeProviderColors;
|
|
9
|
+
misc: import("../../components/Pickaxe/Provider").PickaxeMisc;
|
|
9
10
|
responsiveBy: import("../../components/Pickaxe/Provider").PickaxeResponsiveBy;
|
|
10
11
|
isFontLoaded: boolean;
|
|
11
12
|
isNewChat: boolean;
|
|
@@ -16,6 +17,7 @@ export declare const usePickaxeContext: () => {
|
|
|
16
17
|
setFormId: import("../../types/common").SetState<string>;
|
|
17
18
|
setChatId: import("../../types/common").SetState<string>;
|
|
18
19
|
setPickaxe: import("../../types/common").SetState<import("../../types/pickaxe").Pickaxe | null>;
|
|
20
|
+
setMisc: import("../../types/common").SetState<import("../../components/Pickaxe/Provider").PickaxeMisc>;
|
|
19
21
|
setIsFontLoaded: import("../../types/common").SetState<boolean>;
|
|
20
22
|
setIsNewChat: import("../../types/common").SetState<boolean>;
|
|
21
23
|
setIsShowIceBreaker: import("../../types/common").SetState<boolean>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as a from"react";var c,e,t,l;function r(){return r=Object.assign?Object.assign.bind():function(a){for(var c=1;c<arguments.length;c++){var e=arguments[c];for(var t in e)({}).hasOwnProperty.call(e,t)&&(a[t]=e[t])}return a},r.apply(null,arguments)}var n=n=>a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 18 18"},n),c||(c=a.createElement("path",{fill:"#1C1C1C",d:"M15.014 17.998c-.74-.29-1.195-.922-1.73-1.451-1.31-1.296-2.605-2.606-3.907-3.91-.18-.18-.359-.364-.55-.533a1.45 1.45 0 0 1-.418-.633c-.161-.483-.458-.867-.829-1.208-.714-.656-1.382-1.359-2.067-2.045-.167-.166-.17-.174-.329.003-.09.1-.14.104-.237.001-.285-.302-.587-.589-.876-.887-.106-.11-.164-.11-.267.018-.658.82-.97 1.758-.991 2.799-.01.497-.005.937.002 1.435.002.125-.071.204-.215.21a27 27 0 0 0-.954.005c-.654-.03-1.138-.343-1.456-.915-.127-.211-.158-.241-.19-.342V9.68l.093-.885c.11-.964.394-1.878.778-2.765.243-.56.551-1.082.876-1.596.03-.048.055-.082.032-.145-.18-.51-.106-.99.253-1.388.344-.381.68-.784 1.131-1.05.342-.202.717-.222 1.092-.099.087.029.139.023.209-.024a9.8 9.8 0 0 1 1.872-1A10 10 0 0 1 8.702.092a10 10 0 0 1 1.434-.098c.657.01 1.123.335 1.458.878.16.262.224.55.22.856-.005.3 0 0 .002.867.006.147-.097.213-.234.212-.57-.003-1.09-.017-1.66.011a4.3 4.3 0 0 0-2.564.978c-.13.107-.116.168-.011.27.287.275.564.561.853.835.118.112.152.2-.002.305-.12.081-.12.15-.006.264q1.177 1.17 2.335 2.357c.253.259.554.428.885.554.299.114.553.286.78.515 1.507 1.518 3.022 3.03 4.533 4.544.314.315.641.617.932.956.374.436.447 1.21.196 1.72-.219.444-.6.734-.925 1.076-.24.254-.473.519-.81.659-.076.032-.166.042-.238.085 0 0-.177.044-.403.062-.18.015-.462 0-.462 0zM3.214 4.324c.005.07-.05.107-.084.153-.141.19-.293.374-.426.57a9 9 0 0 0-1.329 3.027c-.155.663-.22 1.334-.24 2.011-.008.269.128.438.375.553.145.068.174.03.175-.114 0-.485-.002-.967.098-1.449a5.9 5.9 0 0 1 .556-1.543c.364-.692.87-1.273 1.448-1.796.12-.109.196-.1.303.01.284.292.583.571.862.869.097.102.15.081.227-.005.054-.062.104-.132.192-.152.023.034.04.074.07.102 1.046 1.045 2.09 2.093 3.143 3.132.314.309.59.63.731 1.06q.125.38.424.674c1.228 1.217 2.445 2.444 3.668 3.666.546.545 1.091 1.091 1.647 1.626.23.222.519.213.754-.01q.449-.425.88-.867c.272-.28.259-.582-.024-.865-1.593-1.594-3.188-3.184-4.774-4.784-.432-.435-.862-.857-1.472-1.035a.7.7 0 0 1-.307-.18Q8.997 7.857 7.88 6.74c-.468-.467-.94-.928-1.41-1.392a.33.33 0 0 1 .133-.163c.115-.084.112-.152.008-.252-.294-.284-.577-.581-.869-.869-.098-.097-.114-.172-.003-.278.188-.18.359-.378.551-.557a5.75 5.75 0 0 1 3.137-1.514c.364-.054.73-.039 1.096-.035.15.001.174-.037.115-.177-.107-.254-.28-.384-.566-.377-.925.023-1.831.152-2.715.444a9.2 9.2 0 0 0-2.434 1.218c-.198.139-.366.32-.59.42-.109-.11-.212-.224-.326-.327-.12-.107-.261-.104-.373.001q-.383.362-.745.745c-.112.12-.11.26.01.384q.156.158.315.313"})),e||(e=a.createElement("path",{fill:"#EBA300",d:"M6.474 5.344c.47.464.943.926 1.41 1.393q1.117 1.116 2.232 2.237a.7.7 0 0 0 .306.18c.61.177 1.04.6 1.472 1.034 1.586 1.6 3.182 3.191 4.774 4.785.283.283.296.584.023.864a30 30 0 0 1-.879.868c-.234.222-.523.232-.754.01-.555-.535-1.1-1.081-1.647-1.626-1.223-1.222-2.44-2.45-3.668-3.666a1.7 1.7 0 0 1-.423-.674c-.142-.43-.418-.751-.731-1.06-1.053-1.04-2.097-2.087-3.144-3.132-.029-.029-.047-.068-.07-.103.095-.201.289-.312.434-.467.21-.225.423-.45.664-.643"})),t||(t=a.createElement("path",{fill:"#CCC",d:"M6.472 5.347a6.4 6.4 0 0 0-.665.643c-.145.155-.339.266-.434.467-.088.02-.138.091-.192.153-.076.086-.13.107-.226.004-.28-.297-.578-.576-.863-.869-.107-.11-.183-.118-.303-.01-.578.524-1.084 1.104-1.448 1.797q-.385.729-.555 1.543c-.101.482-.099.964-.1 1.449 0 .145-.029.182-.174.114-.246-.115-.383-.284-.375-.553.02-.677.085-1.348.24-2.011a9 9 0 0 1 1.33-3.027c.132-.197.284-.38.425-.57.035-.046.09-.084.085-.153.006 0 .015.003.017 0q.529-.57 1.1-1.099c.003-.003 0-.012 0-.018.225-.1.394-.28.591-.42A9.2 9.2 0 0 1 7.36 1.57c.883-.292 1.789-.421 2.714-.444.287-.007.459.123.566.377.06.14.035.179-.115.177-.366-.003-.733-.018-1.096.035a5.75 5.75 0 0 0-3.137 1.515c-.192.178-.363.376-.551.557-.111.106-.095.18.004.278.29.288.574.584.868.868.104.1.107.169-.007.253a.34.34 0 0 0-.134.162"})),l||(l=a.createElement("path",{fill:"#EBA300",d:"M4.338 3.21q.002.012-.001.018-.571.529-1.1 1.099c-.002.003-.011 0-.017 0q-.159-.155-.316-.313c-.12-.124-.121-.264-.009-.384q.362-.383.745-.745c.112-.105.253-.109.373 0 .114.102.217.216.325.326"})));export{n as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as s,useRef as r,useMemo as
|
|
1
|
+
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as s,useRef as r,useMemo as i,useEffect as n}from"react";import{useMediaQuery as a}from"../../../hooks/core/useMediaQuery.js";import{usePickaxeContext as l}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as d}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as c}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as m}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as u}from"../../../hooks/pickaxe/useConversation.js";import{useSubmit as p}from"../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as f}from"../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as h}from"../Addons/Document/hooks/useDocument.js";import{useScroll as g}from"../Addons/Scroll/hooks/useScroll.js";import{allowedFileMimeTypes as v,allowedImageMimeTypes as x}from"../../../common/documents.js";import{streamer as b}from"../../../common/api/streamer.js";import y from"../../../node_modules/.pnpm/react-textarea-autosize@8.5.7_@types_react@18.3.18_react@18.3.1/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js";import j from"../../Icons/attach.svg.js";import k from"../../Icons/send.svg.js";import I from"../common/PickaxeBranding.js";import w from"../Addons/IceBreaker/index.js";import D from"../../../common/error.js";import N from"../../../common/cn.js";const O=()=>{var O;const{formId:S,chatId:A,userId:C,studioUserId:E,pickaxe:_,colors:U,misc:B,responsiveBy:R,isNewChat:z,forceMobile:L,setIsNewChat:M,setIsShowIceBreaker:F,onGenerateComplete:P}=l(),{messages:T,status:W,limits:K,setMessages:G,setStatus:H,setLimitData:Q,setError:V}=d(),{documents:q,isUploading:J,isImageUploadAllowed:X,upsertDocuments:Y,onFileUpload:Z,onEditDocumentByDocId:$}=h(),{isScrollIncreasing:ee,scrollToBottom:oe,scrollStart:te,scrollEnd:se}=g(),re=u(),ie=p(),ne=f(),[ae,le]=s(""),de=r(null),[ce]=a("(max-width: 767px)"),me=c(),ue=m({type:"body"}),pe=i((()=>{var e,o,t;return!!z&&(!!_&&(!re.isLoading&&(!((null!==(o=null===(e=re.data)||void 0===e?void 0:e.messages.length)&&void 0!==o?o:0)>1)&&!!(null===(t=_.icebreakers)||void 0===t?void 0:t.length))))}),[_,z,re.data,re.isLoading]);n((()=>{F(pe)}),[pe]);const fe=o=>e(void 0,void 0,void 0,(function*(){try{if(J)return;Q(null),V(""),M(!1);const e=null!=o?o:ae;if(!e||"fetching"===W||"streaming"===W)return;const t=new Date;le("");const s="enduserupload"===(null==_?void 0:_.documentuploadtype),r=q.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";H("fetching");const n=[...T,{id:T.length+1,role:"user",content:e}];G(n),te(),oe();const{success:a,data:l,usedDocumentIds:d,newDocumentId:c,newDocumentName:m,isInsertedFile:u,error:p}=yield ie.mutateAsync(Object.assign(Object.assign({formId:S,responseId:A,value:e},s&&i&&{documentId:i}),E&&{studioUserId:E}));if(!a)throw new Error(null!=p?p:"An error occurred, please try again.");u&&i&&$({documentId:i,isInsertedAsRaw:!0}),c&&m&&Y([{type:"website",id:m,name:m,status:"finished",documentId:c}]),oe();const f=(yield b({formId:S,responseId:A,data:l})).body;if(!f)throw new Error("Streaming error");const h=f.getReader(),g=new TextDecoder,v=n.length;let x="",y=!0;for(H("streaming");y;){const{value:e,done:o}=yield h.read();y=!o;if(x+=g.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",x),x)G([...n.slice(0,v),{id:T.length+1,role:"assistant",content:x}]),ee&&oe();else if(!y&&!x)throw new Error("Server error")}const j=new Date;x&&(oe(),H("idle"),yield ne.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:S,responseId:A,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:x,sentAt:j}]})),null==P||P(A))}catch(e){let o=D(e)||"";o&&!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?Q(t[1]):V(o),oe()}finally{H("idle"),se()}}));return o("div",Object.assign({className:N("fixed flex w-full flex-col bottom-0 left-0","viewport"===R?"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:[!B.isWhiteLabel&&t("div",Object.assign({className:"flex justify-end pr-3"},{children:t(I,{animateHover:!0})})),pe&&t(w,{data:(null==_?void 0:_.icebreakers)||[],style:{backgroundColor:U.secondary,color:U.secondaryText},isMobile:L||ce,onSend:fe}),o("div",Object.assign({style:me,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:de,type:"file",accept:[...v,...X?x:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:o=>e(void 0,void 0,void 0,(function*(){yield Z(Array.from(o.target.files||[])),o.target.value=""}))}),t("button",Object.assign({className:"flex items-center disabled:cursor-wait disabled:opacity-50",disabled:J,onClick:()=>{var e;return null===(e=de.current)||void 0===e?void 0:e.click()}},{children:t(j,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:U.accent}})}))]})),t(y,{className:N(ue("max-h-60 w-full resize-none border-transparent bg-transparent outline-none ring-0 scrollbar scrollbar-thin placeholder:font-semilight"),!ae.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:ae,placeholder:null!==(O=null==_?void 0:_.placeholdertext)&&void 0!==O?O:"What do you want to talk about?",onChange:e=>le(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),fe())}}),t("button",Object.assign({className:"outline-none disabled:cursor-default disabled:opacity-50",disabled:"idle"!==W||J,onClick:()=>fe()},{children:t(k,{className:"h-6 w-6 shrink-0 stroke-2",style:{color:U.accent}})}))]}))]}))};export{O as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{usePickaxeContext as i}from"../../../hooks/pickaxe/usePickaxeContext.js";import{generateId as o}from"../../../common/utils.js";import s from"../common/PickaxeButton.js";import r from"../common/PickaxeBranding.js";import a from"../../../common/cn.js";const c=()=>{const{misc:c,responsiveBy:m,isShowHistory:n,setChatId:x,setIsNewChat:p,setIsShowHistory:l}=i();return e("div",Object.assign({className:a("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===m?"min-[767px]:flex-row":"@[767px]/pickaxe-root:flex-row")},{children:[e("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[t(s,Object.assign({className:a("w-full","viewport"===m?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>{return e=o(20),p(!0),void x(e);var e}},{children:"New chat"})),!n&&t(s,Object.assign({variant:"transparent-text",className:a("w-full","viewport"===m?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>l(!0)},{children:"See history"}))]})),!c.isWhiteLabel&&t("div",Object.assign({className:"flex justify-end pr-3"},{children:t(r,{})}))]}))};export{c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as s}from"react";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as r}from"../../../../hooks/pickaxe/useResponseContext.js";import{useSubmit as n}from"../../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as
|
|
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 l}from"../../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as a}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as d}from"../../Addons/Scroll/hooks/useScroll.js";import{streamer as c}from"../../../../common/api/streamer.js";import{extractUrlsFromText as m}from"../../../../common/utils.js";import{encode as u}from"@nem035/gpt-3-encoder";import p from"../../common/PickaxeBranding.js";import f from"../../common/PickaxeButton.js";import g from"../../../../common/error.js";import x from"../../../../common/cn.js";const h=({questions:h})=>{const{formId:w,userId:j,studioUserId:b,pickaxe:v,misc:k,responsiveBy:y,isShowHistory:I,setIsShowHistory:O,onGenerateComplete:S}=i(),{status:q,limits:E,setResponse:D,setStatus:P,setLimitData:R,setError:U}=r(),{documents:C,websiteLink:A,isUploading:N,onWebsiteUpload:L,setDocumentError:B}=a(),{isScrollIncreasing:T,scrollToContainer:W,scrollToBottom:_,scrollStart:H,scrollEnd:G}=d(),K=n(),M=l(),[V,Y]=s(!1);return o("div",Object.assign({className:x("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===y?"min-[767px]:flex-row":"@[767px]/pickaxe-root:flex-row")},{children:[o("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[t(f,Object.assign({className:x("w-full","viewport"===y?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:N||V||"fetching"===q||"streaming"===q,onClick:()=>e(void 0,void 0,void 0,(function*(){var e;try{if(N||V||"fetching"===q||"streaming"===q)return;R(null),B("");const o="enduserupload"===(null==v?void 0:v.documentuploadtype),t=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),s=C.filter((e=>"finished"===e.status)),i=m(A),r=C.map((e=>e.name)),n=i.filter((e=>!r.includes(e)));if(n.length){const e=n[n.length-1],o=yield L(e);o&&(s.push(o),Y(!0),yield new Promise((e=>setTimeout(e,5e3))),Y(!1))}else if(t&&o&&!s.length)return void B("Please paste a valid website/video link or drag a file to add to the knowledge base.");U("");const l=["Multiple Choice","Checkbox"];for(const e of h){if(u(e.input).length>e.maxLength&&!l.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 d={};h.forEach((e=>d=Object.assign(Object.assign({},d),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==a?void 0:a.name)||"":e.input}))),P("fetching");const{success:p,responseId:f,data:g,usedDocumentIds:x,rawUserInput:k,error:y}=yield K.mutateAsync(Object.assign(Object.assign({formId:w,valueObj:d},o&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}),b&&{studioUserId:b}));if(!p)throw new Error(null!=y?y:"An error occurred, please try again.");H();const I=(yield c({formId:w,responseId:f,data:g})).body;if(!I)throw new Error("Streaming error");const O=I.getReader(),E=new TextDecoder;let W="",G=!0;D(null);const z=h.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;G;){const{value:e,done:o}=yield O.read();G=!o;if(W+=E.decode(e),"development"===process.env.NODE_ENV&&console.log("[streamingResult]",W),W)P("streaming"),D({formId:w,responseId:f,documentIds:x,messages:[],questions:z,questionPrompt:k,questionResponse:W,createdAt:new Date}),T&&_();else if(!G&&!W)throw new Error("Server error")}W&&(_(),P("idle"),yield M.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign({formId:w,responseId:f,documentIds:x},j&&{userId:j}),b&&{studioUserId:b}),b&&(null==v?void 0:v.studioid)&&{studioId:v.studioid}),{questions:z,questionPrompt:k,questionResponse:W})),null==S||S(f))}catch(e){let o=g(e)||"";o&&!o.includes("Unexpected token 'A',")||(o="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(E).find((([e])=>o.includes(e)));t?R(t[1]):U(o),Y(!1),W()}finally{P("idle"),G()}}))},{children:V?"Processing...":N?"Uploading...":"fetching"===q||"streaming"===q?"Loading...":"Submit"})),!I&&t(f,Object.assign({variant:"transparent-text",className:x("w-full","viewport"===y?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>O(!0)},{children:"See history"}))]})),!k.isWhiteLabel&&t("div",Object.assign({className:"flex justify-end pr-3"},{children:t(p,{})}))]}))};export{h as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{createContext as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{createContext as s,useState as o,useEffect as t}from"react";import r from"./Addons/Document/Provider.js";import i from"./ResponseProvider.js";const n=s({}),c=({children:s,userId:c="",studioUserId:a="",styles:d,colors:l,limits:m={},misc:F,responsiveBy:h="viewport",loadFont:I=!0,forceMobile:p=!1,onGenerateComplete:f})=>{const[u,y]=o(""),[b,g]=o(""),[j,v]=o(null),[x,w]=o(null!=F?F:{isWhiteLabel:!0,isProfileImage:!0,isChatImage:!0,isDescription:!0}),[S,C]=o(!1),[P,k]=o(!0),[O,B]=o(!0),[D,H]=o(!1);return t((()=>{C(!1)}),[null==d?void 0:d.font]),e(n.Provider,Object.assign({value:Object.assign({formId:u,chatId:b,userId:c,studioUserId:a,pickaxe:j,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},d),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},l),misc:x,responsiveBy:h,isFontLoaded:S,isNewChat:P,isShowIceBreaker:O,isShowHistory:D,loadFont:I,forceMobile:p,setIsFontLoaded:C,setFormId:y,setChatId:g,setPickaxe:v,setMisc:w,setIsNewChat:k,setIsShowIceBreaker:B,setIsShowHistory:H},f&&{onGenerateComplete:f})},{children:e(i,Object.assign({limits:m},{children:e(r,{children:s})}))}))};export{n as PickaxeContext,c as PickaxeProvider};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{usePickaxeContext as a}from"../../../hooks/pickaxe/usePickaxeContext.js";import{motion as o}from"framer-motion";import i from"../../Icons/pickaxe.svg.js";import r from"../../../common/cn.js";const t=({className:t,animateHover:c=!0})=>{const{misc:n}=a();return n.isWhiteLabel?null:e(o.a,Object.assign({href:`https://${process.env.NEXT_PUBLIC_PICKAXE_DOMAIN}`,className:r("flex items-center gap-2 select-none overflow-hidden px-2 py-1 rounded",t)},c&&{initial:{scale:1},whileHover:{scale:1.05},whileTap:{scale:.95}},{children:[s(i,{className:"h-3.5 w-3.5 shrink-0"}),s("span",Object.assign({className:"text-xs opacity-50"},{children:"Powered by Pickaxe"}))]}))};export{t as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useMemo as r}from"react";import{usePickaxeContext as t}from"../pickaxe/usePickaxeContext.js";const o=({variant:o="primary"})=>{const{styles:e,colors:n}=t();return r((()=>Object.assign(Object.assign(Object.assign({},"primary"===o&&Object.assign(Object.assign(Object.assign({borderWidth:`${e.outlineThickness}px`},"filled"===e.btnStyle&&{borderColor:n.accent,backgroundColor:n.accent,color:n.accentText}),"outlined"===e.btnStyle&&{color:n.accent,backgroundColor:"transparent",borderColor:n.accent}),"transparent"===e.btnStyle&&{color:n.accent,backgroundColor:"transparent",borderColor:"transparent"})),"secondary"===o&&{backgroundColor:"transparent",color:n.accent}),"transparent-text"===o&&{color:n.accent})),[e,n,o])};export{o as useStyleButton};
|
|
1
|
+
import{useMemo as r}from"react";import{usePickaxeContext as t}from"../pickaxe/usePickaxeContext.js";const o=({variant:o="primary"})=>{const{styles:e,colors:n}=t();return r((()=>Object.assign(Object.assign(Object.assign({borderRadius:`${e.cornerRadius}px`},"primary"===o&&Object.assign(Object.assign(Object.assign({borderWidth:`${e.outlineThickness}px`},"filled"===e.btnStyle&&{borderColor:n.accent,backgroundColor:n.accent,color:n.accentText}),"outlined"===e.btnStyle&&{color:n.accent,backgroundColor:"transparent",borderColor:n.accent}),"transparent"===e.btnStyle&&{color:n.accent,backgroundColor:"transparent",borderColor:"transparent"})),"secondary"===o&&{backgroundColor:"transparent",color:n.accent}),"transparent-text"===o&&{color:n.accent})),[e,n,o])};export{o as useStyleButton};
|
|
@@ -22,6 +22,12 @@ export type PickaxeProviderColors = {
|
|
|
22
22
|
error: string;
|
|
23
23
|
};
|
|
24
24
|
export type PickaxeResponsiveBy = "viewport" | "container";
|
|
25
|
+
export type PickaxeMisc = {
|
|
26
|
+
isWhiteLabel: boolean;
|
|
27
|
+
isProfileImage: boolean;
|
|
28
|
+
isChatImage: boolean;
|
|
29
|
+
isDescription: boolean;
|
|
30
|
+
};
|
|
25
31
|
type PickaxeContextType = {
|
|
26
32
|
formId: string;
|
|
27
33
|
chatId: string;
|
|
@@ -30,6 +36,7 @@ type PickaxeContextType = {
|
|
|
30
36
|
pickaxe: Pickaxe | null;
|
|
31
37
|
styles: PickaxeProviderStyles;
|
|
32
38
|
colors: PickaxeProviderColors;
|
|
39
|
+
misc: PickaxeMisc;
|
|
33
40
|
responsiveBy: PickaxeResponsiveBy;
|
|
34
41
|
isFontLoaded: boolean;
|
|
35
42
|
isNewChat: boolean;
|
|
@@ -40,6 +47,7 @@ type PickaxeContextType = {
|
|
|
40
47
|
setFormId: SetState<string>;
|
|
41
48
|
setChatId: SetState<string>;
|
|
42
49
|
setPickaxe: SetState<Pickaxe | null>;
|
|
50
|
+
setMisc: SetState<PickaxeMisc>;
|
|
43
51
|
setIsFontLoaded: SetState<boolean>;
|
|
44
52
|
setIsNewChat: SetState<boolean>;
|
|
45
53
|
setIsShowIceBreaker: SetState<boolean>;
|
|
@@ -52,12 +60,13 @@ export interface IPickaxeProviderProps {
|
|
|
52
60
|
studioUserId?: string;
|
|
53
61
|
styles?: Partial<PickaxeProviderStyles>;
|
|
54
62
|
colors?: Partial<PickaxeProviderColors>;
|
|
55
|
-
responsiveBy?: PickaxeResponsiveBy;
|
|
56
63
|
limits?: Record<string, PickaxeLimitData>;
|
|
64
|
+
misc?: PickaxeMisc;
|
|
65
|
+
responsiveBy?: PickaxeResponsiveBy;
|
|
57
66
|
loadFont?: boolean;
|
|
58
67
|
forceMobile?: boolean;
|
|
59
68
|
onGenerateComplete?: (responseId: string) => void;
|
|
60
69
|
}
|
|
61
70
|
export declare const PickaxeContext: import("react").Context<PickaxeContextType>;
|
|
62
|
-
export declare const PickaxeProvider: ({ children, userId, studioUserId, styles, colors,
|
|
71
|
+
export declare const PickaxeProvider: ({ children, userId, studioUserId, styles, colors, limits, misc: _misc, responsiveBy, loadFont, forceMobile, onGenerateComplete, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
63
72
|
export {};
|
|
@@ -6,6 +6,7 @@ export declare const usePickaxeContext: () => {
|
|
|
6
6
|
pickaxe: import("../../types/pickaxe").Pickaxe | null;
|
|
7
7
|
styles: import("../../components/Pickaxe/Provider").PickaxeProviderStyles;
|
|
8
8
|
colors: import("../../components/Pickaxe/Provider").PickaxeProviderColors;
|
|
9
|
+
misc: import("../../components/Pickaxe/Provider").PickaxeMisc;
|
|
9
10
|
responsiveBy: import("../../components/Pickaxe/Provider").PickaxeResponsiveBy;
|
|
10
11
|
isFontLoaded: boolean;
|
|
11
12
|
isNewChat: boolean;
|
|
@@ -16,6 +17,7 @@ export declare const usePickaxeContext: () => {
|
|
|
16
17
|
setFormId: import("../../types/common").SetState<string>;
|
|
17
18
|
setChatId: import("../../types/common").SetState<string>;
|
|
18
19
|
setPickaxe: import("../../types/common").SetState<import("../../types/pickaxe").Pickaxe | null>;
|
|
20
|
+
setMisc: import("../../types/common").SetState<import("../../components/Pickaxe/Provider").PickaxeMisc>;
|
|
19
21
|
setIsFontLoaded: import("../../types/common").SetState<boolean>;
|
|
20
22
|
setIsNewChat: import("../../types/common").SetState<boolean>;
|
|
21
23
|
setIsShowIceBreaker: import("../../types/common").SetState<boolean>;
|