@pickaxeproject/react 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/dist/cjs/components/Pickaxe/Addons/Artifact/Renderer.js +1 -1
  2. package/dist/cjs/components/Pickaxe/Addons/Artifact/index.js +1 -1
  3. package/dist/cjs/index.js +1 -1
  4. package/dist/cjs/src/components/Pickaxe/Addons/Artifact/Renderer.d.ts +7 -1
  5. package/dist/cjs/src/components/Pickaxe/Addons/Artifact/index.d.ts +4 -2
  6. package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown/hooks/usePickaxeMarkdownContext.d.ts +1 -1
  7. package/dist/cjs/src/hooks/pickaxe/usePickaxeContext.d.ts +1 -1
  8. package/dist/cjs/src/index.d.ts +1 -1
  9. package/dist/esm/components/Pickaxe/Addons/Artifact/Renderer.js +1 -1
  10. package/dist/esm/components/Pickaxe/Addons/Artifact/index.js +1 -1
  11. package/dist/esm/index.js +1 -1
  12. package/dist/esm/src/components/Pickaxe/Addons/Artifact/Renderer.d.ts +7 -1
  13. package/dist/esm/src/components/Pickaxe/Addons/Artifact/index.d.ts +4 -2
  14. package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown/hooks/usePickaxeMarkdownContext.d.ts +1 -1
  15. package/dist/esm/src/hooks/pickaxe/usePickaxeContext.d.ts +1 -1
  16. package/dist/esm/src/index.d.ts +1 -1
  17. package/package.json +1 -1
  18. package/dist/cjs/components/Pickaxe/Addons/Artifact/PickaxeArtifactPanel.js +0 -1
  19. package/dist/cjs/node_modules/.pnpm/react-resizable-panels@3.0.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-resizable-panels/dist/react-resizable-panels.js +0 -1
  20. package/dist/cjs/src/components/Pickaxe/Addons/Artifact/PickaxeArtifactPanel.d.ts +0 -3
  21. package/dist/esm/components/Pickaxe/Addons/Artifact/PickaxeArtifactPanel.js +0 -1
  22. package/dist/esm/node_modules/.pnpm/react-resizable-panels@3.0.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-resizable-panels/dist/react-resizable-panels.js +0 -1
  23. package/dist/esm/src/components/Pickaxe/Addons/Artifact/PickaxeArtifactPanel.d.ts +0 -3
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),o=require("react"),t=require("./hooks/useArtifactContext.js"),n=require("../../../../hooks/pickaxe/usePickaxeContext.js"),l=require("../Scroll/hooks/useScroll.js"),a=require("react-to-pdf"),r=require("../../common/PickaxeMarkdown/index.js"),s=require("../../common/PickaxeMarkdown/Renderer.js"),c=require("react-syntax-highlighter"),i=require("../Scroll/ScrollLockView.js"),d=require("../../../Icons/x.svg.js"),p=require("../../../Icons/eye.svg.js"),u=require("../../../Icons/code.svg.js"),x=require("../../../Core/ScrollArea.js"),m=require("../../../Core/Menu/index.js"),g=require("../../../Core/Menu/Button.js"),y=require("../../../Core/Menu/List.js"),f=require("../../common/PickaxeSimpleButton.js"),b=require("./MermaidRenderer.js"),h=require("csv-to-markdown-table"),v=require("../../../../common/cn.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=j(h);const w="development"===process.env.NODE_ENV?"http://localhost:3007":"https://user-content.pickaxe.co",k=[{id:"render",icon:p.default,hideIn:["application/vnd.pxe.code"]},{id:"code",icon:u.default}];exports.default=({className:p,style:u})=>{var h;const{artifacts:j,currentArtifact:F,setCurrentArtifact:O}=t.useArtifactContext(),{styles:S,colors:T,translations:D}=n.usePickaxeContext(),{toPDF:A,targetRef:N}=a.usePDF({filename:`${(null==F?void 0:F.id)||"Untitled"}.pdf`,page:{margin:a.Margin.MEDIUM,orientation:"portrait"}}),[E,M]=o.useState(!1),[q,B]=o.useState("code"),L=o.useRef(null),R=o.useRef(null),{scrollContainerRef:P,scrollStartSession:$,scrollToBottom:z,scrollEndSession:H}=l.useScroll({auto:"code"===q}),W=o.useMemo((()=>{var e;return F&&null!==(e=j.find((e=>e.id===F.id&&e.version===F.version)))&&void 0!==e?e:null}),[F,j]),I=o.useMemo((()=>W&&"text/csv"===W.type?C.default(W.content,",",!0):null),[W]),_=o.useMemo((()=>(T.secondaryText||"").toLowerCase().startsWith("#ffffff")),[T.secondaryText]);o.useEffect((()=>{if("application/vnd.pxe.code"===(null==W?void 0:W.type)&&B("code"),"finished"!==(null==W?void 0:W.status))return B("code"),$(),void z();H(),"application/vnd.pxe.code"!==W.type&&B("render")}),[null==W?void 0:W.status,null==W?void 0:W.type]),o.useEffect((()=>{var e;!R.current||"text/html"!==(null==W?void 0:W.type)&&"application/vnd.pxe.react"!==(null==W?void 0:W.type)||null===(e=R.current.contentWindow)||void 0===e||e.postMessage({type:"text/html"===W.type?"HTML_CODE":"REACT_CODE",content:W.content},w)}),[null==W?void 0:W.content,null==W?void 0:W.type]);const U=e=>{if(!W)return;let o={mimeType:"text/plain",extension:".txt"};switch(e){case"text/markdown":o={mimeType:"text/markdown",extension:".md"};break;case"text/html":o={mimeType:"text/html",extension:".html"};break;case"text/csv":o={mimeType:"text/csv",extension:".csv"};break;case"image/svg+xml":case"application/vnd.pxe.mermaid":o={mimeType:"image/svg+xml",extension:".svg"};break;case"application/vnd.pxe.code":o={mimeType:`application/${W.programmingLanguage||"text"};charset=utf-8`,extension:`.${W.programmingLanguage||"txt"}`};break;case"application/vnd.pxe.react":o={mimeType:"text/typescript",extension:".tsx"};break;default:o={mimeType:"text/plain",extension:".txt"}}let t=null;if("application/vnd.pxe.mermaid"===W.type&&L.current){const e=L.current.querySelector("svg");e&&(t=(new XMLSerializer).serializeToString(e))}const n=new Blob([null!=t?t:W.content],{type:o.mimeType}),l=URL.createObjectURL(n);try{const e=document.createElement("a");e.href=l,e.download=`${W.title}${o.extension}`,e.style.display="none",document.body.appendChild(e),e.click(),document.body.removeChild(e)}finally{URL.revokeObjectURL(l)}};return W?e.jsxs("div",Object.assign({className:v.default("flex flex-col",p),style:Object.assign({backgroundColor:T.secondary,color:T.secondaryText},u)},{children:[e.jsxs("div",Object.assign({className:"flex items-center gap-6 justify-between p-4 shadow-sm"},{children:[e.jsxs("div",Object.assign({className:"flex items-center gap-4"},{children:[e.jsx("div",Object.assign({className:"flex p-0.5 rounded-md",style:{backgroundColor:T.primary,color:T.text+"90"}},{children:k.map(((o,t)=>{var n;return(null===(n=o.hideIn)||void 0===n?void 0:n.includes(W.type))?null:e.jsx("button",Object.assign({className:"rounded-md p-1 px-1.5 transition-colors duration-200 ease-in-out"},q===o.id&&{style:{backgroundColor:T.secondary,color:T.secondaryText}},{onClick:()=>B(o.id)},{children:e.jsx(o.icon,{className:"w-5 h-5 shrink-0"})}),t)}))})),e.jsx("p",Object.assign({className:"font-semibold truncate text-sm"},{children:W.title}))]})),e.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[e.jsxs(m.default,Object.assign({id:`copy-artifact-${W.id}`,isOpen:E,onChange:M},{children:[e.jsx(g.default,Object.assign({variant:"anchor",className:"rounded-md border px-3 py-1.5 text-sm font-semibold select-none",style:{borderColor:T.primary,color:T.text+(E?"":"90")}},{children:(null==D?void 0:D.copy)||"Copy"})),e.jsx(y.default,Object.assign({width:"auto",className:"font-semibold p-1",style:{backgroundColor:T.secondary,color:T.secondaryText},border:`1px solid ${T.primary}`},{children:"text/markdown"===W.type?e.jsxs(e.Fragment,{children:[e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>U("text/markdown")},{children:[(null==D?void 0:D["download-as"])||"Download as"," Markdown"]})),e.jsx("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>{W&&A()}},{children:"Save as PDF"}))]}):"text/html"===W.type?e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>U("text/html")},{children:[(null==D?void 0:D["download-as"])||"Download as"," HTML"]})):"text/csv"===W.type?e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>U("text/csv")},{children:[(null==D?void 0:D["download-as"])||"Download as"," CSV"]})):"image/svg+xml"===W.type?e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>U("image/svg+xml")},{children:[(null==D?void 0:D["download-as"])||"Download as"," SVG"]})):"application/vnd.pxe.code"===W.type?e.jsx("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>U("application/vnd.pxe.code")},{children:`${(null==D?void 0:D["download-as"])||"Download as"} ${W.programmingLanguage||"Plain Text"}`})):"application/vnd.pxe.mermaid"===W.type?e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>U("application/vnd.pxe.mermaid")},{children:[(null==D?void 0:D["download-as"])||"Download as"," SVG"]})):"application/vnd.pxe.react"===W.type?e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>U("application/vnd.pxe.react")},{children:[(null==D?void 0:D["download-as"])||"Download as"," TSX"]})):null}))]})),e.jsx(f.default,Object.assign({onClick:()=>O(null)},{children:e.jsx(d.default,{className:"w-6 h-6 shrink-0"})}))]}))]})),e.jsx("div",Object.assign({className:"flex flex-col flex-grow @container/pickaxe-artifact"},{children:e.jsxs(x.default,Object.assign({ref:P,innerClassName:"flex-grow w-full"},{children:["render"===q&&"application/vnd.pxe.code"!==W.type?e.jsx("div",Object.assign({ref:N,className:v.default("p-4 pb-6 flex-grow flex flex-col","application/vnd.pxe.react"===W.type&&"p-0","text/html"===W.type&&"p-0","text/csv"===W.type&&"p-0")},{children:"text/markdown"===W.type||"text/csv"===W.type||"image/svg+xml"===W.type?e.jsx(r.PickaxeMarkdown,Object.assign({theme:S.theme,colors:T},{children:e.jsx(s.PickaxeMarkdownRenderer,{value:null!=I?I:W.content,className:v.default("px-6 @[767px]/pickaxe-artifact:px-11 mx-auto w-full","text/csv"===W.type&&"px-4 @[767px]/pickaxe-artifact:px-4 mx-0"),style:{flex:1}})})):"application/vnd.pxe.mermaid"===W.type?e.jsx(b.default,{ref:L,id:`mermaid-${null!==(h=null==F?void 0:F.id)&&void 0!==h?h:"unknown"}`,data:W.content}):"text/html"===W.type||"application/vnd.pxe.react"===W.type?e.jsx("iframe",Object.assign({ref:R,title:W.title,src:`${w}/${"text/html"===W.type?"html":"react"}?theme=${_?"dark":"light"}`,style:{width:"100%",flex:1,border:"none",backgroundColor:T.secondary},allow:"fullscreen; camera; microphone; gyroscope; accelerometer; geolocation; clipboard-write; autoplay",sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads allow-popups-to-escape-sandbox allow-pointer-lock allow-popups allow-modals allow-orientation-lock allow-presentation",onLoad:e=>{const o=e.target;setTimeout((()=>{var e;try{null===(e=o.contentWindow)||void 0===e||e.postMessage({type:"text/html"===W.type?"HTML_CODE":"REACT_CODE",content:W.content},w)}catch(e){console.error("Error sending message to iframe:",e)}}),100),z()}},{children:"Iframe is not supported, please view this artifact in a browser that supports it."})):null})):e.jsx(c.Prism,Object.assign({PreTag:"div",language:"text/markdown"===W.type?"markdown":"text/html"===W.type||"image/svg+xml"===W.type?"xml":"application/vnd.pxe.react"===W.type?"typescript":W.programmingLanguage,showLineNumbers:!0,customStyle:{margin:0,flex:1},style:Object.assign({'code[class*="language-"]':Object.assign(Object.assign({color:T.secondaryText},_&&{textShadow:"0 1px rgba(0, 0, 0, 0.3)"}),{fontFamily:"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace",direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"}),'pre[class*="language-"]':Object.assign(Object.assign({color:T.secondaryText},_&&{textShadow:"0 1px rgba(0, 0, 0, 0.3)"}),{fontFamily:"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace",direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",borderRadius:"0.3em",minWidth:0,background:T.secondary}),':not(pre) > code[class*="language-"]':{background:T.secondary,padding:".1em",borderRadius:".3em"},comment:{color:"#7C7C7C"},prolog:{color:"#7C7C7C"},doctype:{color:"#7C7C7C"},cdata:{color:"#7C7C7C"},punctuation:{color:"#c5c8c6"},".namespace":{opacity:".7"},property:{color:"#96CBFE"},keyword:{color:"#96CBFE"},tag:{color:"#96CBFE"},"class-name":{color:"#FFFFB6"},boolean:{color:"#99CC99"},constant:{color:"#99CC99"},symbol:{color:"#f92672"},deleted:{color:"#f92672"},number:{color:"#FF73FD"},selector:{color:"#A8FF60"},"attr-name":{color:"#A8FF60"},string:{color:"#A8FF60"},char:{color:"#A8FF60"},builtin:{color:"#A8FF60"},inserted:{color:"#A8FF60"},variable:{color:"#C6C5FE"},operator:{color:"#EDEDED"},entity:{color:"#FFFFB6",cursor:"help"},url:{color:"#96CBFE"},".language-css .token.string":{color:"#87C38A"},".style .token.string":{color:"#87C38A"},atrule:{color:"#F9EE98"},"attr-value":{color:"#F9EE98"},function:{color:"#DAD085"},regex:{color:"#E9C062"},important:{color:T.secondaryText,fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}},!_&&{comment:{color:"#7D8B99"},prolog:{color:"#7D8B99"},doctype:{color:"#7D8B99"},cdata:{color:"#7D8B99"},punctuation:{color:"#4D4D4C"},property:{color:"#4078F2"},keyword:{color:"#8959A8"},tag:{color:"#8959A8"},"class-name":{color:"#D75F00"},boolean:{color:"#0086B3"},constant:{color:"#0086B3"},symbol:{color:"#990055"},deleted:{color:"#990000"},number:{color:"#005CC5"},selector:{color:"#63A35C"},"attr-name":{color:"#63A35C"},string:{color:"#50A14F"},char:{color:"#50A14F"},builtin:{color:"#50A14F"},inserted:{color:"#50A14F"},variable:{color:"#A626A4"},operator:{color:"#4D4D4C"},entity:{color:"#E45649",cursor:"help"},url:{color:"#4078F2"},".language-css .token.string":{color:"#50A14F"},".style .token.string":{color:"#50A14F"},atrule:{color:"#C18401"},"attr-value":{color:"#986801"},function:{color:"#005CC5"},regex:{color:"#D16969"},important:{color:T.secondaryText,fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}})},{children:W.content})),e.jsx(i.default,{})]}))}))]})):null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),o=require("react"),t=require("./hooks/useArtifactContext.js"),n=require("../../../../hooks/pickaxe/usePickaxeContext.js"),l=require("../Scroll/hooks/useScroll.js"),a=require("react-to-pdf"),r=require("../../common/PickaxeMarkdown/index.js"),s=require("../../common/PickaxeMarkdown/Renderer.js"),i=require("react-syntax-highlighter"),c=require("../Scroll/ScrollLockView.js"),d=require("../../../Icons/x.svg.js"),p=require("../../../Icons/eye.svg.js"),u=require("../../../Icons/code.svg.js"),x=require("../../../Core/ScrollArea.js"),m=require("../../../Core/Menu/index.js"),g=require("../../../Core/Menu/Button.js"),y=require("../../../Core/Menu/List.js"),f=require("../../common/PickaxeSimpleButton.js"),v=require("./MermaidRenderer.js"),b=require("csv-to-markdown-table"),h=require("../../../../common/cn.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=j(b);const w="development"===process.env.NODE_ENV?"http://localhost:3007":"https://user-content.pickaxe.co",k=[{id:"render",icon:p.default,hideIn:["application/vnd.pxe.code"]},{id:"code",icon:u.default}];exports.default=({className:p,style:u,styling:b})=>{var j,F,O;const{artifacts:S,currentArtifact:T,setCurrentArtifact:D}=t.useArtifactContext(),{styles:A,colors:N,translations:E}=n.usePickaxeContext(),{toPDF:M,targetRef:q}=a.usePDF({filename:`${(null==T?void 0:T.id)||"Untitled"}.pdf`,page:{margin:a.Margin.MEDIUM,orientation:"portrait"}}),[B,L]=o.useState(!1),[R,P]=o.useState("code"),$=o.useRef(null),z=o.useRef(null),{scrollContainerRef:H,scrollStartSession:W,scrollToBottom:I,scrollEndSession:_}=l.useScroll({auto:"code"===R}),U=null!==(j=null==b?void 0:b.styles)&&void 0!==j?j:A,V=null!==(F=null==b?void 0:b.colors)&&void 0!==F?F:N,G=o.useMemo((()=>{var e;return T&&null!==(e=S.find((e=>e.id===T.id&&e.version===T.version)))&&void 0!==e?e:null}),[T,S]),X=o.useMemo((()=>G&&"text/csv"===G.type?C.default(G.content,",",!0):null),[G]),J=o.useMemo((()=>(V.secondaryText||"").toLowerCase().startsWith("#ffffff")),[null==V?void 0:V.secondaryText]);o.useEffect((()=>{if("application/vnd.pxe.code"===(null==G?void 0:G.type)&&P("code"),"finished"!==(null==G?void 0:G.status))return P("code"),W(),void I();_(),"application/vnd.pxe.code"!==G.type&&P("render")}),[null==G?void 0:G.status,null==G?void 0:G.type]),o.useEffect((()=>{var e;!z.current||"text/html"!==(null==G?void 0:G.type)&&"application/vnd.pxe.react"!==(null==G?void 0:G.type)||null===(e=z.current.contentWindow)||void 0===e||e.postMessage({type:"text/html"===G.type?"HTML_CODE":"REACT_CODE",content:G.content},w)}),[null==G?void 0:G.content,null==G?void 0:G.type]);const K=e=>{if(!G)return;let o={mimeType:"text/plain",extension:".txt"};switch(e){case"text/markdown":o={mimeType:"text/markdown",extension:".md"};break;case"text/html":o={mimeType:"text/html",extension:".html"};break;case"text/csv":o={mimeType:"text/csv",extension:".csv"};break;case"image/svg+xml":case"application/vnd.pxe.mermaid":o={mimeType:"image/svg+xml",extension:".svg"};break;case"application/vnd.pxe.code":o={mimeType:`application/${G.programmingLanguage||"text"};charset=utf-8`,extension:`.${G.programmingLanguage||"txt"}`};break;case"application/vnd.pxe.react":o={mimeType:"text/typescript",extension:".tsx"};break;default:o={mimeType:"text/plain",extension:".txt"}}let t=null;if("application/vnd.pxe.mermaid"===G.type&&$.current){const e=$.current.querySelector("svg");e&&(t=(new XMLSerializer).serializeToString(e))}const n=new Blob([null!=t?t:G.content],{type:o.mimeType}),l=URL.createObjectURL(n);try{const e=document.createElement("a");e.href=l,e.download=`${G.title}${o.extension}`,e.style.display="none",document.body.appendChild(e),e.click(),document.body.removeChild(e)}finally{URL.revokeObjectURL(l)}};return G?e.jsxs("div",Object.assign({className:h.default("flex flex-col",p),style:Object.assign({backgroundColor:V.secondary,color:V.secondaryText},u)},{children:[e.jsxs("div",Object.assign({className:"flex items-center gap-6 justify-between p-4 shadow-sm"},{children:[e.jsxs("div",Object.assign({className:"flex items-center gap-4"},{children:[e.jsx("div",Object.assign({className:"flex p-0.5 rounded-md",style:{backgroundColor:V.primary,color:V.text+"90"}},{children:k.map(((o,t)=>{var n;return(null===(n=o.hideIn)||void 0===n?void 0:n.includes(G.type))?null:e.jsx("button",Object.assign({className:"rounded-md p-1 px-1.5 transition-colors duration-200 ease-in-out"},R===o.id&&{style:{backgroundColor:V.secondary,color:V.secondaryText}},{onClick:()=>P(o.id)},{children:e.jsx(o.icon,{className:"w-5 h-5 shrink-0"})}),t)}))})),e.jsx("p",Object.assign({className:"font-semibold truncate text-sm"},{children:G.title}))]})),e.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[e.jsxs(m.default,Object.assign({id:`copy-artifact-${G.id}`,isOpen:B,onChange:L},{children:[e.jsx(g.default,Object.assign({variant:"anchor",className:"rounded-md border px-3 py-1.5 text-sm font-semibold select-none",style:{borderColor:V.primary,color:V.text+(B?"":"90")}},{children:(null==E?void 0:E.copy)||"Copy"})),e.jsx(y.default,Object.assign({width:"auto",className:"font-semibold p-1",style:{backgroundColor:V.secondary,color:V.secondaryText},border:`1px solid ${V.primary}`},{children:"text/markdown"===G.type?e.jsxs(e.Fragment,{children:[e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>K("text/markdown")},{children:[(null==E?void 0:E["download-as"])||"Download as"," Markdown"]})),e.jsx("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>{G&&M()}},{children:"Save as PDF"}))]}):"text/html"===G.type?e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>K("text/html")},{children:[(null==E?void 0:E["download-as"])||"Download as"," HTML"]})):"text/csv"===G.type?e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>K("text/csv")},{children:[(null==E?void 0:E["download-as"])||"Download as"," CSV"]})):"image/svg+xml"===G.type?e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>K("image/svg+xml")},{children:[(null==E?void 0:E["download-as"])||"Download as"," SVG"]})):"application/vnd.pxe.code"===G.type?e.jsx("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>K("application/vnd.pxe.code")},{children:`${(null==E?void 0:E["download-as"])||"Download as"} ${G.programmingLanguage||"Plain Text"}`})):"application/vnd.pxe.mermaid"===G.type?e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>K("application/vnd.pxe.mermaid")},{children:[(null==E?void 0:E["download-as"])||"Download as"," SVG"]})):"application/vnd.pxe.react"===G.type?e.jsxs("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>K("application/vnd.pxe.react")},{children:[(null==E?void 0:E["download-as"])||"Download as"," TSX"]})):null}))]})),e.jsx(f.default,Object.assign({onClick:()=>D(null)},{children:e.jsx(d.default,{className:"w-6 h-6 shrink-0"})}))]}))]})),e.jsx("div",Object.assign({className:"flex flex-col flex-grow @container/pickaxe-artifact"},{children:e.jsxs(x.default,Object.assign({ref:H,innerClassName:"flex-grow w-full"},{children:["render"===R&&"application/vnd.pxe.code"!==G.type?e.jsx("div",Object.assign({ref:q,className:h.default("p-4 pb-6 flex-grow flex flex-col","application/vnd.pxe.react"===G.type&&"p-0","text/html"===G.type&&"p-0","text/csv"===G.type&&"p-0")},{children:"text/markdown"===G.type||"text/csv"===G.type||"image/svg+xml"===G.type?e.jsx(r.PickaxeMarkdown,Object.assign({theme:U.theme,colors:V},{children:e.jsx(s.PickaxeMarkdownRenderer,{value:null!=X?X:G.content,className:h.default("px-6 @[767px]/pickaxe-artifact:px-11 mx-auto w-full","text/csv"===G.type&&"px-4 @[767px]/pickaxe-artifact:px-4 mx-0"),style:{flex:1}})})):"application/vnd.pxe.mermaid"===G.type?e.jsx(v.default,{ref:$,id:`mermaid-${null!==(O=null==T?void 0:T.id)&&void 0!==O?O:"unknown"}`,data:G.content}):"text/html"===G.type||"application/vnd.pxe.react"===G.type?e.jsx("iframe",Object.assign({ref:z,title:G.title,src:`${w}/${"text/html"===G.type?"html":"react"}?theme=${J?"dark":"light"}`,style:{width:"100%",flex:1,border:"none",backgroundColor:null==V?void 0:V.secondary},allow:"fullscreen; camera; microphone; gyroscope; accelerometer; geolocation; clipboard-write; autoplay",sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads allow-popups-to-escape-sandbox allow-pointer-lock allow-popups allow-modals allow-orientation-lock allow-presentation",onLoad:e=>{const o=e.target;setTimeout((()=>{var e;try{null===(e=o.contentWindow)||void 0===e||e.postMessage({type:"text/html"===G.type?"HTML_CODE":"REACT_CODE",content:G.content},w)}catch(e){console.error("Error sending message to iframe:",e)}}),100),I()}},{children:"Iframe is not supported, please view this artifact in a browser that supports it."})):null})):e.jsx(i.Prism,Object.assign({PreTag:"div",language:"text/markdown"===G.type?"markdown":"text/html"===G.type||"image/svg+xml"===G.type?"xml":"application/vnd.pxe.react"===G.type?"typescript":G.programmingLanguage,showLineNumbers:!0,customStyle:{margin:0,flex:1},style:Object.assign({'code[class*="language-"]':Object.assign(Object.assign({color:null==V?void 0:V.secondaryText},J&&{textShadow:"0 1px rgba(0, 0, 0, 0.3)"}),{fontFamily:"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace",direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"}),'pre[class*="language-"]':Object.assign(Object.assign({color:null==V?void 0:V.secondaryText},J&&{textShadow:"0 1px rgba(0, 0, 0, 0.3)"}),{fontFamily:"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace",direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",borderRadius:"0.3em",minWidth:0,background:null==V?void 0:V.secondary}),':not(pre) > code[class*="language-"]':{background:null==V?void 0:V.secondary,padding:".1em",borderRadius:".3em"},comment:{color:"#7C7C7C"},prolog:{color:"#7C7C7C"},doctype:{color:"#7C7C7C"},cdata:{color:"#7C7C7C"},punctuation:{color:"#c5c8c6"},".namespace":{opacity:".7"},property:{color:"#96CBFE"},keyword:{color:"#96CBFE"},tag:{color:"#96CBFE"},"class-name":{color:"#FFFFB6"},boolean:{color:"#99CC99"},constant:{color:"#99CC99"},symbol:{color:"#f92672"},deleted:{color:"#f92672"},number:{color:"#FF73FD"},selector:{color:"#A8FF60"},"attr-name":{color:"#A8FF60"},string:{color:"#A8FF60"},char:{color:"#A8FF60"},builtin:{color:"#A8FF60"},inserted:{color:"#A8FF60"},variable:{color:"#C6C5FE"},operator:{color:"#EDEDED"},entity:{color:"#FFFFB6",cursor:"help"},url:{color:"#96CBFE"},".language-css .token.string":{color:"#87C38A"},".style .token.string":{color:"#87C38A"},atrule:{color:"#F9EE98"},"attr-value":{color:"#F9EE98"},function:{color:"#DAD085"},regex:{color:"#E9C062"},important:{color:null==V?void 0:V.secondaryText,fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}},!J&&{comment:{color:"#7D8B99"},prolog:{color:"#7D8B99"},doctype:{color:"#7D8B99"},cdata:{color:"#7D8B99"},punctuation:{color:"#4D4D4C"},property:{color:"#4078F2"},keyword:{color:"#8959A8"},tag:{color:"#8959A8"},"class-name":{color:"#D75F00"},boolean:{color:"#0086B3"},constant:{color:"#0086B3"},symbol:{color:"#990055"},deleted:{color:"#990000"},number:{color:"#005CC5"},selector:{color:"#63A35C"},"attr-name":{color:"#63A35C"},string:{color:"#50A14F"},char:{color:"#50A14F"},builtin:{color:"#50A14F"},inserted:{color:"#50A14F"},variable:{color:"#A626A4"},operator:{color:"#4D4D4C"},entity:{color:"#E45649",cursor:"help"},url:{color:"#4078F2"},".language-css .token.string":{color:"#50A14F"},".style .token.string":{color:"#50A14F"},atrule:{color:"#C18401"},"attr-value":{color:"#986801"},function:{color:"#005CC5"},regex:{color:"#D16969"},important:{color:null==V?void 0:V.secondaryText,fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}})},{children:G.content})),e.jsx(c.default,{})]}))}))]})):null};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),a=require("../../../../hooks/core/useMediaQuery.js"),t=require("./hooks/useArtifactContext.js"),s=require("../../../../hooks/pickaxe/usePickaxeContext.js"),i=require("../../../Core/Drawer.js"),l=require("../../../Core/Modal/index.js"),o=require("../../../Core/Modal/Body.js"),c=require("../Scroll/Provider.js"),u=require("./Renderer.js");exports.PickaxeArtifact=({panel:n})=>{const{popupType:d,currentArtifact:x,setCurrentArtifact:f}=t.useArtifactContext(),{pickaxe:j,chatId:h,forceMobile:m}=s.usePickaxeContext(),[p]=a.useMediaQuery("(max-width: 899px)"),w=r.useMemo((()=>{if("auto"===d){if(m||p)return"drawer-bottom";if(!(null==j?void 0:j.chatflag)&&!h||!h)return"modal";if(!n)return"modal"}return d}),[d,m,p,null==j?void 0:j.chatflag,h,n]),b=e.jsx(u.default,{className:"h-full"});return x?e.jsx(c.ScrollProvider,{children:"auto"===w&&n?n(b):w.startsWith("drawer")?e.jsx(i.Drawer,Object.assign({open:!0,direction:m?"bottom":w.replace("drawer-",""),onClose:()=>f(null)},{children:e.jsxs(i.DrawerContent,Object.assign({"aria-describedby":"artifact-drawer",className:"min-h-[80dvh]"},{children:[e.jsx(i.DrawerTitle,Object.assign({className:"sr-only"},{children:"Artifact"})),e.jsx(u.default,{className:"flex-grow"})]}))})):"modal"===w?e.jsx(l.default,Object.assign({isOpen:!0,onChange:()=>f(null)},{children:e.jsx(o.default,Object.assign({className:"max-w-[80dvw] flex flex-col w-full",style:{minHeight:"80dvh"}},{children:e.jsx(u.default,{className:"flex-grow"})}))})):null}):null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("../../../../hooks/core/useMediaQuery.js"),s=require("./hooks/useArtifactContext.js"),a=require("../../../../hooks/pickaxe/usePickaxeContext.js"),i=require("../../../Core/Drawer.js"),l=require("../../../Core/Modal/index.js"),o=require("../../../Core/Modal/Body.js"),n=require("../Scroll/Provider.js"),c=require("./Renderer.js");exports.PickaxeArtifact=({panel:u,styling:d})=>{const{popupType:x,currentArtifact:f,setCurrentArtifact:j}=s.useArtifactContext(),{pickaxe:h,chatId:m,forceMobile:g}=a.usePickaxeContext(),[p]=t.useMediaQuery("(max-width: 899px)"),w=r.useMemo((()=>{if("auto"===x){if(g||p)return"drawer-bottom";if(!(null==h?void 0:h.chatflag)&&!m||!m)return"modal";if(!u)return"modal"}return x}),[x,g,p,null==h?void 0:h.chatflag,m,u]),b=e.jsx(c.default,{className:"h-full"});return f?e.jsx(n.ScrollProvider,{children:"auto"===w&&u?u(b):w.startsWith("drawer")?e.jsx(i.Drawer,Object.assign({open:!0,direction:g?"bottom":w.replace("drawer-",""),onClose:()=>j(null)},{children:e.jsxs(i.DrawerContent,Object.assign({"aria-describedby":"artifact-drawer",className:"min-h-[80dvh]"},{children:[e.jsx(i.DrawerTitle,Object.assign({className:"sr-only"},{children:"Artifact"})),e.jsx(c.default,Object.assign({className:"flex-grow"},d&&{styling:d}))]}))})):"modal"===w?e.jsx(l.default,Object.assign({isOpen:!0,onChange:()=>j(null)},{children:e.jsx(o.default,Object.assign({className:"max-w-[80dvw] flex flex-col w-full",style:{minHeight:"80dvh"}},{children:e.jsx(c.default,Object.assign({className:"flex-grow"},d&&{styling:d}))}))})):null}):null};
package/dist/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./components/Pickaxe/index.js"),o=require("./components/Pickaxe/Provider.js"),t=require("./components/Pickaxe/ResponseProvider.js"),r=require("./components/Pickaxe/Addons/Scroll/Provider.js"),s=require("./components/Pickaxe/common/PickaxeMarkdown/index.js"),i=require("./components/Pickaxe/common/PickaxeMarkdown/Renderer.js"),n=require("./hooks/pickaxe/useConversation.js"),x=require("./hooks/pickaxe/useHistory.js"),a=require("./hooks/pickaxe/usePickaxe.js"),c=require("./hooks/pickaxe/usePickaxeContext.js"),p=require("./hooks/pickaxe/useResponseContext.js"),u=require("./hooks/pickaxe/useDimensionContext.js"),k=require("./hooks/pickaxe/useSubmit.js"),P=require("./hooks/pickaxe/useSubmitDocument.js"),d=require("./components/EmbedPreview/Inline.js"),m=require("./components/EmbedPreview/FAB.js"),C=require("./components/EmbedPreview/Popup.js"),A=require("./components/EmbedPreview/ChatInput.js"),j=require("./components/Pickaxe/Addons/Artifact/index.js"),q=require("./components/Pickaxe/Addons/Artifact/PickaxeArtifactPanel.js"),l=require("./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext.js");exports.Pickaxe=e.Pickaxe,exports.PickaxeContext=o.PickaxeContext,exports.PickaxeProvider=o.PickaxeProvider,exports.ResponseContext=t.ResponseContext,exports.ScrollContext=r.ScrollContext,exports.ScrollProvider=r.ScrollProvider,exports.PickaxeMarkdown=s.PickaxeMarkdown,exports.PickaxeMarkdownContext=s.PickaxeMarkdownContext,exports.PickaxeMarkdownRenderer=i.PickaxeMarkdownRenderer,exports.useConversation=n.useConversation,exports.useHistory=x.useHistory,exports.useInstantPickaxe=a.useInstantPickaxe,exports.usePickaxe=a.usePickaxe,exports.usePickaxeContext=c.usePickaxeContext,exports.useResponseContext=p.useResponseContext,exports.useDimensionContext=u.useDimensionContext,exports.useSubmit=k.useSubmit,exports.useSubmitDocument=P.useSubmitDocument,exports.Inline=d.Inline,exports.FAB=m.FAB,exports.FABButton=m.FABButton,exports.Popup=C.Popup,exports.PopupCTAButton=C.PopupCTAButton,exports.ChatInput=A.ChatInput,exports.ChatInputWrapper=A.ChatInputWrapper,exports.PickaxeArtifact=j.PickaxeArtifact,exports.PickaxeArtifactPanel=q.PickaxeArtifactPanel,exports.PickaxeArtifactPanelGroup=q.PickaxeArtifactPanelGroup,exports.useArtifactContext=l.useArtifactContext;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./components/Pickaxe/index.js"),o=require("./components/Pickaxe/Provider.js"),t=require("./components/Pickaxe/ResponseProvider.js"),r=require("./components/Pickaxe/Addons/Scroll/Provider.js"),s=require("./components/Pickaxe/common/PickaxeMarkdown/index.js"),i=require("./components/Pickaxe/common/PickaxeMarkdown/Renderer.js"),n=require("./hooks/pickaxe/useConversation.js"),x=require("./hooks/pickaxe/useHistory.js"),c=require("./hooks/pickaxe/usePickaxe.js"),p=require("./hooks/pickaxe/usePickaxeContext.js"),u=require("./hooks/pickaxe/useResponseContext.js"),a=require("./hooks/pickaxe/useDimensionContext.js"),k=require("./hooks/pickaxe/useSubmit.js"),P=require("./hooks/pickaxe/useSubmitDocument.js"),d=require("./components/EmbedPreview/Inline.js"),m=require("./components/EmbedPreview/FAB.js"),C=require("./components/EmbedPreview/Popup.js"),A=require("./components/EmbedPreview/ChatInput.js"),j=require("./components/Pickaxe/Addons/Artifact/index.js"),q=require("./components/Pickaxe/Addons/Artifact/Provider.js"),v=require("./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext.js");exports.Pickaxe=e.Pickaxe,exports.PickaxeContext=o.PickaxeContext,exports.PickaxeProvider=o.PickaxeProvider,exports.ResponseContext=t.ResponseContext,exports.ScrollContext=r.ScrollContext,exports.ScrollProvider=r.ScrollProvider,exports.PickaxeMarkdown=s.PickaxeMarkdown,exports.PickaxeMarkdownContext=s.PickaxeMarkdownContext,exports.PickaxeMarkdownRenderer=i.PickaxeMarkdownRenderer,exports.useConversation=n.useConversation,exports.useHistory=x.useHistory,exports.useInstantPickaxe=c.useInstantPickaxe,exports.usePickaxe=c.usePickaxe,exports.usePickaxeContext=p.usePickaxeContext,exports.useResponseContext=u.useResponseContext,exports.useDimensionContext=a.useDimensionContext,exports.useSubmit=k.useSubmit,exports.useSubmitDocument=P.useSubmitDocument,exports.Inline=d.Inline,exports.FAB=m.FAB,exports.FABButton=m.FABButton,exports.Popup=C.Popup,exports.PopupCTAButton=C.PopupCTAButton,exports.ChatInput=A.ChatInput,exports.ChatInputWrapper=A.ChatInputWrapper,exports.PickaxeArtifact=j.PickaxeArtifact,exports.ArtifactContext=q.ArtifactContext,exports.ArtifactProvider=q.ArtifactProvider,exports.useArtifactContext=v.useArtifactContext;
@@ -1,7 +1,13 @@
1
+ import type { PickaxeProviderStyles, PickaxeProviderColors } from "../../Provider";
1
2
  import { CSSProperties } from "react";
3
+ export type ArtifactStyling = Partial<{
4
+ styles: PickaxeProviderStyles;
5
+ colors: PickaxeProviderColors;
6
+ }>;
2
7
  interface PickaxeArtifactRendererProps {
3
8
  className?: string;
4
9
  style?: CSSProperties;
10
+ styling?: ArtifactStyling;
5
11
  }
6
- declare const PickaxeArtifactRenderer: ({ className, style, }: PickaxeArtifactRendererProps) => import("react/jsx-runtime").JSX.Element | null;
12
+ declare const PickaxeArtifactRenderer: ({ className, style, styling, }: PickaxeArtifactRendererProps) => import("react/jsx-runtime").JSX.Element | null;
7
13
  export default PickaxeArtifactRenderer;
@@ -1,6 +1,8 @@
1
- import { ReactNode } from "react";
1
+ import type { ReactNode } from "react";
2
+ import type { ArtifactStyling } from "./Renderer";
2
3
  interface PickaxeArtifactProps {
3
4
  panel?: (children: ReactNode) => ReactNode;
5
+ styling?: ArtifactStyling;
4
6
  }
5
- export declare const PickaxeArtifact: ({ panel }: PickaxeArtifactProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export declare const PickaxeArtifact: ({ panel, styling }: PickaxeArtifactProps) => import("react/jsx-runtime").JSX.Element | null;
6
8
  export {};
@@ -13,5 +13,5 @@ export declare const usePickaxeMarkdownContext: () => {
13
13
  setTheme: import("../../../../../types/common").SetState<import("..").PickaxeMarkdownTheme>;
14
14
  setActionState: import("../../../../../types/common").SetState<Record<string, import("..").ActionState>>;
15
15
  setActions: import("../../../../../types/common").SetState<boolean>;
16
- onArtifactClick?: ((data: import("../../../Addons/Artifact/Provider").CurrentArtifact) => void) | undefined;
16
+ onArtifactClick?: ((data: import("../../../../..").CurrentArtifact) => void) | undefined;
17
17
  };
@@ -14,7 +14,7 @@ export declare const usePickaxeContext: () => {
14
14
  colors: import("../../components/Pickaxe/Provider").PickaxeProviderColors;
15
15
  misc: import("../../components/Pickaxe/Provider").PickaxeMisc;
16
16
  translations: import("../../components/Pickaxe/Provider").PickaxeTranslations;
17
- artifact: Omit<import("../../components/Pickaxe/Addons/Artifact/Provider").IArtifactProviderProps, "children">;
17
+ artifact: Omit<import("../..").IArtifactProviderProps, "children">;
18
18
  responsiveBy: import("../../components/Pickaxe/Provider").PickaxeResponsiveBy;
19
19
  forceMobile: boolean;
20
20
  loadFont: boolean;
@@ -18,5 +18,5 @@ export * from "./components/EmbedPreview/FAB";
18
18
  export * from "./components/EmbedPreview/Popup";
19
19
  export * from "./components/EmbedPreview/ChatInput";
20
20
  export * from "./components/Pickaxe/Addons/Artifact";
21
- export * from "./components/Pickaxe/Addons/Artifact/PickaxeArtifactPanel";
21
+ export * from "./components/Pickaxe/Addons/Artifact/Provider";
22
22
  export * from "./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext";
@@ -1 +1 @@
1
- import{jsxs as e,jsx as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useRef as l,useMemo as a,useEffect as r}from"react";import{useArtifactContext as c}from"./hooks/useArtifactContext.js";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useScroll as s}from"../Scroll/hooks/useScroll.js";import{usePDF as d,Margin as p}from"react-to-pdf";import{PickaxeMarkdown as m}from"../../common/PickaxeMarkdown/index.js";import{PickaxeMarkdownRenderer as x}from"../../common/PickaxeMarkdown/Renderer.js";import{Prism as u}from"react-syntax-highlighter";import g from"../Scroll/ScrollLockView.js";import y from"../../../Icons/x.svg.js";import f from"../../../Icons/eye.svg.js";import b from"../../../Icons/code.svg.js";import h from"../../../Core/ScrollArea.js";import v from"../../../Core/Menu/index.js";import C from"../../../Core/Menu/Button.js";import w from"../../../Core/Menu/List.js";import k from"../../common/PickaxeSimpleButton.js";import j from"./MermaidRenderer.js";import F from"csv-to-markdown-table";import O from"../../../../common/cn.js";const T="development"===process.env.NODE_ENV?"http://localhost:3007":"https://user-content.pickaxe.co",S=[{id:"render",icon:f,hideIn:["application/vnd.pxe.code"]},{id:"code",icon:b}],D=({className:f,style:b})=>{var D;const{artifacts:A,currentArtifact:N,setCurrentArtifact:E}=c(),{styles:M,colors:B,translations:L}=i(),{toPDF:$,targetRef:z}=d({filename:`${(null==N?void 0:N.id)||"Untitled"}.pdf`,page:{margin:p.MEDIUM,orientation:"portrait"}}),[R,H]=n(!1),[W,I]=n("code"),P=l(null),U=l(null),{scrollContainerRef:V,scrollStartSession:_,scrollToBottom:G,scrollEndSession:X}=s({auto:"code"===W}),q=a((()=>{var e;return N&&null!==(e=A.find((e=>e.id===N.id&&e.version===N.version)))&&void 0!==e?e:null}),[N,A]),J=a((()=>q&&"text/csv"===q.type?F(q.content,",",!0):null),[q]),K=a((()=>(B.secondaryText||"").toLowerCase().startsWith("#ffffff")),[B.secondaryText]);r((()=>{if("application/vnd.pxe.code"===(null==q?void 0:q.type)&&I("code"),"finished"!==(null==q?void 0:q.status))return I("code"),_(),void G();X(),"application/vnd.pxe.code"!==q.type&&I("render")}),[null==q?void 0:q.status,null==q?void 0:q.type]),r((()=>{var e;!U.current||"text/html"!==(null==q?void 0:q.type)&&"application/vnd.pxe.react"!==(null==q?void 0:q.type)||null===(e=U.current.contentWindow)||void 0===e||e.postMessage({type:"text/html"===q.type?"HTML_CODE":"REACT_CODE",content:q.content},T)}),[null==q?void 0:q.content,null==q?void 0:q.type]);const Q=e=>{if(!q)return;let o={mimeType:"text/plain",extension:".txt"};switch(e){case"text/markdown":o={mimeType:"text/markdown",extension:".md"};break;case"text/html":o={mimeType:"text/html",extension:".html"};break;case"text/csv":o={mimeType:"text/csv",extension:".csv"};break;case"image/svg+xml":case"application/vnd.pxe.mermaid":o={mimeType:"image/svg+xml",extension:".svg"};break;case"application/vnd.pxe.code":o={mimeType:`application/${q.programmingLanguage||"text"};charset=utf-8`,extension:`.${q.programmingLanguage||"txt"}`};break;case"application/vnd.pxe.react":o={mimeType:"text/typescript",extension:".tsx"};break;default:o={mimeType:"text/plain",extension:".txt"}}let t=null;if("application/vnd.pxe.mermaid"===q.type&&P.current){const e=P.current.querySelector("svg");e&&(t=(new XMLSerializer).serializeToString(e))}const n=new Blob([null!=t?t:q.content],{type:o.mimeType}),l=URL.createObjectURL(n);try{const e=document.createElement("a");e.href=l,e.download=`${q.title}${o.extension}`,e.style.display="none",document.body.appendChild(e),e.click(),document.body.removeChild(e)}finally{URL.revokeObjectURL(l)}};return q?e("div",Object.assign({className:O("flex flex-col",f),style:Object.assign({backgroundColor:B.secondary,color:B.secondaryText},b)},{children:[e("div",Object.assign({className:"flex items-center gap-6 justify-between p-4 shadow-sm"},{children:[e("div",Object.assign({className:"flex items-center gap-4"},{children:[o("div",Object.assign({className:"flex p-0.5 rounded-md",style:{backgroundColor:B.primary,color:B.text+"90"}},{children:S.map(((e,t)=>{var n;return(null===(n=e.hideIn)||void 0===n?void 0:n.includes(q.type))?null:o("button",Object.assign({className:"rounded-md p-1 px-1.5 transition-colors duration-200 ease-in-out"},W===e.id&&{style:{backgroundColor:B.secondary,color:B.secondaryText}},{onClick:()=>I(e.id)},{children:o(e.icon,{className:"w-5 h-5 shrink-0"})}),t)}))})),o("p",Object.assign({className:"font-semibold truncate text-sm"},{children:q.title}))]})),e("div",Object.assign({className:"flex items-center gap-3"},{children:[e(v,Object.assign({id:`copy-artifact-${q.id}`,isOpen:R,onChange:H},{children:[o(C,Object.assign({variant:"anchor",className:"rounded-md border px-3 py-1.5 text-sm font-semibold select-none",style:{borderColor:B.primary,color:B.text+(R?"":"90")}},{children:(null==L?void 0:L.copy)||"Copy"})),o(w,Object.assign({width:"auto",className:"font-semibold p-1",style:{backgroundColor:B.secondary,color:B.secondaryText},border:`1px solid ${B.primary}`},{children:"text/markdown"===q.type?e(t,{children:[e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>Q("text/markdown")},{children:[(null==L?void 0:L["download-as"])||"Download as"," Markdown"]})),o("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>{q&&$()}},{children:"Save as PDF"}))]}):"text/html"===q.type?e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>Q("text/html")},{children:[(null==L?void 0:L["download-as"])||"Download as"," HTML"]})):"text/csv"===q.type?e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>Q("text/csv")},{children:[(null==L?void 0:L["download-as"])||"Download as"," CSV"]})):"image/svg+xml"===q.type?e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>Q("image/svg+xml")},{children:[(null==L?void 0:L["download-as"])||"Download as"," SVG"]})):"application/vnd.pxe.code"===q.type?o("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>Q("application/vnd.pxe.code")},{children:`${(null==L?void 0:L["download-as"])||"Download as"} ${q.programmingLanguage||"Plain Text"}`})):"application/vnd.pxe.mermaid"===q.type?e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>Q("application/vnd.pxe.mermaid")},{children:[(null==L?void 0:L["download-as"])||"Download as"," SVG"]})):"application/vnd.pxe.react"===q.type?e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>Q("application/vnd.pxe.react")},{children:[(null==L?void 0:L["download-as"])||"Download as"," TSX"]})):null}))]})),o(k,Object.assign({onClick:()=>E(null)},{children:o(y,{className:"w-6 h-6 shrink-0"})}))]}))]})),o("div",Object.assign({className:"flex flex-col flex-grow @container/pickaxe-artifact"},{children:e(h,Object.assign({ref:V,innerClassName:"flex-grow w-full"},{children:["render"===W&&"application/vnd.pxe.code"!==q.type?o("div",Object.assign({ref:z,className:O("p-4 pb-6 flex-grow flex flex-col","application/vnd.pxe.react"===q.type&&"p-0","text/html"===q.type&&"p-0","text/csv"===q.type&&"p-0")},{children:"text/markdown"===q.type||"text/csv"===q.type||"image/svg+xml"===q.type?o(m,Object.assign({theme:M.theme,colors:B},{children:o(x,{value:null!=J?J:q.content,className:O("px-6 @[767px]/pickaxe-artifact:px-11 mx-auto w-full","text/csv"===q.type&&"px-4 @[767px]/pickaxe-artifact:px-4 mx-0"),style:{flex:1}})})):"application/vnd.pxe.mermaid"===q.type?o(j,{ref:P,id:`mermaid-${null!==(D=null==N?void 0:N.id)&&void 0!==D?D:"unknown"}`,data:q.content}):"text/html"===q.type||"application/vnd.pxe.react"===q.type?o("iframe",Object.assign({ref:U,title:q.title,src:`${T}/${"text/html"===q.type?"html":"react"}?theme=${K?"dark":"light"}`,style:{width:"100%",flex:1,border:"none",backgroundColor:B.secondary},allow:"fullscreen; camera; microphone; gyroscope; accelerometer; geolocation; clipboard-write; autoplay",sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads allow-popups-to-escape-sandbox allow-pointer-lock allow-popups allow-modals allow-orientation-lock allow-presentation",onLoad:e=>{const o=e.target;setTimeout((()=>{var e;try{null===(e=o.contentWindow)||void 0===e||e.postMessage({type:"text/html"===q.type?"HTML_CODE":"REACT_CODE",content:q.content},T)}catch(e){console.error("Error sending message to iframe:",e)}}),100),G()}},{children:"Iframe is not supported, please view this artifact in a browser that supports it."})):null})):o(u,Object.assign({PreTag:"div",language:"text/markdown"===q.type?"markdown":"text/html"===q.type||"image/svg+xml"===q.type?"xml":"application/vnd.pxe.react"===q.type?"typescript":q.programmingLanguage,showLineNumbers:!0,customStyle:{margin:0,flex:1},style:Object.assign({'code[class*="language-"]':Object.assign(Object.assign({color:B.secondaryText},K&&{textShadow:"0 1px rgba(0, 0, 0, 0.3)"}),{fontFamily:"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace",direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"}),'pre[class*="language-"]':Object.assign(Object.assign({color:B.secondaryText},K&&{textShadow:"0 1px rgba(0, 0, 0, 0.3)"}),{fontFamily:"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace",direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",borderRadius:"0.3em",minWidth:0,background:B.secondary}),':not(pre) > code[class*="language-"]':{background:B.secondary,padding:".1em",borderRadius:".3em"},comment:{color:"#7C7C7C"},prolog:{color:"#7C7C7C"},doctype:{color:"#7C7C7C"},cdata:{color:"#7C7C7C"},punctuation:{color:"#c5c8c6"},".namespace":{opacity:".7"},property:{color:"#96CBFE"},keyword:{color:"#96CBFE"},tag:{color:"#96CBFE"},"class-name":{color:"#FFFFB6"},boolean:{color:"#99CC99"},constant:{color:"#99CC99"},symbol:{color:"#f92672"},deleted:{color:"#f92672"},number:{color:"#FF73FD"},selector:{color:"#A8FF60"},"attr-name":{color:"#A8FF60"},string:{color:"#A8FF60"},char:{color:"#A8FF60"},builtin:{color:"#A8FF60"},inserted:{color:"#A8FF60"},variable:{color:"#C6C5FE"},operator:{color:"#EDEDED"},entity:{color:"#FFFFB6",cursor:"help"},url:{color:"#96CBFE"},".language-css .token.string":{color:"#87C38A"},".style .token.string":{color:"#87C38A"},atrule:{color:"#F9EE98"},"attr-value":{color:"#F9EE98"},function:{color:"#DAD085"},regex:{color:"#E9C062"},important:{color:B.secondaryText,fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}},!K&&{comment:{color:"#7D8B99"},prolog:{color:"#7D8B99"},doctype:{color:"#7D8B99"},cdata:{color:"#7D8B99"},punctuation:{color:"#4D4D4C"},property:{color:"#4078F2"},keyword:{color:"#8959A8"},tag:{color:"#8959A8"},"class-name":{color:"#D75F00"},boolean:{color:"#0086B3"},constant:{color:"#0086B3"},symbol:{color:"#990055"},deleted:{color:"#990000"},number:{color:"#005CC5"},selector:{color:"#63A35C"},"attr-name":{color:"#63A35C"},string:{color:"#50A14F"},char:{color:"#50A14F"},builtin:{color:"#50A14F"},inserted:{color:"#50A14F"},variable:{color:"#A626A4"},operator:{color:"#4D4D4C"},entity:{color:"#E45649",cursor:"help"},url:{color:"#4078F2"},".language-css .token.string":{color:"#50A14F"},".style .token.string":{color:"#50A14F"},atrule:{color:"#C18401"},"attr-value":{color:"#986801"},function:{color:"#005CC5"},regex:{color:"#D16969"},important:{color:B.secondaryText,fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}})},{children:q.content})),o(g,{})]}))}))]})):null};export{D as default};
1
+ import{jsxs as e,jsx as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useRef as l,useMemo as a,useEffect as r}from"react";import{useArtifactContext as i}from"./hooks/useArtifactContext.js";import{usePickaxeContext as c}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useScroll as s}from"../Scroll/hooks/useScroll.js";import{usePDF as d,Margin as p}from"react-to-pdf";import{PickaxeMarkdown as m}from"../../common/PickaxeMarkdown/index.js";import{PickaxeMarkdownRenderer as x}from"../../common/PickaxeMarkdown/Renderer.js";import{Prism as u}from"react-syntax-highlighter";import g from"../Scroll/ScrollLockView.js";import y from"../../../Icons/x.svg.js";import f from"../../../Icons/eye.svg.js";import v from"../../../Icons/code.svg.js";import b from"../../../Core/ScrollArea.js";import h from"../../../Core/Menu/index.js";import C from"../../../Core/Menu/Button.js";import w from"../../../Core/Menu/List.js";import k from"../../common/PickaxeSimpleButton.js";import j from"./MermaidRenderer.js";import F from"csv-to-markdown-table";import O from"../../../../common/cn.js";const T="development"===process.env.NODE_ENV?"http://localhost:3007":"https://user-content.pickaxe.co",S=[{id:"render",icon:f,hideIn:["application/vnd.pxe.code"]},{id:"code",icon:v}],D=({className:f,style:v,styling:D})=>{var A,N,E;const{artifacts:M,currentArtifact:B,setCurrentArtifact:L}=i(),{styles:$,colors:z,translations:R}=c(),{toPDF:H,targetRef:W}=d({filename:`${(null==B?void 0:B.id)||"Untitled"}.pdf`,page:{margin:p.MEDIUM,orientation:"portrait"}}),[I,P]=n(!1),[U,V]=n("code"),_=l(null),G=l(null),{scrollContainerRef:X,scrollStartSession:q,scrollToBottom:J,scrollEndSession:K}=s({auto:"code"===U}),Q=null!==(A=null==D?void 0:D.styles)&&void 0!==A?A:$,Y=null!==(N=null==D?void 0:D.colors)&&void 0!==N?N:z,Z=a((()=>{var e;return B&&null!==(e=M.find((e=>e.id===B.id&&e.version===B.version)))&&void 0!==e?e:null}),[B,M]),ee=a((()=>Z&&"text/csv"===Z.type?F(Z.content,",",!0):null),[Z]),oe=a((()=>(Y.secondaryText||"").toLowerCase().startsWith("#ffffff")),[null==Y?void 0:Y.secondaryText]);r((()=>{if("application/vnd.pxe.code"===(null==Z?void 0:Z.type)&&V("code"),"finished"!==(null==Z?void 0:Z.status))return V("code"),q(),void J();K(),"application/vnd.pxe.code"!==Z.type&&V("render")}),[null==Z?void 0:Z.status,null==Z?void 0:Z.type]),r((()=>{var e;!G.current||"text/html"!==(null==Z?void 0:Z.type)&&"application/vnd.pxe.react"!==(null==Z?void 0:Z.type)||null===(e=G.current.contentWindow)||void 0===e||e.postMessage({type:"text/html"===Z.type?"HTML_CODE":"REACT_CODE",content:Z.content},T)}),[null==Z?void 0:Z.content,null==Z?void 0:Z.type]);const te=e=>{if(!Z)return;let o={mimeType:"text/plain",extension:".txt"};switch(e){case"text/markdown":o={mimeType:"text/markdown",extension:".md"};break;case"text/html":o={mimeType:"text/html",extension:".html"};break;case"text/csv":o={mimeType:"text/csv",extension:".csv"};break;case"image/svg+xml":case"application/vnd.pxe.mermaid":o={mimeType:"image/svg+xml",extension:".svg"};break;case"application/vnd.pxe.code":o={mimeType:`application/${Z.programmingLanguage||"text"};charset=utf-8`,extension:`.${Z.programmingLanguage||"txt"}`};break;case"application/vnd.pxe.react":o={mimeType:"text/typescript",extension:".tsx"};break;default:o={mimeType:"text/plain",extension:".txt"}}let t=null;if("application/vnd.pxe.mermaid"===Z.type&&_.current){const e=_.current.querySelector("svg");e&&(t=(new XMLSerializer).serializeToString(e))}const n=new Blob([null!=t?t:Z.content],{type:o.mimeType}),l=URL.createObjectURL(n);try{const e=document.createElement("a");e.href=l,e.download=`${Z.title}${o.extension}`,e.style.display="none",document.body.appendChild(e),e.click(),document.body.removeChild(e)}finally{URL.revokeObjectURL(l)}};return Z?e("div",Object.assign({className:O("flex flex-col",f),style:Object.assign({backgroundColor:Y.secondary,color:Y.secondaryText},v)},{children:[e("div",Object.assign({className:"flex items-center gap-6 justify-between p-4 shadow-sm"},{children:[e("div",Object.assign({className:"flex items-center gap-4"},{children:[o("div",Object.assign({className:"flex p-0.5 rounded-md",style:{backgroundColor:Y.primary,color:Y.text+"90"}},{children:S.map(((e,t)=>{var n;return(null===(n=e.hideIn)||void 0===n?void 0:n.includes(Z.type))?null:o("button",Object.assign({className:"rounded-md p-1 px-1.5 transition-colors duration-200 ease-in-out"},U===e.id&&{style:{backgroundColor:Y.secondary,color:Y.secondaryText}},{onClick:()=>V(e.id)},{children:o(e.icon,{className:"w-5 h-5 shrink-0"})}),t)}))})),o("p",Object.assign({className:"font-semibold truncate text-sm"},{children:Z.title}))]})),e("div",Object.assign({className:"flex items-center gap-3"},{children:[e(h,Object.assign({id:`copy-artifact-${Z.id}`,isOpen:I,onChange:P},{children:[o(C,Object.assign({variant:"anchor",className:"rounded-md border px-3 py-1.5 text-sm font-semibold select-none",style:{borderColor:Y.primary,color:Y.text+(I?"":"90")}},{children:(null==R?void 0:R.copy)||"Copy"})),o(w,Object.assign({width:"auto",className:"font-semibold p-1",style:{backgroundColor:Y.secondary,color:Y.secondaryText},border:`1px solid ${Y.primary}`},{children:"text/markdown"===Z.type?e(t,{children:[e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>te("text/markdown")},{children:[(null==R?void 0:R["download-as"])||"Download as"," Markdown"]})),o("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>{Z&&H()}},{children:"Save as PDF"}))]}):"text/html"===Z.type?e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>te("text/html")},{children:[(null==R?void 0:R["download-as"])||"Download as"," HTML"]})):"text/csv"===Z.type?e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>te("text/csv")},{children:[(null==R?void 0:R["download-as"])||"Download as"," CSV"]})):"image/svg+xml"===Z.type?e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>te("image/svg+xml")},{children:[(null==R?void 0:R["download-as"])||"Download as"," SVG"]})):"application/vnd.pxe.code"===Z.type?o("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>te("application/vnd.pxe.code")},{children:`${(null==R?void 0:R["download-as"])||"Download as"} ${Z.programmingLanguage||"Plain Text"}`})):"application/vnd.pxe.mermaid"===Z.type?e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>te("application/vnd.pxe.mermaid")},{children:[(null==R?void 0:R["download-as"])||"Download as"," SVG"]})):"application/vnd.pxe.react"===Z.type?e("button",Object.assign({className:"px-2 py-1 text-left",onClick:()=>te("application/vnd.pxe.react")},{children:[(null==R?void 0:R["download-as"])||"Download as"," TSX"]})):null}))]})),o(k,Object.assign({onClick:()=>L(null)},{children:o(y,{className:"w-6 h-6 shrink-0"})}))]}))]})),o("div",Object.assign({className:"flex flex-col flex-grow @container/pickaxe-artifact"},{children:e(b,Object.assign({ref:X,innerClassName:"flex-grow w-full"},{children:["render"===U&&"application/vnd.pxe.code"!==Z.type?o("div",Object.assign({ref:W,className:O("p-4 pb-6 flex-grow flex flex-col","application/vnd.pxe.react"===Z.type&&"p-0","text/html"===Z.type&&"p-0","text/csv"===Z.type&&"p-0")},{children:"text/markdown"===Z.type||"text/csv"===Z.type||"image/svg+xml"===Z.type?o(m,Object.assign({theme:Q.theme,colors:Y},{children:o(x,{value:null!=ee?ee:Z.content,className:O("px-6 @[767px]/pickaxe-artifact:px-11 mx-auto w-full","text/csv"===Z.type&&"px-4 @[767px]/pickaxe-artifact:px-4 mx-0"),style:{flex:1}})})):"application/vnd.pxe.mermaid"===Z.type?o(j,{ref:_,id:`mermaid-${null!==(E=null==B?void 0:B.id)&&void 0!==E?E:"unknown"}`,data:Z.content}):"text/html"===Z.type||"application/vnd.pxe.react"===Z.type?o("iframe",Object.assign({ref:G,title:Z.title,src:`${T}/${"text/html"===Z.type?"html":"react"}?theme=${oe?"dark":"light"}`,style:{width:"100%",flex:1,border:"none",backgroundColor:null==Y?void 0:Y.secondary},allow:"fullscreen; camera; microphone; gyroscope; accelerometer; geolocation; clipboard-write; autoplay",sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads allow-popups-to-escape-sandbox allow-pointer-lock allow-popups allow-modals allow-orientation-lock allow-presentation",onLoad:e=>{const o=e.target;setTimeout((()=>{var e;try{null===(e=o.contentWindow)||void 0===e||e.postMessage({type:"text/html"===Z.type?"HTML_CODE":"REACT_CODE",content:Z.content},T)}catch(e){console.error("Error sending message to iframe:",e)}}),100),J()}},{children:"Iframe is not supported, please view this artifact in a browser that supports it."})):null})):o(u,Object.assign({PreTag:"div",language:"text/markdown"===Z.type?"markdown":"text/html"===Z.type||"image/svg+xml"===Z.type?"xml":"application/vnd.pxe.react"===Z.type?"typescript":Z.programmingLanguage,showLineNumbers:!0,customStyle:{margin:0,flex:1},style:Object.assign({'code[class*="language-"]':Object.assign(Object.assign({color:null==Y?void 0:Y.secondaryText},oe&&{textShadow:"0 1px rgba(0, 0, 0, 0.3)"}),{fontFamily:"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace",direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"}),'pre[class*="language-"]':Object.assign(Object.assign({color:null==Y?void 0:Y.secondaryText},oe&&{textShadow:"0 1px rgba(0, 0, 0, 0.3)"}),{fontFamily:"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace",direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",borderRadius:"0.3em",minWidth:0,background:null==Y?void 0:Y.secondary}),':not(pre) > code[class*="language-"]':{background:null==Y?void 0:Y.secondary,padding:".1em",borderRadius:".3em"},comment:{color:"#7C7C7C"},prolog:{color:"#7C7C7C"},doctype:{color:"#7C7C7C"},cdata:{color:"#7C7C7C"},punctuation:{color:"#c5c8c6"},".namespace":{opacity:".7"},property:{color:"#96CBFE"},keyword:{color:"#96CBFE"},tag:{color:"#96CBFE"},"class-name":{color:"#FFFFB6"},boolean:{color:"#99CC99"},constant:{color:"#99CC99"},symbol:{color:"#f92672"},deleted:{color:"#f92672"},number:{color:"#FF73FD"},selector:{color:"#A8FF60"},"attr-name":{color:"#A8FF60"},string:{color:"#A8FF60"},char:{color:"#A8FF60"},builtin:{color:"#A8FF60"},inserted:{color:"#A8FF60"},variable:{color:"#C6C5FE"},operator:{color:"#EDEDED"},entity:{color:"#FFFFB6",cursor:"help"},url:{color:"#96CBFE"},".language-css .token.string":{color:"#87C38A"},".style .token.string":{color:"#87C38A"},atrule:{color:"#F9EE98"},"attr-value":{color:"#F9EE98"},function:{color:"#DAD085"},regex:{color:"#E9C062"},important:{color:null==Y?void 0:Y.secondaryText,fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}},!oe&&{comment:{color:"#7D8B99"},prolog:{color:"#7D8B99"},doctype:{color:"#7D8B99"},cdata:{color:"#7D8B99"},punctuation:{color:"#4D4D4C"},property:{color:"#4078F2"},keyword:{color:"#8959A8"},tag:{color:"#8959A8"},"class-name":{color:"#D75F00"},boolean:{color:"#0086B3"},constant:{color:"#0086B3"},symbol:{color:"#990055"},deleted:{color:"#990000"},number:{color:"#005CC5"},selector:{color:"#63A35C"},"attr-name":{color:"#63A35C"},string:{color:"#50A14F"},char:{color:"#50A14F"},builtin:{color:"#50A14F"},inserted:{color:"#50A14F"},variable:{color:"#A626A4"},operator:{color:"#4D4D4C"},entity:{color:"#E45649",cursor:"help"},url:{color:"#4078F2"},".language-css .token.string":{color:"#50A14F"},".style .token.string":{color:"#50A14F"},atrule:{color:"#C18401"},"attr-value":{color:"#986801"},function:{color:"#005CC5"},regex:{color:"#D16969"},important:{color:null==Y?void 0:Y.secondaryText,fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}})},{children:Z.content})),o(g,{})]}))}))]})):null};export{D as default};
@@ -1 +1 @@
1
- import{jsx as r,jsxs as e}from"react/jsx-runtime";import{useMemo as o}from"react";import{useMediaQuery as t}from"../../../../hooks/core/useMediaQuery.js";import{useArtifactContext as a}from"./hooks/useArtifactContext.js";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{Drawer as l,DrawerContent as s,DrawerTitle as n}from"../../../Core/Drawer.js";import c from"../../../Core/Modal/index.js";import m from"../../../Core/Modal/Body.js";import{ScrollProvider as d}from"../Scroll/Provider.js";import f from"./Renderer.js";const u=({panel:u})=>{const{popupType:p,currentArtifact:h,setCurrentArtifact:x}=a(),{pickaxe:j,chatId:g,forceMobile:w}=i(),[b]=t("(max-width: 899px)"),C=o((()=>{if("auto"===p){if(w||b)return"drawer-bottom";if(!(null==j?void 0:j.chatflag)&&!g||!g)return"modal";if(!u)return"modal"}return p}),[p,w,b,null==j?void 0:j.chatflag,g,u]),k=r(f,{className:"h-full"});return h?r(d,{children:"auto"===C&&u?u(k):C.startsWith("drawer")?r(l,Object.assign({open:!0,direction:w?"bottom":C.replace("drawer-",""),onClose:()=>x(null)},{children:e(s,Object.assign({"aria-describedby":"artifact-drawer",className:"min-h-[80dvh]"},{children:[r(n,Object.assign({className:"sr-only"},{children:"Artifact"})),r(f,{className:"flex-grow"})]}))})):"modal"===C?r(c,Object.assign({isOpen:!0,onChange:()=>x(null)},{children:r(m,Object.assign({className:"max-w-[80dvw] flex flex-col w-full",style:{minHeight:"80dvh"}},{children:r(f,{className:"flex-grow"})}))})):null}):null};export{u as PickaxeArtifact};
1
+ import{jsx as r,jsxs as e}from"react/jsx-runtime";import{useMemo as t}from"react";import{useMediaQuery as o}from"../../../../hooks/core/useMediaQuery.js";import{useArtifactContext as a}from"./hooks/useArtifactContext.js";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{Drawer as s,DrawerContent as l,DrawerTitle as n}from"../../../Core/Drawer.js";import c from"../../../Core/Modal/index.js";import m from"../../../Core/Modal/Body.js";import{ScrollProvider as d}from"../Scroll/Provider.js";import f from"./Renderer.js";const u=({panel:u,styling:p})=>{const{popupType:h,currentArtifact:g,setCurrentArtifact:j}=a(),{pickaxe:x,chatId:b,forceMobile:w}=i(),[y]=o("(max-width: 899px)"),C=t((()=>{if("auto"===h){if(w||y)return"drawer-bottom";if(!(null==x?void 0:x.chatflag)&&!b||!b)return"modal";if(!u)return"modal"}return h}),[h,w,y,null==x?void 0:x.chatflag,b,u]),O=r(f,{className:"h-full"});return g?r(d,{children:"auto"===C&&u?u(O):C.startsWith("drawer")?r(s,Object.assign({open:!0,direction:w?"bottom":C.replace("drawer-",""),onClose:()=>j(null)},{children:e(l,Object.assign({"aria-describedby":"artifact-drawer",className:"min-h-[80dvh]"},{children:[r(n,Object.assign({className:"sr-only"},{children:"Artifact"})),r(f,Object.assign({className:"flex-grow"},p&&{styling:p}))]}))})):"modal"===C?r(c,Object.assign({isOpen:!0,onChange:()=>j(null)},{children:r(m,Object.assign({className:"max-w-[80dvw] flex flex-col w-full",style:{minHeight:"80dvh"}},{children:r(f,Object.assign({className:"flex-grow"},p&&{styling:p}))}))})):null}):null};export{u as PickaxeArtifact};
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{ScrollContext,ScrollProvider}from"./components/Pickaxe/Addons/Scroll/Provider.js";export{PickaxeMarkdown,PickaxeMarkdownContext}from"./components/Pickaxe/common/PickaxeMarkdown/index.js";export{PickaxeMarkdownRenderer}from"./components/Pickaxe/common/PickaxeMarkdown/Renderer.js";export{useConversation}from"./hooks/pickaxe/useConversation.js";export{useHistory}from"./hooks/pickaxe/useHistory.js";export{useInstantPickaxe,usePickaxe}from"./hooks/pickaxe/usePickaxe.js";export{usePickaxeContext}from"./hooks/pickaxe/usePickaxeContext.js";export{useResponseContext}from"./hooks/pickaxe/useResponseContext.js";export{useDimensionContext}from"./hooks/pickaxe/useDimensionContext.js";export{useSubmit}from"./hooks/pickaxe/useSubmit.js";export{useSubmitDocument}from"./hooks/pickaxe/useSubmitDocument.js";export{Inline}from"./components/EmbedPreview/Inline.js";export{FAB,FABButton}from"./components/EmbedPreview/FAB.js";export{Popup,PopupCTAButton}from"./components/EmbedPreview/Popup.js";export{ChatInput,ChatInputWrapper}from"./components/EmbedPreview/ChatInput.js";export{PickaxeArtifact}from"./components/Pickaxe/Addons/Artifact/index.js";export{PickaxeArtifactPanel,PickaxeArtifactPanelGroup}from"./components/Pickaxe/Addons/Artifact/PickaxeArtifactPanel.js";export{useArtifactContext}from"./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext.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{ScrollContext,ScrollProvider}from"./components/Pickaxe/Addons/Scroll/Provider.js";export{PickaxeMarkdown,PickaxeMarkdownContext}from"./components/Pickaxe/common/PickaxeMarkdown/index.js";export{PickaxeMarkdownRenderer}from"./components/Pickaxe/common/PickaxeMarkdown/Renderer.js";export{useConversation}from"./hooks/pickaxe/useConversation.js";export{useHistory}from"./hooks/pickaxe/useHistory.js";export{useInstantPickaxe,usePickaxe}from"./hooks/pickaxe/usePickaxe.js";export{usePickaxeContext}from"./hooks/pickaxe/usePickaxeContext.js";export{useResponseContext}from"./hooks/pickaxe/useResponseContext.js";export{useDimensionContext}from"./hooks/pickaxe/useDimensionContext.js";export{useSubmit}from"./hooks/pickaxe/useSubmit.js";export{useSubmitDocument}from"./hooks/pickaxe/useSubmitDocument.js";export{Inline}from"./components/EmbedPreview/Inline.js";export{FAB,FABButton}from"./components/EmbedPreview/FAB.js";export{Popup,PopupCTAButton}from"./components/EmbedPreview/Popup.js";export{ChatInput,ChatInputWrapper}from"./components/EmbedPreview/ChatInput.js";export{PickaxeArtifact}from"./components/Pickaxe/Addons/Artifact/index.js";export{ArtifactContext,ArtifactProvider}from"./components/Pickaxe/Addons/Artifact/Provider.js";export{useArtifactContext}from"./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext.js";
@@ -1,7 +1,13 @@
1
+ import type { PickaxeProviderStyles, PickaxeProviderColors } from "../../Provider";
1
2
  import { CSSProperties } from "react";
3
+ export type ArtifactStyling = Partial<{
4
+ styles: PickaxeProviderStyles;
5
+ colors: PickaxeProviderColors;
6
+ }>;
2
7
  interface PickaxeArtifactRendererProps {
3
8
  className?: string;
4
9
  style?: CSSProperties;
10
+ styling?: ArtifactStyling;
5
11
  }
6
- declare const PickaxeArtifactRenderer: ({ className, style, }: PickaxeArtifactRendererProps) => import("react/jsx-runtime").JSX.Element | null;
12
+ declare const PickaxeArtifactRenderer: ({ className, style, styling, }: PickaxeArtifactRendererProps) => import("react/jsx-runtime").JSX.Element | null;
7
13
  export default PickaxeArtifactRenderer;
@@ -1,6 +1,8 @@
1
- import { ReactNode } from "react";
1
+ import type { ReactNode } from "react";
2
+ import type { ArtifactStyling } from "./Renderer";
2
3
  interface PickaxeArtifactProps {
3
4
  panel?: (children: ReactNode) => ReactNode;
5
+ styling?: ArtifactStyling;
4
6
  }
5
- export declare const PickaxeArtifact: ({ panel }: PickaxeArtifactProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export declare const PickaxeArtifact: ({ panel, styling }: PickaxeArtifactProps) => import("react/jsx-runtime").JSX.Element | null;
6
8
  export {};
@@ -13,5 +13,5 @@ export declare const usePickaxeMarkdownContext: () => {
13
13
  setTheme: import("../../../../../types/common").SetState<import("..").PickaxeMarkdownTheme>;
14
14
  setActionState: import("../../../../../types/common").SetState<Record<string, import("..").ActionState>>;
15
15
  setActions: import("../../../../../types/common").SetState<boolean>;
16
- onArtifactClick?: ((data: import("../../../Addons/Artifact/Provider").CurrentArtifact) => void) | undefined;
16
+ onArtifactClick?: ((data: import("../../../../..").CurrentArtifact) => void) | undefined;
17
17
  };
@@ -14,7 +14,7 @@ export declare const usePickaxeContext: () => {
14
14
  colors: import("../../components/Pickaxe/Provider").PickaxeProviderColors;
15
15
  misc: import("../../components/Pickaxe/Provider").PickaxeMisc;
16
16
  translations: import("../../components/Pickaxe/Provider").PickaxeTranslations;
17
- artifact: Omit<import("../../components/Pickaxe/Addons/Artifact/Provider").IArtifactProviderProps, "children">;
17
+ artifact: Omit<import("../..").IArtifactProviderProps, "children">;
18
18
  responsiveBy: import("../../components/Pickaxe/Provider").PickaxeResponsiveBy;
19
19
  forceMobile: boolean;
20
20
  loadFont: boolean;
@@ -18,5 +18,5 @@ export * from "./components/EmbedPreview/FAB";
18
18
  export * from "./components/EmbedPreview/Popup";
19
19
  export * from "./components/EmbedPreview/ChatInput";
20
20
  export * from "./components/Pickaxe/Addons/Artifact";
21
- export * from "./components/Pickaxe/Addons/Artifact/PickaxeArtifactPanel";
21
+ export * from "./components/Pickaxe/Addons/Artifact/Provider";
22
22
  export * from "./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pickaxeproject/react",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Client utility library for Pickaxe",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/_tslib.js"),r=require("react/jsx-runtime"),a=require("../../../../node_modules/.pnpm/react-resizable-panels@3.0.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-resizable-panels/dist/react-resizable-panels.js");exports.PickaxeArtifactPanel=t=>{var{children:s}=t,i=e.__rest(t,["children"]);return r.jsx(a.Panel,Object.assign({},i,{children:s}))},exports.PickaxeArtifactPanelGroup=t=>{var{children:s}=t,i=e.__rest(t,["children"]);return r.jsx(a.PanelGroup,Object.assign({},i,{children:s}))};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");function n(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var t=n(e);const r="undefined"!=typeof window,a=e.createContext(null);a.displayName="PanelGroupContext";const l={group:"data-panel-group",groupDirection:"data-panel-group-direction",groupId:"data-panel-group-id",panel:"data-panel",panelCollapsible:"data-panel-collapsible",panelId:"data-panel-id",panelSize:"data-panel-size",resizeHandle:"data-resize-handle",resizeHandleActive:"data-resize-handle-active",resizeHandleEnabled:"data-panel-resize-handle-enabled",resizeHandleId:"data-panel-resize-handle-id",resizeHandleState:"data-resize-handle-state"},o=r?e.useLayoutEffect:()=>{},i=t["useId".toString()],u="function"==typeof i?i:()=>null;let s=0;function c(n=null){const t=u(),r=e.useRef(n||t||null);return null===r.current&&(r.current=""+s++),null!=n?n:r.current}function d({children:n,className:t="",collapsedSize:r,collapsible:i,defaultSize:u,forwardedRef:s,id:d,maxSize:p,minSize:f,onCollapse:y,onExpand:g,onResize:m,order:z,style:h,tagName:v="div",...S}){const b=e.useContext(a);if(null===b)throw Error("Panel components must be rendered within a PanelGroup container");const{collapsePanel:x,expandPanel:I,getPanelSize:P,getPanelStyle:C,groupId:A,isPanelCollapsed:w,reevaluatePanelConstraints:R,registerPanel:E,resizePanel:k,unregisterPanel:D}=b,$=c(d),L=e.useRef({callbacks:{onCollapse:y,onExpand:g,onResize:m},constraints:{collapsedSize:r,collapsible:i,defaultSize:u,maxSize:p,minSize:f},id:$,idIsFromProps:void 0!==d,order:z});e.useRef({didLogMissingDefaultSizeWarning:!1}),o((()=>{const{callbacks:e,constraints:n}=L.current,t={...n};L.current.id=$,L.current.idIsFromProps=void 0!==d,L.current.order=z,e.onCollapse=y,e.onExpand=g,e.onResize=m,n.collapsedSize=r,n.collapsible=i,n.defaultSize=u,n.maxSize=p,n.minSize=f,t.collapsedSize===n.collapsedSize&&t.collapsible===n.collapsible&&t.maxSize===n.maxSize&&t.minSize===n.minSize||R(L.current,t)})),o((()=>{const e=L.current;return E(e),()=>{D(e)}}),[z,$,E,D]),e.useImperativeHandle(s,(()=>({collapse:()=>{x(L.current)},expand:e=>{I(L.current,e)},getId:()=>$,getSize:()=>P(L.current),isCollapsed:()=>w(L.current),isExpanded:()=>!w(L.current),resize:e=>{k(L.current,e)}})),[x,I,P,w,$,k]);const M=C(L.current,u);return e.createElement(v,{...S,children:n,className:t,id:$,style:{...M,...h},[l.groupId]:A,[l.panel]:"",[l.panelCollapsible]:i||void 0,[l.panelId]:$,[l.panelSize]:parseFloat(""+M.flexGrow).toFixed(1)})}const p=e.forwardRef(((n,t)=>e.createElement(d,{...n,forwardedRef:t})));function f(e){return"keydown"===e.type}function y(e){return e.type.startsWith("pointer")}function g(e){return e.type.startsWith("mouse")}d.displayName="Panel",p.displayName="forwardRef(Panel)";!function(){if("function"==typeof matchMedia)matchMedia("(pointer:coarse)").matches}();let m=new Map;function z(e,n){m.set(e,n)}function h(e,n){if(!e)throw console.error(n),Error(n)}function v(e,n,t=10){return e.toFixed(t)===n.toFixed(t)?0:e>n?1:-1}function S(e,n,t=10){return 0===v(e,n,t)}function b(e,n,t){return 0===v(e,n,t)}function x({panelConstraints:e,panelIndex:n,size:t}){const r=e[n];h(null!=r,`Panel constraints not found for index ${n}`);let{collapsedSize:a=0,collapsible:l,maxSize:o=100,minSize:i=0}=r;if(v(t,i)<0)if(l){t=v(t,(a+i)/2)<0?a:i}else t=i;return t=Math.min(o,t),t=parseFloat(t.toFixed(10))}function I({delta:e,initialLayout:n,panelConstraints:t,pivotIndices:r,prevLayout:a,trigger:l}){if(b(e,0))return n;const o=[...n],[i,u]=r;h(null!=i,"Invalid first pivot index"),h(null!=u,"Invalid second pivot index");let s=0;if("keyboard"===l){{const r=e<0?u:i,a=t[r];h(a,`Panel constraints not found for index ${r}`);const{collapsedSize:l=0,collapsible:o,minSize:s=0}=a;if(o){const t=n[r];if(h(null!=t,`Previous layout not found for panel index ${r}`),b(t,l)){const n=s-t;v(n,Math.abs(e))>0&&(e=e<0?0-n:n)}}}{const r=e<0?i:u,a=t[r];h(a,`No panel constraints found for index ${r}`);const{collapsedSize:l=0,collapsible:o,minSize:s=0}=a;if(o){const t=n[r];if(h(null!=t,`Previous layout not found for panel index ${r}`),b(t,s)){const n=t-l;v(n,Math.abs(e))>0&&(e=e<0?0-n:n)}}}}{const r=e<0?1:-1;let a=e<0?u:i,l=0;for(;;){const e=n[a];h(null!=e,`Previous layout not found for panel index ${a}`);if(l+=x({panelConstraints:t,panelIndex:a,size:100})-e,a+=r,a<0||a>=t.length)break}const o=Math.min(Math.abs(e),Math.abs(l));e=e<0?0-o:o}{let r=e<0?i:u;for(;r>=0&&r<t.length;){const a=Math.abs(e)-Math.abs(s),l=n[r];h(null!=l,`Previous layout not found for panel index ${r}`);const i=x({panelConstraints:t,panelIndex:r,size:l-a});if(!b(l,i)&&(s+=l-i,o[r]=i,s.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?r--:r++}}if(function(e,n,t){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++)if(!b(e[r],n[r],t))return!1;return!0}(a,o))return a;{const r=e<0?u:i,a=n[r];h(null!=a,`Previous layout not found for panel index ${r}`);const l=a+s,c=x({panelConstraints:t,panelIndex:r,size:l});if(o[r]=c,!b(c,l)){let n=l-c;let r=e<0?u:i;for(;r>=0&&r<t.length;){const a=o[r];h(null!=a,`Previous layout not found for panel index ${r}`);const l=x({panelConstraints:t,panelIndex:r,size:a+n});if(b(a,l)||(n-=l-a,o[r]=l),b(n,0))break;e>0?r--:r++}}}return b(o.reduce(((e,n)=>n+e),0),100)?o:a}function P({layout:e,panelsArray:n,pivotIndices:t}){let r=0,a=100,l=0,o=0;const i=t[0];h(null!=i,"No pivot index found"),n.forEach(((e,n)=>{const{constraints:t}=e,{maxSize:u=100,minSize:s=0}=t;n===i?(r=s,a=u):(l+=s,o+=u)}));return{valueMax:Math.min(a,100-l),valueMin:Math.max(r,100-o),valueNow:e[i]}}function C(e,n=document){return Array.from(n.querySelectorAll(`[${l.resizeHandleId}][data-panel-group-id="${e}"]`))}function A(e,n,t=document){const r=C(e,t).findIndex((e=>e.getAttribute(l.resizeHandleId)===n));return null!=r?r:null}function w(e,n,t){const r=A(e,n,t);return null!=r?[r,r+1]:[-1,-1]}function R(e,n=document){if(((t=n)instanceof HTMLElement||"object"==typeof t&&null!==t&&"tagName"in t&&"getAttribute"in t)&&n.dataset.panelGroupId==e)return n;var t;const r=n.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return r||null}function E(e,n=document){const t=n.querySelector(`[${l.resizeHandleId}="${e}"]`);return t||null}function k(e,n,t,r=document){var a,l,o,i;const u=E(n,r),s=C(e,r),c=u?s.indexOf(u):-1;return[null!==(a=null===(l=t[c])||void 0===l?void 0:l.id)&&void 0!==a?a:null,null!==(o=null===(i=t[c+1])||void 0===i?void 0:i.id)&&void 0!==o?o:null]}function D(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t]!==n[t])return!1;return!0}function $(e,n){const t="horizontal"===e,{x:r,y:a}=function(e){if(y(e)){if(e.isPrimary)return{x:e.clientX,y:e.clientY}}else if(g(e))return{x:e.clientX,y:e.clientY};return{x:1/0,y:1/0}}(n);return t?r:a}function L(e,n,t,r,a,o){if(f(e)){const n="horizontal"===t;let r=0;r=e.shiftKey?100:null!=a?a:10;let l=0;switch(e.key){case"ArrowDown":l=n?0:r;break;case"ArrowLeft":l=n?-r:0;break;case"ArrowRight":l=n?r:0;break;case"ArrowUp":l=n?0:-r;break;case"End":l=100;break;case"Home":l=-100}return l}return null==r?0:function(e,n,t,r,a){const o="horizontal"===t,i=E(n,a);h(i,`No resize handle element found for id "${n}"`);const u=i.getAttribute(l.groupId);h(u,"Resize handle element has no group id attribute");let{initialCursorPosition:s}=r;const c=$(t,e),d=R(u,a);h(d,`No group element found for id "${u}"`);const p=d.getBoundingClientRect();return(c-s)/(o?p.width:p.height)*100}(e,n,t,r,o)}function M(e,n,t){n.forEach(((n,r)=>{const a=e[r];h(a,`Panel data not found for index ${r}`);const{callbacks:l,constraints:o,id:i}=a,{collapsedSize:u=0,collapsible:s}=o,c=t[i];if(null==c||n!==c){t[i]=n;const{onCollapse:e,onExpand:r,onResize:a}=l;a&&a(n,c),s&&(e||r)&&(!r||null!=c&&!S(c,u)||S(n,u)||r(),!e||null!=c&&S(c,u)||!S(n,u)||e())}}))}function N(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t]!=n[t])return!1;return!0}function H(e){try{if("undefined"==typeof localStorage)throw new Error("localStorage not supported in this environment");e.getItem=e=>localStorage.getItem(e),e.setItem=(e,n)=>{localStorage.setItem(e,n)}}catch(n){console.error(n),e.getItem=()=>null,e.setItem=()=>{}}}function O(e){return`react-resizable-panels:${e}`}function G(e){return e.map((e=>{const{constraints:n,id:t,idIsFromProps:r,order:a}=e;return r?t:a?`${a}:${JSON.stringify(n)}`:JSON.stringify(n)})).sort(((e,n)=>e.localeCompare(n))).join(",")}function j(e,n){try{const t=O(e),r=n.getItem(t);if(r){const e=JSON.parse(r);if("object"==typeof e&&null!=e)return e}}catch(e){}return null}function F(e,n,t,r,a){var l;const o=O(e),i=G(n),u=null!==(l=j(e,a))&&void 0!==l?l:{};u[i]={expandToSizes:Object.fromEntries(t.entries()),layout:r};try{a.setItem(o,JSON.stringify(u))}catch(e){console.error(e)}}function T({layout:e,panelConstraints:n}){const t=[...e],r=t.reduce(((e,n)=>e+n),0);if(t.length!==n.length)throw Error(`Invalid ${n.length} panel layout: ${t.map((e=>`${e}%`)).join(", ")}`);if(!b(r,100)&&t.length>0)for(let e=0;e<n.length;e++){const n=t[e];h(null!=n,`No layout data found for index ${e}`);const a=100/r*n;t[e]=a}let a=0;for(let e=0;e<n.length;e++){const r=t[e];h(null!=r,`No layout data found for index ${e}`);const l=x({panelConstraints:n,panelIndex:e,size:r});r!=l&&(a+=r-l,t[e]=l)}if(!b(a,0))for(let e=0;e<n.length;e++){const r=t[e];h(null!=r,`No layout data found for index ${e}`);const l=x({panelConstraints:n,panelIndex:e,size:r+a});if(r!==l&&(a-=l-r,t[e]=l,b(a,0)))break}return t}const B={getItem:e=>(H(B),B.getItem(e)),setItem:(e,n)=>{H(B),B.setItem(e,n)}},W={};function V({autoSaveId:n=null,children:t,className:r="",direction:i,forwardedRef:u,id:s=null,onLayout:d=null,keyboardResizeBy:p=null,storage:m=B,style:x,tagName:A="div",...H}){const O=c(s),V=e.useRef(null),[_,U]=e.useState(null),[X,Y]=e.useState([]),K=function(){const[n,t]=e.useState(0);return e.useCallback((()=>t((e=>e+1))),[])}(),Q=e.useRef({}),Z=e.useRef(new Map),ee=e.useRef(0),ne=e.useRef({autoSaveId:n,direction:i,dragState:_,id:O,keyboardResizeBy:p,onLayout:d,storage:m}),te=e.useRef({layout:X,panelDataArray:[],panelDataArrayChanged:!1});e.useRef({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),e.useImperativeHandle(u,(()=>({getId:()=>ne.current.id,getLayout:()=>{const{layout:e}=te.current;return e},setLayout:e=>{const{onLayout:n}=ne.current,{layout:t,panelDataArray:r}=te.current,a=T({layout:e,panelConstraints:r.map((e=>e.constraints))});D(t,a)||(Y(a),te.current.layout=a,n&&n(a),M(r,a,Q.current))}})),[]),o((()=>{ne.current.autoSaveId=n,ne.current.direction=i,ne.current.dragState=_,ne.current.id=O,ne.current.onLayout=d,ne.current.storage=m})),function({committedValuesRef:n,eagerValuesRef:t,groupId:r,layout:a,panelDataArray:i,panelGroupElement:u,setLayout:s}){e.useRef({didWarnAboutMissingResizeHandle:!1}),o((()=>{if(!u)return;const e=C(r,u);for(let n=0;n<i.length-1;n++){const{valueMax:t,valueMin:r,valueNow:l}=P({layout:a,panelsArray:i,pivotIndices:[n,n+1]}),o=e[n];if(null==o);else{const e=i[n];h(e,`No panel data found for index "${n}"`),o.setAttribute("aria-controls",e.id),o.setAttribute("aria-valuemax",""+Math.round(t)),o.setAttribute("aria-valuemin",""+Math.round(r)),o.setAttribute("aria-valuenow",null!=l?""+Math.round(l):"")}}return()=>{e.forEach(((e,n)=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-valuemax"),e.removeAttribute("aria-valuemin"),e.removeAttribute("aria-valuenow")}))}}),[r,a,i,u]),e.useEffect((()=>{if(!u)return;const e=t.current;h(e,"Eager values not found");const{panelDataArray:n}=e;h(null!=R(r,u),`No group found for id "${r}"`);const o=C(r,u);h(o,`No resize handles found for group id "${r}"`);const i=o.map((e=>{const t=e.getAttribute(l.resizeHandleId);h(t,"Resize handle element has no handle id attribute");const[o,i]=k(r,t,n,u);if(null==o||null==i)return()=>{};const c=e=>{if(!e.defaultPrevented)switch(e.key){case"Enter":{e.preventDefault();const l=n.findIndex((e=>e.id===o));if(l>=0){const e=n[l];h(e,`No panel data found for index ${l}`);const o=a[l],{collapsedSize:i=0,collapsible:c,minSize:d=0}=e.constraints;if(null!=o&&c){const e=I({delta:b(o,i)?d-i:i-o,initialLayout:a,panelConstraints:n.map((e=>e.constraints)),pivotIndices:w(r,t,u),prevLayout:a,trigger:"keyboard"});a!==e&&s(e)}}break}}};return e.addEventListener("keydown",c),()=>{e.removeEventListener("keydown",c)}}));return()=>{i.forEach((e=>e()))}}),[u,n,t,r,a,i,s])}({committedValuesRef:ne,eagerValuesRef:te,groupId:O,layout:X,panelDataArray:te.current.panelDataArray,setLayout:Y,panelGroupElement:V.current}),e.useEffect((()=>{const{panelDataArray:e}=te.current;if(n){if(0===X.length||X.length!==e.length)return;let t=W[n];null==t&&(t=function(e,n=10){let t=null;return(...r)=>{null!==t&&clearTimeout(t),t=setTimeout((()=>{e(...r)}),n)}}(F,100),W[n]=t);const r=[...e],a=new Map(Z.current);t(n,r,a,X,m)}}),[n,X,m]),e.useEffect((()=>{}));const re=e.useCallback((e=>{const{onLayout:n}=ne.current,{layout:t,panelDataArray:r}=te.current;if(e.constraints.collapsible){const a=r.map((e=>e.constraints)),{collapsedSize:l=0,panelSize:o,pivotIndices:i}=J(r,e,t);if(h(null!=o,`Panel size not found for panel "${e.id}"`),!S(o,l)){Z.current.set(e.id,o);const u=I({delta:q(r,e)===r.length-1?o-l:l-o,initialLayout:t,panelConstraints:a,pivotIndices:i,prevLayout:t,trigger:"imperative-api"});N(t,u)||(Y(u),te.current.layout=u,n&&n(u),M(r,u,Q.current))}}}),[]),ae=e.useCallback(((e,n)=>{const{onLayout:t}=ne.current,{layout:r,panelDataArray:a}=te.current;if(e.constraints.collapsible){const l=a.map((e=>e.constraints)),{collapsedSize:o=0,panelSize:i=0,minSize:u=0,pivotIndices:s}=J(a,e,r),c=null!=n?n:u;if(S(i,o)){const n=Z.current.get(e.id),o=null!=n&&n>=c?n:c,u=I({delta:q(a,e)===a.length-1?i-o:o-i,initialLayout:r,panelConstraints:l,pivotIndices:s,prevLayout:r,trigger:"imperative-api"});N(r,u)||(Y(u),te.current.layout=u,t&&t(u),M(a,u,Q.current))}}}),[]),le=e.useCallback((e=>{const{layout:n,panelDataArray:t}=te.current,{panelSize:r}=J(t,e,n);return h(null!=r,`Panel size not found for panel "${e.id}"`),r}),[]),oe=e.useCallback(((e,n)=>{const{panelDataArray:t}=te.current,r=q(t,e);return function({defaultSize:e,dragState:n,layout:t,panelData:r,panelIndex:a,precision:l=3}){const o=t[a];let i;return i=null==o?null!=e?e.toPrecision(l):"1":1===r.length?"1":o.toPrecision(l),{flexBasis:0,flexGrow:i,flexShrink:1,overflow:"hidden",pointerEvents:null!==n?"none":void 0}}({defaultSize:n,dragState:_,layout:X,panelData:t,panelIndex:r})}),[_,X]),ie=e.useCallback((e=>{const{layout:n,panelDataArray:t}=te.current,{collapsedSize:r=0,collapsible:a,panelSize:l}=J(t,e,n);return h(null!=l,`Panel size not found for panel "${e.id}"`),!0===a&&S(l,r)}),[]),ue=e.useCallback((e=>{const{layout:n,panelDataArray:t}=te.current,{collapsedSize:r=0,collapsible:a,panelSize:l}=J(t,e,n);return h(null!=l,`Panel size not found for panel "${e.id}"`),!a||v(l,r)>0}),[]),se=e.useCallback((e=>{const{panelDataArray:n}=te.current;n.push(e),n.sort(((e,n)=>{const t=e.order,r=n.order;return null==t&&null==r?0:null==t?-1:null==r?1:t-r})),te.current.panelDataArrayChanged=!0,K()}),[K]);o((()=>{if(te.current.panelDataArrayChanged){te.current.panelDataArrayChanged=!1;const{autoSaveId:e,onLayout:n,storage:t}=ne.current,{layout:r,panelDataArray:a}=te.current;let l=null;if(e){const n=function(e,n,t){var r,a;return null!==(a=(null!==(r=j(e,t))&&void 0!==r?r:{})[G(n)])&&void 0!==a?a:null}(e,a,t);n&&(Z.current=new Map(Object.entries(n.expandToSizes)),l=n.layout)}null==l&&(l=function({panelDataArray:e}){const n=Array(e.length),t=e.map((e=>e.constraints));let r=0,a=100;for(let l=0;l<e.length;l++){const e=t[l];h(e,`Panel constraints not found for index ${l}`);const{defaultSize:o}=e;null!=o&&(r++,n[l]=o,a-=o)}for(let l=0;l<e.length;l++){const o=t[l];h(o,`Panel constraints not found for index ${l}`);const{defaultSize:i}=o;if(null!=i)continue;const u=a/(e.length-r);r++,n[l]=u,a-=u}return n}({panelDataArray:a}));const o=T({layout:l,panelConstraints:a.map((e=>e.constraints))});D(r,o)||(Y(o),te.current.layout=o,n&&n(o),M(a,o,Q.current))}})),o((()=>{const e=te.current;return()=>{e.layout=[]}}),[]);const ce=e.useCallback((e=>{let n=!1;const t=V.current;if(t){"rtl"===window.getComputedStyle(t,null).getPropertyValue("direction")&&(n=!0)}return function(t){t.preventDefault();const r=V.current;if(!r)return()=>null;const{direction:a,dragState:l,id:o,keyboardResizeBy:i,onLayout:u}=ne.current,{layout:s,panelDataArray:c}=te.current,{initialLayout:d}=null!=l?l:{},p=w(o,e,r);let m=L(t,e,a,l,i,r);const h="horizontal"===a;h&&n&&(m=-m);const v=I({delta:m,initialLayout:null!=d?d:s,panelConstraints:c.map((e=>e.constraints)),pivotIndices:p,prevLayout:s,trigger:f(t)?"keyboard":"mouse-or-touch"}),S=!N(s,v);(y(t)||g(t))&&ee.current!=m&&(ee.current=m,z(e,S||0===m?0:h?m<0?1:2:m<0?4:8)),S&&(Y(v),te.current.layout=v,u&&u(v),M(c,v,Q.current))}}),[]),de=e.useCallback(((e,n)=>{const{onLayout:t}=ne.current,{layout:r,panelDataArray:a}=te.current,l=a.map((e=>e.constraints)),{panelSize:o,pivotIndices:i}=J(a,e,r);h(null!=o,`Panel size not found for panel "${e.id}"`);const u=I({delta:q(a,e)===a.length-1?o-n:n-o,initialLayout:r,panelConstraints:l,pivotIndices:i,prevLayout:r,trigger:"imperative-api"});N(r,u)||(Y(u),te.current.layout=u,t&&t(u),M(a,u,Q.current))}),[]),pe=e.useCallback(((e,n)=>{const{layout:t,panelDataArray:r}=te.current,{collapsedSize:a=0,collapsible:l}=n,{collapsedSize:o=0,collapsible:i,maxSize:u=100,minSize:s=0}=e.constraints,{panelSize:c}=J(r,e,t);null!=c&&(l&&i&&S(c,a)?S(a,o)||de(e,o):c<s?de(e,s):c>u&&de(e,u))}),[de]),fe=e.useCallback(((e,n)=>{const{direction:t}=ne.current,{layout:r}=te.current;if(!V.current)return;const a=E(e,V.current);h(a,`Drag handle element not found for id "${e}"`);const l=$(t,n);U({dragHandleId:e,dragHandleRect:a.getBoundingClientRect(),initialCursorPosition:l,initialLayout:r})}),[]),ye=e.useCallback((()=>{U(null)}),[]),ge=e.useCallback((e=>{const{panelDataArray:n}=te.current,t=q(n,e);t>=0&&(n.splice(t,1),delete Q.current[e.id],te.current.panelDataArrayChanged=!0,K())}),[K]),me=e.useMemo((()=>({collapsePanel:re,direction:i,dragState:_,expandPanel:ae,getPanelSize:le,getPanelStyle:oe,groupId:O,isPanelCollapsed:ie,isPanelExpanded:ue,reevaluatePanelConstraints:pe,registerPanel:se,registerResizeHandle:ce,resizePanel:de,startDragging:fe,stopDragging:ye,unregisterPanel:ge,panelGroupElement:V.current})),[re,_,i,ae,le,oe,O,ie,ue,pe,se,ce,de,fe,ye,ge]),ze={display:"flex",flexDirection:"horizontal"===i?"row":"column",height:"100%",overflow:"hidden",width:"100%"};return e.createElement(a.Provider,{value:me},e.createElement(A,{...H,children:t,className:r,id:s,ref:V,style:{...ze,...x},[l.group]:"",[l.groupDirection]:i,[l.groupId]:O}))}const _=e.forwardRef(((n,t)=>e.createElement(V,{...n,forwardedRef:t})));function q(e,n){return e.findIndex((e=>e===n||e.id===n.id))}function J(e,n,t){const r=q(e,n),a=r===e.length-1?[r-1,r]:[r,r+1],l=t[r];return{...n.constraints,panelSize:l,pivotIndices:a}}V.displayName="PanelGroup",_.displayName="forwardRef(PanelGroup)",exports.DATA_ATTRIBUTES=l,exports.Panel=p,exports.PanelGroup=_,exports.assert=h,exports.getPanelGroupElement=R,exports.getResizeHandleElement=E,exports.getResizeHandleElementIndex=A,exports.getResizeHandleElementsForGroup=C,exports.getResizeHandlePanelIds=k;
@@ -1,3 +0,0 @@
1
- import { PanelGroupProps, PanelProps } from "react-resizable-panels";
2
- export declare const PickaxeArtifactPanelGroup: ({ children, ...props }: PanelGroupProps) => import("react/jsx-runtime").JSX.Element;
3
- export declare const PickaxeArtifactPanel: ({ children, ...props }: PanelProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- import{__rest as e}from"../../../../_virtual/_tslib.js";import{jsx as r}from"react/jsx-runtime";import{PanelGroup as t,Panel as a}from"../../../../node_modules/.pnpm/react-resizable-panels@3.0.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-resizable-panels/dist/react-resizable-panels.js";const i=a=>{var{children:i}=a,n=e(a,["children"]);return r(t,Object.assign({},n,{children:i}))},n=t=>{var{children:i}=t,n=e(t,["children"]);return r(a,Object.assign({},n,{children:i}))};export{n as PickaxeArtifactPanel,i as PickaxeArtifactPanelGroup};
@@ -1 +0,0 @@
1
- import*as e from"react";import{createContext as n,forwardRef as t,createElement as r,useContext as a,useRef as o,useImperativeHandle as l,useState as i,useEffect as u,useCallback as s,useMemo as c,useLayoutEffect as d}from"react";const p="undefined"!=typeof window,f=n(null);f.displayName="PanelGroupContext";const y={group:"data-panel-group",groupDirection:"data-panel-group-direction",groupId:"data-panel-group-id",panel:"data-panel",panelCollapsible:"data-panel-collapsible",panelId:"data-panel-id",panelSize:"data-panel-size",resizeHandle:"data-resize-handle",resizeHandleActive:"data-resize-handle-active",resizeHandleEnabled:"data-panel-resize-handle-enabled",resizeHandleId:"data-panel-resize-handle-id",resizeHandleState:"data-resize-handle-state"},g=p?d:()=>{},m=e["useId".toString()],z="function"==typeof m?m:()=>null;let h=0;function v(e=null){const n=z(),t=o(e||n||null);return null===t.current&&(t.current=""+h++),null!=e?e:t.current}function S({children:e,className:n="",collapsedSize:t,collapsible:i,defaultSize:u,forwardedRef:s,id:c,maxSize:d,minSize:p,onCollapse:m,onExpand:z,onResize:h,order:S,style:x,tagName:b="div",...I}){const P=a(f);if(null===P)throw Error("Panel components must be rendered within a PanelGroup container");const{collapsePanel:A,expandPanel:w,getPanelSize:C,getPanelStyle:D,groupId:$,isPanelCollapsed:L,reevaluatePanelConstraints:N,registerPanel:M,resizePanel:E,unregisterPanel:k}=P,R=v(c),H=o({callbacks:{onCollapse:m,onExpand:z,onResize:h},constraints:{collapsedSize:t,collapsible:i,defaultSize:u,maxSize:d,minSize:p},id:R,idIsFromProps:void 0!==c,order:S});o({didLogMissingDefaultSizeWarning:!1}),g((()=>{const{callbacks:e,constraints:n}=H.current,r={...n};H.current.id=R,H.current.idIsFromProps=void 0!==c,H.current.order=S,e.onCollapse=m,e.onExpand=z,e.onResize=h,n.collapsedSize=t,n.collapsible=i,n.defaultSize=u,n.maxSize=d,n.minSize=p,r.collapsedSize===n.collapsedSize&&r.collapsible===n.collapsible&&r.maxSize===n.maxSize&&r.minSize===n.minSize||N(H.current,r)})),g((()=>{const e=H.current;return M(e),()=>{k(e)}}),[S,R,M,k]),l(s,(()=>({collapse:()=>{A(H.current)},expand:e=>{w(H.current,e)},getId:()=>R,getSize:()=>C(H.current),isCollapsed:()=>L(H.current),isExpanded:()=>!L(H.current),resize:e=>{E(H.current,e)}})),[A,w,C,L,R,E]);const G=D(H.current,u);return r(b,{...I,children:e,className:n,id:R,style:{...G,...x},[y.groupId]:$,[y.panel]:"",[y.panelCollapsible]:i||void 0,[y.panelId]:R,[y.panelSize]:parseFloat(""+G.flexGrow).toFixed(1)})}const x=t(((e,n)=>r(S,{...e,forwardedRef:n})));function b(e){return"keydown"===e.type}function I(e){return e.type.startsWith("pointer")}function P(e){return e.type.startsWith("mouse")}S.displayName="Panel",x.displayName="forwardRef(Panel)";!function(){if("function"==typeof matchMedia)matchMedia("(pointer:coarse)").matches}();let A=new Map;function w(e,n){A.set(e,n)}function C(e,n){if(!e)throw console.error(n),Error(n)}function D(e,n,t=10){return e.toFixed(t)===n.toFixed(t)?0:e>n?1:-1}function $(e,n,t=10){return 0===D(e,n,t)}function L(e,n,t){return 0===D(e,n,t)}function N({panelConstraints:e,panelIndex:n,size:t}){const r=e[n];C(null!=r,`Panel constraints not found for index ${n}`);let{collapsedSize:a=0,collapsible:o,maxSize:l=100,minSize:i=0}=r;if(D(t,i)<0)if(o){t=D(t,(a+i)/2)<0?a:i}else t=i;return t=Math.min(l,t),t=parseFloat(t.toFixed(10))}function M({delta:e,initialLayout:n,panelConstraints:t,pivotIndices:r,prevLayout:a,trigger:o}){if(L(e,0))return n;const l=[...n],[i,u]=r;C(null!=i,"Invalid first pivot index"),C(null!=u,"Invalid second pivot index");let s=0;if("keyboard"===o){{const r=e<0?u:i,a=t[r];C(a,`Panel constraints not found for index ${r}`);const{collapsedSize:o=0,collapsible:l,minSize:s=0}=a;if(l){const t=n[r];if(C(null!=t,`Previous layout not found for panel index ${r}`),L(t,o)){const n=s-t;D(n,Math.abs(e))>0&&(e=e<0?0-n:n)}}}{const r=e<0?i:u,a=t[r];C(a,`No panel constraints found for index ${r}`);const{collapsedSize:o=0,collapsible:l,minSize:s=0}=a;if(l){const t=n[r];if(C(null!=t,`Previous layout not found for panel index ${r}`),L(t,s)){const n=t-o;D(n,Math.abs(e))>0&&(e=e<0?0-n:n)}}}}{const r=e<0?1:-1;let a=e<0?u:i,o=0;for(;;){const e=n[a];C(null!=e,`Previous layout not found for panel index ${a}`);if(o+=N({panelConstraints:t,panelIndex:a,size:100})-e,a+=r,a<0||a>=t.length)break}const l=Math.min(Math.abs(e),Math.abs(o));e=e<0?0-l:l}{let r=e<0?i:u;for(;r>=0&&r<t.length;){const a=Math.abs(e)-Math.abs(s),o=n[r];C(null!=o,`Previous layout not found for panel index ${r}`);const i=N({panelConstraints:t,panelIndex:r,size:o-a});if(!L(o,i)&&(s+=o-i,l[r]=i,s.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?r--:r++}}if(function(e,n,t){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++)if(!L(e[r],n[r],t))return!1;return!0}(a,l))return a;{const r=e<0?u:i,a=n[r];C(null!=a,`Previous layout not found for panel index ${r}`);const o=a+s,c=N({panelConstraints:t,panelIndex:r,size:o});if(l[r]=c,!L(c,o)){let n=o-c;let r=e<0?u:i;for(;r>=0&&r<t.length;){const a=l[r];C(null!=a,`Previous layout not found for panel index ${r}`);const o=N({panelConstraints:t,panelIndex:r,size:a+n});if(L(a,o)||(n-=o-a,l[r]=o),L(n,0))break;e>0?r--:r++}}}return L(l.reduce(((e,n)=>n+e),0),100)?l:a}function E({layout:e,panelsArray:n,pivotIndices:t}){let r=0,a=100,o=0,l=0;const i=t[0];C(null!=i,"No pivot index found"),n.forEach(((e,n)=>{const{constraints:t}=e,{maxSize:u=100,minSize:s=0}=t;n===i?(r=s,a=u):(o+=s,l+=u)}));return{valueMax:Math.min(a,100-o),valueMin:Math.max(r,100-l),valueNow:e[i]}}function k(e,n=document){return Array.from(n.querySelectorAll(`[${y.resizeHandleId}][data-panel-group-id="${e}"]`))}function R(e,n,t=document){const r=k(e,t).findIndex((e=>e.getAttribute(y.resizeHandleId)===n));return null!=r?r:null}function H(e,n,t){const r=R(e,n,t);return null!=r?[r,r+1]:[-1,-1]}function G(e,n=document){if(((t=n)instanceof HTMLElement||"object"==typeof t&&null!==t&&"tagName"in t&&"getAttribute"in t)&&n.dataset.panelGroupId==e)return n;var t;const r=n.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return r||null}function F(e,n=document){const t=n.querySelector(`[${y.resizeHandleId}="${e}"]`);return t||null}function O(e,n,t,r=document){var a,o,l,i;const u=F(n,r),s=k(e,r),c=u?s.indexOf(u):-1;return[null!==(a=null===(o=t[c])||void 0===o?void 0:o.id)&&void 0!==a?a:null,null!==(l=null===(i=t[c+1])||void 0===i?void 0:i.id)&&void 0!==l?l:null]}function j(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t]!==n[t])return!1;return!0}function B(e,n){const t="horizontal"===e,{x:r,y:a}=function(e){if(I(e)){if(e.isPrimary)return{x:e.clientX,y:e.clientY}}else if(P(e))return{x:e.clientX,y:e.clientY};return{x:1/0,y:1/0}}(n);return t?r:a}function W(e,n,t,r,a,o){if(b(e)){const n="horizontal"===t;let r=0;r=e.shiftKey?100:null!=a?a:10;let o=0;switch(e.key){case"ArrowDown":o=n?0:r;break;case"ArrowLeft":o=n?-r:0;break;case"ArrowRight":o=n?r:0;break;case"ArrowUp":o=n?0:-r;break;case"End":o=100;break;case"Home":o=-100}return o}return null==r?0:function(e,n,t,r,a){const o="horizontal"===t,l=F(n,a);C(l,`No resize handle element found for id "${n}"`);const i=l.getAttribute(y.groupId);C(i,"Resize handle element has no group id attribute");let{initialCursorPosition:u}=r;const s=B(t,e),c=G(i,a);C(c,`No group element found for id "${i}"`);const d=c.getBoundingClientRect();return(s-u)/(o?d.width:d.height)*100}(e,n,t,r,o)}function T(e,n,t){n.forEach(((n,r)=>{const a=e[r];C(a,`Panel data not found for index ${r}`);const{callbacks:o,constraints:l,id:i}=a,{collapsedSize:u=0,collapsible:s}=l,c=t[i];if(null==c||n!==c){t[i]=n;const{onCollapse:e,onExpand:r,onResize:a}=o;a&&a(n,c),s&&(e||r)&&(!r||null!=c&&!$(c,u)||$(n,u)||r(),!e||null!=c&&$(c,u)||!$(n,u)||e())}}))}function V(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t]!=n[t])return!1;return!0}function J(e){try{if("undefined"==typeof localStorage)throw new Error("localStorage not supported in this environment");e.getItem=e=>localStorage.getItem(e),e.setItem=(e,n)=>{localStorage.setItem(e,n)}}catch(n){console.error(n),e.getItem=()=>null,e.setItem=()=>{}}}function q(e){return`react-resizable-panels:${e}`}function X(e){return e.map((e=>{const{constraints:n,id:t,idIsFromProps:r,order:a}=e;return r?t:a?`${a}:${JSON.stringify(n)}`:JSON.stringify(n)})).sort(((e,n)=>e.localeCompare(n))).join(",")}function Y(e,n){try{const t=q(e),r=n.getItem(t);if(r){const e=JSON.parse(r);if("object"==typeof e&&null!=e)return e}}catch(e){}return null}function K(e,n,t,r,a){var o;const l=q(e),i=X(n),u=null!==(o=Y(e,a))&&void 0!==o?o:{};u[i]={expandToSizes:Object.fromEntries(t.entries()),layout:r};try{a.setItem(l,JSON.stringify(u))}catch(e){console.error(e)}}function U({layout:e,panelConstraints:n}){const t=[...e],r=t.reduce(((e,n)=>e+n),0);if(t.length!==n.length)throw Error(`Invalid ${n.length} panel layout: ${t.map((e=>`${e}%`)).join(", ")}`);if(!L(r,100)&&t.length>0)for(let e=0;e<n.length;e++){const n=t[e];C(null!=n,`No layout data found for index ${e}`);const a=100/r*n;t[e]=a}let a=0;for(let e=0;e<n.length;e++){const r=t[e];C(null!=r,`No layout data found for index ${e}`);const o=N({panelConstraints:n,panelIndex:e,size:r});r!=o&&(a+=r-o,t[e]=o)}if(!L(a,0))for(let e=0;e<n.length;e++){const r=t[e];C(null!=r,`No layout data found for index ${e}`);const o=N({panelConstraints:n,panelIndex:e,size:r+a});if(r!==o&&(a-=o-r,t[e]=o,L(a,0)))break}return t}const Q={getItem:e=>(J(Q),Q.getItem(e)),setItem:(e,n)=>{J(Q),Q.setItem(e,n)}},Z={};function _({autoSaveId:e=null,children:n,className:t="",direction:a,forwardedRef:d,id:p=null,onLayout:m=null,keyboardResizeBy:z=null,storage:h=Q,style:S,tagName:x="div",...A}){const N=v(p),R=o(null),[J,q]=i(null),[_,ee]=i([]),re=function(){const[e,n]=i(0);return s((()=>n((e=>e+1))),[])}(),ae=o({}),oe=o(new Map),le=o(0),ie=o({autoSaveId:e,direction:a,dragState:J,id:N,keyboardResizeBy:z,onLayout:m,storage:h}),ue=o({layout:_,panelDataArray:[],panelDataArrayChanged:!1});o({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),l(d,(()=>({getId:()=>ie.current.id,getLayout:()=>{const{layout:e}=ue.current;return e},setLayout:e=>{const{onLayout:n}=ie.current,{layout:t,panelDataArray:r}=ue.current,a=U({layout:e,panelConstraints:r.map((e=>e.constraints))});j(t,a)||(ee(a),ue.current.layout=a,n&&n(a),T(r,a,ae.current))}})),[]),g((()=>{ie.current.autoSaveId=e,ie.current.direction=a,ie.current.dragState=J,ie.current.id=N,ie.current.onLayout=m,ie.current.storage=h})),function({committedValuesRef:e,eagerValuesRef:n,groupId:t,layout:r,panelDataArray:a,panelGroupElement:l,setLayout:i}){o({didWarnAboutMissingResizeHandle:!1}),g((()=>{if(!l)return;const e=k(t,l);for(let n=0;n<a.length-1;n++){const{valueMax:t,valueMin:o,valueNow:l}=E({layout:r,panelsArray:a,pivotIndices:[n,n+1]}),i=e[n];if(null==i);else{const e=a[n];C(e,`No panel data found for index "${n}"`),i.setAttribute("aria-controls",e.id),i.setAttribute("aria-valuemax",""+Math.round(t)),i.setAttribute("aria-valuemin",""+Math.round(o)),i.setAttribute("aria-valuenow",null!=l?""+Math.round(l):"")}}return()=>{e.forEach(((e,n)=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-valuemax"),e.removeAttribute("aria-valuemin"),e.removeAttribute("aria-valuenow")}))}}),[t,r,a,l]),u((()=>{if(!l)return;const e=n.current;C(e,"Eager values not found");const{panelDataArray:a}=e;C(null!=G(t,l),`No group found for id "${t}"`);const o=k(t,l);C(o,`No resize handles found for group id "${t}"`);const u=o.map((e=>{const n=e.getAttribute(y.resizeHandleId);C(n,"Resize handle element has no handle id attribute");const[o,u]=O(t,n,a,l);if(null==o||null==u)return()=>{};const s=e=>{if(!e.defaultPrevented)switch(e.key){case"Enter":{e.preventDefault();const u=a.findIndex((e=>e.id===o));if(u>=0){const e=a[u];C(e,`No panel data found for index ${u}`);const o=r[u],{collapsedSize:s=0,collapsible:c,minSize:d=0}=e.constraints;if(null!=o&&c){const e=M({delta:L(o,s)?d-s:s-o,initialLayout:r,panelConstraints:a.map((e=>e.constraints)),pivotIndices:H(t,n,l),prevLayout:r,trigger:"keyboard"});r!==e&&i(e)}}break}}};return e.addEventListener("keydown",s),()=>{e.removeEventListener("keydown",s)}}));return()=>{u.forEach((e=>e()))}}),[l,e,n,t,r,a,i])}({committedValuesRef:ie,eagerValuesRef:ue,groupId:N,layout:_,panelDataArray:ue.current.panelDataArray,setLayout:ee,panelGroupElement:R.current}),u((()=>{const{panelDataArray:n}=ue.current;if(e){if(0===_.length||_.length!==n.length)return;let t=Z[e];null==t&&(t=function(e,n=10){let t=null;return(...r)=>{null!==t&&clearTimeout(t),t=setTimeout((()=>{e(...r)}),n)}}(K,100),Z[e]=t);const r=[...n],a=new Map(oe.current);t(e,r,a,_,h)}}),[e,_,h]),u((()=>{}));const se=s((e=>{const{onLayout:n}=ie.current,{layout:t,panelDataArray:r}=ue.current;if(e.constraints.collapsible){const a=r.map((e=>e.constraints)),{collapsedSize:o=0,panelSize:l,pivotIndices:i}=te(r,e,t);if(C(null!=l,`Panel size not found for panel "${e.id}"`),!$(l,o)){oe.current.set(e.id,l);const u=M({delta:ne(r,e)===r.length-1?l-o:o-l,initialLayout:t,panelConstraints:a,pivotIndices:i,prevLayout:t,trigger:"imperative-api"});V(t,u)||(ee(u),ue.current.layout=u,n&&n(u),T(r,u,ae.current))}}}),[]),ce=s(((e,n)=>{const{onLayout:t}=ie.current,{layout:r,panelDataArray:a}=ue.current;if(e.constraints.collapsible){const o=a.map((e=>e.constraints)),{collapsedSize:l=0,panelSize:i=0,minSize:u=0,pivotIndices:s}=te(a,e,r),c=null!=n?n:u;if($(i,l)){const n=oe.current.get(e.id),l=null!=n&&n>=c?n:c,u=M({delta:ne(a,e)===a.length-1?i-l:l-i,initialLayout:r,panelConstraints:o,pivotIndices:s,prevLayout:r,trigger:"imperative-api"});V(r,u)||(ee(u),ue.current.layout=u,t&&t(u),T(a,u,ae.current))}}}),[]),de=s((e=>{const{layout:n,panelDataArray:t}=ue.current,{panelSize:r}=te(t,e,n);return C(null!=r,`Panel size not found for panel "${e.id}"`),r}),[]),pe=s(((e,n)=>{const{panelDataArray:t}=ue.current,r=ne(t,e);return function({defaultSize:e,dragState:n,layout:t,panelData:r,panelIndex:a,precision:o=3}){const l=t[a];let i;return i=null==l?null!=e?e.toPrecision(o):"1":1===r.length?"1":l.toPrecision(o),{flexBasis:0,flexGrow:i,flexShrink:1,overflow:"hidden",pointerEvents:null!==n?"none":void 0}}({defaultSize:n,dragState:J,layout:_,panelData:t,panelIndex:r})}),[J,_]),fe=s((e=>{const{layout:n,panelDataArray:t}=ue.current,{collapsedSize:r=0,collapsible:a,panelSize:o}=te(t,e,n);return C(null!=o,`Panel size not found for panel "${e.id}"`),!0===a&&$(o,r)}),[]),ye=s((e=>{const{layout:n,panelDataArray:t}=ue.current,{collapsedSize:r=0,collapsible:a,panelSize:o}=te(t,e,n);return C(null!=o,`Panel size not found for panel "${e.id}"`),!a||D(o,r)>0}),[]),ge=s((e=>{const{panelDataArray:n}=ue.current;n.push(e),n.sort(((e,n)=>{const t=e.order,r=n.order;return null==t&&null==r?0:null==t?-1:null==r?1:t-r})),ue.current.panelDataArrayChanged=!0,re()}),[re]);g((()=>{if(ue.current.panelDataArrayChanged){ue.current.panelDataArrayChanged=!1;const{autoSaveId:e,onLayout:n,storage:t}=ie.current,{layout:r,panelDataArray:a}=ue.current;let o=null;if(e){const n=function(e,n,t){var r,a;return null!==(a=(null!==(r=Y(e,t))&&void 0!==r?r:{})[X(n)])&&void 0!==a?a:null}(e,a,t);n&&(oe.current=new Map(Object.entries(n.expandToSizes)),o=n.layout)}null==o&&(o=function({panelDataArray:e}){const n=Array(e.length),t=e.map((e=>e.constraints));let r=0,a=100;for(let o=0;o<e.length;o++){const e=t[o];C(e,`Panel constraints not found for index ${o}`);const{defaultSize:l}=e;null!=l&&(r++,n[o]=l,a-=l)}for(let o=0;o<e.length;o++){const l=t[o];C(l,`Panel constraints not found for index ${o}`);const{defaultSize:i}=l;if(null!=i)continue;const u=a/(e.length-r);r++,n[o]=u,a-=u}return n}({panelDataArray:a}));const l=U({layout:o,panelConstraints:a.map((e=>e.constraints))});j(r,l)||(ee(l),ue.current.layout=l,n&&n(l),T(a,l,ae.current))}})),g((()=>{const e=ue.current;return()=>{e.layout=[]}}),[]);const me=s((e=>{let n=!1;const t=R.current;if(t){"rtl"===window.getComputedStyle(t,null).getPropertyValue("direction")&&(n=!0)}return function(t){t.preventDefault();const r=R.current;if(!r)return()=>null;const{direction:a,dragState:o,id:l,keyboardResizeBy:i,onLayout:u}=ie.current,{layout:s,panelDataArray:c}=ue.current,{initialLayout:d}=null!=o?o:{},p=H(l,e,r);let f=W(t,e,a,o,i,r);const y="horizontal"===a;y&&n&&(f=-f);const g=M({delta:f,initialLayout:null!=d?d:s,panelConstraints:c.map((e=>e.constraints)),pivotIndices:p,prevLayout:s,trigger:b(t)?"keyboard":"mouse-or-touch"}),m=!V(s,g);(I(t)||P(t))&&le.current!=f&&(le.current=f,w(e,m||0===f?0:y?f<0?1:2:f<0?4:8)),m&&(ee(g),ue.current.layout=g,u&&u(g),T(c,g,ae.current))}}),[]),ze=s(((e,n)=>{const{onLayout:t}=ie.current,{layout:r,panelDataArray:a}=ue.current,o=a.map((e=>e.constraints)),{panelSize:l,pivotIndices:i}=te(a,e,r);C(null!=l,`Panel size not found for panel "${e.id}"`);const u=M({delta:ne(a,e)===a.length-1?l-n:n-l,initialLayout:r,panelConstraints:o,pivotIndices:i,prevLayout:r,trigger:"imperative-api"});V(r,u)||(ee(u),ue.current.layout=u,t&&t(u),T(a,u,ae.current))}),[]),he=s(((e,n)=>{const{layout:t,panelDataArray:r}=ue.current,{collapsedSize:a=0,collapsible:o}=n,{collapsedSize:l=0,collapsible:i,maxSize:u=100,minSize:s=0}=e.constraints,{panelSize:c}=te(r,e,t);null!=c&&(o&&i&&$(c,a)?$(a,l)||ze(e,l):c<s?ze(e,s):c>u&&ze(e,u))}),[ze]),ve=s(((e,n)=>{const{direction:t}=ie.current,{layout:r}=ue.current;if(!R.current)return;const a=F(e,R.current);C(a,`Drag handle element not found for id "${e}"`);const o=B(t,n);q({dragHandleId:e,dragHandleRect:a.getBoundingClientRect(),initialCursorPosition:o,initialLayout:r})}),[]),Se=s((()=>{q(null)}),[]),xe=s((e=>{const{panelDataArray:n}=ue.current,t=ne(n,e);t>=0&&(n.splice(t,1),delete ae.current[e.id],ue.current.panelDataArrayChanged=!0,re())}),[re]),be=c((()=>({collapsePanel:se,direction:a,dragState:J,expandPanel:ce,getPanelSize:de,getPanelStyle:pe,groupId:N,isPanelCollapsed:fe,isPanelExpanded:ye,reevaluatePanelConstraints:he,registerPanel:ge,registerResizeHandle:me,resizePanel:ze,startDragging:ve,stopDragging:Se,unregisterPanel:xe,panelGroupElement:R.current})),[se,J,a,ce,de,pe,N,fe,ye,he,ge,me,ze,ve,Se,xe]),Ie={display:"flex",flexDirection:"horizontal"===a?"row":"column",height:"100%",overflow:"hidden",width:"100%"};return r(f.Provider,{value:be},r(x,{...A,children:n,className:t,id:p,ref:R,style:{...Ie,...S},[y.group]:"",[y.groupDirection]:a,[y.groupId]:N}))}const ee=t(((e,n)=>r(_,{...e,forwardedRef:n})));function ne(e,n){return e.findIndex((e=>e===n||e.id===n.id))}function te(e,n,t){const r=ne(e,n),a=r===e.length-1?[r-1,r]:[r,r+1],o=t[r];return{...n.constraints,panelSize:o,pivotIndices:a}}_.displayName="PanelGroup",ee.displayName="forwardRef(PanelGroup)";export{y as DATA_ATTRIBUTES,x as Panel,ee as PanelGroup,C as assert,G as getPanelGroupElement,F as getResizeHandleElement,R as getResizeHandleElementIndex,k as getResizeHandleElementsForGroup,O as getResizeHandlePanelIds};
@@ -1,3 +0,0 @@
1
- import { PanelGroupProps, PanelProps } from "react-resizable-panels";
2
- export declare const PickaxeArtifactPanelGroup: ({ children, ...props }: PanelGroupProps) => import("react/jsx-runtime").JSX.Element;
3
- export declare const PickaxeArtifactPanel: ({ children, ...props }: PanelProps) => import("react/jsx-runtime").JSX.Element;