@pickaxeproject/react 1.0.10 → 1.0.12

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("../../../hooks/pickaxe/usePickaxeContext.js"),s=require("../Addons/Scroll/hooks/useScrollContext.js"),t=require("../Addons/Document/hooks/useDocument.js"),o=require("react"),l=require("../../Core/ScrollArea.js"),i=require("./History/index.js"),c=require("./Input.js"),x=require("../../../common/cn.js");exports.default=()=>{const{isShowIceBreaker:a,responsiveBy:u}=r.usePickaxeContext(),{scrollContainerRef:n}=s.useScrollContext(),{upsertDocuments:p}=t.useDocument();return o.useEffect((()=>()=>{p([])}),[]),e.jsx("div",Object.assign({className:"relative flex flex-grow flex-col items-center"},{children:e.jsxs("div",Object.assign({className:"relative flex w-full max-w-[800px] flex-grow flex-col"},{children:[e.jsx("div",Object.assign({className:x.default("flex w-full flex-grow flex-col pb-[6rem]","viewport"===u?"min-[767px]:pb-[7.5rem]":"@[767px]/pickaxe-root:pb-[7.5rem]",a&&"pb-[310px]",a&&("viewport"===u?"min-[767px]:pb-[330px]":"@[767px]/pickaxe-root:pb-[330px]"))},{children:e.jsx(l.default,Object.assign({ref:n,hideScrollbar:!0},{children:e.jsx(i.default,{})}))})),e.jsx("div",Object.assign({className:x.default("absolute bottom-0 flex w-full justify-center","viewport"===u?"min-[767px]:mt-4 min-[767px]:mb-6":"@[767px]/pickaxe-root:mt-4 @[767px]/pickaxe-root:mb-6")},{children:e.jsx(c.default,{})}))]}))}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("../../../hooks/pickaxe/usePickaxeContext.js"),s=require("../Addons/Scroll/hooks/useScrollContext.js"),t=require("../Addons/Document/hooks/useDocument.js"),o=require("react"),l=require("../../Core/ScrollArea.js"),i=require("./History/index.js"),c=require("./Input.js"),x=require("../../../common/cn.js");exports.default=()=>{const{isShowIceBreaker:a,responsiveBy:u}=r.usePickaxeContext(),{scrollContainerRef:n}=s.useScrollContext(),{upsertDocuments:p}=t.useDocument();return o.useEffect((()=>()=>{p([])}),[]),e.jsx("div",Object.assign({className:"relative flex flex-grow flex-col items-center"},{children:e.jsxs("div",Object.assign({className:"relative flex w-full max-w-[800px] flex-grow flex-col"},{children:[e.jsx("div",Object.assign({className:x.default("flex w-full flex-grow flex-col pb-[6rem]","viewport"===u?"min-[767px]:pb-[7.5rem]":"@[767px]/pickaxe-root:pb-[7.5rem]",a&&"pb-[310px]",a&&("viewport"===u?"min-[767px]:pb-[310px]":"@[767px]/pickaxe-root:pb-[310px]"))},{children:e.jsx(l.default,Object.assign({ref:n,hideScrollbar:!0},{children:e.jsx(i.default,{})}))})),e.jsx("div",Object.assign({className:x.default("absolute bottom-0 flex w-full justify-center","viewport"===u?"min-[767px]:mt-4 min-[767px]:mb-6":"@[767px]/pickaxe-root:mt-4 @[767px]/pickaxe-root:mb-6")},{children:e.jsx(c.default,{})}))]}))}))};
@@ -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/pickaxe/useResponseContext.js"),i=require("../../../common/utils.js"),a=require("../common/PickaxeButton.js"),r=require("../common/PickaxeBranding.js"),o=require("../../../common/cn.js");exports.default=()=>{const{misc:x,responsiveBy:n,isShowHistory:c,setChatId:l,setIsNewChat:p,setIsShowHistory:u}=s.usePickaxeContext(),{setMessages:m}=t.useResponseContext();return e.jsxs("div",Object.assign({className:o.default("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===n?"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(a.default,Object.assign({className:o.default("w-full","viewport"===n?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>{return e=i.generateId(20),m([]),l(e),void p(!0);var e}},{children:"New chat"})),!c&&e.jsx(a.default,Object.assign({variant:"transparent-text",className:o.default("w-full","viewport"===n?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>u(!0)},{children:"See history"}))]})),!x.isWhiteLabel&&e.jsx("div",Object.assign({className:"flex justify-end pr-3"},{children:e.jsx(r.default,{})}))]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../../hooks/pickaxe/usePickaxeContext.js"),t=require("../../../hooks/pickaxe/useResponseContext.js"),i=require("../../../common/utils.js"),r=require("../common/PickaxeButton.js"),a=require("../common/PickaxeBranding.js"),o=require("../../../common/cn.js");exports.default=()=>{const{misc:x,responsiveBy:n,isShowHistory:c,setChatId:l,setIsNewChat:p,setIsShowHistory:u}=s.usePickaxeContext(),{setMessages:m}=t.useResponseContext();return e.jsxs("div",Object.assign({className:o.default("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===n?"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(r.default,Object.assign({className:o.default("w-full","viewport"===n?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>{return e=i.generateId(20),m([]),l(e),void p(!0);var e}},{children:"New chat"})),x.isHistory&&!c&&e.jsx(r.default,Object.assign({variant:"transparent-text",className:o.default("w-full","viewport"===n?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>u(!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"),i=require("../../../../hooks/pickaxe/useResponseContext.js"),r=require("../../../../hooks/pickaxe/useSubmit.js"),n=require("../../../../hooks/pickaxe/useSubmitResult.js"),a=require("../../Addons/Document/hooks/useDocument.js"),l=require("../../Addons/Scroll/hooks/useScroll.js"),u=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"),x=require("../../../../common/error.js"),f=require("../../../../common/cn.js");exports.default=({questions:g})=>{var j;const{formId:h,userId:w,studioUserId:b,deploymentId:v,pickaxe:q,misc:y,responsiveBy:I,isShowHistory:k,setIsShowHistory:O,onGenerateComplete:S}=o.usePickaxeContext(),{status:D,limits:P,setResponse:R,setStatus:U,setLimitData:C,setError:E,setIsGenerating:A}=i.useResponseContext(),{documents:T,websiteLink:_,isUploading:L,onWebsiteUpload:N,setDocumentError:B}=a.useDocument(),{scrollStartSession:W,scrollEndSession:G,scrollToTarget:H,scrollToBottom:M}=l.useScroll({auto:!0}),F=r.useSubmit(),K=n.useSubmitResult(),[Y,z]=t.useState(!1);return s.jsxs("div",Object.assign({className:f.default("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===I?"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:f.default("w-full","viewport"===I?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:L||Y||"idle"!==D,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(L||Y||"idle"!==D)return;C(null),B(""),A(!0);const s="enduserupload"===(null==q?void 0:q.documentuploadtype),t=g.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),o=T.filter((e=>"finished"===e.status)),i=d.extractUrlsFromText(_),r=T.map((e=>e.name)),n=i.filter((e=>!r.includes(e)));if(n.length){const e=n[n.length-1];z(!0);const s=yield N(e);s&&(o.push(s),yield new Promise((e=>setTimeout(e,5e3)))),z(!1)}else if(t&&s&&!o.length)return void B("Please paste a valid website/video link or drag a file to add to the knowledge base.");E("");const a=["Multiple Choice","Checkbox"];for(const e of g){if(c.encode(e.input).length>e.maxLength&&!a.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const l=o.length?o[o.length-1]:null;let m={};g.forEach((e=>m=Object.assign(Object.assign({},m),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==l?void 0:l.name)||"":e.input}))),U("fetching");const{success:p,responseId:x,data:f,actionData:j,usedDocumentIds:y,rawUserInput:I,error:k}=yield F.mutateAsync(Object.assign(Object.assign(Object.assign({formId:h,valueObj:m},s&&l&&{documentId:null!==(e=l.documentId)&&void 0!==e?e:""}),b&&{studioUserId:b}),v&&{deploymentId:v}));if(!p)throw new Error(null!=k?k:"An error occurred, please try again.");const O=(yield u.streamer({formId:h,responseId:x,data:f,actionData:j})).body;if(!O)throw new Error("Streaming error");const P=O.getReader(),G=new TextDecoder;let H="",J=!0,Q=!1;R(null);const V=g.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;J;){const{value:e,done:s}=yield P.read();J=!s;const t=G.decode(e);if(H&&!Q&&(W(),M(),Q=!0),H+=t,H)U("streaming"),R({formId:h,responseId:x,documentIds:y,messages:[],questions:V,questionPrompt:I,questionResponse:H,createdAt:new Date});else if(!J&&!H)throw new Error("Server error")}H&&(M(),U("idle"),yield K.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:h,responseId:x,documentIds:y},w&&{userId:w}),b&&{studioUserId:b}),b&&(null==q?void 0:q.studioid)&&{studioId:q.studioid}),v&&{deploymentId:v}),{questions:V,questionPrompt:I,questionResponse:H})),null==S||S(x))}catch(e){let s=x.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(P).find((([e])=>s.includes(e)));t?C(t[1]):E(s),H(),M()}finally{U("idle"),A(!1),z(!1),G()}}))},{children:Y?"Processing...":L?"Uploading...":"fetching"===D||"streaming"===D?"Loading...":null!==(j=null==q?void 0:q.submittext)&&void 0!==j?j:"Submit"})),!k&&s.jsx(p.default,Object.assign({variant:"transparent-text",className:f.default("w-full","viewport"===I?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>O(!0)},{children:"See history"}))]})),!y.isWhiteLabel&&s.jsx("div",Object.assign({className:"flex justify-end pr-3"},{children:s.jsx(m.default,{})}))]}))};
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"),a=require("../../Addons/Document/hooks/useDocument.js"),l=require("../../Addons/Scroll/hooks/useScroll.js"),u=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"),x=require("../../../../common/error.js"),f=require("../../../../common/cn.js");exports.default=({questions:g})=>{var j;const{formId:h,userId:w,studioUserId:b,deploymentId:v,pickaxe:y,misc:q,responsiveBy:I,isShowHistory:k,setIsShowHistory:O,onGenerateComplete:S}=o.usePickaxeContext(),{status:D,limits:P,setResponse:R,setStatus:U,setLimitData:C,setError:E,setIsGenerating:A}=i.useResponseContext(),{documents:T,websiteLink:_,isUploading:L,onWebsiteUpload:N,setDocumentError:B}=a.useDocument(),{scrollStartSession:H,scrollEndSession:W,scrollToTarget:G,scrollToBottom:M}=l.useScroll({auto:!0}),F=r.useSubmit(),K=n.useSubmitResult(),[Y,z]=t.useState(!1);return s.jsxs("div",Object.assign({className:f.default("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===I?"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:f.default("w-full","viewport"===I?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:L||Y||"idle"!==D,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(L||Y||"idle"!==D)return;C(null),B(""),A(!0);const s="enduserupload"===(null==y?void 0:y.documentuploadtype),t=g.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),o=T.filter((e=>"finished"===e.status)),i=d.extractUrlsFromText(_),r=T.map((e=>e.name)),n=i.filter((e=>!r.includes(e)));if(n.length){const e=n[n.length-1];z(!0);const s=yield N(e);s&&(o.push(s),yield new Promise((e=>setTimeout(e,5e3)))),z(!1)}else if(t&&s&&!o.length)return void B("Please paste a valid website/video link or drag a file to add to the knowledge base.");E("");const a=["Multiple Choice","Checkbox"];for(const e of g){if(c.encode(e.input).length>e.maxLength&&!a.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const l=o.length?o[o.length-1]:null;let m={};g.forEach((e=>m=Object.assign(Object.assign({},m),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==l?void 0:l.name)||"":e.input}))),U("fetching");const{success:p,responseId:x,data:f,actionData:j,usedDocumentIds:q,rawUserInput:I,error:k}=yield F.mutateAsync(Object.assign(Object.assign(Object.assign({formId:h,valueObj:m},s&&l&&{documentId:null!==(e=l.documentId)&&void 0!==e?e:""}),b&&{studioUserId:b}),v&&{deploymentId:v}));if(!p)throw new Error(null!=k?k:"An error occurred, please try again.");const O=(yield u.streamer({formId:h,responseId:x,data:f,actionData:j})).body;if(!O)throw new Error("Streaming error");const P=O.getReader(),W=new TextDecoder;let G="",J=!0,Q=!1;R(null);const V=g.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;J;){const{value:e,done:s}=yield P.read();J=!s;const t=W.decode(e);if(G&&!Q&&(H(),M(),Q=!0),G+=t,G)U("streaming"),R({formId:h,responseId:x,documentIds:q,messages:[],questions:V,questionPrompt:I,questionResponse:G,createdAt:new Date});else if(!J&&!G)throw new Error("Server error")}G&&(M(),U("idle"),yield K.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:h,responseId:x,documentIds:q},w&&{userId:w}),b&&{studioUserId:b}),b&&(null==y?void 0:y.studioid)&&{studioId:y.studioid}),v&&{deploymentId:v}),{questions:V,questionPrompt:I,questionResponse:G})),null==S||S(x))}catch(e){let s=x.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(P).find((([e])=>s.includes(e)));t?C(t[1]):E(s),G(),M()}finally{U("idle"),A(!1),z(!1),W()}}))},{children:Y?"Processing...":L?"Uploading...":"fetching"===D||"streaming"===D?"Loading...":null!==(j=null==y?void 0:y.submittext)&&void 0!==j?j:"Submit"})),q.isHistory&&!k&&s.jsx(p.default,Object.assign({variant:"transparent-text",className:f.default("w-full","viewport"===I?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>O(!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"),i=require("./DimensionProvider.js");const o=t.createContext({});exports.PickaxeContext=o,exports.PickaxeProvider=({children:a,userId:n="",studioUserId:d="",deploymentId:c="",styles:l,colors:u,limits:F={},misc:m={isWhiteLabel:!0,isProfileImage:!0,isChatImage:!0,isTitle:!0,isDescription:!0},responsiveBy:h="viewport",loadFont:x=!0,forceMobile:I=!1,onGenerateComplete:f})=>{const[p,j]=t.useState(""),[y,S]=t.useState(""),[v,b]=t.useState(null),[P,g]=t.useState(!1),[C,k]=t.useState(!0),[w,O]=t.useState(!0),[q,D]=t.useState(!1);return t.useEffect((()=>{g(!1)}),[null==l?void 0:l.font]),e.jsx(o.Provider,Object.assign({value:Object.assign({formId:p,chatId:y,userId:n,studioUserId:d,deploymentId:c,pickaxe:v,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},l),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},u),misc:m,responsiveBy:h,isFontLoaded:P,isNewChat:C,isShowIceBreaker:w,isShowHistory:q,loadFont:x,forceMobile:I,setIsFontLoaded:g,setFormId:j,setChatId:S,setPickaxe:b,setIsNewChat:k,setIsShowIceBreaker:O,setIsShowHistory:D},f&&{onGenerateComplete:f})},{children:e.jsx(r.default,Object.assign({limits:F},{children:e.jsx(i.default,{children:e.jsx(s.default,{children:a})})}))}))};
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"),i=require("./DimensionProvider.js");const o=t.createContext({});exports.PickaxeContext=o,exports.PickaxeProvider=({children:a,userId:n="",studioUserId:d="",deploymentId:c="",styles:l,colors:u,limits:F={},misc:m={isWhiteLabel:!0,isProfileImage:!0,isChatImage:!0,isTitle:!0,isDescription:!0,isHistory:!0},responsiveBy:h="viewport",loadFont:x=!0,forceMobile:I=!1,onGenerateComplete:f})=>{const[p,y]=t.useState(""),[j,S]=t.useState(""),[v,b]=t.useState(null),[P,g]=t.useState(!1),[C,k]=t.useState(!0),[w,O]=t.useState(!0),[q,D]=t.useState(!1);return t.useEffect((()=>{g(!1)}),[null==l?void 0:l.font]),e.jsx(o.Provider,Object.assign({value:Object.assign({formId:p,chatId:j,userId:n,studioUserId:d,deploymentId:c,pickaxe:v,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},l),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},u),misc:m,responsiveBy:h,isFontLoaded:P,isNewChat:C,isShowIceBreaker:w,isShowHistory:q,loadFont:x,forceMobile:I,setIsFontLoaded:g,setFormId:y,setChatId:S,setPickaxe:b,setIsNewChat:k,setIsShowIceBreaker:O,setIsShowHistory:D},f&&{onGenerateComplete:f})},{children:e.jsx(r.default,Object.assign({limits:F},{children:e.jsx(i.default,{children:e.jsx(s.default,{children:a})})}))}))};
@@ -28,6 +28,7 @@ export type PickaxeMisc = {
28
28
  isChatImage: boolean;
29
29
  isTitle: boolean;
30
30
  isDescription: boolean;
31
+ isHistory?: boolean;
31
32
  };
32
33
  type PickaxeContextType = {
33
34
  formId: string;
@@ -1 +1 @@
1
- import{jsx as e,jsxs as o}from"react/jsx-runtime";import{usePickaxeContext as r}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useScrollContext as t}from"../Addons/Scroll/hooks/useScrollContext.js";import{useDocument as i}from"../Addons/Document/hooks/useDocument.js";import{useEffect as s}from"react";import l from"../../Core/ScrollArea.js";import m from"./History/index.js";import c from"./Input.js";import p from"../../../common/cn.js";const n=()=>{const{isShowIceBreaker:n,responsiveBy:x}=r(),{scrollContainerRef:a}=t(),{upsertDocuments:f}=i();return s((()=>()=>{f([])}),[]),e("div",Object.assign({className:"relative flex flex-grow flex-col items-center"},{children:o("div",Object.assign({className:"relative flex w-full max-w-[800px] flex-grow flex-col"},{children:[e("div",Object.assign({className:p("flex w-full flex-grow flex-col pb-[6rem]","viewport"===x?"min-[767px]:pb-[7.5rem]":"@[767px]/pickaxe-root:pb-[7.5rem]",n&&"pb-[310px]",n&&("viewport"===x?"min-[767px]:pb-[330px]":"@[767px]/pickaxe-root:pb-[330px]"))},{children:e(l,Object.assign({ref:a,hideScrollbar:!0},{children:e(m,{})}))})),e("div",Object.assign({className:p("absolute bottom-0 flex w-full justify-center","viewport"===x?"min-[767px]:mt-4 min-[767px]:mb-6":"@[767px]/pickaxe-root:mt-4 @[767px]/pickaxe-root:mb-6")},{children:e(c,{})}))]}))}))};export{n as default};
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{usePickaxeContext as r}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useScrollContext as t}from"../Addons/Scroll/hooks/useScrollContext.js";import{useDocument as i}from"../Addons/Document/hooks/useDocument.js";import{useEffect as s}from"react";import l from"../../Core/ScrollArea.js";import m from"./History/index.js";import c from"./Input.js";import p from"../../../common/cn.js";const n=()=>{const{isShowIceBreaker:n,responsiveBy:x}=r(),{scrollContainerRef:a}=t(),{upsertDocuments:f}=i();return s((()=>()=>{f([])}),[]),e("div",Object.assign({className:"relative flex flex-grow flex-col items-center"},{children:o("div",Object.assign({className:"relative flex w-full max-w-[800px] flex-grow flex-col"},{children:[e("div",Object.assign({className:p("flex w-full flex-grow flex-col pb-[6rem]","viewport"===x?"min-[767px]:pb-[7.5rem]":"@[767px]/pickaxe-root:pb-[7.5rem]",n&&"pb-[310px]",n&&("viewport"===x?"min-[767px]:pb-[310px]":"@[767px]/pickaxe-root:pb-[310px]"))},{children:e(l,Object.assign({ref:a,hideScrollbar:!0},{children:e(m,{})}))})),e("div",Object.assign({className:p("absolute bottom-0 flex w-full justify-center","viewport"===x?"min-[767px]:mt-4 min-[767px]:mb-6":"@[767px]/pickaxe-root:mt-4 @[767px]/pickaxe-root:mb-6")},{children:e(c,{})}))]}))}))};export{n as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as s}from"react/jsx-runtime";import{usePickaxeContext as o}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as t}from"../../../hooks/pickaxe/useResponseContext.js";import{generateId as i}from"../../../common/utils.js";import r from"../common/PickaxeButton.js";import a from"../common/PickaxeBranding.js";import m from"../../../common/cn.js";const n=()=>{const{misc:n,responsiveBy:c,isShowHistory:x,setChatId:p,setIsNewChat:l,setIsShowHistory:f}=o(),{setMessages:w}=t();return e("div",Object.assign({className:m("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===c?"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:[s(r,Object.assign({className:m("w-full","viewport"===c?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>{return e=i(20),w([]),p(e),void l(!0);var e}},{children:"New chat"})),!x&&s(r,Object.assign({variant:"transparent-text",className:m("w-full","viewport"===c?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>f(!0)},{children:"See history"}))]})),!n.isWhiteLabel&&s("div",Object.assign({className:"flex justify-end pr-3"},{children:s(a,{})}))]}))};export{n as default};
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{usePickaxeContext as o}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as t}from"../../../hooks/pickaxe/useResponseContext.js";import{generateId as i}from"../../../common/utils.js";import r from"../common/PickaxeButton.js";import a from"../common/PickaxeBranding.js";import m from"../../../common/cn.js";const n=()=>{const{misc:n,responsiveBy:c,isShowHistory:x,setChatId:p,setIsNewChat:l,setIsShowHistory:f}=o(),{setMessages:w}=t();return e("div",Object.assign({className:m("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===c?"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:[s(r,Object.assign({className:m("w-full","viewport"===c?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>{return e=i(20),w([]),p(e),void l(!0);var e}},{children:"New chat"})),n.isHistory&&!x&&s(r,Object.assign({variant:"transparent-text",className:m("w-full","viewport"===c?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>f(!0)},{children:"See history"}))]})),!n.isWhiteLabel&&s("div",Object.assign({className:"flex justify-end pr-3"},{children:s(a,{})}))]}))};export{n as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as s}from"react";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as n}from"../../../../hooks/pickaxe/useResponseContext.js";import{useSubmit as r}from"../../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as a}from"../../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as l}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})=>{var w;const{formId:j,userId:b,studioUserId:v,deploymentId:y,pickaxe:I,misc:k,responsiveBy:O,isShowHistory:S,setIsShowHistory:q,onGenerateComplete:D}=i(),{status:E,limits:P,setResponse:U,setStatus:R,setLimitData:A,setError:C,setIsGenerating:L}=n(),{documents:N,websiteLink:T,isUploading:B,onWebsiteUpload:W,setDocumentError:G}=l(),{scrollStartSession:H,scrollEndSession:_,scrollToTarget:K,scrollToBottom:M}=d({auto:!0}),Y=r(),z=a(),[F,J]=s(!1);return o("div",Object.assign({className:x("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===O?"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"===O?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:B||F||"idle"!==E,onClick:()=>e(void 0,void 0,void 0,(function*(){var e;try{if(B||F||"idle"!==E)return;A(null),G(""),L(!0);const o="enduserupload"===(null==I?void 0:I.documentuploadtype),t=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),s=N.filter((e=>"finished"===e.status)),i=m(T),n=N.map((e=>e.name)),r=i.filter((e=>!n.includes(e)));if(r.length){const e=r[r.length-1];J(!0);const o=yield W(e);o&&(s.push(o),yield new Promise((e=>setTimeout(e,5e3)))),J(!1)}else if(t&&o&&!s.length)return void G("Please paste a valid website/video link or drag a file to add to the knowledge base.");C("");const a=["Multiple Choice","Checkbox"];for(const e of h){if(u(e.input).length>e.maxLength&&!a.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const l=s.length?s[s.length-1]:null;let d={};h.forEach((e=>d=Object.assign(Object.assign({},d),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==l?void 0:l.name)||"":e.input}))),R("fetching");const{success:p,responseId:f,data:g,actionData:x,usedDocumentIds:w,rawUserInput:k,error:O}=yield Y.mutateAsync(Object.assign(Object.assign(Object.assign({formId:j,valueObj:d},o&&l&&{documentId:null!==(e=l.documentId)&&void 0!==e?e:""}),v&&{studioUserId:v}),y&&{deploymentId:y}));if(!p)throw new Error(null!=O?O:"An error occurred, please try again.");const S=(yield c({formId:j,responseId:f,data:g,actionData:x})).body;if(!S)throw new Error("Streaming error");const q=S.getReader(),P=new TextDecoder;let _="",K=!0,Q=!1;U(null);const V=h.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;K;){const{value:e,done:o}=yield q.read();K=!o;const t=P.decode(e);if(_&&!Q&&(H(),M(),Q=!0),_+=t,_)R("streaming"),U({formId:j,responseId:f,documentIds:w,messages:[],questions:V,questionPrompt:k,questionResponse:_,createdAt:new Date});else if(!K&&!_)throw new Error("Server error")}_&&(M(),R("idle"),yield z.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:j,responseId:f,documentIds:w},b&&{userId:b}),v&&{studioUserId:v}),v&&(null==I?void 0:I.studioid)&&{studioId:I.studioid}),y&&{deploymentId:y}),{questions:V,questionPrompt:k,questionResponse:_})),null==D||D(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(P).find((([e])=>o.includes(e)));t?A(t[1]):C(o),K(),M()}finally{R("idle"),L(!1),J(!1),_()}}))},{children:F?"Processing...":B?"Uploading...":"fetching"===E||"streaming"===E?"Loading...":null!==(w=null==I?void 0:I.submittext)&&void 0!==w?w:"Submit"})),!S&&t(f,Object.assign({variant:"transparent-text",className:x("w-full","viewport"===O?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>q(!0)},{children:"See history"}))]})),!k.isWhiteLabel&&t("div",Object.assign({className:"flex justify-end pr-3"},{children:t(p,{})}))]}))};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 n}from"../../../../hooks/pickaxe/useResponseContext.js";import{useSubmit as r}from"../../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as a}from"../../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as l}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})=>{var w;const{formId:j,userId:b,studioUserId:y,deploymentId:v,pickaxe:I,misc:k,responsiveBy:O,isShowHistory:S,setIsShowHistory:q,onGenerateComplete:D}=i(),{status:E,limits:P,setResponse:U,setStatus:R,setLimitData:A,setError:C,setIsGenerating:L}=n(),{documents:N,websiteLink:T,isUploading:B,onWebsiteUpload:H,setDocumentError:W}=l(),{scrollStartSession:G,scrollEndSession:_,scrollToTarget:K,scrollToBottom:M}=d({auto:!0}),Y=r(),z=a(),[F,J]=s(!1);return o("div",Object.assign({className:x("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===O?"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"===O?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),isDisabled:B||F||"idle"!==E,onClick:()=>e(void 0,void 0,void 0,(function*(){var e;try{if(B||F||"idle"!==E)return;A(null),W(""),L(!0);const o="enduserupload"===(null==I?void 0:I.documentuploadtype),t=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),s=N.filter((e=>"finished"===e.status)),i=m(T),n=N.map((e=>e.name)),r=i.filter((e=>!n.includes(e)));if(r.length){const e=r[r.length-1];J(!0);const o=yield H(e);o&&(s.push(o),yield new Promise((e=>setTimeout(e,5e3)))),J(!1)}else if(t&&o&&!s.length)return void W("Please paste a valid website/video link or drag a file to add to the knowledge base.");C("");const a=["Multiple Choice","Checkbox"];for(const e of h){if(u(e.input).length>e.maxLength&&!a.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const l=s.length?s[s.length-1]:null;let d={};h.forEach((e=>d=Object.assign(Object.assign({},d),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==l?void 0:l.name)||"":e.input}))),R("fetching");const{success:p,responseId:f,data:g,actionData:x,usedDocumentIds:w,rawUserInput:k,error:O}=yield Y.mutateAsync(Object.assign(Object.assign(Object.assign({formId:j,valueObj:d},o&&l&&{documentId:null!==(e=l.documentId)&&void 0!==e?e:""}),y&&{studioUserId:y}),v&&{deploymentId:v}));if(!p)throw new Error(null!=O?O:"An error occurred, please try again.");const S=(yield c({formId:j,responseId:f,data:g,actionData:x})).body;if(!S)throw new Error("Streaming error");const q=S.getReader(),P=new TextDecoder;let _="",K=!0,Q=!1;U(null);const V=h.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;K;){const{value:e,done:o}=yield q.read();K=!o;const t=P.decode(e);if(_&&!Q&&(G(),M(),Q=!0),_+=t,_)R("streaming"),U({formId:j,responseId:f,documentIds:w,messages:[],questions:V,questionPrompt:k,questionResponse:_,createdAt:new Date});else if(!K&&!_)throw new Error("Server error")}_&&(M(),R("idle"),yield z.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:j,responseId:f,documentIds:w},b&&{userId:b}),y&&{studioUserId:y}),y&&(null==I?void 0:I.studioid)&&{studioId:I.studioid}),v&&{deploymentId:v}),{questions:V,questionPrompt:k,questionResponse:_})),null==D||D(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(P).find((([e])=>o.includes(e)));t?A(t[1]):C(o),K(),M()}finally{R("idle"),L(!1),J(!1),_()}}))},{children:F?"Processing...":B?"Uploading...":"fetching"===E||"streaming"===E?"Loading...":null!==(w=null==I?void 0:I.submittext)&&void 0!==w?w:"Submit"})),k.isHistory&&!S&&t(f,Object.assign({variant:"transparent-text",className:x("w-full","viewport"===O?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]"),onClick:()=>q(!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 o,useState as s,useEffect as t}from"react";import r from"./Addons/Document/Provider.js";import i from"./ResponseProvider.js";import n from"./DimensionProvider.js";const d=o({}),c=({children:o,userId:c="",studioUserId:l="",deploymentId:a="",styles:m,colors:F,limits:h={},misc:I={isWhiteLabel:!0,isProfileImage:!0,isChatImage:!0,isTitle:!0,isDescription:!0},responsiveBy:p="viewport",loadFont:f=!0,forceMobile:y=!1,onGenerateComplete:u})=>{const[b,j]=s(""),[v,g]=s(""),[x,w]=s(null),[P,S]=s(!1),[C,k]=s(!0),[D,O]=s(!0),[B,T]=s(!1);return t((()=>{S(!1)}),[null==m?void 0:m.font]),e(d.Provider,Object.assign({value:Object.assign({formId:b,chatId:v,userId:c,studioUserId:l,deploymentId:a,pickaxe:x,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},m),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},F),misc:I,responsiveBy:p,isFontLoaded:P,isNewChat:C,isShowIceBreaker:D,isShowHistory:B,loadFont:f,forceMobile:y,setIsFontLoaded:S,setFormId:j,setChatId:g,setPickaxe:w,setIsNewChat:k,setIsShowIceBreaker:O,setIsShowHistory:T},u&&{onGenerateComplete:u})},{children:e(i,Object.assign({limits:h},{children:e(n,{children:e(r,{children:o})})}))}))};export{d as PickaxeContext,c as PickaxeProvider};
1
+ import{jsx as e}from"react/jsx-runtime";import{createContext as o,useState as s,useEffect as t}from"react";import i from"./Addons/Document/Provider.js";import r from"./ResponseProvider.js";import n from"./DimensionProvider.js";const d=o({}),c=({children:o,userId:c="",studioUserId:l="",deploymentId:a="",styles:m,colors:F,limits:h={},misc:I={isWhiteLabel:!0,isProfileImage:!0,isChatImage:!0,isTitle:!0,isDescription:!0,isHistory:!0},responsiveBy:p="viewport",loadFont:f=!0,forceMobile:y=!1,onGenerateComplete:u})=>{const[b,j]=s(""),[v,g]=s(""),[x,w]=s(null),[P,S]=s(!1),[C,k]=s(!0),[D,O]=s(!0),[B,H]=s(!1);return t((()=>{S(!1)}),[null==m?void 0:m.font]),e(d.Provider,Object.assign({value:Object.assign({formId:b,chatId:v,userId:c,studioUserId:l,deploymentId:a,pickaxe:x,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},m),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},F),misc:I,responsiveBy:p,isFontLoaded:P,isNewChat:C,isShowIceBreaker:D,isShowHistory:B,loadFont:f,forceMobile:y,setIsFontLoaded:S,setFormId:j,setChatId:g,setPickaxe:w,setIsNewChat:k,setIsShowIceBreaker:O,setIsShowHistory:H},u&&{onGenerateComplete:u})},{children:e(r,Object.assign({limits:h},{children:e(n,{children:e(i,{children:o})})}))}))};export{d as PickaxeContext,c as PickaxeProvider};
@@ -28,6 +28,7 @@ export type PickaxeMisc = {
28
28
  isChatImage: boolean;
29
29
  isTitle: boolean;
30
30
  isDescription: boolean;
31
+ isHistory?: boolean;
31
32
  };
32
33
  type PickaxeContextType = {
33
34
  formId: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pickaxeproject/react",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "description": "Client utility library for Pickaxe",
5
5
  "repository": {
6
6
  "type": "git",