@pickaxeproject/react 3.4.0 → 3.5.1

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 (71) hide show
  1. package/dist/cjs/common/utils.js +1 -1
  2. package/dist/cjs/components/EmbedPreview/ChatInput.js +1 -1
  3. package/dist/cjs/components/EmbedPreview/Popup.js +1 -1
  4. package/dist/cjs/components/Icons/email.svg.js +1 -0
  5. package/dist/cjs/components/Icons/lock.svg.js +1 -0
  6. package/dist/cjs/components/Pickaxe/Addons/Artifact/hooks/useArtifact.js +1 -1
  7. package/dist/cjs/components/Pickaxe/Addons/Artifact/hooks/useArtifactData.js +1 -1
  8. package/dist/cjs/components/Pickaxe/Addons/Auth/Provider.js +1 -0
  9. package/dist/cjs/components/Pickaxe/Addons/Auth/hooks/useAuth.js +1 -0
  10. package/dist/cjs/components/Pickaxe/Addons/Auth/hooks/useAuthContext.js +1 -0
  11. package/dist/cjs/components/Pickaxe/Addons/Auth/hooks/useAuthVerify.js +1 -0
  12. package/dist/cjs/components/Pickaxe/Addons/Auth/index.js +1 -0
  13. package/dist/cjs/components/Pickaxe/Chat/History/CustomMessage.js +1 -0
  14. package/dist/cjs/components/Pickaxe/Chat/History/index.js +1 -1
  15. package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -1
  16. package/dist/cjs/components/Pickaxe/Chat/index.js +1 -1
  17. package/dist/cjs/components/Pickaxe/Form/Questions/Submit.js +1 -1
  18. package/dist/cjs/components/Pickaxe/Provider.js +1 -1
  19. package/dist/cjs/components/Pickaxe/common/PickaxeInput.js +1 -0
  20. package/dist/cjs/components/Pickaxe/index.js +1 -1
  21. package/dist/cjs/hooks/pickaxe/useHistory.js +1 -1
  22. package/dist/cjs/hooks/pickaxe/useSubmit.js +1 -1
  23. package/dist/cjs/src/common/utils.d.ts +4 -0
  24. package/dist/cjs/src/components/Pickaxe/Addons/Artifact/hooks/useArtifactData.d.ts +2 -0
  25. package/dist/cjs/src/components/Pickaxe/Addons/Auth/Provider.d.ts +24 -0
  26. package/dist/cjs/src/components/Pickaxe/Addons/Auth/hooks/useAuth.d.ts +3 -0
  27. package/dist/cjs/src/components/Pickaxe/Addons/Auth/hooks/useAuthContext.d.ts +16 -0
  28. package/dist/cjs/src/components/Pickaxe/Addons/Auth/hooks/useAuthVerify.d.ts +14 -0
  29. package/dist/cjs/src/components/Pickaxe/Addons/Auth/index.d.ts +2 -0
  30. package/dist/cjs/src/components/Pickaxe/Chat/History/CustomMessage.d.ts +8 -0
  31. package/dist/cjs/src/components/Pickaxe/Chat/Input.d.ts +1 -1
  32. package/dist/cjs/src/components/Pickaxe/Provider.d.ts +3 -1
  33. package/dist/cjs/src/components/Pickaxe/common/PickaxeInput.d.ts +3 -0
  34. package/dist/cjs/src/hooks/pickaxe/usePickaxeContext.d.ts +1 -0
  35. package/dist/cjs/src/hooks/pickaxe/useSubmit.d.ts +1 -0
  36. package/dist/esm/common/utils.js +1 -1
  37. package/dist/esm/components/EmbedPreview/ChatInput.js +1 -1
  38. package/dist/esm/components/EmbedPreview/Popup.js +1 -1
  39. package/dist/esm/components/Icons/email.svg.js +1 -0
  40. package/dist/esm/components/Icons/lock.svg.js +1 -0
  41. package/dist/esm/components/Pickaxe/Addons/Artifact/hooks/useArtifact.js +1 -1
  42. package/dist/esm/components/Pickaxe/Addons/Artifact/hooks/useArtifactData.js +1 -1
  43. package/dist/esm/components/Pickaxe/Addons/Auth/Provider.js +1 -0
  44. package/dist/esm/components/Pickaxe/Addons/Auth/hooks/useAuth.js +1 -0
  45. package/dist/esm/components/Pickaxe/Addons/Auth/hooks/useAuthContext.js +1 -0
  46. package/dist/esm/components/Pickaxe/Addons/Auth/hooks/useAuthVerify.js +1 -0
  47. package/dist/esm/components/Pickaxe/Addons/Auth/index.js +1 -0
  48. package/dist/esm/components/Pickaxe/Chat/History/CustomMessage.js +1 -0
  49. package/dist/esm/components/Pickaxe/Chat/History/index.js +1 -1
  50. package/dist/esm/components/Pickaxe/Chat/Input.js +1 -1
  51. package/dist/esm/components/Pickaxe/Chat/index.js +1 -1
  52. package/dist/esm/components/Pickaxe/Form/Questions/Submit.js +1 -1
  53. package/dist/esm/components/Pickaxe/Provider.js +1 -1
  54. package/dist/esm/components/Pickaxe/common/PickaxeInput.js +1 -0
  55. package/dist/esm/components/Pickaxe/index.js +1 -1
  56. package/dist/esm/hooks/pickaxe/useHistory.js +1 -1
  57. package/dist/esm/hooks/pickaxe/useSubmit.js +1 -1
  58. package/dist/esm/src/common/utils.d.ts +4 -0
  59. package/dist/esm/src/components/Pickaxe/Addons/Artifact/hooks/useArtifactData.d.ts +2 -0
  60. package/dist/esm/src/components/Pickaxe/Addons/Auth/Provider.d.ts +24 -0
  61. package/dist/esm/src/components/Pickaxe/Addons/Auth/hooks/useAuth.d.ts +3 -0
  62. package/dist/esm/src/components/Pickaxe/Addons/Auth/hooks/useAuthContext.d.ts +16 -0
  63. package/dist/esm/src/components/Pickaxe/Addons/Auth/hooks/useAuthVerify.d.ts +14 -0
  64. package/dist/esm/src/components/Pickaxe/Addons/Auth/index.d.ts +2 -0
  65. package/dist/esm/src/components/Pickaxe/Chat/History/CustomMessage.d.ts +8 -0
  66. package/dist/esm/src/components/Pickaxe/Chat/Input.d.ts +1 -1
  67. package/dist/esm/src/components/Pickaxe/Provider.d.ts +3 -1
  68. package/dist/esm/src/components/Pickaxe/common/PickaxeInput.d.ts +3 -0
  69. package/dist/esm/src/hooks/pickaxe/usePickaxeContext.d.ts +1 -0
  70. package/dist/esm/src/hooks/pickaxe/useSubmit.d.ts +1 -0
  71. package/package.json +1 -1
@@ -1 +1 @@
1
- import{__rest as e}from"../../_virtual/_tslib.js";import{jsx as o,jsxs as i}from"react/jsx-runtime";import{useState as t}from"react";import{usePickaxeContext as n}from"../../hooks/pickaxe/usePickaxeContext.js";import{useInstantPickaxe as s}from"../../hooks/pickaxe/usePickaxe.js";import{useStyleFontSize as l}from"../../hooks/studio/useStyleFontSize.js";import{QueryClient as a,QueryClientProvider as d}from"@tanstack/react-query";import{Pickaxe as r}from"../Pickaxe/index.js";import{PickaxeProvider as m}from"../Pickaxe/Provider.js";import{PickaxeArtifact as c}from"../Pickaxe/Addons/Artifact/index.js";import p from"../Icons/x.svg.js";import u from"../Core/Modal/index.js";import h from"../Core/Modal/Body.js";import f from"../../common/cn.js";const v=new a({defaultOptions:{queries:{refetchOnWindowFocus:!1}}}),x=n=>{var s,l,a,x,y,g,j,O,w,{formId:k,className:D}=n,N=e(n,["formId","className"]);const[P,R]=t(!1);return o(d,Object.assign({client:v},{children:i(m,Object.assign({},N,{deploymentType:"popup",isEmbed:!0},{children:[o(b,{formId:k,setIsOpen:R}),o(u,Object.assign({isOpen:P,onChange:()=>R(!1)},{children:i(h,Object.assign({className:f("relative bg-transparent overflow-hidden",N.isDropShadow&&"shadow-embed"),style:{borderRadius:(null!==(l=null===(s=N.styles)||void 0===s?void 0:s.cornerRadius)&&void 0!==l?l:0)+"px"}},{children:[o("div",Object.assign({className:"overflow-auto",style:Object.assign(Object.assign({borderRadius:(null!==(x=null===(a=N.styles)||void 0===a?void 0:a.cornerRadius)&&void 0!==x?x:0)+"px"},"px"===(null===(y=N.deploymentDimensions)||void 0===y?void 0:y.width.unit)?{width:N.deploymentDimensions.width.value+N.deploymentDimensions.width.unit}:"%"===(null===(g=N.deploymentDimensions)||void 0===g?void 0:g.width.unit)?{width:Math.floor(N.deploymentDimensions.maxWidth*(N.deploymentDimensions.width.value/100))}:{}),"px"===(null===(j=N.deploymentDimensions)||void 0===j?void 0:j.height.unit)?{height:N.deploymentDimensions.height.value+"px"}:"auto"===(null===(O=N.deploymentDimensions)||void 0===O?void 0:O.height.unit)?{height:N.deploymentDimensions.minHeight+"px",maxHeight:N.deploymentDimensions.maxHeight+"px"}:{})},{children:o(r,Object.assign({formId:k},D&&{className:D}))})),o("button",Object.assign({className:"absolute z-10 outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>R(!1),style:{right:12,top:12,color:(null===(w=N.colors)||void 0===w?void 0:w.text)||"#000"}},{children:o(p,{className:"h-5 w-5 shrink-0"})}))]}))})),o(c,{})]}))}))},b=({formId:e,setIsOpen:i})=>{var t;const{colors:a,styles:d,deploymentDimensions:r,deploymentMisc:m}=n(),c=l(),p=s(e);return p.isLoading?null:o("button",Object.assign({style:Object.assign(Object.assign(Object.assign({},"Real Head Pro"!==d.font&&{fontFamily:d.font}),{color:a.accentText,backgroundColor:a.accent,borderRadius:d.cornerRadius+"px",borderWidth:d.outlineThickness+"px",maxWidth:"%"===(null==r?void 0:r.width.unit)?(null==r?void 0:r.maxWidth)+"px":(null==r?void 0:r.width.value)+"px",minHeight:48}),"Real Head Pro"!==d.font&&{fontFamily:d.font}),className:f(c.b2,"flex w-max min-w-[130px] select-none items-center font-semibold justify-center gap-x-3 px-4 hover:duration-300 focus:outline focus:outline-black/30 active:opacity-90 disabled:cursor-not-allowed dark:focus:outline-white/30"),onClick:()=>i(!0)},{children:o("p",Object.assign({className:f(c.b2,"font-semibold"),style:Object.assign({color:a.accentText},"Real Head Pro"!==d.font&&{fontFamily:d.font})},{children:(null==m?void 0:m.popupText)||(null===(t=p.data)||void 0===t?void 0:t.formtitle)||"Open Tool"}))}))};export{x as Popup,b as PopupCTAButton};
1
+ import{__rest as e}from"../../_virtual/_tslib.js";import{jsx as i,jsxs as o}from"react/jsx-runtime";import{useState as t,useCallback as n,useEffect as s}from"react";import{usePickaxeContext as l}from"../../hooks/pickaxe/usePickaxeContext.js";import{useInstantPickaxe as d}from"../../hooks/pickaxe/usePickaxe.js";import{useStyleFontSize as a}from"../../hooks/studio/useStyleFontSize.js";import{QueryClient as r,QueryClientProvider as m}from"@tanstack/react-query";import{Pickaxe as c}from"../Pickaxe/index.js";import{PickaxeProvider as u}from"../Pickaxe/Provider.js";import{PickaxeArtifact as h}from"../Pickaxe/Addons/Artifact/index.js";import p from"../Icons/x.svg.js";import f from"../Core/Modal/index.js";import v from"../Core/Modal/Body.js";import x from"../../common/cn.js";const g=new r({defaultOptions:{queries:{refetchOnWindowFocus:!1}}}),y=l=>{var d,a,r,y,w,j,O,k,D,{formId:H,className:N}=l,P=e(l,["formId","className"]);const[R,I]=t(!1),[C,W]=t(!1),T=n((()=>{const e=P.deploymentDimensions;if(!e)return;let i=0;"px"===e.width.unit?i=e.width.value:"%"===e.width.unit&&(i=Math.floor(e.maxWidth*(e.width.value/100)));let o=0;"px"===e.height.unit?o=e.height.value:"auto"===e.height.unit&&(o=e.maxHeight);const t=window.innerWidth<i+50,n=window.innerHeight<o+100,s=t||n;!C&&s&&W(!0),C&&!s&&W(!1)}),[C,P.deploymentDimensions]);return s((()=>(T(),window.addEventListener("resize",T),()=>window.removeEventListener("resize",T))),[R,C,P.deploymentDimensions]),i(m,Object.assign({client:g},{children:o(u,Object.assign({},P,{deploymentType:"popup",isEmbed:!0},{children:[i(b,{formId:H,setIsOpen:e=>{I(e),e&&T()}}),i(f,Object.assign({isOpen:R,onChange:()=>I(!1)},{children:o(v,Object.assign({className:x("relative bg-transparent overflow-hidden",P.isDropShadow&&"shadow-embed",C&&"h-full w-full"),style:{borderRadius:C?0:(null!==(a=null===(d=P.styles)||void 0===d?void 0:d.cornerRadius)&&void 0!==a?a:0)+"px"}},{children:[i("div",Object.assign({className:"overflow-auto",style:Object.assign({borderRadius:C?0:(null!==(y=null===(r=P.styles)||void 0===r?void 0:r.cornerRadius)&&void 0!==y?y:0)+"px"},C?{width:"100%",height:"100%"}:Object.assign(Object.assign({},"px"===(null===(w=P.deploymentDimensions)||void 0===w?void 0:w.width.unit)?{width:P.deploymentDimensions.width.value+P.deploymentDimensions.width.unit}:"%"===(null===(j=P.deploymentDimensions)||void 0===j?void 0:j.width.unit)?{width:Math.floor(P.deploymentDimensions.maxWidth*(P.deploymentDimensions.width.value/100))}:{}),"px"===(null===(O=P.deploymentDimensions)||void 0===O?void 0:O.height.unit)?{height:P.deploymentDimensions.height.value+"px"}:"auto"===(null===(k=P.deploymentDimensions)||void 0===k?void 0:k.height.unit)?{height:P.deploymentDimensions.minHeight+"px",maxHeight:P.deploymentDimensions.maxHeight+"px"}:{}))},{children:i(c,Object.assign({formId:H},N&&{className:N}))})),i("button",Object.assign({className:"absolute z-10 outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>I(!1),style:{right:12,top:12,color:(null===(D=P.colors)||void 0===D?void 0:D.text)||"#000"}},{children:i(p,{className:"h-5 w-5 shrink-0"})}))]}))})),i(h,{})]}))}))},b=({formId:e,setIsOpen:o})=>{var t;const{colors:n,styles:s,deploymentDimensions:r,deploymentMisc:m}=l(),c=a(),u=d(e);return u.isLoading?null:i("button",Object.assign({style:Object.assign(Object.assign(Object.assign({},"Real Head Pro"!==s.font&&{fontFamily:s.font}),{color:n.accentText,backgroundColor:n.accent,borderRadius:s.cornerRadius+"px",borderWidth:s.outlineThickness+"px",maxWidth:"%"===(null==r?void 0:r.width.unit)?(null==r?void 0:r.maxWidth)+"px":(null==r?void 0:r.width.value)+"px",minHeight:48}),"Real Head Pro"!==s.font&&{fontFamily:s.font}),className:x(c.b2,"flex w-max min-w-[130px] select-none items-center font-semibold justify-center gap-x-3 px-4 hover:duration-300 focus:outline focus:outline-black/30 active:opacity-90 disabled:cursor-not-allowed dark:focus:outline-white/30"),onClick:()=>o(!0)},{children:i("p",Object.assign({className:x(c.b2,"font-semibold"),style:Object.assign({color:n.accentText},"Real Head Pro"!==s.font&&{fontFamily:s.font})},{children:(null==m?void 0:m.popupText)||(null===(t=u.data)||void 0===t?void 0:t.formtitle)||"Open Tool"}))}))};export{y as Popup,b as PopupCTAButton};
@@ -0,0 +1 @@
1
+ import*as r from"react";var e;function t(){return t=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)({}).hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},t.apply(null,arguments)}var n=n=>r.createElement("svg",t({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 25 24"},n),e||(e=r.createElement("path",{fill:"currentColor",d:"M22.5 6c0-1.1-.9-2-2-2h-16c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2zm-2 0-8 5-8-5zm0 12h-16V8l8 5 8-5z"})));export{n as default};
@@ -0,0 +1 @@
1
+ import*as r from"react";var e;function t(){return t=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)({}).hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},t.apply(null,arguments)}var n=n=>r.createElement("svg",t({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 25 24"},n),e||(e=r.createElement("path",{fill:"currentColor",d:"M18.5 8.5h-1v-2c0-2.76-2.24-5-5-5s-5 2.24-5 5v2h-1c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2m-9-2c0-1.66 1.34-3 3-3s3 1.34 3 3v2h-6zm9 14h-12v-10h12zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2"})));export{n as default};
@@ -1 +1 @@
1
- import{__awaiter as t}from"../../../../../_virtual/_tslib.js";import{usePickaxeContext as e}from"../../../../../hooks/pickaxe/usePickaxeContext.js";import{useArtifactContext as i}from"./useArtifactContext.js";import{useArtifactData as s}from"./useArtifactData.js";const o=()=>{const{deploymentId:o,studioUserId:r,embedUserId:n}=e(),{artifacts:a,currentPopupType:d,setArtifacts:c,setCurrentArtifact:f}=i(),v=s();return{onLoadArtifact:(e,i)=>t(void 0,void 0,void 0,(function*(){if(e){if(!a.some((t=>t.id===e.id&&t.version===e.version))){const t=yield v.mutateAsync(Object.assign(Object.assign(Object.assign({artifactId:e.id,version:e.version},o&&{createdBy:n}),r&&{createdBy:r}),void 0!==i&&{createdBy:i}));t&&c((e=>[...e,Object.assign(Object.assign({},t),{status:"finished"})]))}return d.startsWith("inline")||f({id:e.id,version:e.version}),void("development"===process.env.NODE_ENV&&console.log("[onLoadArtifact]","Loaded artifact:",{id:e.id,version:e.version}))}f(null)}))}};export{o as useArtifact};
1
+ import{__awaiter as t}from"../../../../../_virtual/_tslib.js";import{usePickaxeContext as e}from"../../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as i}from"../../Auth/hooks/useAuthContext.js";import{useArtifactContext as s}from"./useArtifactContext.js";import{useArtifactData as o}from"./useArtifactData.js";const r=()=>{const{studioUserId:r,embedUserId:n}=e(),{token:a}=i(),{artifacts:c,currentPopupType:d,setArtifacts:f,setCurrentArtifact:u}=s(),v=o();return{onLoadArtifact:(e,i)=>t(void 0,void 0,void 0,(function*(){if(e){if(!c.some((t=>t.id===e.id&&t.version===e.version))){const t=yield v.mutateAsync(Object.assign(Object.assign({artifactId:e.id,version:e.version},a?{embedSessionToken:a}:Object.assign(Object.assign({},n&&{createdBy:n}),r&&{createdBy:r})),void 0!==i&&{createdBy:i}));t&&f((e=>[...e,Object.assign(Object.assign({},t),{status:"finished"})]))}return d.startsWith("inline")||u({id:e.id,version:e.version}),void("development"===process.env.NODE_ENV&&console.log("[onLoadArtifact]","Loaded artifact:",{id:e.id,version:e.version}))}u(null)}))}};export{r as useArtifact};
@@ -1 +1 @@
1
- import{__awaiter as t}from"../../../../../_virtual/_tslib.js";import{useMutation as r}from"@tanstack/react-query";import a from"../../../../../common/api/index.js";const e=()=>r({mutationFn:r=>(({artifactId:r,version:e,createdBy:i})=>t(void 0,void 0,void 0,(function*(){if(!r||!e)return Promise.reject(new Error("[_getArtifactData] artifactId and version are required"));let t=`${process.env.NEXT_PUBLIC_API_URL}/pickaxe/artifact?artifactId=${r}`;e&&(t+=`&version=${e}`),i&&(t+=`&createdBy=${i}`);const o=yield a.get(t),c=o.data;if(200!==o.status)throw new Error("[_getArtifactData] Failed to fetch artifact "+c);return c.data})))(r)});export{e as useArtifactData};
1
+ import{__awaiter as t}from"../../../../../_virtual/_tslib.js";import{useMutation as e}from"@tanstack/react-query";import r from"../../../../../common/api/index.js";const i=()=>e({mutationFn:e=>(({artifactId:e,version:i,createdBy:o,studioSessionToken:a,embedSessionToken:n})=>t(void 0,void 0,void 0,(function*(){if(!e||!i)return Promise.reject(new Error("[_getArtifactData] artifactId and version are required"));let t=`${process.env.NEXT_PUBLIC_API_URL}/pickaxe/artifact?artifactId=${e}`;i&&(t+=`&version=${i}`),o&&(t+=`&createdBy=${o}`),a?t+=`&studioSessionToken=${a}`:n&&(t+=`&embedSessionToken=${n}`);const s=yield r.get(t),c=s.data;if(200!==s.status)throw new Error("[_getArtifactData] Failed to fetch artifact "+c);return c.data})))(e)});export{i as useArtifactData};
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{useState as s,createContext as n}from"react";const t=n({}),i=({children:n})=>{const[i,o]=s(""),[r,g]=s(null),[d,a]=s(!1),[l,I]=s(!1),[u,c]=s(!1),[m,p]=s(!1);return e(t.Provider,Object.assign({value:{emailInput:i,token:r,isLoggedIn:!!r,isLoggedOut:!r,isLoggingIn:d,isSending:l,isResendDisabled:u,isSent:m,setEmailInput:o,setToken:g,setIsLoggingIn:a,setIsSending:I,setIsResendDisabled:c,setIsSent:p}},{children:n}))};export{t as AuthContext,i as default};
@@ -0,0 +1 @@
1
+ import{__awaiter as o}from"../../../../../_virtual/_tslib.js";import{useEffect as e}from"react";import{usePickaxeContext as i}from"../../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as t}from"./useAuthContext.js";import{useAuthVerify as r}from"./useAuthVerify.js";import{getAuthToken as s,deleteAuthToken as n,setAuthToken as d}from"../../../../../common/utils.js";import a from"../../../../../common/api/index.js";import m from"../../../../../common/error.js";const u=()=>{const{deploymentId:u,pickaxe:l,isEmailLogin:c}=i(),{emailInput:f,isSending:p,setToken:I,setIsLoggingIn:g,setIsSending:k,setIsSent:w,setIsResendDisabled:h}=t(),y=r({token:s((null==l?void 0:l.studioid)||"")||"",enabled:c,setIsLoggingIn:g});e((()=>{if("undefined"==typeof window)return;if(!y.data)return;const{success:o,token:e,error:i}=y.data;o&&!i?I(e):n(`PXE-token-${null==l?void 0:l.studioid}`)}),[y.data,null==l?void 0:l.studioid]);return{onSend:e=>o(void 0,void 0,void 0,(function*(){try{if(!l)return;if(p)return;const o=f.trim().toLowerCase();if(!o)throw new Error("Email address cannot be empty.");if(!o.includes("@")||!o.includes("."))throw new Error("Please enter a valid email address.");if(!l.studioid)throw new Error(`Studio ID is missing for ${l.formid}. Please contact support.`);k(!0),e&&h(!0);const i=(yield a.post("/pickaxe/auth/email",Object.assign({formId:l.formid,studioId:l.studioid,email:o},u&&{deploymentId:u}))).data;if(!i.success)throw new Error(i.error||"Failed to send sign-in link.");k(!1),w(!0),e&&(yield new Promise((o=>setTimeout(o,3e4))),h(!1)),d(`PXE-token-${l.studioid}`,i.token)}catch(o){const e=m(o);alert(e)}finally{k(!1)}}))}};export{u as useAuth};
@@ -0,0 +1 @@
1
+ import{useContext as r}from"react";import{AuthContext as o}from"../Provider.js";const t=()=>r(o);export{t as useAuthContext};
@@ -0,0 +1 @@
1
+ import{__awaiter as t}from"../../../../../_virtual/_tslib.js";import{useEffect as e}from"react";import{useQuery as o}from"@tanstack/react-query";import r from"../../../../../common/api/index.js";const i=({token:i,enabled:n,setIsLoggingIn:a})=>{const s=o({queryKey:["authData",i],queryFn:()=>t(void 0,void 0,void 0,(function*(){return(({token:e})=>t(void 0,void 0,void 0,(function*(){const t=yield r.get(`/pickaxe/auth?token=${encodeURIComponent(e)}`),o=t.data;if(200!==t.status)throw new Error("[_verifyAuth] Failed to verify auth data "+o);return o})))({token:i})})),enabled:!!i&&n,staleTime:18e4,refetchInterval:2e3});return e((()=>{s.isLoading&&i?a(!0):(s.isSuccess||s.isError)&&a(!1)}),[s.data,i]),s};export{i as useAuthVerify};
@@ -0,0 +1 @@
1
+ import{__rest as e}from"../../../../_virtual/_tslib.js";import{jsx as i,jsxs as o,Fragment as n}from"react/jsx-runtime";import{useMemo as l}from"react";import{useHover as s}from"../../../../hooks/core/useHover.js";import{useStyleFontSize as t}from"../../../../hooks/studio/useStyleFontSize.js";import{useStyleInput as r}from"../../../../hooks/studio/useStyleInput.js";import{usePickaxeContext as a}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as c}from"./hooks/useAuthContext.js";import{useAuth as m}from"./hooks/useAuth.js";import d from"../../../Icons/spinner-circle.svg.js";import u from"../../../Icons/lock.svg.js";import p from"../../../Icons/email.svg.js";import f from"../../../Icons/arrow-right.svg.js";import x from"../../common/PickaxeIcon.js";import h from"../../common/PickaxeInput.js";import g from"../../common/PickaxeButton.js";import v from"../../common/PickaxeBranding.js";import j from"../../../../common/cn.js";const b=()=>{var b,k,y,w,N,O,C,I,P,S,R;const{deploymentType:T,pickaxe:H,styles:B,colors:L,misc:W,responsiveBy:$,translations:A,isRtl:D}=a(),{emailInput:E,isLoggingIn:F,isSending:_,isResendDisabled:z,isSent:q,setEmailInput:G}=c(),{onSend:J}=m(),K=t(),M=r(),Q=s(),{isHover:U}=Q,V=e(Q,["isHover"]),X=l((()=>E.trim()&&!_&&!q),[E,_,q]);return"chat-input"===T?i("div",Object.assign({className:j("flex items-center gap-x-2 px-4 py-3 overflow-hidden","block"===B.formFieldStyle&&"shadow",q&&"justify-center"),style:M,dir:D?"rtl":"ltr"},{children:q?o("p",Object.assign({className:"font-semilight text-center py-1"},{children:[`${null!==(k=null==A?void 0:A["we-sent-your-an-activation-link"])&&void 0!==k?k:"We sent you an activation link. Please be sure to check your spam folder too."} `,i("span",Object.assign({className:"underline underline-offset-2 cursor-pointer",onClick:()=>{z||_||J(!0)}},{children:_?null!==(y=null==A?void 0:A.resending)&&void 0!==y?y:"Resending...":null!==(w=null==A?void 0:A.resend)&&void 0!==w?w:"Resend"}))]})):o(n,{children:[i(u,{className:"w-6 h-6 shrink-0",style:{color:L.accent}}),i("input",{id:"email",name:"email",type:"email",className:"outline-none ring-0 flex-grow bg-transparent",placeholder:null!==(b=null==A?void 0:A["enter-email-to-continue"])&&void 0!==b?b:"Enter here your email to continue",value:E,onChange:e=>G(e.target.value),autoComplete:"off"}),i("button",Object.assign({className:j("outline-none rounded-full w-8 h-8 disabled:cursor-default items-center justify-center flex duration-200 transition-colors ease-in-out",_&&"disabled:cursor-wait"),style:{backgroundColor:U||X?L.accent:L.accent+"10",color:U||X?L.accentText:L.accent+"80"},disabled:!E.trim()||_,onClick:()=>J(!1)},V,{children:i(f,{className:j("h-6 w-6 shrink-0",D&&"transform scale-x-[-1]")})}))]})})):o("div",Object.assign({className:"flex flex-col items-center flex-grow relative justify-center p-4",style:{backgroundColor:L.secondary,color:L.secondaryText,borderRadius:B.cornerRadius},dir:D?"rtl":"ltr"},{children:[!W.isWhiteLabel&&i(v,{className:j("absolute top-4 right-4","popup"===T&&"right-12"),animateHover:!0}),F||!H?i(d,{className:"h-6 w-6 animate-spin animate-spin",style:{fill:L.accent,color:L.primary}}):o("div",Object.assign({className:"w-full flex flex-col items-center text-center max-w-[328px]"},{children:[W.isProfileImage&&i(x,{src:null==H?void 0:H.coverphoto,alt:`${null==H?void 0:H.formtitle}'s Profile Picture`,width:72,height:72,className:"h-[72px] w-[72px] rounded-full"}),i("h3",Object.assign({className:j(K.h3,"my-6")},{children:H.formtitle||"Tool"})),o("div",q?Object.assign({className:"flex flex-col items-center gap-6 w-full"},{children:[o("div",Object.assign({className:"flex items-center gap-2"},{children:[i(p,{className:"w-6 h-6 shrink-0"}),i("p",Object.assign({className:"font-semilight text-[20px]"},{children:null!==(I=null==A?void 0:A["check-your-inbox"])&&void 0!==I?I:"Check your inbox"}))]})),o("p",Object.assign({className:"font-semilight"},{children:[`${null!==(P=null==A?void 0:A["we-sent-your-an-activation-link"])&&void 0!==P?P:"We sent you an activation link. Please be sure to check your spam folder too."} `,i("span",Object.assign({className:"underline underline-offset-2 cursor-pointer",onClick:()=>{z||_||J(!0)}},{children:_?null!==(S=null==A?void 0:A.resending)&&void 0!==S?S:"Resending...":null!==(R=null==A?void 0:A.resend)&&void 0!==R?R:"Resend"}))]}))]}):Object.assign({className:"flex flex-col items-center gap-6 w-full"},{children:[o("div",Object.assign({className:"flex items-center gap-2 flex-grow"},{children:[i(u,{className:"w-6 h-6 shrink-0"}),i("p",Object.assign({className:"font-semilight"},{children:null!==(N=null==A?void 0:A["please-enter-email-to-continue"])&&void 0!==N?N:"Please enter your email to continue:"}))]})),o("div",Object.assign({className:j("flex flex-col items-center gap-x-3 gap-y-6 w-full","viewport"===$?"min-[899px]:flex-row":"@[420px]/pickaxe-root:flex-row")},{children:[i(h,{id:"email",name:"email",type:"email",className:j("w-full py-3","viewport"===$?"min-[899px]:flex-grow min-[899px]:py-2":"@[420px]/pickaxe-root:flex-grow @[420px]/pickaxe-root:py-2"),placeholder:"jane.doe@email.com",value:E,onChange:e=>G(e.target.value)}),i(g,Object.assign({className:j("px-8 min-h-[40px]","viewport"===$?"min-[899px]:px-4":"@[420px]/pickaxe-root:px-4"),loadingText:null!==(O=null==A?void 0:A.sending)&&void 0!==O?O:"Sending...",isLoading:_,isDisabled:!E.trim(),onClick:()=>J(!1)},{children:null!==(C=null==A?void 0:A.submit)&&void 0!==C?C:"Submit"}))]}))]}))]}))]}))};export{b as default};
@@ -0,0 +1 @@
1
+ import{jsx as s,jsxs as t}from"react/jsx-runtime";import{usePickaxeContext as e}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useStyleFontSize as o}from"../../../../hooks/studio/useStyleFontSize.js";import r from"../../common/PickaxeIcon.js";import i from"../../../../common/cn.js";const l=({chatRole:l,children:a})=>{var c;const{formId:n,pickaxe:d,styles:m,colors:f,isRtl:x}=e(),u=o(),h=null!==(c=null==d?void 0:d.chaticon)&&void 0!==c?c:`https://prod-pickaxe-assets.s3.us-west-2.amazonaws.com/chaticons/${n}.png`;return s("div","assistant"===l?Object.assign({className:i(u.b2,"flex w-full",x?"justify-end":"justify-start"),dir:x?"rtl":"ltr"},{children:s("div",Object.assign({className:"flex flex-col"},{children:t("div",Object.assign({className:i("flex gap-x-3",x&&"flex-row-reverse")},{children:["NONE"!==h&&s(r,{src:h,alt:`${null==d?void 0:d.formtitle}'s Chat Icon`,width:24,height:24,className:"my-3 h-6 w-6",textColor:f.text}),a]}))}))}):Object.assign({className:i(u.b2,"flex w-full",x?"justify-start":"justify-end"),dir:x?"rtl":"ltr"},{children:s("div",Object.assign({className:i("px-4 py-3",x?"text-right":"text-left"),style:{backgroundColor:f.secondary+"80",color:f.secondaryText,borderRadius:m.cornerRadius}},{children:a}))}))};export{l as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as a}from"react";import{usePickaxeContext as t}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as i}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDimensionContext as o}from"../../../../hooks/pickaxe/useDimensionContext.js";import{useScrollContext as l}from"../../Addons/Scroll/hooks/useScrollContext.js";import{useStyleFontSize as r}from"../../../../hooks/studio/useStyleFontSize.js";import{useConversation as n}from"../../../../hooks/pickaxe/useConversation.js";import{useArtifactContext as c}from"../../Addons/Artifact/hooks/useArtifactContext.js";import{AnimatePresence as m,motion as d}from"framer-motion";import p from"../../../Core/ErrorAlert.js";import f from"../../common/PickaxeHead.js";import x from"../../common/PickaxeCompactHead.js";import u from"../../common/PickaxeUpgradeCard.js";import h from"../../common/PickaxeIcon.js";import g from"../../common/PickaxeBranding.js";import j from"../../common/PickaxeSkeleton.js";import v from"../../Addons/Scroll/ScrollLockView.js";import w from"../../Addons/Artifact/Renderer/index.js";import y from"./Message.js";import N from"../../../../common/cn.js";const b=({hideInfo:b,isInputFocused:k})=>{var C;const O=n(),A=r(),{pickaxe:P,colors:S,misc:I,isNewChat:E,isRtl:L,isEmbed:H,setChatId:R}=t(),{scrollContainerRef:$}=l(),{messages:z,status:D,limitData:T,error:F}=i(),{height:B}=o(),{currentArtifact:M,chatPopupType:U,currentPopupType:V}=c(),W=a((()=>!!O.data&&!(O.data.messages.length<=1)),[O.data]),_=a((()=>!b&&O.isSuccess&&E&&!W),[b,O.isSuccess,E,W]),q=a((()=>{var e,s;return!!z.length&&!(null!==(s=null===(e=null==z?void 0:z[z.length-1])||void 0===e?void 0:e.content)&&void 0!==s?s:"").trim()}),[z]);return e("div",Object.assign({ref:$,className:"flex w-full flex-col items-center overflow-y-auto mb-12 pb-8 scrollbar scrollbar-thin",style:{height:`calc(${B}px - 74px)`}},{children:[s(m,{children:!!M&&"inline"===V&&s(d.div,Object.assign({className:N("absolute top-0 z-10 w-full px-4 py-2",U),style:{height:`calc(${B}px - 80px)`},initial:{opacity:0,y:-20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2,ease:"easeOut"}},{children:s(w,{type:"inline",className:"pxe-artifact-inline h-full shadow",artifact:{id:M.id,version:M.version}})}))}),e("div",Object.assign({className:"relative flex flex-col items-center flex-grow w-full max-w-[800px] px-4"},{children:[(_||!H)&&!I.isWhiteLabel&&s(g,{className:N("absolute top-4 right-4",!_&&!H&&"top-2"),animateHover:!0}),s(f,{className:N("opacity-0 mt-[0%] transition-all duration-500 ease-in-out max-h-0 overflow-hidden max-w-[500px]",_&&"opacity-100 mt-[10%] max-h-[100%]"),iconClassName:"duration-300 hover:opacity-90",maxDescriptionChars:500,onIconClick:()=>R("")}),H&&!O.isLoading&&s(x,{className:N("opacity-0 transition-all duration-500 ease-in-out h-0 w-full",!_&&"opacity-100 h-[56px]"),iconClassName:"duration-300 hover:opacity-90",onIconClick:()=>R("")}),s("div",Object.assign({className:N("flex flex-col mt-6 transition-all duration-300 ease-in-out w-full",H&&!O.isLoading&&!_&&"mt-0")},{children:O.isLoading&&!(null==P?void 0:P.enablechatresponses)?e("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[E&&e("div",Object.assign({className:"flex flex-col items-center w-full"},{children:[s(j,{className:"w-[72px] h-[72px]"}),s(j,{className:"h-[20px] mt-6 w-full"}),s(j,{className:"h-[20px] mt-2 w-full"}),s(j,{className:"h-[20px] mt-2 w-full max-w-[400px]"})]})),s(j,{className:"h-10 w-[70%] animate-pulse justify-self-end rounded"}),s(j,{className:"h-[150px] w-[70%] animate-pulse rounded"}),s(j,{className:"h-10 w-[50%] animate-pulse justify-self-end rounded"})]})):O.isError?s("div",Object.assign({className:"flex w-full justify-center"},{children:e("p",Object.assign({className:N(A.b2,"text-center font-semibold")},{children:["Something went wrong. Please try again, or"," ",s("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help",target:"_blank",rel:"noreferrer"},{children:"contact us"}))," ","for help."]}))})):O.data?e("div",Object.assign({className:"flex flex-col w-full"},{children:[e("div",Object.assign({className:"grid grid-cols-1 gap-y-6 w-full"},{children:[O.data.messages.map(((e,a)=>s(y,Object.assign({index:a,message:e},0===a&&{isIntroExpand:k}),a))),z.map(((e,a)=>s(y,{index:O.data.messages.length+a,message:e},a))),"fetching"===D||q?s("div",Object.assign({className:N("flex w-full",L?"justify-end":"justify-start")},{children:s("div",Object.assign({className:"flex flex-col"},{children:e("div",Object.assign({className:N("flex gap-x-3",L&&"flex-row-reverse")},{children:["NONE"!==(null==P?void 0:P.chaticon)&&s(h,{src:null!==(C=null==P?void 0:P.chaticon)&&void 0!==C?C:`https://prod-pickaxe-assets.s3.us-west-2.amazonaws.com/chaticons/${null==P?void 0:P.formid}.png`,alt:`${null==P?void 0:P.formtitle}'s Chat Icon`,width:24,height:24,className:"my-3 h-6 w-6",textColor:S.text}),s("div",Object.assign({className:"flex items-center gap-x-2 rounded px-2"},{children:Array.from({length:3}).map(((e,a)=>s("div",{className:N("h-1.5 w-1.5 animate-dot rounded-full",1===a&&"animate-dot-down"),style:{backgroundColor:S.secondaryText}},a)))}))]}))}))})):T?s("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:s(u,{})})):F?s("div",Object.assign({className:N("flex items-center gap-x-3",L?"justify-end":"justify-start")},{children:s(p,{error:F})})):null]})),s(v,{})]})):null}))]}))]}))};export{b as default};
1
+ import{jsxs as e,jsx as s,Fragment as i}from"react/jsx-runtime";import{useMemo as a}from"react";import{usePickaxeContext as t}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as o}from"../../Addons/Auth/hooks/useAuthContext.js";import{useAuth as n}from"../../Addons/Auth/hooks/useAuth.js";import{useResponseContext as l}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDimensionContext as r}from"../../../../hooks/pickaxe/useDimensionContext.js";import{useScrollContext as c}from"../../Addons/Scroll/hooks/useScrollContext.js";import{useStyleFontSize as m}from"../../../../hooks/studio/useStyleFontSize.js";import{useConversation as d}from"../../../../hooks/pickaxe/useConversation.js";import{useArtifactContext as p}from"../../Addons/Artifact/hooks/useArtifactContext.js";import{AnimatePresence as u,motion as f}from"framer-motion";import h from"../../../Icons/lock.svg.js";import g from"../../../Core/ErrorAlert.js";import x from"../../common/PickaxeHead.js";import j from"../../common/PickaxeCompactHead.js";import b from"../../common/PickaxeUpgradeCard.js";import v from"../../common/PickaxeBranding.js";import y from"../../common/PickaxeSkeleton.js";import w from"../../Addons/Scroll/ScrollLockView.js";import N from"../../Addons/Artifact/Renderer/index.js";import k from"./Message.js";import O from"./CustomMessage.js";import C from"../../../../common/cn.js";const A=({hideInfo:A,isInputFocused:S})=>{var P,R,I;const{deploymentType:L,pickaxe:E,colors:D,misc:H,translations:T,isNewChat:$,isRtl:z,isEmbed:F,isEmailLogin:M,setChatId:W}=t(),{emailInput:B,isLoggedOut:U,isSending:V,isResendDisabled:_,isSent:q}=o(),{onSend:G}=n(),{scrollContainerRef:J}=c(),{messages:K,status:Q,limitData:X,error:Y}=l(),{height:Z}=r(),{currentArtifact:ee,chatPopupType:se,currentPopupType:ie}=p(),ae=d(),te=m(),oe="chat-input"===L&&M&&U&&q,ne=a((()=>!!ae.data&&!(ae.data.messages.length<=1)),[ae.data]),le=a((()=>!A&&ae.isSuccess&&$&&!ne),[A,ae.isSuccess,$,ne]),re=a((()=>{var e,s;return!!K.length&&!(null!==(s=null===(e=null==K?void 0:K[K.length-1])||void 0===e?void 0:e.content)&&void 0!==s?s:"").trim()}),[K]);return e("div",Object.assign({ref:J,className:"flex w-full flex-col items-center overflow-y-auto mb-12 pb-8 scrollbar scrollbar-thin",style:{height:`calc(${Z}px - 74px)`}},{children:[s(u,{children:!!ee&&"inline"===ie&&s(f.div,Object.assign({className:C("absolute top-0 z-10 w-full px-4 py-2",se),style:{height:`calc(${Z}px - 80px)`},initial:{opacity:0,y:-20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2,ease:"easeOut"}},{children:s(N,{type:"inline",className:"pxe-artifact-inline h-full shadow",artifact:{id:ee.id,version:ee.version}})}))}),e("div",Object.assign({className:"relative flex flex-col items-center flex-grow w-full max-w-[800px] px-4"},{children:[(le||!F)&&!H.isWhiteLabel&&s(v,{className:C("absolute top-4 right-4",!le&&!F&&"top-2"),animateHover:!0}),s(x,Object.assign({className:C("opacity-0 mt-[0%] transition-all duration-500 ease-in-out max-h-0 overflow-hidden max-w-[500px]",le&&"opacity-100 mt-[10%] max-h-[100%]"),iconClassName:"duration-300 hover:opacity-90",maxDescriptionChars:500},!oe&&{onIconClick:()=>W("")})),F&&!ae.isLoading&&s(j,Object.assign({className:C("opacity-0 transition-all duration-500 ease-in-out h-0 w-full",!le&&"opacity-100 h-[56px]"),iconClassName:"duration-300 hover:opacity-90"},!oe&&{onIconClick:()=>W("")})),s("div",Object.assign({className:C("flex flex-col mt-6 transition-all duration-300 ease-in-out w-full",F&&!ae.isLoading&&!le&&"mt-0")},{children:oe?s("div",Object.assign({className:"flex flex-col w-full"},{children:e("div",Object.assign({className:"grid grid-cols-1 gap-y-6 w-full"},{children:[s(O,Object.assign({chatRole:"user"},{children:e("div",Object.assign({className:"flex items-center gap-x-3"},{children:[s(h,{className:"h-6 w-6 shrink-0"}),s("p",Object.assign({className:"font-semilight"},{children:B}))]}))})),s(O,Object.assign({chatRole:"assistant"},{children:e("p",Object.assign({className:"py-3 font-semilight"},{children:[`${null!==(P=null==T?void 0:T["we-sent-your-an-activation-link"])&&void 0!==P?P:"We sent you an activation link. Please be sure to check your spam folder too."} `,s("span",Object.assign({className:"underline underline-offset-2 cursor-pointer",onClick:()=>{_||V||G(!0)}},{children:V?null!==(R=null==T?void 0:T.resending)&&void 0!==R?R:"Resending...":null!==(I=null==T?void 0:T.resend)&&void 0!==I?I:"Resend"}))]}))}))]}))})):s(i,{children:ae.isLoading&&!(null==E?void 0:E.enablechatresponses)?e("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[$&&e("div",Object.assign({className:"flex flex-col items-center w-full"},{children:[s(y,{className:"w-[72px] h-[72px]"}),s(y,{className:"h-[20px] mt-6 w-full"}),s(y,{className:"h-[20px] mt-2 w-full"}),s(y,{className:"h-[20px] mt-2 w-full max-w-[400px]"})]})),s(y,{className:"h-10 w-[70%] animate-pulse justify-self-end rounded"}),s(y,{className:"h-[150px] w-[70%] animate-pulse rounded"}),s(y,{className:"h-10 w-[50%] animate-pulse justify-self-end rounded"})]})):ae.isError?s("div",Object.assign({className:"flex w-full justify-center"},{children:e("p",Object.assign({className:C(te.b2,"text-center font-semibold")},{children:["Something went wrong. Please try again, or"," ",s("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help",target:"_blank",rel:"noreferrer"},{children:"contact us"}))," ","for help."]}))})):ae.data?e("div",Object.assign({className:"flex flex-col w-full"},{children:[e("div",Object.assign({className:"grid grid-cols-1 gap-y-6 w-full"},{children:[ae.data.messages.map(((e,i)=>s(k,Object.assign({index:i,message:e},0===i&&{isIntroExpand:S}),i))),K.map(((e,i)=>s(k,{index:ae.data.messages.length+i,message:e},i))),"fetching"===Q||re?s(O,Object.assign({chatRole:"assistant"},{children:s("div",Object.assign({className:"flex items-center gap-x-2 rounded px-2"},{children:Array.from({length:3}).map(((e,i)=>s("div",{className:C("h-1.5 w-1.5 animate-dot rounded-full",1===i&&"animate-dot-down"),style:{backgroundColor:D.secondaryText}},i)))}))})):X?s("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:s(b,{})})):Y?s("div",Object.assign({className:C("flex items-center gap-x-3",z?"justify-end":"justify-start")},{children:s(g,{error:Y})})):null]})),s(w,{})]})):null})}))]}))]}))};export{A as default};
@@ -1 +1 @@
1
- import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as s,jsxs as o}from"react/jsx-runtime";import{useState as i,useRef as r,useMemo as n,useEffect as a}from"react";import{usePickaxeContext as l}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as c}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as d}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as u}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as m}from"../../../hooks/pickaxe/useConversation.js";import{useSubmit as p}from"../../../hooks/pickaxe/useSubmit.js";import{useDocument as f}from"../Addons/Document/hooks/useDocument.js";import{useScroll as g}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as h}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as v}from"../../../hooks/core/useHover.js";import{allowedFileMimeTypes as b,allowedImageMimeTypes as j}from"../../../common/documents.js";import{createParser as x}from"eventsource-parser";import y from"../../Icons/attach-vertical.svg.js";import k from"../../Icons/arrow-right.svg.js";import O from"../Addons/IceBreaker/index.js";import w from"../Addons/Document/List.js";import I from"../../Core/Textarea.js";import N from"../../Core/ErrorAlert.js";import S from"../../../common/error.js";import A from"../../../common/cn.js";const C=({isFocused:C,onFocus:D,onBlur:B})=>{var E;const{formId:U,chatId:J,userId:_,studioUserId:F,embedUserId:T,deploymentId:H,deploymentType:R,pickaxe:W,styles:L,colors:P,responsiveBy:z,isNewChat:G,isRtl:K,setIsNewChat:M,setIsShowIceBreaker:q,onGenerateComplete:Q}=l(),{messages:V,status:X,limits:Y,isGenerating:Z,setMessages:$,setStatus:ee,setLimitData:te,setError:se}=c(),{documents:oe,isUploading:ie,isImageUploadAllowed:re,documentError:ne,onFileUpload:ae,setDocuments:le,setDocumentError:ce}=f(),{scrollStartSession:de,scrollEndSession:ue,scrollToBottom:me}=g({auto:!0}),{artifacts:pe,currentPopupType:fe,setArtifacts:ge,setCurrentArtifact:he}=h(),ve=m(),be=p(),[je,xe]=i(""),ye=r(null),ke=v(),{isHover:Oe}=ke,we=e(ke,["isHover"]),Ie=v(),{isHover:Ne}=Ie,Se=e(Ie,["isHover"]),Ae=u(),Ce=d(),De=n((()=>{var e,t,s;return!!G&&(!!W&&(!ve.isLoading&&(!((null!==(t=null===(e=ve.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&!!(null===(s=W.icebreakers)||void 0===s?void 0:s.length))))}),[W,G,ve.data,ve.isLoading]),Be=n((()=>{if(Z||ie)return!1;return!!je.trim()&&oe.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Z,ie,je,oe]),Ee=e=>t(void 0,void 0,void 0,(function*(){try{if("idle"!==X||ie)return;const t=null!=e?e:je;if(!t)return;se(""),ce(""),te(null),xe(""),M(!1),ee("fetching"),de(),me();const s=oe.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)).map((e=>e.documentId)).filter(Boolean),o="enduserupload"===(null==W?void 0:W.documentuploadtype)&&s.length>0,i=[...Array.from(V),Object.assign({id:V.length+1,role:"user",content:t},o&&{documentIds:s})];$(i),me(),o&&le([]);const r=(yield be.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:U,responseId:J,value:t},o&&{documentIds:s}),_&&{userId:_}),F&&{studioUserId:F}),T&&{embedUserId:T}),H&&{deploymentId:H}))).body;if(!r)throw new Error("Streaming error");const n=i.length,a=new TextDecoder,l=r.getReader();let c="",d=!0,u=!1,m=[...null!=pe?pe:[]];const p=x({onEvent:e=>{if("delta"===e.event){const t=JSON.parse(e.data).token.replace(/\u200B/g,"");c+=t,$([...i.slice(0,n),{id:V.length+1,role:"assistant",content:c}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);m=m.filter((e=>!(e.id===t.id&&e.version===t.version))),m.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ge(m),fe.startsWith("inline")||he({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);m=m.filter((e=>!(e.id===t.id&&e.version===t.version))),m.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),ge(m),fe.startsWith("inline")||he({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);m=m.filter((e=>!(e.id===t.id&&e.version===t.version))),m.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ge(m),fe.startsWith("inline")||he({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");m=m.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),ge(m)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);ge(m.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);se(t.error||"Something went wrong, please try again.")}else"stop"===e.event&&(d=!1)}});for(;d;){const{value:e,done:t}=yield l.read();if(t){d=!1;break}const s=a.decode(e);s&&(u||(ee("streaming"),u=!0),p.feed(s))}null==Q||Q(J)}catch(e){let t=S(e)||"";t&&!t.includes("Unexpected token 'A',")||(t="Oops! We're experiencing high traffic at the moment. Please try again later.");const s=Object.entries(Y).find((([e])=>t.includes(e)));s?te(s[1]):se(t)}finally{me(),ee("idle"),ue()}}));return a((()=>{q(De)}),[De]),s("div",Object.assign({className:A("w-full flex flex-col items-center absolute bottom-0 left-0 z-1",!("chat-input"===R&&G)&&"px-4 pb-4"),dir:K?"rtl":"ltr"},{children:o("div",Object.assign({className:"relative flex flex-col max-w-[800px] w-full"},{children:[!("chat-input"===R&&G)&&s("div",Object.assign({className:A("absolute bottom-full",K?"left-0":"right-0")},{children:s("div",Object.assign({className:A("flex flex-col gap-2 pb-4 px-2",K?"justify-start":"justify-end","viewport"===z?K?"min-[767px]:items-start":"min-[767px]:items-end":K?"@[767px]/pickaxe-root:items-start":"@[767px]/pickaxe-root:items-end")},{children:De&&!C&&s(O,{data:(null==W?void 0:W.icebreakers)||[],onSend:Ee})}))})),o("div",Object.assign({className:A("flex flex-col gap-y-3 px-4 py-3","block"===L.formFieldStyle&&"shadow"),style:Ce},{children:["idle"===X&&oe.length>0&&s(w,{isDisabled:"idle"!==X}),o("div",Object.assign({className:A("flex items-end gap-x-2",K&&"flex-row-reverse")},{children:[s(I,Object.assign({className:A(Ae.i1,"max-h-60 min-h-[27px] w-full border-transparent bg-transparent",!je.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap",K?"text-right":"text-left"),value:je,placeholder:null!==(E=null==W?void 0:W.placeholdertext)&&void 0!==E?E:K?"بماذا تريد أن تتحدث؟":"What do you want to talk about?",onChange:e=>xe(e),onKeyDown:e=>{"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),ie||"idle"!==X||Ee()))}},D&&{onFocus:D},B&&{onBlur:B},{dir:K?"rtl":"ltr"})),o("div",Object.assign({className:"flex items-center gap-x-2"},{children:["enduserupload"===(null==W?void 0:W.documentuploadtype)&&o("button",Object.assign({className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full transition-colors duration-200 ease-in-out",style:{backgroundColor:Ne?P.accent+"10":void 0,color:Ne?P.accent:P.accent+"80"},disabled:ie||"idle"!==X,onClick:()=>{var e;return null===(e=ye.current)||void 0===e?void 0:e.click()}},Se,{children:[s("input",{id:"file-upload",ref:ye,type:"file",accept:[...b,...re?j:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){M(!1),yield ae(Array.from(e.target.files||[])),e.target.value=""}))}),s(y,{className:"h-6 w-6 shrink-0"})]})),s("button",Object.assign({className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full duration-200 transition-colors ease-in-out",style:{backgroundColor:Oe||Be?P.accent:P.accent+"10",color:Oe||Be?P.accentText:P.accent+"80"},disabled:"idle"!==X||ie,onClick:()=>Ee()},we,{children:s(k,{className:A("h-6 w-6 shrink-0",K&&"transform scale-x-[-1]")})}))]}))]}))]})),ne&&s(N,{error:ne,className:"mt-3"})]}))}))};export{C as default};
1
+ import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as s,jsxs as o}from"react/jsx-runtime";import{useState as i,useRef as n,useMemo as r,useEffect as a}from"react";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 u}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as m}from"../../../hooks/pickaxe/useConversation.js";import{useAuthContext as p}from"../Addons/Auth/hooks/useAuthContext.js";import{useSubmit as f}from"../../../hooks/pickaxe/useSubmit.js";import{useDocument as g}from"../Addons/Document/hooks/useDocument.js";import{useScroll as h}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as v}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as b}from"../../../hooks/core/useHover.js";import{allowedFileMimeTypes as j,allowedImageMimeTypes as x}from"../../../common/documents.js";import{createParser as k}from"eventsource-parser";import y from"../../Icons/attach-vertical.svg.js";import O from"../../Icons/arrow-right.svg.js";import w from"../Addons/IceBreaker/index.js";import I from"../Addons/Document/List.js";import S from"../../Core/Textarea.js";import N from"../../Core/ErrorAlert.js";import A from"../../../common/error.js";import C from"../../../common/cn.js";const D=({isFocused:D,onFocus:B,onBlur:E})=>{var U;const{formId:J,chatId:T,userId:_,studioUserId:F,embedUserId:L,deploymentId:H,deploymentType:R,pickaxe:W,styles:P,colors:z,responsiveBy:G,isNewChat:K,isRtl:M,isEmailLogin:q,setIsNewChat:Q,setIsShowIceBreaker:V,onGenerateComplete:X}=l(),{token:Y,isLoggedOut:Z,isSent:$}=p(),{messages:ee,status:te,limits:se,isGenerating:oe,setMessages:ie,setStatus:ne,setLimitData:re,setError:ae}=d(),{documents:le,isUploading:de,isImageUploadAllowed:ce,documentError:ue,onFileUpload:me,setDocuments:pe,setDocumentError:fe}=g(),{scrollStartSession:ge,scrollEndSession:he,scrollToBottom:ve}=h({auto:!0}),{artifacts:be,currentPopupType:je,setArtifacts:xe,setCurrentArtifact:ke}=v(),ye=m(),Oe=f(),[we,Ie]=i(""),Se=n(null),Ne=b(),{isHover:Ae}=Ne,Ce=e(Ne,["isHover"]),De=b(),{isHover:Be}=De,Ee=e(De,["isHover"]),Ue=u(),Je=c(),Te="chat-input"===R&&K&&!$,_e="chat-input"===R&&q&&Z&&$,Fe=r((()=>{var e,t,s;return!!K&&(!!W&&(!ye.isLoading&&(!((null!==(t=null===(e=ye.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&!!(null===(s=W.icebreakers)||void 0===s?void 0:s.length))))}),[W,K,ye.data,ye.isLoading]),Le=r((()=>{if(oe||de)return!1;return!!we.trim()&&le.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[oe,de,we,le]),He=e=>t(void 0,void 0,void 0,(function*(){try{if("idle"!==te||de)return;const t=null!=e?e:we;if(!t)return;ae(""),fe(""),re(null),Ie(""),Q(!1),ne("fetching"),ge(),ve();const s=le.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)).map((e=>e.documentId)).filter(Boolean),o="enduserupload"===(null==W?void 0:W.documentuploadtype)&&s.length>0,i=[...Array.from(ee),Object.assign({id:ee.length+1,role:"user",content:t},o&&{documentIds:s})];ie(i),ve(),o&&pe([]);const n=(yield Oe.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:J,responseId:T,value:t},o&&{documentIds:s}),_&&{userId:_}),F&&{studioUserId:F}),L&&{embedUserId:L}),Y&&{embedSessionToken:Y}),H&&{deploymentId:H}))).body;if(!n)throw new Error("Streaming error");const r=i.length,a=new TextDecoder,l=n.getReader();let d="",c=!0,u=!1,m=[...null!=be?be:[]];const p=k({onEvent:e=>{if("delta"===e.event){const t=JSON.parse(e.data).token.replace(/\u200B/g,"");d+=t,ie([...i.slice(0,r),{id:ee.length+1,role:"assistant",content:d}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);m=m.filter((e=>!(e.id===t.id&&e.version===t.version))),m.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),xe(m),je.startsWith("inline")||ke({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);m=m.filter((e=>!(e.id===t.id&&e.version===t.version))),m.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),xe(m),je.startsWith("inline")||ke({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);m=m.filter((e=>!(e.id===t.id&&e.version===t.version))),m.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),xe(m),je.startsWith("inline")||ke({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");m=m.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),xe(m)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);xe(m.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);ae(t.error||"Something went wrong, please try again.")}else"stop"===e.event&&(c=!1)}});for(;c;){const{value:e,done:t}=yield l.read();if(t){c=!1;break}const s=a.decode(e);s&&(u||(ne("streaming"),u=!0),p.feed(s))}null==X||X(T)}catch(e){let t=A(e)||"";t&&!t.includes("Unexpected token 'A',")||(t="Oops! We're experiencing high traffic at the moment. Please try again later.");const s=Object.entries(se).find((([e])=>t.includes(e)));s?re(s[1]):ae(t)}finally{ve(),ne("idle"),he()}}));return a((()=>{V(Fe)}),[Fe]),_e?null:s("div",Object.assign({className:C("w-full flex flex-col items-center absolute bottom-0 left-0 z-1",!Te&&"px-4 pb-4"),dir:M?"rtl":"ltr"},{children:o("div",Object.assign({className:"relative flex flex-col max-w-[800px] w-full"},{children:[!Te&&s("div",Object.assign({className:C("absolute bottom-full",M?"left-0":"right-0")},{children:s("div",Object.assign({className:C("flex flex-col gap-2 pb-4 px-2",M?"justify-start":"justify-end","viewport"===G?M?"min-[767px]:items-start":"min-[767px]:items-end":M?"@[767px]/pickaxe-root:items-start":"@[767px]/pickaxe-root:items-end")},{children:Fe&&!D&&s(w,{data:(null==W?void 0:W.icebreakers)||[],onSend:He})}))})),o("div",Object.assign({className:C("flex flex-col gap-y-3 px-4 py-3","block"===P.formFieldStyle&&"shadow"),style:Je},{children:["idle"===te&&le.length>0&&s(I,{isDisabled:"idle"!==te}),o("div",Object.assign({className:C("flex items-end gap-x-2",M&&"flex-row-reverse")},{children:[s(S,Object.assign({className:C(Ue.i1,"max-h-60 min-h-[27px] w-full border-transparent bg-transparent",!we.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap",M?"text-right":"text-left"),value:we,placeholder:null!==(U=null==W?void 0:W.placeholdertext)&&void 0!==U?U:M?"بماذا تريد أن تتحدث؟":"What do you want to talk about?",onChange:e=>Ie(e),onKeyDown:e=>{"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),de||"idle"!==te||He()))}},B&&{onFocus:B},E&&{onBlur:E},{dir:M?"rtl":"ltr"})),o("div",Object.assign({className:"flex items-center gap-x-2"},{children:["enduserupload"===(null==W?void 0:W.documentuploadtype)&&o("button",Object.assign({className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full transition-colors duration-200 ease-in-out",style:{backgroundColor:Be?z.accent+"10":void 0,color:Be?z.accent:z.accent+"80"},disabled:de||"idle"!==te,onClick:()=>{var e;return null===(e=Se.current)||void 0===e?void 0:e.click()}},Ee,{children:[s("input",{id:"file-upload",ref:Se,type:"file",accept:[...j,...ce?x:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){Q(!1),yield me(Array.from(e.target.files||[])),e.target.value=""}))}),s(y,{className:"h-6 w-6 shrink-0"})]})),s("button",Object.assign({className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full duration-200 transition-colors ease-in-out",style:{backgroundColor:Ae||Le?z.accent:z.accent+"10",color:Ae||Le?z.accentText:z.accent+"80"},disabled:"idle"!==te||de,onClick:()=>He()},Ce,{children:s(O,{className:C("h-6 w-6 shrink-0",M&&"transform scale-x-[-1]")})}))]}))]}))]})),ue&&s(N,{error:ue,className:"mt-3"})]}))}))};export{D as default};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{useState as r,useRef as n,useEffect as s}from"react";import{usePickaxeContext as i}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useDimensionContext as c}from"../../../hooks/pickaxe/useDimensionContext.js";import{useDocument as m}from"../Addons/Document/hooks/useDocument.js";import u from"./History/index.js";import p from"./Input.js";const d=()=>{const{deploymentType:d,isNewChat:f}=i(),{width:a,height:h,setDimension:l}=c(),{setDocuments:x}=m(),[j,k]=r(!1),w=n(null);return s((()=>()=>{x([])}),[]),s((()=>{if(!w.current)return;const e=new ResizeObserver((e=>{for(const t of e){const{width:e,height:o}=t.contentRect;l(parseInt(e.toFixed(0)),parseInt(o.toFixed(0)))}}));return e.observe(w.current),()=>{e.disconnect()}}),[w.current]),e("div",Object.assign({ref:w,className:"relative flex flex-grow flex-col items-center"},{children:"chat-input"===d&&f?e(p,{}):t(o,{children:[e(u,{hideInfo:h<=545||a<=350||j,isInputFocused:j}),e(p,{isFocused:j,onFocus:()=>k(!0),onBlur:()=>k(!1)})]})}))};export{d as default};
1
+ import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{useState as s,useRef as r,useEffect as n}from"react";import{usePickaxeContext as i}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as c}from"../Addons/Auth/hooks/useAuthContext.js";import{useDimensionContext as m}from"../../../hooks/pickaxe/useDimensionContext.js";import{useDocument as u}from"../Addons/Document/hooks/useDocument.js";import d from"./History/index.js";import p from"./Input.js";const f=()=>{const{deploymentType:f,isNewChat:h}=i(),{isSent:a}=c(),{width:x,height:l,setDimension:j}=m(),{setDocuments:k}=u(),[w,D]=s(!1),F=r(null),I="chat-input"===f&&h&&!a;return n((()=>()=>{k([])}),[]),n((()=>{if(!F.current)return;const e=new ResizeObserver((e=>{for(const t of e){const{width:e,height:o}=t.contentRect;j(parseInt(e.toFixed(0)),parseInt(o.toFixed(0)))}}));return e.observe(F.current),()=>{e.disconnect()}}),[F.current]),e("div",Object.assign({ref:F,className:"relative flex flex-grow flex-col items-center"},{children:I?e(p,{}):t(o,{children:[e(d,{hideInfo:l<=545||x<=350||w,isInputFocused:w}),e(p,{isFocused:w,onFocus:()=>D(!0),onBlur:()=>D(!1)})]})}))};export{f as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as t,jsx as s}from"react/jsx-runtime";import{useState as i}from"react";import{usePickaxeContext as n}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as o}from"../../../../hooks/pickaxe/useResponseContext.js";import{useSubmit as r}from"../../../../hooks/pickaxe/useSubmit.js";import{useDocument as a}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as d}from"../../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as l}from"../../Addons/Artifact/hooks/useArtifactContext.js";import{extractUrlsFromText as c}from"../../../../common/utils.js";import{encode as u}from"@nem035/gpt-3-encoder";import{createParser as m}from"eventsource-parser";import p from"../../common/PickaxeBranding.js";import f from"../../common/PickaxeButton.js";import g from"../../../../common/error.js";const h=({questions:h})=>{var v;const{formId:b,userId:j,studioUserId:O,embedUserId:x,deploymentId:w,pickaxe:k,misc:y,translations:I,isRtl:S,setChatId:N,setIsNewChat:C,onGenerateComplete:A}=n(),{status:D,limits:E,isGenerating:P,setResponse:R,setMessages:U,setStatus:q,setLimitData:J,setError:_}=o(),{documents:W,websiteLink:B,isUploading:L,onWebsiteUpload:T,setDocuments:G,setDocumentError:M}=a(),{scrollStartSession:K,scrollEndSession:X,scrollToTarget:Y}=d({auto:!(null==k?void 0:k.enablechatresponses)}),{artifacts:z,currentPopupType:F,setArtifacts:H,setCurrentArtifact:Q}=l(),V=r(),[Z,$]=i(!1);return t("div",Object.assign({className:"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:S?"rtl":"ltr"},{children:[s("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:s(f,Object.assign({className:"px-5 min-h-[42px]",isDisabled:L||"idle"!==D||P||Z,onClick:()=>e(void 0,void 0,void 0,(function*(){try{if("idle"!==D||L||Z)return;_(""),M(""),J(null),R(null);const e=["Multiple Choice","Checkbox"];for(const t of h){if(u(t.input).length>t.maxLength&&!e.includes(t.type))throw new Error("One or more of your responses is too long!");if(t.isRequired&&!t.input.trim()&&"userinput:documentupload"!==t.id)throw new Error("You must fill out all required fields.")}const t=W.filter((e=>"finished"===e.status)),s=W.map((e=>e.name)),i="enduserupload"===(null==k?void 0:k.documentuploadtype),n=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),o=c(B).filter((e=>!s.includes(e)));if(o.length){const e=o[o.length-1];$(!0);const s=yield T(e);s&&(t.push(s),yield new Promise((e=>setTimeout(e,5e3)))),$(!1)}else if(n&&i&&!t.length)return void M("Please paste a valid website/video link or drag a file to add to the knowledge base.");const r=t.map((e=>e.documentId)).filter(Boolean),a=i&&r.length>0;let d={};h.forEach((e=>d=Object.assign(Object.assign({},d),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?t.map((e=>e.name)).join(",")||"":e.input}))),q("fetching"),K(),Y();const l=yield V.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:b,valueObj:d},a&&{documentIds:r}),j&&{userId:j}),O&&{studioUserId:O}),x&&{embedUserId:x}),w&&{deploymentId:w})),p=l.body;if(!p)throw new Error("Streaming error");const f=l.headers.get("X-Pickaxe-Response-Id");if(!f)throw new Error("Response ID not found");const g=new TextDecoder,v=p.getReader();let y="",I=!0,S=!1,E=[...null!=z?z:[]];const P=m({onEvent:e=>{if("delta"===e.event){const t=JSON.parse(e.data).token.replace(/\u200B/g,"");y+=t,R({formId:b,responseId:f,documentIds:r,questions:h.map((e=>({id:e.id,question:e.main,answer:e.input}))),questionResponse:y,messageCount:0,sentAt:new Date}),(null==k?void 0:k.enablechatresponses)&&U([{id:0,role:"assistant",content:y}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);E=E.filter((e=>!(e.id===t.id&&e.version===t.version))),E.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),H(E),F.startsWith("inline")||Q({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);E=E.filter((e=>!(e.id===t.id&&e.version===t.version))),E.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),H(E),F.startsWith("inline")||Q({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);E=E.filter((e=>!(e.id===t.id&&e.version===t.version))),E.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),H(E),F.startsWith("inline")||Q({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");E=E.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),H(E)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);H(E.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);_(t.error||"Something went wrong, please try again.")}else"stop"===e.event&&(I=!1)}});for(;I;){const{value:e,done:t}=yield v.read();if(t){I=!1;break}const s=g.decode(e);s&&(S||(q("streaming"),S=!0,a&&G([]),(null==k?void 0:k.enablechatresponses)&&(N(f),C(!1))),P.feed(s))}null==A||A(f)}catch(e){let t=g(e)||"";t&&!t.includes("Unexpected token 'A',")||(t="Oops! We're experiencing high traffic at the moment. Please try again later.");const s=Object.entries(E).find((([e])=>t.includes(e)));s?J(s[1]):_(t),Y()}finally{q("idle"),$(!1),X()}}))},{children:Z?(null==I?void 0:I.processing)||"Processing...":L?(null==I?void 0:I.uploading)||"Uploading...":"fetching"===D||"streaming"===D?(null==I?void 0:I.loading)||"Loading...":null!==(v=null==k?void 0:k.submittext)&&void 0!==v?v:"Submit"}))})),!y.isWhiteLabel&&s("div",Object.assign({className:"flex justify-end pr-3"},{children:s(p,{})}))]}))};export{h as default};
1
+ import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as t,jsx as s}from"react/jsx-runtime";import{useState as n}from"react";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as o}from"../../Addons/Auth/hooks/useAuthContext.js";import{useResponseContext as r}from"../../../../hooks/pickaxe/useResponseContext.js";import{useSubmit as a}from"../../../../hooks/pickaxe/useSubmit.js";import{useDocument as d}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as l}from"../../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as c}from"../../Addons/Artifact/hooks/useArtifactContext.js";import{extractUrlsFromText as u}from"../../../../common/utils.js";import{encode as m}from"@nem035/gpt-3-encoder";import{createParser as p}from"eventsource-parser";import f from"../../common/PickaxeBranding.js";import g from"../../common/PickaxeButton.js";import h from"../../../../common/error.js";const v=({questions:v})=>{var b;const{formId:j,userId:O,studioUserId:x,embedUserId:k,deploymentId:w,pickaxe:y,misc:I,translations:S,isRtl:A,setChatId:C,setIsNewChat:N,onGenerateComplete:D}=i(),{token:E}=o(),{status:P,limits:R,isGenerating:U,setResponse:q,setMessages:J,setStatus:_,setLimitData:T,setError:W}=r(),{documents:B,websiteLink:L,isUploading:G,onWebsiteUpload:M,setDocuments:K,setDocumentError:X}=d(),{scrollStartSession:Y,scrollEndSession:z,scrollToTarget:F}=l({auto:!(null==y?void 0:y.enablechatresponses)}),{artifacts:H,currentPopupType:Q,setArtifacts:V,setCurrentArtifact:Z}=c(),$=a(),[ee,te]=n(!1);return t("div",Object.assign({className:"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:A?"rtl":"ltr"},{children:[s("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:s(g,Object.assign({className:"px-5 min-h-[42px]",isDisabled:G||"idle"!==P||U||ee,onClick:()=>e(void 0,void 0,void 0,(function*(){try{if("idle"!==P||G||ee)return;W(""),X(""),T(null),q(null);const e=["Multiple Choice","Checkbox"];for(const t of v){if(m(t.input).length>t.maxLength&&!e.includes(t.type))throw new Error("One or more of your responses is too long!");if(t.isRequired&&!t.input.trim()&&"userinput:documentupload"!==t.id)throw new Error("You must fill out all required fields.")}const t=B.filter((e=>"finished"===e.status)),s=B.map((e=>e.name)),n="enduserupload"===(null==y?void 0:y.documentuploadtype),i=v.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),o=u(L).filter((e=>!s.includes(e)));if(o.length){const e=o[o.length-1];te(!0);const s=yield M(e);s&&(t.push(s),yield new Promise((e=>setTimeout(e,5e3)))),te(!1)}else if(i&&n&&!t.length)return void X("Please paste a valid website/video link or drag a file to add to the knowledge base.");const r=t.map((e=>e.documentId)).filter(Boolean),a=n&&r.length>0;let d={};v.forEach((e=>d=Object.assign(Object.assign({},d),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?t.map((e=>e.name)).join(",")||"":e.input}))),_("fetching"),Y(),F();const l=yield $.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:j,valueObj:d},a&&{documentIds:r}),O&&{userId:O}),x&&{studioUserId:x}),k&&{embedUserId:k}),E&&{embedSessionToken:E}),w&&{deploymentId:w})),c=l.body;if(!c)throw new Error("Streaming error");const f=l.headers.get("X-Pickaxe-Response-Id");if(!f)throw new Error("Response ID not found");const g=new TextDecoder,h=c.getReader();let b="",I=!0,S=!1,A=[...null!=H?H:[]];const R=p({onEvent:e=>{if("delta"===e.event){const t=JSON.parse(e.data).token.replace(/\u200B/g,"");b+=t,q({formId:j,responseId:f,documentIds:r,questions:v.map((e=>({id:e.id,question:e.main,answer:e.input}))),questionResponse:b,messageCount:0,sentAt:new Date}),(null==y?void 0:y.enablechatresponses)&&J([{id:0,role:"assistant",content:b}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);A=A.filter((e=>!(e.id===t.id&&e.version===t.version))),A.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),V(A),Q.startsWith("inline")||Z({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);A=A.filter((e=>!(e.id===t.id&&e.version===t.version))),A.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),V(A),Q.startsWith("inline")||Z({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);A=A.filter((e=>!(e.id===t.id&&e.version===t.version))),A.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),V(A),Q.startsWith("inline")||Z({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");A=A.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),V(A)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);V(A.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);W(t.error||"Something went wrong, please try again.")}else"stop"===e.event&&(I=!1)}});for(;I;){const{value:e,done:t}=yield h.read();if(t){I=!1;break}const s=g.decode(e);s&&(S||(_("streaming"),S=!0,a&&K([]),(null==y?void 0:y.enablechatresponses)&&(C(f),N(!1))),R.feed(s))}null==D||D(f)}catch(e){let t=h(e)||"";t&&!t.includes("Unexpected token 'A',")||(t="Oops! We're experiencing high traffic at the moment. Please try again later.");const s=Object.entries(R).find((([e])=>t.includes(e)));s?T(s[1]):W(t),F()}finally{_("idle"),te(!1),z()}}))},{children:ee?(null==S?void 0:S.processing)||"Processing...":G?(null==S?void 0:S.uploading)||"Uploading...":"fetching"===P||"streaming"===P?(null==S?void 0:S.loading)||"Loading...":null!==(b=null==y?void 0:y.submittext)&&void 0!==b?b:"Submit"}))})),!I.isWhiteLabel&&s("div",Object.assign({className:"flex justify-end pr-3"},{children:s(f,{})}))]}))};export{v as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../_virtual/_tslib.js";import{jsx as o}from"react/jsx-runtime";import{createContext as i,useState as t,useEffect as s}from"react";import{ArtifactProvider as r}from"./Addons/Artifact/Provider.js";import d from"./Addons/Document/Provider.js";import n from"./ResponseProvider.js";import a from"./DimensionProvider.js";const l=i({}),c=({children:i,userId:c="",studioUserId:m="",deploymentId:p="",embedUserId:f="",deploymentType:y,deploymentDimensions:h,deploymentMisc:b,styles:u,colors:F,limits:I={},misc:v={isWhiteLabel:!0,isProfileImage:!0,isChatImage:!0,isTitle:!0,isDescription:!0,isHistory:!0},translations:w,artifact:g={popupType:"auto"},responsiveBy:j="viewport",forceMobile:P=!1,disableHtml:x=!1,disableJs:C=!1,disableCss:D=!1,loadFont:S=!0,isRtl:k=!1,isEmbed:O=!1,isDropShadow:R=!1,onGenerateComplete:T})=>{const[H,U]=t(""),[A,B]=t(""),[L,M]=t(""),[E,N]=t(null),[G,J]=t(!1),[W,_]=t(!0),[z,Y]=t(!0);return s((()=>{J(!1)}),[null==u?void 0:u.font]),s((()=>{e(void 0,void 0,void 0,(function*(){if("undefined"!=typeof window&&S&&!G&&(null==u?void 0:u.font)&&"Real Head Pro"!==u.font)try{(yield import("webfontloader")).default.load({google:{families:[u.font]},active:()=>{J(!0)},inactive:()=>{console.error("[pxe] failed to load font {styles.font}"),J(!0)}})}catch(e){console.error("[pxe] failed to load font:",e),J(!0)}}))}),[S,G,null==u?void 0:u.font]),o(l.Provider,Object.assign({value:Object.assign({formId:H,chatId:A,sessionId:L,userId:c,studioUserId:m,embedUserId:f,deploymentId:p,deploymentType:y,deploymentDimensions:h,deploymentMisc:b,pickaxe:E,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},u),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},F),misc:v,translations:Object.assign({"new-chat":"New chat","see-history":"See history","see-input":"See input","hide-input":"Hide input",processing:"Processing...",uploading:"Uploading...",loading:"Loading...","powered-by-pickaxe":"Powered by Pickaxe","form-doc-placeholder":"Paste a website/video link or drag a file",website:"Website","file-limit-reached":"You have reached the file limit.",created:"Created",updated:"Updated",rewrote:"Rewrote",copy:"Copy","download-as":"Download as"},w),artifact:g,responsiveBy:j,forceMobile:P,loadFont:S,disableHtml:x,disableJs:C,disableCss:D,isFontLoaded:G,isNewChat:W,isShowIceBreaker:z,isRtl:k,isEmbed:O,isDropShadow:R,setIsFontLoaded:J,setFormId:U,setChatId:B,setSessionId:M,setPickaxe:N,setIsNewChat:_,setIsShowIceBreaker:Y},T&&{onGenerateComplete:T})},{children:o(n,Object.assign({limits:I},{children:o(a,{children:o(d,{children:o(r,Object.assign({},g,{children:i}))})})}))}))};export{l as PickaxeContext,c as PickaxeProvider};
1
+ import{__awaiter as e}from"../../_virtual/_tslib.js";import{jsx as i}from"react/jsx-runtime";import{createContext as o,useState as t,useEffect as s}from"react";import{ArtifactProvider as n}from"./Addons/Artifact/Provider.js";import r from"./DimensionProvider.js";import d from"./ResponseProvider.js";import a from"./Addons/Document/Provider.js";import l from"./Addons/Auth/Provider.js";const c=o({}),m=({children:o,userId:m="",studioUserId:p="",deploymentId:f="",embedUserId:u="",deploymentType:y,deploymentDimensions:h,deploymentMisc:b,styles:v,colors:g,limits:F={},misc:I={isWhiteLabel:!0,isProfileImage:!0,isChatImage:!0,isTitle:!0,isDescription:!0,isHistory:!0},translations:w,artifact:P={popupType:"auto"},responsiveBy:j="viewport",forceMobile:x=!1,disableHtml:S=!1,disableJs:k=!1,disableCss:C=!1,loadFont:D=!0,isRtl:R=!1,isEmbed:O=!1,isDropShadow:T=!1,isEmailLogin:A=!1,onGenerateComplete:E})=>{const[H,L]=t(""),[U,B]=t(""),[M,N]=t(""),[W,G]=t(null),[J,_]=t(!1),[z,Y]=t(!0),[q,K]=t(!0);return s((()=>{_(!1)}),[null==v?void 0:v.font]),s((()=>{e(void 0,void 0,void 0,(function*(){if("undefined"!=typeof window&&D&&!J&&(null==v?void 0:v.font)&&"Real Head Pro"!==v.font)try{(yield import("webfontloader")).default.load({google:{families:[v.font]},active:()=>{_(!0)},inactive:()=>{console.error("[pxe] failed to load font {styles.font}"),_(!0)}})}catch(e){console.error("[pxe] failed to load font:",e),_(!0)}}))}),[D,J,null==v?void 0:v.font]),i(c.Provider,Object.assign({value:Object.assign({formId:H,chatId:U,sessionId:M,userId:m,studioUserId:p,embedUserId:u,deploymentId:f,deploymentType:y,deploymentDimensions:h,deploymentMisc:b,pickaxe:W,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},v),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},g),misc:I,translations:Object.assign({"new-chat":"New chat","see-history":"See history","see-input":"See input","hide-input":"Hide input",processing:"Processing...",uploading:"Uploading...",loading:"Loading...","powered-by-pickaxe":"Powered by Pickaxe","form-doc-placeholder":"Paste a website/video link or drag a file",website:"Website",copy:"Copy","file-limit-reached":"You have reached the file limit.",save:"Save","save-as":"Save as","please-enter-email-to-continue":"Please enter your email to continue:","enter-email-to-continue":"Enter here your email to continue",submit:"Submit",sending:"Sending...","check-your-inbox":"Check your inbox","we-sent-your-an-activation-link":"We sent you an activation link. Please be sure to check your spam folder too.",resend:"Resend",resending:"Resending..."},w),artifact:P,responsiveBy:j,forceMobile:x,loadFont:D,disableHtml:S,disableJs:k,disableCss:C,isFontLoaded:J,isNewChat:z,isShowIceBreaker:q,isRtl:R,isEmbed:O,isDropShadow:T,isEmailLogin:A,setIsFontLoaded:_,setFormId:L,setChatId:B,setSessionId:N,setPickaxe:G,setIsNewChat:Y,setIsShowIceBreaker:K},E&&{onGenerateComplete:E})},{children:i(l,{children:i(r,{children:i(d,Object.assign({limits:F},{children:i(a,{children:i(n,Object.assign({},P,{children:o}))})}))})})}))};export{c as PickaxeContext,m as PickaxeProvider};
@@ -0,0 +1 @@
1
+ import{__rest as t}from"../../../_virtual/_tslib.js";import{jsx as s}from"react/jsx-runtime";import{forwardRef as e}from"react";import{useStyleInput as o}from"../../../hooks/studio/useStyleInput.js";import{usePickaxeContext as r}from"../../../hooks/pickaxe/usePickaxeContext.js";import a from"../../../common/cn.js";const i=e(((e,i)=>{var{className:m,style:l}=e,n=t(e,["className","style"]);const{styles:c}=r(),p=o();return s("input",Object.assign({ref:i,style:Object.assign(Object.assign({},p),l),className:a("outline-none ring-0 px-4 py-3","block"===c.formFieldStyle&&"shadow",m),autoComplete:"off"},n))}));i.displayName="PickaxeInput";export{i as default};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{usePickaxe as s}from"../../hooks/pickaxe/usePickaxe.js";import{useState as r,useEffect as l}from"react";import{usePickaxeContext as a}from"../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as i}from"../../hooks/pickaxe/useResponseContext.js";import{useDocumentContext as m}from"./Addons/Document/hooks/useDocumentContext.js";import{useArtifactContext as n}from"./Addons/Artifact/hooks/useArtifactContext.js";import{generateId as c}from"../../common/utils.js";import{ScrollProvider as p}from"./Addons/Scroll/Provider.js";import x from"./common/PickaxeSkeleton.js";import f from"./Chat/index.js";import d from"./Form/index.js";import u from"../../common/cn.js";const h=({formId:h,className:k})=>{const{chatId:j,styles:w,colors:g,responsiveBy:N,deploymentType:b,isNewChat:v,setFormId:C,setChatId:y,setSessionId:A,setPickaxe:P}=a(),{setMessages:I,setResponse:O,setError:D,setLimitData:S,setStatus:F}=i(),{setDocumentError:R}=m(),{setCurrentArtifact:E}=n(),[L,B]=r(!1),H=s();return l((()=>{C(h)}),[h]),l((()=>{if(!H.data)return;const e=H.data.chatflag;y(e?c(15):""),A(c(15)),e?I([]):O(null),D(""),R(""),S(null),E(null),P(H.data),B(!0)}),[H.data]),l((()=>{D(""),R(""),S(null),I([]),O(null),E(null),F("idle")}),[j]),H.data?e("div",Object.assign({className:u("relative @container/pickaxe-root flex flex-col flex-grow w-full",!b&&"h-full","popup"===b&&j&&"h-full","dark"===w.theme&&"dark",k),style:Object.assign({backgroundColor:"chat-input"===b&&v?"transparent":g.primary,color:g.text},w.font&&"Real Head Pro"!==w.font&&{fontFamily:w.font})},{children:H.isLoading||!L?e("div",Object.assign({className:u("flex items-center flex-col w-full pt-12 px-4 pb-10","viewport"===N?"min-[767px]:pb-40":"@[767px]/pickaxe-root:pb-40")},{children:t("div",Object.assign({className:"flex w-full items-center max-w-[700px] flex-col"},{children:[e(x,{className:"w-[72px] h-[72px]"}),e(x,{className:"h-[20px] mt-6 w-full"}),e(x,{className:"h-[20px] mt-2 w-full"}),e(x,{className:"h-[20px] mt-2 w-full max-w-[400px]"}),e("div",Object.assign({className:"flex flex-col gap-y-8 w-full mt-6"},{children:e(x,{className:u("w-full min-h-[48px]","viewport"===N?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]")})}))]}))})):e(o,{children:e(p,j?{children:e(f,{})}:{children:e(d,{})})})})):null};export{h as Pickaxe};
1
+ import{jsx as e,Fragment as t,jsxs as o}from"react/jsx-runtime";import{usePickaxe as s}from"../../hooks/pickaxe/usePickaxe.js";import{useState as r,useEffect as a}from"react";import{usePickaxeContext as l}from"../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as i}from"./Addons/Auth/hooks/useAuthContext.js";import{useResponseContext as m}from"../../hooks/pickaxe/useResponseContext.js";import{useDocumentContext as n}from"./Addons/Document/hooks/useDocumentContext.js";import{useArtifactContext as c}from"./Addons/Artifact/hooks/useArtifactContext.js";import{generateId as p}from"../../common/utils.js";import{ScrollProvider as x}from"./Addons/Scroll/Provider.js";import d from"./common/PickaxeSkeleton.js";import f from"./Chat/index.js";import u from"./Form/index.js";import h from"./Addons/Auth/index.js";import k from"../../common/cn.js";const j=({formId:j,className:w})=>{const{chatId:g,styles:A,colors:N,responsiveBy:C,deploymentType:b,isNewChat:v,isEmailLogin:y,setFormId:O,setChatId:P,setSessionId:I,setPickaxe:S}=l(),{isLoggedOut:D,isSent:L}=i(),{setMessages:E,setResponse:F,setError:R,setLimitData:B,setStatus:H}=m(),{setDocumentError:M}=n(),{setCurrentArtifact:T}=c(),[q,z]=r(!1),G=s(),J="chat-input"===b&&v&&!L,K="popup"===b&&g,Q="chat-input"!==b||!L,U="popup"===b&&!g&&y&&D;return a((()=>{O(j)}),[j]),a((()=>{if(!G.data)return;const e=G.data.chatflag;P(e?p(15):""),I(p(15)),e?E([]):F(null),R(""),M(""),B(null),T(null),S(G.data),z(!0)}),[G.data]),a((()=>{R(""),M(""),B(null),E([]),F(null),T(null),H("idle")}),[g]),G.data?e("div",Object.assign({className:k("relative @container/pickaxe-root flex flex-col flex-grow w-full",(!b||K||U)&&"h-full","dark"===A.theme&&"dark",w),style:Object.assign({backgroundColor:J?"transparent":N.primary,color:N.text},A.font&&"Real Head Pro"!==A.font&&{fontFamily:A.font})},{children:y&&D&&Q?e(h,{}):e(t,{children:G.isLoading||!q?e("div",Object.assign({className:k("flex items-center flex-col w-full pt-12 px-4 pb-10","viewport"===C?"min-[767px]:pb-40":"@[767px]/pickaxe-root:pb-40")},{children:o("div",Object.assign({className:"flex w-full items-center max-w-[700px] flex-col"},{children:[e(d,{className:"w-[72px] h-[72px]"}),e(d,{className:"h-[20px] mt-6 w-full"}),e(d,{className:"h-[20px] mt-2 w-full"}),e(d,{className:"h-[20px] mt-2 w-full max-w-[400px]"}),e("div",Object.assign({className:"flex flex-col gap-y-8 w-full mt-6"},{children:e(d,{className:k("w-full min-h-[48px]","viewport"===C?"min-[767px]:max-w-[176px]":"@[767px]/pickaxe-root:max-w-[176px]")})}))]}))})):e(t,{children:e(x,g?{children:e(f,{})}:{children:e(u,{})})})})})):null};export{j as Pickaxe};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../_virtual/_tslib.js";import{useInfiniteQuery as t}from"@tanstack/react-query";import{usePickaxeContext as o}from"./usePickaxeContext.js";import d from"../../common/api/index.js";const r=({enabled:r=!0}={enabled:!0})=>{const{formId:i,pickaxe:s,studioUserId:a,embedUserId:n}=o(),m=t({queryKey:["form",i,"history"],queryFn:({pageParam:t=0})=>(({formId:t,place:o,studioId:r,studioUserId:i,embedUserId:s})=>e(void 0,void 0,void 0,(function*(){let e=`/pickaxe/history?formid=${t}&place=${o}`;r&&(e+=`&studioId=${r}`),i&&(e+=`&studioUserId=${i}`),s&&(e+=`&embedUserId=${s}`);const a=yield d.get(e),n=a.data;if(200!==a.status)throw new Error("[_getHistory] Failed to fetch history "+n);return{next:n.history.length<5?void 0:o+25,data:n.history}})))(Object.assign(Object.assign(Object.assign({formId:i,place:t},a&&(null==s?void 0:s.studioid)&&{studioId:s.studioid}),a&&{studioUserId:a}),n&&{embedUserId:n})),getNextPageParam:e=>e.next,enabled:r&&!!i});return m};export{r as useHistory};
1
+ import{__awaiter as e}from"../../_virtual/_tslib.js";import{useInfiniteQuery as o}from"@tanstack/react-query";import{usePickaxeContext as t}from"./usePickaxeContext.js";import{useAuthContext as s}from"../../components/Pickaxe/Addons/Auth/hooks/useAuthContext.js";import d from"../../common/api/index.js";const i=({enabled:i=!0}={enabled:!0})=>{const{formId:r,pickaxe:n,studioUserId:a,embedUserId:m}=t(),{token:u}=s(),c=o({queryKey:["form",r,"history"],queryFn:({pageParam:o=0})=>(({formId:o,place:t,studioId:s,studioUserId:i,embedUserId:r,embedSessionToken:n})=>e(void 0,void 0,void 0,(function*(){let e=`/pickaxe/history?formid=${o}&place=${t}`;s&&(e+=`&studioId=${s}`),i&&(e+=`&studioUserId=${i}`),r&&(e+=`&embedUserId=${r}`),n&&(e+=`&embedSessionToken=${n}`);const a=yield d.get(e),m=a.data;if(200!==a.status)throw new Error("[_getHistory] Failed to fetch history "+m);return{next:m.history.length<5?void 0:t+25,data:m.history}})))(Object.assign(Object.assign(Object.assign(Object.assign({formId:r,place:o},a&&(null==n?void 0:n.studioid)&&{studioId:n.studioid}),a&&{studioUserId:a}),m&&{embedUserId:m}),u&&{embedSessionToken:u})),getNextPageParam:e=>e.next,enabled:i&&!!r});return c};export{i as useHistory};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../_virtual/_tslib.js";import{useMutation as s}from"@tanstack/react-query";const n=()=>s({mutationFn:s=>(({formId:s,responseId:n,documentIds:t,studioUserId:o,deploymentId:i,embedUserId:d,pickaxe:c,value:r,valueObj:a,disabledDocumentIds:p,metadata:u})=>e(void 0,void 0,void 0,(function*(){const e="undefined"!=typeof window?window.location.hostname:"",l="undefined"!=typeof window?window.location.href:"",O=e.includes("pickaxe.co")&&!l.includes("https://studio.pickaxe.co/_embed"),b=yield fetch(`${process.env.NEXT_PUBLIC_API_URL}/pickaxe/sse`,Object.assign(Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:s},n&&{responseId:n}),t&&{documentIds:t}),o&&{studioUserId:o}),i&&{deploymentId:i}),d&&{embedUserId:d}),c&&{pickaxe:c}),r&&{value:r}),a&&{valueObj:a}),p&&{disabledDocumentIds:p}),u&&{metadata:u}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),O&&{credentials:"include"}));if(200!==b.status){const e=yield b.json();throw new Error(e.error||"Unknown error, please contact support")}if("application/json"===b.headers.get("content-type")){const{success:e,error:s}=yield b.json();if(!e)throw new Error(s||"Unknown error, please contact support")}return b})))(s)});export{n as useSubmit};
1
+ import{__awaiter as e}from"../../_virtual/_tslib.js";import{useMutation as s}from"@tanstack/react-query";const n=()=>s({mutationFn:s=>(({formId:s,responseId:n,documentIds:o,studioUserId:t,deploymentId:i,embedUserId:d,embedSessionToken:c,pickaxe:a,value:r,valueObj:p,disabledDocumentIds:b,metadata:u})=>e(void 0,void 0,void 0,(function*(){const e="undefined"!=typeof window?window.location.hostname:"",O="undefined"!=typeof window?window.location.href:"",l=e.includes("pickaxe.co")&&!O.includes("https://studio.pickaxe.co/_embed"),m=yield fetch(`${process.env.NEXT_PUBLIC_API_URL}/pickaxe/sse`,Object.assign(Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:s},n&&{responseId:n}),o&&{documentIds:o}),t&&{studioUserId:t}),i&&{deploymentId:i}),d&&{embedUserId:d}),c&&{embedSessionToken:c}),a&&{pickaxe:a}),r&&{value:r}),p&&{valueObj:p}),b&&{disabledDocumentIds:b}),u&&{metadata:u}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),l&&{credentials:"include"}));if(200!==m.status){const e=yield m.json();throw new Error(e.error||"Unknown error, please contact support")}if("application/json"===m.headers.get("content-type")){const{success:e,error:s}=yield m.json();if(!e)throw new Error(s||"Unknown error, please contact support")}return m})))(s)});export{n as useSubmit};
@@ -2,3 +2,7 @@ export declare const generateId: (length: number, prefix?: string, suffix?: stri
2
2
  export declare const randomStr: (len: number, charOnly?: boolean) => string;
3
3
  export declare const extractUrlsFromText: (text: string) => string[];
4
4
  export declare const formatBytes: (bytes: number, decimals?: number) => string;
5
+ export declare const getCookie: (name: string) => string | null;
6
+ export declare const getAuthToken: (studioId: string) => string | null;
7
+ export declare const setAuthToken: (name: string, token: string) => void;
8
+ export declare const deleteAuthToken: (name: string) => void;
@@ -3,6 +3,8 @@ type MutationParams = {
3
3
  artifactId?: string;
4
4
  version?: number;
5
5
  createdBy?: string;
6
+ studioSessionToken?: string;
7
+ embedSessionToken?: string;
6
8
  };
7
9
  export declare const useArtifactData: () => import("@tanstack/react-query").UseMutationResult<ArtifactData, Error, MutationParams, unknown>;
8
10
  export {};
@@ -0,0 +1,24 @@
1
+ import type { SetState } from "../../../../types/common";
2
+ import { type ReactNode } from "react";
3
+ type AuthContextType = {
4
+ emailInput: string;
5
+ token: string | null;
6
+ isLoggedIn: boolean;
7
+ isLoggedOut: boolean;
8
+ isLoggingIn: boolean;
9
+ isSending: boolean;
10
+ isResendDisabled: boolean;
11
+ isSent: boolean;
12
+ setEmailInput: SetState<string>;
13
+ setToken: SetState<string | null>;
14
+ setIsLoggingIn: SetState<boolean>;
15
+ setIsSending: SetState<boolean>;
16
+ setIsResendDisabled: SetState<boolean>;
17
+ setIsSent: SetState<boolean>;
18
+ };
19
+ export interface IAuthProviderProps {
20
+ children: ReactNode;
21
+ }
22
+ export declare const AuthContext: import("react").Context<AuthContextType>;
23
+ declare const AuthProvider: ({ children }: IAuthProviderProps) => import("react/jsx-runtime").JSX.Element;
24
+ export default AuthProvider;
@@ -0,0 +1,3 @@
1
+ export declare const useAuth: () => {
2
+ onSend: (isResend?: boolean) => Promise<void>;
3
+ };
@@ -0,0 +1,16 @@
1
+ export declare const useAuthContext: () => {
2
+ emailInput: string;
3
+ token: string | null;
4
+ isLoggedIn: boolean;
5
+ isLoggedOut: boolean;
6
+ isLoggingIn: boolean;
7
+ isSending: boolean;
8
+ isResendDisabled: boolean;
9
+ isSent: boolean;
10
+ setEmailInput: import("../../../../../types/common").SetState<string>;
11
+ setToken: import("../../../../../types/common").SetState<string | null>;
12
+ setIsLoggingIn: import("../../../../../types/common").SetState<boolean>;
13
+ setIsSending: import("../../../../../types/common").SetState<boolean>;
14
+ setIsResendDisabled: import("../../../../../types/common").SetState<boolean>;
15
+ setIsSent: import("../../../../../types/common").SetState<boolean>;
16
+ };
@@ -0,0 +1,14 @@
1
+ import type { SetState } from "../../../../../types/common";
2
+ import { UseQueryResult } from "@tanstack/react-query";
3
+ type QueryResponse = {
4
+ success: boolean;
5
+ token: string;
6
+ error?: string;
7
+ };
8
+ interface UseAuthVerifyQueryProps {
9
+ token: string;
10
+ enabled?: boolean;
11
+ setIsLoggingIn: SetState<boolean>;
12
+ }
13
+ export declare const useAuthVerify: ({ token, enabled, setIsLoggingIn, }: UseAuthVerifyQueryProps) => UseQueryResult<QueryResponse, Error>;
14
+ export {};
@@ -0,0 +1,2 @@
1
+ declare const AuthPage: () => import("react/jsx-runtime").JSX.Element;
2
+ export default AuthPage;
@@ -0,0 +1,8 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ChatRole } from "../../../../types/chat";
3
+ interface CustomMessageProps {
4
+ chatRole: ChatRole;
5
+ children?: ReactNode;
6
+ }
7
+ declare const CustomMessage: ({ chatRole, children }: CustomMessageProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default CustomMessage;
@@ -3,5 +3,5 @@ interface InputProps {
3
3
  onFocus?: () => void;
4
4
  onBlur?: () => void;
5
5
  }
6
- declare const Input: ({ isFocused, onFocus, onBlur }: InputProps) => import("react/jsx-runtime").JSX.Element;
6
+ declare const Input: ({ isFocused, onFocus, onBlur }: InputProps) => import("react/jsx-runtime").JSX.Element | null;
7
7
  export default Input;
@@ -81,6 +81,7 @@ type PickaxeContextType = {
81
81
  isRtl: boolean;
82
82
  isEmbed: boolean;
83
83
  isDropShadow: boolean;
84
+ isEmailLogin: boolean;
84
85
  setFormId: SetState<string>;
85
86
  setChatId: SetState<string>;
86
87
  setSessionId: SetState<string>;
@@ -114,8 +115,9 @@ export interface IPickaxeProviderProps {
114
115
  isRtl?: boolean;
115
116
  isEmbed?: boolean;
116
117
  isDropShadow?: boolean;
118
+ isEmailLogin?: boolean;
117
119
  onGenerateComplete?: (responseId: string) => void;
118
120
  }
119
121
  export declare const PickaxeContext: import("react").Context<PickaxeContextType>;
120
- export declare const PickaxeProvider: ({ children, userId, studioUserId, deploymentId, embedUserId, deploymentType, deploymentDimensions, deploymentMisc, styles, colors, limits, misc, translations, artifact, responsiveBy, forceMobile, disableHtml, disableJs, disableCss, loadFont, isRtl, isEmbed, isDropShadow, onGenerateComplete, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
122
+ export declare const PickaxeProvider: ({ children, userId, studioUserId, deploymentId, embedUserId, deploymentType, deploymentDimensions, deploymentMisc, styles, colors, limits, misc, translations, artifact, responsiveBy, forceMobile, disableHtml, disableJs, disableCss, loadFont, isRtl, isEmbed, isDropShadow, isEmailLogin, onGenerateComplete, }: IPickaxeProviderProps) => import("react/jsx-runtime").JSX.Element;
121
123
  export {};
@@ -0,0 +1,3 @@
1
+ import { type DetailedHTMLProps, type InputHTMLAttributes } from "react";
2
+ declare const PickaxeInput: import("react").ForwardRefExoticComponent<Omit<DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
3
+ export default PickaxeInput;
@@ -27,6 +27,7 @@ export declare const usePickaxeContext: () => {
27
27
  isRtl: boolean;
28
28
  isEmbed: boolean;
29
29
  isDropShadow: boolean;
30
+ isEmailLogin: boolean;
30
31
  setFormId: import("../../types/common").SetState<string>;
31
32
  setChatId: import("../../types/common").SetState<string>;
32
33
  setSessionId: import("../../types/common").SetState<string>;
@@ -5,6 +5,7 @@ type MutationParams = {
5
5
  documentIds?: string[];
6
6
  studioUserId?: string;
7
7
  embedUserId?: string;
8
+ embedSessionToken?: string;
8
9
  deploymentId?: string;
9
10
  pickaxe?: Partial<Pickaxe>;
10
11
  value?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pickaxeproject/react",
3
- "version": "3.4.0",
3
+ "version": "3.5.1",
4
4
  "description": "Client utility library for Pickaxe",
5
5
  "repository": {
6
6
  "type": "git",