@llmnative/react 1.47.0 → 1.48.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.
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
4
4
  `)} />`}function qs(e){return{toHtml:t=>Ks(Gs(e,t)),toJson:t=>JSON.stringify(Gs(e,t),null,2),params:t=>Gs(e,t)}}async function Js(e,t){return new Promise((n,r)=>{let i=new Image;i.onload=()=>{let r=i.naturalWidth,a=i.naturalHeight,o=e.startsWith(`data:`)?e.slice(5,e.indexOf(`;`)):`image/jpeg`,s=[...t].sort((e,t)=>e-t).filter(e=>e<r).map(e=>{let t=Math.round(e/r*a),n=document.createElement(`canvas`);n.width=e,n.height=t;let s=n.getContext(`2d`);if(!s)throw Error(`Canvas 2D context unavailable`);return s.drawImage(i,0,0,e,t),{src:n.toDataURL(o),width:e}});s.push({src:e,width:r}),n(s)},i.onerror=()=>r(Error(`resizeVariants: failed to load image`)),e.startsWith(`data:`)||(i.crossOrigin=`anonymous`),i.src=e})}async function Ys(e,t){let n=await Js(e,t.length?t:[]),r=n.at(-1)?.width??0,i=n.slice(0,-1);return{variants:await Promise.all(i.map(async e=>{let t=await fetch(e.src).then(e=>e.blob());return{width:e.width,dataUri:e.src,localUrl:URL.createObjectURL(t)}})),naturalWidth:r}}async function Xs(e,t,n,r){let i=r.replace(/\.[^/.]+$/,``),a=r.split(`.`).pop()??`jpg`;return Promise.all(e.map(async e=>({url:await t.upload(e.dataUri,`${n}/${i}_${e.width}w.${a}`)??e.localUrl,width:e.width})))}function Zs(e){return[...e].sort((e,t)=>e.width-t.width).map(e=>`${e.url} ${e.width}w`).join(`, `)}function Qs(e){if(e.startsWith(`data:`)||e.startsWith(`blob:`))return`image.jpg`;try{return new URL(e).pathname.split(`/`).pop()||`image.jpg`}catch{return e.split(`/`).pop()||`image.jpg`}}function $s(e){return e.replace(/\.[^/.]+$/,``).replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim().replace(/^(.)/,e=>e.toUpperCase())}var ec=(0,n.createContext)(null),tc=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(ec.Provider,{value:i},r)},nc=e=>{let t=(0,n.useContext)(ec);if(!t)return null;let r=e??t.defaultKey;return t.registry[r]??null},rc=()=>n.default.createElement(`div`,{className:`h-5 w-px bg-border shrink-0 mx-0.5`}),ic=({src:e,title:t=void 0,width:r=700,height:i=500,mode:a=`inline`,onImageLoad:o=void 0,onClose:s=void 0,onSave:c=void 0})=>{let l=Y(`imageEditor`),u=(0,n.useRef)(null),d=(0,n.useRef)(null),f={width:10,color:`rgba(255,0,0,0.5)`,fill:`transparent`},[p,m]=(0,n.useState)(1);(0,n.useEffect)(()=>{if(!u.current)return;let t,n=!1;return(async()=>{let[{default:a}]=await Promise.all([import(`tui-image-editor`),import(`tui-image-editor/dist/tui-image-editor.css`)]);!n&&u.current&&(t=new a(u.current,{cssMaxWidth:r,cssMaxHeight:i,selectionStyle:{cornerSize:10,rotatingPointOffset:70,cornerColor:`white`,cornerStrokeColor:`red`,borderColor:`red`}}),d.current=t,e&&t.loadImageFromURL(e,`Sample Image`).then(()=>{o?.(),t.clearUndoStack(),t.clearRedoStack()}).catch(e=>{console.error(`Error loading image:`,e)}),t.on(`objectAdded`,e=>{console.log(`objectAdded`,e),t.stopDrawingMode()}),t.on(`addText`,e=>{let n=e;t.stopDrawingMode(),t.addText(`init text`,{styles:{fill:`#FF0000`,fontSize:30,fontWeight:`bold`},position:{x:n.originPosition?.x,y:n.originPosition?.y}})}))})(),()=>{n=!0,t?.destroy(),d.current=null}},[r,i]);let h=(0,n.useCallback)(()=>{let t=d.current;e&&t&&t.loadImageFromURL(e,`Sample Image`).then(()=>{o?.(),t.clearUndoStack(),t.clearRedoStack()}).catch(e=>{console.error(`Error loading image:`,e)})},[e,o]);(0,n.useEffect)(()=>{d.current&&h()},[h]);let g=(e,t)=>{e.preventDefault();let n=d.current;if(n)switch(t){case`ZOOMIN`:p<3&&m(e=>e*1.2);break;case`ZOOMOUT`:p>1&&m(e=>Math.max(e*.8,1));break;case`UNDO`:n.isEmptyUndoStack()||n.undo();break;case`REDO`:n.isEmptyRedoStack()||n.redo();break;case`FLIPX`:n.flipX();break;case`FLIPY`:n.flipY();break;case`ROTATE`:n.rotate(90);break;case`CROPPER`:n.startDrawingMode(t);break;case`FREE_DRAWING`:n.startDrawingMode(t,{width:f.width,color:f.color});break;case`LINE_DRAWING`:n.startDrawingMode(t,{width:f.width,color:f.color,arrowType:{tail:`chevron`}});break;case`TEXT`:n.startDrawingMode(t);break;case`circle`:case`rect`:case`triangle`:n.setDrawingShape(t,{fill:f.fill,stroke:f.color,strokeWidth:3}),n.startDrawingMode(`SHAPE`)}};(0,n.useEffect)(()=>{if(a===`modal`)return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=``}},[a]);let _=async()=>{let e=d.current;if(e){try{let t=e.getCropzoneRect?.();t&&t.width>0&&t.height>0&&await e.crop(t)}catch{}await c?.(e.toDataURL())}},v=()=>{s?.()},y=`inline-flex h-8 w-8 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,b=n.default.createElement(n.default.Fragment,null,n.default.createElement(`button`,{className:y,title:l.undo,onClick:e=>g(e,`UNDO`)},n.default.createElement(Q,{name:`arrow-arc-left`,size:16})),n.default.createElement(`button`,{className:y,title:l.redo,onClick:e=>g(e,`REDO`)},n.default.createElement(Q,{name:`arrow-arc-right`,size:16})),n.default.createElement(`button`,{className:y,title:l.zoomOut,onClick:e=>g(e,`ZOOMOUT`)},n.default.createElement(Q,{name:`magnifying-glass-minus`,size:16})),n.default.createElement(`button`,{className:y,title:l.zoomIn,onClick:e=>g(e,`ZOOMIN`)},n.default.createElement(Q,{name:`magnifying-glass-plus`,size:16})),n.default.createElement(rc,null),n.default.createElement(`button`,{className:y,title:l.crop,onClick:e=>g(e,`CROPPER`)},n.default.createElement(Q,{name:`crop`,size:16})),n.default.createElement(`button`,{className:y,title:l.flipHorizontal,onClick:e=>g(e,`FLIPX`)},n.default.createElement(Q,{name:`arrow-line-right`,size:16})),n.default.createElement(`button`,{className:y,title:l.flipVertical,onClick:e=>g(e,`FLIPY`)},n.default.createElement(Q,{name:`arrow-line-down`,size:16})),n.default.createElement(`button`,{className:y,title:l.rotate,onClick:e=>g(e,`ROTATE`)},n.default.createElement(Q,{name:`camera-rotate`,size:16})),n.default.createElement(rc,null),n.default.createElement(`button`,{className:y,title:l.freeDrawing,onClick:e=>g(e,`FREE_DRAWING`)},n.default.createElement(Q,{name:`pencil`,size:16})),n.default.createElement(`button`,{className:y,title:l.arrow,onClick:e=>g(e,`LINE_DRAWING`)},n.default.createElement(Q,{name:`arrow-right`,size:16})),n.default.createElement(`button`,{className:y,title:l.text,onClick:e=>g(e,`TEXT`)},n.default.createElement(Q,{name:`text-t`,size:16})),n.default.createElement(`button`,{className:y,title:l.rectangle,onClick:e=>g(e,`rect`)},n.default.createElement(Q,{name:`rectangle`,size:16})),n.default.createElement(`button`,{className:y,title:l.circle,onClick:e=>g(e,`circle`)},n.default.createElement(Q,{name:`circle`,size:16})),n.default.createElement(`button`,{className:y,title:l.triangle,onClick:e=>g(e,`triangle`)},n.default.createElement(Q,{name:`triangle`,size:16}))),x=n.default.createElement(`div`,{className:`flex flex-1 min-w-0 items-center gap-0.5 overflow-x-auto`},n.default.createElement(`span`,{className:`shrink-0 text-sm font-semibold text-foreground pr-2 mr-1`},t||l.title),n.default.createElement(rc,null),b,c&&n.default.createElement(n.default.Fragment,null,n.default.createElement(rc,null),n.default.createElement(Sn,{className:`btn-primary h-8 px-3 text-xs ml-1`,onClick:_,icon:`floppy-disk`,label:l.save}))),S=n.default.createElement(`div`,{className:`flex items-center gap-0.5 border-b px-2 py-1`},b,c&&n.default.createElement(`div`,{className:`ml-auto pl-2`},n.default.createElement(Sn,{className:`btn-primary h-8 px-3 text-xs`,onClick:_,icon:`floppy-disk`,label:l.save}))),C=n.default.createElement(`div`,{className:X(`flex w-full items-center justify-center overflow-auto pt-3`,`[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]`,`dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]`,`[background-size:16px_16px]`),style:{minHeight:i*p+`px`}},n.default.createElement(`style`,null,`.tui-image-editor,.tui-image-editor canvas{background:transparent!important}`),n.default.createElement(`div`,{ref:u,style:{transform:`scale(${p})`,transformOrigin:`center center`,display:`inline-block`,userSelect:`none`,width:r+`px`,height:i*p+`px`}}));return a===`modal`?n.default.createElement(Cr,{size:`xl`,header:x,bodyClassName:`overflow-hidden p-0`,onClose:v,footer:!1},C):n.default.createElement(n.default.Fragment,null,S,C)},ac=({srcset:e})=>{let t=Y(`imageField`),r=e.split(`,`).map(e=>e.trim()).map(e=>{let[t,n]=e.split(` `);return{url:t,width:parseInt(n,10)}}).filter(e=>e.url&&!isNaN(e.width));return r.length<2?null:n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`p`,{className:`text-xs font-medium text-muted-foreground`},t.responsiveVariants,n.default.createElement(`span`,{className:`ml-1 font-normal opacity-60`},ot(t.variantsGenerated,{count:r.length}))),n.default.createElement(`div`,{className:`flex gap-1.5`},r.map(e=>n.default.createElement(`a`,{key:e.width,href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`group relative flex-1 overflow-hidden rounded border border-border`,style:{backgroundImage:`repeating-conic-gradient(#e4e4e4 0% 25%, #f5f5f5 0% 50%)`,backgroundSize:`8px 8px`}},n.default.createElement(`img`,{src:e.url,alt:`${e.width}w`,className:`h-12 w-full object-contain transition-opacity group-hover:opacity-80`}),n.default.createElement(`span`,{className:`absolute bottom-0.5 left-0.5 rounded bg-black/60 px-1 py-0.5 text-[9px] font-mono leading-none text-white`},e.width,`px`),n.default.createElement(`div`,{className:`absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`div`,{className:`rounded-md bg-black/60 p-1`},n.default.createElement(Q,{name:`external-link`,size:11,className:`text-white`})))))))},oc=({name:e,onChange:t=void 0,defaultValue:r=void 0,label:i=void 0,required:a=!1,disabled:o=!1,feedback:s=void 0,srcsetWidths:c=[],uploadPath:l=void 0,id:u=void 0,labelClassName:d=void 0,inheritWrapperClassName:f=!0,wrapperClassName:p=void 0,className:m=void 0,before:h=void 0,after:g=void 0})=>{let{value:_,handleChange:v,formWrapClass:y}=Rd({name:e,onChange:t,defaultValue:r,wrapperClassName:p,inheritWrapperClassName:f}),b=Ld(e,{required:a,label:i}),x=_&&typeof _==`object`&&!Array.isArray(_)?_:{},S=x.src??``,C=x.alt??``,w=x.srcset??``,T=x.sizes??``,E=nc(),D=Y(`imageField`),[O,k]=(0,n.useState)(!1),[A,j]=(0,n.useState)(!1),M=(0,n.useRef)(null),N=(0,n.useCallback)(t=>{v?.({target:{name:e,value:{...x,...t}}})},[v,e,x]),P=(0,n.useRef)(``);(0,n.useEffect)(()=>{S&&S!==P.current&&!C&&N({alt:$s(Qs(S))}),P.current=S},[S]),(0,n.useEffect)(()=>{if(!S||!c.length)return;let e=!1;return k(!0),(async()=>{let{variants:t,naturalWidth:n}=await Ys(S,c);if(e)return;let r=Qs(S),i,a=S.startsWith(`data:`)?URL.createObjectURL(await fetch(S).then(e=>e.blob())):S;i=E&&l&&t.length?[...await Xs(t,E,l,r),{url:a,width:n}]:[...t.map(e=>({url:e.localUrl,width:e.width})),{url:a,width:n}],e||(N({srcset:Zs(i),sizes:`(max-width: 640px) 100vw, 800px`}),k(!1))})().catch(()=>{e||k(!1)}),()=>{e=!0}},[S,c.join(`,`)]);let F=e=>{N({src:e,srcset:``,sizes:``}),j(!1)},I=!!b;return n.default.createElement(Z,{className:y},h,i&&n.default.createElement(ws,{label:i,required:a,htmlFor:u??e,className:d}),n.default.createElement(`div`,{className:X(`rounded-lg border border-input bg-background shadow-sm transition-colors`,`focus-within:ring-1 focus-within:ring-ring`,I&&`border-destructive focus-within:ring-destructive/20`,o&&`cursor-not-allowed opacity-50`,m)},n.default.createElement(`div`,{className:X(`group relative flex min-h-[120px] items-center justify-center overflow-hidden rounded-t-lg transition-colors`,`[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]`,`dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]`,`[background-size:16px_16px]`)},S?n.default.createElement(`img`,{src:S,srcSet:w||void 0,sizes:T||void 0,alt:``,className:`max-h-[180px] max-w-full object-contain`}):n.default.createElement(Q,{name:`image`,size:36,className:`opacity-20 text-muted-foreground`}),S&&n.default.createElement(`div`,{className:`absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`a`,{href:S,target:`_blank`,rel:`noopener noreferrer`,title:D.openOriginal,className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`external-link`,size:13})),n.default.createElement(`button`,{type:`button`,title:D.crop,disabled:o,onClick:()=>j(!0),className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80 disabled:cursor-not-allowed disabled:opacity-40`},n.default.createElement(Q,{name:`crop`,size:13}))),O&&n.default.createElement(`div`,{className:`absolute inset-0 flex items-center justify-center bg-background/70 backdrop-blur-sm`},n.default.createElement(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`},n.default.createElement(Q,{name:`loader-circle`,size:14,className:`animate-spin`}),D.generatingVariants))),n.default.createElement(`div`,{className:`flex flex-col gap-3 p-3`},n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},D.imageUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},D.imageUrlHint)),n.default.createElement(`input`,{type:`url`,value:S,disabled:o,onChange:e=>N({src:e.target.value,srcset:``,sizes:``}),placeholder:`https://example.com/image.jpg`,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring disabled:opacity-50`})),n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},D.altText,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},D.altTextHint),a&&n.default.createElement(`span`,{className:`ml-1 text-destructive`},`*`)),n.default.createElement(`input`,{ref:M,type:`text`,value:C,disabled:o,onChange:e=>N({alt:e.target.value}),placeholder:D.altPlaceholder,className:X(`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring disabled:opacity-50`,I&&`border-destructive`)})),w&&n.default.createElement(ac,{srcset:w}))),b&&n.default.createElement(os,{message:b}),!b&&s&&n.default.createElement(`p`,{className:`mt-1 text-xs text-muted-foreground`},s),g,A&&S&&n.default.createElement(ic,{src:S,mode:`modal`,title:ot(D.cropTitle,{name:Qs(S)}),onClose:()=>j(!1),onSave:F}))},sc={"1:1":1,"3:4":3/4,"4:3":4/3},cc=48,lc=(e,t)=>{let n=e.split(`.`).pop()??``;return`${e.replace(/\.[^/.]+$/,``)}${`_${t.replace(`:`,`x`)}`}.${n}`},uc={nw:`nwse-resize`,n:`ns-resize`,ne:`nesw-resize`,e:`ew-resize`,se:`nwse-resize`,s:`ns-resize`,sw:`nesw-resize`,w:`ew-resize`},dc=()=>{let[e,t]=(0,n.useState)(()=>document.documentElement.classList.contains(`dark`));return(0,n.useEffect)(()=>{let e=new MutationObserver(()=>t(document.documentElement.classList.contains(`dark`)));return e.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),()=>e.disconnect()},[]),e},fc=(0,n.forwardRef)(({img:e,title:t,scales:r},i)=>{let a=r??sc,o=Y(`crop`),s=(0,n.useRef)(null),c=(0,n.useRef)(null),l=()=>{let t=Object.keys(e.variants??{}).filter(e=>e in a);return t.length?t:Object.keys(a)},u=dc(),[d,f]=(0,n.useState)(l),[p,m]=(0,n.useState)(()=>l()[0]??Object.keys(a)[0]),[h,g]=(0,n.useState)(e.fileName),[_,v]=(0,n.useState)(e.alt??``),[y,b]=(0,n.useState)(e.variants??{}),[x,S]=(0,n.useState)(null),[C,w]=(0,n.useState)(!1),[T,E]=(0,n.useState)(!1),D=(0,n.useRef)(y),O=(0,n.useRef)(x),k=(0,n.useRef)(p),A=(0,n.useRef)(d),j=(0,n.useRef)(h);(0,n.useEffect)(()=>{D.current=y},[y]),(0,n.useEffect)(()=>{O.current=x},[x]),(0,n.useEffect)(()=>{k.current=p},[p]),(0,n.useEffect)(()=>{A.current=d},[d]),(0,n.useEffect)(()=>{j.current=h},[h]),(0,n.useEffect)(()=>{b(e=>{let t={};for(let[n,r]of Object.entries(e))t[n]={...r,fileName:lc(h,n)};return t})},[h]);let M=(0,n.useRef)(null),N=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=e=>{let t=M.current,n=N.current;if(!t&&!n)return;let r=k.current,i=O.current,o=D.current[r];if(!i||!o)return;let s=a[r]??1;if(t){let n=Math.max(0,Math.min(e.clientX-t.offsetX,i.width-o.width)),a=Math.max(0,Math.min(e.clientY-t.offsetY,i.height-o.height));b(e=>({...e,[r]:{...e[r],left:n,top:a}}))}if(n){let{handle:t,sx:a,sy:o,sl:c,st:l,sw:u,sh:d}=n,f=e.clientX-a,p=e.clientY-o,m=c,h=l,g=u,_=d;if(t===`n`||t===`s`){let e=t===`n`?-p:p;_=Math.max(cc,d+e),g=_*s,t===`n`&&(h=l+d-_),m=c+(u-g)/2}else if(t===`e`||t===`w`){let e=t===`w`?-f:f;g=Math.max(cc,u+e),_=g/s,t===`w`&&(m=c+u-g),h=l+(d-_)/2}else{let e=t.includes(`e`)?f:-f,n=t.includes(`s`)?p:-p;g=Math.max(cc,u+(Math.abs(e)>Math.abs(n)?e:n)),_=g/s,t.includes(`n`)&&(h=l+d-_),t.includes(`w`)&&(m=c+u-g)}m=Math.max(0,m),h=Math.max(0,h);let v=i.width-m,y=i.height-h;if(g>v||_>y){let e=Math.min(v/g,y/_);g*=e,_*=e}g<cc&&(g=cc,_=g/s),_<cc&&(_=cc,g=_*s),b(e=>({...e,[r]:{...e[r],left:m,top:h,width:g,height:_}}))}},t=()=>{M.current=null,N.current=null,E(!1)};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[]),(0,n.useLayoutEffect)(()=>{if(!C)return;let t=c.current;if(!t)return;let{width:n,height:r}=t.getBoundingClientRect();if(n&&r&&(S(e=>e&&e.width===n&&e.height===r?e:{width:n,height:r}),!D.current[p])){let t=a[p]??1,i=Math.min(n*.78,r*t*.78),o=i/t;b(t=>({...t,[p]:{fileName:lc(j.current,p),type:e.type,scale:p,left:(n-i)/2,top:(r-o)/2,width:i,height:o,base64:``}}))}},[p,C]),(0,n.useImperativeHandle)(i,()=>({handleSave:()=>{let e=s.current,t=e?.getContext(`2d`),n=c.current;if(!e||!t||!n)return{fileName:j.current,alt:_,variants:{}};let r=O.current,i={};for(let a of A.current){let o=D.current[a];if(!o||!r)continue;let s=n.naturalWidth/r.width,c=n.naturalHeight/r.height,{top:l,left:u,width:d,height:f}=o;e.width=Math.round(d*s),e.height=Math.round(f*c),t.clearRect(0,0,e.width,e.height),t.drawImage(n,u*s,l*c,d*s,f*c,0,0,e.width,e.height),i[a]={...o,base64:e.toDataURL(o.type)}}return{fileName:j.current,alt:_,variants:i}}}));let P=e=>{d.includes(e)||f(t=>[...t,e]),m(e)},F=(e,t)=>{t.stopPropagation();let n=d.filter(t=>t!==e);if(f(n),e===p){let t=n.filter(e=>e in a);m(t[0]??Object.keys(a).find(t=>t!==e)??Object.keys(a)[0])}},I=e=>{e.preventDefault(),e.stopPropagation();let t=D.current[p];t&&(M.current={offsetX:e.clientX-t.left,offsetY:e.clientY-t.top},E(!0))},L=(e,t)=>{e.preventDefault(),e.stopPropagation();let n=D.current[p];n&&(N.current={handle:t,sx:e.clientX,sy:e.clientY,sl:n.left,st:n.top,sw:n.width,sh:n.height},E(!0))},R=d.includes(p),z=y[p];return n.default.createElement(`div`,{className:[`flex gap-4 h-full min-h-0`,t?`flex-col`:``].join(` `)},t&&n.default.createElement(`h3`,{className:`text-base font-semibold shrink-0`},t),n.default.createElement(`div`,{className:`flex gap-4 flex-1 min-h-0`},n.default.createElement(`div`,{className:`flex-1 min-w-0 min-h-0 flex items-center justify-center rounded-xl overflow-hidden`,style:{cursor:T?`grabbing`:void 0,...u?{backgroundColor:`#1a1a1a`,backgroundImage:`linear-gradient(45deg,#272727 25%,transparent 25%),linear-gradient(-45deg,#272727 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#272727 75%),linear-gradient(-45deg,transparent 75%,#272727 75%)`}:{backgroundColor:`#f0f0f0`,backgroundImage:`linear-gradient(45deg,#dcdcdc 25%,transparent 25%),linear-gradient(-45deg,#dcdcdc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dcdcdc 75%),linear-gradient(-45deg,transparent 75%,#dcdcdc 75%)`},backgroundSize:`20px 20px`,backgroundPosition:`0 0,0 10px,10px -10px,-10px 0`}},R?n.default.createElement(`div`,{className:`relative select-none`,style:{display:`inline-block`,lineHeight:0}},n.default.createElement(`img`,{src:Ec(e),alt:`Crop target`,ref:c,style:{maxHeight:`calc(100dvh - 200px)`,maxWidth:`100%`,display:`block`},draggable:!1,onLoad:()=>w(!0)}),z&&x&&n.default.createElement(_c,{crop:z,onMoveStart:I,onResizeStart:L})):n.default.createElement(`div`,{className:`flex flex-col items-center gap-3 text-zinc-500 select-none`},n.default.createElement(`svg`,{className:`w-10 h-10 opacity-30`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},n.default.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M4 8V6a2 2 0 012-2h2M4 16v2a2 2 0 002 2h2M16 4h2a2 2 0 012 2v2M16 20h2a2 2 0 002-2v-2M9 12l2 2 4-4`})),n.default.createElement(`p`,{className:`text-sm`},o.enableCrop.split(`{scale}`)[0],n.default.createElement(`strong`,{className:`text-zinc-300`},p),o.enableCrop.split(`{scale}`)[1]))),n.default.createElement(`div`,{className:`w-52 shrink-0 flex flex-col gap-4 min-h-0`},n.default.createElement(`div`,null,n.default.createElement(vc,{value:h,onChange:g,label:o.fileName})),n.default.createElement(`div`,{className:`flex flex-col gap-1 shrink-0`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},o.altText),n.default.createElement(`textarea`,{defaultValue:_,onBlur:e=>v(e.target.value),placeholder:o.altTextPlaceholder,rows:2,className:`w-full min-w-0 resize-none rounded-md border border-input bg-background px-2.5 py-1.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`flex-1 min-h-0 flex flex-col gap-2 overflow-y-auto`},n.default.createElement(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wide shrink-0`},o.variants),Object.keys(a).map(t=>n.default.createElement(gc,{key:t,scale:t,ratio:a[t],img:e,crop:y[t],bounds:x,enabled:d.includes(t),active:t===p,onClick:()=>P(t),onRemove:e=>F(t,e)}))),R&&z&&n.default.createElement(`div`,{className:`shrink-0 pt-3 border-t border-border`},n.default.createElement(`p`,{className:`text-xs font-medium text-muted-foreground mb-1`},o.outputFile),n.default.createElement(`p`,{className:`text-xs text-foreground/70 truncate tabular-nums`,title:z.fileName},z.fileName??lc(h,p))))),n.default.createElement(`canvas`,{ref:s,className:`hidden`}))});fc.displayName=`CropImage`;var pc=120,mc=88,hc=e=>{let t=mc*e,n=mc;return t>pc&&(t=pc,n=pc/e),{w:Math.round(t),h:Math.round(n)}},gc=({scale:e,ratio:t,img:r,crop:i,bounds:a,enabled:o,active:s,onClick:c,onRemove:l})=>{let u=Y(`crop`),{w:d,h:f}=hc(t),p=(()=>{if(!i||!a||!i.width)return{background:`hsl(var(--muted))`};let e=d/i.width;return{backgroundImage:`url(${Ec(r)})`,backgroundSize:`${Math.round(a.width*e)}px ${Math.round(a.height*e)}px`,backgroundPosition:`-${Math.round(i.left*e)}px -${Math.round(i.top*e)}px`,backgroundRepeat:`no-repeat`}})();return n.default.createElement(`button`,{type:`button`,onClick:c,className:[`relative group flex flex-col rounded-lg border-2 transition-all overflow-hidden w-full text-left`,s?`border-primary bg-primary/5 shadow-sm`:o?`border-border hover:border-primary/40 bg-card`:`border-dashed border-muted-foreground/25 bg-transparent hover:border-muted-foreground/50`].join(` `)},n.default.createElement(`div`,{className:`flex items-center justify-center py-3 px-3 bg-muted/20`},o&&i&&a?n.default.createElement(`div`,{className:`rounded shadow-sm overflow-hidden shrink-0`,style:{width:d,height:f,...p}}):n.default.createElement(`div`,{className:`rounded border border-dashed border-muted-foreground/30 flex items-center justify-center shrink-0`,style:{width:d,height:f}},n.default.createElement(`svg`,{className:`w-5 h-5 text-muted-foreground/40`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},n.default.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M12 4v16m8-8H4`})))),n.default.createElement(`div`,{className:`flex items-center justify-between px-2.5 py-1.5 border-t border-border/60`},n.default.createElement(`span`,{className:[`text-xs font-semibold tabular-nums`,s?`text-primary`:`text-foreground`].join(` `)},e),s&&o&&n.default.createElement(`span`,{className:`text-xs text-primary/60 font-normal`},u.active),o&&n.default.createElement(`span`,{role:`button`,tabIndex:-1,onClick:l,title:ot(u.removeVariant,{scale:e}),className:`ml-auto w-5 h-5 flex items-center justify-center rounded-full text-muted-foreground hover:bg-destructive/10 hover:text-destructive transition-colors text-base leading-none`},`×`)))},_c=({crop:e,onMoveStart:t,onResizeStart:r})=>{let{top:i,left:a,width:o,height:s}=e;return n.default.createElement(`div`,{className:`absolute inset-0 pointer-events-none`},n.default.createElement(`div`,{className:`absolute`,style:{top:0,left:0,right:0,height:i,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{className:`absolute`,style:{top:i+s,left:0,right:0,bottom:0,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{className:`absolute`,style:{top:i,left:0,width:a,height:s,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{className:`absolute`,style:{top:i,left:a+o,right:0,height:s,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{onMouseDown:t,className:`absolute pointer-events-auto cursor-grab active:cursor-grabbing`,style:{top:i,left:a,width:o,height:s,border:`1.5px solid rgba(255,255,255,0.92)`,boxSizing:`border-box`}},n.default.createElement(`div`,{className:`absolute inset-0 pointer-events-none`,style:{backgroundImage:`linear-gradient(to right, rgba(255,255,255,0.18) 1px, transparent 1px),linear-gradient(to bottom, rgba(255,255,255,0.18) 1px, transparent 1px)`,backgroundSize:`33.33% 33.33%`}}),[`nw`,`ne`,`sw`,`se`].map(e=>n.default.createElement(`div`,{key:e,onMouseDown:t=>{t.stopPropagation(),r(t,e)},className:`absolute pointer-events-auto`,style:{cursor:uc[e],width:22,height:22,display:`flex`,alignItems:e.includes(`n`)?`flex-start`:`flex-end`,justifyContent:e.includes(`w`)?`flex-start`:`flex-end`,...e.includes(`n`)?{top:-2}:{bottom:-2},...e.includes(`w`)?{left:-2}:{right:-2}}},n.default.createElement(`span`,{style:{display:`block`,width:10,height:10,background:`#fff`,borderRadius:2,boxShadow:`0 1px 3px rgba(0,0,0,0.5)`}}))),[`n`,`s`].map(e=>n.default.createElement(`div`,{key:e,onMouseDown:t=>{t.stopPropagation(),r(t,e)},className:`absolute pointer-events-auto`,style:{cursor:uc[e],...e===`n`?{top:-4}:{bottom:-4},left:`50%`,transform:`translateX(-50%)`,width:24,height:12,display:`flex`,alignItems:`center`,justifyContent:`center`}},n.default.createElement(`span`,{style:{display:`block`,width:20,height:4,background:`#fff`,borderRadius:2,boxShadow:`0 1px 3px rgba(0,0,0,0.5)`}}))),[`e`,`w`].map(e=>n.default.createElement(`div`,{key:e,onMouseDown:t=>{t.stopPropagation(),r(t,e)},className:`absolute pointer-events-auto`,style:{cursor:uc[e],...e===`w`?{left:-4}:{right:-4},top:`50%`,transform:`translateY(-50%)`,width:12,height:24,display:`flex`,alignItems:`center`,justifyContent:`center`}},n.default.createElement(`span`,{style:{display:`block`,width:4,height:20,background:`#fff`,borderRadius:2,boxShadow:`0 1px 3px rgba(0,0,0,0.5)`}})))))},vc=({value:e,onChange:t,label:r,scale:i})=>{let a=e?.split(`.`).pop()??``,o=i?`_${i.replace(`:`,`x`)}`:void 0;return n.default.createElement(`div`,{className:`flex flex-col gap-1`},r&&n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},r),n.default.createElement(`div`,{className:`flex items-center gap-1.5`},n.default.createElement(`input`,{type:`text`,defaultValue:(e=>{let t=e.replace(/\.[^/.]+$/,``);return o&&t.endsWith(o)?t.slice(0,-o.length):t})(e||``),onBlur:e=>t(`${e.target.value.trim()}${o??``}.${a}`),className:`flex-1 h-8 min-w-0 rounded-md border border-input bg-background px-2.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`}),o&&n.default.createElement(`span`,{className:`text-xs text-muted-foreground shrink-0 tabular-nums`},o,`.`,a)))},yc=vc,bc=({onFilesChange:e,onFileReady:t,uploadPath:r,srcsetWidths:i,initialFiles:a,storageKey:o,storageProvider:s})=>{let[c,l]=(0,n.useState)(a??[]),u=s??nc(o),d=(0,n.useRef)(null),f=(0,n.useRef)(e);f.current=e;let p=(0,n.useRef)(t);p.current=t;let m=(0,n.useRef)(new Set);(0,n.useEffect)(()=>{f.current?.(c);for(let e of c)e.progress===100&&!m.current.has(e.key)&&(m.current.add(e.key),p.current?.(e))},[c]);let h=(0,n.useCallback)((e,t)=>{l(n=>n.map(n=>n.key===e?{...n,...t}:n))},[]),g=(0,n.useCallback)(e=>{l(t=>t.filter(t=>t.key!==e)),m.current.delete(e)},[]),_=(0,n.useCallback)(e=>{l(t=>{let n=[...t];return e.forEach(e=>{let t={key:e.name,fileName:e.name,size:e.size,type:e.type,progress:0,url:``,base64:``,variants:{}},r=n.findIndex(t=>t.key===e.name);r===-1?n.push(t):n[r]=t}),n}),e.forEach(e=>{let t=new FileReader;t.onprogress=t=>{t.lengthComputable&&h(e.name,{progress:Math.round(t.loaded/t.total*75)})},t.onloadend=async()=>{let n=le(t.result),a=`data:${e.type};base64,${n}`;if(h(e.name,{base64:n,progress:80}),i?.length)try{let{variants:t,naturalWidth:n}=await Ys(a,i),o=u&&r?await Xs(t,u,r,e.name):t.map(e=>({url:e.localUrl,width:e.width})),s=e.name.split(`.`).pop()??`jpg`,c=e.name.replace(/\.[^/.]+$/,``),l=u&&r?await u.upload(a,`${r}/${c}_${n}w.${s}`):void 0,d=l??(u&&r?a:URL.createObjectURL(await fetch(a).then(e=>e.blob()))),f=[...o,{url:d,width:n}];if(f.length>0){h(e.name,{url:d,srcset:Zs(f),sizes:`(max-width: 640px) 100vw, 800px`,progress:100,...l?{base64:void 0}:{}});return}}catch{}else if(u&&r)try{let t=await u.upload(a,`${r}/${e.name}`);if(t){h(e.name,{url:t,progress:100,base64:void 0});return}}catch{}h(e.name,{progress:100})},t.readAsArrayBuffer(e)}),d.current&&(d.current.value=``)},[u,r,i,h]);return{files:c,setFiles:l,fileInputRef:d,updateFile:h,handleFiles:_,handleUpload:()=>d.current?.click(),handleUploadChange:(0,n.useCallback)(e=>{_(Array.from(e.target.files??[]))},[_]),handleRemove:g}},xc=(e,t,r,i,a,o,s)=>{let{value:c,handleChange:l,formWrapClass:u}=Rd({name:e,onChange:t,wrapperClassName:r}),[d,f]=(0,n.useState)(null),p=(0,n.useRef)(c),m=(0,n.useRef)(new WeakSet),h=bc({initialFiles:Array.isArray(c)?c:[],onFilesChange:t=>{p.current=t,m.current.add(t),l({target:{name:e,value:t}})},uploadPath:i,srcsetWidths:a,storageKey:o,storageProvider:s});(0,n.useEffect)(()=>{if(c===p.current||Array.isArray(c)&&m.current.has(c))return;let e=Array.isArray(c)?c:[];p.current=c,(e.length!==0||h.files.length!==0)&&h.setFiles(e)},[c]);let g=e=>{d&&(h.updateFile(d.key,e),f(null))};return{...h,formWrapClass:u,currentFile:d,handleSave:g,handleEdit:e=>f(e),handleClose:()=>f(null)}},Sc=({name:e,fileInputRef:t,accept:r,onUpload:i,onChange:a,required:o=!1,multiple:s=!1,height:c,width:l,feedback:u})=>n.default.createElement(n.default.Fragment,null,n.default.createElement(`button`,{type:`button`,onClick:i,className:`flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 bg-muted/30 text-muted-foreground/50 transition-all hover:border-primary/40 hover:bg-primary/5 hover:text-primary/60 cursor-pointer`,style:{width:l,height:c}},n.default.createElement(Q,{name:`upload`,className:`w-8 h-8`}),u&&n.default.createElement(`span`,{className:`mt-1.5 max-w-full px-1.5 text-center text-[10px] font-medium leading-tight whitespace-pre-wrap`},u)),n.default.createElement(`input`,{name:e,type:`file`,accept:r,ref:t,multiple:s,required:o,className:`hidden`,onChange:a})),Cc=({title:e,file:t,type:r,onSave:i,onClose:a})=>{let o=Y(`crop`),[s,c]=(0,n.useState)(t.fileName),l=(0,n.useRef)(null);return n.default.createElement(Cr,{title:e,onSave:async()=>(i?.(l.current?l.current.handleSave():{fileName:s,variants:{}}),!0),onClose:a,size:r===`img`?`fullscreen`:void 0},r===`document`&&n.default.createElement(yc,{value:s,onChange:c,label:o.fileName}),r===`img`&&n.default.createElement(fc,{ref:l,img:t}))},wc=(e,t,n)=>e.length<t&&(n||e.length===0),Tc=new Map,Ec=(e,t=`origin`)=>{if(e.url)return e.url;if(e.base64){let n=`${e.fileName} ${t}`;return Tc.has(n)||Tc.set(n,K(e.base64,e.type)??`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InRyYW5zcGFyZW50Ii8+PGNpcmNsZSBjeD0iNjUiIGN5PSIzNSIgcj0iMTAiIGZpbGw9IiM5Y2EzYWYiLz48cGF0aCBkPSJNMTAsNzUgTDMyLDUwIEw1Miw3MCBMNjgsNTIgTDkwLDcyIEw5MCw4MCBIMTAgWiIgZmlsbD0iIzljYTNhZiIvPjwvc3ZnPg==`),Tc.get(n)??`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InRyYW5zcGFyZW50Ii8+PGNpcmNsZSBjeD0iNjUiIGN5PSIzNSIgcj0iMTAiIGZpbGw9IiM5Y2EzYWYiLz48cGF0aCBkPSJNMTAsNzUgTDMyLDUwIEw1Miw3MCBMNjgsNTIgTDkwLDcyIEw5MCw4MCBIMTAgWiIgZmlsbD0iIzljYTNhZiIvPjwvc3ZnPg==`}return``},Dc=({name:e,onChange:t=void 0,label:r=void 0,required:i=!1,editable:a=!1,multiple:o=!1,max:s=100,accept:c=`.pdf,.doc,.docx,.txt,.iso`,uploadPath:l=void 0,storageKey:u=void 0,storageProvider:d=void 0,before:f=void 0,after:p=void 0,wrapperClassName:m=void 0,className:h=void 0})=>{let{files:g,currentFile:_,fileInputRef:v,formWrapClass:y,handleFiles:b,handleUploadChange:x,handleUpload:S,handleRemove:C,handleSave:w,handleEdit:T,handleClose:E}=xc(e,t,m,l,void 0,u,d),D=Ld(e,{required:i,label:r}),O=Y(`upload`),[k,A]=(0,n.useState)(!1),j=wc(g,s,o),M=e=>{e.preventDefault(),j&&A(!0)},N=()=>A(!1),P=e=>{e.preventDefault(),A(!1),j&&b(o?Array.from(e.dataTransfer.files):[e.dataTransfer.files[0]])};return n.default.createElement(Z,{className:y},f,n.default.createElement(`div`,{className:h},r&&n.default.createElement(ws,{label:r,required:i}),j&&g.length===0&&n.default.createElement(`button`,{type:`button`,onClick:S,onDragOver:M,onDragLeave:N,onDrop:P,className:[`w-full flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed py-8 px-4 transition-colors cursor-pointer`,k?`border-primary/60 bg-primary/8 text-primary`:`border-muted-foreground/25 bg-muted/30 text-muted-foreground hover:border-primary/40 hover:bg-primary/5 hover:text-primary/70`].join(` `)},n.default.createElement(Q,{name:`upload`,className:`w-8 h-8`}),n.default.createElement(`span`,{className:`text-sm font-medium`},k?O.dropToUpload:O.clickOrDrag),n.default.createElement(`span`,{className:`text-xs opacity-60`},c)),g.length>0&&n.default.createElement(`div`,{className:`rounded-lg border border-border overflow-hidden`},n.default.createElement(`table`,{className:`w-full text-sm`},n.default.createElement(`tbody`,null,g.map(e=>n.default.createElement(`tr`,{key:e.key,className:`border-b border-border last:border-0 ${a?`cursor-pointer hover:bg-muted/40`:``}`,onClick:()=>a&&T(e)},n.default.createElement(`td`,{className:`px-3 py-2.5`},n.default.createElement(`div`,{className:`flex items-center gap-2`},n.default.createElement(Q,{name:`file`,className:`w-4 h-4 shrink-0 text-muted-foreground`}),e.progress===100?n.default.createElement(`a`,{href:Ec(e),target:`_blank`,rel:`noopener noreferrer`,className:`hover:underline truncate max-w-xs`,onClick:e=>e.stopPropagation()},e.fileName):n.default.createElement(`span`,{className:`truncate max-w-xs text-muted-foreground`},e.fileName))),n.default.createElement(`td`,{className:`px-3 py-2.5 text-muted-foreground text-right whitespace-nowrap w-24`},e.progress===100?(e.size/1024).toFixed(2)+` KB`:n.default.createElement(Wo,{max:100,min:0,value:e.progress,appearance:`bar`})),n.default.createElement(`td`,{className:`px-3 py-2.5 w-10 text-right`},n.default.createElement(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),C(e.key)},className:`flex items-center justify-center w-6 h-6 rounded-full text-muted-foreground hover:bg-red-50 hover:text-red-500 transition-colors ml-auto cursor-pointer`},n.default.createElement(Q,{name:`x`,className:`w-3.5 h-3.5`}))))))),j&&n.default.createElement(`div`,{className:`px-3 py-2 border-t border-border bg-muted/20 ${k?`bg-primary/5`:``}`,onDragOver:M,onDragLeave:N,onDrop:P},n.default.createElement(`button`,{type:`button`,onClick:S,className:`flex items-center gap-1.5 text-xs text-muted-foreground hover:text-primary transition-colors cursor-pointer`},n.default.createElement(Q,{name:`upload`,className:`w-3.5 h-3.5`}),O.uploadMore))),n.default.createElement(`input`,{name:e,type:`file`,accept:c,ref:v,multiple:o,required:i,className:`hidden`,onChange:x}),D&&n.default.createElement(os,{message:D})),a&&_&&n.default.createElement(Cc,{title:O.editFileName,file:_,type:`document`,onSave:w,onClose:E}),p)},Oc=({name:e,onChange:t=void 0,label:r=void 0,feedback:i=void 0,editable:a=!1,multiple:o=!1,accept:s=`image/*`,required:c=!1,max:l=100,previewHeight:u=100,previewWidth:d=100,uploadPath:f=void 0,srcsetWidths:p=void 0,storageKey:m=void 0,storageProvider:h=void 0,allowUrl:g=!1,before:_=void 0,after:v=void 0,wrapperClassName:y=void 0,className:b=void 0})=>{let{files:x,setFiles:S,currentFile:C,fileInputRef:w,formWrapClass:T,handleUploadChange:E,handleUpload:D,handleRemove:O,handleSave:k,handleEdit:A,handleClose:j}=xc(e,t,y,f,p,m,h),M=Ld(e,{required:c,label:r}),N=Y(`upload`),[P,F]=(0,n.useState)(null),[I,L]=(0,n.useState)(new Set),[R,z]=(0,n.useState)(!1),[B,ee]=(0,n.useState)(``),[V,H]=(0,n.useState)(void 0),te=async()=>{let e=B.trim();try{new URL(e)}catch{return H(N.invalidUrl),!1}let t={key:e,fileName:e.split(`/`).pop()||`image`,size:0,type:``,progress:100,url:e,base64:``,variants:{}};return S(e=>o?[...e,t]:[t]),ee(``),H(void 0),z(!1),!0},ne=()=>{z(!1),ee(``),H(void 0)},re=(e,t)=>{let n=e.currentTarget,r=n.naturalWidth>0&&n.naturalHeight>0&&(n.naturalWidth<d||n.naturalHeight<u);L(e=>{let n=new Set(e);return r?n.add(t):n.delete(t),n})},ie=({scales:e})=>{if(!e)return;let t=Object.keys(e);return t.length===0?null:t.map(t=>n.default.createElement(Mt,{key:t},n.default.createElement(`a`,{href:Ec(e[t],t),className:`text-white`,target:`_blank`,rel:`noopener noreferrer`},t)))};return n.default.createElement(Z,{className:T},_,n.default.createElement(Z,{className:b},r&&n.default.createElement(ws,{label:r,required:c}),n.default.createElement(`div`,{className:`flex gap-2 flex-wrap`},x.map((e,t)=>n.default.createElement(`div`,{key:t,className:`relative overflow-hidden rounded-lg border border-border`,style:{width:d,height:u},onMouseEnter:()=>F(t),onMouseLeave:()=>F(null)},e.progress===100?n.default.createElement(n.default.Fragment,null,I.has(e.key)&&n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{className:`absolute inset-0 dark:hidden`,style:{backgroundColor:`#f0f0f0`,backgroundImage:`linear-gradient(45deg,#dcdcdc 25%,transparent 25%),linear-gradient(-45deg,#dcdcdc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dcdcdc 75%),linear-gradient(-45deg,transparent 75%,#dcdcdc 75%)`,backgroundSize:`10px 10px`,backgroundPosition:`0 0,0 5px,5px -5px,-5px 0`}}),n.default.createElement(`div`,{className:`absolute inset-0 hidden dark:block`,style:{backgroundColor:`#1a1a1a`,backgroundImage:`linear-gradient(45deg,#272727 25%,transparent 25%),linear-gradient(-45deg,#272727 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#272727 75%),linear-gradient(-45deg,transparent 75%,#272727 75%)`,backgroundSize:`10px 10px`,backgroundPosition:`0 0,0 5px,5px -5px,-5px 0`}})),n.default.createElement(`img`,{src:Ec(e),alt:`preview-${t}`,className:`absolute inset-0 w-full h-full ${I.has(e.key)?`object-contain p-1`:`object-cover`}`,onLoad:t=>re(t,e.key)}),n.default.createElement(`div`,{className:`absolute inset-0 bg-black/55 backdrop-blur-[1px] flex flex-col items-center justify-end pb-2 gap-1 transition-opacity`,style:{display:P===t?`flex`:`none`}},n.default.createElement(`div`,{className:`flex items-center gap-1.5`},n.default.createElement(`a`,{href:Ec(e),target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center justify-center w-7 h-7 rounded-full bg-white/20 hover:bg-white/35 text-white transition-colors`},n.default.createElement(Q,{name:`eye`,className:`w-4 h-4`})),a&&n.default.createElement(`button`,{type:`button`,onClick:()=>A(e),className:`flex items-center justify-center w-7 h-7 rounded-full bg-white/20 hover:bg-white/35 text-white transition-colors cursor-pointer`},n.default.createElement(Q,{name:`pencil`,className:`w-4 h-4`})),n.default.createElement(`button`,{type:`button`,onClick:t=>{t.preventDefault(),t.stopPropagation(),O(e.key)},className:`flex items-center justify-center w-7 h-7 rounded-full bg-red-500/70 hover:bg-red-500/90 text-white transition-colors cursor-pointer`},n.default.createElement(Q,{name:`x`,className:`w-4 h-4`}))),a&&e.variants&&Object.keys(e.variants).length>0&&n.default.createElement(`div`,{className:`flex flex-wrap gap-1 px-1`},n.default.createElement(ie,{scales:e.variants})))):n.default.createElement(Wo,{max:100,min:0,value:e.progress,appearance:`circle`}))),wc(x,l,o)&&n.default.createElement(`div`,{className:`relative`,style:{width:d,height:u}},n.default.createElement(Sc,{name:e,fileInputRef:w,accept:s,onUpload:D,onChange:E,required:c,multiple:o,height:u,width:d,feedback:i}),g&&n.default.createElement(`button`,{type:`button`,onClick:()=>z(!0),title:N.insertFromUrl,"aria-label":N.insertFromUrl,className:`absolute -right-2 -top-2 flex h-6 w-6 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-muted-foreground shadow-sm transition-colors hover:text-primary`},n.default.createElement(Q,{name:`link`,className:`w-3.5 h-3.5`})))),M&&n.default.createElement(os,{message:M})),a&&C&&n.default.createElement(Cc,{title:N.editorImage,file:C,type:`img`,onSave:k,onClose:j}),g&&R&&n.default.createElement(Cr,{title:N.insertFromUrl,onSave:te,onClose:ne,size:`sm`},n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`input`,{type:`url`,autoFocus:!0,value:B,onChange:e=>{ee(e.target.value),H(void 0)},placeholder:N.urlPlaceholder,className:`h-9 w-full rounded-md border border-input bg-background px-2.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`}),V&&n.default.createElement(os,{message:V}))),v)},kc={US:`United States`,CN:`中国`,IT:`Italia`,FR:`France`,DE:`Deutschland`,ES:`España`,PT:`Portugal`,RU:`Россия`,JP:`日本`},Ac={it:`Italiano`,en:`English`,fr:`Français`,de:`Deutsch`,es:`Español`,pt:`Português`,ru:`Русский`,ja:`日本語`,ko:`한국어`},jc=(e=!1)=>{let t=typeof localStorage<`u`?localStorage.getItem(`user.country`):null,n=typeof navigator<`u`?navigator.language.split(`-`)[1]:null,r=t||n||`US`;return e?r:kc[r]},Mc=(e=!1)=>{let t=typeof localStorage<`u`?localStorage.getItem(`user.lang`):null,n=typeof navigator<`u`?navigator.language.split(`-`)[0]:null,r=t||n||`en`;return e?r:Ac[r]},Nc=`Please ignore all previous instructions.`,Pc=`Do not repeat yourself. Do not self reference. Do not explain what you are doing.`;`${Nc}`,`${Nc}${Pc}`,`${Nc}${Pc}`,`${Nc}${Pc}`,`${Nc}${Pc}`,`${Nc}${Pc}`,`${Nc}${Pc}`,`${Nc}${Pc}`,`${Nc}${Pc}`,`${Nc}${Pc}`,`${Nc}${Pc}`,`${Nc}${Pc}`,`${Nc}${Pc}`;var Fc=`default`,Ic=`Informative`,Lc=`Argumentative`,Rc=`Authoritative.Caring.Casual.Cheerful.Coarse.Conservative.Conversational.Creative.Dry.Edgy.Enthusiastic.Expository.Formal.Frank.Friendly.Fun.Funny.Humorous.Informative.Irreverent.Journalistic.Matter of fact.Nostalgic.Objective.Passionate.Poetic.Playful.Professional.Provocative.Quirky.Respectful.Romantic.Sarcastic.Serious.Smart.Snarky.Subjective.Sympathetic.Trendy.Trustworthy.Unapologetic.Upbeat.Witty`.split(`.`),zc=[`Academic`,`Analytical`,`Argumentative`,`Conversational`,`Creative`,`Critical`,`Descriptive`,`Epigrammatic`,`Epistolary`,`Expository`,`Informative`,`Instructive`,`Journalistic`,`Metaphorical`,`Narrative`,`Persuasive`,`Poetic`,`Satirical`,`Technical`],Bc={default:`You are a highly skilled and versatile AI assistant who can adapt to any task or context. You write in fluent {language}, using a {voice} tone of voice and a {style} writing style. You provide clear, concise, and well-structured responses, ensuring both accuracy and creativity according to the user's needs.`,copywriter:`You are an expert copywriter who writes catchy text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,seo_expert:`You are an experienced SEO specialist who writes optimized, keyword-rich content in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,storyteller:`You are a talented storyteller who crafts engaging narratives in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,translator:`You are a professional translator who accurately translates content into {language}, maintaining meaning, nuance, and cultural relevance. You have a {voice} tone of voice. You have a {style} writing style.`,marketing_strategist:`You are a skilled marketing strategist who creates persuasive campaigns in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,teacher:`You are a knowledgeable teacher who explains concepts clearly and simply in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,technical_writer:`You are a precise and detail-oriented technical writer who produces clear documentation in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,interviewer:`You are a skilled interviewer who formulates relevant and engaging questions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,product_describer:`You are an e-commerce product description specialist who writes compelling, benefit-focused descriptions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,social_media_manager:`You are a creative social media manager who writes engaging, platform-specific posts in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,ux_writer:`You are a UX writer who creates clear, concise, and user-friendly interface text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,press_officer:`You are an experienced press officer who writes impactful press releases in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,legal_drafter:`You are a legal expert who drafts precise and compliant legal texts in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,recruiter:`You are a professional recruiter who writes compelling job descriptions and outreach messages in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,news_reporter:`You are a news reporter who writes objective and concise news articles in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,search_intent_analyst:`You are a keyword research expert who analyzes search intent from given keywords and writes in fluent {language}.`,keyword_generator:`You are a keyword research expert who generates related keywords in fluent {language}.`,long_tail_keyword_generator:`You are a keyword research expert who generates long-tail keywords in fluent {language}.`,seo_content_planner:`You are a market research expert and SEO strategist who develops a full SEO content plan in fluent {language}.`,blog_title_specialist:`You are an expert copywriter who writes catchy blog after titles in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_description_specialist:`You are an expert copywriter who writes compelling blog after descriptions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_outline_specialist:`You are an expert copywriter who creates structured content outlines in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_writer_from_outline:`You are an expert copywriter who writes complete blog posts from outlines in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_writer_from_topic:`You are an expert copywriter who writes complete blog posts from topics in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_intro_specialist:`You are an expert copywriter who writes engaging introductions using known copywriting frameworks in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,paragraph_writer:`You are an expert copywriter who writes single, impactful paragraphs in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,dictionary_writer:`You are a copywriter who writes concise and clear definitions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,creative_free_writer:`You are an expert copywriter who writes any kind of catchy text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`},Vc=class{static getRoles(){return Object.keys(Bc)}static getLangs(){return Object.values(Ac)}static getCountries(){return Object.values(kc)}static getVoices(){return Rc}static getStyles(){return zc}static defaults(){return{role:Fc,language:Mc(),country:jc(),voice:localStorage.getItem(`prompt.voice`)||Ic,style:localStorage.getItem(`prompt.style`)||Lc}}static parseRole(e,t={}){return E.parse({...this.defaults(),...t},Bc[e??this.defaults().role])}static parsePrompt(e,t={}){return E.parse({...this.defaults(),...t},e)}},Hc=e=>e.pricing!==void 0&&e.pricing.input===0&&e.pricing.output===0,Uc=(e,t)=>`${e}/${t}`,Wc=e=>{if(!e)return null;let t=e.indexOf(`/`);return t<=0||t===e.length-1?null:{provider:e.slice(0,t),model:e.slice(t+1)}},Gc=(0,n.createContext)(null),Kc=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(Gc.Provider,{value:i},r)},qc=e=>{let t=(0,n.useContext)(Gc);if(!t)return null;let r=e??t.defaultKey;return t.registry[r]??null},Jc=()=>(0,n.useContext)(Gc),Yc=`x-llmnative-proxy`,Xc=e=>{if(!e||e.startsWith(`/`))return!1;try{let t=new URL(e);if(typeof window<`u`){let e=new URL(window.location.href);if(t.origin===e.origin||[`localhost`,`127.0.0.1`].includes(t.hostname)&&[`localhost`,`127.0.0.1`].includes(e.hostname))return!1}return!0}catch{return!1}},Zc=null,Qc=e=>{Zc=e??null};gi(e=>{Qc(e.proxy)});var $c=(e,n,r)=>t.l(e)||[...new Headers(n instanceof Request?n.headers:r?.headers).values()].some(t.l),el=(e,t,n)=>$c(e,t,n)?Promise.reject(Error(`This AI provider uses credentials held by the server: enable the proxy (providers.proxy.enabled) so that the server adds the key.`)):globalThis.fetch(t,n),tl=(e,t)=>{let n=typeof e==`string`?e:e instanceof URL?e.toString():e.url;if(!Zc?.enabled)return el(n,e,t);if(!Xc(n)&&!$c(n,e,t))return globalThis.fetch(e,t);let r=Zc.route?.trim()||`/api/proxy`,i=`${r}${r.includes(`?`)?`&`:`?`}url=${encodeURIComponent(n)}`,a=e instanceof Request?e.headers:t?.headers,o=new Headers(a);o.set(Yc,`1`);let s=(e instanceof Request?e.method:t?.method??`GET`).toUpperCase(),c=[`GET`,`HEAD`].includes(s)?void 0:t?.body??(e instanceof Request?e.body:void 0);return globalThis.fetch(i,{method:s,headers:o,body:c,...c instanceof ReadableStream?{duplex:`half`}:{},signal:t?.signal??(e instanceof Request?e.signal:void 0)})},nl=()=>tl,rl=()=>!!Zc?.enabled,il=`ai.models.v3.`,al=864e5,ol=/claude-(?:fable|mythos|opus|sonnet|haiku)-(?:[5-9]|4-[6-9])(?![0-9])/,sl=/claude-(?:opus-4-[6-8]|sonnet-4-6)(?![0-9])/;function cl(e,t){return!t||!e||!ol.test(e)?{}:{output_config:{effort:t},...sl.test(e)?{thinking:{type:`adaptive`}}:{}}}var ll=/(?:^|\/)(?:o[1-9]|gpt-5)/i;function ul(e,t,n=`openai`){if(!t||!e)return{};let r=t===`max`?`high`:t;return n===`openrouter`?{reasoning:{effort:r}}:ll.test(e)?{reasoning_effort:r}:{}}var dl=e=>{if(e instanceof Error)return e.message;if(typeof e==`object`&&e){let t=e;if(t.error&&typeof t.error==`object`){let e=t.error;if(typeof e.message==`string`)return e.message;if(typeof e.type==`string`)return e.type}if(typeof t.error==`string`)return t.error;if(Array.isArray(t.errors)&&t.errors.length>0){let e=t.errors[0];if(e&&typeof e.message==`string`)return e.message}if(typeof t.message==`string`)return t.message;if(typeof t.detail==`string`)return t.detail;if(typeof t.status==`number`)return`HTTP ${t.status}`;try{return JSON.stringify(t)}catch{}}return String(e)},fl=e=>{let t=rl()?`The proxy is enabled but the request still failed - check that the proxy route is reachable.`:`No proxy is enabled. Cross-origin AI requests are blocked by CORS in the browser. Set VITE_PROXY_ENABLED=true and VITE_PROXY_PROVIDER=viteDevProxy to route requests server-side.`;return Error(`${e} request failed (CORS). ${t}`)},pl=e=>typeof e==`string`?e:Array.isArray(e)&&e.map(e=>typeof e==`string`?e:e&&typeof e==`object`&&`text`in e&&typeof e.text==`string`?e.text:``).filter(Boolean).join(`
5
5
  `)||null,ml=e=>{if(typeof localStorage>`u`)return null;try{let t=localStorage.getItem(`${il}${e}`);if(!t)return null;let n=JSON.parse(t);return!n.fetchedAt||!Array.isArray(n.items)||Date.now()-n.fetchedAt>al?null:n.items}catch{return null}},hl=(e,t)=>{if(typeof localStorage<`u`)try{localStorage.setItem(`${il}${e}`,JSON.stringify({fetchedAt:Date.now(),items:t}))}catch{}},gl=(e,t,n)=>n.map(n=>{let{model:r,pricing:i}=typeof n==`string`?{model:n,pricing:void 0}:n;return{id:Uc(e,r),provider:e,model:r,label:`${t} / ${r}`,providerLabel:t,...i?{pricing:i}:{}}}),_l=async(e,t=!1)=>{let n=await Promise.all(Object.entries(e).map(async([e,n])=>{try{return[e,await n.getCapabilities(t)]}catch(t){return console.warn(`getAIModelCatalog: provider "${e}" getCapabilities() failed`,t),[e,{models:[]}]}})),r=n.reduce((e,[t,n])=>(e[t]=n,e),{}),i=n.reduce((e,[t,n])=>(e[t]=n.models,e),{}),a=new Set;return{models:n.flatMap(([,e])=>e.models).filter(e=>!a.has(e.id)&&(a.add(e.id),!0)),modelsByProvider:i,capabilitiesByProvider:r}},vl=class{id;label;defaultModel;dashboardUrl;definition;apiKey;constructor(e,t){this.definition=e,this.id=e.id,this.label=e.label,this.defaultModel=e.defaultModel,this.dashboardUrl=e.dashboardUrl,this.apiKey=t}isConfigured(){return!!this.apiKey}getConfigurationState(){let e=this.definition.requiredConfigKeys??(this.definition.configKey?[`ai.${this.definition.configKey}`]:[]);return Vn(`AIProvider:${this.id}`,this.isConfigured()?[]:e)}async getCapabilities(e=!1){let n=e?null:ml(this.id);if(n)return{...this.definition.capabilities,models:n.map(e=>e.providerLabel?e:{...e,providerLabel:this.label})};let r=gl(this.id,this.label,this.definition.fallbackModels);try{let e=await this.definition.discoverModels(this.apiKey);e.length>0&&(r=gl(this.id,this.label,e))}catch(e){console.warn(`AIProvider:${this.id} model discovery failed`,e)}return r=await t.o(this.id,r),hl(this.id,r),{...this.definition.capabilities,models:r}}complete(e){return this.definition.complete(this.apiKey,{...e,model:e.model||this.defaultModel,prompt:Vc.parsePrompt(e.prompt,{...e.data,...e})})}async validateApiKey(){let e=this.definition.dashboardUrl;if(this.definition.validateApiKey)return{...await this.definition.validateApiKey(this.apiKey),dashboardUrl:e};try{return await this.definition.discoverModels(this.apiKey),{valid:!0,dashboardUrl:e}}catch(t){return{valid:!1,error:dl(t),dashboardUrl:e}}}},yl={"gpt-4o":128e3,"gpt-4o-mini":128e3,"gpt-4-turbo":128e3,"gpt-4":8192,"gpt-3.5-turbo":16385,"claude-opus-4-8":2e5,"claude-sonnet-4-6":2e5,"claude-haiku-4-5":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-haiku-20241022":2e5,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576,"deepseek-chat":64e3,"deepseek-coder":128e3,"mistral-large-latest":131072,"mistral-medium":32768,"mistral-small-latest":131072,"open-mistral-nemo":128e3,"llama-3.1-70b-instruct":131072,"llama-3.1-8b-instruct":131072},bl={"gpt-4o":[2.5,10],"gpt-4o-mini":[.15,.6],"gpt-4-turbo":[10,30],"gpt-4":[30,60],"gpt-3.5-turbo":[.5,1.5],"claude-opus-4-8":[15,75],"claude-sonnet-4-6":[3,15],"claude-haiku-4-5":[.8,4],"claude-3-5-sonnet-20241022":[3,15],"claude-3-5-haiku-20241022":[.8,4],"gemini-2.0-flash":[.1,.4],"gemini-1.5-pro":[1.25,5],"gemini-1.5-flash":[.075,.3],"deepseek-chat":[.14,.28],"mistral-large-latest":[2,6],"mistral-medium":[2.7,8.1],"mistral-small-latest":[.1,.3]},xl=e=>Wc(e)?.model??e,Sl=/^text\/|^application\/(json|csv|xml|javascript|typescript)/,Cl=e=>new Promise((t,n)=>{if(typeof FileReader>`u`){n(Error(`FileReader is not available in this environment.`));return}let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(r.error??Error(`Failed to read file "${e.name}".`)),r.readAsDataURL(e)}),wl={countTokens(e){return Math.ceil(e.length/4)},modelContextWindow(e){return yl[xl(e)]??null},contextPercent(e,t){let n=wl.modelContextWindow(t);return!n||n<=0?0:Math.min(100,e/n*100)},estimateCost(e,t,n){let r=bl[xl(n)];return r?(e*r[0]+t*r[1])/1e6:NaN},async fileToAttachment(e){let t=await Cl(e),n=t.includes(`,`)?t.split(`,`)[1]:``;return{mimeType:e.type||`application/octet-stream`,base64:n,name:e.name}},isTextAttachment(e){return Sl.test(e)},decodeBase64Text(e){try{let t=globalThis.atob(e),n=Uint8Array.from(t,e=>e.charCodeAt(0));return new TextDecoder(`utf-8`).decode(n)}catch{return``}}},Tl=10,El=e=>{if(e instanceof HTMLTextAreaElement)return!0;if(!(e instanceof HTMLInputElement))return!1;let t=e.type.toLowerCase();return t===``||[`text`,`search`,`email`,`url`,`tel`].includes(t)},Dl=e=>e.getClientRects().length>0&&window.getComputedStyle(e).visibility!==`hidden`,Ol=e=>Array.from(e.querySelectorAll(`textarea, input`)).filter(El),kl=(e,t)=>{let n=document.activeElement;if(El(n)&&e.contains(n)&&Dl(n))return n;if(t&&e.contains(t)&&Dl(t))return t;let r=Ol(e);return r.find(Dl)??r[0]??null},Al=({label:e,value:t,icon:r,description:i,className:a,onSelect:o,active:s})=>n.default.createElement(`button`,{type:`button`,role:`menuitem`,className:X(`flex w-full cursor-pointer select-none items-start gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground`,s&&`bg-accent text-accent-foreground`,a),title:i?`${e} — ${i}`:void 0,onMouseDown:n=>{n.preventDefault(),n.stopPropagation(),o?.({label:e,value:t,icon:r,description:i})}},r&&n.default.createElement(Q,{name:r,size:16,className:`mt-0.5 shrink-0 text-muted-foreground`}),n.default.createElement(`span`,{className:`min-w-0 flex-1 text-left`},n.default.createElement(`span`,{className:`block truncate`},e),i&&n.default.createElement(`span`,{className:`block truncate text-xs text-muted-foreground`},i))),jl=({children:e,className:t})=>n.default.createElement(`div`,{className:X(`sticky top-0 z-10 bg-popover px-2 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground`,t)},e),Ml=({className:e})=>n.default.createElement(`div`,{className:X(`-mx-1 my-1 h-px bg-border`,e)}),Nl=new Set([jl,Ml]),Pl=(e,t)=>{if(!t)return!1;let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return RegExp(`^\\s*${n}`).test(e)},Fl=(e,t)=>{if(!t)return 0;let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.match(RegExp(`^\\s*${n}`))?.[0].length??0},Il=(e,t,n,r)=>{if(!n)return null;let i=e.slice(0,t),a=i.lastIndexOf(n);if(a===-1)return null;if(r?.requireWhitespacePrefix){let e=a===0?``:i[a-1];if(e&&!/\s/.test(e))return null}let o=i.slice(a+n.length);return(r?.queryPattern?!r.queryPattern.test(o):/\s/.test(o))?null:{query:o,start:a,end:t}},Ll=(e,t,n)=>Il(e,t,n),Rl=e=>({value:e.value.slice(0,e.triggerRange.start)+e.value.slice(e.triggerRange.end),textBeforeCaret:e.value.slice(0,e.triggerRange.start),textAfterCaret:e.value.slice(e.triggerRange.end),trigger:e.trigger,query:e.query}),zl=(e,t)=>{let n=window.getComputedStyle(e),r=e.getBoundingClientRect(),i=parseFloat(n.lineHeight)||20,a=parseFloat(n.borderLeftWidth)||0,o=parseFloat(n.paddingLeft)||0,s=e.value.slice(0,t.start),c=s.lastIndexOf(`
6
6
  `)+1,l=e.value.slice(c,t.start),u=s.split(`
7
- `).length-1,d=document.createElement(`span`);d.style.all=`initial`;for(let e of[`fontFamily`,`fontSize`,`fontWeight`,`fontStyle`,`fontVariant`,`letterSpacing`,`wordSpacing`,`lineHeight`,`textAlign`,`textIndent`,`textRendering`,`textTransform`,`whiteSpace`,`wordBreak`,`wordWrap`]){let t=n.getPropertyValue(e);t&&d.style.setProperty(e,t)}d.style.whiteSpace=`pre`,d.style.position=`absolute`,d.style.visibility=`hidden`,d.style.pointerEvents=`none`,d.style.margin=`0`,d.style.padding=`0`,d.style.border=`0`,d.textContent=l,document.body.appendChild(d);let f=d.offsetWidth;return document.body.removeChild(d),{left:r.left+a+o+f-e.scrollLeft,top:r.top+(u+1)*i-e.scrollTop}},Bl=(e,t)=>{let n=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),`value`)?.set;n?n.call(e,t):e.value=t},Vl=(e,t)=>{let n=e.selectionStart??e.value.length,r=e.selectionEnd??n,i=e.value;return Ll(i,n,t)?((n,r,i=r)=>{let a=Ll(n,r,t)??{query:``,start:r,end:r};return{value:n,textBeforeCaret:n.slice(0,r),textAfterCaret:n.slice(i),trigger:t,query:a.query,triggerRange:{start:a.start,end:a.end},insert:t=>{let r=e.selectionStart??n.length,i=e.selectionEnd??r;Bl(e,n.slice(0,r)+t+n.slice(i)),e.dispatchEvent(new Event(`input`,{bubbles:!0})),e.selectionStart=e.selectionEnd=r+t.length,e.focus()},replace:(t,r,i)=>{Bl(e,n.slice(0,t)+i+n.slice(r)),e.dispatchEvent(new Event(`input`,{bubbles:!0})),e.selectionStart=e.selectionEnd=t+i.length,e.focus()}}})(i,n,r):null},Hl=(0,n.forwardRef)(({trigger:e,searchable:t=!1,controlled:r,onSelect:i,children:a,before:o,after:s,wrapperClassName:l,className:u},d)=>{let f=(0,n.useId)(),p=(0,n.useRef)(null),m=(0,n.useRef)(null),h=(0,n.useRef)(null),[g,_]=(0,n.useState)(0),[v,y]=(0,n.useState)({open:!1,anchorPosition:null,query:``,editorContext:null}),b=(0,n.useMemo)(()=>{let e=[];return n.default.Children.forEach(a,t=>{n.default.isValidElement(t)&&t.type===Al&&e.push({label:t.props.label,value:t.props.value,icon:t.props.icon,description:t.props.description})}),e},[a]),x=r?{open:r.open,anchorPosition:r.anchorPosition,query:r.query,editorContext:r.editorContext}:v,S=(0,n.useMemo)(()=>{if(!x.query)return b;let e=x.query.toLowerCase();return b.filter(t=>t.label.toLowerCase().includes(e)||t.value.toLowerCase().includes(e)||(t.description?.toLowerCase().includes(e)??!1))},[b,x.query]),C=(0,n.useCallback)(()=>{if(r){r.onClose();return}y({open:!1,anchorPosition:null,query:``,editorContext:null})},[r]),w=(0,n.useCallback)(e=>{let t=x.editorContext;t&&(i?i(e,t):t.replace(t.triggerRange.start,t.triggerRange.end,e.value),C())},[C,i,x.editorContext]);(0,n.useImperativeHandle)(d,()=>({moveNext:()=>{x.open&&S.length!==0&&_(e=>(e+1)%S.length)},movePrev:()=>{x.open&&S.length!==0&&_(e=>(e-1+S.length)%S.length)},selectActive:()=>{x.open&&S.length!==0&&w(S[g]??S[0])},close:()=>{C()}}),[g,C,S,x.open,w]),(0,n.useEffect)(()=>{_(0)},[x.query]),(0,n.useEffect)(()=>{if(r)return;let t=p.current;if(!t)return;let n=Ol(t);if(n.length===0)return;h.current=kl(t,h.current);let i=()=>{let n=kl(t,h.current);if(!n)return;h.current=n;let r=n.selectionStart??n.value.length,i=Ll(n.value,r,e);if(!i){y(e=>e.open?{open:!1,anchorPosition:null,query:``,editorContext:null}:e);return}let a=zl(n,i),o=Vl(n,e);a&&o&&y({open:!0,anchorPosition:a,query:i.query,editorContext:o})},a=e=>{let t=e;if(v.open)switch(t.key){case`ArrowDown`:if(S.length===0)return;t.preventDefault(),_(e=>(e+1)%S.length);return;case`ArrowUp`:if(S.length===0)return;t.preventDefault(),_(e=>(e-1+S.length)%S.length);return;case`Enter`:case`Tab`:if(S.length===0)return;t.preventDefault(),w(S[g]??S[0]);return;case`Escape`:t.preventDefault(),C();return;default:return}},o=e=>{let t=e;[`ArrowDown`,`ArrowUp`,`Enter`,`Tab`,`Escape`].includes(t.key)||i()},s=()=>{i()},c=e=>{let n=El(e.target)?e.target:null;h.current=n&&Dl(n)?n:kl(t,h.current),i()},l=()=>{window.setTimeout(()=>{let e=document.activeElement,t=m.current?.contains(e),n=p.current?.contains(e);!t&&!n&&C()},0)};return t.addEventListener(`focusin`,c),n.forEach(e=>{e.addEventListener(`keydown`,a),e.addEventListener(`keyup`,o),e.addEventListener(`input`,o),e.addEventListener(`change`,o),e.addEventListener(`click`,s),e.addEventListener(`blur`,l)}),()=>{t.removeEventListener(`focusin`,c),n.forEach(e=>{e.removeEventListener(`keydown`,a),e.removeEventListener(`keyup`,o),e.removeEventListener(`input`,o),e.removeEventListener(`change`,o),e.removeEventListener(`click`,s),e.removeEventListener(`blur`,l)})}},[g,C,r,S,v.open,w,e]),(0,n.useEffect)(()=>{if(!x.open)return;let e=e=>{let t=e.target,n=p.current?.contains(t),r=m.current?.contains(t);!n&&!r&&C()};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[C,x.open]);let{domChildren:T,renderedItems:E}=(0,n.useMemo)(()=>{let e=[],t=[],r=-1;return n.default.Children.forEach(a,i=>{if(!n.default.isValidElement(i)){e.push(i);return}if(i.type===Al){let e=i.props;if(S.findIndex(t=>t.label===e.label&&t.value===e.value&&t.icon===e.icon)===-1)return;r+=1,t.push(n.default.cloneElement(i,{onSelect:w,active:r===g}));return}if(Nl.has(i.type)){t.push(i);return}e.push(i)}),{domChildren:e,renderedItems:t}},[g,a,S,w]);return n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{ref:p,className:X(u,l)},o,T,s),x.open&&x.anchorPosition&&S.length>0&&(0,c.createPortal)(n.default.createElement(`div`,{ref:m,role:`menu`,id:f,className:`fixed z-[200] min-w-44 max-w-[min(28rem,calc(100vw-1rem))] overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md outline-none`,style:{top:x.anchorPosition.top,left:x.anchorPosition.left,maxHeight:240}},n.default.createElement(`div`,{className:`p-1`},E)),document.body))});Hl.displayName=`ContextMenu`,Hl.Item=Al,Hl.Heading=jl,Hl.Separator=Ml;var Ul=e=>{let t=new Map;for(let n of e){let e=t.get(n.group);e?e.push(n):t.set(n.group,[n])}return[...t].map(([e,t])=>({group:e,badge:t.find(e=>e.groupBadge)?.groupBadge,options:t}))},Wl=e=>e===0?`0`:String(Number(e<.01?e.toPrecision(2):e.toFixed(e<1?3:2))),Gl=e=>!!(e.pricing&&e.pricing.input===0&&e.pricing.output===0),Kl=`h-7 w-7 cursor-pointer rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,ql=`sticky -top-1 z-10 -mx-1 border-b border-border/60 bg-popover px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground`,Jl=`gap-3`,Yl=`gap-3 bg-success/10 hover:bg-success/20 focus:bg-success/20`,Xl=`ml-auto shrink-0 whitespace-nowrap text-xs tabular-nums text-muted-foreground`,Zl=`ml-auto shrink-0 whitespace-nowrap text-xs italic text-warning`,Ql=`h-7 max-w-[140px] rounded-md px-2 text-xs gap-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground truncate`,$l=`w-full resize-none border-0 bg-transparent px-4 py-3 text-sm shadow-none outline-none focus-visible:ring-0 placeholder:text-muted-foreground`;function eu(e){return e?(e.includes(`/`)?e.split(`/`).pop():e)||e:null}function tu({name:e,value:t,onChange:r,placeholder:i,running:a=!1,onStop:o,disabled:s=!1,onSubmit:c,attachments:l=!1,commands:u,commandsTrigger:d,models:f=[],selectedModel:p,onModelChange:m,modelPlaceholder:h,showSettings:g=!1,defaultRole:_=``,defaultVoice:v=``,defaultStyle:y=``,defaultLanguage:b=``,defaultTemperature:x,actions:S,minHeight:C=96,maxHeight:w=220,wrapperClassName:T,className:E}){let D=J(`prompt`),O=Y(`prompt`),k=(0,n.useRef)(null),A=(0,n.useRef)(null),j=(0,n.useId)(),[M,N]=(0,n.useState)([]),[P,F]=(0,n.useState)(!1),I=(0,n.useRef)(0),[L,R]=(0,n.useState)(!1),[z,B]=(0,n.useState)(_),[ee,V]=(0,n.useState)(v),[H,te]=(0,n.useState)(y),[ne,re]=(0,n.useState)(b),[ie,U]=(0,n.useState)(x);(0,n.useEffect)(()=>{a||R(!1)},[a]),(0,n.useEffect)(()=>()=>{M.forEach(({objectUrl:e})=>URL.revokeObjectURL(e))},[M]);let W=(0,n.useCallback)(e=>{N(t=>(URL.revokeObjectURL(t[e].objectUrl),t.filter((t,n)=>n!==e)))},[]),ae=(0,n.useCallback)(e=>{let t=Array.from(e).map(e=>({file:e,objectUrl:URL.createObjectURL(e)}));N(e=>[...e,...t])},[]),oe=(0,n.useCallback)(e=>{l&&e.dataTransfer.types.includes(`Files`)&&(e.preventDefault(),I.current+=1,F(!0))},[l]),se=(0,n.useCallback)(e=>{l&&e.dataTransfer.types.includes(`Files`)&&e.preventDefault()},[l]),ce=(0,n.useCallback)(e=>{l&&(e.preventDefault(),I.current=Math.max(0,I.current-1),I.current===0&&F(!1))},[l]),G=(0,n.useCallback)(e=>{l&&(e.preventDefault(),I.current=0,F(!1),e.dataTransfer.files.length&&ae(e.dataTransfer.files))},[l,ae]),le=Ko({minHeight:C,maxHeight:w});(0,n.useEffect)(()=>{let e=k.current;if(!e)return;e.style.height=`auto`;let t=Math.max(e.scrollHeight,le.resolvedMinHeight),n=le.resolvedMaxHeight?Math.min(t,le.resolvedMaxHeight):t;e.style.height=`${n}px`,e.style.overflowY=le.resolvedMaxHeight&&t>le.resolvedMaxHeight?`auto`:`hidden`},[t,le.resolvedMinHeight,le.resolvedMaxHeight]);let ue=u?.length?d??`/`:void 0,K=(u?.length??0)>=10,de=n.default.useMemo(()=>new Map((u??[]).map(e=>[e.name,e])),[u]),fe=n.default.useMemo(()=>(u??[]).map(e=>({key:e.name,label:`${ue??`/`}${e.name}`,value:e.name,icon:e.icon,description:e.description})),[u,ue]),pe=(0,n.useCallback)(async(e,t)=>{let n=de.get(e.value);if(n){if(n.handler){let e=await n.handler(Rl(t)),r=n.consumeSuffix?Fl(t.textAfterCaret,n.consumeSuffix):0;t.replace(t.triggerRange.start,t.triggerRange.end+r,e);return}t.replace(t.triggerRange.start,t.triggerRange.end,`${t.trigger}${n.name} `)}},[de]),me=f.find(e=>e.value===p)?.label??eu(p),he=()=>{s||a||(c({text:t,files:M.map(e=>e.file),model:p??``,...g?{role:z,voice:ee,style:H,language:ne,temperature:ie}:{}}),M.forEach(({objectUrl:e})=>URL.revokeObjectURL(e)),N([]))},ge=()=>{if(a){R(!0),o?.();return}he()},_e=n.default.createElement(`textarea`,{id:j,name:e,ref:k,value:t,onChange:e=>r(e.target.value),placeholder:i,className:E||$l,style:{maxHeight:w},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&!e.nativeEvent.defaultPrevented&&(e.preventDefault(),ge())}});return n.default.createElement(Z,{className:T||D.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`group relative rounded-xl border shadow-sm transition-shadow focus-within:shadow-md focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-0 ${P?`border-primary ring-2 ring-primary`:`border-input`}`,onDragEnter:oe,onDragOver:se,onDragLeave:ce,onDrop:G},l&&P&&n.default.createElement(`div`,{className:`pointer-events-none absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-primary/5`},n.default.createElement(`div`,{className:`flex items-center gap-2 rounded-lg bg-background px-3 py-1.5 text-xs font-medium text-primary shadow`},n.default.createElement(Q,{name:`paperclip`,size:13}),O.dropFilesHere)),n.default.createElement(`div`,{className:`overflow-hidden rounded-t-xl`},M.length>0&&n.default.createElement(`div`,{className:`flex gap-2 overflow-x-auto border-b border-input px-3 py-2.5`},M.map(({file:e,objectUrl:t},r)=>n.default.createElement(`div`,{key:t,className:`relative shrink-0`},e.type.startsWith(`image/`)?n.default.createElement(`div`,{className:`h-16 w-16 overflow-hidden rounded-lg border border-input bg-muted/30`},n.default.createElement(`img`,{src:t,alt:e.name,className:`h-full w-full object-cover`})):n.default.createElement(`div`,{className:`flex items-center gap-2 rounded-lg border border-input bg-muted/30 px-2.5 py-2 text-xs`},n.default.createElement(Q,{name:`file-text`,size:18,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`div`,{className:`max-w-[100px]`},n.default.createElement(`p`,{className:`truncate font-medium text-foreground`},e.name),n.default.createElement(`p`,{className:`text-muted-foreground`},(e.size/1024).toFixed(0),` KB`))),n.default.createElement(`button`,{type:`button`,className:`absolute -right-1.5 -top-1.5 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full bg-foreground text-background shadow`,onClick:()=>W(r)},n.default.createElement(Q,{name:`x`,size:9}))))),ue&&fe.length>0?n.default.createElement(Hl,{trigger:ue,searchable:K,onSelect:(e,t)=>{pe(e,t)}},fe.map(e=>n.default.createElement(Hl.Item,{key:e.key,label:e.label,value:e.value,icon:e.icon,description:e.description})),_e):_e),l&&n.default.createElement(`input`,{ref:A,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{e.target.files&&(ae(e.target.files),e.target.value=``)}}),n.default.createElement(`div`,{className:`relative flex items-center gap-1 rounded-b-xl border-t border-input px-2 py-1`},(l||(S?.length??0)>0)&&n.default.createElement(n.default.Fragment,null,l&&n.default.createElement(`button`,{type:`button`,title:O.attachFiles,className:`${Kl} flex items-center justify-center`,onClick:()=>A.current?.click()},n.default.createElement(Q,{name:`paperclip`,size:13})),S?.map(e=>e.content?n.default.createElement(kr,{key:e.key,trigger:{icon:e.icon,title:e.label},placement:`top`,position:`start`,triggerClassName:Kl},e.content):n.default.createElement(`button`,{key:e.key,type:`button`,title:e.label,"aria-label":e.label,disabled:e.disabled,onClick:e.onClick,className:e.showLabel&&e.label?`${Kl} flex w-auto items-center gap-1.5 px-2 text-xs disabled:cursor-not-allowed disabled:opacity-50`:`${Kl} flex items-center justify-center disabled:cursor-not-allowed disabled:opacity-50`},n.default.createElement(Q,{name:e.icon,size:13}),e.showLabel&&e.label&&n.default.createElement(`span`,{className:`whitespace-nowrap`},e.label))),n.default.createElement(`div`,{className:`mx-1 h-4 w-px shrink-0 bg-border`})),f.length>0&&n.default.createElement(kr,{trigger:{icon:`cpu`,text:me??h??O.defaultOption},placement:`top`,position:`start`,triggerClassName:Ql},Ul(f).map(({group:e,badge:t,options:r})=>n.default.createElement(n.default.Fragment,{key:e??``},e!==void 0&&n.default.createElement(Nr,{className:ql},t?n.default.createElement(`span`,{className:`flex items-center justify-between gap-2`},n.default.createElement(`span`,{className:`min-w-0 truncate`},e),n.default.createElement(Mt,{variant:t.variant??`light`},t.label)):e),r.map(e=>n.default.createElement(Mr,{key:e.value,onClick:()=>m?.(e.value),className:Gl(e)?Yl:e.pricing===void 0?void 0:Jl},n.default.createElement(`span`,{className:`min-w-0`},e.label),e.pricing?n.default.createElement(`span`,{className:Xl,title:O.modelPricing},`$`,Wl(e.pricing.input),` / $`,Wl(e.pricing.output)):e.pricing===null?n.default.createElement(`span`,{className:Zl},O.modelPriceNotFound):null))))),g&&n.default.createElement(n.default.Fragment,null,n.default.createElement(kr,{trigger:{icon:`user`,title:O.role},placement:`top`,position:`start`,triggerClassName:Kl},n.default.createElement(Mr,{onClick:()=>B(``)},O.defaultOption),Vc.getRoles().map(e=>n.default.createElement(Mr,{key:e,onClick:()=>B(e)},e))),n.default.createElement(kr,{trigger:{icon:`globe`,title:O.language},placement:`top`,position:`start`,triggerClassName:Kl},n.default.createElement(Mr,{onClick:()=>re(``)},O.defaultOption),Vc.getLangs().map(e=>n.default.createElement(Mr,{key:e,onClick:()=>re(e)},e))),n.default.createElement(kr,{trigger:{icon:`mic`,title:O.voice},placement:`top`,position:`start`,triggerClassName:Kl},n.default.createElement(Mr,{onClick:()=>V(``)},O.defaultOption),Vc.getVoices().map(e=>n.default.createElement(Mr,{key:e,onClick:()=>V(e)},e))),n.default.createElement(kr,{trigger:{icon:`feather`,title:O.style},placement:`top`,position:`start`,triggerClassName:Kl},n.default.createElement(Mr,{onClick:()=>te(``)},O.defaultOption),Vc.getStyles().map(e=>n.default.createElement(Mr,{key:e,onClick:()=>te(e)},e))),n.default.createElement(kr,{trigger:{icon:`thermometer`,title:O.temperature},placement:`top`,position:`start`,triggerClassName:Kl},n.default.createElement(Mr,null,n.default.createElement(`input`,{type:`range`,"aria-label":O.temperature,min:0,max:1,step:.1,value:ie??0,onChange:e=>U(Number(e.target.value)),className:`w-full cursor-pointer accent-primary`})))),n.default.createElement(`div`,{className:`flex-1`}),n.default.createElement(`button`,{type:`button`,onClick:ge,disabled:a?!o:s,title:L?O.stopping:a?O.stop:O.run,"aria-label":L?O.stopping:a?O.stop:O.run,className:`flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${a?`bg-destructive text-destructive-foreground hover:bg-destructive/90`:`bg-primary text-primary-foreground hover:bg-primary/90`}`},L||a&&!o?n.default.createElement(`span`,{className:`inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):n.default.createElement(Q,{name:a?`square`:`send`,size:14})))))}var nu=function(e){return e.EDIT=`edit`,e.RUN=`run`,e}({}),ru=`space-y-2`,iu=`flex items-center justify-between gap-3`,au=`mb-0 min-w-0 text-sm font-medium leading-5 text-foreground`,ou=`ml-auto shrink-0`,su=()=>[],cu=(e,t=`Prompt execution failed.`)=>{if(e instanceof Error&&e.message)return e.message;if(typeof e==`string`)return e;if(e&&typeof e==`object`){if(`reason`in e&&typeof e.reason==`string`)return e.reason;if(`error`in e&&typeof e.error==`string`)return e.error;if(`message`in e&&typeof e.message==`string`)return e.message}return t},lu=({htmlFor:e,label:t,required:r=!1,action:i})=>n.default.createElement(`div`,{className:iu},n.default.createElement(ws,{htmlFor:e,label:t,required:r,className:au}),i?n.default.createElement(`div`,{className:ou},i):null);function uu(){let e=Jc(),[t,r]=(0,n.useState)({modelOptions:su(),capabilitiesByProvider:{}});return(0,n.useEffect)(()=>{let t=!1;return(async()=>{if(!e||Object.keys(e.registry).length===0){t||r({modelOptions:su(),capabilitiesByProvider:{}});return}let n=await _l(e.registry);if(t)return;let i=n.models.map(e=>({label:e.model,value:e.id,pricing:e.pricing??null,group:e.providerLabel??e.provider}));r({modelOptions:i.length>0?i:su(),capabilitiesByProvider:n.capabilitiesByProvider})})(),()=>{t=!0}},[e]),t}function du(e,t=!1){let n=qc(),r=Jc(),i=Wc(e),a=Object.keys(r?.registry??{}),o=i?.provider??n?.id??(r?.defaultKey&&a.includes(r.defaultKey)?r.defaultKey:null),s=o?r?.registry[o]??(n?.id===o?n:null):n??null;if(t)return{provider:s,providerId:o,configured:!0};if(a.length===0&&!s)return{provider:null,providerId:null,configured:!1,reason:void 0};let c=Hn(s,o?`AI provider "${o}"`:`AI provider`);return{provider:s,providerId:o,configured:c.configured,reason:c.reason}}var fu=({mode:e,availability:t,renderAIUnavailable:r})=>{let i=Y(`prompt`);if(t.configured)return null;let a=r?.({mode:e,providerId:t.providerId,reason:t.reason,configured:t.configured});return a==null?n.default.createElement(Da,{variant:`warning`,icon:`warning`,className:`text-xs leading-5`},e===`edit`?t.reason||i.aiNotConfiguredEdit:t.reason||i.aiNotConfiguredRun):n.default.createElement(n.default.Fragment,null,a)},pu=({mode:e=`edit`,...t})=>{let{value:r}=Rd({name:t.name}),i=typeof r==`object`&&r&&!Array.isArray(r)?r:void 0,a=mu(i?.prompt?.enabled,t.defaultValue?.enabled,i?.prompt);return e===`edit`?n.default.createElement(gu,{...t,value:i}):a?n.default.createElement(bu,{...t,value:i}):n.default.createElement(xu,t)},mu=(e,t,n)=>typeof e==`string`?e===`on`||e===`true`:typeof e==`boolean`?e:typeof e==`number`?e!==0:n&&typeof n==`object`?!1:!!t,hu=(e,t)=>e?t.toggleOnTitle:t.toggleOffTitle,gu=({name:e,label:t=void 0,value:r=void 0,required:i=!1,onChange:a=void 0,defaultValue:o=void 0,minHeight:s=160,maxHeight:c=240,before:l=void 0,after:u=void 0,wrapperClassName:d=void 0,className:f=void 0,renderAIUnavailable:p=void 0})=>{let{handleChange:m}=Rd({name:e}),h=J(`prompt`),g=Y(`prompt`),_=t||e,v=mu(r?.prompt?.enabled,o?.enabled,r?.prompt),y=hu(v,g),b=(0,n.useId)(),x=du(r?.prompt?.model?.toString()||o?.model);return n.default.createElement(Z,{className:d||h.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},l&&n.default.createElement(`div`,{className:`shrink-0`},l),n.default.createElement(`div`,{className:`${ru} min-w-0 flex-1`},n.default.createElement(lu,{htmlFor:b,label:v?n.default.createElement(n.default.Fragment,null,g.promptLabel,_):_,required:i,action:n.default.createElement(Cs,{name:e+`.prompt.enabled`,ariaLabel:y,title:y,defaultValue:v?`on`:``,inheritWrapperClassName:!1,onChange:({event:t})=>{m({target:{name:e+`.prompt.value`,value:t.target.value&&o?.value}})}})}),n.default.createElement(Ts,{id:b,className:f||h.Prompt.className,name:e+(v?`.prompt.value`:`.value`),defaultValue:v?o?.value:void 0,onChange:a,required:i,inheritWrapperClassName:!1,wrapperClassName:``,minHeight:s,maxHeight:c}),n.default.createElement(fu,{mode:`edit`,availability:x,renderAIUnavailable:p})),u&&n.default.createElement(`div`,{className:`shrink-0`},u)))},_u=`border-0 shadow-none rounded-none focus-visible:ring-0 resize-none`,vu=`h-7 w-7 cursor-pointer rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,yu=(e,t)=>({value:String(e?.value??t?.value??``),role:String(e?.role??t?.role??``),language:String(e?.language??t?.language??``),voice:String(e?.voice??t?.voice??``),style:String(e?.style??t?.style??``),model:String(e?.model??t?.model??``),temperature:typeof e?.temperature==`number`?e.temperature:t?.temperature}),bu=({name:e,label:t,value:r,required:i,onChange:a,defaultValue:o,minHeight:s=120,maxHeight:c=160,before:l,after:u,wrapperClassName:d,className:f,onRunPrompt:p,renderAIUnavailable:m,variables:h,commands:g,commandsTrigger:_,attachments:v,actions:y,statusItems:b})=>{let{handleChange:x,record:S}=Rd({name:e,subscribeToFullRecord:!0}),C=J(`prompt`),w=Y(`prompt`),T=t||e,[E,D]=(0,n.useState)(!1),[O,k]=(0,n.useState)(o?.value??``),[A,j]=(0,n.useState)(!1),[M,N]=(0,n.useState)(null),P=qc(),F=Jc(),{modelOptions:I}=uu(),L=typeof localStorage<`u`?localStorage.getItem(`prompt.model`):null,R=L&&I.some(e=>e.value===L)?L:``,z=n.default.useMemo(()=>yu(r?.prompt,o),[o,r?.prompt]),B=z.model||R,ee=(0,n.useId)(),V=du(B,!!p),H=!V.configured||!p&&!B,[te,ne]=(0,n.useState)(null),re=!te&&!V.configured?m?.({mode:`run`,providerId:V.providerId,reason:V.reason,configured:V.configured}):null,ie=n.default.useMemo(()=>{if(!O)return``;let e={...S,...h};return Vc.parsePrompt(O,e)},[O,S,h]),U=ie!==O,W=(e,t)=>x?.({target:{name:e,value:t}}),ae=y?.map(e=>e.key===`tokenUsage`&&!e.content?{...e,content:M?n.default.createElement(`div`,{className:`px-3 py-2 text-xs space-y-1`},n.default.createElement(`p`,{className:`font-medium text-foreground`},w.tokenUsage),n.default.createElement(`p`,{className:`text-muted-foreground`},ot(w.tokenInput,{count:String(M.tokensIn)})),n.default.createElement(`p`,{className:`text-muted-foreground`},ot(w.tokenOutput,{count:String(M.tokensOut)})),M.contextPercent!==null&&n.default.createElement(`p`,{className:`text-muted-foreground`},ot(w.tokenContext,{percent:M.contextPercent.toFixed(1)})),M.estimatedCost!==null&&n.default.createElement(`p`,{className:`text-muted-foreground`},ot(w.tokenCost,{amount:M.estimatedCost.toFixed(5)})),n.default.createElement(`p`,{className:`text-muted-foreground`},ot(w.tokenTime,{seconds:(M.durationMs/1e3).toFixed(1)}))):n.default.createElement(`p`,{className:`px-3 py-2 text-xs text-muted-foreground`},w.tokenUsageEmpty)}:e),oe=async t=>{let n=t.model||B||R,r=Wc(n),i=r?F?.registry[r.provider]??P??void 0:P??void 0,a=Date.now();try{let r={...S,...h},o=await Promise.all(t.files.map(e=>wl.fileToAttachment(e))),s=await Su({...z,model:n,role:t.role??z.role,voice:t.voice??z.voice,style:t.style??z.style,language:t.language??z.language,temperature:t.temperature??z.temperature},r,p,i,o.length>0?o:void 0,{noProvider:w.noProvider,noResponse:w.noResponse}),c=Date.now()-a;if(ne(null),x?.({target:{name:e+`.value`,value:s}}),t.role!==void 0&&W(e+`.prompt.role`,t.role),t.voice!==void 0&&W(e+`.prompt.voice`,t.voice),t.style!==void 0&&W(e+`.prompt.style`,t.style),t.language!==void 0&&W(e+`.prompt.language`,t.language),b&&b.length>0){let e=Vc.parsePrompt(z.value??``,r),t=wl.countTokens(e),i=wl.countTokens(s??``),a=wl.contextPercent(t,n),o=wl.estimateCost(t,i,n);N({tokensIn:t,tokensOut:i,contextPercent:a>0?a:null,model:n,durationMs:c,estimatedCost:isFinite(o)?o:null})}}catch(e){ne(cu(e,w.runFailed))}};return n.default.createElement(Z,{className:d||C.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},l&&n.default.createElement(`div`,{className:`shrink-0`},l),n.default.createElement(`div`,{className:`${ru} min-w-0 flex-1`},T&&n.default.createElement(lu,{htmlFor:ee,label:E?n.default.createElement(n.default.Fragment,null,w.promptLabel,T):T,required:i}),n.default.createElement(`div`,{className:`group relative`},n.default.createElement(`button`,{type:`button`,title:E?w.closeEditor:w.editSettings,className:`absolute right-2 top-2 z-10 flex h-6 w-6 items-center justify-center rounded-md transition-all ${E?`bg-warning/10 text-warning opacity-100`:`bg-background/80 text-muted-foreground opacity-0 group-hover:opacity-100 hover:bg-muted hover:text-foreground`}`,onClick:()=>D(e=>!e)},n.default.createElement(Q,{name:E?`x`:`settings`,size:13})),E?n.default.createElement(`div`,{className:`overflow-hidden rounded-xl border border-input shadow-sm transition-shadow focus-within:shadow-md focus-within:ring-2 focus-within:ring-warning focus-within:ring-offset-0`},n.default.createElement(Ts,{id:ee,name:e+`.prompt.value`,defaultValue:o?.value,onChange:e=>{k(String(e.event.target.value??``)),a?.(e)},required:!0,inheritWrapperClassName:!1,wrapperClassName:``,className:`${f||C.Prompt.className} ${_u}`,minHeight:s,maxHeight:c}),U&&A&&n.default.createElement(`div`,{className:`border-t border-input px-4 py-3 bg-muted/20`},n.default.createElement(`p`,{className:`whitespace-pre-wrap text-sm text-foreground/70`},ie)),U&&n.default.createElement(`div`,{className:`flex items-center justify-end border-t border-input px-2 py-1`},n.default.createElement(`button`,{type:`button`,title:A?w.hidePreview:w.showPreview,className:`${vu} flex items-center justify-center ${A?`bg-muted text-foreground`:``}`,onClick:()=>j(e=>!e)},n.default.createElement(Q,{name:A?`eye-off`:`eye`,size:13})))):n.default.createElement(n.default.Fragment,null,n.default.createElement(tu,{name:e+`.value`,value:r?.value===void 0?``:String(r.value),onChange:t=>{x?.({target:{name:e+`.value`,value:t}}),a?.({event:{target:{name:e+`.value`,value:t}},name:e+`.value`,value:t,record:S??{},onChange:x??(()=>{})})},disabled:H,onSubmit:e=>{oe(e)},attachments:v,commands:g,commandsTrigger:_,models:I,selectedModel:B,onModelChange:t=>W(e+`.prompt.model`,t),showSettings:!0,defaultRole:z.role,defaultVoice:z.voice,defaultStyle:z.style,defaultLanguage:z.language,defaultTemperature:z.temperature,actions:ae,minHeight:s,maxHeight:c,className:f||C.Prompt.className,wrapperClassName:``}),(te||!V.configured)&&(re?n.default.createElement(`div`,{className:`mt-1`},re):n.default.createElement(`span`,{className:`mt-1 flex min-w-0 items-center gap-1 text-xs text-warning`},n.default.createElement(Q,{name:`triangle-alert`,size:13,className:`shrink-0`}),n.default.createElement(`span`,{className:`truncate`},te??(V.reason||w.aiNotConfiguredShort)))),b&&b.length>0&&M&&n.default.createElement(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-3 gap-y-0.5 rounded-lg border border-input/50 bg-muted/20 px-4 py-1.5 text-[11px] text-muted-foreground`},b.map(e=>{if(typeof e==`string`)switch(e){case`tokensIn`:return n.default.createElement(`span`,{key:`tokensIn`},ot(w.tokenInput,{count:M.tokensIn}));case`tokensOut`:return n.default.createElement(`span`,{key:`tokensOut`},ot(w.tokenOutput,{count:M.tokensOut}));case`contextPercent`:return M.contextPercent===null?null:n.default.createElement(`span`,{key:`ctx`},ot(w.tokenContext,{percent:M.contextPercent.toFixed(1)}));case`model`:return n.default.createElement(`span`,{key:`model`,className:`font-mono`},(Wc(M.model)?.model||M.model).split(`/`).pop());case`duration`:return n.default.createElement(`span`,{key:`dur`},ot(w.tokenTime,{seconds:(M.durationMs/1e3).toFixed(1)}));default:return null}return n.default.createElement(`span`,{key:e.key},e.render(M))}),M.estimatedCost!==null&&!b.some(e=>typeof e==`object`&&e.key===`cost`)&&n.default.createElement(`span`,{className:`ml-auto font-mono`},`~$`,M.estimatedCost.toFixed(5)))))),u&&n.default.createElement(`div`,{className:`shrink-0`},u)))},xu=({name:e,label:t,required:r,onChange:i,minHeight:a=96,maxHeight:o=120,before:s,after:c,wrapperClassName:l,className:u,renderFallback:d})=>{let f=J(`prompt`),p=(0,n.useId)();return n.default.createElement(Z,{className:l||f.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},s&&n.default.createElement(`div`,{className:`shrink-0`},s),n.default.createElement(`div`,{className:`min-w-0 flex-1`},d?.({name:e,label:t,required:r,onChange:i})??n.default.createElement(`div`,{className:ru},t&&n.default.createElement(lu,{htmlFor:p,label:t,required:r}),n.default.createElement(Ts,{id:p,className:u||f.Prompt.className,name:e+`.value`,onChange:i,required:r,inheritWrapperClassName:!1,wrapperClassName:``,minHeight:a,maxHeight:o}))),c&&n.default.createElement(`div`,{className:`shrink-0`},c)))},Su=async(e,t,n,r,i,a)=>{let{value:o,model:s,...c}=e??{};if(n)return n(o,{...c,model:s,attachments:i},t);if(!o)return``;if(!r)throw Error(a?.noProvider??`No AI provider is available for this prompt.`);let l=Wc(s)?.model||s||r.defaultModel,u=await r.complete({...c,model:l,prompt:[Nc,o,Pc].join(`
7
+ `).length-1,d=document.createElement(`span`);d.style.all=`initial`;for(let e of[`fontFamily`,`fontSize`,`fontWeight`,`fontStyle`,`fontVariant`,`letterSpacing`,`wordSpacing`,`lineHeight`,`textAlign`,`textIndent`,`textRendering`,`textTransform`,`whiteSpace`,`wordBreak`,`wordWrap`]){let t=n.getPropertyValue(e);t&&d.style.setProperty(e,t)}d.style.whiteSpace=`pre`,d.style.position=`absolute`,d.style.visibility=`hidden`,d.style.pointerEvents=`none`,d.style.margin=`0`,d.style.padding=`0`,d.style.border=`0`,d.textContent=l,document.body.appendChild(d);let f=d.offsetWidth;return document.body.removeChild(d),{left:r.left+a+o+f-e.scrollLeft,top:r.top+(u+1)*i-e.scrollTop}},Bl=(e,t)=>{let n=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),`value`)?.set;n?n.call(e,t):e.value=t},Vl=(e,t)=>{let n=e.selectionStart??e.value.length,r=e.selectionEnd??n,i=e.value;return Ll(i,n,t)?((n,r,i=r)=>{let a=Ll(n,r,t)??{query:``,start:r,end:r};return{value:n,textBeforeCaret:n.slice(0,r),textAfterCaret:n.slice(i),trigger:t,query:a.query,triggerRange:{start:a.start,end:a.end},insert:t=>{let r=e.selectionStart??n.length,i=e.selectionEnd??r;Bl(e,n.slice(0,r)+t+n.slice(i)),e.dispatchEvent(new Event(`input`,{bubbles:!0})),e.selectionStart=e.selectionEnd=r+t.length,e.focus()},replace:(t,r,i)=>{Bl(e,n.slice(0,t)+i+n.slice(r)),e.dispatchEvent(new Event(`input`,{bubbles:!0})),e.selectionStart=e.selectionEnd=t+i.length,e.focus()}}})(i,n,r):null},Hl=(0,n.forwardRef)(({trigger:e,searchable:t=!1,controlled:r,onSelect:i,children:a,before:o,after:s,wrapperClassName:l,className:u},d)=>{let f=(0,n.useId)(),p=(0,n.useRef)(null),m=(0,n.useRef)(null),h=(0,n.useRef)(null),[g,_]=(0,n.useState)(0),[v,y]=(0,n.useState)({open:!1,anchorPosition:null,query:``,editorContext:null}),b=(0,n.useMemo)(()=>{let e=[];return n.default.Children.forEach(a,t=>{n.default.isValidElement(t)&&t.type===Al&&e.push({label:t.props.label,value:t.props.value,icon:t.props.icon,description:t.props.description})}),e},[a]),x=r?{open:r.open,anchorPosition:r.anchorPosition,query:r.query,editorContext:r.editorContext}:v,S=(0,n.useMemo)(()=>{if(!x.query)return b;let e=x.query.toLowerCase();return b.filter(t=>t.label.toLowerCase().includes(e)||t.value.toLowerCase().includes(e)||(t.description?.toLowerCase().includes(e)??!1))},[b,x.query]),C=(0,n.useCallback)(()=>{if(r){r.onClose();return}y({open:!1,anchorPosition:null,query:``,editorContext:null})},[r]),w=(0,n.useCallback)(e=>{let t=x.editorContext;t&&(i?i(e,t):t.replace(t.triggerRange.start,t.triggerRange.end,e.value),C())},[C,i,x.editorContext]);(0,n.useImperativeHandle)(d,()=>({moveNext:()=>{x.open&&S.length!==0&&_(e=>(e+1)%S.length)},movePrev:()=>{x.open&&S.length!==0&&_(e=>(e-1+S.length)%S.length)},selectActive:()=>{x.open&&S.length!==0&&w(S[g]??S[0])},close:()=>{C()}}),[g,C,S,x.open,w]),(0,n.useEffect)(()=>{_(0)},[x.query]),(0,n.useEffect)(()=>{if(r)return;let t=p.current;if(!t)return;let n=Ol(t);if(n.length===0)return;h.current=kl(t,h.current);let i=()=>{let n=kl(t,h.current);if(!n)return;h.current=n;let r=n.selectionStart??n.value.length,i=Ll(n.value,r,e);if(!i){y(e=>e.open?{open:!1,anchorPosition:null,query:``,editorContext:null}:e);return}let a=zl(n,i),o=Vl(n,e);a&&o&&y({open:!0,anchorPosition:a,query:i.query,editorContext:o})},a=e=>{let t=e;if(v.open)switch(t.key){case`ArrowDown`:if(S.length===0)return;t.preventDefault(),_(e=>(e+1)%S.length);return;case`ArrowUp`:if(S.length===0)return;t.preventDefault(),_(e=>(e-1+S.length)%S.length);return;case`Enter`:case`Tab`:if(S.length===0)return;t.preventDefault(),w(S[g]??S[0]);return;case`Escape`:t.preventDefault(),C();return;default:return}},o=e=>{let t=e;[`ArrowDown`,`ArrowUp`,`Enter`,`Tab`,`Escape`].includes(t.key)||i()},s=()=>{i()},c=e=>{let n=El(e.target)?e.target:null;h.current=n&&Dl(n)?n:kl(t,h.current),i()},l=()=>{window.setTimeout(()=>{let e=document.activeElement,t=m.current?.contains(e),n=p.current?.contains(e);!t&&!n&&C()},0)};return t.addEventListener(`focusin`,c),n.forEach(e=>{e.addEventListener(`keydown`,a),e.addEventListener(`keyup`,o),e.addEventListener(`input`,o),e.addEventListener(`change`,o),e.addEventListener(`click`,s),e.addEventListener(`blur`,l)}),()=>{t.removeEventListener(`focusin`,c),n.forEach(e=>{e.removeEventListener(`keydown`,a),e.removeEventListener(`keyup`,o),e.removeEventListener(`input`,o),e.removeEventListener(`change`,o),e.removeEventListener(`click`,s),e.removeEventListener(`blur`,l)})}},[g,C,r,S,v.open,w,e]),(0,n.useEffect)(()=>{if(!x.open)return;let e=e=>{let t=e.target,n=p.current?.contains(t),r=m.current?.contains(t);!n&&!r&&C()};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[C,x.open]);let{domChildren:T,renderedItems:E}=(0,n.useMemo)(()=>{let e=[],t=[],r=-1;return n.default.Children.forEach(a,i=>{if(!n.default.isValidElement(i)){e.push(i);return}if(i.type===Al){let e=i.props;if(S.findIndex(t=>t.label===e.label&&t.value===e.value&&t.icon===e.icon)===-1)return;r+=1,t.push(n.default.cloneElement(i,{onSelect:w,active:r===g}));return}if(Nl.has(i.type)){t.push(i);return}e.push(i)}),{domChildren:e,renderedItems:t}},[g,a,S,w]);return n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{ref:p,className:X(u,l)},o,T,s),x.open&&x.anchorPosition&&S.length>0&&(0,c.createPortal)(n.default.createElement(`div`,{ref:m,role:`menu`,id:f,className:`fixed z-[200] min-w-44 max-w-[min(28rem,calc(100vw-1rem))] overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md outline-none`,style:{top:x.anchorPosition.top,left:x.anchorPosition.left,maxHeight:240}},n.default.createElement(`div`,{className:`p-1`},E)),document.body))});Hl.displayName=`ContextMenu`,Hl.Item=Al,Hl.Heading=jl,Hl.Separator=Ml;var Ul=e=>{let t=new Map;for(let n of e){let e=t.get(n.group);e?e.push(n):t.set(n.group,[n])}return[...t].map(([e,t])=>({group:e,badge:t.find(e=>e.groupBadge)?.groupBadge,options:t}))},Wl=e=>e===0?`0`:String(Number(e<.01?e.toPrecision(2):e.toFixed(e<1?3:2))),Gl=e=>!!(e.pricing&&e.pricing.input===0&&e.pricing.output===0),Kl=`h-7 w-7 cursor-pointer rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,ql=`sticky -top-1 z-10 -mx-1 border-b border-border/60 bg-popover px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground`,Jl=`gap-3`,Yl=`gap-3 bg-success/10 hover:bg-success/20 focus:bg-success/20`,Xl=`ml-auto shrink-0 whitespace-nowrap text-xs tabular-nums text-muted-foreground`,Zl=`ml-auto shrink-0 whitespace-nowrap text-xs italic text-warning`,Ql=`h-7 max-w-[140px] rounded-md px-2 text-xs gap-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground truncate`,$l=`w-full resize-none border-0 bg-transparent px-4 py-3 text-sm shadow-none outline-none focus-visible:ring-0 placeholder:text-muted-foreground`;function eu(e){return e?(e.includes(`/`)?e.split(`/`).pop():e)||e:null}function tu({name:e,value:t,onChange:r,placeholder:i,running:a=!1,onStop:o,disabled:s=!1,onSubmit:c,attachments:l=!1,commands:u,commandsTrigger:d,models:f=[],selectedModel:p,onModelChange:m,modelPlaceholder:h,showSettings:g=!1,defaultRole:_=``,defaultVoice:v=``,defaultStyle:y=``,defaultLanguage:b=``,defaultTemperature:x,actions:S,minHeight:C=96,maxHeight:w=220,wrapperClassName:T,className:E}){let D=J(`prompt`),O=Y(`prompt`),k=(0,n.useRef)(null),A=(0,n.useRef)(null),j=(0,n.useId)(),[M,N]=(0,n.useState)([]),[P,F]=(0,n.useState)(!1),I=(0,n.useRef)(0),[L,R]=(0,n.useState)(!1),[z,B]=(0,n.useState)(_),[ee,V]=(0,n.useState)(v),[H,te]=(0,n.useState)(y),[ne,re]=(0,n.useState)(b),[ie,U]=(0,n.useState)(x);(0,n.useEffect)(()=>{a||R(!1)},[a]),(0,n.useEffect)(()=>()=>{M.forEach(({objectUrl:e})=>URL.revokeObjectURL(e))},[M]);let W=(0,n.useCallback)(e=>{N(t=>(URL.revokeObjectURL(t[e].objectUrl),t.filter((t,n)=>n!==e)))},[]),ae=(0,n.useCallback)(e=>{let t=Array.from(e).map(e=>({file:e,objectUrl:URL.createObjectURL(e)}));N(e=>[...e,...t])},[]),oe=(0,n.useCallback)(e=>{if(!l)return;let t=Array.from(e.clipboardData.items).filter(e=>e.kind===`file`).map(e=>e.getAsFile()).filter(e=>!!e);if(!t.length)return;e.preventDefault();let n=new Date().toISOString().replace(/\D/g,``).slice(0,14);ae(t.map((e,r)=>!e.name||e.name===`image.png`?new File([e],`pasted-${n}${t.length>1?`-${r+1}`:``}.${(e.type.split(`/`)[1]||`png`).replace(`jpeg`,`jpg`)}`,{type:e.type}):e))},[l,ae]),se=(0,n.useCallback)(e=>{l&&e.dataTransfer.types.includes(`Files`)&&(e.preventDefault(),I.current+=1,F(!0))},[l]),ce=(0,n.useCallback)(e=>{l&&e.dataTransfer.types.includes(`Files`)&&e.preventDefault()},[l]),G=(0,n.useCallback)(e=>{l&&(e.preventDefault(),I.current=Math.max(0,I.current-1),I.current===0&&F(!1))},[l]),le=(0,n.useCallback)(e=>{l&&(e.preventDefault(),I.current=0,F(!1),e.dataTransfer.files.length&&ae(e.dataTransfer.files))},[l,ae]),ue=Ko({minHeight:C,maxHeight:w});(0,n.useEffect)(()=>{let e=k.current;if(!e)return;e.style.height=`auto`;let t=Math.max(e.scrollHeight,ue.resolvedMinHeight),n=ue.resolvedMaxHeight?Math.min(t,ue.resolvedMaxHeight):t;e.style.height=`${n}px`,e.style.overflowY=ue.resolvedMaxHeight&&t>ue.resolvedMaxHeight?`auto`:`hidden`},[t,ue.resolvedMinHeight,ue.resolvedMaxHeight]);let K=u?.length?d??`/`:void 0,de=(u?.length??0)>=10,fe=n.default.useMemo(()=>new Map((u??[]).map(e=>[e.name,e])),[u]),pe=n.default.useMemo(()=>(u??[]).map(e=>({key:e.name,label:`${K??`/`}${e.name}`,value:e.name,icon:e.icon,description:e.description})),[u,K]),me=(0,n.useCallback)(async(e,t)=>{let n=fe.get(e.value);if(n){if(n.handler){let e=await n.handler(Rl(t)),r=n.consumeSuffix?Fl(t.textAfterCaret,n.consumeSuffix):0;t.replace(t.triggerRange.start,t.triggerRange.end+r,e);return}t.replace(t.triggerRange.start,t.triggerRange.end,`${t.trigger}${n.name} `)}},[fe]),he=f.find(e=>e.value===p)?.label??eu(p),ge=()=>{s||a||(c({text:t,files:M.map(e=>e.file),model:p??``,...g?{role:z,voice:ee,style:H,language:ne,temperature:ie}:{}}),M.forEach(({objectUrl:e})=>URL.revokeObjectURL(e)),N([]))},_e=()=>{if(a){R(!0),o?.();return}ge()},ve=n.default.createElement(`textarea`,{id:j,name:e,ref:k,value:t,onChange:e=>r(e.target.value),onPaste:oe,placeholder:i,className:E||$l,style:{maxHeight:w},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&!e.nativeEvent.defaultPrevented&&(e.preventDefault(),_e())}});return n.default.createElement(Z,{className:T||D.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`group relative rounded-xl border shadow-sm transition-shadow focus-within:shadow-md focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-0 ${P?`border-primary ring-2 ring-primary`:`border-input`}`,onDragEnter:se,onDragOver:ce,onDragLeave:G,onDrop:le},l&&P&&n.default.createElement(`div`,{className:`pointer-events-none absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-primary/5`},n.default.createElement(`div`,{className:`flex items-center gap-2 rounded-lg bg-background px-3 py-1.5 text-xs font-medium text-primary shadow`},n.default.createElement(Q,{name:`paperclip`,size:13}),O.dropFilesHere)),n.default.createElement(`div`,{className:`overflow-hidden rounded-t-xl`},M.length>0&&n.default.createElement(`div`,{className:`flex gap-2 overflow-x-auto border-b border-input px-3 py-2.5`},M.map(({file:e,objectUrl:t},r)=>n.default.createElement(`div`,{key:t,className:`relative shrink-0`},e.type.startsWith(`image/`)?n.default.createElement(`div`,{className:`h-16 w-16 overflow-hidden rounded-lg border border-input bg-muted/30`},n.default.createElement(`img`,{src:t,alt:e.name,className:`h-full w-full object-cover`})):n.default.createElement(`div`,{className:`flex items-center gap-2 rounded-lg border border-input bg-muted/30 px-2.5 py-2 text-xs`},n.default.createElement(Q,{name:`file-text`,size:18,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`div`,{className:`max-w-[100px]`},n.default.createElement(`p`,{className:`truncate font-medium text-foreground`},e.name),n.default.createElement(`p`,{className:`text-muted-foreground`},(e.size/1024).toFixed(0),` KB`))),n.default.createElement(`button`,{type:`button`,className:`absolute -right-1.5 -top-1.5 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full bg-foreground text-background shadow`,onClick:()=>W(r)},n.default.createElement(Q,{name:`x`,size:9}))))),K&&pe.length>0?n.default.createElement(Hl,{trigger:K,searchable:de,onSelect:(e,t)=>{me(e,t)}},pe.map(e=>n.default.createElement(Hl.Item,{key:e.key,label:e.label,value:e.value,icon:e.icon,description:e.description})),ve):ve),l&&n.default.createElement(`input`,{ref:A,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{e.target.files&&(ae(e.target.files),e.target.value=``)}}),n.default.createElement(`div`,{className:`relative flex items-center gap-1 rounded-b-xl border-t border-input px-2 py-1`},(l||(S?.length??0)>0)&&n.default.createElement(n.default.Fragment,null,l&&n.default.createElement(`button`,{type:`button`,title:O.attachFiles,className:`${Kl} flex items-center justify-center`,onClick:()=>A.current?.click()},n.default.createElement(Q,{name:`paperclip`,size:13})),S?.map(e=>e.content?n.default.createElement(kr,{key:e.key,trigger:{icon:e.icon,title:e.label},placement:`top`,position:`start`,triggerClassName:Kl},e.content):n.default.createElement(`button`,{key:e.key,type:`button`,title:e.label,"aria-label":e.label,disabled:e.disabled,onClick:e.onClick,className:e.showLabel&&e.label?`${Kl} flex w-auto items-center gap-1.5 px-2 text-xs disabled:cursor-not-allowed disabled:opacity-50`:`${Kl} flex items-center justify-center disabled:cursor-not-allowed disabled:opacity-50`},n.default.createElement(Q,{name:e.icon,size:13}),e.showLabel&&e.label&&n.default.createElement(`span`,{className:`whitespace-nowrap`},e.label))),n.default.createElement(`div`,{className:`mx-1 h-4 w-px shrink-0 bg-border`})),f.length>0&&n.default.createElement(kr,{trigger:{icon:`cpu`,text:he??h??O.defaultOption},placement:`top`,position:`start`,triggerClassName:Ql},Ul(f).map(({group:e,badge:t,options:r})=>n.default.createElement(n.default.Fragment,{key:e??``},e!==void 0&&n.default.createElement(Nr,{className:ql},t?n.default.createElement(`span`,{className:`flex items-center justify-between gap-2`},n.default.createElement(`span`,{className:`min-w-0 truncate`},e),n.default.createElement(Mt,{variant:t.variant??`light`},t.label)):e),r.map(e=>n.default.createElement(Mr,{key:e.value,onClick:()=>m?.(e.value),className:Gl(e)?Yl:e.pricing===void 0?void 0:Jl},n.default.createElement(`span`,{className:`min-w-0`},e.label),e.pricing?n.default.createElement(`span`,{className:Xl,title:O.modelPricing},`$`,Wl(e.pricing.input),` / $`,Wl(e.pricing.output)):e.pricing===null?n.default.createElement(`span`,{className:Zl},O.modelPriceNotFound):null))))),g&&n.default.createElement(n.default.Fragment,null,n.default.createElement(kr,{trigger:{icon:`user`,title:O.role},placement:`top`,position:`start`,triggerClassName:Kl},n.default.createElement(Mr,{onClick:()=>B(``)},O.defaultOption),Vc.getRoles().map(e=>n.default.createElement(Mr,{key:e,onClick:()=>B(e)},e))),n.default.createElement(kr,{trigger:{icon:`globe`,title:O.language},placement:`top`,position:`start`,triggerClassName:Kl},n.default.createElement(Mr,{onClick:()=>re(``)},O.defaultOption),Vc.getLangs().map(e=>n.default.createElement(Mr,{key:e,onClick:()=>re(e)},e))),n.default.createElement(kr,{trigger:{icon:`mic`,title:O.voice},placement:`top`,position:`start`,triggerClassName:Kl},n.default.createElement(Mr,{onClick:()=>V(``)},O.defaultOption),Vc.getVoices().map(e=>n.default.createElement(Mr,{key:e,onClick:()=>V(e)},e))),n.default.createElement(kr,{trigger:{icon:`feather`,title:O.style},placement:`top`,position:`start`,triggerClassName:Kl},n.default.createElement(Mr,{onClick:()=>te(``)},O.defaultOption),Vc.getStyles().map(e=>n.default.createElement(Mr,{key:e,onClick:()=>te(e)},e))),n.default.createElement(kr,{trigger:{icon:`thermometer`,title:O.temperature},placement:`top`,position:`start`,triggerClassName:Kl},n.default.createElement(Mr,null,n.default.createElement(`input`,{type:`range`,"aria-label":O.temperature,min:0,max:1,step:.1,value:ie??0,onChange:e=>U(Number(e.target.value)),className:`w-full cursor-pointer accent-primary`})))),n.default.createElement(`div`,{className:`flex-1`}),n.default.createElement(`button`,{type:`button`,onClick:_e,disabled:a?!o:s,title:L?O.stopping:a?O.stop:O.run,"aria-label":L?O.stopping:a?O.stop:O.run,className:`flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${a?`bg-destructive text-destructive-foreground hover:bg-destructive/90`:`bg-primary text-primary-foreground hover:bg-primary/90`}`},L||a&&!o?n.default.createElement(`span`,{className:`inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):n.default.createElement(Q,{name:a?`square`:`send`,size:14})))))}var nu=function(e){return e.EDIT=`edit`,e.RUN=`run`,e}({}),ru=`space-y-2`,iu=`flex items-center justify-between gap-3`,au=`mb-0 min-w-0 text-sm font-medium leading-5 text-foreground`,ou=`ml-auto shrink-0`,su=()=>[],cu=(e,t=`Prompt execution failed.`)=>{if(e instanceof Error&&e.message)return e.message;if(typeof e==`string`)return e;if(e&&typeof e==`object`){if(`reason`in e&&typeof e.reason==`string`)return e.reason;if(`error`in e&&typeof e.error==`string`)return e.error;if(`message`in e&&typeof e.message==`string`)return e.message}return t},lu=({htmlFor:e,label:t,required:r=!1,action:i})=>n.default.createElement(`div`,{className:iu},n.default.createElement(ws,{htmlFor:e,label:t,required:r,className:au}),i?n.default.createElement(`div`,{className:ou},i):null);function uu(){let e=Jc(),[t,r]=(0,n.useState)({modelOptions:su(),capabilitiesByProvider:{}});return(0,n.useEffect)(()=>{let t=!1;return(async()=>{if(!e||Object.keys(e.registry).length===0){t||r({modelOptions:su(),capabilitiesByProvider:{}});return}let n=await _l(e.registry);if(t)return;let i=n.models.map(e=>({label:e.model,value:e.id,pricing:e.pricing??null,group:e.providerLabel??e.provider}));r({modelOptions:i.length>0?i:su(),capabilitiesByProvider:n.capabilitiesByProvider})})(),()=>{t=!0}},[e]),t}function du(e,t=!1){let n=qc(),r=Jc(),i=Wc(e),a=Object.keys(r?.registry??{}),o=i?.provider??n?.id??(r?.defaultKey&&a.includes(r.defaultKey)?r.defaultKey:null),s=o?r?.registry[o]??(n?.id===o?n:null):n??null;if(t)return{provider:s,providerId:o,configured:!0};if(a.length===0&&!s)return{provider:null,providerId:null,configured:!1,reason:void 0};let c=Hn(s,o?`AI provider "${o}"`:`AI provider`);return{provider:s,providerId:o,configured:c.configured,reason:c.reason}}var fu=({mode:e,availability:t,renderAIUnavailable:r})=>{let i=Y(`prompt`);if(t.configured)return null;let a=r?.({mode:e,providerId:t.providerId,reason:t.reason,configured:t.configured});return a==null?n.default.createElement(Da,{variant:`warning`,icon:`warning`,className:`text-xs leading-5`},e===`edit`?t.reason||i.aiNotConfiguredEdit:t.reason||i.aiNotConfiguredRun):n.default.createElement(n.default.Fragment,null,a)},pu=({mode:e=`edit`,...t})=>{let{value:r}=Rd({name:t.name}),i=typeof r==`object`&&r&&!Array.isArray(r)?r:void 0,a=mu(i?.prompt?.enabled,t.defaultValue?.enabled,i?.prompt);return e===`edit`?n.default.createElement(gu,{...t,value:i}):a?n.default.createElement(bu,{...t,value:i}):n.default.createElement(xu,t)},mu=(e,t,n)=>typeof e==`string`?e===`on`||e===`true`:typeof e==`boolean`?e:typeof e==`number`?e!==0:n&&typeof n==`object`?!1:!!t,hu=(e,t)=>e?t.toggleOnTitle:t.toggleOffTitle,gu=({name:e,label:t=void 0,value:r=void 0,required:i=!1,onChange:a=void 0,defaultValue:o=void 0,minHeight:s=160,maxHeight:c=240,before:l=void 0,after:u=void 0,wrapperClassName:d=void 0,className:f=void 0,renderAIUnavailable:p=void 0})=>{let{handleChange:m}=Rd({name:e}),h=J(`prompt`),g=Y(`prompt`),_=t||e,v=mu(r?.prompt?.enabled,o?.enabled,r?.prompt),y=hu(v,g),b=(0,n.useId)(),x=du(r?.prompt?.model?.toString()||o?.model);return n.default.createElement(Z,{className:d||h.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},l&&n.default.createElement(`div`,{className:`shrink-0`},l),n.default.createElement(`div`,{className:`${ru} min-w-0 flex-1`},n.default.createElement(lu,{htmlFor:b,label:v?n.default.createElement(n.default.Fragment,null,g.promptLabel,_):_,required:i,action:n.default.createElement(Cs,{name:e+`.prompt.enabled`,ariaLabel:y,title:y,defaultValue:v?`on`:``,inheritWrapperClassName:!1,onChange:({event:t})=>{m({target:{name:e+`.prompt.value`,value:t.target.value&&o?.value}})}})}),n.default.createElement(Ts,{id:b,className:f||h.Prompt.className,name:e+(v?`.prompt.value`:`.value`),defaultValue:v?o?.value:void 0,onChange:a,required:i,inheritWrapperClassName:!1,wrapperClassName:``,minHeight:s,maxHeight:c}),n.default.createElement(fu,{mode:`edit`,availability:x,renderAIUnavailable:p})),u&&n.default.createElement(`div`,{className:`shrink-0`},u)))},_u=`border-0 shadow-none rounded-none focus-visible:ring-0 resize-none`,vu=`h-7 w-7 cursor-pointer rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,yu=(e,t)=>({value:String(e?.value??t?.value??``),role:String(e?.role??t?.role??``),language:String(e?.language??t?.language??``),voice:String(e?.voice??t?.voice??``),style:String(e?.style??t?.style??``),model:String(e?.model??t?.model??``),temperature:typeof e?.temperature==`number`?e.temperature:t?.temperature}),bu=({name:e,label:t,value:r,required:i,onChange:a,defaultValue:o,minHeight:s=120,maxHeight:c=160,before:l,after:u,wrapperClassName:d,className:f,onRunPrompt:p,renderAIUnavailable:m,variables:h,commands:g,commandsTrigger:_,attachments:v,actions:y,statusItems:b})=>{let{handleChange:x,record:S}=Rd({name:e,subscribeToFullRecord:!0}),C=J(`prompt`),w=Y(`prompt`),T=t||e,[E,D]=(0,n.useState)(!1),[O,k]=(0,n.useState)(o?.value??``),[A,j]=(0,n.useState)(!1),[M,N]=(0,n.useState)(null),P=qc(),F=Jc(),{modelOptions:I}=uu(),L=typeof localStorage<`u`?localStorage.getItem(`prompt.model`):null,R=L&&I.some(e=>e.value===L)?L:``,z=n.default.useMemo(()=>yu(r?.prompt,o),[o,r?.prompt]),B=z.model||R,ee=(0,n.useId)(),V=du(B,!!p),H=!V.configured||!p&&!B,[te,ne]=(0,n.useState)(null),re=!te&&!V.configured?m?.({mode:`run`,providerId:V.providerId,reason:V.reason,configured:V.configured}):null,ie=n.default.useMemo(()=>{if(!O)return``;let e={...S,...h};return Vc.parsePrompt(O,e)},[O,S,h]),U=ie!==O,W=(e,t)=>x?.({target:{name:e,value:t}}),ae=y?.map(e=>e.key===`tokenUsage`&&!e.content?{...e,content:M?n.default.createElement(`div`,{className:`px-3 py-2 text-xs space-y-1`},n.default.createElement(`p`,{className:`font-medium text-foreground`},w.tokenUsage),n.default.createElement(`p`,{className:`text-muted-foreground`},ot(w.tokenInput,{count:String(M.tokensIn)})),n.default.createElement(`p`,{className:`text-muted-foreground`},ot(w.tokenOutput,{count:String(M.tokensOut)})),M.contextPercent!==null&&n.default.createElement(`p`,{className:`text-muted-foreground`},ot(w.tokenContext,{percent:M.contextPercent.toFixed(1)})),M.estimatedCost!==null&&n.default.createElement(`p`,{className:`text-muted-foreground`},ot(w.tokenCost,{amount:M.estimatedCost.toFixed(5)})),n.default.createElement(`p`,{className:`text-muted-foreground`},ot(w.tokenTime,{seconds:(M.durationMs/1e3).toFixed(1)}))):n.default.createElement(`p`,{className:`px-3 py-2 text-xs text-muted-foreground`},w.tokenUsageEmpty)}:e),oe=async t=>{let n=t.model||B||R,r=Wc(n),i=r?F?.registry[r.provider]??P??void 0:P??void 0,a=Date.now();try{let r={...S,...h},o=await Promise.all(t.files.map(e=>wl.fileToAttachment(e))),s=await Su({...z,model:n,role:t.role??z.role,voice:t.voice??z.voice,style:t.style??z.style,language:t.language??z.language,temperature:t.temperature??z.temperature},r,p,i,o.length>0?o:void 0,{noProvider:w.noProvider,noResponse:w.noResponse}),c=Date.now()-a;if(ne(null),x?.({target:{name:e+`.value`,value:s}}),t.role!==void 0&&W(e+`.prompt.role`,t.role),t.voice!==void 0&&W(e+`.prompt.voice`,t.voice),t.style!==void 0&&W(e+`.prompt.style`,t.style),t.language!==void 0&&W(e+`.prompt.language`,t.language),b&&b.length>0){let e=Vc.parsePrompt(z.value??``,r),t=wl.countTokens(e),i=wl.countTokens(s??``),a=wl.contextPercent(t,n),o=wl.estimateCost(t,i,n);N({tokensIn:t,tokensOut:i,contextPercent:a>0?a:null,model:n,durationMs:c,estimatedCost:isFinite(o)?o:null})}}catch(e){ne(cu(e,w.runFailed))}};return n.default.createElement(Z,{className:d||C.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},l&&n.default.createElement(`div`,{className:`shrink-0`},l),n.default.createElement(`div`,{className:`${ru} min-w-0 flex-1`},T&&n.default.createElement(lu,{htmlFor:ee,label:E?n.default.createElement(n.default.Fragment,null,w.promptLabel,T):T,required:i}),n.default.createElement(`div`,{className:`group relative`},n.default.createElement(`button`,{type:`button`,title:E?w.closeEditor:w.editSettings,className:`absolute right-2 top-2 z-10 flex h-6 w-6 items-center justify-center rounded-md transition-all ${E?`bg-warning/10 text-warning opacity-100`:`bg-background/80 text-muted-foreground opacity-0 group-hover:opacity-100 hover:bg-muted hover:text-foreground`}`,onClick:()=>D(e=>!e)},n.default.createElement(Q,{name:E?`x`:`settings`,size:13})),E?n.default.createElement(`div`,{className:`overflow-hidden rounded-xl border border-input shadow-sm transition-shadow focus-within:shadow-md focus-within:ring-2 focus-within:ring-warning focus-within:ring-offset-0`},n.default.createElement(Ts,{id:ee,name:e+`.prompt.value`,defaultValue:o?.value,onChange:e=>{k(String(e.event.target.value??``)),a?.(e)},required:!0,inheritWrapperClassName:!1,wrapperClassName:``,className:`${f||C.Prompt.className} ${_u}`,minHeight:s,maxHeight:c}),U&&A&&n.default.createElement(`div`,{className:`border-t border-input px-4 py-3 bg-muted/20`},n.default.createElement(`p`,{className:`whitespace-pre-wrap text-sm text-foreground/70`},ie)),U&&n.default.createElement(`div`,{className:`flex items-center justify-end border-t border-input px-2 py-1`},n.default.createElement(`button`,{type:`button`,title:A?w.hidePreview:w.showPreview,className:`${vu} flex items-center justify-center ${A?`bg-muted text-foreground`:``}`,onClick:()=>j(e=>!e)},n.default.createElement(Q,{name:A?`eye-off`:`eye`,size:13})))):n.default.createElement(n.default.Fragment,null,n.default.createElement(tu,{name:e+`.value`,value:r?.value===void 0?``:String(r.value),onChange:t=>{x?.({target:{name:e+`.value`,value:t}}),a?.({event:{target:{name:e+`.value`,value:t}},name:e+`.value`,value:t,record:S??{},onChange:x??(()=>{})})},disabled:H,onSubmit:e=>{oe(e)},attachments:v,commands:g,commandsTrigger:_,models:I,selectedModel:B,onModelChange:t=>W(e+`.prompt.model`,t),showSettings:!0,defaultRole:z.role,defaultVoice:z.voice,defaultStyle:z.style,defaultLanguage:z.language,defaultTemperature:z.temperature,actions:ae,minHeight:s,maxHeight:c,className:f||C.Prompt.className,wrapperClassName:``}),(te||!V.configured)&&(re?n.default.createElement(`div`,{className:`mt-1`},re):n.default.createElement(`span`,{className:`mt-1 flex min-w-0 items-center gap-1 text-xs text-warning`},n.default.createElement(Q,{name:`triangle-alert`,size:13,className:`shrink-0`}),n.default.createElement(`span`,{className:`truncate`},te??(V.reason||w.aiNotConfiguredShort)))),b&&b.length>0&&M&&n.default.createElement(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-3 gap-y-0.5 rounded-lg border border-input/50 bg-muted/20 px-4 py-1.5 text-[11px] text-muted-foreground`},b.map(e=>{if(typeof e==`string`)switch(e){case`tokensIn`:return n.default.createElement(`span`,{key:`tokensIn`},ot(w.tokenInput,{count:M.tokensIn}));case`tokensOut`:return n.default.createElement(`span`,{key:`tokensOut`},ot(w.tokenOutput,{count:M.tokensOut}));case`contextPercent`:return M.contextPercent===null?null:n.default.createElement(`span`,{key:`ctx`},ot(w.tokenContext,{percent:M.contextPercent.toFixed(1)}));case`model`:return n.default.createElement(`span`,{key:`model`,className:`font-mono`},(Wc(M.model)?.model||M.model).split(`/`).pop());case`duration`:return n.default.createElement(`span`,{key:`dur`},ot(w.tokenTime,{seconds:(M.durationMs/1e3).toFixed(1)}));default:return null}return n.default.createElement(`span`,{key:e.key},e.render(M))}),M.estimatedCost!==null&&!b.some(e=>typeof e==`object`&&e.key===`cost`)&&n.default.createElement(`span`,{className:`ml-auto font-mono`},`~$`,M.estimatedCost.toFixed(5)))))),u&&n.default.createElement(`div`,{className:`shrink-0`},u)))},xu=({name:e,label:t,required:r,onChange:i,minHeight:a=96,maxHeight:o=120,before:s,after:c,wrapperClassName:l,className:u,renderFallback:d})=>{let f=J(`prompt`),p=(0,n.useId)();return n.default.createElement(Z,{className:l||f.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},s&&n.default.createElement(`div`,{className:`shrink-0`},s),n.default.createElement(`div`,{className:`min-w-0 flex-1`},d?.({name:e,label:t,required:r,onChange:i})??n.default.createElement(`div`,{className:ru},t&&n.default.createElement(lu,{htmlFor:p,label:t,required:r}),n.default.createElement(Ts,{id:p,className:u||f.Prompt.className,name:e+`.value`,onChange:i,required:r,inheritWrapperClassName:!1,wrapperClassName:``,minHeight:a,maxHeight:o}))),c&&n.default.createElement(`div`,{className:`shrink-0`},c)))},Su=async(e,t,n,r,i,a)=>{let{value:o,model:s,...c}=e??{};if(n)return n(o,{...c,model:s,attachments:i},t);if(!o)return``;if(!r)throw Error(a?.noProvider??`No AI provider is available for this prompt.`);let l=Wc(s)?.model||s||r.defaultModel,u=await r.complete({...c,model:l,prompt:[Nc,o,Pc].join(`
8
8
  `),data:t,attachments:i});if(u?.type!==`text`||!u.text.trim())throw Error(a?.noResponse??`The AI provider returned no response.`);return u.text},Cu=class extends Error{language;from;to;line;column;nodeName;constructor(e,t){super(e),this.name=`CodeSyntaxError`,this.language=t.language,this.from=t.from,this.to=t.to,this.line=t.line,this.column=t.column,this.nodeName=t.nodeName}},wu={},Tu=null,Eu=e=>{switch(e){case`html`:return async()=>{let{html:e}=await import(`@codemirror/lang-html`);return e({matchClosingTags:!0}).language.parser};case`json`:return async()=>{let{json:e}=await import(`@codemirror/lang-json`);return e().language.parser};case`js`:return async()=>{let{javascript:e}=await import(`@codemirror/lang-javascript`);return e().language.parser};case`ts`:return async()=>{let{javascript:e}=await import(`@codemirror/lang-javascript`);return e({typescript:!0}).language.parser};case`css`:return async()=>{let{css:e}=await import(`@codemirror/lang-css`);return e().language.parser}}},Du=e=>(wu[e]??=Eu(e)(),wu[e]),Ou=async()=>(Tu??=import(`liquidjs`).then(({Liquid:e})=>new e({strictFilters:!0,strictVariables:!0})),Tu),ku=(e,t)=>{let n=1,r=1;for(let i=0;i<t&&i<e.length;i++)e[i]===`
9
9
  `?(n+=1,r=1):r+=1;return{line:n,column:r}},Au=(e,t,n,r,i,a=`Syntax error`)=>{let{line:o,column:s}=ku(e,n);return new Cu(`${a}${i?` near ${i}`:``} at line ${o}, column ${s}.`,{language:t,from:n,to:r,line:o,column:s,nodeName:i})},ju=e=>{do if(e.type.isError)return{from:e.from,to:e.to,nodeName:e.name};while(e.next());return null},Mu=async(e,t)=>{if(e.trim()){if(t===`liquid`){try{(await Ou()).parse(e)}catch(n){if(n instanceof Cu)throw n;let r=n&&typeof n==`object`&&`token`in n?n.token:void 0,i=r?.begin??0,a=r?.end??i,o=n instanceof Error?n.message.split(`, line:`)[0]:`Invalid Liquid syntax`;throw Au(e,t,i,a,r?.name,o)}return}try{let n=ju((await Du(t)).parse(e).cursor());if(n)throw Au(e,t,n.from,n.to,n.nodeName)}catch(n){if(n instanceof Cu)throw n;if(t===`json`&&n instanceof Error){let r=n.message.match(/position\s+(\d+)/i),i=r?Number(r[1]):0;throw Au(e,t,i,i,void 0,`Invalid JSON`)}throw new Cu(`Unable to validate ${t} code.`,{language:t,from:0,to:0,line:1,column:1})}}},Nu=async(e,t)=>{try{return await Mu(e,t),{valid:!0}}catch(e){if(e instanceof Cu)return{valid:!1,error:e};throw e}},Pu=e=>{switch(e){case`html`:return()=>import(`@codemirror/lang-html`).then(e=>e.html());case`liquid`:return()=>import(`@codemirror/lang-liquid`).then(e=>e.liquid());case`json`:return()=>import(`@codemirror/lang-json`).then(e=>e.json());case`js`:return()=>import(`@codemirror/lang-javascript`).then(e=>e.javascript());case`ts`:return()=>import(`@codemirror/lang-javascript`).then(e=>e.javascript({typescript:!0}));case`css`:return()=>import(`@codemirror/lang-css`).then(e=>e.css())}},Fu=async e=>{let[t,n,r,i]=await Promise.all([import(`codemirror`),import(`@codemirror/view`),import(`@codemirror/state`),Pu(e)()]);return{basicSetup:t.basicSetup,EditorView:n.EditorView,EditorState:r.EditorState,keymap:n.keymap,language:i,Prec:r.Prec}},Iu={},Lu={},Ru=e=>Iu[e]?Promise.resolve(Iu[e]):(Lu[e]||(Lu[e]=Fu(e).then(t=>(Iu[e]=t,t))),Lu[e]),zu=(e,t)=>{t.fill?(e.style.height=`100%`,e.style.minHeight=``,e.style.maxHeight=``):(e.style.height=``,e.style.minHeight=`${t.resolvedMinHeight}px`,e.style.maxHeight=t.resolvedMaxHeight?`${t.resolvedMaxHeight}px`:``)},Bu=(e,t,n)=>Il(e,t,n,{queryPattern:/^[A-Za-z0-9_.-]*$/}),Vu=(e,t)=>{let n=e.state.doc.toString(),r=e.state.selection.main;if(r.from!==r.to)return null;let i=Bu(n,r.from,t);return i?{value:n,textBeforeCaret:n.slice(0,r.from),textAfterCaret:n.slice(r.to),trigger:t,query:i.query,triggerRange:{start:i.start,end:i.end},insert:t=>{let n=e.state.selection.main;e.dispatch({changes:{from:n.from,to:n.to,insert:t},selection:{anchor:n.from+t.length}}),e.focus()},replace:(t,n,r)=>{e.dispatch({changes:{from:t,to:n,insert:r},selection:{anchor:t+r.length}}),e.focus()}}:null},Hu=({name:e,onChange:t=void 0,defaultValue:r=void 0,className:i=void 0,label:a,language:o=`html`,placeholder:s,minHeight:c,maxHeight:l,required:u,disabled:d,feedback:f,labelClassName:p,validateSyntax:m=!0,validate:h,validator:g,extensions:_,commands:v,commandsTrigger:y,wrapperClassName:b,inheritWrapperClassName:x=!0,before:S,after:C})=>{let w=(0,n.useId)(),T=J(`CodeEditor`),E=Ko({minHeight:c,maxHeight:l}),{value:D,handleChange:O,formWrapClass:k}=Rd({name:e,onChange:t,defaultValue:r,wrapperClassName:b,inheritWrapperClassName:x}),A=Ld(e,{required:u,label:a,validator:async e=>{let t=typeof e==`string`?e:`${e??``}`;if(m){let e=h?await h(t):await Nu(t,o);if(!e.valid)return e.error?.message??`Invalid ${o} code.`}return await g?.(e)}}),j=(0,n.useRef)(null),M=(0,n.useRef)(null),N=(0,n.useRef)(null),[P,F]=(0,n.useState)(!0),[I,L]=(0,n.useState)({open:!1,query:``,anchorPosition:null,editorContext:null}),R=(0,n.useRef)(D??``),z=(0,n.useRef)(I);z.current=I;let B=v?.length?y??`/`:void 0,ee=(v?.length??0)>=10,V=n.default.useMemo(()=>new Map((v??[]).map(e=>[e.name,e])),[v]),H=n.default.useMemo(()=>(v??[]).map(e=>({key:e.name,label:`${B??`/`}${e.name}`,value:e.name,icon:e.icon,description:e.description,group:e.group})),[v,B]),te=n.default.useMemo(()=>{let e=[],t;return H.forEach(r=>{r.group!==t&&(t=r.group,r.group&&e.push(n.default.createElement(Hl.Heading,{key:`group:${r.group}`},r.group))),e.push(n.default.createElement(Hl.Item,{key:r.key,label:r.label,value:r.value,icon:r.icon,description:r.description}))}),e},[H]);(0,n.useEffect)(()=>{M.current||(R.current=D??``)},[D]);let ne=(0,n.useCallback)(t=>{R.current=t,O({target:{name:e,value:t}})},[O,e]),re=(0,n.useRef)(ne);re.current=ne;let ie=(0,n.useCallback)(()=>{L({open:!1,query:``,anchorPosition:null,editorContext:null})},[]),U=(0,n.useCallback)(async(e,t)=>{let n=V.get(e.value);if(n){if(n.handler){let e=await n.handler(Rl(t)),r=n.consumeSuffix?Fl(t.textAfterCaret,n.consumeSuffix):0;t.replace(t.triggerRange.start,t.triggerRange.end+r,e);return}t.replace(t.triggerRange.start,t.triggerRange.end,`${t.trigger}${n.name} `)}},[V]);(0,n.useEffect)(()=>{let e=!1,t=null;return Ru(o).then(n=>{if(e||!j.current)return;let r=n.EditorView.theme({"&":{backgroundColor:`hsl(var(--rf-background))`,height:`100%`},".cm-scroller":{fontFamily:`var(--font-mono, ui-monospace, SFMono-Regular, monospace)`,paddingBottom:`0.5rem`,minHeight:`100%`},".cm-content":{caretColor:`hsl(var(--rf-foreground))`,color:`hsl(var(--rf-foreground))`,paddingBottom:`0.75rem`,minHeight:`100%`},".cm-cursor, .cm-dropCursor":{borderLeftColor:`hsl(var(--rf-primary))`},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:`hsl(var(--rf-primary)) !important`},".cm-activeLine":{backgroundColor:`hsl(var(--rf-muted) / 0.6)`},".cm-gutters":{backgroundColor:`hsl(var(--rf-muted))`,color:`hsl(var(--rf-muted-foreground))`,border:`none`},".cm-activeLineGutter":{backgroundColor:`hsl(var(--rf-accent))`},".cm-foldPlaceholder":{backgroundColor:`hsl(var(--rf-muted))`,color:`hsl(var(--rf-muted-foreground))`},".cm-tooltip":{backgroundColor:`hsl(var(--rf-popover))`,border:`1px solid hsl(var(--rf-border))`,color:`hsl(var(--rf-popover-foreground))`},".cm-tooltip-autocomplete ul li[aria-selected]":{backgroundColor:`hsl(var(--rf-accent))`,color:`hsl(var(--rf-accent-foreground))`},"&.cm-focused":{outline:`none`},".cm-placeholder":{color:`hsl(var(--rf-muted-foreground))`}}),i=[n.basicSetup,n.language,r,n.EditorView.updateListener.of(e=>{e.docChanged&&re.current(e.state.doc.toString())}),..._??[]];B&&i.push(n.EditorView.updateListener.of(e=>{let t=e.state.selection.main;if(t.from!==t.to){z.current.open&&ie();return}let n=Bu(e.state.doc.toString(),t.from,B);if(!n){z.current.open&&ie();return}let r=e.view.coordsAtPos(t.from),i=Vu(e.view,B);r&&i&&L({open:!0,query:n.query,anchorPosition:{top:r.bottom,left:r.left},editorContext:i})}),n.Prec.highest(n.keymap.of([{key:`ArrowDown`,run:()=>z.current.open?(N.current?.moveNext(),!0):!1},{key:`ArrowUp`,run:()=>z.current.open?(N.current?.movePrev(),!0):!1},{key:`Enter`,run:()=>z.current.open?(N.current?.selectActive(),!0):!1},{key:`Tab`,run:()=>z.current.open?(N.current?.selectActive(),!0):!1},{key:`Escape`,run:()=>z.current.open?(N.current?.close(),!0):!1}])),n.EditorView.domEventHandlers({keydown:e=>{if(!z.current.open)return!1;switch(e.key){case`ArrowDown`:return e.preventDefault(),N.current?.moveNext(),!0;case`ArrowUp`:return e.preventDefault(),N.current?.movePrev(),!0;case`Enter`:case`Tab`:return e.preventDefault(),N.current?.selectActive(),!0;case`Escape`:return e.preventDefault(),N.current?.close(),!0;default:return!1}}})),d&&i.push(n.EditorView.editable.of(!1));let a=n.EditorState.create({doc:R.current,extensions:i});t=new n.EditorView({state:a,parent:j.current}),zu(t.scrollDOM,E),M.current=t,F(!1)}).catch(t=>{e||(console.error(`[CodeEditor] Failed to load CodeMirror:`,t),F(!1))}),()=>{e=!0,t&&(t.destroy(),M.current=null)}},[ie,_,d,o,s,B]),(0,n.useEffect)(()=>{let e=D??``,t=M.current;t&&e!==R.current&&(R.current=e,t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}}))},[D]),(0,n.useEffect)(()=>{let e=M.current;e&&zu(e.scrollDOM,E)},[E.fill,E.resolvedMinHeight,E.resolvedMaxHeight]);let W=X(`w-full overflow-hidden border border-input`,T.CodeEditor?.className,i,P&&`flex items-center justify-center bg-muted text-muted-foreground text-sm`,A&&`border-destructive`,S?`rounded-l-none`:`rounded-l-md`,C?`rounded-r-none`:`rounded-r-md`),ae=n.default.createElement(`div`,{className:X(`min-w-0 flex-1`,E.fill&&`h-full flex flex-col`,W)},P&&n.default.createElement(`div`,{style:{minHeight:E.fill?void 0:E.resolvedMinHeight},className:`flex items-center justify-center`},n.default.createElement(Q,{name:`loader-circle`,size:16,className:`animate-spin text-muted-foreground`})),n.default.createElement(`div`,{ref:j,className:X(P&&`hidden`,E.fill&&`h-full min-h-0 flex-1`)}));return n.default.createElement(Z,{className:X(k,E.fill&&`h-full flex flex-col min-h-0`,T.CodeEditor?.wrapperClassName)},a&&n.default.createElement(ws,{label:a,required:u,htmlFor:w,className:p}),n.default.createElement(`div`,{className:X(S||C?Zo:``,E.fill&&`flex-1 min-h-0 flex flex-col`)},S&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-md rounded-r-none border-r-0`)},S),B&&H.length>0?n.default.createElement(Hl,{ref:N,className:X(E.fill&&`flex-1 min-h-0 flex flex-col`),trigger:B,searchable:ee,controlled:I.editorContext?{open:I.open,anchorPosition:I.anchorPosition,query:I.query,editorContext:I.editorContext,onClose:ie}:void 0,onSelect:(e,t)=>{U(e,t)}},te,ae):ae,C&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-none rounded-r-md border-l-0`)},C)),A&&n.default.createElement(os,{message:A}),f&&n.default.createElement(`p`,{className:`mt-1 text-xs text-muted-foreground`},f))},Uu=()=>Promise.all([import(`@tiptap/react`),import(`@tiptap/react/menus`),import(`@tiptap/starter-kit`),import(`@tiptap/extension-underline`),import(`@tiptap/extension-link`),import(`@tiptap/extension-image`),import(`@tiptap/extension-table`),import(`@tiptap/extension-placeholder`),import(`@tiptap/extension-character-count`)]),Wu=null,Gu=null,Ku=()=>Wu?Promise.resolve(Wu):(Gu||=Uu().then(e=>(Wu=e,e)),Gu),qu=`bold.italic.underline.strike.|.headings.|.bulletList.orderedList.|.blockquote.code.codeBlock.|.link.|.imageUpload.documentUpload.|.table.|.sourceCode.|.undo.redo.clearFormat`.split(`.`),Ju=e=>e===!0?{tagBreadcrumb:!0,wordCount:!0,charCount:!1}:e===!1?{}:{tagBreadcrumb:!0,wordCount:!0,charCount:!1,...e},Yu=8,Xu={bold:{icon:`bold`,label:`bold`,isActive:e=>e.isActive(`bold`),execute:e=>e.chain().focus().toggleBold().run()},italic:{icon:`italic`,label:`italic`,isActive:e=>e.isActive(`italic`),execute:e=>e.chain().focus().toggleItalic().run()},underline:{icon:`underline`,label:`underline`,isActive:e=>e.isActive(`underline`),execute:e=>e.chain().focus().toggleUnderline().run()},strike:{icon:`strikethrough`,label:`strike`,isActive:e=>e.isActive(`strike`),execute:e=>e.chain().focus().toggleStrike().run()},heading1:{icon:`heading-1`,label:`heading1`,isActive:e=>e.isActive(`heading`,{level:1}),execute:e=>e.chain().focus().toggleHeading({level:1}).run()},heading2:{icon:`heading-2`,label:`heading2`,isActive:e=>e.isActive(`heading`,{level:2}),execute:e=>e.chain().focus().toggleHeading({level:2}).run()},heading3:{icon:`heading-3`,label:`heading3`,isActive:e=>e.isActive(`heading`,{level:3}),execute:e=>e.chain().focus().toggleHeading({level:3}).run()},bulletList:{icon:`list`,label:`bulletList`,isActive:e=>e.isActive(`bulletList`),execute:e=>e.chain().focus().toggleBulletList().run()},orderedList:{icon:`list-ordered`,label:`orderedList`,isActive:e=>e.isActive(`orderedList`),execute:e=>e.chain().focus().toggleOrderedList().run()},blockquote:{icon:`quote`,label:`blockquote`,isActive:e=>e.isActive(`blockquote`),execute:e=>e.chain().focus().toggleBlockquote().run()},code:{icon:`code`,label:`inlineCode`,isActive:e=>e.isActive(`code`),execute:e=>e.chain().focus().toggleCode().run()},codeBlock:{icon:`square-code`,label:`codeBlock`,isActive:e=>e.isActive(`codeBlock`),execute:e=>e.chain().focus().toggleCodeBlock().run()},link:{icon:`link`,label:`link`,isActive:e=>e.isActive(`link`),execute:e=>{if(e.isActive(`link`)){e.chain().focus().unsetLink().run();return}let t=window.prompt(`URL`);t&&e.chain().focus().setLink({href:t}).run()}},undo:{icon:`undo-2`,label:`undo`,execute:e=>e.chain().focus().undo().run()},redo:{icon:`redo-2`,label:`redo`,execute:e=>e.chain().focus().redo().run()},clearFormat:{icon:`eraser`,label:`clearFormat`,execute:e=>e.chain().focus().clearNodes().unsetAllMarks().run()}},Zu=({def:e,editor:t})=>{let r=Y(`richText`),i=e.isActive?.(t)??!1;return n.default.createElement(`button`,{type:`button`,title:r[e.label],onMouseDown:n=>{n.preventDefault(),e.execute(t)},className:X(`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors`,`hover:bg-muted disabled:cursor-not-allowed disabled:opacity-40`,i&&`bg-muted text-primary`)},n.default.createElement(Q,{name:e.icon,size:14}))},Qu=[{value:0,label:`normal`,previewClass:`text-sm`,execute:e=>e.chain().focus().setParagraph().run()},{value:1,label:`heading1`,previewClass:`text-2xl font-bold`,execute:e=>e.chain().focus().setHeading({level:1}).run()},{value:2,label:`heading2`,previewClass:`text-xl font-semibold`,execute:e=>e.chain().focus().setHeading({level:2}).run()},{value:3,label:`heading3`,previewClass:`text-lg font-semibold`,execute:e=>e.chain().focus().setHeading({level:3}).run()}],$u=({editor:e})=>{let t=Y(`richText`),[r,i]=n.default.useState(!1),a=(0,n.useRef)(null);n.default.useEffect(()=>{let e=e=>{a.current&&!a.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let o=e.isActive(`heading`,{level:1})?`H1`:e.isActive(`heading`,{level:2})?`H2`:e.isActive(`heading`,{level:3})?`H3`:`P`;return n.default.createElement(`div`,{ref:a,className:`relative`},n.default.createElement(`button`,{type:`button`,title:t.paragraphStyle,onMouseDown:e=>{e.preventDefault(),i(e=>!e)},className:`inline-flex h-7 items-center gap-0.5 rounded px-1.5 text-xs font-medium transition-colors hover:bg-muted`},o,n.default.createElement(Q,{name:`chevron-down`,size:10})),r&&n.default.createElement(`div`,{className:`absolute left-0 top-full z-50 mt-1 w-44 overflow-hidden rounded-md border border-border bg-background shadow-lg`},Qu.map(r=>n.default.createElement(`button`,{key:r.value,type:`button`,onMouseDown:t=>{t.preventDefault(),r.execute(e),i(!1)},className:X(`block w-full px-3 py-1.5 text-left leading-snug transition-colors hover:bg-muted`,r.previewClass,r.value===0&&e.isActive(`paragraph`)&&`bg-muted/60`,r.value!==0&&e.isActive(`heading`,{level:r.value})&&`bg-muted/60`)},t[r.label]))))},ed=({editor:e})=>{let t=Y(`richText`),[r,i]=n.default.useState(!1),[a,o]=n.default.useState(3),[s,c]=n.default.useState(3),l=(0,n.useRef)(null);n.default.useEffect(()=>{let e=e=>{l.current&&!l.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let u=(t,n)=>{e.chain().focus().insertTable({rows:t,cols:n,withHeaderRow:!0}).run(),i(!1)};return n.default.createElement(`div`,{ref:l,className:`relative`},n.default.createElement(`button`,{type:`button`,title:t.insertTable,onMouseDown:e=>{e.preventDefault(),i(e=>!e)},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`table`,size:14})),r&&n.default.createElement(`div`,{className:`absolute left-0 top-full z-50 mt-1 rounded-md border border-border bg-background p-3 shadow-lg`},n.default.createElement(`div`,{className:`grid gap-1.5`,style:{gridTemplateColumns:`repeat(${Yu}, 18px)`,width:`fit-content`}},Array.from({length:64},(e,r)=>{let i=Math.floor(r/Yu)+1,l=r%Yu+1,d=i<=a&&l<=s;return n.default.createElement(`button`,{key:`${i}-${l}`,type:`button`,"aria-label":ot(t.insertTableSize,{rows:i,cols:l}),onMouseEnter:()=>{o(i),c(l)},onFocus:()=>{o(i),c(l)},onMouseDown:e=>{e.preventDefault(),u(i,l)},className:X(`h-[18px] w-[18px] rounded-[4px] border transition-colors`,d?`border-primary bg-primary/25 shadow-[inset_0_0_0_1px_rgba(59,130,246,0.35)]`:`border-border bg-background hover:border-primary/50 hover:bg-muted/60`)})})),n.default.createElement(`div`,{className:`mt-3 text-center text-xs font-medium text-muted-foreground`},a,` x `,s)))},td=({editor:e})=>{let t=Y(`richText`);return n.default.createElement(`div`,{className:`flex items-center gap-0.5 rounded-md border border-border bg-background px-1 py-0.5 shadow-lg`},[{icon:`rows-2`,label:`addRowAbove`,execute:()=>e.chain().focus().addRowBefore().run()},{icon:`rows-3`,label:`addRowBelow`,execute:()=>e.chain().focus().addRowAfter().run()},{icon:`columns-2`,label:`addColumnLeft`,execute:()=>e.chain().focus().addColumnBefore().run()},{icon:`columns-3`,label:`addColumnRight`,execute:()=>e.chain().focus().addColumnAfter().run()},{icon:`minus-square`,label:`deleteRow`,execute:()=>e.chain().focus().deleteRow().run()},{icon:`rectangle-ellipsis`,label:`deleteColumn`,execute:()=>e.chain().focus().deleteColumn().run()},{icon:`trash-2`,label:`deleteTable`,execute:()=>e.chain().focus().deleteTable().run()}].map((e,r)=>n.default.createElement(n.default.Fragment,{key:e.label},r>0&&r!==4&&n.default.createElement(`div`,{className:`mx-0.5 h-4 w-px bg-border`}),n.default.createElement(`button`,{type:`button`,title:t[e.label],onMouseDown:t=>{t.preventDefault(),e.execute()},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:e.icon,size:14})))))},nd=({editor:e,commands:t,sourceMode:r,onImageUpload:i,onDocumentUpload:a,onSourceToggle:o,compact:s})=>{let c=Y(`richText`),[,l]=n.default.useReducer(e=>e+1,0);return n.default.useEffect(()=>(e.on(`selectionUpdate`,l),e.on(`transaction`,l),()=>{e.off(`selectionUpdate`,l),e.off(`transaction`,l)}),[e]),n.default.createElement(`div`,{className:X(`flex flex-wrap items-center gap-0.5 px-2 py-1`,!s&&`border-b border-border`)},t.map((t,s)=>{if(t===`|`)return n.default.createElement(`div`,{key:s,className:`mx-0.5 h-4 w-px bg-border`});if(t===`headings`)return n.default.createElement($u,{key:t,editor:e});if(t===`table`)return n.default.createElement(ed,{key:t,editor:e});if(t===`imageUpload`)return n.default.createElement(`button`,{key:t,type:`button`,title:c.uploadImage,onMouseDown:e=>{e.preventDefault(),i()},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`image`,size:14}));if(t===`documentUpload`)return n.default.createElement(`button`,{key:t,type:`button`,title:c.uploadDocument,onMouseDown:e=>{e.preventDefault(),a()},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`file-up`,size:14}));if(t===`sourceCode`)return n.default.createElement(`button`,{key:t,type:`button`,title:c.sourceCode,onMouseDown:e=>{e.preventDefault(),o()},className:X(`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`,r&&`bg-muted text-primary`)},n.default.createElement(Q,{name:`code`,size:14}));let l=Xu[t];return l?n.default.createElement(Zu,{key:t,def:l,editor:e}):null}))},rd=e=>{try{let{$anchor:t}=e.state.selection,n=[];for(let e=t.depth;e>=0;e--){let r=t.node(e).type.name;r!==`doc`&&n.unshift(r)}return n}catch{return[]}},id=({editor:e,config:t})=>{let r=Y(`richText`),[i,a]=(0,n.useState)(0);(0,n.useEffect)(()=>{let t=()=>a(e=>e+1);return e.on(`selectionUpdate`,t),e.on(`transaction`,t),()=>{e.off(`selectionUpdate`,t),e.off(`transaction`,t)}},[e]);let o=t.tagBreadcrumb?rd(e):[],s=e.storage.characterCount;return n.default.createElement(`div`,{className:`flex items-center gap-3 border-t border-border px-3 py-1 text-xs text-muted-foreground select-none`},t.tagBreadcrumb&&o.length>0&&n.default.createElement(`div`,{className:`flex items-center gap-1 font-mono`},o.map((e,t)=>n.default.createElement(n.Fragment,{key:t},t>0&&n.default.createElement(`span`,{className:`opacity-40`},`›`),n.default.createElement(`span`,null,e)))),n.default.createElement(`div`,{className:`ml-auto flex items-center gap-3`},t.wordCount&&s&&n.default.createElement(`span`,null,ot(r.words,{count:s.words()})),t.charCount&&s&&n.default.createElement(`span`,null,ot(r.chars,{count:s.characters()}))))},ad=({srcset:e})=>{let t=Y(`imageField`),r=e.split(`,`).map(e=>e.trim()).map(e=>{let[t,n]=e.split(` `);return{src:t,width:parseInt(n,10)}}).filter(e=>e.src&&!isNaN(e.width));return r.length?n.default.createElement(`div`,{className:`flex flex-col gap-1.5`},n.default.createElement(`p`,{className:`text-xs font-medium text-muted-foreground`},t.responsiveVariants,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},ot(t.variantsGenerated,{count:r.length}))),n.default.createElement(`div`,{className:`flex gap-1.5`},r.map(e=>n.default.createElement(`a`,{key:e.width,href:e.src,target:`_blank`,rel:`noopener noreferrer`,className:`group relative flex-1 overflow-hidden rounded border border-border`,style:{backgroundImage:`repeating-conic-gradient(#e4e4e4 0% 25%, #f5f5f5 0% 50%)`,backgroundSize:`8px 8px`}},n.default.createElement(`img`,{src:e.src,alt:`${e.width}w`,className:`h-12 w-full object-contain transition-opacity group-hover:opacity-80`}),n.default.createElement(`span`,{className:`absolute bottom-0.5 left-0.5 rounded bg-black/60 px-1 py-0.5 text-[9px] font-mono leading-none text-white`},e.width,`px`),n.default.createElement(`div`,{className:`absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`div`,{className:`rounded-md bg-black/60 p-1`},n.default.createElement(Q,{name:`external-link`,size:11,className:`text-white`}))))))):null},od=({items:e,onInsertAll:t,onCropSave:r,onCancel:i})=>{let a=Y(`imageField`),o=Y(`richText`),s=Y(`common`),[c,l]=(0,n.useState)(0),[u,d]=(0,n.useState)(()=>e.map(e=>({alt:e.defaultAlt,href:``,target:`_blank`,enabled:!0}))),[f,p]=(0,n.useState)(!1),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{m.current?.focus()},[c]),(0,n.useEffect)(()=>{d(t=>{if(e.length<=t.length)return t;let n=e.slice(t.length).map(e=>({alt:e.defaultAlt,href:``,target:`_blank`,enabled:!0}));return[...t,...n]})},[e.length]);let h=e.length,g=e[c]??e[0],_=u[c]??{alt:``,href:``,target:`_blank`,enabled:!0},v=u.filter(e=>e.enabled).length,y=e=>d(t=>t.map((t,n)=>n===c?{...t,...e}:t));return n.default.createElement(n.default.Fragment,null,n.default.createElement(Cr,{title:h===1?a.insertImage:a.insertImages,onClose:i,size:`md`,footer:n.default.createElement(`div`,{className:`flex w-full items-center justify-between`},n.default.createElement(`label`,{className:`flex cursor-pointer select-none items-center gap-2 text-sm`},n.default.createElement(`input`,{type:`checkbox`,checked:_.enabled,onChange:e=>y({enabled:e.target.checked}),className:`h-4 w-4 rounded accent-primary`}),a.include),n.default.createElement(`div`,{className:`flex gap-2`},n.default.createElement(`button`,{type:`button`,onClick:i,className:`h-8 rounded-md px-3 text-sm transition-colors hover:bg-muted`},s.cancel),n.default.createElement(`button`,{type:`button`,onClick:()=>t(u),disabled:v===0,className:`h-8 rounded-md bg-primary px-3 text-sm text-primary-foreground transition-colors hover:bg-primary/90 disabled:opacity-50`},h===1?a.insert:ot(a.insertCount,{count:v}))))},h>1&&n.default.createElement(`div`,{className:`mb-3 flex items-center justify-between gap-3`},n.default.createElement(`div`,{className:`flex gap-1.5 overflow-x-auto pb-0.5`},e.map((e,t)=>n.default.createElement(`button`,{key:t,type:`button`,onClick:()=>l(t),title:e.fileProps.fileName,className:X(`relative h-12 w-12 flex-shrink-0 overflow-hidden rounded-md border-2 transition-all`,t===c?`border-primary shadow-md`:`border-transparent opacity-50 hover:opacity-90`,!u[t]?.enabled&&`opacity-20 grayscale`)},n.default.createElement(`img`,{src:e.preview,alt:``,className:`h-full w-full object-cover`})))),n.default.createElement(`div`,{className:`flex flex-shrink-0 items-center gap-0.5`},n.default.createElement(`button`,{type:`button`,onClick:()=>l(e=>Math.max(0,e-1)),disabled:c===0,className:`flex h-7 w-7 items-center justify-center rounded hover:bg-muted disabled:opacity-30`},n.default.createElement(Q,{name:`chevron-left`,size:14})),n.default.createElement(`span`,{className:`w-10 text-center text-xs tabular-nums text-muted-foreground`},c+1,` / `,h),n.default.createElement(`button`,{type:`button`,onClick:()=>l(t=>Math.min(e.length-1,t+1)),disabled:c>=e.length-1,className:`flex h-7 w-7 items-center justify-center rounded hover:bg-muted disabled:opacity-30`},n.default.createElement(Q,{name:`chevron-right`,size:14})))),n.default.createElement(`div`,{className:X(`group relative flex min-h-[160px] items-center justify-center overflow-hidden rounded-lg transition-opacity`,`[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]`,`dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]`,`[background-size:16px_16px]`,!_.enabled&&`opacity-40`)},n.default.createElement(`img`,{src:g.preview,alt:``,className:`max-h-[160px] max-w-full object-contain`}),n.default.createElement(`div`,{className:`absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`a`,{href:g.preview,target:`_blank`,rel:`noopener noreferrer`,title:a.openOriginal,className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`external-link`,size:13})),n.default.createElement(`button`,{type:`button`,title:a.crop,onClick:()=>p(!0),className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`crop`,size:13})))),n.default.createElement(`p`,{className:`mt-1.5 truncate font-mono text-xs text-muted-foreground`},g.fileProps.fileName),g.fileProps.srcset&&n.default.createElement(ad,{srcset:g.fileProps.srcset}),n.default.createElement(`div`,{className:`mt-3 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},a.altText,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},a.altTextHint)),n.default.createElement(`input`,{ref:m,type:`text`,value:_.alt,onChange:e=>y({alt:e.target.value}),placeholder:o.altPlaceholder,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},a.linkUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},a.optionalHint)),n.default.createElement(`div`,{className:`flex gap-1.5`},n.default.createElement(`input`,{type:`url`,value:_.href,onChange:e=>y({href:e.target.value}),placeholder:`https://...`,className:`h-8 min-w-0 flex-1 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`}),n.default.createElement(`select`,{value:_.target,onChange:e=>y({target:e.target.value}),disabled:!_.href,className:`h-8 rounded-md border border-input bg-background px-2 text-xs outline-none focus:ring-1 focus:ring-ring disabled:opacity-40`},n.default.createElement(`option`,{value:`_blank`},a.newTab),n.default.createElement(`option`,{value:`_self`},a.sameTab))))),f&&n.default.createElement(ic,{src:g.preview,mode:`modal`,title:ot(a.cropTitle,{name:g.fileProps.fileName}),onClose:()=>p(!1),onSave:e=>{r(c,e),p(!1)}}))},sd=({state:e,onConfirm:t,onCancel:r})=>{let[i,a]=(0,n.useState)(e.attrs.src??``),[o,s]=(0,n.useState)(e.attrs.alt??``),[c,l]=(0,n.useState)(e.attrs.href??``),[u,d]=(0,n.useState)(e.attrs.target??`_blank`),[f,p]=(0,n.useState)(!1),m=Y(`imageField`),h=Y(`richText`),g=Y(`common`),_=(0,n.useRef)(null);(0,n.useEffect)(()=>{_.current?.focus()},[]);let v=e.attrs.srcset;return n.default.createElement(n.default.Fragment,null,n.default.createElement(Cr,{title:m.editImage,onClose:r,size:`sm`,footer:n.default.createElement(`div`,{className:`flex justify-end gap-2`},n.default.createElement(`button`,{type:`button`,onClick:r,className:`h-8 rounded-md px-3 text-sm transition-colors hover:bg-muted`},g.cancel),n.default.createElement(`button`,{type:`button`,onClick:()=>t({src:i,alt:o,href:c,target:u,enabled:!0}),className:`h-8 rounded-md bg-primary px-3 text-sm text-primary-foreground transition-colors hover:bg-primary/90`},g.save))},i&&n.default.createElement(`div`,{className:`group relative mb-3 overflow-hidden rounded-lg bg-muted/40`},n.default.createElement(Ir,{src:i,fit:`contain`,height:140,wrapperClassName:`w-full`,className:`w-full`}),n.default.createElement(`div`,{className:`absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,title:m.openOriginal,className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`external-link`,size:13})),n.default.createElement(`button`,{type:`button`,title:m.crop,onClick:()=>p(!0),className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`crop`,size:13})))),v&&n.default.createElement(ad,{srcset:v}),n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},m.imageUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},m.imageUrlHint)),n.default.createElement(`input`,{type:`url`,value:i,onChange:e=>a(e.target.value),placeholder:`https://example.com/image.jpg`,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},m.altText,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},m.altTextHint)),n.default.createElement(`input`,{ref:_,type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:h.altPlaceholder,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},m.linkUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},m.optionalHint)),n.default.createElement(`div`,{className:`flex gap-1.5`},n.default.createElement(`input`,{type:`url`,value:c,onChange:e=>l(e.target.value),placeholder:`https://...`,className:`h-8 min-w-0 flex-1 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`}),n.default.createElement(`select`,{value:u,onChange:e=>d(e.target.value),disabled:!c,className:`h-8 rounded-md border border-input bg-background px-2 text-xs outline-none focus:ring-1 focus:ring-ring disabled:opacity-40`},n.default.createElement(`option`,{value:`_blank`},m.newTab),n.default.createElement(`option`,{value:`_self`},m.sameTab))))),f&&n.default.createElement(ic,{src:i,mode:`modal`,title:m.cropImage,onClose:()=>p(!1),onSave:e=>{a(e),p(!1)}}))},cd=(e,t,n)=>Il(e,t,n,{queryPattern:/^[A-Za-z0-9-]*$/}),ld=({modules:e,name:t,value:r,outputFormat:i,placeholder:a,disabled:o,toolbar:s,toolbarCommands:c,statusBar:l,minHeight:u,maxHeight:d,imageUpload:f,documentUpload:p,hasError:m,className:h,onEditorChange:g,commands:_,commandsTrigger:v})=>{let{useEditor:y,EditorContent:b}=e[0],{BubbleMenu:x}=e[1],S=e[2].default,C=e[3].default,w=e[4].default,T=e[5].default.extend({addAttributes(){return{...this.parent?.()??{},srcset:{default:null},sizes:{default:null},loading:{default:null},decoding:{default:null},href:{default:null},target:{default:null}}},renderHTML({HTMLAttributes:e}){let{href:t,target:n,...r}=e,i=this.options.HTMLAttributes??{},a=[`img`,Object.fromEntries(Object.entries({...i,...r}).filter(([,e])=>e!=null))];return t?[`a`,{"data-href":t,"data-target":n??`_blank`,rel:`noopener noreferrer`},a]:a}}),{Table:E,TableRow:D,TableHeader:O,TableCell:k}=e[6],A=e[7].default,j=e[8].default,[M,N]=(0,n.useState)(!1),P=Y(`richText`),[F,I]=(0,n.useState)(``),[L,R]=(0,n.useState)([]),[z,B]=(0,n.useState)(null),[,ee]=n.default.useReducer(e=>e+1,0),V=(0,n.useRef)(null),H=(0,n.useRef)(null),[te,ne]=(0,n.useState)({open:!1,query:``,anchorPosition:null,editorContext:null}),re=(0,n.useRef)(te);re.current=te;let ie=_?.length?v??`/`:void 0,U=(_?.length??0)>=10,W=n.default.useMemo(()=>new Map((_??[]).map(e=>[e.name,e])),[_]),ae=n.default.useMemo(()=>(_??[]).map(e=>({key:e.name,label:`${ie??`/`}${e.name}`,value:e.name,icon:e.icon,description:e.description})),[_,ie]),oe=f?.srcsetWidths===void 0?[400,800]:f.srcsetWidths,se=nc(),ce=bc({uploadPath:f?.path,srcsetWidths:oe,onFileReady:e=>{let t=e.fileName.replace(/\.[^/.]+$/,``).replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim().replace(/^(.)/,e=>e.toUpperCase()),n=e.url||(e.base64?`data:${e.type};base64,${e.base64}`:``);R(r=>[...r,{fileProps:e,preview:n,defaultAlt:t}])}}),G=Ko({minHeight:u,maxHeight:d,paddingOffset:16}),le=(0,n.useCallback)(()=>{ne({open:!1,query:``,anchorPosition:null,editorContext:null})},[]),ue=(0,n.useCallback)((e,t)=>{let n=e.state.selection;if(!n.empty)return null;let{$from:r}=n,i=r.parent;if(!i.isTextblock)return null;let a=i.textContent??``,o=r.parentOffset,s=cd(a,o,t);if(!s)return null;let c=n.from-o,l=c+s.start,u=c+s.end;return{value:e.getText(),textBeforeCaret:a.slice(0,o),textAfterCaret:a.slice(o),trigger:t,query:s.query,triggerRange:{start:l,end:u},insert:t=>{let{from:n,to:r}=e.state.selection,i=e.state.tr.insertText(t,n,r);e.view.dispatch(i),e.commands.focus()},replace:(t,n,r)=>{let i=e.state.tr.insertText(r,t,n);e.view.dispatch(i),e.commands.focus()}}},[]),K=y({extensions:[S,C,w.configure({openOnClick:!1,HTMLAttributes:{target:null,rel:`noopener noreferrer nofollow`}}),T.configure({allowBase64:!0}),E.configure({resizable:!0}),D,O,k,A.configure({placeholder:a??``}),j],content:r||``,editable:!o,editorProps:{attributes:{style:`min-height: ${G.adjustedMinHeight}px`},handleClick(e,t,n){if(n.ctrlKey||n.metaKey){let n=e.state.doc.resolve(t).marks().find(e=>e.type.name===`link`);if(n?.attrs.href)return window.open(n.attrs.href,`_blank`,`noopener,noreferrer`),!0}let r=n.target;if(r.tagName===`IMG`)try{let t=e.posAtDOM(r,0),n=e.state.doc.nodeAt(t);if(n?.type.name===`image`){let e={...n.attrs};if(!e.href){let t=n.marks?.find(e=>e.type.name===`link`);t&&(t.attrs.href&&(e.href=t.attrs.href),t.attrs.target&&(e.target=t.attrs.target))}return B({pos:t,attrs:e}),!0}}catch{}return!1},handleKeyDown(e,t){if(!re.current.open)return!1;switch(t.key){case`ArrowDown`:return t.preventDefault(),H.current?.moveNext(),!0;case`ArrowUp`:return t.preventDefault(),H.current?.movePrev(),!0;case`Enter`:case`Tab`:return t.preventDefault(),H.current?.selectActive(),!0;case`Escape`:return t.preventDefault(),H.current?.close(),!0;default:return!1}}},onUpdate:({editor:e})=>{g(i===`json`?JSON.stringify(e.getJSON()):i===`text`?e.getText():e.getHTML().replace(/<a([^>]*?)data-href="([^"]*?)"/g,`<a$1href="$2"`).replace(/data-target="([^"]*?)"/g,`target="$1"`))}}),de=(0,n.useRef)(r);(0,n.useEffect)(()=>{K&&r!==de.current&&(de.current=r,r!==(i===`json`?JSON.stringify(K.getJSON()):i===`text`?K.getText():K.getHTML().replace(/<a([^>]*?)data-href="([^"]*?)"/g,`<a$1href="$2"`).replace(/data-target="([^"]*?)"/g,`target="$1"`))&&K.commands.setContent(i===`json`&&r?JSON.parse(r):r||``))},[r,K,i]),(0,n.useEffect)(()=>{if(K)return K.view.dom.style.minHeight=`${G.adjustedMinHeight}px`,K.on(`selectionUpdate`,ee),()=>{K.off(`selectionUpdate`,ee)}},[K,G.adjustedMinHeight]),(0,n.useEffect)(()=>{if(!K||!ie||M){re.current.open&&le();return}let e=()=>{if(!K.isFocused){re.current.open&&le();return}let e=K.state.selection;if(!e.empty){re.current.open&&le();return}let{$from:t}=e,n=t.parent;if(!n.isTextblock){re.current.open&&le();return}let r=n.textContent??``,i=t.parentOffset,a=cd(r,i,ie);if(!a){re.current.open&&le();return}let o=K.view.coordsAtPos(e.from),s=ue(K,ie);o&&s&&ne({open:!0,query:a.query,anchorPosition:{top:o.bottom,left:o.left},editorContext:s})};return e(),K.on(`selectionUpdate`,e),K.on(`transaction`,e),()=>{K.off(`selectionUpdate`,e),K.off(`transaction`,e)}},[le,K,ue,ie,M]);let fe=(0,n.useCallback)(async(e,t)=>{let n=W.get(e.value);if(n){if(n.handler){let e=await n.handler(Rl(t)),r=n.consumeSuffix?Fl(t.textAfterCaret,n.consumeSuffix):0;t.replace(t.triggerRange.start,t.triggerRange.end+r,e);return}t.replace(t.triggerRange.start,t.triggerRange.end,`${t.trigger}${n.name} `)}},[W]),pe=()=>{K&&(M?K.commands.setContent(F):I(K.getHTML()),N(e=>!e))},me=e=>new Promise(t=>{let n=new FileReader;n.onload=e=>t(e.target?.result),n.readAsDataURL(e)}),he=async e=>{if(!K)return;let t=p?.maxBytes??20971520;for(let n of e){if(n.size>t){alert(`"${n.name}" exceeds the ${Math.round(t/1048576)} MB limit.`);continue}let e;if(se&&p?.path)try{e=await se.upload(n,`${p.path}/${n.name}`)??await me(n)}catch{e=await me(n)}else e=await me(n);let r=n.size<1048576?`${Math.round(n.size/1024)} KB`:`${(n.size/1048576).toFixed(1)} MB`;K.chain().focus().insertContent([{type:`text`,marks:[{type:`link`,attrs:{href:e,target:`_blank`,rel:`noopener noreferrer`}}],text:`📎 ${n.name} (${r})`},{type:`text`,text:` `}]).run()}},ge=e=>{if(!K)return;let t=[];e.forEach(({alt:e,href:n,target:r,enabled:i},a)=>{if(!i)return;let o=L[a];if(!o)return;ce.handleRemove(o.fileProps.key);let s=o.fileProps.url||o.preview,c={alt:e||null,href:n||null,target:n?r||`_blank`:null},l=o.fileProps.srcset?{...c,src:s,srcset:o.fileProps.srcset,sizes:o.fileProps.sizes??`(max-width: 640px) 100vw, 800px`,loading:`lazy`,decoding:`async`}:{...c,src:s};t.push({type:`image`,attrs:l})}),t.length&&K.chain().focus().insertContent(t).run(),R([])},_e=(0,n.useCallback)(async(e,t)=>{let n=`image.jpg`;if(R(r=>(n=r[e]?.fileProps.fileName??`image.jpg`,r.map((n,r)=>r===e?{...n,preview:t,fileProps:{...n.fileProps,url:t,srcset:``,sizes:``}}:n))),oe.length)try{let{variants:r,naturalWidth:i}=await Ys(t,oe),a=se&&f?.path?await Xs(r,se,f.path,n):r.map(e=>({url:e.localUrl,width:e.width})),o=await fetch(t).then(e=>e.blob()),s=URL.createObjectURL(o),c=Zs([...a,{url:s,width:i}]);R(t=>t.map((t,n)=>n===e?{...t,fileProps:{...t.fileProps,srcset:c,sizes:`(max-width: 640px) 100vw, 800px`}}:t))}catch{}},[oe,se,f?.path]),ve=({src:e,alt:t,href:n,target:r})=>{if(!K||!z)return;let{pos:i,attrs:a}=z,o=K.state.doc.nodeAt(i);if(o?.type.name===`image`){let{tr:s,schema:c}=K.state,l=e!==void 0&&e!==a.src,u={...a,...l?{src:e||null,srcset:null,sizes:null}:{},alt:t||null,href:n||null,target:n?r||`_blank`:null},d=o.marks??[],f=d.some(e=>e.type.name===`link`),p=d;n?f||(p=[...d,c.marks.link.create({href:n,target:r||`_blank`})]):p=d.filter(e=>e.type.name!==`link`),s.setNodeMarkup(i,null,u,p),K.view.dispatch(s)}B(null)},ye=c.filter(e=>e!==`imageUpload`&&e!==`documentUpload`&&e!==`sourceCode`);return n.default.createElement(n.default.Fragment,null,L.length>0&&n.default.createElement(od,{items:L,onInsertAll:ge,onCropSave:_e,onCancel:()=>{L.forEach(e=>ce.handleRemove(e.fileProps.key)),R([])}}),z&&n.default.createElement(sd,{state:z,onConfirm:ve,onCancel:()=>B(null)}),n.default.createElement(`div`,{className:X(`rounded-md border border-input bg-background shadow-sm transition-colors`,`focus-within:ring-1 focus-within:ring-ring`,m&&`border-destructive focus-within:ring-destructive/20`,o&&`cursor-not-allowed opacity-50`,h)},s===`fixed`&&K&&n.default.createElement(nd,{editor:K,commands:c,sourceMode:M,onImageUpload:ce.handleUpload,onDocumentUpload:()=>V.current?.click(),onSourceToggle:pe}),s===`floating`&&K&&n.default.createElement(x,{editor:K},n.default.createElement(`div`,{className:`flex items-center gap-0.5 rounded-md border border-border bg-background px-1 py-0.5 shadow-lg`},n.default.createElement(nd,{editor:K,commands:ye,sourceMode:M,onImageUpload:ce.handleUpload,onDocumentUpload:()=>V.current?.click(),onSourceToggle:pe,compact:!0}))),K&&!M&&n.default.createElement(x,{editor:K,shouldShow:({editor:e,from:t,to:n})=>t!==n||!e.isActive(`link`)?!1:!!e.getAttributes(`link`).href,options:{placement:`bottom-start`,offset:6}},(()=>{let e=K.getAttributes(`link`).href??``;return n.default.createElement(`div`,{className:`flex items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1.5 shadow-md`},n.default.createElement(Q,{name:`link`,size:12,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`max-w-[220px] truncate text-xs text-primary underline`},e),n.default.createElement(`div`,{className:`mx-0.5 h-3 w-px bg-border`}),n.default.createElement(`button`,{type:`button`,title:P.editLink,onMouseDown:t=>{t.preventDefault();let n=window.prompt(`URL`,e);n?K.chain().focus().setLink({href:n}).run():n===``&&K.chain().focus().unsetLink().run()},className:`inline-flex h-5 w-5 items-center justify-center rounded transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`pencil`,size:11})),n.default.createElement(`button`,{type:`button`,title:P.removeLink,onMouseDown:e=>{e.preventDefault(),K.chain().focus().unsetLink().run()},className:`inline-flex h-5 w-5 items-center justify-center rounded transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`unlink`,size:11})))})()),K&&!M&&n.default.createElement(x,{editor:K,shouldShow:({editor:e})=>e.isActive(`table`),options:{placement:`top-start`,offset:8}},n.default.createElement(td,{editor:K})),M?n.default.createElement(`textarea`,{"aria-label":ot(P.source,{name:t}),className:`w-full resize-none bg-background px-3 py-2 font-mono text-xs text-foreground outline-none`,style:{minHeight:G.adjustedMinHeight,maxHeight:d,overflowY:`auto`},value:F,onChange:e=>I(e.target.value)}):(()=>{let e=n.default.createElement(`div`,{style:G.wrapperStyle,className:X(`w-full px-3 py-2 text-sm`,`[&_.ProseMirror]:outline-none`,`[&_.ProseMirror_p]:my-1`,`[&_.ProseMirror_h1]:my-2 [&_.ProseMirror_h1]:text-2xl [&_.ProseMirror_h1]:font-bold`,`[&_.ProseMirror_h2]:my-2 [&_.ProseMirror_h2]:text-xl [&_.ProseMirror_h2]:font-semibold`,`[&_.ProseMirror_h3]:my-1 [&_.ProseMirror_h3]:text-lg [&_.ProseMirror_h3]:font-semibold`,`[&_.ProseMirror_ul]:list-disc [&_.ProseMirror_ul]:pl-6`,`[&_.ProseMirror_ol]:list-decimal [&_.ProseMirror_ol]:pl-6`,`[&_.ProseMirror_blockquote]:my-2 [&_.ProseMirror_blockquote]:border-l-4 [&_.ProseMirror_blockquote]:border-border [&_.ProseMirror_blockquote]:pl-4 [&_.ProseMirror_blockquote]:text-muted-foreground`,`[&_.ProseMirror_code]:rounded [&_.ProseMirror_code]:bg-muted [&_.ProseMirror_code]:px-1 [&_.ProseMirror_code]:font-mono [&_.ProseMirror_code]:text-xs`,`[&_.ProseMirror_pre]:my-2 [&_.ProseMirror_pre]:overflow-x-auto [&_.ProseMirror_pre]:rounded [&_.ProseMirror_pre]:bg-muted [&_.ProseMirror_pre]:p-3`,`[&_.ProseMirror_table]:w-full [&_.ProseMirror_table]:border-collapse`,`[&_.ProseMirror_td]:border [&_.ProseMirror_td]:border-border [&_.ProseMirror_td]:px-2 [&_.ProseMirror_td]:py-1`,`[&_.ProseMirror_th]:border [&_.ProseMirror_th]:border-border [&_.ProseMirror_th]:bg-muted [&_.ProseMirror_th]:px-2 [&_.ProseMirror_th]:py-1 [&_.ProseMirror_th]:font-semibold`,`[&_.ProseMirror_a]:text-primary [&_.ProseMirror_a]:underline [&_.ProseMirror_a]:pointer-events-none`,`[&_.ProseMirror_a_img]:pointer-events-auto`,`[&_.ProseMirror_.is-editor-empty:first-child::before]:pointer-events-none [&_.ProseMirror_.is-editor-empty:first-child::before]:float-left [&_.ProseMirror_.is-editor-empty:first-child::before]:h-0 [&_.ProseMirror_.is-editor-empty:first-child::before]:text-muted-foreground [&_.ProseMirror_.is-editor-empty:first-child::before]:content-[attr(data-placeholder)]`)},n.default.createElement(b,{editor:K}));return ie&&ae.length>0?n.default.createElement(Hl,{ref:H,trigger:ie,searchable:U,controlled:te.editorContext?{open:te.open,anchorPosition:te.anchorPosition,query:te.query,editorContext:te.editorContext,onClose:le}:void 0,onSelect:(e,t)=>{fe(e,t)}},ae.map(e=>n.default.createElement(Hl.Item,{key:e.key,label:e.label,value:e.value,icon:e.icon,description:e.description})),e):e})(),l&&K&&n.default.createElement(id,{editor:K,config:l}),n.default.createElement(`input`,{ref:ce.fileInputRef,type:`file`,multiple:!0,accept:f?.accept??`image/*`,className:`hidden`,onChange:e=>{let t=f?.maxBytes??10485760,n=Array.from(e.target.files??[]).find(e=>e.size>t);if(n){alert(`"${n.name}" exceeds the ${Math.round(t/1048576)} MB limit.`),e.target.value=``;return}ce.handleUploadChange(e)}}),n.default.createElement(`input`,{ref:V,type:`file`,multiple:!0,accept:p?.accept??`.pdf,.doc,.docx,.txt,.csv`,className:`hidden`,onChange:e=>{let t=Array.from(e.target.files??[]);t.length&&he(t),e.target.value=``}})))},ud=({name:e,onChange:t=void 0,defaultValue:r=void 0,label:i=void 0,required:a=!1,placeholder:o=void 0,disabled:s=!1,feedback:c=void 0,toolbar:l=`fixed`,toolbarCommands:u=qu,outputFormat:d=`html`,statusBar:f=!1,minHeight:p=120,maxHeight:m=void 0,imageUpload:h=void 0,documentUpload:g=void 0,labelClassName:_=void 0,inheritWrapperClassName:v=!0,wrapperClassName:y=void 0,className:b=void 0,before:x=void 0,after:S=void 0,validator:C=void 0,commands:w=void 0,commandsTrigger:T=void 0})=>{let{value:E,handleChange:D,formWrapClass:O}=Rd({name:e,onChange:t,wrapperClassName:y,defaultValue:r,inheritWrapperClassName:v}),k=Ld(e,{required:a,label:i,validator:C}),A=(0,n.useId)(),[j,M]=(0,n.useState)(Wu);(0,n.useEffect)(()=>{j||Ku().then(M)},[j]);let N=(0,n.useCallback)(t=>{D?.({target:{name:e,value:t}})},[D,e]),P=f!==!1&&Ju(f);return n.default.createElement(Z,{className:O},i&&n.default.createElement(ws,{label:i,required:a,htmlFor:A,className:_}),n.default.createElement(`div`,{className:X(x||S?Zo:``)},x&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-md rounded-r-none border-r-0`)},x),n.default.createElement(`div`,{className:`min-w-0 flex-1`},j?n.default.createElement(ld,{modules:j,name:e,value:E??``,outputFormat:d,placeholder:o,disabled:s,toolbar:l,toolbarCommands:u,statusBar:P,minHeight:p,maxHeight:m,imageUpload:h,documentUpload:g,hasError:!!k,className:b,onEditorChange:N,commands:w,commandsTrigger:T}):n.default.createElement(`div`,{className:X(`rounded-md border border-input bg-muted/30 shadow-sm`,k&&`border-destructive`),style:{minHeight:p},"aria-busy":`true`,"aria-label":js(i)||void 0})),S&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-none rounded-r-md border-l-0`)},S)),k?n.default.createElement(os,{message:k}):c&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},c))},dd={string:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ls,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),number:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(us,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),email:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ds,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),password:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(fs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),color:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ps,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),url:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(bs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),range:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ys,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),date:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ms,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),time:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(hs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),datetime:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(gs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),week:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(_s,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),month:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(vs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),textarea:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Ts,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),richtext:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ud,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),checkbox:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Ss,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),switch:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Cs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),select:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(zs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),autocomplete:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Vs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),checklist:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Hs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),uploadImage:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Oc,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),uploadDocument:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Dc,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),prompt:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(pu,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),imageField:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(oc,{name:t??e.name,label:r??t,...e,...i})}),menu:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(zs,{key:t,name:t,label:r??t,...e,...i})}),codeEditor:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue??``}),render:({name:t,label:r,...i}={})=>n.default.createElement(Hu,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})})},$=dd,fd=e=>e===void 0?void 0:js(e),pd={layout:Go,input:dd,schema:{string:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.string({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),number:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.number({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),min:$.number({label:`Minimo`,defaultValue:e.min}),max:$.number({label:`Massimo`,defaultValue:e.max}),step:$.number({label:`Step`,min:0,defaultValue:e.step}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),email:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.email({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),password:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),color:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),defaultValue:$.color({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),date:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),defaultValue:$.date({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),min:$.number({label:`Data minima`,defaultValue:e.min}),max:$.number({label:`Data massima`,defaultValue:e.max}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),time:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),defaultValue:$.time({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),datetime:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),defaultValue:$.datetime({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),week:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),defaultValue:$.week({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),month:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),defaultValue:$.month({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),textarea:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.textarea({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),minHeight:$.number({label:`Altezza minima`,min:0,defaultValue:e.minHeight}),maxHeight:$.number({label:`Altezza massima`,min:0,defaultValue:e.maxHeight}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),checkbox:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),defaultValue:$.switch({label:`Valore default`,defaultValue:e.defaultValue}),title:$.string({label:`Titolo tooltip`,defaultValue:e.title}),valueChecked:$.string({label:`Valore checked`,defaultValue:e.valueChecked?.toString()})}),switch:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),defaultValue:$.switch({label:`Valore default`,defaultValue:e.defaultValue}),title:$.string({label:`Titolo tooltip`,defaultValue:e.title}),valueChecked:$.string({label:`Valore checked`,defaultValue:e.valueChecked?.toString()})}),select:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),defaultValue:$.string({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),autocomplete:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),minItems:$.number({label:`Min selezioni`,min:0,defaultValue:e.minItems}),maxItems:$.number({label:`Max selezioni`,min:1,defaultValue:e.maxItems}),creatable:$.switch({label:`Creazione libera`,defaultValue:e.creatable}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),checklist:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),uploadImage:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),multiple:$.switch({label:`Multiplo`,defaultValue:e.multiple}),editable:$.switch({label:`Modificabile`,defaultValue:e.editable}),max:$.number({label:`Max file`,min:1,defaultValue:e.max}),accept:$.string({label:`Formati accettati`,defaultValue:e.accept}),previewWidth:$.number({label:`Larghezza preview`,min:0,defaultValue:e.previewWidth}),previewHeight:$.number({label:`Altezza preview`,min:0,defaultValue:e.previewHeight})}),uploadDocument:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),multiple:$.switch({label:`Multiplo`,defaultValue:e.multiple}),editable:$.switch({label:`Modificabile`,defaultValue:e.editable}),max:$.number({label:`Max file`,min:1,defaultValue:e.max}),accept:$.string({label:`Formati accettati`,defaultValue:e.accept})}),imageField:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:fd(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required})})},block:{},section:{}},md=class{verifyRequiredMethods(){if(!this.model||typeof this.model!=`object`)throw Error(`[ComponentBlock] Missing property: "model"`);for(let e of[`html`,`form`])if(typeof this[e]!=`function`)throw Error(`[ComponentBlock] Missing method: "${e}()"`)}static default(e){let t=new this;return t.verifyRequiredMethods(),()=>{let[r,i]=n.default.useMemo(()=>vd(t.model),[t.model]);return n.default.createElement(Hd,{defaultValues:i,path:e?.path},t.form(r))}}};function hd(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.render==`function`&&typeof t.getDefaults==`function`}function gd(e){return typeof e==`function`&&e.prototype instanceof md}function _d(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!n.default.isValidElement(e)&&!hd(e)}function vd(e){let t={},n={};function r(e){for(let[t,r]of Object.entries(e))n[t]=r}for(let[n,i]of Object.entries(e))if(hd(i))t[n]=i.render({name:n}),r(i.getDefaults(n));else if(gd(i)){let e=new i,[a,o]=vd(e.model);t[n]=e.form(a),r(o)}else if(Array.isArray(i)){console.warn(`[buildFormFields] ⚠️ The field "${n}" is defined as an array. It has been automatically converted into an object with generated keys (e.g., "${n}_0"). Consider refactoring your model to use an explicit object instead of an array.`);let e={};i.forEach((t,r)=>{let i=`${n}_${r}`;e[i]=t});let[a,o]=vd(e);r(o),t[n]=a}else if(_d(i)){let[e,a]=vd(i);t[n]=e,r(a)}else t[n]=i;return[t,n]}var yd=Symbol(`llmnative.form-controller-store`),bd=()=>({record:void 0,isNewRecord:!0,isDirty:!1,canSave:!1,canDelete:!1,isSaving:!1,isDeleting:!1,saveDisabled:!0,deleteDisabled:!0,hasDraft:!1,draftStatus:null,errors:{},hasErrors:!1}),xd=async()=>!1,Sd=()=>void 0;function Cd(){let e=bd(),t,n=new Set,r={save:xd,delete:xd,reset:Sd,restoreDraft:Sd,discardDraft:Sd},i=()=>{t={...e,save:r.save,delete:r.delete,reset:r.reset,restoreDraft:r.restoreDraft,discardDraft:r.discardDraft,[yd]:a},n.forEach(e=>e())},a={bindActions(e){let t=!1;e.save&&r.save!==e.save&&(r.save=e.save,t=!0),e.delete&&r.delete!==e.delete&&(r.delete=e.delete,t=!0),e.reset&&r.reset!==e.reset&&(r.reset=e.reset,t=!0),e.restoreDraft&&r.restoreDraft!==e.restoreDraft&&(r.restoreDraft=e.restoreDraft,t=!0),e.discardDraft&&r.discardDraft!==e.discardDraft&&(r.discardDraft=e.discardDraft,t=!0),t&&i()},getControllerSnapshot:()=>t,getState:()=>e,setState(t){let n={...e,...t};Object.keys(n).some(t=>e[t]!==n[t])&&(e=n,i())},subscribe(e){return n.add(e),()=>n.delete(e)}};return t={...e,save:r.save,delete:r.delete,reset:r.reset,restoreDraft:r.restoreDraft,discardDraft:r.discardDraft,[yd]:a},a}function wd(e){return e?.[yd]??Cd()}function Td(e){return wd(e)}function Ed(e){let t=Td(e);t.setState(bd()),t.bindActions({save:xd,delete:xd,reset:Sd,restoreDraft:Sd,discardDraft:Sd})}var Dd=(0,n.createContext)(null);function Od(e){let t=(0,n.useRef)(void 0);t.current||=e?wd(e):Cd();let r=e?wd(e):t.current;return(0,n.useSyncExternalStore)(r.subscribe,r.getControllerSnapshot,r.getControllerSnapshot)}function kd(){let e=(0,n.useContext)(Dd);if(!e)throw Error(`useFormActions must be used within a FormControllerContext`);return e}var Ad=e=>Array.isArray(e)?[...e]:e&&typeof e==`object`?{...e}:{},jd=e=>!Number.isNaN(Number(e)),Md=(e,t)=>[`number`,`range`].includes(t)?e===``||e==null?``:Number(e):e,Nd=e=>e!==void 0&&jd(e)?[]:{},Pd=(e,t,n)=>{let r=t.target.name.split(`.`),i=Md(t.target.value,n),a=Ad(e??{}),o=a;for(let e=0;e<r.length-1;e++){let t=r[e],n=r[e+1],i=o[t];o[t]=typeof i==`object`&&i?Ad(i):Nd(n),o=o[t]}let s=r[r.length-1];return i==null||i===``?Array.isArray(o)&&jd(s)?o.splice(Number(s),1):delete o[s]:o[s]=i,a},Fd=(0,n.createContext)(null),Id=(0,n.createContext)(null),Ld=(e,t)=>{let r=(0,n.useContext)(Id),i=(0,n.useRef)(t);return i.current=t,(0,n.useEffect)(()=>{if(r)return r.registerField(e,i),()=>r.unregisterField(e)},[e]),r?.errors[e]},Rd=({name:e,onChange:t,wrapperClassName:r,inputType:i=`text`,defaultValue:a,inheritWrapperClassName:o=!0,subscribeToFullRecord:s=!1})=>{let c=(0,n.useContext)(Fd);if(!c)throw Error(`useFormContext must be used within a FormContext.Provider`);if(!e)throw Error(`useFormContext: name is required`);let l=(0,n.useContext)(Id),u=(0,n.useCallback)(()=>{let t=c.store.getRecord();return s?t??qd:e.split(`.`).reduce((e,t)=>{if(e!=null){if(Array.isArray(e)){let n=Number(t);return isNaN(n)?void 0:e[n]}if(typeof e==`object`)return e[t]}},t)},[c.store,e,s]),d=(0,n.useSyncExternalStore)(c.store.subscribe,u);return{value:(0,n.useMemo)(()=>d===void 0&&a!==void 0?a??``:d??``,[d,a]),handleChange:(0,n.useCallback)(n=>{l?.clearFieldError(n.target.name);let r;c.store.setRecord(e=>(r=Pd(e,n,i),r)),t?.({event:n,name:e,value:n.target.value,record:r??{},onChange:e=>{c.store.setRecord(t=>Pd(t,e,i))}})},[l,c.store,t,e,i]),formWrapClass:[r,o?c.wrapperClassName:void 0].filter(Boolean).join(` `),record:(s?d:c.store.getRecord())??{}}},zd=({name:e,value:t,handleChange:r})=>n.default.useCallback(n=>{n.preventDefault();let i=n.target,a=`${n.dataTransfer.getData(`text/plain`)}`;i.focus();let o=(()=>{let e=document.caretPositionFromPoint?.(n.clientX,n.clientY)??document.caretRangeFromPoint?.(n.clientX,n.clientY);return e&&`offset`in e?e.offset??i.value.length:i.value.length})(),s=String(t??``),c=s.slice(0,o)+a+s.slice(o);r?.({target:{value:c.trim(),name:e}}),requestAnimationFrame(()=>{let e=o+a.length;i.setSelectionRange(e,e)})},[e,t,r]);function Bd(e,t){if(e.indexOf(`.`)===-1||t.indexOf(`.`)===-1)return`${t}.${e}`;let n=Math.min(e.length,t.length),r=0;for(;r<n&&e.charCodeAt(r)===t.charCodeAt(r);)r++;let i=e.lastIndexOf(`.`,r-1);return i===-1?`${t}.${e}`:`${t}.${e.slice(i+1)}`}var Vd=({children:e,parentName:t,parentKey:r,wrapperClassName:i})=>n.default.Children.map(e,e=>{if(!t||!n.default.isValidElement(e))return e;let{name:a,children:o}=e.props,s={};return a&&(s.name=Bd(a,t),s.key=r??s.name,s.wrapperClassName=e.props.wrapperClassName??i,e.props.before&&n.default.isValidElement(e.props.before)&&(s.before=Vd({children:e.props.before,parentName:t,parentKey:`${s.key}.before`})),e.props.after&&n.default.isValidElement(e.props.after)&&(s.after=Vd({children:e.props.after,parentName:t,parentKey:`${s.key}.after`}))),o&&typeof o!=`function`&&(s.children=Vd({children:o,parentName:t,parentKey:r,wrapperClassName:i})),n.default.cloneElement(e,s)});function Hd(e){let t=(0,r.useLocation)(),{path:i,keyGenerator:a,defaultValues:o,children:s,...c}=e,l=(e=>e??(t.hash?`${N(t.pathname)}/${t.hash.slice(1)}`:void 0))(i);return o||!l||a?n.default.createElement(Jd,{children:s,defaultValues:o,path:i,keyGenerator:a,...c}):n.default.createElement(Ud,{children:s,defaultValues:o,path:l,keyGenerator:a,...c})}var Ud=e=>{let{path:t,defaultValues:r,...i}=e,a=or(),[o,s]=(0,n.useState)(void 0);return(0,n.useEffect)(()=>{a.read(t).then(e=>{s({...r,...e})}).catch(e=>{console.error(e),s({})})},[a,t,r]),o?n.default.createElement(Jd,{...i,defaultValues:o,path:t}):n.default.createElement(`p`,{className:`p-4`},n.default.createElement(`span`,{className:`mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}),`Loading...`)},Wd=e=>JSON.stringify(fe(e??{})),Gd=e=>{if(e)try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return t}catch{return}};function Kd(e){let t=e,n=new Set;return{getRecord:()=>t,setRecord:e=>{t=typeof e==`function`?e(t):e,n.forEach(e=>e())},subscribe:e=>(n.add(e),()=>n.delete(e))}}var qd={},Jd=({children:e,appearance:t=void 0,controller:i=void 0,header:a=void 0,footer:o=void 0,path:s=void 0,defaultValues:l=void 0,keyGenerator:u=void 0,onLoad:d=void 0,onRecordChange:f=void 0,onSave:p=void 0,onDelete:m=void 0,onComplete:h=void 0,log:g=!1,showNotice:_=!0,requireChanges:v=!0,draftBucket:y=void 0,noticeAnchorRef:b=void 0,showBack:x=!1,wrapperClassName:S=void 0,headerClassName:C=void 0,className:w=void 0,footerClassName:T=void 0,formClassName:E=void 0})=>{let D=(0,r.useLocation)(),O=J(`form`),k=Y(`form`),A=or(),j=Od(i),M=Td(j),F=(0,n.useRef)(void 0);F.current||=Kd(l);let I=F.current,L=(0,n.useSyncExternalStore)(I.subscribe,I.getRecord),R=I.setRecord,[z,B]=(0,n.useState)(!1),[ee,V]=(0,n.useState)(!1),H=!l?.[ji],te=(0,n.useRef)(ae(l??{})),[ne,re]=(0,n.useState)(()=>Wd(l)),[ie,U]=(0,n.useState)(null),W=(0,n.useRef)({isDirty:!1}),oe=(0,n.useMemo)(()=>{if(!y)return;let e=P(y),t=P(s||`${D.pathname}${D.hash||``}`);return e&&t?`llmnative.form-draft.${e}.${t}`:void 0},[y,D.pathname,D.hash,s]),se=!!(p||s||!H),ce=!(!m&&H),G=(0,n.useMemo)(()=>!me(L,te.current),[L,te.current]),le=k.noChangesToSave??`No changes to save`,ue=k.draftRestoreTitle??`Unsaved changes found`,K=k.draftRestoreMessage??`A local draft is available for this form. Restore it or discard it.`,de=k.draftRestoreAction??`Restore`,pe=k.draftDiscardAction??`Discard`,he=k.draftRestoredTitle??`Draft restored`,ge=k.draftRestoredMessage??`The local draft has been restored. You can still discard it for a few seconds.`,_e=(0,n.useCallback)(()=>{oe&&typeof localStorage<`u`&&localStorage.removeItem(oe)},[oe]),ve=(0,n.useCallback)(()=>{if(oe&&typeof localStorage<`u`)return Gd(localStorage.getItem(oe))},[oe]),ye=(0,n.useCallback)(()=>{R(ae(te.current))},[]),[be,xe]=(0,n.useState)(void 0),Se=(0,n.useCallback)(({message:e,type:t=`danger`})=>{_&&xe({type:t,message:e})},[_]),[Ce,we]=(0,n.useState)({}),Te=(0,n.useRef)({}),Ee=(0,n.useRef)(null),De=(0,n.useRef)(L),Oe=(0,n.useRef)(l),ke=(0,n.useRef)(p),Ae=(0,n.useRef)(m),je=(0,n.useRef)(h),Me=(0,n.useRef)(s),Ne=(0,n.useRef)(g),q=(0,n.useCallback)(()=>{_e(),ye(),U(null)},[_e,ye]),Pe=(0,n.useCallback)(()=>{let e=ve();if(!e){U(null);return}R(ae(e)),U(`restored`)},[ve]),Fe=(0,n.useCallback)(()=>{we({}),xe(void 0),U(null),ye()},[ye]),Ie=(0,n.useCallback)((e,t)=>{Te.current[e]=t},[]),Le=(0,n.useCallback)(e=>{delete Te.current[e]},[]),Re=(0,n.useCallback)(e=>{we(t=>{if(!t[e])return t;let{[e]:n,...r}=t;return r})},[]),ze=(0,n.useCallback)(async()=>{let e={};for(let[t,n]of Object.entries(Te.current)){let{required:r,label:i,validator:a}=n.current,o=t.split(`.`).reduce((e,t)=>{if(e!=null){if(Array.isArray(e))return e[Number(t)];if(typeof e==`object`)return e[t]}},De.current);if(r&&(o==null||typeof o==`string`&&o.trim()===``||Array.isArray(o)&&o.length===0)){let n=js(i);e[t]=n?ot(k.requiredField,{field:n}):k.requiredFieldGeneric;continue}if(a){let n=await a(o);n&&(e[t]=n)}}if(we(e),Object.keys(e).length>0){let t=Object.keys(e)[0];requestAnimationFrame(()=>{Ee.current?.querySelector(`[name="${CSS.escape(t)}"]`)?.focus()})}return Object.keys(e).length===0},[k]),Be=(0,n.useCallback)(e=>{if(!s)return;let t=N(s);if(H)return t.split(`/`).filter(Boolean).length%2==0&&!u?`/${t}`:`/${t}/${u?.(e)??Date.now().toString()}`;let n=e[ji];if(!n)return s;let r=t.split(`/`).filter(Boolean);return`/${r[r.length-1]===n?r.slice(0,-1).join(`/`):t}/${n}`},[s,u,H]),Ve=(0,n.useCallback)(async e=>{if(Ne.current&&Me.current&&A){let t=new Date().toISOString(),n=Mn(`user`);A.set(`/log/${Me.current}/${P(t)}`,{user:n?.email??`unknown`,when:t,action:e,record:De.current})}return Se({message:e===`delete`?k.deleteSuccess:k.saveSuccess,type:`success`}),await je.current?.({record:De.current,action:e})??!0},[A,Se,k]),He=(0,n.useCallback)(async e=>{if(e?.preventDefault?.(),v&&!G)return _&&xe({message:le,type:`info`}),!1;if((0,c.flushSync)(()=>{we({}),_&&xe(void 0)}),!await ze())return _&&xe({message:k.noticeRequiredFields,type:`warning`}),!1;let t=H?`create`:`update`;B(!0);try{let e=(ke.current&&await ke.current({record:De.current,prevRecord:Oe.current,action:t,storagePath:Me.current}))??Be(De.current??{});return e&&await A.set(e,fe(De.current)),te.current=ae(De.current??{}),re(Wd(De.current)),_e(),U(null),await Ve(t)}finally{B(!1)}},[_e,Be,A,k.noticeRequiredFields,Ve,G,H,le,v,_,ze]),Ue=(0,n.useCallback)(async e=>{e?.preventDefault?.(),_&&xe(void 0),V(!0);try{let e=(Ae.current&&await Ae.current({record:De.current}))??Be(De.current??{});return e&&await A.remove(e),_e(),U(null),await Ve(`delete`)}finally{V(!1)}},[_e,Be,A,Ve,_]);(0,n.useEffect)(()=>{let e=ae(l??{});if(l&&(R(e),d?.(ae(e))),te.current=e,re(Wd(e)),!y){U(null);return}let t=ve();if(t&&Wd(t)!==Wd(e)){U(`restore`);return}U(null)},[JSON.stringify(l),y,d,ve]),(0,n.useEffect)(()=>{De.current=L,L!==void 0&&f?.(L)},[L,f]),(0,n.useEffect)(()=>{Oe.current=l,ke.current=p,Ae.current=m,je.current=h,Me.current=s,Ne.current=g},[l,g,h,m,p,s]),(0,n.useEffect)(()=>{if(!oe||typeof localStorage>`u`||L===void 0)return;if(!G){let e=ve();if(e&&Wd(e)!==ne)return;localStorage.removeItem(oe);return}let e=window.setTimeout(()=>{try{localStorage.setItem(oe,JSON.stringify(fe(L)))}catch{Se({type:`warning`,message:k.draftSaveError??`Could not save a local draft — the change is too large for browser storage (e.g. an unsent image upload). Save the form to keep it.`})}},150);return()=>window.clearTimeout(e)},[ne,oe,G,Se,ve,L]),(0,n.useEffect)(()=>{W.current={storageKey:oe,record:L,isDirty:G}},[oe,G,L]),(0,n.useEffect)(()=>()=>{let{storageKey:e,record:t,isDirty:n}=W.current;if(e&&n&&t&&typeof localStorage<`u`)try{localStorage.setItem(e,JSON.stringify(fe(t)))}catch{}},[]),(0,n.useEffect)(()=>{M.bindActions({save:He,delete:Ue,reset:Fe,restoreDraft:Pe,discardDraft:q})},[M,q,Ue,He,Fe,Pe]),(0,n.useEffect)(()=>{M.setState({record:De.current,isNewRecord:H,isDirty:G,canSave:se,canDelete:ce,isSaving:z,isDeleting:ee,saveDisabled:!se||v&&!G||z,deleteDisabled:!ce||ee,hasDraft:ie!==null,draftStatus:ie,errors:Ce,hasErrors:Object.keys(Ce).length>0})},[ce,se,M,ie,Ce,ee,G,H,z,L,v]),(0,n.useEffect)(()=>()=>Ed(j),[M]);let We=(0,n.useCallback)(e=>{e.defaultPrevented||!e.ctrlKey&&!e.metaKey||e.key.toLowerCase()!==`s`||j.saveDisabled||(e.preventDefault(),j.save())},[j]),Ge=(0,n.useMemo)(()=>({registerField:Ie,unregisterField:Le,clearFieldError:Re,errors:Ce}),[Ie,Le,Re,Ce]),Ke=(0,n.useMemo)(()=>({store:I,wrapperClassName:`mb-3`}),[I]),qe=(0,n.useMemo)(()=>n.default.createElement(Dd.Provider,{value:j},n.default.createElement(Fd.Provider,{value:Ke},n.default.createElement(Id.Provider,{value:Ge},typeof e==`function`?e({record:L}):e))),[e,j,Ke,L,Ge]),Je=(0,n.useMemo)(()=>be?n.default.createElement(Da,{variant:be.type,appearance:b?`default`:`text`,placement:b?`sticky`:`inline`,anchorRef:b,timeout:be.type===`success`?3e3:void 0,onClose:be.type===`success`?()=>xe(void 0):void 0},be.message):null,[be,b]),Ye=(0,n.useMemo)(()=>{if(!ie)return null;let e=ie===`restore`?ue:he,t=ie===`restore`?K:ge;return n.default.createElement(Da,{variant:ie===`restore`?`warning`:`info`,timeout:ie===`restored`?6e3:void 0,onClose:ie===`restored`?()=>U(null):void 0},n.default.createElement(`div`,{className:`flex items-start justify-between gap-3`},n.default.createElement(`div`,{className:`min-w-0`},n.default.createElement(`div`,{className:`font-medium`},e),n.default.createElement(`div`,{className:`text-sm opacity-90`},t)),n.default.createElement(`div`,{className:`flex shrink-0 items-center gap-2`},ie===`restore`?n.default.createElement(n.default.Fragment,null,n.default.createElement(Cn,{label:de,variant:`warning`,onClick:()=>Pe()}),n.default.createElement(Cn,{label:pe,variant:`outline-secondary`,onClick:()=>q()})):n.default.createElement(Cn,{label:pe,variant:`outline-secondary`,onClick:()=>q()}))))},[q,pe,ie,de,K,ue,ge,he,Pe]),Xe=(0,n.useMemo)(()=>{switch(t){case`empty`:return n.default.createElement(n.default.Fragment,null,Ye,qe,Je);default:return n.default.createElement(fr,{header:a||n.default.createElement(Gr,{rootItem:H?k.headerAdd:k.headerEdit,trail:s||void 0}),footer:(o||!H||p||m||x||!!s)&&n.default.createElement(n.default.Fragment,null,o,Je,(p||!!s||!H)&&n.default.createElement(Sn,{className:X(O.Form.buttonSaveClass,j.saveDisabled&&`cursor-not-allowed opacity-50`),label:k.buttonSave,title:j.saveDisabled&&!G?le:void 0,disabled:j.saveDisabled,loading:j.isSaving,onClick:e=>j.save(e)}),(m||!H)&&n.default.createElement(Sn,{className:O.Form.buttonDeleteClass,label:k.buttonDelete,disabled:j.deleteDisabled,loading:j.isDeleting,onClick:e=>j.delete(e)}),x&&n.default.createElement(wn,{className:O.Form.buttonBackClass,label:k.buttonBack})),headerClassName:C||O.Form.Card.headerClassName,bodyClassName:w||O.Form.Card.bodyClassName,footerClassName:T||O.Form.Card.footerClassName},n.default.createElement(n.default.Fragment,null,Ye,qe))}},[t,w,qe,k.buttonBack,k.buttonDelete,k.buttonSave,k.headerAdd,k.headerEdit,Ye,o,T,j,a,C,G,H,le,Je,m,p,s,x,O.Form.buttonDeleteClass,O.Form.buttonSaveClass,O.Form.buttonBackClass,O.Form.Card.bodyClassName,O.Form.Card.footerClassName,O.Form.Card.headerClassName]);return n.default.createElement(Z,{className:S||O.Form.wrapperClassName},n.default.createElement(`form`,{ref:Ee,className:E,noValidate:!0,onSubmit:e=>e.preventDefault(),onKeyDownCapture:We,onKeyDown:We},Xe))},Yd=`flex items-center justify-between gap-3 border-b border-border/50 px-3 py-2`,Xd=`text-xs font-medium uppercase tracking-[0.14em] text-muted-foreground`,Zd=`px-3 py-3`,Qd=`h-7 w-7 rounded-md bg-transparent p-0 text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,$d=({name:e,children:t,onChange:r,onAdd:i,onRemove:a,className:o,layout:s=`horizontal`,minItems:c=void 0,maxItems:l=void 0,label:u=void 0,labelPosition:d=`top`,hideRemoveButton:f=!1,readOnly:p=!1})=>{let{value:m,handleChange:h}=Rd({name:e,onChange:r}),g=Array.isArray(m)?m:[],_=J(`repeat`),v=X(`rounded-xl border border-border/60 bg-card/80 shadow-sm`,_.Repeat.itemClassName),y=(n,r)=>Vd({children:typeof t==`function`?t({record:g[n],records:g,index:n,remove:()=>C(n)}):t,parentName:`${e}.${n}`,wrapperClassName:r}),b=(e,t)=>{switch(s){case`horizontal`:return n.default.createElement(`div`,{className:v},n.default.createElement(`div`,{className:Yd},n.default.createElement(`span`,{className:Xd},`#`,e+1),t&&!f?n.default.createElement(Cn,{className:Qd,icon:`x`,onClick:()=>C(e)}):n.default.createElement(`span`,{className:`h-7 w-7`,"aria-hidden":`true`})),n.default.createElement(`div`,{className:Zd},y(e)));case`vertical`:return n.default.createElement(n.default.Fragment,null);case`inline`:return n.default.createElement(`div`,{className:X(v,`px-3 py-2`,_.Repeat.inlineItemClassName)},n.default.createElement(`div`,{className:`flex items-start gap-2`},n.default.createElement(`div`,{className:`flex-1 min-w-0`},y(e,`!mb-0`)),t&&!f&&n.default.createElement(Cn,{className:X(Qd,`mt-1 shrink-0`),icon:`x`,onClick:()=>C(e)})))}},x=(g.length>0?g:Array.from({length:c||0},()=>({})))?.map((t,r)=>{let i=!p&&r>=(c||0);return n.default.createElement(n.default.Fragment,{key:`${e}-${r}`},b(r,i))}),S=()=>{let t=g.length>0?[...g,{}]:Array.from({length:x.length+1},()=>({}));i?.(t),h({target:{name:`${e}.${t.length-1}`,value:{}}})},C=t=>{a?.(t),h({target:{name:`${e}.${t}`}})},w=(0,n.useMemo)(()=>p?null:!l||x.length<l?u&&d===`bottom`?n.default.createElement(Cn,{icon:`plus`,label:u,variant:`link`,className:X(`w-full justify-start gap-1 rounded-lg border border-dashed border-border/60 px-3 py-2 text-sm text-muted-foreground hover:border-border hover:bg-muted/40 hover:text-foreground`,_.Repeat.addButtonClassName),onClick:S}):n.default.createElement(Cn,{icon:`plus`,label:u?void 0:`Add`,variant:u?`link`:`secondary`,className:u?X(`h-8 w-8 rounded-lg p-0 text-muted-foreground hover:bg-muted/50 hover:text-foreground`,_.Repeat.addButtonClassName):void 0,onClick:S}):null,[p,l,x.length,u,d,_.Repeat.addButtonClassName]);return n.default.createElement(`div`,{className:X(`space-y-3`,o)},u&&d===`top`&&n.default.createElement(`div`,{className:`flex items-center justify-between gap-3`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},u),w),x,!u&&w,u&&d===`bottom`&&w)},ef={default:{shellClassName:`space-y-4`,menuClassName:`flex flex-wrap items-end gap-2 border-b border-border/70`,contentClassName:`min-w-0`,itemClassName:`shrink-0`,triggerClassName:`inline-flex items-center rounded-t-lg border-b-2 px-3 py-2 text-sm font-medium transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`border-primary text-foreground`,inactiveTriggerClassName:`border-transparent text-muted-foreground hover:text-foreground hover:border-border/80`},top:{shellClassName:`space-y-4`,menuClassName:`inline-flex max-w-full flex-wrap gap-2 rounded-xl bg-muted/50 p-1.5`,contentClassName:`min-w-0`,itemClassName:`shrink-0`,triggerClassName:`inline-flex items-center rounded-lg px-3 py-2 text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-card text-foreground shadow-sm ring-1 ring-border/60`,inactiveTriggerClassName:`text-muted-foreground hover:bg-background/80 hover:text-foreground`},left:{shellClassName:`flex h-full min-h-0 flex-col gap-5 md:flex-row md:items-start`,menuClassName:`flex shrink-0 gap-2 overflow-x-auto md:w-64 md:flex-col md:overflow-visible`,contentClassName:`min-h-0 min-w-0 flex-1 overflow-hidden rounded-2xl border border-border/60 bg-card/80 p-4 shadow-sm`,itemClassName:`shrink-0 md:w-full`,triggerClassName:`inline-flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-primary/10 text-primary shadow-sm ring-1 ring-primary/15`,inactiveTriggerClassName:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`},right:{shellClassName:`flex h-full min-h-0 flex-col gap-5 md:flex-row md:items-start`,menuClassName:`order-1 flex shrink-0 gap-2 overflow-x-auto md:order-2 md:w-64 md:flex-col md:overflow-visible`,contentClassName:`order-2 min-h-0 min-w-0 flex-1 overflow-hidden rounded-2xl border border-border/60 bg-card/80 p-4 shadow-sm md:order-1`,itemClassName:`shrink-0 md:w-full`,triggerClassName:`inline-flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-primary/10 text-primary shadow-sm ring-1 ring-primary/15`,inactiveTriggerClassName:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`},bottom:{shellClassName:`space-y-4`,menuClassName:`flex flex-wrap gap-2 rounded-xl bg-muted/50 p-1.5`,contentClassName:`min-w-0 rounded-2xl border border-border/60 bg-card p-4 shadow-sm`,itemClassName:`shrink-0`,triggerClassName:`inline-flex items-center rounded-lg px-3 py-2 text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-card text-foreground shadow-sm ring-1 ring-border/60`,inactiveTriggerClassName:`text-muted-foreground hover:bg-background/80 hover:text-foreground`}};function tf(e){return ef[e]}function nf(e,t,n){let r=tf(e),i=J(`tab`);return X(`cursor-pointer`,r.triggerClassName,i.Tab.triggerClassName,t?r.activeTriggerClassName:r.inactiveTriggerClassName,t?i.Tab.activeTriggerClassName:i.Tab.inactiveTriggerClassName,n)}function rf(e){return X(`min-h-0 min-w-0 h-full overflow-x-hidden overflow-y-auto`,J(`tab`).Tab.contentClassName,e)}var af={default:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=tf(`default`),o=J(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},top:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=tf(`top`),o=J(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},left:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=tf(`left`),o=J(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`vertical`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},right:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=tf(`right`),o=J(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`vertical`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},bottom:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=tf(`bottom`),o=J(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t),n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e))}},of=()=>null,sf=({children:e,motion:t})=>{let r=J(`tab`),i=Ht(void 0,t??r.Tab.motion?.enter??`fadeUp`,r.Tab.motion?.enter??`fadeUp`);return n.default.createElement(`div`,{style:i,className:rf()},e)},cf=({children:e,defaultIndex:t=0,onChange:r,layout:i=`default`,menuClassName:a=void 0,contentClassName:o=void 0,before:s=void 0,after:c=void 0,wrapperClassName:l=void 0,className:u=void 0,motion:d=void 0})=>{let[f,p]=(0,n.useState)(t),m=e=>{p(e),r?.(e)},h=n.Children.toArray(e).filter(e=>n.default.isValidElement(e)&&e.type===of),g=(0,n.useMemo)(()=>tf(i),[i]),_=af[i],v=J(`tab`);return n.default.createElement(Z,{className:X(v.Tab.wrapperClassName,l)},s,n.default.createElement(`div`,{className:X(`min-w-0`,v.Tab.className,u)},n.default.createElement(_,{menuClassName:a,contentClassName:o,menu:h.map((e,t)=>n.default.createElement(`div`,{key:t,className:X(g.itemClassName,v.Tab.itemClassName)},n.default.createElement(`button`,{type:`button`,role:`tab`,"aria-selected":t===f,onClick:()=>m(t),className:nf(i,t===f)},e.props.label))),content:n.default.createElement(sf,{key:f,motion:d},h[f]?.props?.children)})),c)};function lf({records:e,selectedKeys:t,onSelectionChange:r,getRecordKey:i}){let a=t,o=a!==void 0&&!!r,[s,c]=(0,n.useState)(a??[]);(0,n.useEffect)(()=>{a!==void 0&&!o&&c(a)},[a,o]);let l=o?a||[]:s,u=!!r||a!==void 0,d=(0,n.useCallback)(t=>{let n=new Set(t);return{keys:t,records:e.filter((e,t)=>n.has(i(e,t))),hasSelection:t.length>0}},[i,e]),f=(0,n.useCallback)(e=>{o||c(e);let t=d(e);r?.({...t,clear:()=>f([])})},[d,o,r]),p=(0,n.useCallback)(()=>{f([])},[f]);return{activeSelectedKeys:l,selectionState:(0,n.useMemo)(()=>({...d(l),clear:p}),[l,d,p]),showSelection:u,updateSelection:f}}function uf(e,t){let r=(0,n.useRef)(new WeakMap),i=(0,n.useRef)(0);return(0,n.useCallback)((n,a)=>{if(t!=null){let e=typeof t==`function`?t(n):n[t];if(e!=null&&e!==``)return String(e)}if(n._key)return n[ji];let o=n,s=r.current.get(o);if(s)return s;let c=`${e}-${i.current++}`;return r.current.set(o,c),c},[e,t])}function df({columns:e=void 0,records:t=void 0,footer:r=void 0,onRowClick:i=void 0,onReorder:a=void 0,onSelectionChange:s=void 0,selection:c=`multiple`,sortable:l=!1,pagination:u=void 0,activeKey:d=void 0,selectedKeys:f=void 0,groupBy:p=void 0,recordId:m=void 0,before:h=void 0,after:g=void 0,wrapperClassName:_=void 0,className:v=void 0,headerClassName:y=void 0,bodyClassName:b=void 0,footerClassName:x=void 0,heightClassName:S=void 0,scrollClassName:C=void 0,selectedClassName:w=void 0,renderCell:T=void 0}){let E=J(`table`),D=Y(`table`),O=w||E.Table.selectedClassName,[k,A]=(0,n.useState)(t||[]),j=(0,n.useMemo)(()=>{if(l&&typeof l!=`boolean`)return l},[typeof l==`object`?l?.dir:void 0,typeof l==`object`?l?.field:void 0]),M=l!==!1,[N,P]=(0,n.useState)(j),[F,I]=(0,n.useState)(null),[L,R]=(0,n.useState)(null),[z,B]=(0,n.useState)(null),[ee,V]=(0,n.useState)(null),[H,te]=(0,n.useState)(null),ne=(0,n.useRef)(!1),re=(0,n.useCallback)(e=>{e&&I(e)},[]),ie=(0,n.useId)(),U=!!a,W=M||!!As.normalize(j),ae=U&&W,oe=!ae&&M,se=ae?void 0:j;(0,n.useEffect)(()=>{A(t||[])},[t]),(0,n.useEffect)(()=>{P(se)},[se?.field,se?.dir]),(0,n.useEffect)(()=>{ae&&!ne.current&&(console.warn("Table: `onReorder` cannot be combined with sortable sorting on the same view. Manual reorder takes precedence and sorting is ignored."),ne.current=!0)},[ae]);let ce=uf(`row`,m),G=(0,n.useCallback)((e,t)=>ce(e,t),[ce]),{activeSelectedKeys:le,selectionState:ue,showSelection:K,updateSelection:de}=lf({records:k,selectedKeys:f,onSelectionChange:s,getRecordKey:G});(0,n.useEffect)(()=>{H&&(k.some((e,t)=>G(e,t)===H)||te(null))},[H,G,k]),(0,n.useEffect)(()=>{if(N||!e?.length||U)return;let t=e.find(e=>oe&&e.sort!==!1);t&&P({field:t.key,dir:`asc`})},[N,oe,e,U]);let fe=(0,n.useMemo)(()=>As.records(k,N)||[],[k,N]),pe=(e,t,n)=>{let r=e.target;for(;r&&r.tagName!==`TR`;){if([`A`,`BUTTON`,`INPUT`,`LABEL`].includes(r.tagName))return;r=r.parentNode}let a=G(t,n);O&&d===void 0&&te(e=>e===a?null:a),i?.(t)},me=(e,t,r)=>{if(T)return T(e,t,r);let i=e[t],a=typeof i==`object`&&i&&!Array.isArray(i)?i:null,o=a?.prompt&&a?.value||i;return n.default.isValidElement(o)||typeof o!=`object`||!o?o:Array.isArray(o)&&!o.some(e=>typeof e==`object`&&e)?o.join(`, `):``},he=(0,n.useCallback)((e,t)=>{let n=G(e,t),r=le.includes(n)?le.filter(e=>e!==n):[...le,n];de(r)},[le,G,de]),ge=(0,n.useCallback)((e,t)=>{let n=G(e,t);de(le.includes(n)?[]:[n])},[le,G,de]),_e=(0,n.useCallback)((e,t)=>{if(!L)return;let n=fe.findIndex((e,t)=>G(e,t)===L),r=fe.findIndex((n,r)=>G(n,r)===G(e,t));B(null),R(null);let i=ee?.position||`after`;if(V(null),n<0||r<0||n===r)return;let o=[...fe],[s]=o.splice(n,1),c=n<r?r+(i===`after`?0:-1):r+ +(i===`after`);o.splice(c,0,s),P(void 0),A(o),a?.(o,{fromIndex:n,toIndex:c,record:s})},[L,ee?.position,G,a,fe]);if(fe.length===0)return n.default.createElement(`p`,{className:`p-4`},D.noDataFound);let ve=e||Object.keys(fe[0]).map(e=>({key:e,label:e,sort:M})),ye=[`w-full`,E.Table.scrollClassName,S?`${S} overflow-auto`:``,C||``].filter(Boolean).join(` `),be=!!S,xe=ve.length+ +!!K+ +!!U,Se=be?`sticky top-0 z-10 bg-card`:``,Ce=(e,t,r,i)=>!ee||ee.key!==e||ee.position!==t?null:n.default.createElement(`tr`,{"aria-hidden":`true`,onDragOver:n=>{U&&(n.preventDefault(),z!==e&&B(e),V({key:e,position:t}))},onDrop:n=>{U&&(n.preventDefault(),V({key:e,position:t}),_e(r,i))}},n.default.createElement(`td`,{colSpan:xe,className:`border-0 p-0`},n.default.createElement(`div`,{className:`relative h-5 cursor-grab`},n.default.createElement(`div`,{className:`absolute inset-x-2 top-1/2 -translate-y-1/2`},n.default.createElement(`div`,{className:`h-0 rounded-full border-t-2 border-primary/80`}),n.default.createElement(`div`,{className:`absolute left-0 top-1/2 h-2 w-2 -translate-y-1/2 rounded-full bg-primary shadow-sm`}))))),we=n.default.createElement(`tr`,null,K&&n.default.createElement(`th`,{className:[`px-3 py-2 font-semibold text-muted-foreground`,Se].filter(Boolean).join(` `),style:{width:`1%`,whiteSpace:`nowrap`}},c===`single`?n.default.createElement(`div`,{className:`th-inner py-1`}):n.default.createElement(`div`,{className:`th-inner py-1`},n.default.createElement(`input`,{type:`checkbox`,"aria-label":D.selectAllRows,checked:ue.records.length>0&&ue.records.length===k.length,onChange:e=>{let t=e.target.checked?fe.map((e,t)=>G(e,t)):[];de(t)}}))),U&&n.default.createElement(`th`,{className:[`px-3 py-2 font-semibold text-muted-foreground`,Se].filter(Boolean).join(` `),style:{width:`1%`,whiteSpace:`nowrap`}},n.default.createElement(`div`,{className:`th-inner py-1`})),ve.map(e=>e.label?(()=>{let t=oe&&e.sort!==!1,r=t&&N?.field===e.key,i=r?N?.dir===`desc`?`descending`:`ascending`:`none`;return n.default.createElement(`th`,{key:e.key,className:[`px-3 py-2 font-semibold text-muted-foreground whitespace-nowrap`,Se,e.className||``].filter(Boolean).join(` `),"aria-sort":i},t?n.default.createElement(`button`,{type:`button`,className:`th-inner group inline-flex w-full cursor-pointer items-center gap-2 rounded-sm border-0 bg-transparent px-0 py-1 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 `+(r?`font-semibold text-foreground`:`text-muted-foreground hover:text-foreground`),onClick:()=>P(t=>As.toggle(t,e.key)),"aria-label":r?ot(D.sortByCurrent,{label:e.label,direction:N?.dir===`desc`?`descending`:`ascending`}):ot(D.sortBy,{label:e.label}),title:r?`${e.label}: ${N?.dir===`desc`?`descending`:`ascending`}`:ot(D.sortBy,{label:e.label})},n.default.createElement(`span`,{className:`inline-flex h-4 w-4 flex-none items-center justify-center transition-colors `+(r?`text-primary`:`text-muted-foreground/70 group-hover:text-foreground/80`),"aria-hidden":`true`},r?N?.dir===`desc`?n.default.createElement(o.ArrowDown,{size:14}):n.default.createElement(o.ArrowUp,{size:14}):n.default.createElement(o.ArrowUpDown,{size:14})),n.default.createElement(`span`,null,e.label)):n.default.createElement(`div`,{className:`th-inner py-1`},e.label))})():n.default.createElement(`th`,{key:e.key,className:[`px-3 py-2 font-semibold text-muted-foreground`,Se].filter(Boolean).join(` `),style:{width:`1%`,whiteSpace:`nowrap`}}))),Te=n.default.createElement(Im,{records:fe,appendTo:F,wrapperClassName:`px-3 pt-4 pb-2`,...u||{}},(e,t)=>{let r=p?Array.isArray(p)?p:[p]:null,a;return e.map((e,s)=>{let l=t+s,u=G(e,l),f=r?r.map(t=>String(e[t]??``)).join(` · `):void 0,p=f!==void 0&&f!==a;a=f;let m=le.includes(u),h=z===u,g=L===u,_=O&&(d===void 0?H:d)===u;return n.default.createElement(n.default.Fragment,{key:u},p&&n.default.createElement(`tr`,{"aria-hidden":`true`},n.default.createElement(`td`,{colSpan:xe,className:`bg-muted/40 px-3 py-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},f)),Ce(u,`before`,e,l),n.default.createElement(`tr`,{draggable:U,className:[`odd:bg-muted/30 hover:bg-muted/20 transition-colors`,h?`bg-muted/30`:``,_?O:``].filter(Boolean).join(` `)||void 0,style:{cursor:i?`pointer`:U?`grab`:`default`,opacity:g?.45:1},onClick:t=>{i&&pe(t,e,l)},onDragStart:()=>{R(u)},onDragOver:e=>{if(!U)return;e.preventDefault();let t=e.currentTarget.getBoundingClientRect(),n=e.clientY<t.top+t.height/2?`before`:`after`;z!==u&&B(u),L!==u&&V(e=>e?.key===u&&e.position===n?e:{key:u,position:n})},onDragLeave:()=>{z===u&&B(null)},onDragEnd:()=>{R(null),B(null),V(null)},onDrop:t=>{U&&(t.preventDefault(),_e(e,l))}},K&&n.default.createElement(`td`,{className:`px-3 py-2 border-b border-border/50`,style:{width:`1%`,whiteSpace:`nowrap`}},n.default.createElement(`input`,{type:c===`single`?`radio`:`checkbox`,name:c===`single`?ie:void 0,"aria-label":ot(D.selectRow,{key:u}),checked:m,onChange:()=>{if(c===`single`){ge(e,l);return}he(e,l)},onClick:t=>{t.stopPropagation(),c===`single`&&(t.preventDefault(),ge(e,l))}})),U&&n.default.createElement(`td`,{className:`px-3 py-2 border-b border-border/50`,style:{width:`1%`,whiteSpace:`nowrap`}},n.default.createElement(`button`,{type:`button`,draggable:U,className:`inline-flex cursor-grab items-center justify-center rounded-sm border-0 bg-transparent p-0 text-muted-foreground`,"aria-label":ot(D.reorderRow,{key:u}),onClick:e=>e.preventDefault(),onDragStart:e=>{e.stopPropagation(),R(u)},onDragEnd:e=>{e.stopPropagation(),R(null),B(null),V(null)}},n.default.createElement(o.GripVertical,{size:14}))),ve.map(t=>n.default.createElement(`td`,{key:t.key,className:`px-3 py-2 border-b border-border/50`},me(e,t.key,l)))),Ce(u,`after`,e,l))})});return n.default.createElement(`div`,{className:`flex items-stretch gap-3`},h&&n.default.createElement(`div`,{className:`table-before flex shrink-0 items-center self-stretch`},h),n.default.createElement(`div`,{ref:re,className:`min-w-0 flex-1 overflow-x-auto `+(_||E.Table.wrapperClassName)},n.default.createElement(`div`,{className:ye},n.default.createElement(`table`,{className:`w-full text-left text-sm border-collapse `+(v||E.Table.className)},n.default.createElement(`thead`,{className:`border-b `+(y||E.Table.headerClassName)},we),n.default.createElement(`tbody`,{className:b||E.Table.bodyClassName},Te),r&&n.default.createElement(`tfoot`,{className:x||E.Table.footerClassName},r)))),g&&n.default.createElement(`div`,{className:`table-after flex shrink-0 items-center self-stretch`},g))}var ff=12,pf=12,mf=(e,t,n)=>Math.max(t,Math.min(n,e)),hf=e=>{if(!e)return``;let t=e.trim().replace(/^\{/,``).replace(/\}$/,``).trim(),n=t.split(`.`);return(n[n.length-1]||t).trim()},gf=(e,t)=>{let n=e-t.left,r=t.width/ff;return mf(Math.floor(n/r),0,11)},_f=()=>`${Date.now()}_${Math.random().toString(16).slice(2)}`,vf=(e,t,n)=>{let r=e=>{let r=e+t;return r>ff?!1:!n.some(t=>{let n=e,i=r,a=t.colStart;return n<t.colStart+t.colSpan&&a<i})};for(let n=e;n<=ff-t;n++)if(r(n))return n;for(let e=0;e<=ff-t;e++)if(r(e))return e;return null},yf=(e,t,n)=>{let r=e.find(e=>e.id===t);if(!r)return e;let i=e.filter(e=>e.id!==t),a=vf(mf(n,0,ff-r.colSpan),r.colSpan,i);return a===null?e:e.map(e=>e.id===t?{...e,colStart:a}:e)},bf=(e,t,n)=>{let r=e.find(e=>e.id===t);if(!r)return e;let i=e.filter(e=>e.id!==t),a=mf(n,1,ff-r.colStart),o=e=>{let t=r.colStart,n=r.colStart+e;return i.some(e=>{let r=e.colStart,i=e.colStart+e.colSpan;return t<i&&r<n})};for(;a>1&&o(a);)a--;return o(a)?e:e.map(e=>e.id===t?{...e,colSpan:a}:e)},xf=(e,t,n)=>{if(n<=0)return null;let r=e.map(e=>{let n=e.colStart+e.colSpan/2;return{it:e,dist:Math.abs(n-(t+.5))}}).sort((e,t)=>e.dist-t.dist).map(e=>e.it);for(let t of r){if(t.colSpan-1<n)continue;let r=t.colSpan-n,i=t.colStart+r;if(!(i<0||i+n>ff))return{nextItems:e.map(e=>e.id===t.id?{...e,colSpan:r}:e),insertCol:i}}return null},Sf=(0,n.forwardRef)(({name:e,defaultSpan:t=1,heightPx:r=100},i)=>{let a=(0,n.useRef)(null),o=Y(`layout`),{value:s,handleChange:c}=Rd({name:e,defaultValue:[]}),l=Array.isArray(s)?s:[],u=t=>{let n=typeof t==`function`?t(l):t;c({target:{name:e,value:n}})},[d,f]=(0,n.useState)(null),[p,m]=(0,n.useState)(null),[h,g]=(0,n.useState)(``),_=(0,n.useRef)(null),v=e=>{g(e),_.current&&window.clearTimeout(_.current),_.current=window.setTimeout(()=>g(``),2500)};(0,n.useEffect)(()=>()=>{_.current&&window.clearTimeout(_.current)},[]),(0,n.useImperativeHandle)(i,()=>({getValue:()=>l,setValue:e=>u(e),clear:()=>u([])}));let y=(0,n.useMemo)(()=>Array.from({length:ff},(e,t)=>t),[]),b=e=>{e.preventDefault()},x=e=>{if(e.preventDefault(),e.dataTransfer.getData(`application/x-layoutbuilder-internal`)){f(null);return}if(l.length>=pf){v(o.maxElements);return}let n=a.current;if(!n)return;let r=n.getBoundingClientRect(),i=gf(e.clientX,r),s=hf(e.dataTransfer.getData(`text/plain`)||e.dataTransfer.getData(`label`)||``)||`unknown`,c=mf(t,1,ff),d=vf(mf(i,0,ff-c),c,l);if(d!==null){u(e=>[...e,{id:_f(),fieldName:s,colStart:d,colSpan:c}]);return}if(!xf(l,i,c)){v(o.noSpace);return}u(e=>{if(e.length>=pf)return v(o.maxElements),e;let t=xf(e,i,c);if(!t)return v(o.noSpace),e;let n={id:_f(),fieldName:s,colStart:t.insertCol,colSpan:c};return[...t.nextItems,n]})},S=e=>t=>{f(e),t.dataTransfer.setData(`application/x-layoutbuilder-internal`,e),t.dataTransfer.effectAllowed=`move`},C=e=>{if(e.preventDefault(),!d)return;let t=a.current;if(!t)return;let n=t.getBoundingClientRect(),r=gf(e.clientX,n);u(e=>yf(e,d,r))},w=()=>f(null),T=e=>t=>{t.stopPropagation(),t.preventDefault();let n=l.find(t=>t.id===e);n&&m({id:e,startClientX:t.clientX,startSpan:n.colSpan})},E=e=>{if(!p)return;let t=a.current;if(!t)return;let n=t.getBoundingClientRect().width/ff,r=e.clientX-p.startClientX,i=Math.round(r/n),o=p.startSpan+i;u(e=>bf(e,p.id,o))},D=()=>{p&&m(null)},O=e=>u(t=>t.filter(t=>t.id!==e));return n.default.createElement(`div`,{onMouseMove:E,onMouseUp:D,onMouseLeave:D},h&&n.default.createElement(`div`,{style:{marginBottom:8,padding:`8px 10px`,borderRadius:10,border:`1px solid rgba(255,255,255,0.15)`,background:`rgba(255,255,255,0.04)`,fontSize:12,opacity:.95}},h),n.default.createElement(`div`,{ref:a,onDragOver:e=>{b(e),C(e)},onDrop:x,onDragEnd:w,style:{position:`relative`,height:r,borderRadius:12,border:`2px dashed rgba(255, 255, 255, 0.25)`,background:`rgba(0,0,0,0.02)`,overflow:`hidden`}},y.map(e=>n.default.createElement(`div`,{key:e,style:{position:`absolute`,top:0,bottom:0,left:`${e/ff*100}%`,width:1,background:`rgba(255, 255, 255, 0.06)`,pointerEvents:`none`}})),l.map(e=>n.default.createElement(`div`,{key:e.id,draggable:!0,onDragStart:S(e.id),style:{position:`absolute`,top:12,bottom:12,left:`${e.colStart/ff*100}%`,width:`${e.colSpan/ff*100}%`,padding:10,borderRadius:12,border:`1px solid rgba(255, 255, 255, 0.18)`,boxShadow:`0 1px 2px rgba(0,0,0,0.06)`,cursor:d===e.id?`grabbing`:`grab`,display:`flex`,alignItems:`center`,justifyContent:`center`,userSelect:`none`},title:o.dragToMove},n.default.createElement(`div`,{style:{fontSize:10,fontWeight:400,opacity:.9}},e.fieldName),n.default.createElement(`button`,{type:`button`,onClick:()=>O(e.id),style:{position:`absolute`,border:`none`,top:3,right:3,color:`white`,background:`rgba(255, 255, 255, 0.03)`,fontSize:12,cursor:`pointer`},title:o.remove},`×`),n.default.createElement(`div`,{onMouseDown:T(e.id),style:{position:`absolute`,right:4,top:`50%`,transform:`translateY(-50%)`,width:10,height:30,borderRadius:6,background:`rgba(255, 255, 255, 0.12)`,cursor:`ew-resize`},title:o.dragToResize}))),l.length===0&&n.default.createElement(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,pointerEvents:`none`}},o.dragHere)))}),Cf=(0,n.createContext)(void 0);function wf({config:e,children:t}){return n.default.createElement(Cf.Provider,{value:e},t)}function Tf(){return(0,n.useContext)(Cf)}var Ef,Df;function Of(e){if(typeof window>`u`)return Promise.reject(Error(`loadGoogleMaps can only run in the browser`));if(!e.apiKey)return Promise.reject(Error(`GoogleMapsConfig.apiKey is required`));if(Df!==void 0&&Df!==e.apiKey)return Promise.reject(Error(`loadGoogleMaps was already initialized with a different apiKey`));if(window.google?.maps?.places)return Promise.resolve(window.google);if(Ef)return Ef;Df=e.apiKey;let t=`__googleMapsLoader_${Math.random().toString(36).slice(2)}`;return Ef=new Promise((n,r)=>{window[t]=()=>{delete window[t],window.google?.maps?.places?n(window.google):r(Error(`Google Maps script loaded but the places library is unavailable`))};let i=document.createElement(`script`);i.src=`https://maps.googleapis.com/maps/api/js?${new URLSearchParams({key:e.apiKey,libraries:`places`,loading:`async`,callback:t,...e.language?{language:e.language}:{},...e.region?{region:e.region}:{}}).toString()}`,i.async=!0,i.onerror=()=>r(Error(`Failed to load the Google Maps script`)),document.head.appendChild(i)}),Ef}var kf={lat:41.8719,lng:12.5674},Af=5;function jf(e){return(e??[]).map(e=>({longText:e.longText??``,shortText:e.shortText??e.longText??``,types:e.types}))}function Mf(e){return e.map(e=>({longText:e.long_name,shortText:e.short_name,types:e.types}))}function Nf(e,t,n=!0){let r=e.find(e=>e.types.includes(t));if(r)return(n?r.longText:r.shortText)||void 0}function Pf(e,t,n,r){let i=Nf(e,`street_number`),a=Nf(e,`route`);return{street:[a,i].filter(Boolean).join(`, `)||a||void 0,city:Nf(e,`locality`)??Nf(e,`postal_town`)??Nf(e,`sublocality`),state:Nf(e,`administrative_area_level_2`,!1)??Nf(e,`administrative_area_level_1`,!1),zip:Nf(e,`postal_code`),country:Nf(e,`country`),countryCode:Nf(e,`country`,!1),lat:t,lng:n,formatted:r}}function Ff(e){return Pf(jf(e.addressComponents),e.location?.lat(),e.location?.lng(),e.formattedAddress??void 0)}function If(e){return Pf(Mf(e.address_components),e.geometry.location.lat(),e.geometry.location.lng(),e.formatted_address)}var Lf=({name:e,label:t=void 0,required:r=!1,placeholder:i=void 0,disabled:a=!1,feedback:o=void 0,countries:s=void 0,language:c=void 0,region:l=void 0,validator:u=void 0,onSelect:d=void 0,fieldNames:f=void 0,map:p=!1,id:m=void 0,labelClassName:h=void 0,inheritWrapperClassName:g=!0,wrapperClassName:_=void 0,className:v=void 0,menuClassName:y=void 0,itemClassName:b=void 0,mapClassName:x=void 0})=>{let S=Y(`addressAutocomplete`),C=J(`addressAutocomplete`),w=Tf(),T={street:f?.street??`${e}.street`,city:f?.city??`${e}.city`,state:f?.state??`${e}.state`,zip:f?.zip??`${e}.zip`,country:f?.country??`${e}.country`,countryCode:f?.countryCode??`${e}.countryCode`,lat:f?.lat??`${e}.lat`,lng:f?.lng??`${e}.lng`,zoom:f?.zoom??`${e}.zoom`,formatted:f?.formatted??`${e}.formatted`},E=Rd({name:T.formatted,wrapperClassName:_,inheritWrapperClassName:g}),D=Rd({name:T.street}),O=Rd({name:T.city}),k=Rd({name:T.state}),A=Rd({name:T.zip}),j=Rd({name:T.country}),M=Rd({name:T.countryCode}),N=Rd({name:T.lat}),P=Rd({name:T.lng}),F=Rd({name:T.zoom}),I=Ld(e,{required:r,label:t,validator:u}),L=(0,n.useId)(),R=m??L,z=typeof p==`object`?p:{},B=!!p,ee=z.position??`below`,V=z.defaultZoom??15,H=z.height??240,[te,ne]=(0,n.useState)(typeof E.value==`string`?E.value:``),[re,ie]=(0,n.useState)([]),[U,W]=(0,n.useState)(!1),[ae,oe]=(0,n.useState)(!1),[se,ce]=(0,n.useState)(null),G=(0,n.useRef)(void 0),le=(0,n.useRef)(0),ue=(0,n.useRef)(null),K=(0,n.useRef)(null),de=(0,n.useRef)(void 0),fe=(0,n.useRef)(void 0),pe=(0,n.useRef)(void 0),me=(0,n.useRef)(void 0),he=(0,n.useRef)(!1);(0,n.useEffect)(()=>{typeof E.value==`string`&&E.value!==te&&ne(E.value)},[E.value]),(0,n.useEffect)(()=>{if(!U)return;let e=e=>{ue.current?.contains(e.target)||W(!1)};return window.document.addEventListener(`pointerdown`,e),()=>window.document.removeEventListener(`pointerdown`,e)},[U]),(0,n.useEffect)(()=>{if(!w)return;let e=++le.current,t=te.trim();if(t.length<3){ie([]),oe(!1);return}oe(!0);let n=window.setTimeout(()=>{(async()=>{try{let n=await Of({apiKey:w.apiKey,language:c??w.language,region:l??w.region});if(de.current=n,e!==le.current)return;G.current??=new n.maps.places.AutocompleteSessionToken;let{suggestions:r}=await n.maps.places.AutocompleteSuggestion.fetchAutocompleteSuggestions({input:t,sessionToken:G.current,includedRegionCodes:s,language:c??w.language,region:l??w.region});if(e!==le.current)return;ie(r.filter(e=>e.placePrediction).map(e=>({id:e.placePrediction.placeId,text:e.placePrediction.text.text,prediction:e.placePrediction}))),ce(null)}catch(t){if(e!==le.current)return;ie([]),ce(t instanceof Error?t.message:S.loadError)}finally{e===le.current&&oe(!1)}})()},250);return()=>window.clearTimeout(n)},[te,w]);let ge=(e,t)=>{he.current=!0;let n=e.formatted??te;ne(n),E.handleChange({target:{name:T.formatted,value:n}}),e.street!==void 0&&D.handleChange({target:{name:T.street,value:e.street}}),e.city!==void 0&&O.handleChange({target:{name:T.city,value:e.city}}),e.state!==void 0&&k.handleChange({target:{name:T.state,value:e.state}}),e.zip!==void 0&&A.handleChange({target:{name:T.zip,value:e.zip}}),e.country!==void 0&&j.handleChange({target:{name:T.country,value:e.country}}),e.countryCode!==void 0&&M.handleChange({target:{name:T.countryCode,value:e.countryCode}}),e.lat!==void 0&&N.handleChange({target:{name:T.lat,value:e.lat}}),e.lng!==void 0&&P.handleChange({target:{name:T.lng,value:e.lng}}),t!==void 0&&F.handleChange({target:{name:T.zoom,value:t}}),d?.(e)},_e=e=>{e.addListener(`dragend`,()=>{let t=e.getPosition();t&&ye(t)})},ve=(e,t)=>{fe.current&&(pe.current?pe.current.setPosition(t):(pe.current=new e.maps.Marker({position:t,map:fe.current,draggable:!0}),_e(pe.current)))},ye=async e=>{try{if(!me.current)return;let t=(await me.current.geocode({location:e})).results[0];if(!t)return;ge(If(t)),ce(null)}catch(e){ce(e instanceof Error?e.message:S.loadError)}};(0,n.useEffect)(()=>{if(he.current){he.current=!1;return}if(!w)return;let e=[D.value,A.value,O.value,k.value,j.value].filter(e=>typeof e==`string`&&e.trim().length>0);if(e.length===0)return;let t=e.join(`, `),n=window.setTimeout(()=>{(async()=>{try{let e=await Of({apiKey:w.apiKey,language:c??w.language,region:l??w.region});de.current=e,me.current??=new e.maps.Geocoder;let n=(await me.current.geocode({address:t,region:l??w.region})).results[0];if(!n)return;let r=If(n),i=r.formatted??t;if(ne(i),E.handleChange({target:{name:T.formatted,value:i}}),r.lat!==void 0&&N.handleChange({target:{name:T.lat,value:r.lat}}),r.lng!==void 0&&P.handleChange({target:{name:T.lng,value:r.lng}}),fe.current&&r.lat!==void 0&&r.lng!==void 0){let t=new e.maps.LatLng(r.lat,r.lng);fe.current.panTo(t),ve(e,t)}ce(null)}catch(e){ce(e instanceof Error?e.message:S.loadError)}})()},600);return()=>window.clearTimeout(n)},[D.value,O.value,k.value,A.value,j.value,w]),(0,n.useEffect)(()=>{if(!B||!w||!K.current||fe.current)return;let e=!1;return Of({apiKey:w.apiKey,language:c??w.language,region:l??w.region}).then(t=>{if(e||!K.current||fe.current)return;de.current=t;let n=typeof N.value==`number`&&typeof P.value==`number`,r=n?{lat:N.value,lng:P.value}:kf,i=typeof F.value==`number`?F.value:n?V:Af,a=new t.maps.Map(K.current,{center:r,zoom:i,streetViewControl:!1,mapTypeControl:!1,fullscreenControl:!1});fe.current=a,me.current=new t.maps.Geocoder,n&&(pe.current=new t.maps.Marker({position:r,map:a,draggable:!0}),_e(pe.current)),a.addListener(`click`,e=>{e.latLng&&(ve(t,e.latLng),ye(e.latLng))}),a.addListener(`zoom_changed`,()=>{let e=a.getZoom();typeof e==`number`&&F.handleChange({target:{name:T.zoom,value:e}})})}).catch(t=>{e||ce(t instanceof Error?t.message:S.loadError)}),()=>{e=!0}},[B,w]);let be=async e=>{W(!1);try{let t=e.prediction.toPlace();await t.fetchFields({fields:[`addressComponents`,`location`,`formattedAddress`]});let n=Ff(t);ge(n,B?V:void 0);let r=de.current;if(B&&r&&fe.current&&n.lat!==void 0&&n.lng!==void 0){let e=new r.maps.LatLng(n.lat,n.lng);fe.current.setCenter(e),fe.current.setZoom(V),ve(r,e)}G.current=void 0,ce(null)}catch(e){ce(e instanceof Error?e.message:S.loadError)}};if(!w)return n.default.createElement(Z,{className:E.formWrapClass},t&&n.default.createElement(ws,{label:t,required:r,htmlFor:R,className:h}),n.default.createElement(`input`,{id:R,disabled:!0,className:X(Yo,v||C.AddressAutocomplete.className),placeholder:S.notConfigured,title:S.notConfigured}),n.default.createElement(`div`,{className:Jo},S.notConfigured));let xe=B?n.default.createElement(`div`,{ref:K,className:X(`mt-2 w-full overflow-hidden rounded-md border`,x),style:{height:H}}):null;return n.default.createElement(Z,{className:E.formWrapClass||C.AddressAutocomplete.wrapperClassName},t&&n.default.createElement(ws,{label:t,required:r,htmlFor:R,className:h}),ee===`above`&&xe,n.default.createElement(`div`,{ref:ue,className:`relative`},n.default.createElement(`input`,{id:R,type:`text`,role:`combobox`,"aria-expanded":U,"aria-autocomplete":`list`,autoComplete:`off`,className:X(Yo,`pr-8`,I&&`border-destructive focus-visible:ring-destructive/20`,v||C.AddressAutocomplete.className),placeholder:i??S.placeholder,required:r,disabled:a,value:te,onChange:e=>{ne(e.target.value),W(!0)},onFocus:()=>W(!0)}),n.default.createElement(`span`,{className:`pointer-events-none absolute inset-y-0 right-2 flex items-center text-muted-foreground`},n.default.createElement(Q,{name:ae?`loader-circle`:`map-pin`,size:15,className:ae?`animate-spin`:void 0})),U&&te.trim().length>=3&&n.default.createElement(`div`,{className:X(`absolute z-50 mt-1 max-h-64 w-full overflow-y-auto rounded-md border p-1 text-sm shadow-lg`,y||C.AddressAutocomplete.menuClassName)},se?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-destructive`},se):ae&&re.length===0?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-muted-foreground`},S.searching):re.length===0?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-muted-foreground`},S.noResults):re.map(e=>n.default.createElement(`button`,{key:e.id,type:`button`,className:X(`flex w-full items-start gap-2 rounded-sm px-2 py-1.5 text-left transition-colors hover:bg-accent hover:text-accent-foreground`,b||C.AddressAutocomplete.itemClassName),onClick:()=>{be(e)}},n.default.createElement(Q,{name:`map-pin`,size:14,className:`mt-0.5 shrink-0 text-muted-foreground`}),n.default.createElement(`span`,{className:`min-w-0 truncate`},e.text))))),ee===`below`&&xe,I?n.default.createElement(os,{message:I}):o&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},o))},Rf=({name:e,onDataLoaded:t,onClear:r=void 0,onParseField:i=void 0,label:a=void 0,icon:o=`upload`,delimiter:s=void 0,normalizeKeys:c=!1,removeEmptyFields:l=!1,required:u=!1,before:d=void 0,after:f=void 0,wrapperClassName:p=void 0,className:h=void 0})=>{let g=Y(`upload`),[_,v]=(0,n.useState)(null),[y,b]=(0,n.useState)(!1),[x,S]=(0,n.useState)(null),C=(0,n.useRef)(null),w=([e,t])=>{if(![``,null,void 0].includes(e)&&t!==void 0&&!(l&&[``,null].includes(t)))return c&&(e=P(e)),i?i([e,t]):[e.trim(),he(t)]},T=e=>{e&&m.default.parse(e,{header:!0,skipEmptyLines:!0,delimiter:s,dynamicTyping:!1,complete:n=>{v(null),S(e),t({data:n.data.map(e=>Object.fromEntries(Object.entries(e).reduce((e,[t,n])=>{let r=w([t,n]);return r&&e.push(r),e},[]))),fields:(n.meta?.fields||[]).reduce((e,t)=>(t&&e.push(c?P(t):t),e),[]),file:e})},error:e=>{v(e instanceof Error?e.message:String(e)),S(null)}})},E=e=>{T(e.target.files?.[0]??null),e.target.value=``},D=e=>{e.preventDefault(),e.stopPropagation(),b(!0)},O=e=>{e.preventDefault(),e.stopPropagation(),b(!1)},k=e=>{e.preventDefault(),e.stopPropagation(),b(!1),T(e.dataTransfer.files?.[0]??null)},A=()=>C.current?.click();return n.default.createElement(Z,{className:p},d,n.default.createElement(`div`,{className:X(h),"data-name":e},a&&n.default.createElement(ws,{label:a,required:u}),n.default.createElement(`input`,{ref:C,type:`file`,accept:`.csv,.tsv,text/csv,text/plain`,className:`hidden`,onChange:E}),x?n.default.createElement(`div`,{className:`rounded-lg border border-border overflow-hidden`},n.default.createElement(`div`,{className:`flex items-center gap-3 px-3 py-3`},n.default.createElement(`div`,{className:`w-9 h-9 rounded-md bg-emerald-500/10 flex items-center justify-center shrink-0`},n.default.createElement(Q,{name:`file-text`,className:`w-4 h-4 text-emerald-600`})),n.default.createElement(`div`,{className:`flex-1 min-w-0`},n.default.createElement(`p`,{className:`text-sm font-medium truncate`},x.name),n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},(e=>e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`)(x.size))),n.default.createElement(`div`,{className:`flex items-center gap-1 text-xs text-emerald-600 font-medium shrink-0`},n.default.createElement(Q,{name:`check-circle`,className:`w-4 h-4`}),g.loaded),n.default.createElement(`button`,{type:`button`,onClick:()=>{S(null),r?.()},className:`w-7 h-7 flex items-center justify-center rounded-full text-muted-foreground hover:bg-red-50 hover:text-red-500 transition-colors`,title:g.removeFile},n.default.createElement(Q,{name:`x`,className:`w-3.5 h-3.5`}))),n.default.createElement(`div`,{className:`px-3 py-2 border-t border-border bg-muted/20`},n.default.createElement(`button`,{type:`button`,onClick:A,className:`flex items-center gap-1.5 text-xs text-muted-foreground hover:text-primary transition-colors`},n.default.createElement(Q,{name:`refresh-cw`,className:`w-3.5 h-3.5`}),g.uploadAnother))):n.default.createElement(`button`,{type:`button`,onClick:A,onDragOver:D,onDragLeave:O,onDrop:k,className:X(`w-full flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed py-8 px-4 transition-colors cursor-pointer`,y?`border-primary/60 bg-primary/8 text-primary`:`border-muted-foreground/25 bg-muted/30 text-muted-foreground hover:border-primary/40 hover:bg-primary/5 hover:text-primary/70`)},n.default.createElement(Q,{name:o,className:`w-8 h-8`}),n.default.createElement(`span`,{className:`text-sm font-medium`},y?g.dropToParse:g.clickOrDrag),n.default.createElement(`span`,{className:`text-xs opacity-60`},`.csv, .tsv`)),_&&n.default.createElement(os,{message:`Parse error: ${_}`})),f)};function zf(e){return e?typeof e==`string`?n.default.createElement(Q,{name:e,size:16}):e:null}function Bf({title:e=void 0,description:t=void 0,meta:i=void 0,badge:a=void 0,icon:o=void 0,trailing:s=void 0,footer:c=void 0,children:l=void 0,href:u=void 0,external:d=!1,active:f=!1,disabled:p=!1,dashed:m=!1,compact:h=!1,align:g=`start`,onClick:_=void 0,before:v=void 0,after:y=void 0,wrapperClassName:b=void 0,className:x=void 0,titleClassName:S=void 0,descriptionClassName:C=void 0,metaClassName:w=void 0,badgeClassName:T=void 0,leadingClassName:E=void 0,bodyClassName:D=void 0,headerClassName:O=void 0,trailingClassName:k=void 0,footerClassName:A=void 0,style:j=void 0,motion:M=void 0}){let N=J(`listCard`),P=!!u||!!_,F=Vt(p||!P,j,M??N.ListCard.motion?.press??`press`),I=zf(o),L=c??l,R=X(`flex w-full gap-3 rounded-xl border border-border/60 bg-background p-4 text-left transition-[background-color,border-color,box-shadow,color] duration-150`,g===`center`?`items-center`:`items-start`,P&&!p&&`cursor-pointer`,N.ListCard.className,f?N.ListCard.activeClassName:N.ListCard.inactiveClassName,p&&N.ListCard.disabledClassName,m&&N.ListCard.dashedClassName,h&&N.ListCard.compactClassName,x),z=n.default.createElement(n.default.Fragment,null,I?n.default.createElement(`div`,{className:X(`mt-0.5 flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,g===`center`&&`mt-0`,N.ListCard.leadingClassName,E)},I):null,n.default.createElement(`div`,{className:X(`min-w-0 flex-1`,N.ListCard.bodyClassName,D)},e||a?n.default.createElement(`div`,{className:X(`flex items-center gap-2`,N.ListCard.headerClassName,O)},e?n.default.createElement(`div`,{className:X(`min-w-0 flex-1 truncate text-sm font-semibold text-foreground`,N.ListCard.titleClassName,S)},e):n.default.createElement(`div`,{className:`flex-1`}),a?n.default.createElement(`div`,{className:X(`shrink-0`,N.ListCard.badgeClassName,T)},a):null):null,t?n.default.createElement(`div`,{className:X(`mt-1 text-sm text-muted-foreground`,N.ListCard.descriptionClassName,C)},t):null,i?n.default.createElement(`div`,{className:X(`mt-1 text-xs text-muted-foreground`,N.ListCard.metaClassName,w)},i):null,L?n.default.createElement(`div`,{className:X(`mt-3`,N.ListCard.footerClassName,A)},L):null),s?n.default.createElement(`div`,{className:X(`shrink-0 self-center`,N.ListCard.trailingClassName,k)},s):null),B=e=>{if(p){e.preventDefault(),e.stopPropagation();return}_?.(e)},ee;return ee=u&&!p?d?n.default.createElement(`a`,{href:u,target:`_blank`,rel:`noreferrer noopener`,className:R,style:F.style,...F.pressHandlers,onClick:B},z):n.default.createElement(r.Link,{to:u,className:R,style:F.style,...F.pressHandlers,onClick:B},z):P?n.default.createElement(`button`,{type:`button`,className:R,style:F.style,disabled:p,...F.pressHandlers,onClick:B},z):n.default.createElement(`div`,{className:R,style:j,"aria-disabled":p||void 0},z),n.default.createElement(Z,{className:X(N.ListCard.wrapperClassName,b)},v,ee,y)}function Vf(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(Math.max(0,Math.min(n,r.length)),0,i),r}function Hf({items:e,getKey:t,renderItem:r,onReorder:i=void 0,label:a=void 0,numbered:o=!1,disabled:s=!1,emptyState:c=void 0,className:l=void 0,itemClassName:u=void 0,cardClassName:d=void 0}){let f=Y(`sortableList`),[p,m]=(0,n.useState)(null),[h,g]=(0,n.useState)(null),[_,v]=(0,n.useState)(``),y=!s&&!!i&&e.length>1;if(!e.length)return c?n.default.createElement(n.default.Fragment,null,c):null;let b=(t,n)=>{!i||t===n||n<0||n>=e.length||(i(Vf(e,t,n),{fromIndex:t,toIndex:n,item:e[t]}),v(ot(f.moved,{position:n+1,total:e.length})))},x=e=>{if(p===null||!h)return;let t=h.after?e+1:e;b(p,t>p?t-1:t),m(null),g(null)};return n.default.createElement(`div`,{className:l},n.default.createElement(`ul`,{className:`flex flex-col gap-2`,"aria-label":a},e.map((i,a)=>{let s=r(i,a),c=h?.index===a&&p!==null&&p!==a;return n.default.createElement(`li`,{key:t(i),className:X(`relative flex items-stretch gap-2`,p===a&&`opacity-50`,u),onDragOver:e=>{if(!y||p===null)return;e.preventDefault();let t=e.currentTarget.getBoundingClientRect();g({index:a,after:e.clientY>t.top+t.height/2})},onDragLeave:()=>g(e=>e?.index===a?null:e),onDrop:e=>{y&&(e.preventDefault(),x(a))}},c&&n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`pointer-events-none absolute inset-x-0 h-0.5 rounded-full bg-primary`,h.after?`-bottom-1.5`:`-top-1.5`)}),y&&n.default.createElement(`button`,{type:`button`,draggable:!0,"aria-label":ot(f.handle,{position:a+1,total:e.length}),className:`flex w-6 shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring active:cursor-grabbing`,onDragStart:e=>{m(a),e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t(i))},onDragEnd:()=>{m(null),g(null)},onKeyDown:e=>{e.key===`ArrowUp`?(e.preventDefault(),b(a,a-1)):e.key===`ArrowDown`&&(e.preventDefault(),b(a,a+1))}},n.default.createElement(Q,{name:`grip-vertical`,size:16})),o&&n.default.createElement(`span`,{className:`flex w-6 shrink-0 items-center justify-center text-sm font-medium tabular-nums text-muted-foreground`,"aria-hidden":`true`},a+1),n.default.createElement(Bf,{compact:!0,wrapperClassName:`min-w-0 flex-1`,className:d,...s}))})),n.default.createElement(`span`,{className:`sr-only`,"aria-live":`polite`},_))}var Uf=208,Wf=52;function Gf(e){return e.map(e=>({path:e.path,title:e.title,icon:e.icon,group:e.group,end:e.end,badge:e.badge,children:e.children?Gf(e.children):void 0}))}function Kf(e,t,n){return n?e===t:e===t||t!==`/`&&e.startsWith(t+`/`)}function qf(e){let t=new Map;for(let n of e){let e=n.group??`General`;t.has(e)||t.set(e,[]),t.get(e).push(n)}return[...t.entries()].map(([e,t])=>({key:e,items:t}))}function Jf({value:e}){let t=J(`sideNav`);return n.default.createElement(`span`,{className:X(`ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-full bg-primary/15 text-primary`,t.SideNav.itemBadgeClassName)},e)}function Yf({children:e,open:t}){let{pathname:i}=(0,r.useLocation)(),a=J(`sideNav`);return n.default.createElement(`div`,{style:{maxHeight:t?`${e.length*34+8}px`:`0px`,overflow:`hidden`,transition:`max-height 200ms ease`}},n.default.createElement(`div`,{className:`py-0.5 space-y-0.5`},e.map(e=>{let t=Kf(i,e.path,e.end);return n.default.createElement(r.Link,{key:e.path,to:e.path,"aria-current":t?`page`:void 0,className:X(`flex items-center rounded-md pl-9 pr-3 py-[6px] text-sm transition-colors`,a.SideNav.subItemClassName,t?a.SideNav.subItemActiveClassName:a.SideNav.subItemInactiveClassName)},n.default.createElement(`span`,{className:`flex-1 truncate`},e.title),e.badge!==void 0&&n.default.createElement(Jf,{value:e.badge}))})))}function Xf({item:e,expanded:t,open:i,showIcons:a,onToggle:o}){let{pathname:s}=(0,r.useLocation)(),c=J(`sideNav`),l=Y(`sideNav`),u=(e.children?.length??0)>0,d=Kf(s,e.path,e.end),f=u&&e.children.some(e=>Kf(s,e.path,e.end)),p=d?c.SideNav.itemActiveClassName:f?c.SideNav.itemChildActiveClassName:c.SideNav.itemInactiveClassName,m=a?n.default.createElement(`span`,{className:X(`relative shrink-0 flex items-center justify-center w-[18px] h-[18px]`,c.SideNav.itemIconClassName)},e.icon?n.default.createElement(Q,{name:e.icon,size:17}):n.default.createElement(`span`,{className:`w-1.5 h-1.5 rounded-full bg-current opacity-30`}),!t&&e.badge!==void 0&&n.default.createElement(`span`,{className:X(`absolute -top-0.5 -right-1 w-[7px] h-[7px] rounded-full bg-primary ring-1 ring-background`,c.SideNav.itemCollapsedBadgeClassName)})):null,h={opacity:+!!t,maxWidth:t?`200px`:`0px`,overflow:`hidden`,whiteSpace:`nowrap`,transition:`opacity 150ms ease, max-width 200ms ease`},g=X(`flex items-center w-full rounded-md px-2 py-[7px] text-sm transition-colors gap-2.5`,c.SideNav.itemClassName);return u?n.default.createElement(`div`,null,n.default.createElement(`div`,{className:`flex items-center gap-0.5`},n.default.createElement(r.Link,{to:e.path,title:t?void 0:e.title,"aria-current":d?`page`:void 0,className:X(`flex-1 flex items-center gap-2.5 rounded-md px-2 py-[7px] text-sm transition-colors`,c.SideNav.itemClassName,p)},m,n.default.createElement(`span`,{style:h,className:c.SideNav.itemTextClassName},e.title),t&&e.badge!==void 0&&n.default.createElement(Jf,{value:e.badge})),t&&n.default.createElement(`button`,{onClick:()=>o(e.path),className:X(`shrink-0 flex items-center justify-center w-6 h-6 rounded transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent`,c.SideNav.itemToggleClassName),title:i?l.collapseGroup:l.expandGroup,"aria-label":i?l.collapseGroup:l.expandGroup},n.default.createElement(`span`,{style:{transform:i?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 200ms ease`}},n.default.createElement(Q,{name:`chevron-down`,size:13})))),t&&n.default.createElement(Yf,{children:e.children,open:i})):n.default.createElement(r.Link,{to:e.path,title:t?void 0:e.title,"aria-current":d?`page`:void 0,className:X(g,p)},m,n.default.createElement(`span`,{style:h,className:c.SideNav.itemTextClassName},e.title),t&&e.badge!==void 0&&n.default.createElement(Jf,{value:e.badge}))}function Zf({group:e,expanded:t,openItems:r,showIcons:i,onToggle:a}){let o=e.key===`General`,s=J(`sideNav`);return n.default.createElement(`div`,{className:`mb-1`},!o&&n.default.createElement(`div`,{style:{height:t?void 0:`1px`},className:t?`px-2 pb-0.5 pt-3 first:pt-1`:X(`mx-2 my-2 bg-border/40`,s.SideNav.groupDividerClassName)},t&&n.default.createElement(`span`,{className:X(`text-[10.5px] font-semibold uppercase tracking-widest text-muted-foreground/50 select-none`,s.SideNav.groupLabelClassName)},e.key)),n.default.createElement(`div`,{className:`space-y-0.5`},e.items.map(e=>n.default.createElement(Xf,{key:e.path,item:e,expanded:t,open:r.has(e.path),showIcons:i,onToggle:a}))))}function Qf({menuKey:e,items:t,bottomItems:i=[],defaultCollapsed:a=!1,collapsed:o,onCollapsedChange:s,showIcons:c=!0,showCollapseButton:l=!0,footer:u,header:d,embedded:f=!1}){let{pathname:p}=(0,r.useLocation)(),m=J(`sideNav`),h=Y(`sideNav`),g=m_(e??``),_=t??(e?Gf(g):[]),v=o!==void 0,[y,b]=(0,n.useState)(a),x=o===void 0?y:o,S=(0,n.useCallback)(e=>{let t=typeof e==`function`?e(x):e;v?s?.(t):b(t)},[v,x,s]),[C,w]=(0,n.useState)(!1),[T,E]=(0,n.useState)(new Set),D=(0,n.useRef)(null),O=!x||C;(0,n.useEffect)(()=>{E(e=>{let t=new Set(e);return[..._,...i].forEach(e=>{e.children?.some(e=>Kf(p,e.path,e.end))&&t.add(e.path)}),t})},[p]);let k=(0,n.useCallback)(e=>{E(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),A=()=>{x&&(D.current&&clearTimeout(D.current),w(!0))},j=()=>{x&&(D.current=setTimeout(()=>w(!1),80))};if(_.length===0&&i.length===0)return null;let M=qf(_),N=qf(i),P=(e,t)=>e.map(e=>n.default.createElement(Zf,{key:e.key,group:e,expanded:t,openItems:T,showIcons:c,onToggle:k}));return f?n.default.createElement(`nav`,{className:X(`px-1.5 py-2`,m.SideNav.navClassName)},P(M,!0),N.length>0&&n.default.createElement(`div`,{className:X(`mt-2 border-t pt-2`,m.SideNav.bottomNavClassName)},P(N,!0))):n.default.createElement(`div`,{className:X(`min-h-0`,m.SideNav.wrapperClassName),style:{width:x?Wf:Uf,height:`100%`,transition:`width 220ms cubic-bezier(0.4,0,0.2,1)`,flexShrink:0,position:`relative`}},n.default.createElement(`aside`,{style:{width:O?Uf:Wf,transition:`width 220ms cubic-bezier(0.4,0,0.2,1)`,position:x?`absolute`:`sticky`,top:0,zIndex:x&&C?50:10,boxShadow:x&&C?`4px 0 24px rgba(0,0,0,0.10)`:`none`,height:`100%`,overflowX:`hidden`,overflowY:`hidden`},className:X(`flex min-h-0 flex-col border-r bg-background`,m.SideNav.shellClassName,x&&C&&m.SideNav.overlayClassName),onMouseEnter:A,onMouseLeave:j},d&&n.default.createElement(`div`,{className:X(`flex h-14 shrink-0 items-center border-b px-1.5`,m.SideNav.headerClassName),style:{opacity:+!!O,maxWidth:O?`100%`:`0px`,overflow:`hidden`,transition:`opacity 150ms ease, max-width 200ms ease`}},n.default.createElement(`div`,{className:`min-w-0 flex-1`},d)),n.default.createElement(`nav`,{className:X(`min-h-0 flex-1 overflow-y-auto overflow-x-hidden px-1.5 py-2`,m.SideNav.navClassName)},P(M,O)),N.length>0&&n.default.createElement(`div`,{className:X(`shrink-0 border-t px-1.5 py-2`,m.SideNav.bottomNavClassName)},P(N,O)),(l||u)&&n.default.createElement(`div`,{className:X(`shrink-0 border-t px-1.5 py-2 flex items-center gap-1`,m.SideNav.footerClassName)},l&&n.default.createElement(`button`,{onClick:()=>{S(e=>!e),w(!1)},title:x?h.expandSidebar:h.collapseSidebar,"aria-label":x?h.expandSidebar:h.collapseSidebar,className:X(`shrink-0 flex items-center justify-center rounded-md w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent`,m.SideNav.collapseButtonClassName)},n.default.createElement(Q,{name:x?`chevrons-right`:`chevrons-left`,size:16})),u&&n.default.createElement(`div`,{style:{flex:1,minWidth:0,opacity:+!!O,maxWidth:O?`100%`:`0px`,overflow:`hidden`,transition:`opacity 150ms ease, max-width 200ms ease`}},u))))}function $f({path:e,where:t,order:r,fieldMap:i}){let a=or(),[o,s]=(0,n.useState)([]),c=(0,n.useMemo)(()=>{if(t||r||i)return{where:t,order:r,fieldMap:i}},[i,r,t]);return(0,n.useEffect)(()=>a.subscribe(e,s,c),[a,c,e]),o}function ep(e){if(e)return e}function tp({path:e,fromUrl:t,where:i,order:a,fieldMap:o,recordId:s=ji,...c}){let l=(0,r.useLocation)(),u=t?ep(l.pathname):e,d=$f({path:u,where:i,order:a,fieldMap:o}),f=n.default.useMemo(()=>{if(!a)return;let e=Object.entries(a)[0];if(!e)return;let[t,n]=e;return{field:t,dir:n}},[a]),p=c.sortable===void 0||c.sortable===!0?f??c.sortable:c.sortable;return n.default.createElement(Xm,{...c,records:d,recordId:s,sourcePath:u,sortable:p})}var np=e=>e.replace(/[^a-zA-Z0-9_-]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``),rp=e=>t=>{if(typeof e==`function`)return String(e(t));let n=t[e];return n==null||n===``?``:String(n)},ip=(e,t)=>{if(e==null||e===`text`)return t;if(e===`boolean`)return t?`Yes`:`No`;if(e===`json`)return t==null?``:JSON.stringify(t,null,2);if(e===`badge`||e===`image`||e===`email`)return t;let n=E[e===`datetime`?`dateTime`:e];return n?n(t):t},ap=(e,t)=>typeof e.render==`function`?e.render(t):ip(e.render,t.value),op=e=>({key:e,label:E.toCamel(e,` `),sortable:!0}),sp=(e,t)=>{let r=[],i=e=>{n.default.Children.forEach(e,e=>{if(!n.default.isValidElement(e))return;let{props:a}=e;a.name?r.push(t(a)):a.children&&i(a.children)})};return i(Array.isArray(e)?e:[e]),r},cp=(e,t,r)=>{if(e?.length)return e;if(n.default.isValidElement(r)){let e=sp(r,e=>op(e.name));if(e.length>0)return e}let i=t[0];return i?Object.entries(i).reduce((e,[t,r])=>(t.startsWith(`_`)||(n.default.isValidElement(r)||typeof r!=`object`||Array.isArray(r))&&e.push(op(t)),e),[]):[]},lp=(e,t)=>Array.isArray(e)?e.reduce((e,t)=>(e[t]=t===`delete`?{kind:`delete`}:{kind:`modal`},e),{}):e?Object.entries(e).reduce((e,[t,n])=>(n&&(e[t]=n),e),{}):t?{add:{kind:`modal`},edit:{kind:`modal`},delete:{kind:`delete`}}:{},up=(e,t)=>e?.visible?typeof e.visible==`function`?e.visible(t):e.visible:!0,dp=(e,t)=>e?.disabled?typeof e.disabled==`function`?e.disabled(t):e.disabled:!1,fp=(e,t,n)=>t?.label?t.label:e===`add`?n?.add??`Add`:e===`edit`?n?.edit??`Edit`:e===`delete`?n?.delete??`Delete`:E.toCamel(e,` `),pp=e=>{if(e&&typeof e!=`boolean`)return e};function mp({records:e,recordId:t,columns:r,runAction:i,sortable:a,pagination:o,selection:s=!1,selectedKeys:c,onSelectionChange:l,onRowClick:u,reorderable:d=!1,onReorder:f,activeKey:p,groupBy:m,wrapperClassName:h,className:g,heightClassName:_,scrollClassName:v,headerClassName:y,before:b,after:x}){let S=(0,n.useMemo)(()=>rp(t),[t]),C=(0,n.useRef)(new Map),w=(0,n.useMemo)(()=>e.reduce((e,t)=>(e.set(S(t),t),e),new Map),[S,e]),T=(0,n.useMemo)(()=>r.reduce((e,t)=>(e.set(String(t.key),t),e),new Map),[r]);(0,n.useEffect)(()=>{let t=new Set(e.map(e=>S(e)));for(let e of C.current.keys())t.has(e)||C.current.delete(e)},[S,e]);let E=(0,n.useCallback)((e,t,n)=>{let r=e,a=S(r),o=T.get(t);if(!o)return de(r,t);let s=de(r,t),c=C.current.get(a)??new Map,l=c.get(t),u=typeof o.render==`function`;if(l&&l.recordRef===r&&l.valueRef===s&&l.renderRef===o.render&&(!u||l.rowIndex===n))return l.output;let d=ap(o,{record:r,value:s,key:t,rowIndex:n,runAction:e=>i(e,r)});return c.set(t,{recordRef:r,valueRef:s,renderRef:o.render,rowIndex:n,output:d}),C.current.set(a,c),d},[T,S,i]);return n.default.createElement(df,{columns:r.map(e=>({key:String(e.key),label:e.label,className:e.className,sort:e.sortable})),records:e,recordId:e=>S(e),sortable:a,pagination:o,renderCell:E,selection:s===`single`?`single`:`multiple`,selectedKeys:s?c:void 0,onSelectionChange:s?t=>{let n=new Set(t.keys),r=e.filter(e=>n.has(S(e))),i=t.keys;if(s===`single`&&t.keys.length>1){let e=t.keys[t.keys.length-1];i=e?[e]:[],r=e&&w.get(e)?[w.get(e)]:[]}let a={keys:i,records:r,hasSelection:i.length>0,clear:()=>l?.({keys:[],records:[],hasSelection:!1,clear:()=>void 0})};l?.(a)}:void 0,onRowClick:u?e=>{let t=S(e),n=w.get(t);n&&u(n)}:void 0,onReorder:d&&f?(e,t)=>{let n=e.map(e=>w.get(S(e))).filter(Boolean),r=w.get(S(t.record));r&&f(n,{fromIndex:t.fromIndex,toIndex:t.toIndex,record:r})}:void 0,activeKey:p,groupBy:m,wrapperClassName:h,className:g,heightClassName:_,scrollClassName:v,headerClassName:y,before:b,after:x})}var hp=(0,n.createContext)(null),gp=0,_p=`LLM Native`,vp={charset:`UTF-8`,viewport:`width=device-width, initial-scale=1.0`},yp={lang:`en`};function bp(e,t){return t.includes(`:`)?t:`${e}:${t}`}function xp(e){return Array.isArray(e)?e.join(`, `):e}function Sp(e){return e===`siteName`?`og:site_name`:bp(`og`,e)}function Cp(e){return[...e.canonical?[{rel:`canonical`,href:e.canonical}]:[],...e.ampHtml?[{rel:`amphtml`,href:e.ampHtml}]:[],...e.sitemap?[{rel:`sitemap`,href:e.sitemap,type:`application/xml`}]:[],...e.links??[]]}function wp(e){return[...e.prev?[{rel:`prev`,href:e.prev}]:[],...e.next?[{rel:`next`,href:e.next}]:[]]}function Tp(e){return(e.alternates??[]).map(e=>({rel:`alternate`,href:e.href,hrefLang:e.hrefLang,media:e.media,type:e.type,title:e.title}))}function Ep(e,t,n){return{name:{description:e.description,...e.meta??{},robots:n.robots??e.meta?.robots,googlebot:n.googlebot,keywords:xp(n.keywords),author:n.author,publisher:n.publisher,referrer:n.referrer,...n.meta??{},...Object.fromEntries(Object.entries(t.twitter??{}).map(([e,t])=>[bp(`twitter`,e),t]))},property:Object.fromEntries(Object.entries(t.openGraph??{}).map(([e,t])=>[Sp(e),t]))}}function Dp(e,t,n,r){return[...Cp(t),...wp(r),...Tp(n),...e.canonical&&!t.canonical?[{rel:`canonical`,href:e.canonical}]:[],...e.links??[]]}function Op(e){return[...(e.fonts??[]).flatMap(e=>[...(e.dnsPrefetch??[]).map(e=>({rel:`dns-prefetch`,href:e})),...(e.preconnect??[]).map(t=>({rel:`preconnect`,href:t,crossOrigin:e.crossOrigin})),...e.preload?[{rel:`preload`,href:e.href,as:e.as??`font`,type:e.type,media:e.media,crossOrigin:e.crossOrigin}]:[],{rel:`stylesheet`,href:e.href,media:e.media,crossOrigin:e.crossOrigin}])]}function kp(e){return[...e.manifest?[{rel:`manifest`,href:e.manifest}]:[],...e.favicon?[{rel:`icon`,href:e.favicon}]:[],...e.appleTouchIcon?[{rel:`apple-touch-icon`,href:e.appleTouchIcon}]:[],...e.icons??[]]}function Ap(e){return{"theme-color":e.themeColor,"msapplication-TileColor":e.backgroundColor,"color-scheme":e.colorScheme,"application-name":e.applicationName,"mobile-web-app-capable":e.mobileWebAppCapable===void 0?void 0:String(e.mobileWebAppCapable),"apple-mobile-web-app-capable":e.appleMobileWebAppCapable===void 0?void 0:String(e.appleMobileWebAppCapable),"apple-mobile-web-app-title":e.appleMobileWebAppTitle,"apple-mobile-web-app-status-bar-style":e.appleMobileWebAppStatusBarStyle}}function jp(e){return Array.isArray(e.jsonLd)?e.jsonLd:e.jsonLd?[e.jsonLd]:[]}function Mp(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>!!e))}function Np(e){let{inline:t,...n}=e;return Object.fromEntries(Object.entries(n).filter(([,e])=>e!==void 0&&e!==!1))}function Pp(e){let{inline:t,...n}=e;return Object.fromEntries(Object.entries(n).filter(([,e])=>e!==void 0&&e!==!1))}function Fp({appName:e,metadata:t,social:r,links:i,pagination:a,language:o,document:s,assets:l,pwa:u,schemaOrg:d}){if(globalThis.document===void 0)return null;let f=Ep(t,r,s),p=Ap(u),m=[...Dp(i,s,o,a),...Op(l),...kp(u)],h=jp(d);return(0,c.createPortal)(n.default.createElement(n.default.Fragment,null,s.charset?n.default.createElement(`meta`,{charSet:s.charset,"data-rfs-head":`document`}):null,s.base?.href||s.base?.target?n.default.createElement(`base`,{href:s.base.href,target:s.base.target,"data-rfs-head":`document`}):null,s.viewport?n.default.createElement(`meta`,{name:`viewport`,content:s.viewport,"data-rfs-head":`document`}):null,Object.entries(s.httpEquiv??{}).map(([e,t])=>t?n.default.createElement(`meta`,{key:`http-equiv:${e}`,httpEquiv:e,content:t,"data-rfs-head":`document`}):null),Object.entries(f.name).map(([e,t])=>t?n.default.createElement(`meta`,{key:`name:${e}`,name:e,content:t,"data-rfs-head":`meta`}):null),Object.entries(f.property).map(([e,t])=>t?n.default.createElement(`meta`,{key:`property:${e}`,property:e,content:t,"data-rfs-head":`meta`}):null),Object.entries(p).map(([e,t])=>t?n.default.createElement(`meta`,{key:`pwa:${e}`,name:e,content:t,"data-rfs-head":`pwa`}):null),m.map((e,t)=>n.default.createElement(`link`,{key:`${e.rel}:${e.href??t}`,...Mp(e),"data-rfs-head":`link`})),(l.styles??[]).map((e,t)=>n.default.createElement(n.default.Fragment,{key:`style:${e.href??t}`},e.href?n.default.createElement(`link`,{rel:`stylesheet`,href:e.href,...Pp(e),"data-rfs-head":`asset-style`}):null,e.inline?n.default.createElement(`style`,{id:e.id,nonce:e.nonce,media:e.media,title:e.title,"data-rfs-head":`asset-style`},e.inline):null)),(l.scripts??[]).map((e,t)=>n.default.createElement(n.default.Fragment,{key:`script:${e.src??t}`},e.src?n.default.createElement(`script`,{...Np(e),"data-rfs-head":`asset-script`}):null,e.inline?n.default.createElement(`script`,{type:e.type,id:e.id,nonce:e.nonce,"data-rfs-head":`asset-script`},e.inline):null)),h.map((e,t)=>n.default.createElement(`script`,{key:`schema-org:${t}`,type:`application/ld+json`,"data-rfs-head":`schema-org`},JSON.stringify(e)))),globalThis.document.head)}function Ip({appName:e=_p,children:t}){let r=e||`LLM Native`,i=n.default.useRef(globalThis.document===void 0?``:globalThis.document.documentElement.lang),a=n.default.useRef(globalThis.document===void 0?``:globalThis.document.documentElement.dir),[o,s]=(0,n.useState)({}),[c,l]=(0,n.useState)([]),[u,d]=(0,n.useState)({}),[f,p]=(0,n.useState)({}),[m,h]=(0,n.useState)({}),[g,_]=(0,n.useState)(yp),[v,y]=(0,n.useState)(vp),[b,x]=(0,n.useState)({}),[S,C]=(0,n.useState)({}),[w,T]=(0,n.useState)({}),E=(0,n.useCallback)(()=>s({}),[]),D=(0,n.useCallback)((e,t)=>{l(n=>[...n.filter(t=>t.id!==e),{id:e,metadata:t}])},[]),O=(0,n.useCallback)(e=>{l(t=>t.filter(t=>t.id!==e))},[]),k=(0,n.useCallback)(()=>d({}),[]),A=(0,n.useCallback)(()=>p({}),[]),j=(0,n.useCallback)(()=>h({}),[]),M=(0,n.useCallback)(()=>_(yp),[]),N=(0,n.useCallback)(()=>y(vp),[]),P=(0,n.useCallback)(()=>x({}),[]),F=(0,n.useCallback)(()=>C({}),[]),I=(0,n.useCallback)(()=>T({}),[]);(0,n.useEffect)(()=>{globalThis.document!==void 0&&(globalThis.document.documentElement.lang=g.lang??i.current,globalThis.document.documentElement.dir=g.dir??a.current)},[g.lang,g.dir]);let L=c.length>0?c[c.length-1].metadata:o;(0,n.useEffect)(()=>{globalThis.document!==void 0&&(globalThis.document.title=L.title??r)},[L.title,r]);let R=(0,n.useMemo)(()=>({metadata:L,social:u,links:f,pagination:m,language:g,document:v,assets:b,pwa:S,schemaOrg:w,setPageMetadata:s,clearPageMetadata:E,setPageMetadataEntry:D,clearPageMetadataEntry:O,setSocialHead:d,clearSocialHead:k,setHeadLinks:p,clearHeadLinks:A,setPaginationHead:h,clearPaginationHead:j,setLanguageHead:_,clearLanguageHead:M,setDocumentHead:y,clearDocumentHead:N,setAssetsHead:x,clearAssetsHead:P,setPwaHead:C,clearPwaHead:F,setSchemaOrg:T,clearSchemaOrg:I}),[L,u,f,m,g,v,b,S,w,E,D,O,k,A,j,M,N,P,F,I]);return n.default.createElement(hp.Provider,{value:R},t,n.default.createElement(Fp,{appName:r,metadata:L,social:u,links:f,pagination:m,language:g,document:v,assets:b,pwa:S,schemaOrg:w}))}function Lp(){return(0,n.useContext)(hp)}function Rp(e){return JSON.stringify(e??{})}function zp(e){let t=Lp(),r=n.default.useRef(null);r.current||=(gp+=1,`metadata-${gp}`);let i=Rp(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=r.current;return t.setPageMetadataEntry(n,e),()=>t.clearPageMetadataEntry(n)},[t?.setPageMetadataEntry,t?.clearPageMetadataEntry,i]),t}function Bp(e){let t=Lp(),r=Rp(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.social;return t.setSocialHead(e),()=>t.setSocialHead(n)},[t?.setSocialHead,r]),t}function Vp(e){let t=Lp(),r=Rp(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.links;return t.setHeadLinks(e),()=>t.setHeadLinks(n)},[t?.setHeadLinks,r]),t}function Hp(e){let t=Lp(),r=Rp(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.pagination;return t.setPaginationHead(e),()=>t.setPaginationHead(n)},[t?.setPaginationHead,r]),t}function Up(e){let t=Lp(),r=Rp(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.language;return t.setLanguageHead(e),()=>t.setLanguageHead(n)},[t?.setLanguageHead,r]),t}function Wp(e){let t=Lp(),r=Rp(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.document;return t.setDocumentHead({...n,...e}),()=>t.setDocumentHead(n)},[t?.setDocumentHead,r]),t}function Gp(e){let t=Lp(),r=Rp(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.assets;return t.setAssetsHead(e),()=>t.setAssetsHead(n)},[t?.setAssetsHead,r]),t}function Kp(e){let t=Lp(),r=Rp(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.pwa;return t.setPwaHead(e),()=>t.setPwaHead(n)},[t?.setPwaHead,r]),t}function qp(e){let t=Lp(),r=Rp(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.schemaOrg;return t.setSchemaOrg(e),()=>t.setSchemaOrg(n)},[t?.setSchemaOrg,r]),t}function Jp(e){return zp(e),null}var Yp=e=>/^(https?:)?\/\//.test(e)||e.startsWith(`mailto:`)||e.startsWith(`tel:`),Xp=e=>!!e&&!Yp(e)&&!e.startsWith(`#`),Zp=e=>e.startsWith(`#`),Qp=e=>typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(Qp).join(``):n.default.isValidElement(e)?Qp(e.props.children):``,$p=e=>{if(n.default.isValidElement(e))return/language-([\w-]+)/.exec(e.props.className||``)?.[1]};function em({code:e,language:t}){let[r,i]=n.default.useState(!1),a=Y(`code`);return n.default.createElement(`div`,{className:`relative my-4 overflow-hidden rounded-md border bg-muted/50`},n.default.createElement(`div`,{className:`flex h-9 items-center justify-between border-b px-3`},n.default.createElement(`span`,{className:`text-xs font-medium text-muted-foreground`},t||a.codeLanguageDefault),n.default.createElement(`button`,{type:`button`,className:`rounded border bg-background px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,onClick:()=>{A(e),i(!0),window.setTimeout(()=>i(!1),1600)}},r?a.copied:a.copy)),n.default.createElement(`pre`,{className:`m-0 overflow-x-auto p-4 text-xs leading-relaxed`},n.default.createElement(`code`,{className:t?`language-${t}`:void 0},e)))}var tm=e=>({h1:({className:e,...t})=>n.default.createElement(`h1`,{className:X(`mt-8 scroll-m-20 text-3xl font-bold tracking-normal first:mt-0 [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),h2:({className:e,...t})=>n.default.createElement(`h2`,{className:X(`mt-8 scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-normal first:mt-0 [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),h3:({className:e,...t})=>n.default.createElement(`h3`,{className:X(`mt-6 scroll-m-20 text-xl font-semibold tracking-normal [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),h4:({className:e,...t})=>n.default.createElement(`h4`,{className:X(`mt-5 scroll-m-20 text-base font-semibold tracking-normal [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),p:({className:e,...t})=>n.default.createElement(`p`,{className:X(`my-4 leading-7 text-foreground`,e),...t}),ul:({className:e,...t})=>n.default.createElement(`ul`,{className:X(`my-4 ml-6 list-disc space-y-2`,e),...t}),ol:({className:e,...t})=>n.default.createElement(`ol`,{className:X(`my-4 ml-6 list-decimal space-y-2`,e),...t}),li:({className:e,...t})=>n.default.createElement(`li`,{className:X(`leading-7`,e),...t}),blockquote:({className:e,...t})=>n.default.createElement(`blockquote`,{className:X(`my-4 border-l-4 border-primary bg-muted/40 px-4 py-3 text-sm text-muted-foreground`,e),...t}),table:({className:e,...t})=>n.default.createElement(`div`,{className:`my-4 w-full overflow-x-auto`},n.default.createElement(`table`,{className:X(`w-full border-collapse text-sm`,e),...t})),th:({className:e,...t})=>n.default.createElement(`th`,{className:X(`border bg-muted px-3 py-2 text-left font-semibold`,e),...t}),td:({className:e,...t})=>n.default.createElement(`td`,{className:X(`border px-3 py-2 align-top`,e),...t}),hr:({className:e,...t})=>n.default.createElement(`hr`,{className:X(`my-8 border-border`,e),...t}),a:({className:t,href:r=``,onClick:i,...a})=>n.default.createElement(`a`,{className:X(Zp(r)?`text-primary no-underline transition-opacity hover:opacity-80`:`font-medium text-primary no-underline transition-opacity hover:opacity-80`,t),href:r,target:Yp(r)?`_blank`:void 0,rel:Yp(r)?`noreferrer`:void 0,onClick:t=>{i?.(t),!t.defaultPrevented&&e&&Xp(r)&&(t.preventDefault(),e(r,t))},...a}),pre:({children:e})=>n.default.createElement(em,{code:Qp(e).replace(/\n$/,``),language:$p(e)}),code:({className:e,children:t,...r})=>typeof e==`string`&&e.startsWith(`language-`)?n.default.createElement(`code`,{className:e,...r},t):n.default.createElement(`code`,{className:X(`rounded bg-muted px-1.5 py-0.5 text-[0.9em]`,e),...r},t),input:({className:e,...t})=>n.default.createElement(`input`,{className:X(`mr-2 align-middle`,e),disabled:!0,...t})});function nm({content:e,components:t,className:r,wrapperClassName:i,metadata:a,onInternalLinkClick:o}){let s=n.default.useMemo(()=>e.match(/^#[ \t]+(.+)/m)?.[1]?.trim(),[e]);zp(a||s?{...a??{},title:a?.title??s}:void 0);let c=n.default.useMemo(()=>tm(o),[o]);return n.default.createElement(`div`,{className:X(`rf-markdown-reader max-w-none text-sm text-foreground`,i,r)},n.default.createElement(h.default,{remarkPlugins:[g.default],rehypePlugins:[_.default,[v.default,{behavior:`wrap`}],y.default],components:{...c,...t}},e))}var rm=/^ {0,3}(`{3,}|~{3,})(.*)$/,im=/^ {0,3}(`{1,2}|~{1,2})$/,am=/^\s*[-=]{1,2}\s*$/,om=/^\s*\|?[\s:|-]*$/,sm=/^\s*:?-+:?\s*$/;function cm(e){let t=e.trim();return t.startsWith(`|`)&&(t=t.slice(1)),t.endsWith(`|`)&&!t.endsWith(`\\|`)&&(t=t.slice(0,-1)),t.split(/(?<!\\)\|/)}function lm(e){let t=e[0];if(!t.trimStart().startsWith(`|`))return null;let n=cm(t).filter((e,t,n)=>e.trim()!==``||t<n.length-1);if(n.length===0)return[];let r=`| ${n.map(()=>`---`).join(` | `)} |`,i=t.trimEnd().endsWith(`|`)?t:`${t.trimEnd()} |`;if(e.length===1)return[i,r];let a=e[1];if(!om.test(a))return null;let o=cm(a);return o.length===n.length&&o.every(e=>sm.test(e))?e:[i,r,...e.slice(2)]}function um(e){let t=e,n=t.lastIndexOf(`](`);n>=0&&!t.slice(n).includes(`)`)&&(t+=`)`);let r=[],i=null,a=/^\s*[*+-]\s/.exec(t),o=a?a[0].length:0;for(;o<t.length;){let e=t[o];if(e===`\\`){o+=2;continue}if(e==="`"){let e=1;for(;t[o+e]==="`";)e++;let n="`".repeat(e);i?i.token===n&&(i=null):i={token:n,at:o},o+=e;continue}if(i){o++;continue}if(e===`*`||e===`_`||e===`~`){let n=1;for(;t[o+n]===e;)n++;let i=t[o-1]??` `,a=t[o+n]??``,s=e===`_`&&/[\p{L}\p{N}]/u.test(i)&&/[\p{L}\p{N}]/u.test(a),c=/\s/.test(i)&&a!==``&&/\s/.test(a);if(!s&&!c&&(e!==`~`||n!==1)){let t=r[r.length-1]?.token===e,i=e===`~`?[`~~`]:n>=3?t?[e,e+e]:[e+e,e]:[e.repeat(n)];for(let e of i){let t=r[r.length-1];if(t&&t.token===e)r.pop();else if(r.some(t=>t.token===e)){for(;r.length&&r[r.length-1].token!==e;)r.pop();r.pop()}else r.push({token:e,at:o})}}o+=n;continue}o++}if(i){if(t.slice(i.at+i.token.length).trim()===``)return t.slice(0,i.at).trimEnd();t+=i.token}if(r.length===0)return t;let s=r[0];if(t.slice(s.at).replace(/[*_~\s]/g,``)===``)return t.slice(0,s.at).trimEnd();for(let e=r.length-1;e>=0;e--){let n=r[e];if(t.slice(n.at+n.token.length).replace(/[*_~]/g,``).trim()===``){t=t.slice(0,n.at).trimEnd();continue}t=t.trimEnd()+n.token}return t}function dm(e){if(!e)return e;let t=e.split(`
10
10
  `),n=null,r=0;if(t.forEach((e,t)=>{let i=rm.exec(e);n?i&&i[1][0]===n.char&&i[1].length>=n.len&&i[2].trim()===``&&(n=null,r=t+1):i&&!(i[1][0]==="`"&&i[2].includes("`"))&&(n={char:i[1][0],len:i[1].length})}),n){let e=n;return`${(im.test(t[t.length-1])&&t.length>1?t.slice(0,-1):t).join(`