@pickaxeproject/react 0.0.16 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/common/renderer.js +1 -1
- package/dist/cjs/components/Pickaxe/Chat/History/Message.js +1 -1
- package/dist/cjs/components/Pickaxe/Chat/History/index.js +1 -1
- package/dist/cjs/components/Pickaxe/Form/Head.js +1 -1
- package/dist/cjs/components/Pickaxe/Form/History/Item.js +1 -1
- package/dist/cjs/components/Pickaxe/Form/History/Response.js +1 -1
- package/dist/cjs/components/Pickaxe/InfoModal.js +1 -1
- package/dist/cjs/components/Pickaxe/common/PickaxeCopyButton.js +1 -0
- package/dist/cjs/components/Pickaxe/common/PickaxeIcon.js +1 -0
- package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown.js +1 -0
- package/dist/cjs/components/Pickaxe/common/PickaxeSimpleButton.js +1 -0
- package/dist/cjs/hooks/pickaxe/useActions.js +1 -0
- package/dist/cjs/hooks/pickaxe/useLinkPreviews.js +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/src/common/renderer.d.ts +4 -2
- package/dist/cjs/src/components/Pickaxe/common/PickaxeCopyButton.d.ts +8 -0
- package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown.d.ts +13 -0
- package/dist/cjs/src/components/Pickaxe/common/PickaxeSimpleButton.d.ts +10 -0
- package/dist/cjs/src/hooks/pickaxe/useActions.d.ts +8 -0
- package/dist/cjs/src/hooks/pickaxe/useLinkPreviews.d.ts +6 -0
- package/dist/cjs/src/index.d.ts +2 -0
- package/dist/esm/common/renderer.js +1 -1
- package/dist/esm/components/Pickaxe/Chat/History/Message.js +1 -1
- package/dist/esm/components/Pickaxe/Chat/History/index.js +1 -1
- package/dist/esm/components/Pickaxe/Form/Head.js +1 -1
- package/dist/esm/components/Pickaxe/Form/History/Item.js +1 -1
- package/dist/esm/components/Pickaxe/Form/History/Response.js +1 -1
- package/dist/esm/components/Pickaxe/InfoModal.js +1 -1
- package/dist/esm/components/Pickaxe/common/PickaxeCopyButton.js +1 -0
- package/dist/esm/components/Pickaxe/common/PickaxeIcon.js +1 -0
- package/dist/esm/components/Pickaxe/common/PickaxeMarkdown.js +1 -0
- package/dist/esm/components/Pickaxe/common/PickaxeSimpleButton.js +1 -0
- package/dist/esm/hooks/pickaxe/useActions.js +1 -0
- package/dist/esm/hooks/pickaxe/useLinkPreviews.js +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/src/common/renderer.d.ts +4 -2
- package/dist/esm/src/components/Pickaxe/common/PickaxeCopyButton.d.ts +8 -0
- package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown.d.ts +13 -0
- package/dist/esm/src/components/Pickaxe/common/PickaxeSimpleButton.d.ts +10 -0
- package/dist/esm/src/hooks/pickaxe/useActions.d.ts +8 -0
- package/dist/esm/src/hooks/pickaxe/useLinkPreviews.d.ts +6 -0
- package/dist/esm/src/index.d.ts +2 -0
- package/package.json +1 -1
- package/dist/cjs/components/Core/CopyButton.js +0 -1
- package/dist/cjs/components/Core/MarkdownRenderer.js +0 -1
- package/dist/cjs/components/Core/PickaxeIcon.js +0 -1
- package/dist/cjs/src/components/Core/CopyButton.d.ts +0 -10
- package/dist/cjs/src/components/Core/MarkdownRenderer.d.ts +0 -13
- package/dist/esm/components/Core/CopyButton.js +0 -1
- package/dist/esm/components/Core/MarkdownRenderer.js +0 -1
- package/dist/esm/components/Core/PickaxeIcon.js +0 -1
- package/dist/esm/src/components/Core/CopyButton.d.ts +0 -10
- package/dist/esm/src/components/Core/MarkdownRenderer.d.ts +0 -13
- /package/dist/cjs/src/components/{Core → Pickaxe/common}/PickaxeIcon.d.ts +0 -0
- /package/dist/esm/src/components/{Core → Pickaxe/common}/PickaxeIcon.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("marked"),t=require("prismjs");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("prismjs/components/prism-css"),require("prismjs/components/prism-javascript"),require("prismjs/components/prism-markdown"),require("prismjs/components/prism-markup"),require("prismjs/components/prism-python");var n=r(t);exports.renderer=({
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("marked"),t=require("prismjs");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("prismjs/components/prism-css"),require("prismjs/components/prism-javascript"),require("prismjs/components/prism-markdown"),require("prismjs/components/prism-markup"),require("prismjs/components/prism-python");var n=r(t);exports.renderer=({theme:t="light",accentColor:r="#228DD7",centerMedia:i=!0,forceMobile:l=!1,linkPreviews:a=!1,actions:o=!1}={theme:"light",accentColor:"#228DD7",centerMedia:!1,forceMobile:!1,linkPreviews:!1,actions:!1})=>{const s=new e.marked.Renderer,d=s.link;s.link=e=>{const n=e.href.startsWith("www.")?`https://${e.href}`:e.href,l=n.match(/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([\w-]+)/i);if(l&&(null==l?void 0:l[1]))return i?`<div style="display: flex; justify-content: center; width: 100%; height: 315px; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <iframe src="https://www.youtube.com/embed/${l[1]}" \n style="width: 100%; max-width: 560px; height: 100%;" \n frameborder="0" \n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n</div>`:`<div style="width: 100%; height: 315px; max-width: 560px;">\n <iframe src="https://www.youtube.com/embed/${l[1]}" \n style="width: 100%; height: 100%;" \n frameborder="0" \n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n</div>`;if(null!==n.match(/\.(jpeg|jpg|gif|bmp|webp|svg|tiff|avif)$/))return i?`<div style="display: flex; justify-content: center; width: 100%; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <img src="${n}" alt="${e.text}" style="max-width:300px; width: 100%; height:auto; border-radius: 8px;">\n </div>`:`<img src="${n}" alt="${e.text}" style="max-width:300px; height:auto;">`;if(o&&n.includes("pickaxe")&&(n.includes("/api/fn/result")||n.includes("/api/function_call_results")))return`<dotlottie-wc src="${"dark"===t?"https://lottie.host/328aa2a8-b160-4124-a40c-5847f58da813/Vl0EK9lnJc.lottie":"https://lottie.host/6fd1b0ad-8816-4800-b511-3a259947a9b2/kh7G1Fz1HB.lottie"}" data-fn-url="${n}" class="marked-link-function-calling-loader" style="max-width:150px; width: 100%; height:150px; border: none; background: transparent;" autoplay loop></dotlottie-wc>`;let c=d.call(s,e);return c=c.replace(/^<a /,`<a style="color: ${r};" target="_blank" rel="noopener noreferrer"${a?' class="marked-link-possible-preview-render"':""}`),c},s.heading=({depth:e,text:t})=>1===e?`<h1 style="\n font-size: 2em;\n line-height: 1;\n "><b>${t}</b></h1>`:2===e?`<h2 style="\n font-size: 1.25em;\n "><b>${t}</b></h2>`:`<h${e} style="\n "><b>${t}</b></h${e}>`;const c=s.list;s.list=e=>{let t=c.call(s,e);return t=t.replace(/<\/p>\s*<\/li>/g,"</li>"),t=t.replace(/<li>\s*<p>/g,"<li>"),t=t.replace(/^<ol/,'<ol style="\n list-style: decimal inside; \n padding-left: 15px; \n margin-top: .5em; \n margin-bottom: 0;\n "'),t=t.replace(/^<ul/,'<ul style="\n list-style: disc inside; \n padding-left: 15px; \n margin-top: .5em; \n margin-bottom: 0;\n "'),t};const p=s.listitem;s.listitem=e=>{let t=p.call(s,e);return t=t.replace(/<li/,'<li style="\n margin-bottom: 4px;\n "'),t};const m=s.table;s.table=e=>{let t=m.call(s,e);return t=t.replace(/<table/,'<table style="margin-top: .5em; font-size: 16px;" class="table-auto"'),t};const u=s.tablecell;s.tablecell=e=>{let t=u.call(s,e);return t=t.replace(/<td/,'<td class="border-[#d0d7de] dark:border-[#30363d]" style="\n border-width: 1px;\n padding: 0.25em 0.75em 0.25em 0.75em;\n "'),t=t.replace(/<th/,'<th class="border-[#d0d7de] dark:border-[#30363d]" style="\n border-width: 1px;\n padding: 0.25em 0.75em 0.25em 0.75em;\n font-weight: 600;\n "'),t};const h=s.code;s.code=e=>{const t=h.call(s,e);return e.lang&&n.default.languages[e.lang]?`<div class="bg-[#EFF1F3] dark:bg-[#161b22]" style="position: relative; overflow: hidden;"><pre style="\n padding: .75em;\n border-radius: 0.25em;\n font-size: 16px;\n overflow: auto;\n max-width: ${window.innerWidth-100}px;\n">\n <code class="language-${e.lang}">\n${n.default.highlight(e.text,n.default.languages[e.lang],e.lang)}\n</code>\n<button class="copy-code-button bg-[#d0d7de] dark:bg-[#30363d] text-[#1f2328] dark:text-[#e6edf3]" \nstyle="\n position: absolute;\n top: -20px;\n right: 0;\n padding: .25em 1.4em .25em .5em;\n border-radius: 0 0 0 0.25em;\n font-size: ${l?"12":"14"}px;\n cursor: pointer;\n user-select: none;\n border: none;\n outline: none;\n z-index: 1;\n">\n Copy\n</button></pre></div>`:t};const b=s.codespan;s.codespan=e=>b.call(s,e).replace(/<code/,`<code class="bg-[#EFF1F3] dark:bg-[#161b22] text-[#1f2328] dark:text-[#e6edf3]" style="\n padding: 0 .25em 0 .25em;\n border-radius: 0.25em;\n font-size: ${l?"14px":"16px"};\n margin-left: 2px;\n "`);const g=s.blockquote;return s.blockquote=e=>g.call(s,e).replace(/<blockquote/,'<blockquote class="border-l-[#D0D7DE] dark:border-l-[#30363D] text-[#656d76] dark:text-[#8b8b8b]" style="\n border-left-width: 4px;\n padding-left: 1em;\n "'),s.image=e=>{const t=e.href.startsWith("www.")?`https://${e.href}`:e.href;return i?`<div style="display: flex; justify-content: center; width: 100%; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <img src="${t}" alt="${e.text}" style="max-width:300px; height:auto; border-radius: 8px;">\n </div>`:`<img src="${t}" alt="${e.text}" style="max-width:300px; height:auto; border-radius: 8px;">`},s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../../../hooks/pickaxe/usePickaxeContext.js"),a=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../../../hooks/pickaxe/usePickaxeContext.js"),a=require("../../common/PickaxeIcon.js"),t=require("../../common/PickaxeMarkdown.js"),l=require("../../common/PickaxeCopyButton.js");exports.default=({message:c})=>{var o;const{formId:r,pickaxe:x,colors:i}=s.usePickaxeContext(),n=null!==(o=null==x?void 0:x.chaticon)&&void 0!==o?o:`https://prod-pickaxe-assets.s3.us-west-2.amazonaws.com/chaticons/${r}.png`;return"assistant"===c.role?e.jsx("div",Object.assign({className:"flex max-w-[80%] flex-col max-[767px]:max-w-full"},{children:e.jsxs("div",Object.assign({className:"flex gap-x-3"},{children:["NONE"!==n&&e.jsx(a.default,{src:n,alt:"Assistant",width:24,height:24,className:"my-3 h-6 w-6",textColor:i.text}),e.jsxs("div",Object.assign({className:"flex flex-col"},{children:[e.jsx("div",Object.assign({className:"chat-message overflow-x-auto overflow-y-hidden rounded px-4 py-3 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",style:{backgroundColor:i.secondary+"80",color:i.secondaryText}},{children:e.jsx(t.default,{className:"relative max-[767px]:text-sm",html:c.content})})),e.jsx("div",Object.assign({className:"mb-2 ml-2 mt-4 flex gap-3"},{children:e.jsx(l.default,{color:i.accent,text:c.content})}))]}))]}))})):"user"===c.role?e.jsx("div",Object.assign({className:"flex max-w-[80%] gap-x-3 justify-self-end max-[767px]:max-w-full max-[767px]:pl-9"},{children:e.jsx("div",Object.assign({className:"overflow-x-auto overflow-y-hidden rounded px-4 py-3 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]"},{children:e.jsx(t.default,{className:"relative max-[767px]:text-sm",html:c.content})}))})):e.jsx("div",{})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),a=require("../../../../hooks/pickaxe/usePickaxeContext.js"),t=require("../../../../hooks/pickaxe/useResponseContext.js"),l=require("../../../../hooks/pickaxe/useConversation.js"),i=require("../../../Icons/circle-info.svg.js"),c=require("../../../Core/
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),a=require("../../../../hooks/pickaxe/usePickaxeContext.js"),t=require("../../../../hooks/pickaxe/useResponseContext.js"),l=require("../../../../hooks/pickaxe/useConversation.js"),i=require("../../../Icons/circle-info.svg.js"),o=require("../../common/PickaxeIcon.js"),c=require("../../../Core/HtmlRenderer.js"),n=require("../../Addons/Scroll/ScrollLockView.js"),r=require("../../InfoModal.js"),d=require("./Message.js"),x=require("../../../../common/cn.js");exports.default=()=>{var u;const{pickaxe:m,colors:j,isNewChat:f}=a.usePickaxeContext(),{messages:p,status:g,error:h}=t.useResponseContext(),v=l.useConversation(),[b,w]=s.useState(!1),N=s.useMemo((()=>!!v.data&&!(v.data.messages.length<=1)),[v.data]),y=s.useMemo((()=>v.isSuccess&&f&&!N),[v.isSuccess,f,N]);return e.jsxs("div",Object.assign({className:"relative flex flex-grow flex-col justify-end"},{children:[b&&e.jsx(r.default,{isOpen:b,onChangeIsOpen:w}),e.jsxs("div",Object.assign({className:x.default("absolute left-1/2 top-5 flex w-full max-w-[400px] -translate-x-1/2 -translate-y-1/3 transform flex-col items-center px-4 opacity-0 duration-300",y&&"top-1/3 opacity-100")},{children:[e.jsx(o.default,{src:null==m?void 0:m.coverphoto,alt:`${null==m?void 0:m.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e.jsxs("div",Object.assign({className:"flex flex-col items-center"},{children:[e.jsxs("h2",Object.assign({className:"mt-6 text-center text-lg font-semibold opacity-70 max-[767px]:text-base"},{children:[`${null==m?void 0:m.formtitle.slice(0,130)}${(null!==(u=null==m?void 0:m.formtitle)&&void 0!==u?u:"").length>130?"...":""}`,e.jsx("button",Object.assign({className:"ml-2 inline-block outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>w(!0)},{children:e.jsx(i.default,{className:"h-5 w-5 shrink-0",style:{color:j.accent}})}))]})),e.jsx("p",Object.assign({className:"mt-2 line-clamp-3 whitespace-pre-line max-w-[600px] text-center font-semilight opacity-70"},{children:null==m?void 0:m.formdescription}))]}))]})),e.jsx("div",Object.assign({className:"flex w-full justify-center"},{children:v.isLoading?e.jsxs("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[e.jsx("div",{className:"h-10 w-[70%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]"}),e.jsx("div",{className:"h-[150px] w-[70%] animate-pulse rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]"}),e.jsx("div",{className:"h-10 w-[50%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]"})]})):v.isError?e.jsx("div",Object.assign({className:"flex w-full max-w-[800px] justify-center pt-10"},{children:e.jsxs("p",Object.assign({className:"text-center text-xl font-semibold"},{children:["Something went wrong. Please try again, or"," ",e.jsx("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help"},{children:"contact us"}))," ","for help."]}))})):e.jsxs("div",Object.assign({className:"relative grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-4 pt-10 max-[767px]:pt-6"},{children:[v.data.messages.map(((s,a)=>e.jsx(d.default,{message:s},a))),p.map(((s,a)=>e.jsx(d.default,{message:s},a))),"fetching"===g?e.jsxs("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:["NONE"!==(null==m?void 0:m.chaticon)&&e.jsx(o.default,{src:null==m?void 0:m.chaticon,alt:`${null==m?void 0:m.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6"}),e.jsxs("div",Object.assign({className:"flex items-center gap-x-2 rounded px-4 py-4",style:{backgroundColor:j.secondary+"80",color:j.secondaryText}},{children:[e.jsx("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:j.secondaryText}}),e.jsx("div",{className:"h-1.5 w-1.5 animate-dot-down rounded-full",style:{backgroundColor:j.secondaryText}}),e.jsx("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:j.secondaryText}})]}))]})):h?e.jsxs("div",Object.assign({className:"flex max-w-[80%] gap-x-3"},{children:[e.jsx(i.default,{className:"mt-2 h-6 w-6 shrink-0 text-red-500"}),e.jsx(c.default,{className:"x-4 py-2 font-semibold text-red-500",html:h})]})):null,e.jsx(n.default,{className:"absolute bottom-0 left-0 w-full"})]}))}))]}))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),i=require("../../../hooks/pickaxe/usePickaxeContext.js"),s=require("../../Icons/circle-info.svg.js"),l=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),i=require("../../../hooks/pickaxe/usePickaxeContext.js"),s=require("../../Icons/circle-info.svg.js"),l=require("../common/PickaxeIcon.js"),o=require("../InfoModal.js");exports.default=()=>{var c;const{pickaxe:n,colors:r}=i.usePickaxeContext(),[a,u]=t.useState(!1);return e.jsxs("div",Object.assign({className:"flex flex-col items-center"},{children:[a&&e.jsx(o.default,{isOpen:a,onChangeIsOpen:u}),e.jsx(l.default,{src:null==n?void 0:n.coverphoto,alt:`${null==n?void 0:n.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e.jsxs("h2",Object.assign({className:"mt-6 text-center text-[18px] font-semibold opacity-70 max-[767px]:text-base"},{children:[`${null==n?void 0:n.formtitle.slice(0,130)}${(null!==(c=null==n?void 0:n.formtitle)&&void 0!==c?c:"").length>130?"...":""}`,e.jsx("button",Object.assign({className:"ml-2 inline-block outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>u(!0)},{children:e.jsx(s.default,{className:"h-5 w-5 shrink-0",style:{color:r.accent}})}))]})),e.jsx("p",Object.assign({className:"mt-2 max-w-[600px] line-clamp-3 whitespace-pre-line text-center font-semilight opacity-70"},{children:null==n?void 0:n.formdescription}))]}))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),l=require("date-fns"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),l=require("date-fns"),a=require("../../../Icons/message-square-notes.svg.js"),i=require("../../../Icons/visitor.svg.js"),o=require("../../common/PickaxeIcon.js"),r=require("../../common/PickaxeMarkdown.js"),n=require("../../common/PickaxeSimpleButton.js"),c=require("../../common/PickaxeCopyButton.js");exports.default=({item:d})=>{const{pickaxe:m,colors:x,setChatId:u,setIsNewChat:h}=t.usePickaxeContext(),p=s.useMemo((()=>l.format(d.createdAt,"hh:mm a MMM dd, yy")),[d]),j=s.useMemo((()=>d&&d.messages?d.messages.length:0),[d]),f=s.useMemo((()=>{var e,s,t,l;if("form"===d.type){return(null!==(e=d.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}return null!==(l=null===(t=null===(s=d.messages)||void 0===s?void 0:s[0])||void 0===t?void 0:t.message)&&void 0!==l?l:""}),[d]),g=s.useMemo((()=>{var e,s,t,l;return"form"===d.type?null!==(e=d.questionResponse)&&void 0!==e?e:"":null!==(l=null===(t=null===(s=d.messages)||void 0===s?void 0:s[1])||void 0===t?void 0:t.message)&&void 0!==l?l:""}),[d]);return e.jsxs("div",Object.assign({className:"flex flex-co transition hover:shadow"},{children:[e.jsxs("div",Object.assign({className:"flex gap-x-3 overflow-hidden bg-white px-4 py-5"},{children:[e.jsx("div",Object.assign({className:"shrink-0 pt-1"},{children:e.jsx(i.default,{className:"h-6 w-6"})})),e.jsxs("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-1.5 scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[e.jsx("input",{id:`${d.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:f.length<280}),e.jsx("div",{className:"danger-html hidden flex-col peer-checked:flex",dangerouslySetInnerHTML:{__html:f}}),e.jsx("label",Object.assign({htmlFor:`${d.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:hidden hover:cursor-pointer",style:{color:x.accent}},{children:"See input"})),e.jsx("label",Object.assign({htmlFor:`${d.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:flex hover:cursor-pointer",style:{color:x.accent}},{children:"Hide input"}))]}))]})),e.jsxs("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:x.secondary,color:x.secondaryText}},{children:[e.jsx(o.default,{src:null==m?void 0:m.chaticon,alt:`${null==m?void 0:m.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:x.secondaryText}),e.jsxs("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[e.jsx(r.default,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:g}),e.jsxs("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==m?void 0:m.enablechatresponses)&&e.jsxs(n.default,Object.assign({color:x.accent,onClick:()=>{return e=d.responseId,h(!1),void u(e);var e}},{children:[e.jsx(a.default,{className:"h-4 w-4 shrink-0"}),e.jsx("p",Object.assign({className:"text-sm font-semibold"},{children:j+1}))]})),e.jsx(c.default,{color:x.accent,text:g})]})),e.jsx("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:e.jsx("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:p}))}))]}))]}))]}))]}))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),a=require("../../../../hooks/pickaxe/useResponseContext.js"),r=require("date-fns"),l=require("../../../Icons/message-square-notes.svg.js"),o=require("../../../Icons/visitor.svg.js"),n=require("../../common/PickaxeIcon.js"),c=require("../../common/PickaxeMarkdown.js"),i=require("../../common/PickaxeSimpleButton.js"),d=require("../../Addons/Scroll/ScrollLockView.js"),x=require("../../common/PickaxeCopyButton.js");exports.default=()=>{var h;const{pickaxe:u,colors:p,setChatId:m,setIsNewChat:j}=t.usePickaxeContext(),{response:f}=a.useResponseContext(),g=s.useMemo((()=>f?r.format(f.createdAt,"hh:mm a MMM dd, yy"):r.format(new Date,"hh:mm a MMM dd, yy")),[f]),b=s.useMemo((()=>{var e;if(!f)return"";return(null!==(e=f.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}),[f]);return f?e.jsxs("div",Object.assign({className:"flex flex-col shadow-black transition hover:shadow"},{children:[e.jsxs("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:p.primary,color:p.text}},{children:[e.jsx("div",Object.assign({className:"shrink-0 pt-1"},{children:e.jsx(o.default,{className:"h-6 w-6"})})),e.jsxs("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[e.jsx("input",{id:`${f.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:b.length<280}),e.jsx("div",{className:"danger-html hidden flex-col opacity-50 peer-checked:flex",dangerouslySetInnerHTML:{__html:b}}),e.jsx("label",Object.assign({htmlFor:`${f.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer",style:{color:p.accent}},{children:"See input"})),e.jsx("label",Object.assign({htmlFor:`${f.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer",style:{color:p.accent}},{children:"Hide input"}))]}))]})),e.jsxs("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:p.secondary,color:p.secondaryText}},{children:[e.jsx(n.default,{src:null==u?void 0:u.chaticon,alt:`${null==u?void 0:u.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:p.secondaryText}),e.jsxs("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[e.jsx(c.default,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:f.questionResponse}),e.jsxs("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==u?void 0:u.enablechatresponses)&&e.jsxs(i.default,Object.assign({color:p.accent,onClick:()=>{return e=f.responseId,j(!1),void m(e);var e}},{children:[e.jsx(l.default,{className:"h-4 w-4 shrink-0"}),e.jsx("p",Object.assign({className:"text-sm font-semibold"},{children:f.messages.length+1}))]})),e.jsx(x.default,{color:p.accent,text:null!==(h=f.questionResponse)&&void 0!==h?h:""})]})),e.jsx("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:e.jsx("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:g}))}))]}))]}))]})),e.jsx(d.default,{})]})):null};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../hooks/pickaxe/usePickaxeContext.js"),t=require("../Icons/x.svg.js"),i=require("../Core/Modal/index.js"),l=require("../Core/Modal/Body.js"),a=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../hooks/pickaxe/usePickaxeContext.js"),t=require("../Icons/x.svg.js"),i=require("../Core/Modal/index.js"),l=require("../Core/Modal/Body.js"),a=require("./common/PickaxeIcon.js");exports.default=({isOpen:c,onChangeIsOpen:n})=>{const{pickaxe:o}=s.usePickaxeContext();return e.jsx(i.default,Object.assign({isOpen:c,onChange:n},{children:e.jsxs(l.default,Object.assign({className:"relative flex w-full max-w-[480px] flex-col px-8 py-[26px] max-[767px]:max-w-full",avoidOverflow:!0},{children:[e.jsx("div",Object.assign({className:"flex items-start justify-end gap-4"},{children:e.jsx("button",Object.assign({className:"outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>n(!1)},{children:e.jsx(t.default,{className:"h-6 w-6 shrink-0"})}))})),e.jsx("div",Object.assign({className:"mt-8 flex flex-col items-center"},{children:e.jsxs("div",Object.assign({className:"flex w-full max-w-[360px] flex-col items-center text-center"},{children:[e.jsx(a.default,{src:null==o?void 0:o.coverphoto,alt:`${null==o?void 0:o.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e.jsx("h2",Object.assign({className:"mt-6 text-center text-[18px] font-semibold opacity-70 max-[767px]:text-base"},{children:null==o?void 0:o.formtitle})),e.jsx("p",Object.assign({className:"mt-4 font-semilight opacity-70"},{children:null==o?void 0:o.formdescription}))]}))}))]}))}))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),r=require("react"),s=require("copy-to-clipboard"),o=require("../../Icons/copied.svg.js"),a=require("../../Icons/copy.svg.js"),i=require("./PickaxeSimpleButton.js"),c=require("../../../common/cn.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=l(s);exports.default=({color:s,text:l="",className:u,iconClassName:f})=>{const[d,m]=r.useState(l),[p,h]=r.useState(!1),[j,y]=r.useState(!1);r.useEffect((()=>{m(l)}),[l]);return t.jsx(i.default,Object.assign({color:s},u&&{className:u},{isForceColor:j,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(p)return;h(!0);const t=null!==(e=[...Array.from(l.matchAll(/https:\/\/streaming\.pickaxeproject\.com\/api\/function_call_results\?.*?&name=[^&]+/g)),...Array.from(l.matchAll(/https:\/\/utils\.pickaxe\.chat\/api\/fn\/result\?.*?&name=[^&]+/g))].map((e=>e[0])))&&void 0!==e?e:[],r=[];if(t.length){for(const e of t)try{const t=yield fetch(e),s=yield t.json(),o=s.text||s.url||"";r.push(o)}catch(e){console.error(e)}r.length&&m(r.join("\n"))}n.default(r.length>0?r.join("\n"):d),h(!1),y(!0),yield new Promise((e=>setTimeout(e,1500)))}catch(e){console.error(e)}finally{h(!1),y(!1)}}))},{children:p||j?t.jsx(o.default,{className:c.default("w-4 h-4 shrink-0",f)}):t.jsx(a.default,{className:c.default("w-4 h-4 shrink-0",f)})}))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../Icons/spark.svg.js"),r=require("../../../common/cn.js");exports.default=({src:a,alt:i,width:c=24,height:l=24,className:d,textColor:n,isLoading:h})=>{const[o,u]=s.useState(!1),g=a||"";return h?e.jsx("div",{className:r.default("shrink-0 animate-pulse rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",d),style:{width:c,height:l}}):n&&"https://pickaxe.chat/builder/assets/images/pickaxe-chaticons/chaticon2.png"===g?e.jsx(t.default,{className:r.default("h-6 w-6 shrink-0",d),style:{color:n}}):"NONE"===g?null:!g||o?e.jsx("div",{className:r.default("shrink-0 rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",d),style:{width:c,height:l}}):e.jsx("div",Object.assign({className:"relative shrink-0 rounded",style:{width:c,height:l}},{children:e.jsx("img",{src:g,alt:i||"Pickaxe's Profile Picture",width:c,height:l,className:r.default("select-none rounded object-cover",d),draggable:!1,onError:()=>u(!0)})}))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("marked"),n=require("../../../common/renderer.js"),o=require("../../../hooks/pickaxe/usePickaxeContext.js"),c=require("../../../hooks/pickaxe/useLinkPreviews.js"),s=require("../../../hooks/pickaxe/useActions.js"),i=require("marked-katex-extension"),a=require("copy-to-clipboard"),u=require("../../Core/HtmlRenderer.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=l(i),m=l(a);r.marked.use(d.default({throwOnError:!1,output:"mathml"}));exports.default=({html:i,className:a,style:l,marked:d,renderer:h,onClick:p})=>{const{styles:f,colors:k}=o.usePickaxeContext(),v=t.useRef(null);c.useLinkPreviews(v,{theme:f.theme}),s.useActions(v,{theme:f.theme,accentColor:k.accent,accentTextColor:k.accentText}),t.useEffect((()=>{const e=v.current;if(!e)return;const t=e=>{var t,r,n;const o=e.target.closest(".copy-code-button");if(o){const e=null!==(n=null===(r=null===(t=o.parentElement)||void 0===t?void 0:t.querySelector("code"))||void 0===r?void 0:r.textContent)&&void 0!==n?n:"";if(!e)return;m.default(e)}};return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}),[v]);const b=t.useMemo((()=>{let e=i||"";const t=e.match(/<iframe\s+[^>]*src=["']https:\/\/www\.youtube\.com\/embed\/([\w-]+)(\?[^"' >]*)?["'][^>]*><\/iframe>/gi);return t&&t.forEach((t=>{var r;const n=`<div style="width: 100%; height: 315px; max-width: 560px;">\n <iframe src="https://www.youtube.com/embed/${null===(r=t.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([\w-]+)/))||void 0===r?void 0:r[1]}"\n style="width: 100%; height: 100%;"\n frameborder="0"\n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"\n allowfullscreen>\n </iframe>\n</div>`;e=e.replace(t,n)})),e.replace(/```[\s\S]*?```|(\n(?=\n))/g,((e,t)=>t?"\n\n<br/>\n":e))}),[i]);return e.jsx("div",Object.assign({ref:v},{children:e.jsx(u.default,{html:r.marked.parse(b,Object.assign({gfm:!0,breaks:!0,renderer:n.renderer(Object.assign(Object.assign({},h),{theme:f.theme,accentColor:k.accent,centerMedia:!1,linkPreviews:!0,actions:!0}))},d)).toString(),className:a,style:l,onClick:p})}))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),r=require("react/jsx-runtime"),o=require("../../../hooks/core/useHover.js"),s=require("../../../common/cn.js");exports.default=({color:t,children:i,className:c,isForceColor:l,onClick:n})=>{const u=o.useHover(),{isHover:a}=u,j=e.__rest(u,["isHover"]);return r.jsx("button",Object.assign({className:s.default("flex items-center gap-1 outline-none",c)},(a||l)&&{style:{color:t}},n&&{onClick:e=>{e.stopPropagation(),n()}},j,{children:i}))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("react"),n=require("marked"),o=require("../../common/renderer.js"),r=require("../../common/api/streamer.js"),i=require("../../common/api/utils.js");const l=(t,r)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,i;const l=t.replace(/```[\s\S]*?```|(\n(?=\n))/g,((e,t)=>t?"\n\n<br/>\n":e));return yield n.marked.parse(l,{gfm:!0,breaks:!0,renderer:o.renderer({theme:null!==(e=null==r?void 0:r.theme)&&void 0!==e?e:"light",accentColor:null!==(i=null==r?void 0:r.accentColor)&&void 0!==i?i:"#228DD7",centerMedia:!1,linkPreviews:!0,actions:!0})})})),s=(t,n)=>e.__awaiter(void 0,void 0,void 0,(function*(){try{yield i.default.post("/fn/update",{id:t,data:n})}catch(e){console.error("[updateCache] error",e)}}));exports.useActions=(n,o)=>{t.useEffect((()=>{const t=null==n?void 0:n.current;if(!t)return;const i=new MutationObserver((()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,t,n,i,d,a,c;const u=document.querySelectorAll(".marked-link-function-calling-loader");for(const m of u){if(m.dataset.processed)continue;"development"===process.env.NODE_ENV&&console.log("[useActions] getting action",m.href);const u=null!==(n=null!==(t=null===(e=m.parentElement)||void 0===e?void 0:e.parentElement)&&void 0!==t?t:m.parentElement)&&void 0!==n?n:null;if(!u){console.error("[useActions] missing message container");continue}const p=null!==(i=m.getAttribute("alt"))&&void 0!==i?i:m.getAttribute("data-fn-url");if(!p){console.error("[useActions] missing fn result url");continue}const v=yield fetch(p);if(200!==v.status){console.error("[useActions] failed fetching result:",v);continue}const f=yield v.json();if(f.error)console.error("[useActions] error in req:",f.error);else if(f.fcid)"development"===process.env.NODE_ENV&&console.log("[useActions] waiting for fn call to complete");else{if(f.url){m.remove();const e=document.createElement("img");e.src=f.url,e.alt=null!==(d=f.prompt)&&void 0!==d?d:"Generated Image",e.style.marginTop="1em",e.style.borderRadius="4px",e.style.width="100%",u.appendChild(e);const t=document.createElement("div");t.style.marginTop="1em",t.style.display="flex",t.style.alignItems="center",t.style.justifyContent="flex-end",t.style.gap="0.5em",t.style.width="100%";const n=document.createElement("button");n.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M21 21H3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n<path d="M7 10L12 15L17 10" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n<path d="M12 15V3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n</svg>\n',n.style.padding=".5em",n.style.backgroundColor="#228DD7",n.style.color=null!==(a=null==o?void 0:o.accentTextColor)&&void 0!==a?a:"#FFFFFF",n.style.textAlign="center",n.style.textDecoration="none",n.style.borderRadius="4px",n.style.fontSize="16px",n.style.fontWeight="bold",n.style.boxShadow="0 2px 5px rgba(0, 0, 0, 0.2)",n.style.transition="background-color 0.3s ease",n.addEventListener("mouseover",(function(){var e;n.style.backgroundColor=(null!==(e=null==o?void 0:o.accentColor)&&void 0!==e?e:"#228DD7")+"CC"})),n.addEventListener("mouseout",(function(){var e;n.style.backgroundColor=null!==(e=null==o?void 0:o.accentColor)&&void 0!==e?e:"#228DD7"})),n.addEventListener("click",(function(e){var t;e.preventDefault();const n=document.createElement("a");n.href=null!==(t=f.url)&&void 0!==t?t:"",n.download="generated_image.png",n.click()})),t.appendChild(n),u.appendChild(t)}if(f.text){m.remove();const e=document.createElement("div");e.style.marginTop="1em",e.innerHTML=yield l(f.text),u.appendChild(e)}if(f.button_link){m.remove();const e=document.createElement("a");e.href=f.button_link,e.target="_blank",e.classList.add("link-preview-button"),e.textContent=f.button_text||"",e.style.display="inline-block",e.style.padding="10px 20px",e.style.backgroundColor="#228DD7",e.style.color="#ffffff",e.style.textAlign="center",e.style.textDecoration="none",e.style.borderRadius="4px",e.style.fontSize="16px",e.style.fontWeight="bold",e.style.boxShadow="0 2px 5px rgba(0, 0, 0, 0.2)",e.style.transition="background-color 0.3s ease",e.addEventListener("mouseover",(function(){e.style.backgroundColor="#489dd9"})),e.addEventListener("mouseout",(function(){e.style.backgroundColor="#228DD7"})),u.appendChild(document.createElement("br")),u.appendChild(e)}if(f.openaidata&&!f.text){const e=null!==(c=new URL(p).searchParams.get("id"))&&void 0!==c?c:f.call_id,t=null==f?void 0:f.actionId;m.remove();const n=f.formId;if(!n){console.error("Missing formId from result data");continue}const o=f.responseId;if(!o){console.error("Missing responseId from result data");continue}const i=(yield r.streamer({formId:n,responseId:o,data:f.openaidata})).body;if(!i){console.error("Streaming error, no response body");continue}let d=!0,a="";const v=document.createElement("div");v.style.marginTop="1em",v.dataset.actionId=t,u.appendChild(v);const g=i.getReader(),y=new TextDecoder;for(;d;){const{value:e,done:t}=yield g.read();d=!t;a+=y.decode(e),"marked"in window?v.innerHTML=yield l(a):v.textContent=a}const b=null!=e?e:f.call_id;b&&(yield s(b,Object.assign(Object.assign({},f),{text:a})))}}}}))));return i.observe(t,{childList:!0,subtree:!0}),()=>{i.disconnect()}}),[n])};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("react"),r=require("../../common/api/utils.js"),o=require("../../common/error.js");const i=e=>{setTimeout((()=>{e.style.opacity="1",e.style.transform="scale(1)"}),50)},n=e=>{e.onmouseover=()=>{e.style.transform="scale(.99)"},e.onmouseout=()=>{e.style.transform="scale(1)"}},s=t=>e.__awaiter(void 0,void 0,void 0,(function*(){try{const e=yield r.default.get(`/metadata?url=${encodeURIComponent(t)}`);return e.data}catch(e){const t=o.default(e);return console.error("[fetchMetadata] error",t),null}}));exports.useLinkPreviews=(r,o)=>{t.useEffect((()=>{const t=null==r?void 0:r.current;if(!t)return;const a=new MutationObserver((()=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=t.querySelectorAll(".marked-link-possible-preview-render");for(const t of e){"development"===process.env.NODE_ENV&&console.log("[useLinkPreviews] getting preview for",t.href),t.classList.remove("marked-link-possible-preview-render");const e=t.closest(".chat-message");if(!e)continue;if(e.querySelector(`div[data-href="${t.href}"]`))continue;const r=yield s(t.href);if(!r||!r.image||!r.title)continue;const a=document.createElement("div");a.setAttribute("style","display: flex; margin-top: 2em; text-decoration: none;"),a.dataset.href=t.href,a.dataset.processed="true";const l=o?"dark"===o.theme:document.documentElement.classList.contains("dark"),d=document.createElement("a");if(d.href=t.href,d.setAttribute("target","_blank"),d.setAttribute("style",`display: flex; position: relative; flex-direction: column; border-radius: 20px; border-bottom-left-radius: 10px; width: 100%; max-width: 220px; background-color: #${l?"000000":"E9E9EB"}; overflow: hidden;`),r.image&&(r.image.startsWith("http")||r.image.startsWith("data:image")||r.image.startsWith("blob:"))){const e=document.createElement("div");e.setAttribute("style",`position: relative; flex-grow: 1; width: 100%; overflow: hidden; background-image: url("${r.image}"); background-size: cover; background-position: center; height: 90px;`),d.appendChild(e)}const c=document.createElement("div");c.setAttribute("style","display: flex; flex-direction: column; padding: 0.25em 1em; gap: 0.2em;");const u=document.createElement("p");u.textContent=r.title,u.setAttribute("style","font-size: 14px; font-weight: 600; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"),c.appendChild(u);const m=document.createElement("p");m.textContent=r.href,m.setAttribute("style","opacity: 0.6; font-size: 14px; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"),c.appendChild(m),d.appendChild(c),a.appendChild(d);const p=t.closest(".chat-message");p&&(p.querySelector(`div[data-href="${t.href}"]`)||(p.appendChild(a),i(d),n(d)))}}))));return a.observe(t,{childList:!0,subtree:!0}),()=>{a.disconnect()}}),[r])};
|
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./components/Pickaxe/index.js"),s=require("./components/Pickaxe/Provider.js"),o=require("./components/Pickaxe/ResponseProvider.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./components/Pickaxe/index.js"),s=require("./components/Pickaxe/Provider.js"),o=require("./components/Pickaxe/ResponseProvider.js"),i=require("./hooks/pickaxe/useConversation.js"),t=require("./hooks/pickaxe/useHistory.js"),r=require("./hooks/pickaxe/usePickaxe.js"),u=require("./hooks/pickaxe/usePickaxeContext.js"),x=require("./hooks/pickaxe/useResponseContext.js"),n=require("./hooks/pickaxe/useSubmit.js"),k=require("./hooks/pickaxe/useSubmitDocument.js"),c=require("./hooks/pickaxe/useSubmitResult.js"),p=require("./hooks/pickaxe/useLinkPreviews.js"),a=require("./hooks/pickaxe/useActions.js");exports.Pickaxe=e.Pickaxe,exports.PickaxeContext=s.PickaxeContext,exports.PickaxeProvider=s.PickaxeProvider,exports.ResponseContext=o.ResponseContext,exports.useConversation=i.useConversation,exports.useHistory=t.useHistory,exports.usePickaxe=r.usePickaxe,exports.usePickaxeContext=u.usePickaxeContext,exports.useResponseContext=x.useResponseContext,exports.useSubmit=n.useSubmit,exports.useSubmitDocument=k.useSubmitDocument,exports.useSubmitResult=c.useSubmitResult,exports.useLinkPreviews=p.useLinkPreviews,exports.useActions=a.useActions;
|
|
@@ -4,9 +4,11 @@ import "prismjs/components/prism-markdown";
|
|
|
4
4
|
import "prismjs/components/prism-markup";
|
|
5
5
|
import "prismjs/components/prism-python";
|
|
6
6
|
export interface RendererOptions {
|
|
7
|
-
|
|
7
|
+
theme?: "light" | "dark";
|
|
8
8
|
accentColor?: string;
|
|
9
9
|
centerMedia?: boolean;
|
|
10
10
|
forceMobile?: boolean;
|
|
11
|
+
linkPreviews?: boolean;
|
|
12
|
+
actions?: boolean;
|
|
11
13
|
}
|
|
12
|
-
export declare const renderer: ({
|
|
14
|
+
export declare const renderer: ({ theme, accentColor, centerMedia, forceMobile, linkPreviews, actions, }?: RendererOptions) => import("marked").Renderer;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface PickaxeCopyButtonProps {
|
|
2
|
+
color: string;
|
|
3
|
+
text?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
iconClassName?: string;
|
|
6
|
+
}
|
|
7
|
+
declare const PickaxeCopyButton: ({ color, text, className, iconClassName, }: PickaxeCopyButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default PickaxeCopyButton;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type CSSProperties } from "react";
|
|
2
|
+
import { type MarkedOptions } from "marked";
|
|
3
|
+
import { type RendererOptions } from "../../../common/renderer";
|
|
4
|
+
interface PickaxeMarkdownProps {
|
|
5
|
+
html?: string | null;
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
renderer?: RendererOptions;
|
|
9
|
+
marked?: MarkedOptions;
|
|
10
|
+
onClick?: () => void;
|
|
11
|
+
}
|
|
12
|
+
declare const PickaxeMarkdown: ({ html: _html, className, style, marked: _marked, renderer: _renderer, onClick, }: PickaxeMarkdownProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default PickaxeMarkdown;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
interface PickaxeSimpleButtonProps {
|
|
3
|
+
color: string;
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
className?: string;
|
|
6
|
+
isForceColor?: boolean;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
}
|
|
9
|
+
declare const PickaxeSimpleButton: ({ color, children, className, isForceColor, onClick, }: PickaxeSimpleButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default PickaxeSimpleButton;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
interface UseActionsOptions {
|
|
3
|
+
theme?: "light" | "dark";
|
|
4
|
+
accentColor?: string;
|
|
5
|
+
accentTextColor?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const useActions: (ref: RefObject<HTMLDivElement> | null, opt?: UseActionsOptions) => void;
|
|
8
|
+
export {};
|
package/dist/cjs/src/index.d.ts
CHANGED
|
@@ -9,3 +9,5 @@ export * from "./hooks/pickaxe/useResponseContext";
|
|
|
9
9
|
export * from "./hooks/pickaxe/useSubmit";
|
|
10
10
|
export * from "./hooks/pickaxe/useSubmitDocument";
|
|
11
11
|
export * from "./hooks/pickaxe/useSubmitResult";
|
|
12
|
+
export * from "./hooks/pickaxe/useLinkPreviews";
|
|
13
|
+
export * from "./hooks/pickaxe/useActions";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{marked as e}from"marked";import t from"prismjs";import"prismjs/components/prism-css";import"prismjs/components/prism-javascript";import"prismjs/components/prism-markdown";import"prismjs/components/prism-markup";import"prismjs/components/prism-python";const n=({
|
|
1
|
+
import{marked as e}from"marked";import t from"prismjs";import"prismjs/components/prism-css";import"prismjs/components/prism-javascript";import"prismjs/components/prism-markdown";import"prismjs/components/prism-markup";import"prismjs/components/prism-python";const n=({theme:n="light",accentColor:r="#228DD7",centerMedia:i=!0,forceMobile:l=!1,linkPreviews:o=!1,actions:a=!1}={theme:"light",accentColor:"#228DD7",centerMedia:!1,forceMobile:!1,linkPreviews:!1,actions:!1})=>{const s=new e.Renderer,d=s.link;s.link=e=>{const t=e.href.startsWith("www.")?`https://${e.href}`:e.href,l=t.match(/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([\w-]+)/i);if(l&&(null==l?void 0:l[1]))return i?`<div style="display: flex; justify-content: center; width: 100%; height: 315px; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <iframe src="https://www.youtube.com/embed/${l[1]}" \n style="width: 100%; max-width: 560px; height: 100%;" \n frameborder="0" \n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n</div>`:`<div style="width: 100%; height: 315px; max-width: 560px;">\n <iframe src="https://www.youtube.com/embed/${l[1]}" \n style="width: 100%; height: 100%;" \n frameborder="0" \n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n</div>`;if(null!==t.match(/\.(jpeg|jpg|gif|bmp|webp|svg|tiff|avif)$/))return i?`<div style="display: flex; justify-content: center; width: 100%; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <img src="${t}" alt="${e.text}" style="max-width:300px; width: 100%; height:auto; border-radius: 8px;">\n </div>`:`<img src="${t}" alt="${e.text}" style="max-width:300px; height:auto;">`;if(a&&t.includes("pickaxe")&&(t.includes("/api/fn/result")||t.includes("/api/function_call_results")))return`<dotlottie-wc src="${"dark"===n?"https://lottie.host/328aa2a8-b160-4124-a40c-5847f58da813/Vl0EK9lnJc.lottie":"https://lottie.host/6fd1b0ad-8816-4800-b511-3a259947a9b2/kh7G1Fz1HB.lottie"}" data-fn-url="${t}" class="marked-link-function-calling-loader" style="max-width:150px; width: 100%; height:150px; border: none; background: transparent;" autoplay loop></dotlottie-wc>`;let c=d.call(s,e);return c=c.replace(/^<a /,`<a style="color: ${r};" target="_blank" rel="noopener noreferrer"${o?' class="marked-link-possible-preview-render"':""}`),c},s.heading=({depth:e,text:t})=>1===e?`<h1 style="\n font-size: 2em;\n line-height: 1;\n "><b>${t}</b></h1>`:2===e?`<h2 style="\n font-size: 1.25em;\n "><b>${t}</b></h2>`:`<h${e} style="\n "><b>${t}</b></h${e}>`;const c=s.list;s.list=e=>{let t=c.call(s,e);return t=t.replace(/<\/p>\s*<\/li>/g,"</li>"),t=t.replace(/<li>\s*<p>/g,"<li>"),t=t.replace(/^<ol/,'<ol style="\n list-style: decimal inside; \n padding-left: 15px; \n margin-top: .5em; \n margin-bottom: 0;\n "'),t=t.replace(/^<ul/,'<ul style="\n list-style: disc inside; \n padding-left: 15px; \n margin-top: .5em; \n margin-bottom: 0;\n "'),t};const p=s.listitem;s.listitem=e=>{let t=p.call(s,e);return t=t.replace(/<li/,'<li style="\n margin-bottom: 4px;\n "'),t};const m=s.table;s.table=e=>{let t=m.call(s,e);return t=t.replace(/<table/,'<table style="margin-top: .5em; font-size: 16px;" class="table-auto"'),t};const h=s.tablecell;s.tablecell=e=>{let t=h.call(s,e);return t=t.replace(/<td/,'<td class="border-[#d0d7de] dark:border-[#30363d]" style="\n border-width: 1px;\n padding: 0.25em 0.75em 0.25em 0.75em;\n "'),t=t.replace(/<th/,'<th class="border-[#d0d7de] dark:border-[#30363d]" style="\n border-width: 1px;\n padding: 0.25em 0.75em 0.25em 0.75em;\n font-weight: 600;\n "'),t};const b=s.code;s.code=e=>{const n=b.call(s,e);return e.lang&&t.languages[e.lang]?`<div class="bg-[#EFF1F3] dark:bg-[#161b22]" style="position: relative; overflow: hidden;"><pre style="\n padding: .75em;\n border-radius: 0.25em;\n font-size: 16px;\n overflow: auto;\n max-width: ${window.innerWidth-100}px;\n">\n <code class="language-${e.lang}">\n${t.highlight(e.text,t.languages[e.lang],e.lang)}\n</code>\n<button class="copy-code-button bg-[#d0d7de] dark:bg-[#30363d] text-[#1f2328] dark:text-[#e6edf3]" \nstyle="\n position: absolute;\n top: -20px;\n right: 0;\n padding: .25em 1.4em .25em .5em;\n border-radius: 0 0 0 0.25em;\n font-size: ${l?"12":"14"}px;\n cursor: pointer;\n user-select: none;\n border: none;\n outline: none;\n z-index: 1;\n">\n Copy\n</button></pre></div>`:n};const g=s.codespan;s.codespan=e=>g.call(s,e).replace(/<code/,`<code class="bg-[#EFF1F3] dark:bg-[#161b22] text-[#1f2328] dark:text-[#e6edf3]" style="\n padding: 0 .25em 0 .25em;\n border-radius: 0.25em;\n font-size: ${l?"14px":"16px"};\n margin-left: 2px;\n "`);const u=s.blockquote;return s.blockquote=e=>u.call(s,e).replace(/<blockquote/,'<blockquote class="border-l-[#D0D7DE] dark:border-l-[#30363D] text-[#656d76] dark:text-[#8b8b8b]" style="\n border-left-width: 4px;\n padding-left: 1em;\n "'),s.image=e=>{const t=e.href.startsWith("www.")?`https://${e.href}`:e.href;return i?`<div style="display: flex; justify-content: center; width: 100%; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <img src="${t}" alt="${e.text}" style="max-width:300px; height:auto; border-radius: 8px;">\n </div>`:`<img src="${t}" alt="${e.text}" style="max-width:300px; height:auto; border-radius: 8px;">`},s};export{n as renderer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as a}from"react/jsx-runtime";import{usePickaxeContext as s}from"../../../../hooks/pickaxe/usePickaxeContext.js";import o from"../../common/PickaxeIcon.js";import t from"../../common/PickaxeMarkdown.js";import l from"../../common/PickaxeCopyButton.js";const c=({message:c})=>{var r;const{formId:i,pickaxe:m,colors:n}=s(),x=null!==(r=null==m?void 0:m.chaticon)&&void 0!==r?r:`https://prod-pickaxe-assets.s3.us-west-2.amazonaws.com/chaticons/${i}.png`;return"assistant"===c.role?e("div",Object.assign({className:"flex max-w-[80%] flex-col max-[767px]:max-w-full"},{children:a("div",Object.assign({className:"flex gap-x-3"},{children:["NONE"!==x&&e(o,{src:x,alt:"Assistant",width:24,height:24,className:"my-3 h-6 w-6",textColor:n.text}),a("div",Object.assign({className:"flex flex-col"},{children:[e("div",Object.assign({className:"chat-message overflow-x-auto overflow-y-hidden rounded px-4 py-3 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",style:{backgroundColor:n.secondary+"80",color:n.secondaryText}},{children:e(t,{className:"relative max-[767px]:text-sm",html:c.content})})),e("div",Object.assign({className:"mb-2 ml-2 mt-4 flex gap-3"},{children:e(l,{color:n.accent,text:c.content})}))]}))]}))})):"user"===c.role?e("div",Object.assign({className:"flex max-w-[80%] gap-x-3 justify-self-end max-[767px]:max-w-full max-[767px]:pl-9"},{children:e("div",Object.assign({className:"overflow-x-auto overflow-y-hidden rounded px-4 py-3 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]"},{children:e(t,{className:"relative max-[767px]:text-sm",html:c.content})}))})):e("div",{})};export{c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useState as
|
|
1
|
+
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useState as t,useMemo as a}from"react";import{usePickaxeContext as l}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as o}from"../../../../hooks/pickaxe/useResponseContext.js";import{useConversation as i}from"../../../../hooks/pickaxe/useConversation.js";import c from"../../../Icons/circle-info.svg.js";import n from"../../common/PickaxeIcon.js";import r from"../../../Core/HtmlRenderer.js";import m from"../../Addons/Scroll/ScrollLockView.js";import d from"../../InfoModal.js";import p from"./Message.js";import x from"../../../../common/cn.js";const f=()=>{var f;const{pickaxe:u,colors:g,isNewChat:h}=l(),{messages:b,status:v,error:j}=o(),w=i(),[N,y]=t(!1),k=a((()=>!!w.data&&!(w.data.messages.length<=1)),[w.data]),O=a((()=>w.isSuccess&&h&&!k),[w.isSuccess,h,k]);return e("div",Object.assign({className:"relative flex flex-grow flex-col justify-end"},{children:[N&&s(d,{isOpen:N,onChangeIsOpen:y}),e("div",Object.assign({className:x("absolute left-1/2 top-5 flex w-full max-w-[400px] -translate-x-1/2 -translate-y-1/3 transform flex-col items-center px-4 opacity-0 duration-300",O&&"top-1/3 opacity-100")},{children:[s(n,{src:null==u?void 0:u.coverphoto,alt:`${null==u?void 0:u.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e("div",Object.assign({className:"flex flex-col items-center"},{children:[e("h2",Object.assign({className:"mt-6 text-center text-lg font-semibold opacity-70 max-[767px]:text-base"},{children:[`${null==u?void 0:u.formtitle.slice(0,130)}${(null!==(f=null==u?void 0:u.formtitle)&&void 0!==f?f:"").length>130?"...":""}`,s("button",Object.assign({className:"ml-2 inline-block outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>y(!0)},{children:s(c,{className:"h-5 w-5 shrink-0",style:{color:g.accent}})}))]})),s("p",Object.assign({className:"mt-2 line-clamp-3 whitespace-pre-line max-w-[600px] text-center font-semilight opacity-70"},{children:null==u?void 0:u.formdescription}))]}))]})),s("div",Object.assign({className:"flex w-full justify-center"},{children:w.isLoading?e("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[s("div",{className:"h-10 w-[70%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]"}),s("div",{className:"h-[150px] w-[70%] animate-pulse rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]"}),s("div",{className:"h-10 w-[50%] animate-pulse justify-self-end rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]"})]})):w.isError?s("div",Object.assign({className:"flex w-full max-w-[800px] justify-center pt-10"},{children:e("p",Object.assign({className:"text-center text-xl font-semibold"},{children:["Something went wrong. Please try again, or"," ",s("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help"},{children:"contact us"}))," ","for help."]}))})):e("div",Object.assign({className:"relative grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-4 pt-10 max-[767px]:pt-6"},{children:[w.data.messages.map(((e,t)=>s(p,{message:e},t))),b.map(((e,t)=>s(p,{message:e},t))),"fetching"===v?e("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:["NONE"!==(null==u?void 0:u.chaticon)&&s(n,{src:null==u?void 0:u.chaticon,alt:`${null==u?void 0:u.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6"}),e("div",Object.assign({className:"flex items-center gap-x-2 rounded px-4 py-4",style:{backgroundColor:g.secondary+"80",color:g.secondaryText}},{children:[s("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:g.secondaryText}}),s("div",{className:"h-1.5 w-1.5 animate-dot-down rounded-full",style:{backgroundColor:g.secondaryText}}),s("div",{className:"h-1.5 w-1.5 animate-dot rounded-full",style:{backgroundColor:g.secondaryText}})]}))]})):j?e("div",Object.assign({className:"flex max-w-[80%] gap-x-3"},{children:[s(c,{className:"mt-2 h-6 w-6 shrink-0 text-red-500"}),s(r,{className:"x-4 py-2 font-semibold text-red-500",html:j})]})):null,s(m,{className:"absolute bottom-0 left-0 w-full"})]}))}))]}))};export{f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as
|
|
1
|
+
import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useState as t}from"react";import{usePickaxeContext as i}from"../../../hooks/pickaxe/usePickaxeContext.js";import l from"../../Icons/circle-info.svg.js";import c from"../common/PickaxeIcon.js";import n from"../InfoModal.js";const s=()=>{var s;const{pickaxe:r,colors:a}=i(),[m,p]=t(!1);return e("div",Object.assign({className:"flex flex-col items-center"},{children:[m&&o(n,{isOpen:m,onChangeIsOpen:p}),o(c,{src:null==r?void 0:r.coverphoto,alt:`${null==r?void 0:r.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e("h2",Object.assign({className:"mt-6 text-center text-[18px] font-semibold opacity-70 max-[767px]:text-base"},{children:[`${null==r?void 0:r.formtitle.slice(0,130)}${(null!==(s=null==r?void 0:r.formtitle)&&void 0!==s?s:"").length>130?"...":""}`,o("button",Object.assign({className:"ml-2 inline-block outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>p(!0)},{children:o(l,{className:"h-5 w-5 shrink-0",style:{color:a.accent}})}))]})),o("p",Object.assign({className:"mt-2 max-w-[600px] line-clamp-3 whitespace-pre-line text-center font-semilight opacity-70"},{children:null==r?void 0:r.formdescription}))]}))};export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as
|
|
1
|
+
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as o}from"react";import{usePickaxeContext as t}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{format as l}from"date-fns";import i from"../../../Icons/message-square-notes.svg.js";import a from"../../../Icons/visitor.svg.js";import n from"../../common/PickaxeIcon.js";import r from"../../common/PickaxeMarkdown.js";import c from"../../common/PickaxeSimpleButton.js";import d from"../../common/PickaxeCopyButton.js";const m=({item:m})=>{const{pickaxe:p,colors:h,setChatId:f,setIsNewChat:x}=t(),u=o((()=>l(m.createdAt,"hh:mm a MMM dd, yy")),[m]),g=o((()=>m&&m.messages?m.messages.length:0),[m]),v=o((()=>{var e,s,o,t;if("form"===m.type){return(null!==(e=m.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}return null!==(t=null===(o=null===(s=m.messages)||void 0===s?void 0:s[0])||void 0===o?void 0:o.message)&&void 0!==t?t:""}),[m]),b=o((()=>{var e,s,o,t;return"form"===m.type?null!==(e=m.questionResponse)&&void 0!==e?e:"":null!==(t=null===(o=null===(s=m.messages)||void 0===s?void 0:s[1])||void 0===o?void 0:o.message)&&void 0!==t?t:""}),[m]);return e("div",Object.assign({className:"flex flex-co transition hover:shadow"},{children:[e("div",Object.assign({className:"flex gap-x-3 overflow-hidden bg-white px-4 py-5"},{children:[s("div",Object.assign({className:"shrink-0 pt-1"},{children:s(a,{className:"h-6 w-6"})})),e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-1.5 scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[s("input",{id:`${m.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:v.length<280}),s("div",{className:"danger-html hidden flex-col peer-checked:flex",dangerouslySetInnerHTML:{__html:v}}),s("label",Object.assign({htmlFor:`${m.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:hidden hover:cursor-pointer",style:{color:h.accent}},{children:"See input"})),s("label",Object.assign({htmlFor:`${m.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold peer-checked:flex hover:cursor-pointer",style:{color:h.accent}},{children:"Hide input"}))]}))]})),e("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:h.secondary,color:h.secondaryText}},{children:[s(n,{src:null==p?void 0:p.chaticon,alt:`${null==p?void 0:p.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:h.secondaryText}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[s(r,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:b}),e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==p?void 0:p.enablechatresponses)&&e(c,Object.assign({color:h.accent,onClick:()=>{return e=m.responseId,x(!1),void f(e);var e}},{children:[s(i,{className:"h-4 w-4 shrink-0"}),s("p",Object.assign({className:"text-sm font-semibold"},{children:g+1}))]})),s(d,{color:h.accent,text:b})]})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:u}))}))]}))]}))]}))]}))};export{m as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as
|
|
1
|
+
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as o}from"react";import{usePickaxeContext as t}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as r}from"../../../../hooks/pickaxe/useResponseContext.js";import{format as a}from"date-fns";import l from"../../../Icons/message-square-notes.svg.js";import n from"../../../Icons/visitor.svg.js";import c from"../../common/PickaxeIcon.js";import i from"../../common/PickaxeMarkdown.js";import m from"../../common/PickaxeSimpleButton.js";import d from"../../Addons/Scroll/ScrollLockView.js";import p from"../../common/PickaxeCopyButton.js";const h=()=>{var h;const{pickaxe:x,colors:f,setChatId:u,setIsNewChat:g}=t(),{response:b}=r(),v=o((()=>a(b?b.createdAt:new Date,"hh:mm a MMM dd, yy")),[b]),k=o((()=>{var e;if(!b)return"";return(null!==(e=b.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}),[b]);return b?e("div",Object.assign({className:"flex flex-col shadow-black transition hover:shadow"},{children:[e("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:f.primary,color:f.text}},{children:[s("div",Object.assign({className:"shrink-0 pt-1"},{children:s(n,{className:"h-6 w-6"})})),e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[s("input",{id:`${b.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:k.length<280}),s("div",{className:"danger-html hidden flex-col opacity-50 peer-checked:flex",dangerouslySetInnerHTML:{__html:k}}),s("label",Object.assign({htmlFor:`${b.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer",style:{color:f.accent}},{children:"See input"})),s("label",Object.assign({htmlFor:`${b.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer",style:{color:f.accent}},{children:"Hide input"}))]}))]})),e("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:f.secondary,color:f.secondaryText}},{children:[s(c,{src:null==x?void 0:x.chaticon,alt:`${null==x?void 0:x.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:f.secondaryText}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[s(i,{className:"overflow-x-auto pb-2 font-semilight opacity-90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:b.questionResponse}),e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==x?void 0:x.enablechatresponses)&&e(m,Object.assign({color:f.accent,onClick:()=>{return e=b.responseId,g(!1),void u(e);var e}},{children:[s(l,{className:"h-4 w-4 shrink-0"}),s("p",Object.assign({className:"text-sm font-semibold"},{children:b.messages.length+1}))]})),s(p,{color:f.accent,text:null!==(h=b.questionResponse)&&void 0!==h?h:""})]})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:"text-sm font-semibold uppercase opacity-30"},{children:v}))}))]}))]}))]})),s(d,{})]})):null};export{h as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{usePickaxeContext as i}from"../../hooks/pickaxe/usePickaxeContext.js";import s from"../Icons/x.svg.js";import o from"../Core/Modal/index.js";import l from"../Core/Modal/Body.js";import a from"
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{usePickaxeContext as i}from"../../hooks/pickaxe/usePickaxeContext.js";import s from"../Icons/x.svg.js";import o from"../Core/Modal/index.js";import l from"../Core/Modal/Body.js";import a from"./common/PickaxeIcon.js";const c=({isOpen:c,onChangeIsOpen:n})=>{const{pickaxe:r}=i();return e(o,Object.assign({isOpen:c,onChange:n},{children:t(l,Object.assign({className:"relative flex w-full max-w-[480px] flex-col px-8 py-[26px] max-[767px]:max-w-full",avoidOverflow:!0},{children:[e("div",Object.assign({className:"flex items-start justify-end gap-4"},{children:e("button",Object.assign({className:"outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>n(!1)},{children:e(s,{className:"h-6 w-6 shrink-0"})}))})),e("div",Object.assign({className:"mt-8 flex flex-col items-center"},{children:t("div",Object.assign({className:"flex w-full max-w-[360px] flex-col items-center text-center"},{children:[e(a,{src:null==r?void 0:r.coverphoto,alt:`${null==r?void 0:r.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e("h2",Object.assign({className:"mt-6 text-center text-[18px] font-semibold opacity-70 max-[767px]:text-base"},{children:null==r?void 0:r.formtitle})),e("p",Object.assign({className:"mt-4 font-semilight opacity-70"},{children:null==r?void 0:r.formdescription}))]}))}))]}))}))};export{c as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__awaiter as o}from"../../../_virtual/_tslib.js";import{jsx as r}from"react/jsx-runtime";import{useState as t,useEffect as c}from"react";import i from"copy-to-clipboard";import e from"../../Icons/copied.svg.js";import s from"../../Icons/copy.svg.js";import n from"./PickaxeSimpleButton.js";import l from"../../../common/cn.js";const m=({color:m,text:a="",className:p,iconClassName:f})=>{const[h,u]=t(a),[d,j]=t(!1),[y,g]=t(!1);c((()=>{u(a)}),[a]);return r(n,Object.assign({color:m},p&&{className:p},{isForceColor:y,onClick:()=>o(void 0,void 0,void 0,(function*(){var o;try{if(d)return;j(!0);const r=null!==(o=[...Array.from(a.matchAll(/https:\/\/streaming\.pickaxeproject\.com\/api\/function_call_results\?.*?&name=[^&]+/g)),...Array.from(a.matchAll(/https:\/\/utils\.pickaxe\.chat\/api\/fn\/result\?.*?&name=[^&]+/g))].map((o=>o[0])))&&void 0!==o?o:[],t=[];if(r.length){for(const o of r)try{const r=yield fetch(o),c=yield r.json(),i=c.text||c.url||"";t.push(i)}catch(o){console.error(o)}t.length&&u(t.join("\n"))}i(t.length>0?t.join("\n"):h),j(!1),g(!0),yield new Promise((o=>setTimeout(o,1500)))}catch(o){console.error(o)}finally{j(!1),g(!1)}}))},{children:r(d||y?e:s,{className:l("w-4 h-4 shrink-0",f)})}))};export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useState as s}from"react";import t from"../../Icons/spark.svg.js";import r from"../../../common/cn.js";const i=({src:i,alt:a,width:o=24,height:c=24,className:n,textColor:h,isLoading:l})=>{const[d,m]=s(!1),g=i||"";return l?e("div",{className:r("shrink-0 animate-pulse rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",n),style:{width:o,height:c}}):h&&"https://pickaxe.chat/builder/assets/images/pickaxe-chaticons/chaticon2.png"===g?e(t,{className:r("h-6 w-6 shrink-0",n),style:{color:h}}):"NONE"===g?null:e("div",!g||d?{className:r("shrink-0 rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",n),style:{width:o,height:c}}:Object.assign({className:"relative shrink-0 rounded",style:{width:o,height:c}},{children:e("img",{src:g,alt:a||"Pickaxe's Profile Picture",width:o,height:c,className:r("select-none rounded object-cover",n),draggable:!1,onError:()=>m(!0)})}))};export{i as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useRef as t,useEffect as r,useMemo as o}from"react";import{marked as c}from"marked";import{renderer as n}from"../../../common/renderer.js";import{usePickaxeContext as i}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useLinkPreviews as s}from"../../../hooks/pickaxe/useLinkPreviews.js";import{useActions as m}from"../../../hooks/pickaxe/useActions.js";import a from"marked-katex-extension";import l from"copy-to-clipboard";import d from"../../Core/HtmlRenderer.js";c.use(a({throwOnError:!1,output:"mathml"}));const u=({html:a,className:u,style:p,marked:h,renderer:f,onClick:b})=>{const{styles:k,colors:v}=i(),w=t(null);s(w,{theme:k.theme}),m(w,{theme:k.theme,accentColor:v.accent,accentTextColor:v.accentText}),r((()=>{const e=w.current;if(!e)return;const t=e=>{var t,r,o;const c=e.target.closest(".copy-code-button");if(c){const e=null!==(o=null===(r=null===(t=c.parentElement)||void 0===t?void 0:t.querySelector("code"))||void 0===r?void 0:r.textContent)&&void 0!==o?o:"";if(!e)return;l(e)}};return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}),[w]);const y=o((()=>{let e=a||"";const t=e.match(/<iframe\s+[^>]*src=["']https:\/\/www\.youtube\.com\/embed\/([\w-]+)(\?[^"' >]*)?["'][^>]*><\/iframe>/gi);return t&&t.forEach((t=>{var r;const o=`<div style="width: 100%; height: 315px; max-width: 560px;">\n <iframe src="https://www.youtube.com/embed/${null===(r=t.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([\w-]+)/))||void 0===r?void 0:r[1]}"\n style="width: 100%; height: 100%;"\n frameborder="0"\n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"\n allowfullscreen>\n </iframe>\n</div>`;e=e.replace(t,o)})),e.replace(/```[\s\S]*?```|(\n(?=\n))/g,((e,t)=>t?"\n\n<br/>\n":e))}),[a]);return e("div",Object.assign({ref:w},{children:e(d,{html:c.parse(y,Object.assign({gfm:!0,breaks:!0,renderer:n(Object.assign(Object.assign({},f),{theme:k.theme,accentColor:v.accent,centerMedia:!1,linkPreviews:!0,actions:!0}))},h)).toString(),className:u,style:p,onClick:b})}))};export{u as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__rest as o}from"../../../_virtual/_tslib.js";import{jsx as r}from"react/jsx-runtime";import{useHover as e}from"../../../hooks/core/useHover.js";import s from"../../../common/cn.js";const t=({color:t,children:i,className:c,isForceColor:n,onClick:l})=>{const m=e(),{isHover:a}=m,p=o(m,["isHover"]);return r("button",Object.assign({className:s("flex items-center gap-1 outline-none",c)},(a||n)&&{style:{color:t}},l&&{onClick:o=>{o.stopPropagation(),l()}},p,{children:i}))};export{t as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__awaiter as e}from"../../_virtual/_tslib.js";import{useEffect as t}from"react";import{marked as o}from"marked";import{renderer as n}from"../../common/renderer.js";import{streamer as r}from"../../common/api/streamer.js";import l from"../../common/api/utils.js";const i=(t,r)=>e(void 0,void 0,void 0,(function*(){var e,l;const i=t.replace(/```[\s\S]*?```|(\n(?=\n))/g,((e,t)=>t?"\n\n<br/>\n":e));return yield o.parse(i,{gfm:!0,breaks:!0,renderer:n({theme:null!==(e=null==r?void 0:r.theme)&&void 0!==e?e:"light",accentColor:null!==(l=null==r?void 0:r.accentColor)&&void 0!==l?l:"#228DD7",centerMedia:!1,linkPreviews:!0,actions:!0})})})),s=(t,o)=>e(void 0,void 0,void 0,(function*(){try{yield l.post("/fn/update",{id:t,data:o})}catch(e){console.error("[updateCache] error",e)}})),d=(o,n)=>{t((()=>{const t=null==o?void 0:o.current;if(!t)return;const l=new MutationObserver((()=>e(void 0,void 0,void 0,(function*(){var e,t,o,l,d,c,a;const u=document.querySelectorAll(".marked-link-function-calling-loader");for(const m of u){if(m.dataset.processed)continue;"development"===process.env.NODE_ENV&&console.log("[useActions] getting action",m.href);const u=null!==(o=null!==(t=null===(e=m.parentElement)||void 0===e?void 0:e.parentElement)&&void 0!==t?t:m.parentElement)&&void 0!==o?o:null;if(!u){console.error("[useActions] missing message container");continue}const p=null!==(l=m.getAttribute("alt"))&&void 0!==l?l:m.getAttribute("data-fn-url");if(!p){console.error("[useActions] missing fn result url");continue}const f=yield fetch(p);if(200!==f.status){console.error("[useActions] failed fetching result:",f);continue}const v=yield f.json();if(v.error)console.error("[useActions] error in req:",v.error);else if(v.fcid)"development"===process.env.NODE_ENV&&console.log("[useActions] waiting for fn call to complete");else{if(v.url){m.remove();const e=document.createElement("img");e.src=v.url,e.alt=null!==(d=v.prompt)&&void 0!==d?d:"Generated Image",e.style.marginTop="1em",e.style.borderRadius="4px",e.style.width="100%",u.appendChild(e);const t=document.createElement("div");t.style.marginTop="1em",t.style.display="flex",t.style.alignItems="center",t.style.justifyContent="flex-end",t.style.gap="0.5em",t.style.width="100%";const o=document.createElement("button");o.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M21 21H3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n<path d="M7 10L12 15L17 10" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n<path d="M12 15V3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n</svg>\n',o.style.padding=".5em",o.style.backgroundColor="#228DD7",o.style.color=null!==(c=null==n?void 0:n.accentTextColor)&&void 0!==c?c:"#FFFFFF",o.style.textAlign="center",o.style.textDecoration="none",o.style.borderRadius="4px",o.style.fontSize="16px",o.style.fontWeight="bold",o.style.boxShadow="0 2px 5px rgba(0, 0, 0, 0.2)",o.style.transition="background-color 0.3s ease",o.addEventListener("mouseover",(function(){var e;o.style.backgroundColor=(null!==(e=null==n?void 0:n.accentColor)&&void 0!==e?e:"#228DD7")+"CC"})),o.addEventListener("mouseout",(function(){var e;o.style.backgroundColor=null!==(e=null==n?void 0:n.accentColor)&&void 0!==e?e:"#228DD7"})),o.addEventListener("click",(function(e){var t;e.preventDefault();const o=document.createElement("a");o.href=null!==(t=v.url)&&void 0!==t?t:"",o.download="generated_image.png",o.click()})),t.appendChild(o),u.appendChild(t)}if(v.text){m.remove();const e=document.createElement("div");e.style.marginTop="1em",e.innerHTML=yield i(v.text),u.appendChild(e)}if(v.button_link){m.remove();const e=document.createElement("a");e.href=v.button_link,e.target="_blank",e.classList.add("link-preview-button"),e.textContent=v.button_text||"",e.style.display="inline-block",e.style.padding="10px 20px",e.style.backgroundColor="#228DD7",e.style.color="#ffffff",e.style.textAlign="center",e.style.textDecoration="none",e.style.borderRadius="4px",e.style.fontSize="16px",e.style.fontWeight="bold",e.style.boxShadow="0 2px 5px rgba(0, 0, 0, 0.2)",e.style.transition="background-color 0.3s ease",e.addEventListener("mouseover",(function(){e.style.backgroundColor="#489dd9"})),e.addEventListener("mouseout",(function(){e.style.backgroundColor="#228DD7"})),u.appendChild(document.createElement("br")),u.appendChild(e)}if(v.openaidata&&!v.text){const e=null!==(a=new URL(p).searchParams.get("id"))&&void 0!==a?a:v.call_id,t=null==v?void 0:v.actionId;m.remove();const o=v.formId;if(!o){console.error("Missing formId from result data");continue}const n=v.responseId;if(!n){console.error("Missing responseId from result data");continue}const l=(yield r({formId:o,responseId:n,data:v.openaidata})).body;if(!l){console.error("Streaming error, no response body");continue}let d=!0,c="";const f=document.createElement("div");f.style.marginTop="1em",f.dataset.actionId=t,u.appendChild(f);const g=l.getReader(),y=new TextDecoder;for(;d;){const{value:e,done:t}=yield g.read();d=!t;c+=y.decode(e),"marked"in window?f.innerHTML=yield i(c):f.textContent=c}const b=null!=e?e:v.call_id;b&&(yield s(b,Object.assign(Object.assign({},v),{text:c})))}}}}))));return l.observe(t,{childList:!0,subtree:!0}),()=>{l.disconnect()}}),[o])};export{d as useActions};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__awaiter as e}from"../../_virtual/_tslib.js";import{useEffect as t}from"react";import o from"../../common/api/utils.js";import r from"../../common/error.js";const i=e=>{setTimeout((()=>{e.style.opacity="1",e.style.transform="scale(1)"}),50)},n=e=>{e.onmouseover=()=>{e.style.transform="scale(.99)"},e.onmouseout=()=>{e.style.transform="scale(1)"}},s=t=>e(void 0,void 0,void 0,(function*(){try{const e=yield o.get(`/metadata?url=${encodeURIComponent(t)}`);return e.data}catch(e){const t=r(e);return console.error("[fetchMetadata] error",t),null}})),a=(o,r)=>{t((()=>{const t=null==o?void 0:o.current;if(!t)return;const a=new MutationObserver((()=>e(void 0,void 0,void 0,(function*(){const e=t.querySelectorAll(".marked-link-possible-preview-render");for(const t of e){"development"===process.env.NODE_ENV&&console.log("[useLinkPreviews] getting preview for",t.href),t.classList.remove("marked-link-possible-preview-render");const e=t.closest(".chat-message");if(!e)continue;if(e.querySelector(`div[data-href="${t.href}"]`))continue;const o=yield s(t.href);if(!o||!o.image||!o.title)continue;const a=document.createElement("div");a.setAttribute("style","display: flex; margin-top: 2em; text-decoration: none;"),a.dataset.href=t.href,a.dataset.processed="true";const l=r?"dark"===r.theme:document.documentElement.classList.contains("dark"),d=document.createElement("a");if(d.href=t.href,d.setAttribute("target","_blank"),d.setAttribute("style",`display: flex; position: relative; flex-direction: column; border-radius: 20px; border-bottom-left-radius: 10px; width: 100%; max-width: 220px; background-color: #${l?"000000":"E9E9EB"}; overflow: hidden;`),o.image&&(o.image.startsWith("http")||o.image.startsWith("data:image")||o.image.startsWith("blob:"))){const e=document.createElement("div");e.setAttribute("style",`position: relative; flex-grow: 1; width: 100%; overflow: hidden; background-image: url("${o.image}"); background-size: cover; background-position: center; height: 90px;`),d.appendChild(e)}const c=document.createElement("div");c.setAttribute("style","display: flex; flex-direction: column; padding: 0.25em 1em; gap: 0.2em;");const m=document.createElement("p");m.textContent=o.title,m.setAttribute("style","font-size: 14px; font-weight: 600; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"),c.appendChild(m);const p=document.createElement("p");p.textContent=o.href,p.setAttribute("style","opacity: 0.6; font-size: 14px; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"),c.appendChild(p),d.appendChild(c),a.appendChild(d);const u=t.closest(".chat-message");u&&(u.querySelector(`div[data-href="${t.href}"]`)||(u.appendChild(a),i(d),n(d)))}}))));return a.observe(t,{childList:!0,subtree:!0}),()=>{a.disconnect()}}),[o])};export{a as useLinkPreviews};
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{Pickaxe}from"./components/Pickaxe/index.js";export{PickaxeContext,PickaxeProvider}from"./components/Pickaxe/Provider.js";export{ResponseContext}from"./components/Pickaxe/ResponseProvider.js";export{useConversation}from"./hooks/pickaxe/useConversation.js";export{useHistory}from"./hooks/pickaxe/useHistory.js";export{usePickaxe}from"./hooks/pickaxe/usePickaxe.js";export{usePickaxeContext}from"./hooks/pickaxe/usePickaxeContext.js";export{useResponseContext}from"./hooks/pickaxe/useResponseContext.js";export{useSubmit}from"./hooks/pickaxe/useSubmit.js";export{useSubmitDocument}from"./hooks/pickaxe/useSubmitDocument.js";export{useSubmitResult}from"./hooks/pickaxe/useSubmitResult.js";
|
|
1
|
+
export{Pickaxe}from"./components/Pickaxe/index.js";export{PickaxeContext,PickaxeProvider}from"./components/Pickaxe/Provider.js";export{ResponseContext}from"./components/Pickaxe/ResponseProvider.js";export{useConversation}from"./hooks/pickaxe/useConversation.js";export{useHistory}from"./hooks/pickaxe/useHistory.js";export{usePickaxe}from"./hooks/pickaxe/usePickaxe.js";export{usePickaxeContext}from"./hooks/pickaxe/usePickaxeContext.js";export{useResponseContext}from"./hooks/pickaxe/useResponseContext.js";export{useSubmit}from"./hooks/pickaxe/useSubmit.js";export{useSubmitDocument}from"./hooks/pickaxe/useSubmitDocument.js";export{useSubmitResult}from"./hooks/pickaxe/useSubmitResult.js";export{useLinkPreviews}from"./hooks/pickaxe/useLinkPreviews.js";export{useActions}from"./hooks/pickaxe/useActions.js";
|
|
@@ -4,9 +4,11 @@ import "prismjs/components/prism-markdown";
|
|
|
4
4
|
import "prismjs/components/prism-markup";
|
|
5
5
|
import "prismjs/components/prism-python";
|
|
6
6
|
export interface RendererOptions {
|
|
7
|
-
|
|
7
|
+
theme?: "light" | "dark";
|
|
8
8
|
accentColor?: string;
|
|
9
9
|
centerMedia?: boolean;
|
|
10
10
|
forceMobile?: boolean;
|
|
11
|
+
linkPreviews?: boolean;
|
|
12
|
+
actions?: boolean;
|
|
11
13
|
}
|
|
12
|
-
export declare const renderer: ({
|
|
14
|
+
export declare const renderer: ({ theme, accentColor, centerMedia, forceMobile, linkPreviews, actions, }?: RendererOptions) => import("marked").Renderer;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface PickaxeCopyButtonProps {
|
|
2
|
+
color: string;
|
|
3
|
+
text?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
iconClassName?: string;
|
|
6
|
+
}
|
|
7
|
+
declare const PickaxeCopyButton: ({ color, text, className, iconClassName, }: PickaxeCopyButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default PickaxeCopyButton;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type CSSProperties } from "react";
|
|
2
|
+
import { type MarkedOptions } from "marked";
|
|
3
|
+
import { type RendererOptions } from "../../../common/renderer";
|
|
4
|
+
interface PickaxeMarkdownProps {
|
|
5
|
+
html?: string | null;
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
renderer?: RendererOptions;
|
|
9
|
+
marked?: MarkedOptions;
|
|
10
|
+
onClick?: () => void;
|
|
11
|
+
}
|
|
12
|
+
declare const PickaxeMarkdown: ({ html: _html, className, style, marked: _marked, renderer: _renderer, onClick, }: PickaxeMarkdownProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default PickaxeMarkdown;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
interface PickaxeSimpleButtonProps {
|
|
3
|
+
color: string;
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
className?: string;
|
|
6
|
+
isForceColor?: boolean;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
}
|
|
9
|
+
declare const PickaxeSimpleButton: ({ color, children, className, isForceColor, onClick, }: PickaxeSimpleButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default PickaxeSimpleButton;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
interface UseActionsOptions {
|
|
3
|
+
theme?: "light" | "dark";
|
|
4
|
+
accentColor?: string;
|
|
5
|
+
accentTextColor?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const useActions: (ref: RefObject<HTMLDivElement> | null, opt?: UseActionsOptions) => void;
|
|
8
|
+
export {};
|
package/dist/esm/src/index.d.ts
CHANGED
|
@@ -9,3 +9,5 @@ export * from "./hooks/pickaxe/useResponseContext";
|
|
|
9
9
|
export * from "./hooks/pickaxe/useSubmit";
|
|
10
10
|
export * from "./hooks/pickaxe/useSubmitDocument";
|
|
11
11
|
export * from "./hooks/pickaxe/useSubmitResult";
|
|
12
|
+
export * from "./hooks/pickaxe/useLinkPreviews";
|
|
13
|
+
export * from "./hooks/pickaxe/useActions";
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),r=require("react"),o=require("copy-to-clipboard"),i=require("../Icons/copied.svg.js"),a=require("../Icons/copy.svg.js"),s=require("../../common/cn.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=n(o);exports.default=o=>{var{className:n="",inactiveColor:l="text-[#6A747C] hover:text-[#228DD7]",activeColor:u="text-[#228DD7]",size:f=16,text:d=""}=o,h=e.__rest(o,["className","inactiveColor","activeColor","size","text"]);const[p,m]=r.useState(d),[v,j]=r.useState(!1);r.useEffect((()=>{m(d)}),[d]);return t.jsx("button",Object.assign({style:Object.assign(Object.assign({},h),{width:`${f}px`,height:`${f}px`,cursor:v?"default":"pointer"}),className:s.default("outline-none hover:duration-300",n),onClick:t=>{t.preventDefault(),t.stopPropagation(),e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(v)return;j(!0);const t=null!==(e=[...Array.from(d.matchAll(/https:\/\/streaming\.pickaxeproject\.com\/api\/function_call_results\?.*?&name=[^&]+/g)),...Array.from(d.matchAll(/https:\/\/utils\.pickaxe\.chat\/api\/fn\/result\?.*?&name=[^&]+/g))].map((e=>e[0])))&&void 0!==e?e:[],r=[];if(t.length){for(const e of t)try{const t=yield fetch(e),o=yield t.json(),i=o.text||o.url||"";r.push(i)}catch(e){console.error(e)}r.length&&m(r.join("\n"))}c.default(r.length>0?r.join("\n"):p),yield new Promise((e=>setTimeout(e,1500))),j(!1)}catch(e){console.error(e)}finally{j(!1)}}))}},{children:v?t.jsx(i.default,{className:s.default(u),width:f,height:f}):t.jsx(a.default,{className:s.default(l),width:f,height:f})}))};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("marked"),n=require("../../common/renderer.js"),o=require("marked-katex-extension"),c=require("copy-to-clipboard"),i=require("./HtmlRenderer.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=u(o),l=u(c);t.marked.use(a.default({throwOnError:!1,output:"mathml"}));exports.default=({html:o,className:c,style:u,marked:a,renderer:s,onClick:d})=>{const m=r.useRef(null);r.useEffect((()=>{const e=m.current;if(!e)return;const r=e=>{var r,t,n;const o=e.target.closest(".copy-code-button");if(o){const e=null!==(n=null===(t=null===(r=o.parentElement)||void 0===r?void 0:r.querySelector("code"))||void 0===t?void 0:t.textContent)&&void 0!==n?n:"";if(!e)return;l.default(e)}};return e.addEventListener("click",r),()=>{e.removeEventListener("click",r)}}),[m]);const f=r.useMemo((()=>{let e=o||"";const r=e.match(/<iframe\s+[^>]*src=["']https:\/\/www\.youtube\.com\/embed\/([\w-]+)(\?[^"' >]*)?["'][^>]*><\/iframe>/gi);return r&&r.forEach((r=>{var t;const n=`<div style="width: 100%; height: 315px; max-width: 560px;">\n <iframe src="https://www.youtube.com/embed/${null===(t=r.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([\w-]+)/))||void 0===t?void 0:t[1]}"\n style="width: 100%; height: 100%;"\n frameborder="0"\n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"\n allowfullscreen>\n </iframe>\n</div>`;e=e.replace(r,n)})),e.replace(/```[\s\S]*?```|(\n(?=\n))/g,((e,r)=>r?"\n\n<br/>\n":e))}),[o]);return e.jsx("div",Object.assign({ref:m},{children:e.jsx(i.default,{html:t.marked.parse(f,Object.assign({gfm:!0,renderer:n.renderer(s),breaks:!0},a)).toString(),className:c,style:u,onClick:d})}))};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../Icons/spark.svg.js"),r=require("../../common/cn.js");exports.default=({src:a,alt:i,width:c=24,height:l=24,className:d,textColor:n,isLoading:h})=>{const[o,u]=s.useState(!1),g=a||"";return h?e.jsx("div",{className:r.default("shrink-0 animate-pulse rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",d),style:{width:c,height:l}}):n&&"https://pickaxe.chat/builder/assets/images/pickaxe-chaticons/chaticon2.png"===g?e.jsx(t.default,{className:r.default("h-6 w-6 shrink-0",d),style:{color:n}}):"NONE"===g?null:!g||o?e.jsx("div",{className:r.default("shrink-0 rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",d),style:{width:c,height:l}}):e.jsx("div",Object.assign({className:"relative shrink-0 rounded",style:{width:c,height:l}},{children:e.jsx("img",{src:g,alt:i||"Pickaxe's Profile Picture",width:c,height:l,className:r.default("select-none rounded object-cover",d),draggable:!1,onError:()=>u(!0)})}))};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type CSSProperties } from "react";
|
|
2
|
-
interface CopyButtonProps extends CSSProperties {
|
|
3
|
-
className?: string;
|
|
4
|
-
inactiveColor?: string;
|
|
5
|
-
activeColor?: string;
|
|
6
|
-
size?: number;
|
|
7
|
-
text?: string;
|
|
8
|
-
}
|
|
9
|
-
declare const CopyButton: ({ className, inactiveColor, activeColor, size, text, ...props }: CopyButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
export default CopyButton;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type CSSProperties } from "react";
|
|
2
|
-
import { type MarkedOptions } from "marked";
|
|
3
|
-
import { type RendererOptions } from "../../common/renderer";
|
|
4
|
-
interface MarkdownRendererProps {
|
|
5
|
-
html?: string | null;
|
|
6
|
-
className?: string;
|
|
7
|
-
style?: CSSProperties;
|
|
8
|
-
renderer?: RendererOptions;
|
|
9
|
-
marked?: MarkedOptions;
|
|
10
|
-
onClick?: () => void;
|
|
11
|
-
}
|
|
12
|
-
declare const MarkdownRenderer: ({ html: _html, className, style, marked: _marked, renderer: _renderer, onClick, }: MarkdownRendererProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export default MarkdownRenderer;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{__rest as t,__awaiter as o}from"../../_virtual/_tslib.js";import{jsx as e}from"react/jsx-runtime";import{useState as r,useEffect as i}from"react";import s from"copy-to-clipboard";import n from"../Icons/copied.svg.js";import a from"../Icons/copy.svg.js";import c from"../../common/cn.js";const l=l=>{var{className:m="",inactiveColor:p="text-[#6A747C] hover:text-[#228DD7]",activeColor:h="text-[#228DD7]",size:f=16,text:u=""}=l,d=t(l,["className","inactiveColor","activeColor","size","text"]);const[v,g]=r(u),[j,x]=r(!1);i((()=>{g(u)}),[u]);return e("button",Object.assign({style:Object.assign(Object.assign({},d),{width:`${f}px`,height:`${f}px`,cursor:j?"default":"pointer"}),className:c("outline-none hover:duration-300",m),onClick:t=>{t.preventDefault(),t.stopPropagation(),o(void 0,void 0,void 0,(function*(){var t;try{if(j)return;x(!0);const o=null!==(t=[...Array.from(u.matchAll(/https:\/\/streaming\.pickaxeproject\.com\/api\/function_call_results\?.*?&name=[^&]+/g)),...Array.from(u.matchAll(/https:\/\/utils\.pickaxe\.chat\/api\/fn\/result\?.*?&name=[^&]+/g))].map((t=>t[0])))&&void 0!==t?t:[],e=[];if(o.length){for(const t of o)try{const o=yield fetch(t),r=yield o.json(),i=r.text||r.url||"";e.push(i)}catch(t){console.error(t)}e.length&&g(e.join("\n"))}s(e.length>0?e.join("\n"):v),yield new Promise((t=>setTimeout(t,1500))),x(!1)}catch(t){console.error(t)}finally{x(!1)}}))}},{children:j?e(n,{className:c(h),width:f,height:f}):e(a,{className:c(p),width:f,height:f})}))};export{l as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useRef as r,useEffect as t,useMemo as o}from"react";import{marked as n}from"marked";import{renderer as c}from"../../common/renderer.js";import i from"marked-katex-extension";import m from"copy-to-clipboard";import a from"./HtmlRenderer.js";n.use(i({throwOnError:!1,output:"mathml"}));const l=({html:i,className:l,style:s,marked:d,renderer:u,onClick:p})=>{const f=r(null);t((()=>{const e=f.current;if(!e)return;const r=e=>{var r,t,o;const n=e.target.closest(".copy-code-button");if(n){const e=null!==(o=null===(t=null===(r=n.parentElement)||void 0===r?void 0:r.querySelector("code"))||void 0===t?void 0:t.textContent)&&void 0!==o?o:"";if(!e)return;m(e)}};return e.addEventListener("click",r),()=>{e.removeEventListener("click",r)}}),[f]);const h=o((()=>{let e=i||"";const r=e.match(/<iframe\s+[^>]*src=["']https:\/\/www\.youtube\.com\/embed\/([\w-]+)(\?[^"' >]*)?["'][^>]*><\/iframe>/gi);return r&&r.forEach((r=>{var t;const o=`<div style="width: 100%; height: 315px; max-width: 560px;">\n <iframe src="https://www.youtube.com/embed/${null===(t=r.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([\w-]+)/))||void 0===t?void 0:t[1]}"\n style="width: 100%; height: 100%;"\n frameborder="0"\n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"\n allowfullscreen>\n </iframe>\n</div>`;e=e.replace(r,o)})),e.replace(/```[\s\S]*?```|(\n(?=\n))/g,((e,r)=>r?"\n\n<br/>\n":e))}),[i]);return e("div",Object.assign({ref:f},{children:e(a,{html:n.parse(h,Object.assign({gfm:!0,renderer:c(u),breaks:!0},d)).toString(),className:l,style:s,onClick:p})}))};export{l as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useState as s}from"react";import t from"../Icons/spark.svg.js";import r from"../../common/cn.js";const i=({src:i,alt:a,width:o=24,height:c=24,className:n,textColor:h,isLoading:l})=>{const[d,m]=s(!1),g=i||"";return l?e("div",{className:r("shrink-0 animate-pulse rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",n),style:{width:o,height:c}}):h&&"https://pickaxe.chat/builder/assets/images/pickaxe-chaticons/chaticon2.png"===g?e(t,{className:r("h-6 w-6 shrink-0",n),style:{color:h}}):"NONE"===g?null:e("div",!g||d?{className:r("shrink-0 rounded bg-[#E5E7EB] dark:bg-[#1E1E1F]",n),style:{width:o,height:c}}:Object.assign({className:"relative shrink-0 rounded",style:{width:o,height:c}},{children:e("img",{src:g,alt:a||"Pickaxe's Profile Picture",width:o,height:c,className:r("select-none rounded object-cover",n),draggable:!1,onError:()=>m(!0)})}))};export{i as default};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type CSSProperties } from "react";
|
|
2
|
-
interface CopyButtonProps extends CSSProperties {
|
|
3
|
-
className?: string;
|
|
4
|
-
inactiveColor?: string;
|
|
5
|
-
activeColor?: string;
|
|
6
|
-
size?: number;
|
|
7
|
-
text?: string;
|
|
8
|
-
}
|
|
9
|
-
declare const CopyButton: ({ className, inactiveColor, activeColor, size, text, ...props }: CopyButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
export default CopyButton;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type CSSProperties } from "react";
|
|
2
|
-
import { type MarkedOptions } from "marked";
|
|
3
|
-
import { type RendererOptions } from "../../common/renderer";
|
|
4
|
-
interface MarkdownRendererProps {
|
|
5
|
-
html?: string | null;
|
|
6
|
-
className?: string;
|
|
7
|
-
style?: CSSProperties;
|
|
8
|
-
renderer?: RendererOptions;
|
|
9
|
-
marked?: MarkedOptions;
|
|
10
|
-
onClick?: () => void;
|
|
11
|
-
}
|
|
12
|
-
declare const MarkdownRenderer: ({ html: _html, className, style, marked: _marked, renderer: _renderer, onClick, }: MarkdownRendererProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export default MarkdownRenderer;
|
|
File without changes
|
|
File without changes
|