From c254eedfd18b35188aeddd9752e7a931bf1ca482 Mon Sep 17 00:00:00 2001 From: maziggy Date: Sun, 21 Jun 2026 09:58:52 +0200 Subject: [PATCH] Housekeeping --- .../{index-IPXqtJjD.js => index-oRK7m1Je.js} | 4 ++-- static/img/sponsors/northpole-3d-printing.jpg | Bin 133973 -> 0 bytes static/index.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename static/assets/{index-IPXqtJjD.js => index-oRK7m1Je.js} (99%) delete mode 100644 static/img/sponsors/northpole-3d-printing.jpg diff --git a/static/assets/index-IPXqtJjD.js b/static/assets/index-oRK7m1Je.js similarity index 99% rename from static/assets/index-IPXqtJjD.js rename to static/assets/index-oRK7m1Je.js index d44a39bdc..37df505af 100644 --- a/static/assets/index-IPXqtJjD.js +++ b/static/assets/index-oRK7m1Je.js @@ -8540,8 +8540,8 @@ void main() { transition-colors ${r&&A(`printers:control`)?n?`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`:`bg-yellow-500/20 text-yellow-400 hover:bg-yellow-500/30`:`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`} `,title:A(`printers:control`)?E(n?`printers.resume`:`printers.pause`):E(`printers.permission.noControl`),children:[n?(0,G.jsx)(pl,{className:`w-3 h-3`}):(0,G.jsx)(cl,{className:`w-3 h-3`}),E(n?`printers.resume`:`printers.pause`)]})]})]})]})})(),(Vt?.length>0||W.vt_tray.length>0)&&r===`expanded`&&(()=>{let t=Vt.filter(e=>e.tray.length>1),n=Vt.filter(e=>e.tray.length===1),r=e.nozzle_count===2||W?.temperatures?.nozzle_2!==void 0;return(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-bambu-gray font-medium`,children:E(`printers.filaments`)}),(0,G.jsx)(`div`,{className:`flex-1 h-px bg-bambu-dark-tertiary/30`})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[t.length>0&&(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-3`,children:t.map(t=>{let n=zt[String(t.id)],i=t.id>=128?t.id-128:t.id,g=n===void 0?i:n,_=g===1,v=g===0;return(0,G.jsxs)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary/30`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(uJ,{ams:t,printerId:e.id,label:nJ(t.id,t.tray.length),amsLabels:jt,canEdit:A(`printers:update`),onSaved:Mt,children:(0,G.jsx)(`span`,{className:`text-[10px] text-white font-medium cursor-default select-none`,children:jt?.[t.id]||nJ(t.id,t.tray.length)})}),r&&(_||v)&&(0,G.jsx)(Yq,{side:_?`L`:`R`})]}),(t.humidity!=null||t.temp!=null)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 max-[550px]:flex-col max-[550px]:items-start`,children:[t.humidity!=null&&(0,G.jsx)(eJ,{humidity:t.humidity,goodThreshold:a?.humidityGood,fairThreshold:a?.humidityFair,onClick:()=>tt({amsId:t.id,amsLabel:nJ(t.id,t.tray.length),mode:`humidity`}),compact:!0}),t.temp!=null&&(0,G.jsx)(tJ,{temp:t.temp,goodThreshold:a?.tempGood,fairThreshold:a?.tempFair,onClick:()=>tt({amsId:t.id,amsLabel:nJ(t.id,t.tray.length),mode:`temperature`}),compact:!0}),W.supports_drying&&(t.module_type===`n3f`||t.module_type===`n3s`)&&A(`printers:control`)&&(0,G.jsx)(`button`,{disabled:!!(t.dry_sf_reason?.length&&t.dry_time===0),onClick:e=>{if(t.dry_time>0)pn.mutate(t.id);else if(Pe===t.id)Fe(null);else{let n=(t.tray.find(e=>e.tray_type)?.tray_type||`PLA`).split(` `)[0].toUpperCase(),r=x[n]||x.PLA,i=t.module_type;ze(n),Ve(r[i]||r.n3f),Ue(i===`n3s`?r.n3s_hours:r.n3f_hours),Ge(!1),Le(t.module_type),Fe(t.id),qe(Pf({triggerRect:e.currentTarget.getBoundingClientRect(),popoverWidth:Kq,estimatedHeight:qq}))}},className:`flex items-center gap-0.5 px-1 py-0.5 rounded text-[9px] transition-colors ${t.dry_time>0?`bg-amber-500/20 text-amber-400`:t.dry_sf_reason?.length?`bg-bambu-dark-tertiary/30 text-bambu-gray/50 cursor-not-allowed`:`bg-bambu-dark-tertiary/50 text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`}`,title:t.dry_time>0?E(`printers.drying.stop`):t.dry_sf_reason?.length?E(`printers.drying.powerRequired`):E(`printers.drying.start`),children:(0,G.jsx)(ec,{className:`w-3 h-3`})})]})]}),t.dry_time>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1 mb-1 bg-amber-500/10 border border-amber-500/20 rounded text-[9px]`,children:[(0,G.jsx)(ec,{className:`w-3 h-3 text-amber-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-amber-400 font-medium`,children:E(`printers.drying.active`)}),(0,G.jsx)(`span`,{className:`text-amber-300/70`,children:E(`printers.drying.timeRemaining`,{time:t.dry_time>=60?`${Math.floor(t.dry_time/60)}h ${t.dry_time%60}m`:`${t.dry_time}m`})}),(0,G.jsx)(`button`,{onClick:()=>pn.mutate(t.id),disabled:pn.isPending,className:`ml-auto text-amber-400 hover:text-amber-300 transition-colors disabled:opacity-50`,title:E(`printers.drying.stop`),children:(0,G.jsx)(Au,{className:`w-3 h-3`})})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-1.5`,children:[0,1,2,3].map(r=>{let i=t.tray[r]||t.tray.find(e=>e.id===r),a=i?.tray_type&&i.remain>=0,g=!i?.tray_type,_=rJ(i),v=t.id*4+r,y=Wt===v,b=i?.tray_info_idx?Et?.[i.tray_info_idx]:null,x=Dt?.[v],S=(i?.tray_uuid||i?.tag_uid||Oq(e.serial_number,t.id,r))?.toUpperCase(),C=S?s?.[S]:void 0,w=Eq(C),T=o&&!m?p?.find(n=>n.printer_id===e.id&&n.ams_id===t.id&&n.tray_id===r):void 0,D=T?f?.find(e=>e.id===T.spoolman_spool_id):void 0,O=D&&(D.label_weight??0)>0?Math.round(Math.max(0,(D.label_weight??0)-D.weight_used)/(D.label_weight??1)*100):null,k=u?.(e.id,t.id,r),j=(()=>{let e=k?.spool;return e&&e.label_weight>0&&e.weight_used!=null?Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100):null})(),M=j===0&&a&&i.remain>0?null:j,N=w??O??M??(a?i.remain:null),P=w!==null||O!==null?`spoolman`:M===null?a?`ams`:void 0:`inventory`,F=i?.tray_type?{vendor:jq(i)?`Bambu Lab`:`Generic`,profile:x?.preset_name||(D?[D.brand,D.slicer_filament_name?.split(`@`)[0].trim()||D.material].filter(Boolean).join(` `).trim():null)||k?.spool?.slicer_filament_name||b?.name||i.tray_sub_brands||i.tray_type,colorName:Id(i.tray_color||``),colorHex:i.tray_color||null,kFactor:Jq(i.k),fillLevel:N,trayUuid:i.tray_uuid||null,tagUid:i.tag_uid||null,fillSource:P}:null,I=kn?.amsId===t.id&&kn?.slotId===r,L=(0,G.jsxs)(`div`,{className:`bg-bambu-dark-tertiary rounded p-1 text-center ${g?`opacity-50`:``} ${y?`ring-2 ring-bambu-green ring-offset-1 ring-offset-bambu-dark`:``}`,children:[(0,G.jsx)(Gq,{trayColor:i?.tray_color,trayType:i?.tray_type,isEmpty:g,emptyKind:_,slotNumber:r+1}),(0,G.jsx)(`div`,{className:`text-[9px] text-white font-bold truncate`,children:i?.tray_type||E(_===`reset`?`ams.slotUnconfigured`:`ams.slotEmpty`)}),(0,G.jsx)(`div`,{className:`mt-1 h-1.5 bg-black/30 rounded-full overflow-hidden`,children:N!==null&&N>=0&&!g&&i&&(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${N}%`,backgroundColor:Tq(N)}})})]});return(0,G.jsxs)(`div`,{className:`relative group`,children:[I&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-bambu-dark-tertiary/80 rounded flex items-center justify-center z-20`,children:(0,G.jsx)(xl,{className:`w-4 h-4 text-bambu-green animate-spin`})}),W?.state!==`RUNNING`&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),Qn(Zn?.amsId===t.id&&Zn?.slotId===r?null:{amsId:t.id,slotId:r})},className:`absolute -top-1 -right-1 w-4 h-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-full flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity z-10 hover:bg-bambu-dark-tertiary`,title:E(`printers.slotOptions`),children:(0,G.jsx)(zs,{className:`w-2.5 h-2.5 text-bambu-gray`})}),W?.state!==`RUNNING`&&Zn?.amsId===t.id&&Zn?.slotId===r&&(0,G.jsxs)(`div`,{className:`absolute top-full left-0 mt-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1 min-w-[120px]`,children:[(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-xs flex items-center gap-2 ${A(`printers:ams_rfid`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),A(`printers:ams_rfid`)&&(Pn.mutate({amsId:t.id,slotId:r}),Qn(null))},disabled:I||!A(`printers:ams_rfid`),title:A(`printers:ams_rfid`)?void 0:E(`printers.permission.noAmsRfid`),children:[(0,G.jsx)(xl,{className:`w-3 h-3 ${I?`animate-spin`:``}`}),E(`printers.rfid.reread`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-xs flex items-center gap-2 ${A(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),A(`printers:control`)&&(Fn.mutate({trayId:t.id*4+r}),Qn(null))},disabled:!A(`printers:control`),title:A(`printers:control`)?void 0:E(`printers.permission.noControl`),children:[(0,G.jsx)(Uc,{className:`w-3 h-3`}),E(`printers.ams.load`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-xs flex items-center gap-2 ${A(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),A(`printers:control`)&&(In.mutate(),Qn(null))},disabled:!A(`printers:control`),title:A(`printers:control`)?void 0:E(`printers.permission.noControl`),children:[(0,G.jsx)(Wc,{className:`w-3 h-3`}),E(`printers.ams.unload`)]})]}),F?(0,G.jsx)(FK,{data:F,spoolman:{enabled:o,linkedSpoolId:T?.spoolman_spool_id??(S?s?.[S]?.id:void 0),spoolmanUrl:c,syncMode:l,onLinkSpool:o&&!T&&!k?()=>{let n=(F.trayUuid||F.tagUid||Oq(e.serial_number,t.id,r)).toUpperCase();rt({tagUid:F.tagUid||n,trayUuid:F.trayUuid||``,printerId:e.id,amsId:t.id,trayId:r})}:void 0,onUnlinkSpool:C?.id?()=>dn.mutate(C.id):void 0},inventory:(()=>{if(o){if(m)return;let n=T,a=D;return{assignedSpool:a?{id:a.id,material:a.material,brand:a.brand??null,color_name:a.color_name??null,remainingWeightGrams:a.label_weight?Math.max(0,Math.round(a.label_weight-a.weight_used)):void 0}:null,onAssignSpool:()=>at({printerId:e.id,amsId:t.id,trayId:r,trayInfo:{type:i?.tray_type||F.profile,material:i?.tray_type??void 0,profile:F.profile,color:F.colorHex||``,location:`${nJ(t.id,t.tray.length)} Slot ${r+1}`}}),onUnassignSpool:a&&!jq(i)?()=>h?.(a.id):void 0,isAssigned:!!n||jq(i)}}let n=u?.(e.id,t.id,r);return{assignedSpool:n?.spool?{id:n.spool.id,material:n.spool.material,brand:n.spool.brand,color_name:n.spool.color_name,remainingWeightGrams:Math.max(0,Math.round(n.spool.label_weight-n.spool.weight_used))}:null,onAssignSpool:()=>at({printerId:e.id,amsId:t.id,trayId:r,trayInfo:{type:i?.tray_type||F.profile,material:i?.tray_type??void 0,profile:F.profile,color:F.colorHex||``,location:`${nJ(t.id,t.tray.length)} Slot ${r+1}`}}),onUnassignSpool:n&&!jq(i)?()=>d?.(e.id,t.id,r):void 0,isAssigned:!!n||jq(i)}})(),configureSlot:{enabled:A(`printers:control`),onConfigure:()=>st({amsId:t.id,trayId:r,trayCount:t.tray.length,trayType:i?.tray_type||void 0,trayColor:i?.tray_color||void 0,traySubBrands:i?.tray_sub_brands||void 0,trayInfoIdx:i?.tray_info_idx||void 0,extruderId:n,caliIdx:i?.cali_idx,savedPresetId:x?.preset_id})},children:L}):(0,G.jsx)(IK,{kind:_??void 0,configureSlot:{enabled:A(`printers:control`),onConfigure:()=>st({amsId:t.id,trayId:r,trayCount:t.tray.length,extruderId:n})},onAssignSpool:()=>at({printerId:e.id,amsId:t.id,trayId:r,trayInfo:{type:``,material:void 0,profile:``,color:``,location:`${nJ(t.id,t.tray.length)} Slot ${r+1}`}}),children:L})]},r)})})]},t.id)})}),(n.length>0||W.vt_tray.length>0)&&(0,G.jsxs)(`div`,{className:`grid grid-cols-4 gap-3`,children:[n.map(t=>{let n=zt[String(t.id)],i=t.id>=128?t.id-128:t.id,g=n===void 0?i:n,_=g===1,v=g===0,y=t.tray[0],b=y?.tray_type&&y.remain>=0,S=!y?.tray_type,C=rJ(y),w=wq(t.id,y?.id??0,!1),T=Wt===w,D=y?.tray_info_idx?Et?.[y.tray_info_idx]:null,O=Dt?.[w],k=y?.id??0,j=(y?.tray_uuid||y?.tag_uid||Oq(e.serial_number,t.id,k))?.toUpperCase(),M=j?s?.[j]:void 0,N=Eq(M),P=u?.(e.id,t.id,k),F=(()=>{let e=P?.spool;return e&&e.label_weight>0&&e.weight_used!=null?Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100):null})(),I=F===0&&b&&y.remain>0?null:F,L=o&&!m?p?.find(n=>n.printer_id===e.id&&n.ams_id===t.id&&n.tray_id===k):void 0,R=L?f?.find(e=>e.id===L.spoolman_spool_id):void 0,z=R&&(R.label_weight??0)>0?Math.round(Math.max(0,(R.label_weight??0)-R.weight_used)/(R.label_weight??1)*100):null,B=N??z??I??(b?y.remain:null),ee=N!==null||z!==null?`spoolman`:I===null?b?`ams`:void 0:`inventory`,V=y?.tray_type?{vendor:jq(y)?`Bambu Lab`:`Generic`,profile:O?.preset_name||(R?[R.brand,R.slicer_filament_name?.split(`@`)[0].trim()||R.material].filter(Boolean).join(` `).trim():null)||P?.spool?.slicer_filament_name||D?.name||y.tray_sub_brands||y.tray_type,colorName:Id(y.tray_color||``),colorHex:y.tray_color||null,kFactor:Jq(y.k),fillLevel:B,trayUuid:y.tray_uuid||null,tagUid:y.tag_uid||null,fillSource:ee}:null,te=kn?.amsId===t.id&&kn?.slotId===k,ne=(0,G.jsxs)(`div`,{className:`bg-bambu-dark-tertiary rounded p-1 text-center ${S?`opacity-50`:``} ${T?`ring-2 ring-bambu-green ring-offset-1 ring-offset-bambu-dark`:``}`,children:[(0,G.jsx)(Gq,{trayColor:y?.tray_color,trayType:y?.tray_type,isEmpty:S,emptyKind:C,slotNumber:1}),(0,G.jsx)(`div`,{className:`text-[9px] text-white font-bold truncate`,children:y?.tray_type||E(C===`reset`?`ams.slotUnconfigured`:`ams.slotEmpty`)}),(0,G.jsx)(`div`,{className:`mt-1 h-1.5 bg-black/30 rounded-full overflow-hidden`,children:B!==null&&B>=0&&!S&&(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${B}%`,backgroundColor:Tq(B)}})})]});return(0,G.jsxs)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary/30`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1 mb-2`,children:[(0,G.jsx)(uJ,{ams:t,printerId:e.id,label:nJ(t.id,t.tray.length),amsLabels:jt,canEdit:A(`printers:update`),onSaved:Mt,children:(0,G.jsx)(`span`,{className:`text-[10px] text-white font-medium cursor-default select-none`,children:jt?.[t.id]||nJ(t.id,t.tray.length)})}),r&&(_||v)&&(0,G.jsx)(Yq,{side:_?`L`:`R`}),W.supports_drying&&(t.module_type===`n3f`||t.module_type===`n3s`)&&A(`printers:control`)&&(0,G.jsx)(`div`,{className:`relative ml-auto`,children:(0,G.jsx)(`button`,{onClick:e=>{if(t.dry_time>0)pn.mutate(t.id);else if(Pe===t.id)Fe(null);else{let n=(t.tray.find(e=>e.tray_type)?.tray_type||`PLA`).split(` `)[0].toUpperCase(),r=x[n]||x.PLA,i=t.module_type;ze(n),Ve(r[i]||r.n3f),Ue(i===`n3s`?r.n3s_hours:r.n3f_hours),Ge(!1),Le(t.module_type),Fe(t.id),qe(Pf({triggerRect:e.currentTarget.getBoundingClientRect(),popoverWidth:Kq,estimatedHeight:qq}))}},className:`flex items-center gap-0.5 px-1 py-0.5 rounded text-[9px] transition-colors ${t.dry_time>0?`bg-amber-500/20 text-amber-400`:`bg-bambu-dark-tertiary/50 text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`}`,title:t.dry_time>0?E(`printers.drying.stop`):E(`printers.drying.start`),children:(0,G.jsx)(ec,{className:`w-3 h-3`})})})]}),t.dry_time>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2 py-1 mb-1 bg-amber-500/10 border border-amber-500/20 rounded text-[9px] whitespace-nowrap overflow-hidden`,children:[(0,G.jsx)(ec,{className:`w-3 h-3 text-amber-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-amber-300/70 text-[8px] truncate`,children:t.dry_time>=60?`${Math.floor(t.dry_time/60)}h ${t.dry_time%60}m`:`${t.dry_time}m`}),(0,G.jsx)(`button`,{onClick:()=>pn.mutate(t.id),disabled:pn.isPending,className:`ml-auto text-amber-400 hover:text-amber-300 transition-colors disabled:opacity-50 shrink-0`,title:E(`printers.drying.stop`),children:(0,G.jsx)(Au,{className:`w-3 h-3`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-1.5 max-[550px]:flex-col max-[550px]:items-start`,children:[(0,G.jsxs)(`div`,{className:`relative group flex-1 max-[550px]:w-full`,children:[te&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-bambu-dark-tertiary/80 rounded flex items-center justify-center z-20`,children:(0,G.jsx)(xl,{className:`w-4 h-4 text-bambu-green animate-spin`})}),W?.state!==`RUNNING`&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),Qn(Zn?.amsId===t.id&&Zn?.slotId===k?null:{amsId:t.id,slotId:k})},className:`absolute -top-1 -right-1 w-4 h-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-full flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity z-10 hover:bg-bambu-dark-tertiary`,title:E(`printers.slotOptions`),children:(0,G.jsx)(zs,{className:`w-2.5 h-2.5 text-bambu-gray`})}),W?.state!==`RUNNING`&&Zn?.amsId===t.id&&Zn?.slotId===k&&(0,G.jsxs)(`div`,{className:`absolute top-full left-0 mt-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1 min-w-[120px]`,children:[(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-xs flex items-center gap-2 ${A(`printers:ams_rfid`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),A(`printers:ams_rfid`)&&(Pn.mutate({amsId:t.id,slotId:k}),Qn(null))},disabled:te||!A(`printers:ams_rfid`),title:A(`printers:ams_rfid`)?void 0:E(`printers.permission.noAmsRfid`),children:[(0,G.jsx)(xl,{className:`w-3 h-3 ${te?`animate-spin`:``}`}),E(`printers.rfid.reread`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-xs flex items-center gap-2 ${A(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),A(`printers:control`)&&(Fn.mutate({trayId:t.id*4+k}),Qn(null))},disabled:!A(`printers:control`),title:A(`printers:control`)?void 0:E(`printers.permission.noControl`),children:[(0,G.jsx)(Uc,{className:`w-3 h-3`}),E(`printers.ams.load`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-xs flex items-center gap-2 ${A(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),A(`printers:control`)&&(In.mutate(),Qn(null))},disabled:!A(`printers:control`),title:A(`printers:control`)?void 0:E(`printers.permission.noControl`),children:[(0,G.jsx)(Wc,{className:`w-3 h-3`}),E(`printers.ams.unload`)]})]}),V?(0,G.jsx)(FK,{data:V,spoolman:{enabled:o,linkedSpoolId:L?.spoolman_spool_id??(j?s?.[j]?.id:void 0),spoolmanUrl:c,syncMode:l,onLinkSpool:o&&!L&&!P?()=>{let n=(V.trayUuid||V.tagUid||Oq(e.serial_number,t.id,k)).toUpperCase();rt({tagUid:V.tagUid||n,trayUuid:V.trayUuid||``,printerId:e.id,amsId:t.id,trayId:k})}:void 0,onUnlinkSpool:M?.id?()=>dn.mutate(M.id):void 0},inventory:(()=>{if(o){if(m)return;let n=L,r=R;return{assignedSpool:r?{id:r.id,material:r.material,brand:r.brand??null,color_name:r.color_name??null,remainingWeightGrams:r.label_weight?Math.max(0,Math.round(r.label_weight-r.weight_used)):void 0}:null,onAssignSpool:()=>at({printerId:e.id,amsId:t.id,trayId:k,trayInfo:{type:y?.tray_type||V.profile,material:y?.tray_type??void 0,profile:V.profile,color:V.colorHex||``,location:nJ(t.id,t.tray.length)}}),onUnassignSpool:r&&!jq(y)?()=>h?.(r.id):void 0,isAssigned:!!n||jq(y)}}let n=u?.(e.id,t.id,k);return{assignedSpool:n?.spool?{id:n.spool.id,material:n.spool.material,brand:n.spool.brand,color_name:n.spool.color_name,remainingWeightGrams:Math.max(0,Math.round(n.spool.label_weight-n.spool.weight_used))}:null,onAssignSpool:()=>at({printerId:e.id,amsId:t.id,trayId:k,trayInfo:{type:y?.tray_type||V.profile,material:y?.tray_type??void 0,profile:V.profile,color:V.colorHex||``,location:nJ(t.id,t.tray.length)}}),onUnassignSpool:n&&!jq(y)?()=>d?.(e.id,t.id,k):void 0,isAssigned:!!n||jq(y)}})(),configureSlot:{enabled:A(`printers:control`),onConfigure:()=>st({amsId:t.id,trayId:k,trayCount:t.tray.length,trayType:y?.tray_type||void 0,trayColor:y?.tray_color||void 0,traySubBrands:y?.tray_sub_brands||void 0,trayInfoIdx:y?.tray_info_idx||void 0,extruderId:n,caliIdx:y?.cali_idx,savedPresetId:O?.preset_id})},children:ne}):(0,G.jsx)(IK,{kind:C??void 0,configureSlot:{enabled:A(`printers:control`),onConfigure:()=>st({amsId:t.id,trayId:k,trayCount:t.tray.length,extruderId:n})},onAssignSpool:()=>at({printerId:e.id,amsId:t.id,trayId:k,trayInfo:{type:``,material:void 0,profile:``,color:``,location:nJ(t.id,t.tray.length)}}),children:ne})]}),(t.humidity!=null||t.temp!=null)&&(0,G.jsxs)(`div`,{className:`flex flex-col justify-center gap-1 shrink-0 max-[550px]:w-full`,children:[t.temp!=null&&(0,G.jsx)(tJ,{temp:t.temp,goodThreshold:a?.tempGood,fairThreshold:a?.tempFair,onClick:()=>tt({amsId:t.id,amsLabel:nJ(t.id,t.tray.length),mode:`temperature`}),compact:!0}),t.humidity!=null&&(0,G.jsx)(eJ,{humidity:t.humidity,goodThreshold:a?.humidityGood,fairThreshold:a?.humidityFair,onClick:()=>tt({amsId:t.id,amsLabel:nJ(t.id,t.tray.length),mode:`humidity`}),compact:!0})]})]})]},t.id)}),W.vt_tray.length>0&&(0,G.jsxs)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary/30 ${W.vt_tray.length===1?`max-w-[50%]`:``}`,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-1 mb-2`,children:(0,G.jsx)(`span`,{className:`text-[10px] text-white font-medium`,children:E(`printers.external`)})}),(0,G.jsx)(`div`,{className:`grid ${W.vt_tray.length>1?`grid-cols-2`:`grid-cols-1`} gap-1.5`,children:[...W.vt_tray].sort((e,t)=>(e.id??254)-(t.id??254)).map(t=>{let n=t.id??254,i=r&&Wt===254?n===254&&W.active_extruder===1||n===255&&W.active_extruder===0:Wt===n,a=n-254,g=r?E(n===254?`printers.extL`:`printers.extR`):``,_=t.tray_info_idx?Et?.[t.tray_info_idx]:null,v=Dt?.[1020+a],y=(t.tray_uuid||t.tag_uid||Oq(e.serial_number,255,a))?.toUpperCase(),b=y?s?.[y]:void 0,x=Eq(b),S=u?.(e.id,255,a),C=(()=>{let e=S?.spool;return e&&e.label_weight>0&&e.weight_used!=null?Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100):null})(),w=t.tray_type&&t.remain>=0,T=C===0&&w&&t.remain>0?null:C,D=o&&!m?p?.find(t=>t.printer_id===e.id&&t.ams_id===255&&t.tray_id===a):void 0,O=D?f?.find(e=>e.id===D.spoolman_spool_id):void 0,k=O&&(O.label_weight??0)>0?Math.round(Math.max(0,(O.label_weight??0)-O.weight_used)/(O.label_weight??1)*100):null,j=x??k??T??(w?t.remain:null),M=x!==null||k!==null?`spoolman`:T===null?w?`ams`:void 0:`inventory`,N={vendor:jq(t)?`Bambu Lab`:`Generic`,profile:v?.preset_name||(O?[O.brand,O.slicer_filament_name?.split(`@`)[0].trim()||O.material].filter(Boolean).join(` `).trim():null)||S?.spool?.slicer_filament_name||_?.name||t.tray_sub_brands||t.tray_type||`Unknown`,colorName:Id(t.tray_color||``),colorHex:t.tray_color||null,kFactor:Jq(t.k),fillLevel:j,trayUuid:t.tray_uuid||null,tagUid:t.tag_uid||null,fillSource:M},P=!t.tray_type,F=rJ(t),I=(0,G.jsxs)(`div`,{className:`bg-bambu-dark-tertiary rounded p-1 text-center ${P?`opacity-50`:``} ${i?`ring-2 ring-bambu-green ring-offset-1 ring-offset-bambu-dark`:``}`,children:[(0,G.jsx)(Gq,{trayColor:t.tray_color,trayType:t.tray_type,isEmpty:P,emptyKind:F,slotNumber:a+1}),(0,G.jsx)(`div`,{className:`text-[9px] font-bold truncate ${P?`text-white/40`:`text-white`}`,children:t.tray_type||E(`ams.slotEmpty`)}),(0,G.jsx)(`div`,{className:`mt-1 h-1.5 bg-black/30 rounded-full overflow-hidden`,children:j!==null&&j>=0&&!P&&(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${j}%`,backgroundColor:Tq(j)}})}),g&&(0,G.jsx)(`div`,{className:`text-[7px] text-white/40 mt-0.5 truncate`,children:g})]}),L=2550+a,R=Zn?.amsId===255&&Zn?.slotId===L;return(0,G.jsxs)(`div`,{className:`relative group`,children:[W?.state!==`RUNNING`&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),Qn(R?null:{amsId:255,slotId:L})},className:`absolute -top-1 -right-1 w-4 h-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-full flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity z-10 hover:bg-bambu-dark-tertiary`,title:E(`printers.slotOptions`),children:(0,G.jsx)(zs,{className:`w-2.5 h-2.5 text-bambu-gray`})}),W?.state!==`RUNNING`&&R&&(0,G.jsxs)(`div`,{className:`absolute top-full left-0 mt-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1 min-w-[120px]`,children:[(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-xs flex items-center gap-2 ${A(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),A(`printers:control`)&&(Fn.mutate({trayId:n}),Qn(null))},disabled:!A(`printers:control`),title:A(`printers:control`)?void 0:E(`printers.permission.noControl`),children:[(0,G.jsx)(Uc,{className:`w-3 h-3`}),E(`printers.ams.load`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-xs flex items-center gap-2 ${A(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),A(`printers:control`)&&(In.mutate(),Qn(null))},disabled:!A(`printers:control`),title:A(`printers:control`)?void 0:E(`printers.permission.noControl`),children:[(0,G.jsx)(Wc,{className:`w-3 h-3`}),E(`printers.ams.unload`)]})]}),P?(0,G.jsx)(IK,{kind:F??void 0,configureSlot:{enabled:A(`printers:control`),onConfigure:()=>st({amsId:255,trayId:a,trayCount:1,extruderId:r?+(n===254):void 0})},onAssignSpool:()=>at({printerId:e.id,amsId:255,trayId:a,trayInfo:{type:``,material:void 0,profile:``,color:``,location:`External Slot ${a+1}`}}),children:I}):(0,G.jsx)(FK,{data:N,spoolman:{enabled:o,linkedSpoolId:D?.spoolman_spool_id??(y?s?.[y]?.id:void 0),spoolmanUrl:c,syncMode:l,onLinkSpool:o&&!D&&!S?()=>{let t=(N.trayUuid||N.tagUid||Oq(e.serial_number,255,a)).toUpperCase();rt({tagUid:N.tagUid||t,trayUuid:N.trayUuid||``,printerId:e.id,amsId:255,trayId:a})}:void 0,onUnlinkSpool:b?.id?()=>dn.mutate(b.id):void 0},inventory:(()=>{if(o){if(m)return;let n=D,r=O;return{assignedSpool:r?{id:r.id,material:r.material,brand:r.brand??null,color_name:r.color_name??null,remainingWeightGrams:r.label_weight?Math.max(0,Math.round(r.label_weight-r.weight_used)):void 0}:null,onAssignSpool:()=>at({printerId:e.id,amsId:255,trayId:a,trayInfo:{type:t.tray_type||N.profile,material:t.tray_type??void 0,profile:N.profile,color:N.colorHex||``,location:g||E(`printers.external`)}}),onUnassignSpool:r&&!jq(t)?()=>h?.(r.id):void 0,isAssigned:!!n||jq(t)}}let n=u?.(e.id,255,a);return{assignedSpool:n?.spool?{id:n.spool.id,material:n.spool.material,brand:n.spool.brand,color_name:n.spool.color_name,remainingWeightGrams:Math.max(0,Math.round(n.spool.label_weight-n.spool.weight_used))}:null,onAssignSpool:()=>at({printerId:e.id,amsId:255,trayId:a,trayInfo:{type:t.tray_type||N.profile,material:t.tray_type??void 0,profile:N.profile,color:N.colorHex||``,location:g||E(`printers.external`)}}),onUnassignSpool:n&&!jq(t)?()=>d?.(e.id,255,a):void 0,isAssigned:!!n||jq(t)}})(),configureSlot:{enabled:A(`printers:control`),onConfigure:()=>st({amsId:255,trayId:a,trayCount:1,trayType:t.tray_type||void 0,trayColor:t.tray_color||void 0,traySubBrands:t.tray_sub_brands||void 0,trayInfoIdx:t.tray_info_idx||void 0,extruderId:r?+(n===254):void 0,caliIdx:t.cali_idx,savedPresetId:v?.preset_id})},children:I})]},n)})})]})]})]})]})})()]}),Gt&&r===`expanded`&&(0,G.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(Mu,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate`,children:Gt.name}),qt&&(0,G.jsxs)(`span`,{className:`text-xs px-1.5 py-0.5 rounded flex-shrink-0 ${qt.state===`ON`?`bg-bambu-green/20 text-bambu-green`:qt.state===`OFF`?`bg-red-500/20 text-red-400`:`bg-bambu-gray/20 text-bambu-gray`}`,children:[qt.state||`?`,qt.state===`ON`&&qt.energy?.power!=null&&(0,G.jsxs)(`span`,{className:`text-yellow-400 ml-1.5`,children:[`· `,Math.round(qt.energy.power),`W`]})]})]}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsxs)(`button`,{onClick:()=>ne(!0),disabled:mn.isPending||qt?.state===`ON`||!A(`smart_plugs:control`),className:`px-2 py-1 text-xs rounded transition-colors flex items-center gap-1 ${A(`smart_plugs:control`)?qt?.state===`ON`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`:`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`}`,title:A(`smart_plugs:control`)?void 0:E(`printers.permission.noSmartPlugControl`),children:[(0,G.jsx)(_l,{className:`w-3 h-3`}),`On`]}),(0,G.jsxs)(`button`,{onClick:()=>ie(!0),disabled:mn.isPending||qt?.state===`OFF`||!A(`smart_plugs:control`),className:`px-2 py-1 text-xs rounded transition-colors flex items-center gap-1 ${A(`smart_plugs:control`)?qt?.state===`OFF`?`bg-red-500/30 text-red-400`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`:`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`}`,title:A(`smart_plugs:control`)?void 0:E(`printers.permission.noSmartPlugControl`),children:[(0,G.jsx)(gl,{className:`w-3 h-3`}),`Off`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(`span`,{className:`text-xs hidden sm:inline ${Gt.auto_off_executed?`text-bambu-green`:`text-bambu-gray`}`,children:Gt.auto_off_executed?`Auto-off done`:`Auto-off`}),(0,G.jsx)(`button`,{onClick:()=>hn.mutate(!Gt.auto_off),disabled:hn.isPending||Gt.auto_off_executed||!A(`smart_plugs:control`),title:A(`smart_plugs:control`)?Gt.auto_off_executed?E(`printers.autoOffExecuted`):E(`printers.autoOffAfterPrint`):E(`printers.permission.noSmartPlugControl`),className:`relative w-9 h-5 rounded-full transition-colors flex-shrink-0 ${A(`smart_plugs:control`)?Gt.auto_off_executed?`bg-bambu-green/50 cursor-not-allowed`:Gt.auto_off?`bg-bambu-green`:`bg-bambu-dark-tertiary`:`bg-bambu-dark-tertiary/50 cursor-not-allowed`}`,children:(0,G.jsx)(`span`,{className:`absolute top-[2px] left-[2px] w-4 h-4 bg-white rounded-full transition-transform ${Gt.auto_off||Gt.auto_off_executed?`translate-x-4`:`translate-x-0`}`})})]})]}),Kt&&Kt.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-2 pt-2 border-t border-bambu-dark-tertiary/50`,children:[(0,G.jsx)(Tc,{className:`w-3.5 h-3.5 text-blue-400 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`HA:`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:Kt.map(e=>{let t=e.ha_entity_id?.startsWith(`script.`);return(0,G.jsxs)(`button`,{onClick:()=>{t?gn.mutate({id:e.id,action:`on`}):ae(e)},disabled:gn.isPending,title:`${t?`Run`:`Toggle`} ${e.ha_entity_id}`,className:`px-2 py-0.5 text-xs bg-blue-500/20 text-blue-400 hover:bg-blue-500/30 rounded transition-colors flex items-center gap-1`,children:[(0,G.jsx)(pl,{className:`w-2.5 h-2.5`}),e.name]},e.id)})})]})]}),r===`expanded`&&(0,G.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary flex items-center justify-end gap-2 flex-wrap`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>xn.mutate(!W?.chamber_light),disabled:!W?.connected||xn.isPending||!A(`printers:control`),title:A(`printers:control`)?W?.chamber_light?E(`printers.chamberLightOff`):E(`printers.chamberLightOn`):E(`printers.permission.noControl`),className:W?.chamber_light?`!border-yellow-500 !text-yellow-400 hover:!bg-yellow-500/20`:``,children:(0,G.jsx)(DT,{on:W?.chamber_light??!1,className:`w-4 h-4 ${W?.chamber_light?`text-yellow-400`:``}`})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{if(_===`embedded`&&v)v(e.id,e.name);else{let t=localStorage.getItem(`cameraWindowState`),n=t?JSON.parse(t):{width:640,height:400},r=[`width=${n.width}`,`height=${n.height}`,n.left===void 0?``:`left=${n.left}`,n.top===void 0?``:`top=${n.top}`,`menubar=no,toolbar=no,location=no,status=no`].filter(Boolean).join(`,`);window.open(`/camera/${e.id}`,`camera-${e.id}`,r)}},disabled:!W?.connected||!A(`camera:view`),title:A(`camera:view`)?E(_===`embedded`?`printers.openCameraOverlay`:`printers.openCameraWindow`):E(`printers.permission.noCamera`),children:(0,G.jsx)(xu,{className:`w-4 h-4`})}),(0,G.jsxs)(`div`,{className:`inline-flex rounded-md ${e.plate_detection_enabled?`ring-1 ring-green-500`:``}`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:Hn,disabled:!W?.connected||En.isPending||!A(`printers:update`),title:A(`printers:update`)?e.plate_detection_enabled?E(`printers.plateDetection.enabledClick`):E(`printers.plateDetection.disabledClick`):E(`printers.plateDetection.noPermission`),className:`!rounded-r-none !border-r-0 ${e.plate_detection_enabled?`!border-green-500 !text-green-400 hover:!bg-green-500/20`:``}`,children:En.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Ol,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:Un,disabled:!W?.connected||ft||!A(`printers:update`),title:A(`printers:update`)?E(`printers.plateDetection.manageCalibration`):E(`printers.plateDetection.noPermission`),className:`!rounded-l-none !px-1.5 ${e.plate_detection_enabled?`!border-green-500 !text-green-400 hover:!bg-green-500/20`:``}`,children:ft?(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}):(0,G.jsx)(es,{className:`w-3 h-3`})})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>B(!0),disabled:!Lt||!A(`printers:files`),title:A(`printers:files`)?E(`printers.browseFiles`):E(`printers.permission.noFiles`),children:[(0,G.jsx)(yc,{className:`w-4 h-4`}),E(`printers.files`)]}),Lt&&W?.state!==`RUNNING`&&W?.state!==`PAUSE`&&(0,G.jsxs)(Q,{size:`sm`,onClick:()=>Ee(!0),disabled:!A(`printers:control`),title:A(`printers:control`)?E(`common.print`):E(`printers.permission.noControl`),className:`!bg-bambu-green hover:!bg-bambu-green/80 !text-white`,children:[(0,G.jsx)(vl,{className:`w-4 h-4`}),E(`common.print`)]})]})]}),z&&(0,G.jsx)(Fse,{printerId:e.id,printerName:e.name,onClose:()=>B(!1)}),Te&&(0,G.jsx)(gq,{folderId:null,onClose:()=>Ee(!1),onUploadComplete:()=>{},autoUpload:!0,accept:`.gcode,.3mf`,validateFile:e=>{let t=e.name.toLowerCase();if(!t.endsWith(`.gcode`)&&!t.includes(`.gcode.`))return E(`printers.dropNotPrintable`,`Only .gcode and .gcode.3mf files can be printed`)},onFileUploaded:t=>{let n=t.metadata?.sliced_for_model,r=lJ(e.model);if(n&&r&&n.toLowerCase()!==r.toLowerCase())return Z.deleteLibraryFile(t.id).catch(()=>{}),E(`printers.incompatibleFile`,`This file was sliced for {{slicedFor}}, but this printer is a {{printerModel}}`,{slicedFor:n,printerModel:r});Ne({id:t.id,filename:t.filename})}}),Me&&(0,G.jsx)(Uq,{mode:`reprint`,libraryFileId:Me.id,archiveName:Me.filename,initialSelectedPrinterIds:[e.id],onClose:()=>Ne(null),onSuccess:()=>Ne(null),cleanupLibraryAfterDispatch:!0}),ee&&(0,G.jsx)(Hse,{printerId:e.id,printerName:e.name,onClose:()=>V(!1)}),ke&&(0,G.jsx)(pf,{printerId:e.id,printerName:e.name,onClose:()=>Ae(!1)}),De&&(0,G.jsx)(Lwe,{printer:e,status:W,totalPrintHours:n?.total_print_hours,onClose:je}),ut&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:()=>Wn(),children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-w-lg w-full`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[ut.needs_calibration?(0,G.jsx)(Ol,{className:`w-5 h-5 text-blue-500`}):ut.is_empty?(0,G.jsx)(ls,{className:`w-5 h-5 text-green-500`}):(0,G.jsx)(ms,{className:`w-5 h-5 text-yellow-500`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:`Build Plate Check`}),ut.reference_count!==void 0&&ut.max_references&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray bg-bambu-dark-tertiary px-2 py-1 rounded`,children:[ut.reference_count,`/`,ut.max_references,` refs`]})]}),(0,G.jsx)(`button`,{onClick:()=>Wn(),className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(Au,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[ut.needs_calibration?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`p-3 rounded-lg bg-blue-500/20 border border-blue-500/50`,children:[(0,G.jsx)(`p`,{className:`font-medium text-blue-400`,children:E(`printers.plateDetection.calibrationRequired`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,dangerouslySetInnerHTML:{__html:E(`printers.plateDetection.calibrationInstructions`)}})]}),(0,G.jsxs)(`div`,{className:`text-sm text-bambu-gray space-y-2`,children:[(0,G.jsx)(`p`,{children:E(`printers.plateDetection.calibrationDescription`)}),(0,G.jsx)(`p`,{dangerouslySetInnerHTML:{__html:E(`printers.plateDetection.calibrationTip`)}})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`p-3 rounded-lg ${ut.is_empty?`bg-green-500/20 border border-green-500/50`:`bg-yellow-500/20 border border-yellow-500/50`}`,children:[(0,G.jsx)(`p`,{className:`font-medium ${ut.is_empty?`text-green-400`:`text-yellow-400`}`,children:ut.is_empty?E(`printers.plateDetection.plateEmpty`):E(`printers.plateDetection.objectsDetected`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:[E(`printers.plateDetection.confidence`),`: `,Math.round(ut.confidence*100),`% | `,E(`printers.plateDetection.difference`),`: `,ut.difference_percent.toFixed(1),`%`]})]}),ut.debug_image_url&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-2`,children:E(`printers.plateDetection.analysisPreview`)}),(0,G.jsx)(`img`,{src:ut.debug_image_url,alt:E(`printers.plateDetection.analysisPreview`),className:`w-full rounded-lg border border-bambu-dark-tertiary`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:E(`printers.plateDetection.analysisLegend`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:ut.message})]}),Ln&&Ln.references.length>0&&(0,G.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-2`,children:E(`printers.plateDetection.savedReferences`,{count:Ln.references.length,max:Ln.max_references})}),(0,G.jsx)(`div`,{className:`grid grid-cols-5 gap-2`,children:Ln.references.map(t=>(0,G.jsxs)(`div`,{className:`relative group`,children:[(0,G.jsx)(`img`,{src:Z.getPlateReferenceThumbnailUrl(e.id,t.index),alt:t.label||`Reference ${t.index+1}`,className:`w-full aspect-video object-cover rounded border border-bambu-dark-tertiary`}),(0,G.jsx)(`button`,{onClick:()=>qn(t.index),className:`absolute top-1 right-1 p-0.5 bg-red-500/80 rounded opacity-0 group-hover:opacity-100 transition-opacity`,title:E(`printers.plateDetection.deleteReference`),children:(0,G.jsx)(Au,{className:`w-3 h-3 text-white`})}),zn?.index===t.index?(0,G.jsx)(`input`,{type:`text`,value:zn.label,onChange:e=>Bn({...zn,label:e.target.value}),onBlur:()=>Kn(t.index,zn.label),onKeyDown:e=>{e.key===`Enter`&&Kn(t.index,zn.label),e.key===`Escape`&&Bn(null)},className:`w-full mt-1 px-1 py-0.5 text-xs bg-bambu-dark-tertiary border border-bambu-green rounded text-white`,autoFocus:!0,placeholder:E(`printers.plateDetection.labelPlaceholder`)}):(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1 truncate cursor-pointer hover:text-white`,onClick:()=>Bn({index:t.index,label:t.label}),title:t.label?E(`printers.plateDetection.clickToEdit`,{label:t.label}):E(`printers.plateDetection.clickToAddLabel`),children:t.label||(0,G.jsx)(`span`,{className:`italic opacity-50`,children:E(`printers.noLabel`)})}),(0,G.jsx)(`p`,{className:`text-[10px] text-bambu-gray/60`,children:t.timestamp?$d(t.timestamp)?.toLocaleDateString()??``:``})]},t.index))})]}),!ut.needs_calibration&&(0,G.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:E(`printers.roi.title`)}),gt?(0,G.jsxs)(`div`,{className:`flex gap-1`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>_t(null),disabled:vt,children:E(`common.cancel`)}),(0,G.jsx)(Q,{size:`sm`,onClick:Jn,disabled:vt,children:vt?(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}):E(`common.save`)})]}):(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>_t(ut.roi||{x:.15,y:.35,w:.7,h:.55}),children:[(0,G.jsx)(dl,{className:`w-3 h-3 mr-1`}),E(`common.edit`)]})]}),gt?(0,G.jsxs)(`div`,{className:`space-y-3 bg-bambu-dark-tertiary/50 p-3 rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:E(`printers.roi.xStart`)}),(0,G.jsx)(`input`,{type:`range`,min:`0`,max:`0.9`,step:`0.01`,value:gt.x,onChange:e=>_t({...gt,x:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(gt.x*100),`%`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:E(`printers.roi.yStart`)}),(0,G.jsx)(`input`,{type:`range`,min:`0`,max:`0.9`,step:`0.01`,value:gt.y,onChange:e=>_t({...gt,y:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(gt.y*100),`%`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:E(`printers.width`)}),(0,G.jsx)(`input`,{type:`range`,min:`0.1`,max:`1`,step:`0.01`,value:gt.w,onChange:e=>_t({...gt,w:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(gt.w*100),`%`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:E(`printers.height`)}),(0,G.jsx)(`input`,{type:`range`,min:`0.1`,max:`1`,step:`0.01`,value:gt.h,onChange:e=>_t({...gt,h:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(gt.h*100),`%`]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:E(`printers.roi.instruction`)})]}):(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[`Current: X=`,Math.round((ut.roi?.x||.15)*100),`%, Y=`,Math.round((ut.roi?.y||.35)*100),`%, W=`,Math.round((ut.roi?.w||.7)*100),`%, H=`,Math.round((ut.roi?.h||.55)*100),`%`]})]})]}),(0,G.jsx)(`div`,{className:`flex justify-end gap-2 p-4 border-t border-bambu-dark-tertiary`,children:ut.needs_calibration?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Q,{variant:`ghost`,onClick:()=>Wn(),children:E(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>Gn(),disabled:mt,children:mt?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),`Calibrating...`]}):`Calibrate Empty Plate`})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Q,{variant:`ghost`,onClick:()=>Gn(),disabled:mt,children:mt?`Adding...`:`Add Reference (${Ln?.references.length||0}/${Ln?.max_references||5})`}),(0,G.jsx)(Q,{onClick:()=>Wn(),children:`Close`})]})})]})}),te&&Gt&&(0,G.jsx)(xd,{title:E(`printers.confirm.powerOnTitle`),message:E(`printers.confirm.powerOnMessage`,{name:e.name}),confirmText:E(`printers.confirm.powerOnButton`),variant:`default`,onConfirm:()=>{mn.mutate(`on`),ne(!1)},onCancel:()=>ne(!1)}),re&&Gt&&(0,G.jsx)(xd,{title:E(`printers.confirm.powerOffTitle`),message:W?.state===`RUNNING`?E(`printers.confirm.powerOffWarning`,{name:e.name}):E(`printers.confirm.powerOffMessage`,{name:e.name}),confirmText:E(`printers.confirm.powerOffButton`),variant:`danger`,onConfirm:()=>{mn.mutate(`off`),ie(!1)},onCancel:()=>ie(!1)}),H&&(0,G.jsx)(xd,{title:E(`printers.confirm.haToggleTitle`,{name:H.name}),message:W?.state===`RUNNING`?E(`printers.confirm.haToggleWarning`,{name:e.name,entity:H.ha_entity_id||H.name}):E(`printers.confirm.haToggleMessage`,{entity:H.ha_entity_id||H.name}),confirmText:E(`printers.confirm.haToggleButton`),variant:W?.state===`RUNNING`?`danger`:`default`,onConfirm:()=>{gn.mutate({id:H.id,action:`toggle`}),ae(null)},onCancel:()=>ae(null)}),se&&(0,G.jsx)(xd,{title:E(`printers.confirm.stopTitle`),message:E(`printers.confirm.stopMessage`,{name:e.name}),confirmText:E(`printers.confirm.stopButton`),variant:`danger`,onConfirm:()=>{_n.mutate(),ce(!1)},onCancel:()=>ce(!1)}),le&&(0,G.jsx)(xd,{title:E(`printers.confirm.pauseTitle`),message:E(`printers.confirm.pauseMessage`,{name:e.name}),confirmText:E(`printers.confirm.pauseButton`),variant:`default`,onConfirm:()=>{vn.mutate(),ue(!1)},onCancel:()=>ue(!1)}),xe&&(0,G.jsx)(xd,{title:E(`printers.confirm.resumeTitle`),message:E(`printers.confirm.resumeMessage`,{name:e.name}),confirmText:E(`printers.confirm.resumeButton`),variant:`default`,onConfirm:()=>{yn.mutate(),Se(!1)},onCancel:()=>Se(!1)}),ye&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl w-full max-w-sm p-5`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(hu,{className:`w-5 h-5 text-yellow-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-white mb-1`,children:E(`printers.bedJog.notHomedTitle`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray leading-relaxed`,children:E(`printers.bedJog.notHomedMessage`)})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>{Tn.mutate(`all`),be(null)},className:`w-full px-3 py-2 rounded-lg text-xs font-medium bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30 transition-colors`,children:E(`printers.bedJog.homeZ`)}),(0,G.jsx)(`button`,{onClick:()=>{let t=ye.distance;try{sessionStorage.setItem(`bambuddy.bedJog.warned.${e.id}`,`1`)}catch{}wn.mutate({distance:t,force:!0}),be(null)},className:`w-full px-3 py-2 rounded-lg text-xs font-medium bg-yellow-500/20 text-yellow-400 hover:bg-yellow-500/30 transition-colors`,children:E(`printers.bedJog.moveAnyway`)}),(0,G.jsx)(`button`,{onClick:()=>be(null),className:`w-full px-3 py-2 rounded-lg text-xs font-medium bg-bambu-dark text-bambu-gray hover:bg-bambu-dark-tertiary transition-colors`,children:E(`common.cancel`)})]})]})}),(0,G.jsx)(kT,{printerId:e.id,isOpen:Ce,onClose:()=>we(!1)}),oe&&(0,G.jsx)(Bf,{printerName:e.name,errors:W?.hms_errors||[],onClose:()=>U(!1),printerId:e.id,hasPermission:A}),$e&&(0,G.jsx)(iwe,{isOpen:!!$e,onClose:()=>tt(null),printerId:e.id,printerName:e.name,amsId:$e.amsId,amsLabel:$e.amsLabel,initialMode:$e.mode,thresholds:a}),nt&&(0,G.jsx)(LK,{isOpen:!!nt,onClose:()=>rt(null),tagUid:nt.tagUid,trayUuid:nt.trayUuid,printerId:nt.printerId,amsId:nt.amsId,trayId:nt.trayId}),it&&(0,G.jsx)(zK,{isOpen:!!it,onClose:()=>at(null),printerId:it.printerId,amsId:it.amsId,trayId:it.trayId,trayInfo:it.trayInfo,spoolmanEnabled:!!o}),ot&&(0,G.jsx)(mq,{isOpen:!!ot,onClose:()=>st(null),printerId:e.id,slotInfo:ot,printerModel:lJ(e.model)||void 0,onSuccess:()=>{D.invalidateQueries({queryKey:[`slotPresets`,e.id]}),D.invalidateQueries({queryKey:[`printerStatus`,e.id]})}}),L&&(0,G.jsx)($we,{printer:e,onClose:()=>R(!1)}),ct&&St&&(0,G.jsx)(Qwe,{printer:e,firmwareInfo:St,onClose:()=>lt(!1)}),Zn&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>Qn(null)}),Pe!==null&&Ke&&(()=>{let e=Ie===`n3s`?85:65,t=e+10;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-[100]`,onClick:()=>Fe(null)}),(0,G.jsxs)(`div`,{className:`fixed z-[101] flex flex-col w-[240px] bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl overflow-hidden`,style:{top:Ke.top,left:Ke.left,maxHeight:`calc(100dvh - ${Ke.top}px - 8px)`},onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`shrink-0 flex items-center gap-2 px-3 py-2.5 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(ec,{className:`w-3.5 h-3.5 text-amber-400`}),(0,G.jsx)(`span`,{className:`text-xs text-white font-medium`,children:E(`printers.drying.start`)})]}),(0,G.jsxs)(`div`,{className:`px-3 py-2.5 space-y-2.5 overflow-y-auto min-h-0`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-[10px] text-bambu-gray mb-1 block`,children:E(`printers.filaments`)}),(0,G.jsx)(`select`,{value:Re,onChange:e=>{let t=e.target.value;ze(t);let n=x[t];n&&(Ve(n[Ie===`n3s`?`n3s`:`n3f`]),Ue(Ie===`n3s`?n.n3s_hours:n.n3f_hours))},className:`w-full px-2 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-xs focus:outline-none focus:border-amber-500/50`,children:Object.keys(x).map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsx)(`label`,{className:`text-[10px] text-bambu-gray`,children:E(`printers.drying.temperature`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:45,max:e,value:Be,onChange:t=>Ve(Math.min(e,Math.max(45,Number(t.target.value)||45))),className:`w-12 px-1 py-0.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-[11px] text-center focus:outline-none focus:border-amber-500/50 [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-[10px] text-bambu-gray`,children:`°C`})]})]}),(0,G.jsx)(`input`,{type:`range`,min:35,max:t,value:Be,onChange:t=>Ve(Math.min(e,Math.max(45,Number(t.target.value)))),className:`w-full h-1 accent-amber-500 cursor-pointer`}),(0,G.jsxs)(`div`,{className:`flex justify-between text-[9px] text-bambu-gray/50 mt-0.5`,children:[(0,G.jsx)(`span`,{children:`45°C`}),(0,G.jsxs)(`span`,{children:[e,`°C`]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsx)(`label`,{className:`text-[10px] text-bambu-gray`,children:E(`printers.drying.duration`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:1,max:24,value:He,onChange:e=>Ue(Math.min(24,Math.max(1,Number(e.target.value)||1))),className:`w-10 px-1 py-0.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-[11px] text-center focus:outline-none focus:border-amber-500/50 [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-[10px] text-bambu-gray`,children:E(`printers.drying.hours`)})]})]}),(0,G.jsx)(`input`,{type:`range`,min:1,max:24,value:He,onChange:e=>Ue(Number(e.target.value)),className:`w-full h-1 accent-amber-500 cursor-pointer`}),(0,G.jsxs)(`div`,{className:`flex justify-between text-[9px] text-bambu-gray/50 mt-0.5`,children:[(0,G.jsx)(`span`,{children:`1h`}),(0,G.jsx)(`span`,{children:`24h`})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:We,onChange:e=>Ge(e.target.checked),className:`w-3.5 h-3.5 accent-amber-500 rounded cursor-pointer`}),(0,G.jsx)(`span`,{className:`text-[11px] text-bambu-gray`,children:E(`printers.drying.rotateTray`)})]})]}),(0,G.jsx)(`div`,{className:`shrink-0 px-3 pt-2.5 pb-3`,children:(0,G.jsx)(`button`,{onClick:()=>{Pe!==null&&fn.mutate({amsId:Pe,temp:Be,duration:He,filament:Re,rotateTray:We})},disabled:fn.isPending,className:`w-full py-1.5 bg-amber-500 hover:bg-amber-400 text-white text-xs font-medium rounded-lg transition-colors disabled:opacity-50`,children:fn.isPending?E(`printers.drying.startingDrying`):E(`printers.drying.start`)})})]})]})})()]})}function Zwe({onClose:e,onAdd:t,existingSerials:n}){let{t:r}=et(),[i,a]=(0,y.useState)({name:``,serial_number:``,ip_address:``,access_code:``,model:``,location:``,auto_archive:!0}),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)([]),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(!1),[g,_]=(0,y.useState)([]),[v,b]=(0,y.useState)(``),[x,S]=(0,y.useState)(``),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)({scanned:0,total:0}),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(null);(0,y.useEffect)(()=>{Ku.getInfo().then(e=>{h(e.is_docker),e.subnets.length>0&&(_(e.subnets),b(e.subnets[0]))}).catch(()=>{});try{let e=localStorage.getItem(`bambuddy.discovery.customSubnet`);e&&S(e)}catch{}},[]);let N=c.filter(e=>!n.includes(e.serial)),P=async e=>{e.preventDefault(),A(!0);try{let e=await Z.diagnoseConnection({ip_address:i.ip_address.trim(),serial_number:i.serial_number.trim()||void 0,access_code:i.access_code||void 0});if(e.checks.some(e=>e.status===`fail`)){M(e);return}}catch{}finally{A(!1)}t(i)},F=async()=>{d(``),l([]),s(!0),p(!1),E({scanned:0,total:0});let e=C?x.trim():v,t=m||C;if(t&&C)try{localStorage.setItem(`bambuddy.discovery.customSubnet`,e)}catch{}try{if(t){await Ku.startSubnetScan(e);let t=setInterval(async()=>{try{let e=await Ku.getScanStatus();E({scanned:e.scanned,total:e.total}),l(await Ku.getDiscoveredPrinters()),e.running||(clearInterval(t),s(!1),p(!0))}catch(e){console.error(`Failed to get scan status:`,e)}},500)}else{await Ku.startDiscovery(10);let e=setInterval(async()=>{try{l(await Ku.getDiscoveredPrinters())}catch(e){console.error(`Failed to get discovered printers:`,e)}},1e3);setTimeout(async()=>{clearInterval(e);try{await Ku.stopDiscovery()}catch{}s(!1),p(!0);try{l(await Ku.getDiscoveredPrinters())}catch(e){console.error(`Failed to get final discovered printers:`,e)}},1e4)}}catch(e){console.error(`Failed to start discovery:`,e),d(e instanceof Error?e.message:r(`printers.discovery.failedToStart`)),s(!1),p(!0)}},I=e=>{let t=e.serial.startsWith(`unknown-`)?``:e.serial;a({...i,name:e.name||``,serial_number:t,ip_address:e.ip_address,model:lJ(e.model)}),l([])};return(0,y.useEffect)(()=>()=>{Ku.stopDiscovery().catch(()=>{}),Ku.stopSubnetScan().catch(()=>{})},[]),(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-start sm:items-center justify-center z-50 p-4 overflow-y-auto`,onClick:e,children:(0,G.jsx)(cd,{className:`w-full max-w-md my-auto max-h-[calc(100vh-2rem)] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(ud,{children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold mb-4`,children:r(`printers.addPrinter`)}),(0,G.jsxs)(`div`,{className:`mb-4 pb-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.discovery.subnetToScan`)}),g.length>0?(0,G.jsxs)(`select`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:C?`__custom__`:v,onChange:e=>{e.target.value===`__custom__`?w(!0):(w(!1),b(e.target.value))},disabled:o,children:[g.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),(0,G.jsx)(`option`,{value:`__custom__`,children:r(`printers.discovery.customSubnetOption`)})]}):(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:v,onChange:e=>b(e.target.value),placeholder:`192.168.1.0/24`,disabled:o}),C&&(0,G.jsx)(`input`,{type:`text`,"aria-label":r(`printers.discovery.customSubnetLabel`),className:`mt-2 w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:x,onChange:e=>S(e.target.value),placeholder:`10.1.1.0/24`,disabled:o}),(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray`,children:r(m?`printers.discovery.dockerNote`:`printers.discovery.customSubnetNote`)})]}),(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:F,disabled:o,className:`w-full`,children:o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(m||C)&&T.total>0?r(`printers.discovery.scanProgress`,{scanned:T.scanned,total:T.total}):r(`printers.discovery.scanning`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Al,{className:`w-4 h-4`}),r(m||C?`printers.discovery.scanSubnet`:`printers.discovery.discoverNetwork`)]})}),u&&(0,G.jsx)(`div`,{className:`mt-2 text-sm text-red-400`,children:u}),N.length>0&&(0,G.jsx)(`div`,{className:`mt-3 space-y-2 max-h-40 overflow-y-auto`,children:N.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-2 bg-bambu-dark rounded-lg hover:bg-bambu-dark-secondary cursor-pointer transition-colors`,onClick:()=>I(e),children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`font-medium text-white text-sm truncate`,children:e.name||e.serial}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray truncate`,children:[lJ(e.model)||r(`printers.discovery.unknown`),` • `,e.ip_address,e.serial.startsWith(`unknown-`)&&(0,G.jsxs)(`span`,{className:`text-yellow-500`,children:[` • `,r(`printers.discovery.serialRequired`)]})]})]}),(0,G.jsx)(es,{className:`w-4 h-4 text-bambu-gray -rotate-90 flex-shrink-0 ml-2`})]},e.serial))}),o&&(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray text-center`,children:r(m||C?`printers.discovery.scanningSubnet`:`printers.discovery.scanningNetwork`)}),f&&!o&&c.length===0&&(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray text-center`,children:r(m||C?`printers.discovery.noPrintersFoundSubnet`:`printers.discovery.noPrintersFoundNetwork`)}),f&&!o&&c.length>0&&N.length===0&&(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray text-center`,children:r(`printers.discovery.allConfigured`)})]}),(0,G.jsxs)(`form`,{onSubmit:P,className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.name`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.name,onChange:e=>a({...i,name:e.target.value}),placeholder:r(`printers.modal.myPrinter`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.ipAddress`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,pattern:`(\\d{1,3}(\\.\\d{1,3}){3}|[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*)`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.ip_address,onChange:e=>a({...i,ip_address:e.target.value}),placeholder:`192.168.1.100 or printer.local`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.serialNumber`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.serial_number,onChange:e=>a({...i,serial_number:e.target.value}),placeholder:`01P00A000000000`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.accessCode`)}),(0,G.jsx)(`input`,{type:`password`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.access_code,onChange:e=>a({...i,access_code:e.target.value}),placeholder:r(`printers.modal.fromPrinterSettings`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.modal.modelOptional`)}),(0,G.jsxs)(`select`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.model||``,onChange:e=>a({...i,model:e.target.value}),children:[(0,G.jsx)(`option`,{value:``,children:r(`printers.modal.selectModel`)}),(0,G.jsxs)(`optgroup`,{label:`A1 Series`,children:[(0,G.jsx)(`option`,{value:`A1`,children:`A1`}),(0,G.jsx)(`option`,{value:`A1 Mini`,children:`A1 Mini`})]}),(0,G.jsx)(`optgroup`,{label:`A2 Series`,children:(0,G.jsx)(`option`,{value:`A2L`,children:`A2L`})}),(0,G.jsxs)(`optgroup`,{label:`H2 Series`,children:[(0,G.jsx)(`option`,{value:`H2C`,children:`H2C`}),(0,G.jsx)(`option`,{value:`H2D`,children:`H2D`}),(0,G.jsx)(`option`,{value:`H2D Pro`,children:`H2D Pro`}),(0,G.jsx)(`option`,{value:`H2S`,children:`H2S`})]}),(0,G.jsxs)(`optgroup`,{label:`P Series`,children:[(0,G.jsx)(`option`,{value:`P1P`,children:`P1P`}),(0,G.jsx)(`option`,{value:`P1S`,children:`P1S`}),(0,G.jsx)(`option`,{value:`P2S`,children:`P2S`})]}),(0,G.jsxs)(`optgroup`,{label:`X1 Series`,children:[(0,G.jsx)(`option`,{value:`X1`,children:`X1`}),(0,G.jsx)(`option`,{value:`X1C`,children:`X1 Carbon`}),(0,G.jsx)(`option`,{value:`X1E`,children:`X1E`})]}),(0,G.jsx)(`optgroup`,{label:`X2 Series`,children:(0,G.jsx)(`option`,{value:`X2D`,children:`X2D`})})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.modal.locationGroup`)}),(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.location||``,onChange:e=>a({...i,location:e.target.value}),placeholder:r(`printers.modal.locationPlaceholder`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`printers.locationHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`auto_archive`,checked:i.auto_archive,onChange:e=>a({...i,auto_archive:e.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`label`,{htmlFor:`auto_archive`,className:`text-sm text-bambu-gray`,children:r(`printers.modal.autoArchiveLabel`)})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>O(!0),disabled:!i.ip_address.trim(),className:`w-full flex items-center justify-center gap-2 px-3 py-2 text-sm text-bambu-gray hover:text-white disabled:opacity-40 disabled:cursor-not-allowed border border-bambu-dark-tertiary rounded-lg transition-colors`,children:[(0,G.jsx)(eu,{className:`w-4 h-4`}),r(`diagnostic.runButton`)]}),j?(0,G.jsxs)(`div`,{className:`rounded-lg bg-amber-500/10 border border-amber-500/30 p-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(hu,{className:`w-4 h-4 mt-0.5 flex-shrink-0 text-amber-400`}),(0,G.jsx)(`p`,{className:`text-sm text-amber-300`,children:r(`printers.addPreflight.warning`)})]}),(0,G.jsx)(df,{result:j}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>M(null),className:`flex-1`,children:r(`printers.addPreflight.back`)}),(0,G.jsx)(Q,{type:`button`,onClick:()=>t(i),className:`flex-1`,children:r(`printers.addPreflight.saveAnyway`)})]})]}):(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:e,className:`flex-1`,children:r(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:k,className:`flex-1`,children:r(k?`printers.addPreflight.checking`:`printers.addPrinter`)})]})]})]})})}),D&&(0,G.jsx)(pf,{connection:{ip_address:i.ip_address.trim(),serial_number:i.serial_number.trim()||void 0,access_code:i.access_code||void 0},printerName:i.name||null,onClose:()=>O(!1)})]})}function Qwe({printer:e,firmwareInfo:t,onClose:n}){let{t:r}=et(),i=$a(),{showToast:a}=gd(),{hasPermission:o}=nd(),s=o(`firmware:update`),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(t.update_available?t.latest_version:null),{data:g,isLoading:_}=K({queryKey:[`firmwarePrepare`,e.id,m],queryFn:()=>Xu.prepareUpload(e.id,m??void 0),staleTime:3e4,enabled:!!m&&s&&!u}),v=q({mutationFn:()=>Xu.startUpload(e.id,m??void 0),onSuccess:()=>{d(!0);let t=setInterval(async()=>{try{let n=await Xu.getUploadStatus(e.id);l(n),(n.status===`complete`||n.status===`error`)&&(clearInterval(t),p(null),d(!1),n.status===`complete`&&(a(r(`printers.firmwareModal.uploadedToast`),`success`),i.invalidateQueries({queryKey:[`firmwareUpdate`,e.id]})))}catch{}},2e3);p(t)},onError:e=>{a(r(`printers.firmwareModal.uploadFailed`,{error:e.message}),`error`),d(!1)}});return(0,y.useEffect)(()=>()=>{f&&clearInterval(f)},[f]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsx)(cd,{className:`w-full max-w-md mx-4`,children:(0,G.jsxs)(ud,{children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full ${t.update_available?`bg-orange-500/20`:`bg-status-ok/20`}`,children:t.update_available?(0,G.jsx)(Is,{className:`w-5 h-5 text-orange-400`}):(0,G.jsx)(ls,{className:`w-5 h-5 text-status-ok`})}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:t.update_available?r(`printers.firmwareModal.title`):r(`printers.firmwareModal.titleUpToDate`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e.name})]})]}),(()=>{let e=m?t.available_versions?.find(e=>e.version===m):null,n=m??t.latest_version,i=e?.release_notes??t.release_notes,a=!!n&&n!==t.current_version;return(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3 mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between items-center text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:r(`printers.firmwareModal.currentVersion`)}),(0,G.jsx)(`span`,{className:`font-mono ${a?`text-white`:`text-status-ok`}`,children:t.current_version||r(`common.unknown`)})]}),a&&(0,G.jsxs)(`div`,{className:`flex justify-between items-center text-sm mt-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:r(`printers.firmwareModal.latestVersion`)}),(0,G.jsx)(`span`,{className:`text-orange-400 font-mono`,children:n})]}),i&&(0,G.jsxs)(`details`,{className:`mt-3 text-sm`,open:!a,children:[(0,G.jsx)(`summary`,{className:`cursor-pointer hover:underline ${a?`text-orange-400`:`text-status-ok`}`,children:r(`printers.firmwareModal.releaseNotes`)}),(0,G.jsx)(`div`,{className:`mt-2 text-bambu-gray text-xs max-h-40 overflow-y-auto whitespace-pre-wrap`,children:i})]},n??`none`)]})})(),t.available_versions&&t.available_versions.length>0&&!u&&c?.status!==`complete`&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mb-2`,children:r(`printers.firmwareModal.availableVersions`)}),(0,G.jsx)(`div`,{className:`max-h-56 overflow-y-auto border border-bambu-dark-tertiary rounded-lg divide-y divide-bambu-dark-tertiary`,children:t.available_versions.map(e=>{let n=t.current_version===e.version,i=m===e.version,a=t.current_version?Mf(e.version,t.current_version):0,o=r(n?`printers.firmwareModal.currentBadge`:a>0?`printers.firmwareModal.newerBadge`:`printers.firmwareModal.olderBadge`),c=n?`text-bambu-gray`:a>0?`text-orange-400`:`text-blue-400`;return(0,G.jsxs)(`button`,{type:`button`,disabled:!e.file_available||!s||n,onClick:()=>h(e.version),className:`w-full text-left px-3 py-2 text-sm flex items-center justify-between gap-2 transition-colors ${i?`bg-orange-500/10`:`hover:bg-bambu-dark`} ${!e.file_available||!s||n?`opacity-60 cursor-not-allowed`:`cursor-pointer`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(`span`,{className:`font-mono text-white`,children:e.version}),(0,G.jsx)(`span`,{className:`text-xs ${c}`,children:o})]}),(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded-full ${n?`bg-blue-500/15 text-blue-400 border border-blue-500/30`:e.file_available?`bg-bambu-green/15 text-bambu-green border border-bambu-green/30`:`bg-bambu-gray/10 text-bambu-gray border border-bambu-gray/30`}`,children:n?r(`printers.firmwareModal.installed`):e.file_available?r(`printers.firmwareModal.usable`):r(`printers.firmwareModal.unavailable`)})]},e.version)})})]}),m?_?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm mb-4`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`printers.firmwareModal.checkingPrereqs`)]}):g&&!u&&!c?(0,G.jsx)(`div`,{className:`mb-4`,children:g.can_proceed?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-green text-sm`,children:[(0,G.jsx)(Vo,{className:`w-4 h-4`}),r(`printers.firmwareModal.sdCardReady`)]}):(0,G.jsx)(`div`,{className:`space-y-1`,children:g.errors.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-red-400 text-sm`,children:[(0,G.jsx)(ss,{className:`w-4 h-4 flex-shrink-0`}),e]},t))})}):null:null,(u||c)&&c&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-sm mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray capitalize`,children:c.status}),(0,G.jsxs)(`span`,{className:`text-white`,children:[c.progress,`%`]})]}),(0,G.jsx)(`div`,{className:`w-full bg-bambu-dark-tertiary rounded-full h-2`,children:(0,G.jsx)(`div`,{className:`h-2 rounded-full transition-all ${c.status===`error`?`bg-status-error`:c.status===`complete`?`bg-status-ok`:`bg-orange-500`} ${c.status===`uploading`?`animate-pulse`:``}`,style:{width:`${c.progress}%`}})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:c.message}),c.error&&(0,G.jsx)(`p`,{className:`text-xs text-red-400 mt-1`,children:c.error})]}),c?.status===`complete`&&(0,G.jsxs)(`div`,{className:`bg-bambu-green/10 border border-bambu-green/30 rounded-lg p-3 mb-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-green font-medium mb-2`,children:r(`printers.firmwareModal.uploadedSuccess`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`printers.firmwareModal.applyInstructions`)}),(0,G.jsxs)(`ol`,{className:`text-xs text-bambu-gray mt-1 list-decimal list-inside space-y-1`,children:[(0,G.jsx)(`li`,{dangerouslySetInnerHTML:{__html:r(`printers.firmwareModal.step1`)}}),(0,G.jsx)(`li`,{dangerouslySetInnerHTML:{__html:r(`printers.firmwareModal.step2`)}}),(0,G.jsx)(`li`,{dangerouslySetInnerHTML:{__html:r(`printers.firmwareModal.step3`)}}),(0,G.jsx)(`li`,{children:r(`printers.firmwareModal.step4`)})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:n,children:c?.status===`complete`?r(`printers.firmwareModal.done`):r(`common.cancel`)}),g?.can_proceed&&!u&&c?.status!==`complete`&&s&&(0,G.jsx)(Q,{onClick:()=>{l(null),v.mutate()},disabled:v.isPending,children:v.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}),r(`printers.firmwareModal.starting`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Is,{className:`w-4 h-4 mr-2`}),r(`printers.firmwareModal.uploadFirmware`)]})})]})]})})})}function $we({printer:e,onClose:t}){let{t:n}=et(),r=$a(),{showToast:i}=gd(),[a,o]=(0,y.useState)({name:e.name,ip_address:e.ip_address,access_code:``,model:e.model||``,location:e.location||``,auto_archive:e.auto_archive}),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),d=q({mutationFn:t=>Z.updatePrinter(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`printers`]}),r.invalidateQueries({queryKey:[`printerStatus`,e.id]}),t()},onError:e=>i(e.message||n(`printers.toast.failedToUpdate`),`error`)});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let f=()=>{let e={name:a.name,ip_address:a.ip_address,model:a.model||void 0,location:a.location||void 0,auto_archive:a.auto_archive};a.access_code&&(e.access_code=a.access_code),d.mutate(e)};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-start sm:items-center justify-center z-50 p-4 overflow-y-auto`,onClick:t,children:(0,G.jsx)(cd,{className:`w-full max-w-md my-auto max-h-[calc(100vh-2rem)] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(ud,{children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold mb-4`,children:n(`printers.editPrinter`)}),(0,G.jsxs)(`form`,{onSubmit:async t=>{t.preventDefault(),c(!0);try{let t=await Z.diagnoseConnection({ip_address:a.ip_address.trim(),serial_number:e.serial_number,access_code:a.access_code||void 0});if(t.checks.some(e=>e.status===`fail`)){u(t);return}}catch{}finally{c(!1)}f()},className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.name`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.name,onChange:e=>o({...a,name:e.target.value}),placeholder:n(`printers.modal.myPrinter`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.ipAddress`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,pattern:`(\\d{1,3}(\\.\\d{1,3}){3}|[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*)`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.ip_address,onChange:e=>o({...a,ip_address:e.target.value}),placeholder:`192.168.1.100 or printer.local`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.serialNumber`)}),(0,G.jsx)(`input`,{type:`text`,disabled:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray cursor-not-allowed`,value:e.serial_number}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`printers.serialCannotBeChanged`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.accessCode`)}),(0,G.jsx)(`input`,{type:`password`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.access_code,onChange:e=>o({...a,access_code:e.target.value}),placeholder:n(`printers.accessCodePlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.model`)}),(0,G.jsxs)(`select`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.model,onChange:e=>o({...a,model:e.target.value}),children:[(0,G.jsx)(`option`,{value:``,children:n(`printers.modal.selectModel`)}),(0,G.jsxs)(`optgroup`,{label:`A1 Series`,children:[(0,G.jsx)(`option`,{value:`A1`,children:`A1`}),(0,G.jsx)(`option`,{value:`A1 Mini`,children:`A1 Mini`})]}),(0,G.jsx)(`optgroup`,{label:`A2 Series`,children:(0,G.jsx)(`option`,{value:`A2L`,children:`A2L`})}),(0,G.jsxs)(`optgroup`,{label:`H2 Series`,children:[(0,G.jsx)(`option`,{value:`H2C`,children:`H2C`}),(0,G.jsx)(`option`,{value:`H2D`,children:`H2D`}),(0,G.jsx)(`option`,{value:`H2D Pro`,children:`H2D Pro`}),(0,G.jsx)(`option`,{value:`H2S`,children:`H2S`})]}),(0,G.jsxs)(`optgroup`,{label:`P Series`,children:[(0,G.jsx)(`option`,{value:`P1P`,children:`P1P`}),(0,G.jsx)(`option`,{value:`P1S`,children:`P1S`}),(0,G.jsx)(`option`,{value:`P2S`,children:`P2S`})]}),(0,G.jsxs)(`optgroup`,{label:`X1 Series`,children:[(0,G.jsx)(`option`,{value:`X1`,children:`X1`}),(0,G.jsx)(`option`,{value:`X1C`,children:`X1 Carbon`}),(0,G.jsx)(`option`,{value:`X1E`,children:`X1E`})]}),(0,G.jsx)(`optgroup`,{label:`X2 Series`,children:(0,G.jsx)(`option`,{value:`X2D`,children:`X2D`})})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Location / Group`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.location,onChange:e=>o({...a,location:e.target.value}),placeholder:n(`printers.modal.locationPlaceholder`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`printers.locationHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`edit_auto_archive`,checked:a.auto_archive,onChange:e=>o({...a,auto_archive:e.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`label`,{htmlFor:`edit_auto_archive`,className:`text-sm text-bambu-gray`,children:n(`printers.modal.autoArchiveLabel`)})]}),l?(0,G.jsxs)(`div`,{className:`rounded-lg bg-amber-500/10 border border-amber-500/30 p-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(hu,{className:`w-4 h-4 mt-0.5 flex-shrink-0 text-amber-400`}),(0,G.jsx)(`p`,{className:`text-sm text-amber-300`,children:n(`printers.addPreflight.warning`)})]}),(0,G.jsx)(df,{result:l}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>u(null),className:`flex-1`,children:n(`printers.addPreflight.back`)}),(0,G.jsx)(Q,{type:`button`,onClick:f,className:`flex-1`,disabled:d.isPending,children:n(`printers.addPreflight.saveAnyway`)})]})]}):(0,G.jsxs)(`div`,{className:`flex gap-3 pt-4`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:n(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,className:`flex-1`,disabled:d.isPending||s,children:s?n(`printers.addPreflight.checking`):d.isPending?n(`common.saving`):n(`printers.modal.saveChanges`)})]})]})]})})})}function eTe(e){let{data:t}=K({queryKey:[`printerStatus`,e],queryFn:()=>Z.getPrinterStatus(e),refetchInterval:3e4});return!t?.connected}function tTe({printer:e,plug:t,onPowerOn:n,isPowering:r}){let i=eTe(e.id),{data:a}=K({queryKey:[`smartPlugStatus`,t.id],queryFn:()=>Z.getSmartPlugStatus(t.id),refetchInterval:1e4});return i?(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 hover:bg-gray-100 dark:hover:bg-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(`span`,{className:`text-sm text-gray-900 dark:text-white truncate`,children:e.name}),a&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded ${a.state===`ON`?`bg-bambu-green/20 text-bambu-green`:`bg-red-500/20 text-red-400`}`,children:a.state||`?`})]}),(0,G.jsxs)(`button`,{onClick:()=>n(t.id),disabled:r||a?.state===`ON`,className:`px-2 py-1 text-xs rounded transition-colors flex items-center gap-1 ${a?.state===`ON`?`bg-bambu-green/20 text-bambu-green cursor-default`:`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green hover:text-white`}`,children:[(0,G.jsx)(_l,{className:`w-3 h-3`}),r?`...`:`On`]})]}):null}function nTe(){let{t:e}=et(),[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)(()=>localStorage.getItem(`hideDisconnectedPrinters`)===`true`),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(()=>localStorage.getItem(`printerSortBy`)||`name`),[d,f]=(0,y.useState)(()=>localStorage.getItem(`printerSortAsc`)!==`false`),[p,m]=(0,y.useState)(()=>{let e=localStorage.getItem(`printerCardSize`);return e?parseInt(e,10):2}),h=p===1?`compact`:`expanded`,[g,_]=(0,y.useState)(``),[v,b]=(0,y.useState)(`all`),[x,S]=(0,y.useState)(`all`),[C,w]=(0,y.useState)(0),[T,E]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`printerCollapsedSections`);return e?JSON.parse(e):{}}catch{return{}}}),D=$a(),{showToast:O}=gd(),{hasPermission:k}=nd(),[A,j]=(0,y.useState)(()=>{let e=localStorage.getItem(`openEmbeddedCameras`);if(e)try{let t=JSON.parse(e);return new Map(t.map(e=>[e.id,e]))}catch{return new Map}return new Map});(0,y.useEffect)(()=>{let e=Array.from(A.values());e.length>0?localStorage.setItem(`openEmbeddedCameras`,JSON.stringify(e)):localStorage.removeItem(`openEmbeddedCameras`)},[A]);let{data:M,isLoading:N}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:P}=K({queryKey:[`ui-preferences`],queryFn:Z.getUiPreferences}),F=(0,y.useMemo)(()=>{if(P?.drying_presets)try{let e=JSON.parse(P.drying_presets);if(typeof e==`object`&&e&&Object.keys(e).length>0)return{...dJ,...e}}catch{}return dJ},[P?.drying_presets]);(0,y.useEffect)(()=>{P?.camera_view_mode===`window`&&A.size>0&&j(new Map)},[P?.camera_view_mode,A.size]);let{data:I}=K({queryKey:[`smart-plugs`],queryFn:Z.getSmartPlugs}),{data:L}=K({queryKey:[`maintenanceOverview`],queryFn:Z.getMaintenanceOverview,staleTime:60*1e3}),{data:R}=K({queryKey:[`spoolman-status`],queryFn:Z.getSpoolmanStatus,staleTime:60*1e3}),z=R?.enabled&&R?.connected,{data:B}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,enabled:!!z,staleTime:60*1e3}),ee=B?.spoolman_sync_mode,{data:V}=K({queryKey:[`unlinked-spools`],queryFn:Z.getUnlinkedSpools,enabled:!!z,staleTime:30*1e3}),te=V&&V.length>0,{data:ne}=K({queryKey:[`linked-spools`],queryFn:Z.getLinkedSpools,enabled:!!z,staleTime:30*1e3}),re=ne?.linked,{data:ie}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),enabled:k(`inventory:view_assignments`),staleTime:30*1e3}),H=q({mutationFn:({printerId:e,amsId:t,trayId:n})=>Z.unassignSpool(e,t,n),onSuccess:()=>{D.invalidateQueries({queryKey:[`spool-assignments`]})}}),{data:ae,isLoading:oe}=K({queryKey:[`spoolman-inventory-spools`],queryFn:()=>Z.getSpoolmanInventorySpools(!1),enabled:!!z,staleTime:30*1e3}),{data:U,isLoading:se}=K({queryKey:[`spoolman-slot-assignments`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:!!z,staleTime:30*1e3}),ce=q({mutationFn:e=>Z.unassignSpoolmanSlot(e),onSuccess:()=>{D.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),D.invalidateQueries({queryKey:[`spoolman-slot-assignments`]})}}),le=(e,t,n)=>ie?.find(r=>r.printer_id===e&&r.ams_id===Number(t)&&r.tray_id===Number(n)),ue=L?.reduce((e,t)=>(e[t.printer_id]={due_count:t.due_count,warning_count:t.warning_count,total_print_hours:t.total_print_hours},e),{})||{},de=I?.reduce((e,t)=>(t.printer_id&&(e[t.printer_id]=t),e),{})||{},fe=q({mutationFn:Z.createPrinter,onSuccess:()=>{D.invalidateQueries({queryKey:[`printers`]}),D.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(!1)},onError:t=>{if(t instanceof Fu&&t.code===`printer_connection_failed`){O(e(`printers.toast.connectionFailedNotAdded`),`error`);return}O(t.message||e(`printers.toast.failedToAdd`),`error`)}}),pe=q({mutationFn:e=>Z.controlSmartPlug(e,`on`),onSuccess:()=>{D.invalidateQueries({queryKey:[`smart-plugs`]}),c(null)},onError:()=>{c(null)}}),[me,he]=(0,y.useState)(new Set),[ge,_e]=(0,y.useState)(!1),[ve,ye]=(0,y.useState)(null),[be,xe]=(0,y.useState)(!1),Se=ge||me.size>0,Ce=(0,y.useCallback)(e=>{he(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),we=(0,y.useCallback)(()=>{he(new Set),_e(!1)},[]);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&Se&&we()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Se,we]);let Te=(0,y.useCallback)(async t=>{xe(!0);let n=Array.from(me).filter(e=>{let n=D.getQueryData([`printerStatus`,e]);if(!n?.connected)return!1;switch(t){case`stop`:return n.state===`RUNNING`||n.state===`PAUSE`;case`pause`:return n.state===`RUNNING`;case`resume`:return n.state===`PAUSE`;case`clearPlate`:return!!n.awaiting_plate_clear;case`clearHMS`:return n.hms_errors&&Rf(n.hms_errors).length>0;default:return!1}});if(n.length===0){O(e(`printers.bulk.noneApplicable`),`error`),xe(!1),ye(null);return}let r={stop:Z.stopPrint,pause:Z.pausePrint,resume:Z.resumePrint,clearPlate:Z.clearPlate,clearHMS:Z.clearHMSErrors}[t],i=await Promise.allSettled(n.map(e=>r(e))),a=i.filter(e=>e.status===`fulfilled`).length,o=i.filter(e=>e.status===`rejected`).length;o===0?O(e(`printers.bulk.success`,{action:e(`printers.bulk.actions.${t}`),count:a})):O(e(`printers.bulk.partial`,{succeeded:a,failed:o}),`error`),n.forEach(e=>{D.invalidateQueries({queryKey:[`printerStatus`,e]})}),xe(!1),ye(null)},[me,D,O,e]),Ee=(0,y.useCallback)(e=>{e===`stop`||e===`pause`||e===`clearPlate`?ye(e):Te(e)},[Te]),De=()=>{let e=!r;i(e),localStorage.setItem(`hideDisconnectedPrinters`,String(e))},Oe=e=>{u(e),localStorage.setItem(`printerSortBy`,e)},ke=()=>{let e=!d;f(e),localStorage.setItem(`printerSortAsc`,String(e))},Ae=()=>{switch(p){case 1:return`grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5`;case 2:return`grid-cols-1 md:grid-cols-2 xl:grid-cols-3`;case 3:return`grid-cols-1 lg:grid-cols-2`;case 4:return`grid-cols-1`;default:return`grid-cols-1 md:grid-cols-2 xl:grid-cols-3`}},je=[`S`,`M`,`L`,`XL`];(0,y.useEffect)(()=>D.getQueryCache().subscribe(e=>{e.type===`updated`&&Array.isArray(e.query.queryKey)&&e.query.queryKey[0]===`printerStatus`&&w(e=>e+1)}),[D]);let Me=(0,y.useMemo)(()=>{if(!M)return[];let e=M;if(g.trim()){let t=g.trim().toLowerCase();e=e.filter(e=>e.name.toLowerCase().includes(t)||(e.model||``).toLowerCase().includes(t)||(e.location||``).toLowerCase().includes(t)||(e.serial_number||``).toLowerCase().includes(t))}return x!==`all`&&(e=e.filter(e=>(e.location||``)===x)),v!==`all`&&(e=e.filter(e=>{let t=D.getQueryData([`printerStatus`,e.id]);if(!t?.connected)return v===`offline`;let n=t.hms_errors?Rf(t.hms_errors):[];switch(v){case`printing`:return t.state===`RUNNING`;case`paused`:return t.state===`PAUSE`;case`finished`:return t.state===`FINISH`;case`error`:return t.state===`FAILED`||n.length>0;case`idle`:return t.state!==`RUNNING`&&t.state!==`PAUSE`&&t.state!==`FINISH`&&t.state!==`FAILED`&&n.length===0;case`offline`:return!1;default:return!0}})),e},[M,g,v,x,D,C]),Ne=(0,y.useMemo)(()=>M?[...new Set(M.map(e=>e.location||``).filter(Boolean))].sort():[],[M]),Pe=(0,y.useMemo)(()=>{let e=[...Me];switch(l){case`name`:e.sort((e,t)=>e.name.localeCompare(t.name));break;case`model`:e.sort((e,t)=>(e.model||``).localeCompare(t.model||``));break;case`location`:e.sort((e,t)=>{let n=e.location||``,r=t.location||``;return!n&&r?1:n&&!r?-1:n.localeCompare(r)||e.name.localeCompare(t.name)});break;case`status`:e.sort((e,t)=>{let n=D.getQueryData([`printerStatus`,e.id]),r=D.getQueryData([`printerStatus`,t.id]),i=e=>e?.connected?(e.hms_errors?Rf(e.hms_errors):[]).length>0?0:e.state===`RUNNING`?1:2:3;return i(n)-i(r)});break}return d||e.reverse(),e},[Me,l,d,D]),Fe=(0,y.useCallback)(()=>{he(new Set(Pe.map(e=>e.id))),_e(!0)},[Pe]),Ie=(0,y.useCallback)(e=>{he(t=>{let n=new Set(t);return Pe.forEach(t=>{sJ(D.getQueryData([`printerStatus`,t.id]))===e&&n.add(t.id)}),n}),_e(!0)},[Pe,D]),Le=(0,y.useCallback)(e=>{he(t=>{let n=new Set(t);return Pe.filter(t=>(t.location||``)===e).forEach(e=>n.add(e.id)),n}),_e(!0)},[Pe]),Re=(0,y.useCallback)(e=>{he(t=>{let n=new Set(t);return Pe.filter(t=>(t.model||`Unknown`)===e).forEach(e=>n.add(e.id)),n}),_e(!0)},[Pe]),ze=(0,y.useCallback)(e=>{E(t=>{let n={...t,[e]:!t[e]};try{localStorage.setItem(`printerCollapsedSections`,JSON.stringify(n))}catch{}return n})},[]),Be=(0,y.useMemo)(()=>{if(l===`name`)return null;let e={};return l===`location`?Pe.forEach(t=>{let n=t.location||`Ungrouped`;e[n]||(e[n]=[]),e[n].push(t)}):l===`model`?Pe.forEach(t=>{let n=t.model||`Unknown`;e[n]||(e[n]=[]),e[n].push(t)}):l===`status`&&Pe.forEach(t=>{let n=sJ(D.getQueryData([`printerStatus`,t.id]));e[n]||(e[n]=[]),e[n].push(t)}),e},[l,Pe,D,C]),Ve=(0,y.useRef)(null),He=(0,y.useRef)(null),Ue=(0,y.useRef)(0),[We,Ge]=(0,y.useState)(!1),Ke=(0,y.useCallback)(()=>{let e=Ve.current;if(!e)return;let t=He.current?.offsetWidth;t&&(Ue.current=t);let n=Ue.current>0&&e.clientWidthe===n?e:n)},[]),qe=Object.keys(de).length;(0,y.useLayoutEffect)(()=>{Ke();let e=Ve.current;if(!e)return;if(typeof ResizeObserver>`u`)return window.addEventListener(`resize`,Ke),()=>window.removeEventListener(`resize`,Ke);let t=new ResizeObserver(()=>Ke());return t.observe(e),window.addEventListener(`resize`,Ke),()=>{t.disconnect(),window.removeEventListener(`resize`,Ke)}},[Ke,M?.length,Ne.length,r,qe]);let Je=(t=!1)=>(0,G.jsxs)(G.Fragment,{children:[M&&M.length>0&&(0,G.jsx)(iJ,{value:v,onChange:b,fullWidth:t,options:[{value:`all`,label:e(`printers.filter.allStatuses`)},{value:`printing`,label:e(`printers.status.printing`)},{value:`paused`,label:e(`printers.status.paused`)},{value:`idle`,label:e(`printers.status.idle`)},{value:`finished`,label:e(`printers.status.finished`)},{value:`error`,label:e(`printers.status.error`)},{value:`offline`,label:e(`printers.status.offline`)}]}),M&&M.length>0&&Ne.length>0&&(0,G.jsx)(iJ,{value:x,onChange:S,fullWidth:t,options:[{value:`all`,label:e(`printers.filter.allLocations`)},...Ne.map(e=>({value:e,label:e}))]}),(0,G.jsx)(`button`,{type:`button`,onClick:De,"aria-pressed":r,className:`h-8 px-2 rounded-lg border text-sm font-medium transition-colors ${t?`w-full`:``} ${r?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,children:e(`printers.hideOffline`)})]}),Ye=(t=!1)=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1 ${t?`w-full`:``}`,children:[(0,G.jsx)(iJ,{value:l,onChange:Oe,fullWidth:t,options:[{value:`name`,label:e(`printers.sort.name`)},{value:`status`,label:e(`printers.sort.status`)},{value:`model`,label:e(`printers.sort.model`)},{value:`location`,label:e(`printers.sort.location`)}]}),(0,G.jsx)(`button`,{onClick:ke,className:`h-8 shrink-0 px-2 rounded-lg border bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center justify-center`,title:e(d?`printers.sort.descending`:`printers.sort.ascending`),children:d?(0,G.jsx)(No,{className:`w-4 h-4 text-white`}):(0,G.jsx)(Do,{className:`w-4 h-4 text-white`})})]}),(0,G.jsx)(`div`,{className:`flex h-8 items-center bg-bambu-dark rounded-lg border border-bambu-dark-tertiary ${t?`w-full`:``}`,children:je.map((n,r)=>{let i=r+1,a=p===i;return(0,G.jsx)(`button`,{onClick:()=>{m(i),localStorage.setItem(`printerCardSize`,String(i))},className:`h-full px-2 text-xs font-medium transition-colors ${t?`flex-1`:``} ${r===0?`rounded-l-lg`:``} ${r===je.length-1?`rounded-r-lg`:``} ${a?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,title:e(n===`S`?`printers.cardSize.small`:n===`M`?`printers.cardSize.medium`:n===`L`?`printers.cardSize.large`:`printers.cardSize.extraLarge`),children:n},n)})})]}),Xe=(t=!1)=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{onClick:()=>{Se?we():_e(!0)},className:`h-8 px-2 rounded-lg border transition-colors ${t?`w-full justify-center gap-1.5 text-sm font-medium flex items-center`:``} ${Se?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,title:e(`printers.bulk.select`),disabled:!k(`printers:control`),children:[(0,G.jsx)(Xl,{className:`w-4 h-4`}),t&&(0,G.jsx)(`span`,{children:e(`printers.bulk.select`)})]}),r&&Object.keys(de).length>0&&(0,G.jsxs)(`div`,{className:`relative ${t?`w-full`:``}`,children:[(0,G.jsxs)(`button`,{onClick:()=>o(!a),className:`h-8 flex items-center gap-1.5 px-2 text-sm rounded-lg border transition-colors ${t?`w-full justify-between bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary hover:text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(_l,{className:`w-4 h-4`}),e(`printers.powerOn`)]}),(0,G.jsx)(es,{className:`w-3 h-3 transition-transform ${a?`rotate-180`:``}`})]}),a&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>o(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 mt-2 w-56 bg-white dark:bg-bambu-dark-secondary border border-gray-200 dark:border-bambu-dark-tertiary rounded-lg shadow-lg z-20 py-1`,children:[(0,G.jsx)(`div`,{className:`px-3 py-2 text-xs text-gray-500 dark:text-bambu-gray border-b border-gray-200 dark:border-bambu-dark-tertiary`,children:e(`printers.offlinePrintersWithPlugs`)}),M?.filter(e=>de[e.id]).map(e=>(0,G.jsx)(tTe,{printer:e,plug:de[e.id],onPowerOn:e=>{c(e),pe.mutate(e)},isPowering:s===de[e.id]?.id},e.id)),M?.filter(e=>de[e.id]).length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:`No printers with smart plugs`})]})]})]}),(0,G.jsxs)(Q,{onClick:()=>n(!0),disabled:!k(`printers:create`),title:k(`printers:create`)?void 0:e(`printers.permission.noAdd`),className:`!h-8 !min-h-8 px-2 py-0 ${t?`w-full`:``}`,children:[(0,G.jsx)(hl,{className:`w-4 h-4`}),e(`printers.addPrinter`)]})]});return(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`space-y-3 mb-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(vl,{className:`w-7 h-7 text-bambu-green`}),e(`printers.title`)]}),(0,G.jsx)(Ywe,{printers:M})]}),(0,G.jsxs)(`div`,{ref:Ve,className:`relative flex items-center gap-2`,children:[M&&M.length>0&&(0,G.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[(0,G.jsx)(Al,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50`}),(0,G.jsx)(`input`,{type:`search`,name:`printer-search`,autoComplete:`off`,"data-1p-ignore":!0,"data-lpignore":`true`,value:g,onChange:e=>_(e.target.value),placeholder:e(`printers.search`),"aria-label":e(`printers.search`),className:`w-full h-8 pl-9 pr-8 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`}),g&&(0,G.jsx)(`button`,{type:`button`,"aria-label":e(`common.clear`),onClick:()=>_(``),className:`absolute right-3 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:(0,G.jsx)(Au,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{ref:He,"aria-hidden":We,inert:We,className:`${We?`absolute -left-[9999px] top-0 flex w-max pointer-events-none opacity-0`:`flex`} ml-auto items-center justify-end gap-2 flex-nowrap [&>*]:shrink-0`,children:[(0,G.jsx)(`div`,{className:`h-6 w-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:Je()}),(0,G.jsx)(`div`,{className:`h-6 w-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:Ye()}),(0,G.jsx)(`div`,{className:`h-6 w-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:Xe()})]}),We&&(0,G.jsxs)(`div`,{className:`ml-auto flex items-center justify-end gap-1`,children:[(0,G.jsx)(aJ,{label:e(`printers.toolbar.filters`,`Filters`),icon:(0,G.jsx)(lc,{className:`w-4 h-4`}),children:(0,G.jsx)(`div`,{className:`flex w-48 flex-col gap-2`,children:Je(!0)})}),(0,G.jsx)(aJ,{label:e(`printers.toolbar.view`,`View`),icon:(0,G.jsx)(Wl,{className:`w-4 h-4`}),children:(0,G.jsx)(`div`,{className:`flex w-48 flex-col gap-2`,children:Ye(!0)})}),(0,G.jsx)(aJ,{label:e(`printers.toolbar.actions`,`Actions`),icon:(0,G.jsx)(Bs,{className:`w-4 h-4`}),children:(0,G.jsx)(`div`,{className:`flex w-48 flex-col gap-2`,children:Xe(!0)})})]})]})]}),N?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`common.loading`)}):M?.length===0?(0,G.jsx)(cd,{children:(0,G.jsxs)(ud,{className:`text-center py-12`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`printers.noPrintersConfigured`)}),(0,G.jsxs)(Q,{onClick:()=>n(!0),disabled:!k(`printers:create`),title:k(`printers:create`)?void 0:e(`printers.permission.noAdd`),children:[(0,G.jsx)(hl,{className:`w-4 h-4`}),e(`printers.addPrinter`)]})]})}):Pe.length===0&&(g.trim()||v!==`all`||x!==`all`)?(0,G.jsx)(cd,{children:(0,G.jsx)(ud,{className:`text-center py-12`,children:(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`printers.noSearchResults`)})})}):Be?(0,G.jsx)(`div`,{className:`space-y-6`,children:(()=>{let e=l===`status`?Xwe.filter(e=>Be[e]?.length>0):Object.keys(Be);return d?e:[...e].reverse()})().map(t=>{let n=Be[t],i=`${l}:${t}`,a=!T[i],o=l===`status`&&oJ[t]?.dot||`bg-bambu-green`,s=l===`status`?e(oJ[t]?.labelKey||t):t;return(0,G.jsx)(vf,{open:a,onToggle:()=>ze(i),summaryClassName:`py-1`,summary:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${o}`}),s,(0,G.jsxs)(`span`,{className:`text-sm font-normal text-bambu-gray`,children:[`(`,n.length,`)`]}),Se&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),l===`location`?Le(t===`Ungrouped`?``:t):l===`status`?Ie(t):l===`model`&&Re(t)},className:`text-xs text-bambu-green hover:text-bambu-green-light transition-colors ml-1`,children:e(`printers.bulk.selectAll`)})]}),children:(0,G.jsx)(`div`,{className:`grid gap-4 ${p>=3?`gap-6`:``} ${Ae()}`,children:n.map(e=>(0,G.jsx)(fJ,{printer:e,hideIfDisconnected:r,maintenanceInfo:ue[e.id],viewMode:h,cardSize:p,amsThresholds:P?{humidityGood:Number(P.ams_humidity_good)||40,humidityFair:Number(P.ams_humidity_fair)||60,tempGood:Number(P.ams_temp_good)||28,tempFair:Number(P.ams_temp_fair)||35}:void 0,spoolmanEnabled:z,hasUnlinkedSpools:te,linkedSpools:re,spoolmanUrl:R?.url,spoolmanSyncMode:ee,onGetAssignment:le,onUnassignSpool:(e,t,n)=>H.mutate({printerId:e,amsId:t,trayId:n}),spoolmanSpools:ae,spoolmanSlotAssignments:U,spoolmanLoading:oe||se,onUnassignSpoolmanSpool:e=>ce.mutate(e),timeFormat:P?.time_format||`system`,cameraViewMode:P?.camera_view_mode||`window`,onOpenEmbeddedCamera:(e,t)=>j(n=>new Map(n).set(e,{id:e,name:t})),checkPrinterFirmware:P?.check_printer_firmware!==!1,dryingPresets:F,requirePlateClear:P?.require_plate_clear===!0,selectionMode:Se,isSelected:me.has(e.id),onToggleSelect:Ce},e.id))})},t)})}):(0,G.jsx)(`div`,{className:`grid gap-4 ${p>=3?`gap-6`:``} ${Ae()}`,children:Pe.map(e=>(0,G.jsx)(fJ,{printer:e,hideIfDisconnected:r,maintenanceInfo:ue[e.id],viewMode:h,cardSize:p,spoolmanEnabled:z,hasUnlinkedSpools:te,linkedSpools:re,spoolmanUrl:R?.url,spoolmanSyncMode:ee,onGetAssignment:le,onUnassignSpool:(e,t,n)=>H.mutate({printerId:e,amsId:t,trayId:n}),spoolmanSpools:ae,spoolmanSlotAssignments:U,spoolmanLoading:oe||se,onUnassignSpoolmanSpool:e=>ce.mutate(e),amsThresholds:P?{humidityGood:Number(P.ams_humidity_good)||40,humidityFair:Number(P.ams_humidity_fair)||60,tempGood:Number(P.ams_temp_good)||28,tempFair:Number(P.ams_temp_fair)||35}:void 0,timeFormat:P?.time_format||`system`,cameraViewMode:P?.camera_view_mode||`window`,onOpenEmbeddedCamera:(e,t)=>j(n=>new Map(n).set(e,{id:e,name:t})),checkPrinterFirmware:P?.check_printer_firmware!==!1,dryingPresets:F,requirePlateClear:P?.require_plate_clear===!0,selectionMode:Se,isSelected:me.has(e.id),onToggleSelect:Ce},e.id))}),t&&(0,G.jsx)(Zwe,{onClose:()=>n(!1),onAdd:e=>fe.mutate(e),existingSerials:M?.map(e=>e.serial_number)||[]}),Se&&M&&(0,G.jsx)(Hf,{selectedIds:me,printers:M,onClose:we,onSelectAll:Fe,onSelectByLocation:Le,onSelectByState:Ie,onAction:Ee,actionPending:be}),ve===`stop`&&(0,G.jsx)(xd,{title:e(`printers.bulk.confirm.stopTitle`,{count:me.size}),message:e(`printers.bulk.confirm.stopMessage`,{count:me.size}),confirmText:e(`printers.bulk.confirm.stopButton`),variant:`danger`,isLoading:be,onConfirm:()=>Te(`stop`),onCancel:()=>ye(null)}),ve===`pause`&&(0,G.jsx)(xd,{title:e(`printers.bulk.confirm.pauseTitle`,{count:me.size}),message:e(`printers.bulk.confirm.pauseMessage`,{count:me.size}),confirmText:e(`printers.bulk.confirm.pauseButton`),isLoading:be,onConfirm:()=>Te(`pause`),onCancel:()=>ye(null)}),ve===`clearPlate`&&(0,G.jsx)(xd,{title:e(`printers.bulk.confirm.clearPlateTitle`,{count:me.size}),message:e(`printers.bulk.confirm.clearPlateMessage`,{count:me.size}),confirmText:e(`printers.bulk.confirm.clearPlateButton`),isLoading:be,onConfirm:()=>Te(`clearPlate`),onCancel:()=>ye(null)}),Array.from(A.values()).map((e,t)=>(0,G.jsx)(Vse,{printerId:e.id,printerName:e.name,viewerIndex:t,onClose:()=>j(t=>{let n=new Map(t);return n.delete(e.id),n})},e.id))]})}function rTe({title:e,message:t,subtitle:n,closeText:r,variant:i=`error`,onClose:a}){let{t:o}=et(),s=r??o(`common.close`);return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-[120]`,onClick:a,children:(0,G.jsx)(cd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(ud,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-dark ${i===`warning`?`text-yellow-400`:`text-red-400`}`,children:(0,G.jsx)(hu,{className:`w-6 h-6`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-1`,children:e}),n&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2 truncate`,children:n}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm whitespace-pre-line break-words`,children:t})]})]}),(0,G.jsx)(`div`,{className:`flex mt-6`,children:(0,G.jsx)(Q,{onClick:a,className:`flex-1`,children:s})})]})})})}var pJ=(0,y.createContext)(null),iTe=1500,aTe=1e3,mJ=e=>`slice-job-${e}`;function hJ(e){try{return decodeURIComponent(e)}catch{return e}}function oTe(e){let t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return n<60?`${n}m ${r}s`:`${Math.floor(n/60)}h ${n%60}m`}function sTe({children:e}){let{t}=et(),{showToast:n,showPersistentToast:r,dismissToast:i}=gd(),a=$a(),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(null),u=(0,y.useRef)([]);u.current=o;let d=(0,y.useRef)(new Map),f=(0,y.useRef)(new Map),p=(0,y.useRef)(new Map),m=(0,y.useCallback)(e=>{let n=d.current.get(e.id);if(n==null)return;let i=(Date.now()-n)/1e3,a=f.current.get(e.id)??`pending`,o=oTe(i),s=p.current.get(e.id)??null,c=s&&s.stage&&s.total_percent>0;if(a===`running`&&c){let n=hJ(e.sourceName),i=s.stage,a=Math.min(100,Math.max(0,Math.round(s.total_percent))),c=typeof s.multi_plate_index==`number`&&typeof s.multi_plate_count==`number`&&s.multi_plate_count>1?t(`slice.runningWithProgressMultiPlate`,`Plate {{plateIndex}} of {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{plateIndex:s.multi_plate_index,plateCount:s.multi_plate_count,name:n,stage:i,percent:a,elapsed:o}):t(`slice.runningWithProgress`,`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{name:n,stage:i,percent:a,elapsed:o});r(mJ(e.id),c,`loading`);return}let l=a===`pending`?`slice.queuedToast`:`slice.runningToast`,u=a===`pending`?`Queued: {{name}} — {{elapsed}}`:`Slicing {{name}} — {{elapsed}}`;r(mJ(e.id),t(l,u,{name:hJ(e.sourceName),elapsed:o}),`loading`)},[r,t]),h=(0,y.useCallback)((e,t,n)=>{s(r=>r.some(t=>t.id===e)?r:[...r,{id:e,kind:t,sourceName:n}]),d.current.set(e,Date.now()),f.current.set(e,`pending`),p.current.set(e,null),m({id:e,kind:t,sourceName:n})},[m]),g=(0,y.useCallback)((e,r)=>{s(t=>t.filter(t=>t.id!==e.id)),d.current.delete(e.id),f.current.delete(e.id),p.current.delete(e.id),i(mJ(e.id)),r.status===`completed`?n(t(`slice.completedToast`,`Sliced {{name}}`,{name:hJ(e.sourceName)}),`success`):r.status===`failed`&&l({name:hJ(e.sourceName),detail:r.error_detail||t(`slice.failed`)}),a.invalidateQueries({queryKey:[`library-files`]}),a.invalidateQueries({queryKey:[`archives`]})},[i,a,n,t]);return(0,y.useEffect)(()=>{if(o.length===0)return;let e=!1,t=setInterval(async()=>{if(e)return;let t=[...u.current];for(let e of t)try{let t=await Z.getSliceJob(e.id);f.current.set(e.id,t.status),t.progress&&p.current.set(e.id,t.progress),(t.status===`completed`||t.status===`failed`)&&g(e,t)}catch{}},iTe);return()=>{e=!0,clearInterval(t)}},[o.length,g]),(0,y.useEffect)(()=>{if(o.length===0)return;let e=setInterval(()=>{for(let e of u.current)m(e)},aTe);return()=>clearInterval(e)},[o.length,m]),(0,G.jsxs)(pJ.Provider,{value:{trackJob:h,activeJobs:o},children:[e,c&&(0,G.jsx)(rTe,{title:t(`slice.failedTitle`),subtitle:c.name,message:c.detail,onClose:()=>l(null)})]})}function cTe(){let e=(0,y.useContext)(pJ);if(!e)throw Error(`useSliceJobTracker must be used inside SliceJobTrackerProvider`);return e}function gJ({plates:e,onSelect:t,onClose:n}){let{t:r}=et();return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`w-full max-w-3xl max-h-[85vh] flex flex-col rounded-lg bg-bambu-dark-secondary border border-bambu-dark-tertiary/60`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-start justify-between gap-3 px-4 pt-4 pb-3 border-b border-bambu-dark-tertiary/40`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:r(`archives.platePicker.title`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`archives.platePicker.hint`)})]}),(0,G.jsx)(`button`,{onClick:n,className:`flex-shrink-0 text-bambu-gray hover:text-white transition-colors`,"aria-label":r(`common.close`,`Close`),children:(0,G.jsx)(Au,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:e.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>t(e.index),className:`flex items-center gap-2 p-2 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray transition-colors text-left`,children:[e.has_thumbnail&&e.thumbnail_url!=null?(0,G.jsx)(`img`,{src:Hu(e.thumbnail_url),alt:`Plate ${e.index}`,className:`w-12 h-12 rounded object-cover bg-bambu-dark-tertiary flex-shrink-0`}):(0,G.jsx)(`div`,{className:`w-12 h-12 rounded bg-bambu-dark-tertiary flex items-center justify-center flex-shrink-0`,children:(0,G.jsx)(Nc,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium truncate`,children:e.name?`${r(`archives.platePicker.plateLabel`,{index:e.index})} — ${e.name}`:r(`archives.platePicker.plateLabel`,{index:e.index})}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray truncate`,children:[e.objects.length>0?e.objects.slice(0,3).join(`, `)+(e.objects.length>3?`…`:``):e.object_count!=null&&e.object_count>0?r(`archives.platePicker.objectCount`,{count:e.object_count}):`${e.filaments.length} filament${e.filaments.length===1?``:`s`}`,e.print_time_seconds==null?``:` • ${af(e.print_time_seconds)}`]})]})]},e.index))})})]})})}var _J=[`local`,`orca_cloud`,`cloud`,`standard`];function vJ(e,t){for(let n of _J){let r=e[n][t];if(r.length>0)return{source:r[0].source,id:r[0].id}}return null}function yJ(e,t,n){return t?e[t.source][n].find(e=>e.id===t.id)??null:null}function bJ(e,t,n){if(!n)return null;for(let r of _J){let i=e[r][t].find(e=>e.name===n);if(i)return{source:i.source,id:i.id}}return null}function lTe(e,t,n,r){let i=bJ(e,`process`,r);if(i){let r=yJ(e,i,`process`);if(r&&GK(r,`process`,t,n)!==`mismatch`)return i}for(let r of[`match`,`unknown`])for(let i of _J)for(let a of e[i].process)if(GK(a,`process`,t,n)===r)return{source:a.source,id:a.id};return vJ(e,`process`)}var uTe={local:1.75,orca_cloud:1.5,cloud:1,standard:.5};function dTe(e,t,n,r){let i=t.type.trim().toUpperCase(),a=vq(t.color),o=null;for(let s of _J)for(let c of e[s].filament){let e=0,l=(c.filament_type??``).trim().toUpperCase(),u=vq(c.filament_colour??``);i&&l&&i===l&&(e+=10),a&&u&&(u===a?e+=5:Sq(c.filament_colour??``,t.color)&&(e+=2)),e+=uTe[s],GK(c,`filament`,n,r)===`mismatch`&&(e-=100),(o==null||e>o.score)&&(o={ref:{source:c.source,id:c.id},score:e})}return o==null?vJ(e,`filament`):o.ref}function fTe(e){return e?`${e.source}:${e.id}`:``}function pTe(e){if(!e)return null;let t=e.indexOf(`:`);if(t<0)return null;let n=e.slice(0,t),r=e.slice(t+1);return n!==`orca_cloud`&&n!==`cloud`&&n!==`local`&&n!==`standard`?null:{source:n,id:r}}function mTe({requestId:e,sourceName:t}){let{t:n}=et(),{showPersistentToast:r,dismissToast:i}=gd(),[a,o]=(0,y.useState)(0),[s,c]=(0,y.useState)(null),l=t;try{l=decodeURIComponent(t)}catch{}(0,y.useEffect)(()=>{let e=Date.now(),t=setInterval(()=>o(Math.floor((Date.now()-e)/1e3)),1e3);return()=>clearInterval(t)},[]),(0,y.useEffect)(()=>{let t=!1,n=setInterval(async()=>{if(t)return;let n=await Z.getPreviewSliceProgress(e);!t&&n&&c(n)},1e3);return()=>{t=!0,clearInterval(n)}},[e]);let u=`slice-preview-${e}`;(0,y.useEffect)(()=>{let e=s&&s.stage&&s.total_percent>0,t=hTe(a);return e?r(u,n(`slice.previewWithProgress`,`Analyzing {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{name:l,stage:s.stage,percent:Math.min(100,Math.max(0,Math.round(s.total_percent))),elapsed:t}),`loading`):r(u,n(`slice.previewToast`,{name:l,elapsed:t}),`loading`),()=>{i(u)}},[a,s,l,r,i,n,u]);let d=s?.stage,f=s?.total_percent,p=d&&typeof f==`number`&&f>0?`${d} (${Math.min(100,Math.max(0,Math.round(f)))}%)`:n(`slice.analyzingPlateFilaments`);return(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 text-bambu-gray text-sm py-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),p,(0,G.jsxs)(`span`,{className:`text-xs tabular-nums`,children:[a,`s`]})]}),a>=5&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray/70 pl-6`,children:n(`slice.analyzingPlateFilamentsHint`,`Running a preview slice to discover which AMS slots this plate uses. Cached after — re-opening is instant.`)})]})}function hTe(e){let t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return n<60?`${n}m ${r}s`:`${Math.floor(n/60)}h ${n%60}m`}function xJ({source:e,onClose:t}){let{t:n}=et(),{trackJob:r}=cTe(),i=$a(),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(null),b=K({queryKey:[`slicePlates`,e.kind,e.id],queryFn:async()=>e.kind===`libraryFile`?Z.getLibraryFilePlates(e.id):Z.getArchivePlates(e.id),staleTime:6e4}),x=!!b.data?.is_multi_plate&&(b.data?.plates?.length??0)>1,S=x&&p==null,C=p??1,w=(0,y.useMemo)(()=>{let t=typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`;return`${e.kind}-${e.id}-p${C}-${t}`},[e.kind,e.id,C]),T=K({queryKey:[`sliceFilamentReqs`,e.kind,e.id,C],queryFn:async()=>e.kind===`libraryFile`?Z.getLibraryFileFilamentRequirements(e.id,C,w):Z.getArchiveFilamentRequirements(e.id,C,w),enabled:!S,staleTime:6e4}),E=(0,y.useMemo)(()=>{let e=T.data?.filaments??[],t=e.length>0?e:[{slot_id:1,type:``,color:``,used_grams:0,used_meters:0}];return h?t.map(e=>({...e,used_in_plate:!0})):t},[h,T.data]),D=K({queryKey:[`slicerPresets`],queryFn:()=>Z.getSlicerPresets(),staleTime:6e4,enabled:!b.isLoading&&!S}),[O,k]=(0,y.useState)(!1),A=async()=>{if(!O){k(!0);try{let e=await Z.getSlicerPresets({refresh:!0});i.setQueryData([`slicerPresets`],e)}catch{i.invalidateQueries({queryKey:[`slicerPresets`]})}finally{k(!1)}}},j=K({queryKey:[`slicerPrinterModels`],queryFn:Z.getSlicerPrinterModels,staleTime:1/0}),M=(0,y.useMemo)(()=>!D.data||!a?null:yJ(D.data,a,`printer`)?.name??null,[D.data,a]),N=(0,y.useMemo)(()=>HK(j.data??{}),[j.data]),P=b.data?.embedded_printer??null,F=b.data?.embedded_process??null;(0,y.useEffect)(()=>{let e=D.data;e&&(a??o(bJ(e,`printer`,P)??vJ(e,`printer`)))},[D.data,P]),(0,y.useEffect)(()=>{let e=D.data;e&&c(t=>{if(t){let n=yJ(e,t,`process`);if(n&&GK(n,`process`,M,N)!==`mismatch`)return t}return lTe(e,M,N,F)})},[D.data,M,N,F]),(0,y.useEffect)(()=>{let e=D.data;e&&u(t=>E.map((n,r)=>{let i=t[r]??null;if(i){let t=yJ(e,i,`filament`);if(t&&GK(t,`filament`,M,N)!==`mismatch`)return i}return dTe(e,{type:n.type,color:n.color},M,N)}))},[D.data,E,M,N]);let I=q({mutationFn:async t=>{let n=L(t);return e.kind===`libraryFile`?Z.sliceLibraryFile(e.id,n):Z.sliceArchive(e.id,n)},onSuccess:n=>{r(n.job_id,e.kind,e.filename),t()},onError:e=>{f(e instanceof Error?e.message:String(e))}});function L(e){if(!a||!s||l.length===0||l.some(e=>e==null))throw Error(n(`slice.allPresetsRequired`));return{printer_preset:a,process_preset:s,filament_preset:l[0],filament_presets:l,...e==null?{}:{plate:e},..._==null?{}:{bed_type:_}}}let R=a!=null&&s!=null&&T.isSuccess&&l.length>0&&l.every(e=>e!=null),z=I.isPending,B=b.data?.plates?.length??0,ee=x&&B>1&&!S;return S&&b.data?(0,G.jsx)(gJ,{plates:b.data.plates,onSelect:e=>m(e),onClose:t}):(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:()=>{z||t()},children:(0,G.jsxs)(`div`,{className:`w-full max-w-xl max-h-[85vh] flex flex-col rounded-lg bg-bambu-dark-secondary border border-bambu-dark-tertiary/60`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-start justify-between gap-3 px-4 pt-4 pb-3 border-b border-bambu-dark-tertiary/40`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`h3`,{className:`text-white font-medium flex items-center gap-2`,children:[(0,G.jsx)(ws,{className:`w-4 h-4`}),n(`slice.title`)]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1 truncate`,title:e.filename,children:[e.filename,p==null?``:` • ${n(`archives.platePicker.plateLabel`,{index:p})}`]})]}),(0,G.jsx)(`button`,{onClick:t,disabled:z,className:`flex-shrink-0 text-bambu-gray hover:text-white transition-colors disabled:opacity-50`,"aria-label":n(`common.close`),children:(0,G.jsx)(Au,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-4`,children:[(b.isLoading||D.isLoading)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`slice.loadingPresets`)]}),D.isError&&(0,G.jsx)(`div`,{className:`text-sm text-red-400`,role:`alert`,children:n(`slice.presetsLoadFailed`,`Failed to load presets. Open Settings → Profiles to import them, or sign in to Bambu Cloud.`)}),D.data&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,G.jsx)(SJ,{status:D.data.cloud_status,cloudName:`bambu`}),(0,G.jsx)(SJ,{status:D.data.orca_cloud_status,cloudName:`orca`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:A,disabled:O||z,className:`flex-shrink-0 inline-flex items-center gap-1 px-2 py-1 rounded-md text-xs text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary/40 disabled:opacity-50 disabled:cursor-not-allowed transition-colors`,title:n(`slice.refreshPresetsTitle`),"aria-label":n(`slice.refreshPresets`),children:[(0,G.jsx)(xl,{className:`w-3.5 h-3.5 ${O?`animate-spin`:``}`}),n(`slice.refreshPresets`)]})]}),(0,G.jsx)(CJ,{label:n(`slice.printer`),slot:`printer`,data:D.data,value:a,onChange:o,disabled:z}),(0,G.jsx)(CJ,{label:n(`slice.process`),slot:`process`,data:D.data,value:s,onChange:c,disabled:z,selectedPrinterName:M,compatIndex:N}),(0,G.jsx)(_Te,{value:_,onChange:v,disabled:z}),T.isLoading?(0,G.jsx)(mTe,{requestId:w,sourceName:e.filename}):E.map((e,t)=>{let r=e.used_in_plate!==!1,i=E.length>1?n(`slice.filamentSlot`,{index:t+1,type:e.type}):n(`slice.filament`);return(0,G.jsx)(CJ,{label:r?i:`${i} ${n(`slice.notUsedByPlate`)}`,slot:`filament`,data:D.data,value:l[t]??null,onChange:e=>u(n=>{let r=n.length===E.length?[...n]:E.map((e,t)=>n[t]??null);return r[t]=e,r}),disabled:z||!r,swatchColor:E.length>1?e.color:void 0,selectedPrinterName:M,compatIndex:N},`filament-${t}`)})]}),d&&(0,G.jsx)(`div`,{className:`text-sm text-red-400 bg-red-900/20 border border-red-900/40 rounded p-2`,role:`alert`,children:d})]}),(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex justify-end gap-2 px-4 py-3 border-t border-bambu-dark-tertiary/40`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:t,disabled:z,className:`px-3 py-1.5 text-sm rounded-md border border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray transition-colors disabled:opacity-50`,children:n(`common.cancel`)}),ee&&(0,G.jsxs)(`label`,{className:`flex items-center gap-2 mr-auto text-sm text-bambu-gray cursor-pointer select-none`,title:n(`slice.actionAllTitle`,{count:B}),children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:h,onChange:e=>g(e.target.checked),disabled:z,className:`cursor-pointer`}),n(`slice.allPlatesToggle`,{count:B})]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{f(null);let e=h?0:p;I.mutate(e)},disabled:!R||z,className:`px-3 py-1.5 text-sm rounded-md bg-bambu-green hover:bg-bambu-green/90 text-bambu-dark font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2`,children:z?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`slice.enqueuing`)]}):h?n(`slice.actionAll`,{count:B}):n(`slice.action`)})]})]})})}function SJ({status:e,cloudName:t=`bambu`}){let{t:n}=et();if(e===`ok`||e===`not_authenticated`)return null;let r=t===`orca`?{expired:{key:`slice.orcaCloud.expired`,fallback:`Orca Cloud session expired — sign in again to refresh your Orca presets.`},unreachable:{key:`slice.orcaCloud.unreachable`,fallback:`Orca Cloud is unreachable right now. Other presets still work.`}}:{expired:{key:`slice.cloud.expired`,fallback:`Bambu Cloud session expired — sign in again to refresh your cloud presets.`},unreachable:{key:`slice.cloud.unreachable`,fallback:`Bambu Cloud is unreachable right now. Local and standard presets still work.`}},{tone:i,icon:a}={expired:{tone:`border-amber-700/40 bg-amber-900/20 text-amber-200`,icon:vs},unreachable:{tone:`border-bambu-dark-tertiary/40 bg-bambu-dark text-bambu-gray`,icon:vs}}[e],{key:o,fallback:s}=r[e];return(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-xs rounded-md border p-2 ${i}`,role:`status`,children:[(0,G.jsx)(a,{className:`w-4 h-4 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`span`,{children:n(o,s)})]})}var gTe=[{value:`Cool Plate`,labelKey:`slice.bedType.coolPlate`,fallback:`Cool Plate`},{value:`Cool Plate (SuperTack)`,labelKey:`slice.bedType.coolPlateSuperTack`,fallback:`Cool Plate SuperTack`},{value:`Engineering Plate`,labelKey:`slice.bedType.engineering`,fallback:`Engineering Plate`},{value:`High Temp Plate`,labelKey:`slice.bedType.highTemp`,fallback:`High Temp Plate`},{value:`Textured PEI Plate`,labelKey:`slice.bedType.texturedPEI`,fallback:`Textured PEI Plate`},{value:`Smooth PEI Plate`,labelKey:`slice.bedType.smoothPEI`,fallback:`Smooth PEI Plate`}];function _Te({value:e,onChange:t,disabled:n}){let{t:r}=et();return(0,G.jsxs)(`label`,{className:`block`,children:[(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:r(`slice.bedType.label`)}),(0,G.jsxs)(`select`,{value:e??``,onChange:e=>t(e.target.value===``?null:e.target.value),disabled:n,className:`w-full px-3 py-2 rounded-md bg-bambu-dark border border-bambu-dark-tertiary text-white text-sm focus:outline-none focus:border-bambu-gray disabled:opacity-50`,children:[(0,G.jsx)(`option`,{value:``,children:r(`slice.bedType.auto`)}),gTe.map(e=>(0,G.jsx)(`option`,{value:e.value,children:r(e.labelKey,e.fallback)},e.value))]})]})}function CJ({label:e,slot:t,data:n,value:r,onChange:i,disabled:a,swatchColor:o,selectedPrinterName:s,compatIndex:c}){let{t:l}=et(),{sections:u,otherEntries:d}=(0,y.useMemo)(()=>{let e=[{key:`local`,label:`slice.tier.local`,fallback:`Imported`},{key:`orca_cloud`,label:`slice.tier.orcaCloud`,fallback:`Orca Cloud`},{key:`cloud`,label:`slice.tier.cloud`,fallback:`Bambu Cloud`},{key:`standard`,label:`slice.tier.standard`,fallback:`Standard`}],r=t!==`printer`,i=[],a=[];for(let{key:o,label:u,fallback:d}of e){let e=n[o][t];if(!r){e.length>0&&i.push({tierLabel:l(u,d),entries:e});continue}let f=[];for(let n of e)GK(n,t,s??null,c??owe)===`mismatch`?a.push(n):f.push(n);f.length>0&&i.push({tierLabel:l(u,d),entries:f})}return{sections:i,otherEntries:a}},[n,t,l,s,c]),f=u.reduce((e,t)=>e+t.entries.length,0)+d.length;return(0,G.jsxs)(`label`,{className:`block`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-2 text-xs text-bambu-gray mb-1`,children:[o&&(0,G.jsx)(`span`,{className:`inline-block w-3 h-3 rounded-full border border-bambu-dark-tertiary`,style:{backgroundColor:o||`transparent`},"aria-hidden":!0}),(0,G.jsx)(`span`,{children:e})]}),(0,G.jsxs)(`select`,{value:fTe(r),onChange:e=>i(pTe(e.target.value)),disabled:a||f===0,className:`w-full px-3 py-2 rounded-md bg-bambu-dark border border-bambu-dark-tertiary text-white text-sm focus:outline-none focus:border-bambu-gray disabled:opacity-50`,children:[(0,G.jsx)(`option`,{value:``,children:l(f===0?`slice.noPresetsForSlot`:`slice.selectPreset`)}),u.map(e=>(0,G.jsx)(`optgroup`,{label:e.tierLabel,children:e.entries.map(e=>(0,G.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))},e.tierLabel)),d.length>0&&(0,G.jsx)(`optgroup`,{label:l(`slice.otherPrinters`),children:d.map(e=>(0,G.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))})]})]})}function vTe(){let e=navigator.userAgent.toLowerCase(),t=navigator.platform?.toLowerCase()||``;return e.includes(`win`)||t.includes(`win`)?`windows`:e.includes(`mac`)||t.includes(`mac`)?`macos`:e.includes(`linux`)||t.includes(`linux`)?`linux`:`unknown`}function wJ(e,t=`bambu_studio`){let n,r=encodeURIComponent(e);n=t===`orcaslicer`?`orcaslicer://open?file=${r}`:vTe()===`macos`?`bambustudioopen://${r}`:`bambustudio://open?file=${r}`;let i=document.createElement(`a`);i.href=n,i.style.display=`none`,document.body.appendChild(i),i.click(),document.body.removeChild(i)}var TJ=768;function EJ(){let[e,t]=(0,y.useState)(()=>typeof window<`u`?window.innerWidth{let e=window.matchMedia(`(max-width: ${TJ-1}px)`),n=e=>{t(e.matches)};return t(e.matches),e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}function yTe({onClose:e,initialFiles:t}){let{t:n}=et(),r=$a(),{showToast:i}=gd(),a=(0,y.useRef)(null),[o,s]=(0,y.useState)(()=>t?.filter(e=>e.name.endsWith(`.3mf`)).map(e=>({file:e,status:`pending`}))||[]),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null);(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]);let f=q({mutationFn:e=>Z.uploadArchivesBulk(e),onSuccess:e=>{d(e),r.invalidateQueries({queryKey:[`archives`]}),r.invalidateQueries({queryKey:[`archiveStats`]}),s(t=>t.map(t=>{let n=e.results.find(e=>e.filename===t.file.name),r=e.errors.find(e=>e.filename===t.file.name);return n?{...t,status:`success`,archiveId:n.id}:r?{...t,status:`error`,error:r.error}:t})),e.failed===0?i(`${e.uploaded} file${e.uploaded===1?``:`s`} uploaded`):e.uploaded===0?i(`Failed to upload ${e.failed} file${e.failed===1?``:`s`}`,`error`):i(`${e.uploaded} uploaded, ${e.failed} failed`,`warning`)},onError:()=>{s(e=>e.map(e=>({...e,status:`error`,error:`Upload failed`}))),i(`Upload failed`,`error`)}}),p=(0,y.useCallback)(e=>{e.preventDefault(),l(!0)},[]),m=(0,y.useCallback)(e=>{e.preventDefault(),l(!1)},[]),h=(0,y.useCallback)(e=>{e.preventDefault(),l(!1);let t=Array.from(e.dataTransfer.files).filter(e=>e.name.endsWith(`.3mf`));t.length>0&&s(e=>[...e,...t.map(e=>({file:e,status:`pending`}))])},[]),g=(0,y.useCallback)(e=>{let t=Array.from(e.target.files||[]).filter(e=>e.name.endsWith(`.3mf`));t.length>0&&s(e=>[...e,...t.map(e=>({file:e,status:`pending`}))]),a.current&&(a.current.value=``)},[]),_=(0,y.useCallback)(e=>{s(t=>t.filter((t,n)=>n!==e))},[]),v=()=>{if(o.length===0)return;let e=o.filter(e=>e.status===`pending`);e.length!==0&&(s(e=>e.map(e=>e.status===`pending`?{...e,status:`uploading`}:e)),f.mutate(e.map(e=>e.file)))},b=o.filter(e=>e.status===`pending`).length,x=f.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(cd,{className:`w-full max-w-2xl max-h-[90vh] flex flex-col`,children:(0,G.jsxs)(ud,{className:`p-0 flex flex-col h-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:n(`uploadModal.title`)}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(Au,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`p-4`,children:(0,G.jsxs)(`div`,{className:`border-2 border-dashed rounded-lg p-8 text-center transition-colors ${c?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-gray`}`,onDragOver:p,onDragLeave:m,onDrop:h,children:[(0,G.jsx)(vu,{className:`w-12 h-12 mx-auto mb-4 text-bambu-gray`}),(0,G.jsx)(`p`,{className:`text-white mb-2`,children:n(`uploadModal.dragDrop`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm mb-4`,children:n(`uploadModal.or`)}),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>a.current?.click(),disabled:x,children:n(`uploadModal.browseFiles`)}),(0,G.jsx)(`input`,{ref:a,type:`file`,accept:`.3mf`,multiple:!0,className:`hidden`,onChange:g})]})}),(0,G.jsx)(`div`,{className:`px-4 pb-4`,children:(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`uploadModal.extractionInfo`)})}),o.length>0&&(0,G.jsx)(`div`,{className:`px-4 pb-4 max-h-60 overflow-y-auto`,children:(0,G.jsx)(`div`,{className:`space-y-2`,children:o.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(Qs,{className:`w-5 h-5 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`flex-1 text-white text-sm truncate`,children:e.file.name}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[(e.file.size/(1024*1024)).toFixed(1),` MB`]}),e.status===`pending`&&(0,G.jsx)(`button`,{onClick:()=>_(t),className:`text-bambu-gray hover:text-red-400 transition-colors`,disabled:x,children:(0,G.jsx)(Au,{className:`w-4 h-4`})}),e.status===`uploading`&&(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-green animate-spin`}),e.status===`success`&&(0,G.jsx)(ls,{className:`w-4 h-4 text-bambu-green`}),e.status===`error`&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-red-400`,children:e.error}),(0,G.jsx)(ss,{className:`w-4 h-4 text-red-400`})]})]},`${e.file.name}-${t}`))})}),u&&(0,G.jsx)(`div`,{className:`px-4 pb-4`,children:(0,G.jsx)(`div`,{className:`p-3 bg-bambu-dark rounded-lg`,children:(0,G.jsxs)(`p`,{className:`text-sm text-white`,children:[(0,G.jsx)(`span`,{className:`text-bambu-green`,children:u.uploaded}),` `,n(`uploadModal.uploaded`),u.failed>0&&(0,G.jsxs)(G.Fragment,{children:[`, `,(0,G.jsx)(`span`,{className:`text-red-400`,children:u.failed}),` `,n(`uploadModal.failed`)]})]})})}),(0,G.jsxs)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,className:`flex-1`,children:n(u?`common.close`:`common.cancel`)}),!u&&(0,G.jsx)(Q,{onClick:v,disabled:b===0||x,className:`flex-1`,children:x?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`uploadModal.uploading`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(vu,{className:`w-4 h-4`}),n(`uploadModal.upload`),` `,b>0&&`(${b})`]})})]})]})})})}var bTe=365;function xTe({onClose:e,initialDays:t}){let{t:n}=et(),r=$a(),{showToast:i}=gd(),[a,o]=(0,y.useState)(t??bTe),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(a);(0,y.useEffect)(()=>{let e=window.setTimeout(()=>u(a),300);return()=>window.clearTimeout(e)},[a]);let d=K({queryKey:[`archive-purge-preview`,l,s],queryFn:()=>Z.previewArchivePurge(l,s),enabled:l>=1}),f=q({mutationFn:()=>Z.executeArchivePurge(a,s),onSuccess:t=>{i(n(`archivePurge.toast.success`,{count:t.deleted}),`success`),r.invalidateQueries({queryKey:[`archives`]}),r.invalidateQueries({queryKey:[`archive-stats`]}),e()},onError:e=>i(e.message||n(`archivePurge.toast.failed`),`error`)});(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&!f.isPending&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,f.isPending]);let p=d.data,m=p?.count??0,h=p?.total_bytes??0,g=m>0&&!f.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-white dark:bg-gray-900 rounded-lg shadow-xl max-w-lg w-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-gray-200 dark:border-gray-700`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-gray-900 dark:text-gray-100 flex items-center gap-2`,children:[(0,G.jsx)(fu,{className:`w-5 h-5`}),n(`archivePurge.title`)]}),(0,G.jsx)(`button`,{onClick:e,className:`text-gray-400 hover:text-gray-600 dark:hover:text-gray-200`,"aria-label":n(`common.close`),disabled:f.isPending,children:(0,G.jsx)(Au,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:n(`archivePurge.description`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`archive-purge-days`,className:`block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1`,children:n(`archivePurge.ageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`input`,{id:`archive-purge-days`,type:`number`,min:1,max:3650,value:a,onChange:e=>o(Math.max(1,Math.min(3650,parseInt(e.target.value||`0`,10)||0))),className:`w-24 rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm px-2 py-1 text-gray-900 dark:text-gray-100`}),(0,G.jsx)(`span`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:n(`archivePurge.days`)})]})]}),(0,G.jsxs)(`div`,{className:`rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/30 p-3`,children:[(0,G.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-wide text-gray-600 dark:text-gray-300 mb-2`,children:n(`archivePurge.effectsTitle`)}),(0,G.jsxs)(`ul`,{className:`text-xs text-gray-700 dark:text-gray-300 space-y-1 list-disc pl-4`,children:[(0,G.jsx)(`li`,{children:n(`archivePurge.effect1`)}),(0,G.jsx)(`li`,{children:n(`archivePurge.effect2`)}),(0,G.jsx)(`li`,{children:n(`archivePurge.effect3`)}),(0,G.jsx)(`li`,{children:n(`archivePurge.effect4`)})]})]}),(0,G.jsx)(`div`,{className:`rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50 p-3`,children:d.isLoading||d.isFetching?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),` `,n(`archivePurge.previewLoading`)]}):d.isError?(0,G.jsx)(`div`,{className:`text-sm text-red-600 dark:text-red-400`,children:d.error?.message??n(`archivePurge.previewFailed`)}):(0,G.jsxs)(`div`,{className:`text-sm text-gray-900 dark:text-gray-100`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:n(`archivePurge.previewSummary`,{count:m,size:md(h)})}),p?.sample_filenames&&p.sample_filenames.length>0&&(0,G.jsxs)(`ul`,{className:`mt-2 text-xs text-gray-600 dark:text-gray-400 space-y-0.5 list-disc pl-4`,children:[p.sample_filenames.map(e=>(0,G.jsx)(`li`,{className:`truncate`,children:e},e)),m>p.sample_filenames.length&&(0,G.jsx)(`li`,{className:`list-none italic text-gray-500`,children:n(`archivePurge.andMore`,{count:m-p.sample_filenames.length})})]})]})}),(0,G.jsxs)(`label`,{className:`flex gap-2 items-start rounded border border-gray-200 dark:border-gray-700 px-3 py-2 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800/50`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.target.checked),disabled:f.isPending,className:`mt-0.5 shrink-0`}),(0,G.jsxs)(`span`,{className:`text-xs text-gray-700 dark:text-gray-300`,children:[(0,G.jsx)(`span`,{className:`font-medium block mb-0.5`,children:n(`archivePurge.purgeStatsLabel`)}),(0,G.jsx)(`span`,{className:`text-gray-500 dark:text-gray-400`,children:n(`archivePurge.purgeStatsHint`)})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-start text-xs text-amber-700 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 rounded px-3 py-2`,children:[(0,G.jsx)(hu,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:n(`archivePurge.warning`)})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 p-4 border-t border-gray-200 dark:border-gray-700`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,disabled:f.isPending,children:n(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,disabled:!g,onClick:()=>f.mutate(),children:f.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-1`}),n(`archivePurge.purging`)]}):n(`archivePurge.confirmCta`,{count:m})})]})]})})}function STe(e){if(!e||e<=0)return`—`;let t=Math.floor(e/3600),n=Math.floor(e%3600/60);return t>0?`${t}h ${n}m`:`${n}m`}function CTe(e){if(!e)return`—`;let t=$d(e);return t?t.toLocaleString():`—`}function DJ({archiveId:e}){let{t}=et(),{data:n,isLoading:r}=K({queryKey:[`archive-runs`,e],queryFn:()=>Z.getArchiveRuns(e)});if(r)return(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-5 h-5 text-bambu-gray animate-spin`})});let i=n?.items||[];return i.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:t(`archives.runLog.empty`)}):(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.date`)}),(0,G.jsx)(`th`,{className:`text-left py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.status`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.duration`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.filament`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 font-medium`,children:t(`archives.runLog.col.cost`)})]})}),(0,G.jsx)(`tbody`,{children:i.map(e=>{let n=e.status===`completed`?`text-bambu-green`:e.status===`failed`?`text-red-400`:`text-bambu-gray`;return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/40 last:border-0`,children:[(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-bambu-gray-light`,children:CTe(e.started_at||e.created_at)}),(0,G.jsxs)(`td`,{className:`py-1.5 pr-2 font-medium ${n}`,children:[t(`archives.runLog.status.${e.status}`,{defaultValue:e.status}),e.failure_reason&&(0,G.jsx)(`span`,{className:`block text-[10px] text-bambu-gray font-normal`,children:t(`editArchive.failureReasons.${e.failure_reason}`,{defaultValue:e.failure_reason})})]}),(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-right text-bambu-gray-light`,children:STe(e.duration_seconds)}),(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-right text-bambu-gray-light`,children:e.filament_used_grams==null?`—`:`${e.filament_used_grams.toFixed(1)} g`}),(0,G.jsx)(`td`,{className:`py-1.5 text-right text-bambu-gray-light`,children:e.cost==null?`—`:e.cost.toFixed(2)})]},e.id)})})]})})}var OJ=[`adhesionFailure`,`spaghettiDetached`,`layerShift`,`cloggedNozzle`,`filamentRunout`,`warping`,`stringing`,`underExtrusion`,`powerFailure`,`userCancelled`,`other`],wTe=[`completed`,`failed`,`aborted`,`printing`];function kJ({archive:e,onClose:t,existingTags:n=[]}){let{t:r}=et();(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let i=$a(),[a,o]=(0,y.useState)(e.print_name||``),[s,c]=(0,y.useState)(e.printer_id),[l,u]=(0,y.useState)(e.project_id??null),[d,f]=(0,y.useState)(e.notes||``),[p,m]=(0,y.useState)(e.tags||``),[h,g]=(0,y.useState)(()=>{let t=e.failure_reason||``;return t?OJ.includes(t)?t:OJ.find(e=>r(`editArchive.failureReasons.${e}`)===t)||``:``}),[_,v]=(0,y.useState)(e.status),[b,x]=(0,y.useState)(e.quantity??1),[S,C]=(0,y.useState)(e.photos||[]),[w,T]=(0,y.useState)(e.external_url||``),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),A=(0,y.useRef)(null),j=(0,y.useRef)(null),M=(0,y.useRef)(null),{data:N}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:P}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects(),select:e=>[...e].sort((e,t)=>e.name.localeCompare(t.name))}),{data:F}=K({queryKey:[`tags`],queryFn:Z.getTags,enabled:n.length===0}),I=n.length>0?n:F?.map(e=>e.name)||[],L=p.split(`,`).map(e=>e.trim()).filter(Boolean),R=p.includes(`,`)?p.substring(p.lastIndexOf(`,`)+1).trim().toLowerCase():p.trim().toLowerCase(),z=I.filter(e=>!L.includes(e)&&(R===``||e.toLowerCase().includes(R))),B=e=>{let t;t=R&&!I.includes(R)?p.includes(`,`)?p.substring(0,p.lastIndexOf(`,`)).split(`,`).map(e=>e.trim()).filter(Boolean):[]:L,t.includes(e)||m([...t,e].join(`, `)),M.current!==null&&clearTimeout(M.current),A.current?.focus()},ee=e=>{m(L.filter(t=>t!==e).join(`, `))},V=q({mutationFn:t=>Z.updateArchive(e.id,t),onSuccess:()=>{i.invalidateQueries({queryKey:[`archives`]}),i.invalidateQueries({queryKey:[`projects`]}),t()}}),te=async t=>{let n=t.target.files?.[0];if(n){D(!0);try{C((await Z.uploadArchivePhoto(e.id,n)).photos),i.invalidateQueries({queryKey:[`archives`]})}catch(e){console.error(`Failed to upload photo:`,e)}finally{D(!1),j.current&&(j.current.value=``)}}},ne=async t=>{try{C((await Z.deleteArchivePhoto(e.id,t)).photos||[]),i.invalidateQueries({queryKey:[`archives`]})}catch(e){console.error(`Failed to delete photo:`,e)}};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-md max-h-[90vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`editArchive.title`)}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(Au,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n={print_name:a||void 0,printer_id:s,project_id:l,notes:d||void 0,tags:p||void 0,quantity:b,external_url:w||null};_!==e.status&&(n.status=_),_===`failed`||_===`aborted`?n.failure_reason=h||void 0:(e.status===`failed`||e.status===`aborted`)&&(n.failure_reason=null),V.mutate(n)},className:`p-6 space-y-4 overflow-y-auto flex-1`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`archives.runLog.title`)}),(0,G.jsx)(DJ,{archiveId:e.id})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.name`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:r(`editArchive.namePlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.printer`)}),(0,G.jsxs)(`select`,{value:s??``,onChange:e=>c(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`editArchive.noPrinter`)}),N?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(nc,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.project`)]}),(0,G.jsxs)(`select`,{value:l??``,onChange:e=>u(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`editArchive.noProject`)}),P?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(bc,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.itemsPrinted`)]}),(0,G.jsx)(`input`,{type:`number`,min:1,value:b,onChange:e=>x(Math.max(1,parseInt(e.target.value)||1)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:`1`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`editArchive.itemsPrintedHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.notes`)}),(0,G.jsx)(`textarea`,{value:d,onChange:e=>f(e.target.value),rows:3,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none resize-none`,placeholder:r(`editArchive.notesPlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(Lc,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.externalLink`)]}),(0,G.jsx)(`input`,{type:`url`,value:w,onChange:e=>T(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:`https://printables.com/model/...`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`editArchive.externalLinkHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.tags`)}),L.length>0&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:L.map(e=>(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 bg-bambu-dark-tertiary rounded text-sm text-white`,children:[(0,G.jsx)(iu,{className:`w-3 h-3`}),e,(0,G.jsx)(`button`,{type:`button`,onClick:()=>ee(e),className:`ml-0.5 text-bambu-gray hover:text-white`,children:(0,G.jsx)(Au,{className:`w-3 h-3`})})]},e))}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{ref:A,type:`text`,value:p,onChange:e=>m(e.target.value),onFocus:()=>{M.current!==null&&clearTimeout(M.current),k(!0)},onBlur:()=>{M.current=window.setTimeout(()=>k(!1),200)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:L.length>0?r(`editArchive.addMoreTags`):r(`editArchive.tagsPlaceholder`)}),O&&z.length>0&&(0,G.jsxs)(`div`,{className:`absolute top-full left-0 right-0 mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-10 max-h-40 overflow-y-auto`,children:[(0,G.jsxs)(`div`,{className:`p-2 text-xs text-bambu-gray border-b border-bambu-dark-tertiary`,children:[R?r(`editArchive.matchingTags`,{query:R}):r(`editArchive.existingTags`),` `,r(`editArchive.clickToAdd`)]}),(0,G.jsx)(`div`,{className:`p-2 flex flex-wrap gap-1.5`,children:z.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>B(e),className:`px-2 py-0.5 bg-bambu-dark-tertiary hover:bg-bambu-green/20 rounded text-sm text-bambu-gray hover:text-white transition-colors`,children:e},e))})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.status`)}),(0,G.jsx)(`select`,{value:_,onChange:e=>{v(e.target.value),e.target.value===`completed`&&g(``)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:wTe.map(e=>(0,G.jsx)(`option`,{value:e,children:r(`editArchive.statuses.${e}`)},e))})]}),(_===`failed`||_===`aborted`)&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`failure-reason-select`,className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.failureReason`)}),(0,G.jsxs)(`select`,{id:`failure-reason-select`,value:h,onChange:e=>g(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`editArchive.selectReason`)}),OJ.map(e=>(0,G.jsx)(`option`,{value:e,children:r(`editArchive.failureReasons.${e}`)},e))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(Yo,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.photos`)]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2 mb-2`,children:[S.map(t=>(0,G.jsxs)(`div`,{className:`relative group`,children:[(0,G.jsx)(`img`,{src:Z.getArchivePhotoUrl(e.id,t),alt:r(`editArchive.printResult`),className:`w-20 h-20 object-cover rounded-lg border border-bambu-dark-tertiary`}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>ne(t),className:`absolute -top-1 -right-1 p-1 bg-red-500 rounded-full opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,G.jsx)(fu,{className:`w-3 h-3 text-white`})})]},t)),(0,G.jsxs)(`label`,{className:`w-20 h-20 flex items-center justify-center border-2 border-dashed border-bambu-dark-tertiary rounded-lg cursor-pointer hover:border-bambu-green transition-colors`,children:[(0,G.jsx)(`input`,{ref:j,type:`file`,accept:`image/jpeg,image/png,image/webp`,onChange:te,className:`hidden`,disabled:E}),E?(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-gray animate-spin`}):(0,G.jsx)(hl,{className:`w-6 h-6 text-bambu-gray`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`editArchive.photosHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:V.isPending,className:`flex-1`,children:[(0,G.jsx)(Tl,{className:`w-4 h-4`}),V.isPending?r(`common.saving`):r(`common.save`)]})]})]})]})})}function AJ({archiveId:e,archiveName:t,onClose:n}){let{t:r}=et();return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-2xl max-h-[85vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(wc,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white truncate`,title:t||``,children:r(`archives.runLog.modalTitle`,{name:t||r(`archives.runLog.modalTitleFallback`)})})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,title:r(`common.close`),children:(0,G.jsx)(Au,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`p-6 overflow-y-auto flex-1`,children:(0,G.jsx)(DJ,{archiveId:e})})]})})}function TTe({items:e,searchPlaceholder:t,onClose:n,className:r,onMouseEnter:i,onMouseLeave:a}){let[o,s]=(0,y.useState)(``),c=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(t){let e=window.setTimeout(()=>c.current?.focus(),0);return()=>window.clearTimeout(e)}},[t]);let l=o.trim().toLowerCase(),u=t&&l?e.filter(e=>e.label.toLowerCase().includes(l)):e;return(0,G.jsxs)(`div`,{className:r,onMouseEnter:i,onMouseLeave:a,children:[t&&(0,G.jsx)(`div`,{className:`sticky top-0 z-[1] px-2 py-1.5 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Al,{className:`absolute left-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{ref:c,type:`text`,value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{if(e.key===`Enter`){let e=u.find(e=>!e.disabled);e&&(e.onClick(),n())}},placeholder:t,className:`w-full pl-7 pr-2 py-1 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})}),u.map((e,t)=>(0,G.jsxs)(`button`,{onClick:()=>{e.disabled||(e.onClick(),n())},disabled:e.disabled,className:`w-full flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${e.disabled?`text-bambu-gray cursor-not-allowed`:e.danger?`text-red-400 hover:bg-red-400/10`:`text-white hover:bg-bambu-dark-tertiary`}`,children:[e.icon&&(0,G.jsx)(`span`,{className:`w-4 h-4 flex-shrink-0 flex items-center justify-center`,children:e.icon}),(0,G.jsx)(`span`,{className:`flex-1 truncate`,children:e.label})]},t)),t&&u.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray text-center italic`,children:`—`})]})}function jJ({x:e,y:t,items:n,onClose:r}){let i=(0,y.useRef)(null),[a,o]=(0,y.useState)(null),s=(0,y.useRef)(null),[c,l]=(0,y.useState)({x:e,y:t,visible:!1}),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)({});(0,y.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&r()},t=e=>{e.key===`Escape`&&r()},n=e=>{i.current&&i.current.contains(e.target)||r()};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),document.addEventListener(`scroll`,n,!0),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t),document.removeEventListener(`scroll`,n,!0),s.current&&clearTimeout(s.current)}},[r]),(0,y.useLayoutEffect)(()=>{if(i.current){i.current.style.visibility=`hidden`,i.current.style.display=`block`;let n=i.current.getBoundingClientRect(),r=window.innerWidth,a=window.innerHeight,o=e,s=t;e+n.width>r-8&&(o=Math.max(8,r-n.width-8)),o<8&&(o=8),t+n.height>a-8&&(s=Math.max(8,a-n.height-8)),s<8&&(s=8),d(r-o-n.width<180&&o>180),l({x:o,y:s,visible:!0})}},[e,t]);let m=(e,t)=>{s.current&&=(clearTimeout(s.current),null);let n=t.getBoundingClientRect(),r=window.innerHeight-n.top-8<300&&n.top>300;p(t=>({...t,[e]:r?`bottom`:`top`})),o(e)},h=()=>{s.current=window.setTimeout(()=>{o(null)},150)};return(0,G.jsx)(`div`,{ref:i,className:`fixed z-50 min-w-[180px] max-w-[280px] bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1`,style:{left:c.x,top:c.y,visibility:c.visible?`visible`:`hidden`},children:n.map((e,t)=>{if(e.divider)return(0,G.jsx)(`div`,{className:`my-1 border-t border-bambu-dark-tertiary`},t);let n=e.submenu&&e.submenu.length>0;return(0,G.jsxs)(`div`,{className:`relative`,onMouseEnter:e=>n&&m(t,e.currentTarget),onMouseLeave:()=>n&&h(),children:[(0,G.jsxs)(`button`,{onMouseEnter:e=>n&&m(t,e.currentTarget.parentElement),onClick:()=>{n?o(a===t?null:t):e.disabled||(e.onClick(),r())},disabled:e.disabled,title:e.title,className:`w-full flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${e.disabled?`text-bambu-gray cursor-not-allowed`:e.danger?`text-red-400 hover:bg-red-400/10`:`text-white hover:bg-bambu-dark-tertiary`} ${n&&a===t?`bg-bambu-dark-tertiary`:``}`,children:[e.icon&&(0,G.jsx)(`span`,{className:`w-4 h-4 flex-shrink-0 flex items-center justify-center`,children:e.icon}),(0,G.jsx)(`span`,{className:`flex-1`,children:e.label}),n&&(0,G.jsx)(ts,{className:`w-4 h-4 text-bambu-gray`})]}),n&&a===t&&(0,G.jsx)(TTe,{items:e.submenu,searchPlaceholder:e.submenuSearchPlaceholder,onClose:r,className:`absolute min-w-[200px] bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1 overflow-hidden max-h-[300px] overflow-y-auto z-[60] ${u?`right-full mr-1`:`left-full ml-1`} ${f[t]===`bottom`?`bottom-0`:`top-0`}`,onMouseEnter:()=>{s.current&&=(clearTimeout(s.current),null)},onMouseLeave:()=>h()})]},t)})})}function ETe({selectedIds:e,existingTags:t,onClose:n}){let r=$a(),{showToast:i}=gd(),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(new Set),[l,u]=(0,y.useState)(`add`);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]);let d=q({mutationFn:async()=>{let t=Array.from(s),n=0;for(let r of e)try{let e=await Z.getArchive(r),i=e.tags?e.tags.split(`,`).map(e=>e.trim()).filter(Boolean):[],a;a=l===`add`?[...new Set([...i,...t])]:i.filter(e=>!s.has(e)),await Z.updateArchive(r,{tags:a.join(`, `)}),n++}catch(e){throw console.error(`Failed to update archive ${r}:`,e),Error(`Failed on archive ${r}: ${e instanceof Error?e.message:`Unknown error`}`)}return{count:n,mode:l,tags:t}},onSuccess:({count:e,mode:t,tags:a})=>{r.invalidateQueries({queryKey:[`archives`]}),i(`${t===`add`?`Added`:`Removed`} ${a.length} tag${a.length===1?``:`s`} ${t===`add`?`to`:`from`} ${e} archive${e===1?``:`s`}`),n()},onError:e=>{i(e.message||`Failed to update tags`,`error`)}}),f=e=>{c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},p=()=>{a.trim()&&!s.has(a.trim())&&(c(e=>new Set([...e,a.trim()])),o(``))};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(cd,{className:`w-full max-w-md`,children:(0,G.jsxs)(ud,{className:`p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(iu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:l===`add`?`Add Tags`:`Remove Tags`})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(Au,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[l===`add`?`Add`:`Remove`,` tags for `,e.length,` selected archive`,e.length===1?``:`s`]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{size:`sm`,variant:l===`add`?`primary`:`secondary`,onClick:()=>u(`add`),children:`Add Tags`}),(0,G.jsx)(Q,{size:`sm`,variant:l===`remove`?`primary`:`secondary`,onClick:()=>u(`remove`),children:`Remove Tags`})]}),l===`add`&&(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:`Enter new tag...`,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),p())}}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:p,disabled:!a.trim(),children:(0,G.jsx)(hl,{className:`w-4 h-4`})})]}),t.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:`Existing tags:`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:t.map(e=>(0,G.jsx)(`button`,{onClick:()=>f(e),className:`px-2 py-1 rounded text-sm transition-colors ${s.has(e)?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray-light hover:bg-bambu-dark`}`,children:e},e))})]}),s.size>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:[`Tags to `,l===`add`?`add`:`remove`,`:`]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Array.from(s).map(e=>(0,G.jsxs)(`span`,{className:`px-2 py-1 rounded text-sm flex items-center gap-1 ${l===`add`?`bg-green-500/20 text-green-400`:`bg-red-500/20 text-red-400`}`,children:[e,(0,G.jsx)(`button`,{onClick:()=>f(e),className:`hover:opacity-70`,children:(0,G.jsx)(Au,{className:`w-3 h-3`})})]},e))})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:n,className:`flex-1`,children:`Cancel`}),(0,G.jsx)(Q,{onClick:()=>d.mutate(),disabled:s.size===0||d.isPending,className:`flex-1`,children:d.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),`Processing...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(iu,{className:`w-4 h-4`}),l===`add`?`Add Tags`:`Remove Tags`]})})]})]})})})}function DTe({selectedIds:e,onClose:t}){let{t:n}=et(),r=$a(),{showToast:i}=gd(),[a,o]=(0,y.useState)(``),{data:s,isLoading:c}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects()}),l=(0,y.useMemo)(()=>s?[...s].sort((e,t)=>e.name.localeCompare(t.name)):void 0,[s]),u=a.trim().toLowerCase(),d=u?l?.filter(e=>e.name.toLowerCase().includes(u)):l,f=(l?.length??0)>5;(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let p=()=>{r.invalidateQueries({queryKey:[`archives`]}),r.invalidateQueries({queryKey:[`projects`]}),r.invalidateQueries({queryKey:[`project`]}),r.invalidateQueries({queryKey:[`project-archives`]})},m=q({mutationFn:async t=>(await Z.addArchivesToProject(t,e),t),onSuccess:n=>{let r=s?.find(e=>e.id===n);p(),i(`Added ${e.length} archive${e.length===1?``:`s`} to "${r?.name}"`),t()},onError:()=>{i(`Failed to assign project`,`error`)}}),h=q({mutationFn:async()=>{for(let t of e)await Z.updateArchive(t,{project_id:null});return e.length},onSuccess:e=>{p(),i(`Removed ${e} archive${e===1?``:`s`} from project`),t()},onError:()=>{i(`Failed to remove from project`,`error`)}}),g=m.isPending||h.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(cd,{className:`w-full max-w-md max-h-[80vh] flex flex-col`,children:(0,G.jsxs)(ud,{className:`p-0 flex flex-col min-h-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(nc,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:`Assign to Project`})]}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,disabled:g,children:(0,G.jsx)(Au,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-3 overflow-y-auto min-h-0`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[`Assign `,e.length,` selected archive`,e.length===1?``:`s`,` to a project`]}),c?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-gray`})}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`button`,{onClick:()=>h.mutate(),disabled:g,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary border border-bambu-dark-tertiary transition-colors text-left disabled:opacity-50`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full bg-red-500/20 flex items-center justify-center shrink-0`,children:(0,G.jsx)(ms,{className:`w-4 h-4 text-red-400`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:`Remove from project`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray truncate`,children:`Clear project assignment`})]}),h.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-gray shrink-0`})]}),l&&l.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 py-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`or assign to`}),(0,G.jsx)(`div`,{className:`flex-1 h-px bg-bambu-dark-tertiary`})]}),f&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Al,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:n(`archives.menu.searchProjects`),className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray text-sm focus:border-bambu-green focus:outline-none`})]}),d?.map(e=>(0,G.jsxs)(`button`,{onClick:()=>m.mutate(e.id),disabled:g,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary border border-bambu-dark-tertiary transition-colors text-left disabled:opacity-50`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full flex items-center justify-center shrink-0`,style:{backgroundColor:e.color?`${e.color}20`:`rgb(var(--bambu-green) / 0.2)`},children:(0,G.jsx)(nc,{className:`w-4 h-4`,style:{color:e.color||`rgb(var(--bambu-green))`}})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:e.name}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray truncate`,children:[e.archive_count,` archive`,e.archive_count===1?``:`s`,e.status&&` • ${e.status}`]})]}),m.isPending&&m.variables===e.id&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-gray shrink-0`})]},e.id)),(!l||l.length===0)&&(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-4`,children:`No projects yet. Create one from the Projects page.`}),l&&l.length>0&&d?.length===0&&(0,G.jsx)(`p`,{className:`text-center text-bambu-gray text-sm py-4`,children:`—`})]})]}),(0,G.jsx)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary shrink-0`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:t,className:`flex-1`,disabled:g,children:`Cancel`})})]})})})}function OTe(e,t){return new Date(e,t+1,0).getDate()}function kTe(e,t){return new Date(e,t,1).getDay()}var ATe=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],jTe=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function MTe({archives:e,onArchiveClick:t,highlightedArchiveId:n}){let r=new Date,[i,a]=(0,y.useState)(r.getMonth()),[o,s]=(0,y.useState)(r.getFullYear()),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(null),f=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=$d(e.completed_at||e.created_at)||new Date,r=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}`,i=t.get(r)||[];i.push(e),t.set(r,i)}),t},[e]),p=OTe(o,i),m=kTe(o,i),h=()=>{i===0?(a(11),s(o-1)):a(i-1)},g=()=>{i===11?(a(0),s(o+1)):a(i+1)},_=()=>{a(r.getMonth()),s(r.getFullYear())},v=[];for(let e=0;e{e!==c&&d(null),l(e)};return(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`button`,{onClick:h,className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(ns,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white`,children:[ATe[i],` `,o]}),(0,G.jsx)(`button`,{onClick:_,className:`px-2 py-1 text-xs bg-bambu-dark-tertiary hover:bg-bambu-green/20 text-bambu-gray hover:text-white rounded transition-colors`,children:`Today`})]}),(0,G.jsx)(`button`,{onClick:g,className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(ts,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-7 gap-1 mb-1`,children:jTe.map(e=>(0,G.jsx)(`div`,{className:`text-center text-xs text-bambu-gray py-2`,children:e},e))}),(0,G.jsx)(`div`,{className:`grid grid-cols-7 gap-1`,children:v.map((e,t)=>{if(e===null)return(0,G.jsx)(`div`,{className:`aspect-square`},`empty-${t}`);let n=`${o}-${String(i+1).padStart(2,`0`)}-${String(e).padStart(2,`0`)}`,a=f.get(n)||[],s=a.length>0,l=e===r.getDate()&&i===r.getMonth()&&o===r.getFullYear(),u=n===c,d=a.filter(e=>e.status===`completed`).length,p=a.filter(e=>e.status===`failed`).length;return(0,G.jsxs)(`button`,{onClick:()=>x(u?null:n),className:`aspect-square rounded-lg p-1 flex flex-col items-center justify-center transition-colors relative ${u?`bg-bambu-green text-white`:l?`bg-bambu-green/20 text-white ring-2 ring-bambu-green`:s?`bg-bambu-dark-tertiary hover:bg-bambu-dark-tertiary/70 text-white`:`hover:bg-bambu-dark-tertiary/50 text-bambu-gray`}`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium ${l&&!u?`text-bambu-green`:``}`,children:e}),s&&(0,G.jsxs)(`div`,{className:`absolute bottom-1 left-1/2 -translate-x-1/2 flex items-center gap-1`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${p>0&&d===0?`bg-red-400`:p>0?`bg-yellow-400`:`bg-green-400`}`}),(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:a.length})]})]},e)})}),(0,G.jsx)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-4 text-center`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-2xl font-bold text-white`,children:e.filter(e=>{let t=$d(e.completed_at||e.created_at)||new Date;return t.getMonth()===i&&t.getFullYear()===o}).length}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:`Prints this month`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-2xl font-bold text-green-400`,children:e.filter(e=>{let t=$d(e.completed_at||e.created_at)||new Date;return t.getMonth()===i&&t.getFullYear()===o&&e.status===`completed`}).length}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:`Successful`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-2xl font-bold text-red-400`,children:e.filter(e=>{let t=$d(e.completed_at||e.created_at)||new Date;return t.getMonth()===i&&t.getFullYear()===o&&e.status===`failed`}).length}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:`Failed`})]})]})})]}),(0,G.jsx)(`div`,{className:`lg:w-80 bg-bambu-dark rounded-xl p-4`,children:c?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray mb-3`,children:new Date(c+`T12:00:00`).toLocaleDateString(`en-US`,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})}),b.length>0?(0,G.jsx)(`div`,{className:`calendar-scroll space-y-2 max-h-96 overflow-y-auto`,children:b.map(e=>{let r=e.id===u||e.id===n;return(0,G.jsxs)(`button`,{onClick:()=>{d(e.id),t?.(e)},className:`w-full flex items-center gap-3 p-2 rounded-lg transition-colors text-left ${r?``:`hover:bg-bambu-dark-tertiary`}`,style:r?{outline:`4px solid #facc15`,outlineOffset:`2px`}:void 0,children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getArchiveThumbnail(e.id),alt:``,className:`w-12 h-12 rounded object-cover`}):(0,G.jsx)(`div`,{className:`w-12 h-12 rounded bg-bambu-dark-tertiary flex items-center justify-center`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`3MF`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:e.print_name||e.filename}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,G.jsx)(`span`,{className:e.status===`failed`?`text-red-400`:`text-green-400`,children:e.status===`failed`?`Failed`:`Completed`}),e.filament_color&&(0,G.jsx)(`div`,{className:`flex gap-0.5`,children:e.filament_color.split(`,`).map((e,t)=>(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full border border-black/20`,style:{backgroundColor:e}},t))})]})]})]},e.id)})}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:`No prints on this day`})]}):(0,G.jsx)(`div`,{className:`text-center py-8`,children:(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:`Select a day to see prints`})})})]})}function MJ({archiveId:e,archiveName:t,onClose:n}){let r=Z.getArchiveQRCodeUrl(e,300);return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-sm`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:`QR Code`}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(Au,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 flex flex-col items-center`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4 text-center truncate max-w-full`,children:t}),(0,G.jsx)(`div`,{className:`bg-white p-4 rounded-lg mb-4`,children:(0,G.jsx)(`img`,{src:r,alt:`QR Code`,className:`w-64 h-64`})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-4 text-center`,children:`Scan to open this archive`}),(0,G.jsxs)(Q,{onClick:()=>{let e=document.createElement(`a`);e.href=r,e.download=`${t}_qrcode.png`,e.click()},className:`w-full`,children:[(0,G.jsx)(Is,{className:`w-4 h-4`}),`Download QR Code`]})]})]})})}function NJ({archiveId:e,archiveName:t,photos:n,onClose:r,onDelete:i}){let[a,o]=(0,y.useState)(0),[s,c]=(0,y.useState)(!1);if((0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r(),e.key===`ArrowLeft`&&o(e=>Math.max(0,e-1)),e.key===`ArrowRight`&&o(e=>Math.min(n.length-1,e+1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r,n.length]),(0,y.useEffect)(()=>{a>=n.length&&o(Math.max(0,n.length-1))},[n.length,a]),n.length===0)return r(),null;let l=n[a],u=Z.getArchivePhotoUrl(e,l);return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/90 flex items-center justify-center z-50`,onClick:r,children:[(0,G.jsxs)(`div`,{className:`relative w-full h-full flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 bg-black/50`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:t}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[`Photo `,a+1,` of `,n.length]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{let e=document.createElement(`a`);e.href=u,e.download=`${t}_photo_${a+1}.jpg`,e.click()},children:[(0,G.jsx)(Is,{className:`w-4 h-4`}),`Download`]}),i&&(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{i&&c(!0)},className:`text-red-400 hover:text-red-300`,children:(0,G.jsx)(fu,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:r,className:`p-2 text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(Au,{className:`w-6 h-6`})})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-h-0 flex items-center justify-center p-4 relative overflow-hidden`,children:[a>0&&(0,G.jsx)(`button`,{onClick:()=>o(e=>e-1),className:`absolute left-4 z-10 p-3 bg-black/50 hover:bg-black/70 rounded-full transition-colors`,children:(0,G.jsx)(ns,{className:`w-8 h-8 text-white`})}),(0,G.jsx)(`img`,{src:u,alt:`Photo ${a+1}`,className:`max-w-full max-h-full object-contain rounded-lg`,style:{maxHeight:`calc(100vh - 200px)`}}),ao(e=>e+1),className:`absolute right-4 z-10 p-3 bg-black/50 hover:bg-black/70 rounded-full transition-colors`,children:(0,G.jsx)(ts,{className:`w-8 h-8 text-white`})})]}),n.length>1&&(0,G.jsx)(`div`,{className:`flex justify-center gap-2 p-4 bg-black/50`,children:n.map((t,n)=>(0,G.jsx)(`button`,{onClick:()=>o(n),className:`w-16 h-16 rounded-lg overflow-hidden border-2 transition-colors ${n===a?`border-bambu-green`:`border-transparent hover:border-bambu-gray`}`,children:(0,G.jsx)(`img`,{src:Z.getArchivePhotoUrl(e,t),alt:`Thumbnail ${n+1}`,className:`w-full h-full object-cover`})},t))})]}),s&&(0,G.jsx)(xd,{title:`Delete Photo`,message:`Delete this photo? This cannot be undone.`,confirmText:`Delete`,variant:`danger`,onConfirm:()=>{i?.(l),c(!1)},onCancel:()=>c(!1)})]})}function PJ(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n`u`?null:iY(BigInt.prototype.toString),$J=typeof Symbol>`u`?null:iY(Symbol.prototype.toString),eY=iY(Object.prototype.hasOwnProperty),tY=iY(Object.prototype.toString),nY=iY(RegExp.prototype.test),rY=KTe(TypeError);function iY(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return VJ(e,t,n)}}function KTe(e){return function(){return HJ(e,[...arguments])}}function aY(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:qJ;if(IJ&&IJ(e,null),!KJ(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(RTe(t)||(t[r]=e),i=e)}e[i]=!0}return e}function qTe(e){for(let t=0;t/g),eEe=RJ(/\${[\w\W]*/g),tEe=RJ(/^data-[\-\w.\u00B7-\uFFFF]+$/),nEe=RJ(/^aria-[\-\w]+$/),_Y=RJ(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),rEe=RJ(/^(?:\w+script|data):/i),iEe=RJ(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),aEe=RJ(/^html$/i),oEe=RJ(/^[a-z][.\w]*(-[.\w]+)+$/i),vY=RJ(/<[/\w!]/g),sEe=RJ(/<[/\w]/g),cEe=RJ(/<\/no(script|embed|frames)/i),lEe=RJ(/\/>/i),yY={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},uEe=function(){return typeof window>`u`?null:window},dEe=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},bY=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},xY=function(e,t,n,r){return eY(e,t)&&KJ(e[t])?aY(r.base?oY(r.base):{},e[t],r.transform):n};function SY(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:uEe(),t=e=>SY(e);if(t.version=`3.4.10`,t.removed=[],!e||!e.document||e.document.nodeType!==yY.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=sY(d,`cloneNode`),p=sY(d,`remove`),m=sY(d,`nextSibling`),h=sY(d,`childNodes`),g=sY(d,`parentNode`),_=sY(d,`shadowRoot`),v=sY(d,`attributes`),y=o&&o.prototype?sY(o.prototype,`nodeType`):null,b=o&&o.prototype?sY(o.prototype,`nodeName`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let x,S=``,C,w=!1,T=0,E=function(){if(T>0)throw rY(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},D=function(e){E(),T++;try{return x.createHTML(e)}finally{T--}},O=function(e){E(),T++;try{return x.createScriptURL(e)}finally{T--}},k=function(){return w||=(C=dEe(u,i),!0),C},A=n,j=A.implementation,M=A.createNodeIterator,N=A.createDocumentFragment,P=A.getElementsByTagName,F=r.importNode,I=bY();t.isSupported=typeof FJ==`function`&&typeof g==`function`&&j&&j.createHTMLDocument!==void 0;let L=QTe,R=$Te,z=eEe,B=tEe,ee=nEe,V=rEe,te=iEe,ne=oEe,re=_Y,ie=null,H=aY({},[...cY,...lY,...uY,...dY,...fY]),ae=null,oe=aY({},[...pY,...mY,...hY,...gY]),U=Object.seal(zJ(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),se=null,ce=null,le=Object.seal(zJ(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ue=!0,de=!0,fe=!1,pe=!0,me=!1,he=!0,ge=!1,_e=!1,ve=!1,ye=!1,be=!1,xe=!1,Se=!0,Ce=!1,we=`user-content-`,Te=!0,Ee=!1,De={},Oe=null,ke=aY({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Ae=null,je=aY({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Me=null,Ne=aY({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Pe=`http://www.w3.org/1998/Math/MathML`,Fe=`http://www.w3.org/2000/svg`,Ie=`http://www.w3.org/1999/xhtml`,Le=Ie,Re=!1,ze=null,Be=aY({},[Pe,Fe,Ie],JJ),Ve=LJ([`mi`,`mo`,`mn`,`ms`,`mtext`]),He=aY({},Ve),Ue=LJ([`annotation-xml`]),We=aY({},Ue),Ge=aY({},[`title`,`style`,`font`,`a`,`script`]),Ke=null,qe=[`application/xhtml+xml`,`text/html`],Je=null,Ye=null,Xe=n.createElement(`form`),Ze=function(e){return e instanceof RegExp||e instanceof Function},Qe=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Ye&&Ye===e)return;(!e||typeof e!=`object`)&&(e={}),e=oY(e),Ke=qe.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,Je=Ke===`application/xhtml+xml`?JJ:qJ,ie=xY(e,`ALLOWED_TAGS`,H,{transform:Je}),ae=xY(e,`ALLOWED_ATTR`,oe,{transform:Je}),ze=xY(e,`ALLOWED_NAMESPACES`,Be,{transform:JJ}),Me=xY(e,`ADD_URI_SAFE_ATTR`,Ne,{transform:Je,base:Ne}),Ae=xY(e,`ADD_DATA_URI_TAGS`,je,{transform:Je,base:je}),Oe=xY(e,`FORBID_CONTENTS`,ke,{transform:Je}),se=xY(e,`FORBID_TAGS`,oY({}),{transform:Je}),ce=xY(e,`FORBID_ATTR`,oY({}),{transform:Je}),De=eY(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?oY(e.USE_PROFILES):e.USE_PROFILES:!1,ue=e.ALLOW_ARIA_ATTR!==!1,de=e.ALLOW_DATA_ATTR!==!1,fe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,pe=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,me=e.SAFE_FOR_TEMPLATES||!1,he=e.SAFE_FOR_XML!==!1,ge=e.WHOLE_DOCUMENT||!1,ye=e.RETURN_DOM||!1,be=e.RETURN_DOM_FRAGMENT||!1,xe=e.RETURN_TRUSTED_TYPE||!1,ve=e.FORCE_BODY||!1,Se=e.SANITIZE_DOM!==!1,Ce=e.SANITIZE_NAMED_PROPS||!1,Te=e.KEEP_CONTENT!==!1,Ee=e.IN_PLACE||!1,re=YTe(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:_Y,Le=typeof e.NAMESPACE==`string`?e.NAMESPACE:Ie,He=eY(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?oY(e.MATHML_TEXT_INTEGRATION_POINTS):aY({},Ve),We=eY(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?oY(e.HTML_INTEGRATION_POINTS):aY({},Ue);let t=eY(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?oY(e.CUSTOM_ELEMENT_HANDLING):zJ(null);if(U=zJ(null),eY(t,`tagNameCheck`)&&Ze(t.tagNameCheck)&&(U.tagNameCheck=t.tagNameCheck),eY(t,`attributeNameCheck`)&&Ze(t.attributeNameCheck)&&(U.attributeNameCheck=t.attributeNameCheck),eY(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(U.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),RJ(U),me&&(de=!1),be&&(ye=!0),De&&(ie=aY({},fY),ae=zJ(null),De.html===!0&&(aY(ie,cY),aY(ae,pY)),De.svg===!0&&(aY(ie,lY),aY(ae,mY),aY(ae,gY)),De.svgFilters===!0&&(aY(ie,uY),aY(ae,mY),aY(ae,gY)),De.mathMl===!0&&(aY(ie,dY),aY(ae,hY),aY(ae,gY))),le.tagCheck=null,le.attributeCheck=null,eY(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?le.tagCheck=e.ADD_TAGS:KJ(e.ADD_TAGS)&&(ie===H&&(ie=oY(ie)),aY(ie,e.ADD_TAGS,Je))),eY(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?le.attributeCheck=e.ADD_ATTR:KJ(e.ADD_ATTR)&&(ae===oe&&(ae=oY(ae)),aY(ae,e.ADD_ATTR,Je))),eY(e,`ADD_URI_SAFE_ATTR`)&&KJ(e.ADD_URI_SAFE_ATTR)&&aY(Me,e.ADD_URI_SAFE_ATTR,Je),eY(e,`FORBID_CONTENTS`)&&KJ(e.FORBID_CONTENTS)&&(Oe===ke&&(Oe=oY(Oe)),aY(Oe,e.FORBID_CONTENTS,Je)),eY(e,`ADD_FORBID_CONTENTS`)&&KJ(e.ADD_FORBID_CONTENTS)&&(Oe===ke&&(Oe=oY(Oe)),aY(Oe,e.ADD_FORBID_CONTENTS,Je)),Te&&(ie[`#text`]=!0),ge&&aY(ie,[`html`,`head`,`body`]),ie.table&&(aY(ie,[`tbody`]),delete se.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw rY(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw rY(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=x;x=e.TRUSTED_TYPES_POLICY;try{S=D(``)}catch(e){throw x=t,e}}else e.TRUSTED_TYPES_POLICY===null?(x=void 0,S=``):(x===void 0&&(x=k()),x&&typeof S==`string`&&(S=D(``)));(I.uponSanitizeElement.length>0||I.uponSanitizeAttribute.length>0)&&ie===H&&(ie=oY(ie)),I.uponSanitizeAttribute.length>0&&ae===oe&&(ae=oY(ae)),LJ&&LJ(e),Ye=e},$e=aY({},[...lY,...uY,...XTe]),et=aY({},[...dY,...ZTe]),tt=function(e,t,n){return t.namespaceURI===Ie?e===`svg`:t.namespaceURI===Pe?e===`svg`&&(n===`annotation-xml`||He[n]):!!$e[e]},nt=function(e,t,n){return t.namespaceURI===Ie?e===`math`:t.namespaceURI===Fe?e===`math`&&We[n]:!!et[e]},rt=function(e,t,n){return t.namespaceURI===Fe&&!We[n]||t.namespaceURI===Pe&&!He[n]?!1:!et[e]&&(Ge[e]||!$e[e])},it=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:Le,tagName:`template`});let n=qJ(e.tagName),r=qJ(t.tagName);return ze[e.namespaceURI]?e.namespaceURI===Fe?tt(n,t,r):e.namespaceURI===Pe?nt(n,t,r):e.namespaceURI===Ie?rt(n,t,r):!!(Ke===`application/xhtml+xml`&&ze[e.namespaceURI]):!1},at=function(e){GJ(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw rY(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},ot=function(e){let t=h(e);if(t){let e=[];UJ(t,t=>{GJ(e,t)}),UJ(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;if(typeof i==`string`)try{e.removeAttribute(i)}catch{}}},st=function(e,n){try{GJ(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{GJ(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(ye||be)try{at(n)}catch{}else try{n.setAttribute(e,``)}catch{}},ct=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;if(!(typeof i!=`string`||ae[Je(i)]))try{e.removeAttribute(i)}catch{}}},lt=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(y?y(e):e.nodeType)===yY.element&&ct(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},ut=function(e){let t=null,r=null;if(ve)e=``+e;else{let t=YJ(e,/^[\r\n\t ]+/);r=t&&t[0]}Ke===`application/xhtml+xml`&&Le===Ie&&(e=``+e+``);let i=x?D(e):e;if(Le===Ie)try{t=new l().parseFromString(i,Ke)}catch{}if(!t||!t.documentElement){t=j.createDocument(Le,`template`,null);try{t.documentElement.innerHTML=Re?S:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Le===Ie?P.call(t,ge?`html`:`body`)[0]:ge?t.documentElement:a},dt=function(e){return M.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},ft=function(e){return e=XJ(e,L,` `),e=XJ(e,R,` `),e=XJ(e,z,` `),e},pt=function(e){e.normalize();let t=M.call(e.ownerDocument||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),n=t.nextNode();for(;n;)n.data=ft(n.data),n=t.nextNode();let r=e.querySelectorAll?.call(e,`template`);r&&UJ(r,e=>{ht(e.content)&&pt(e.content)})},mt=function(e){let t=b?b(e):null;return typeof t!=`string`||Je(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},ht=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===yY.documentFragment}catch{return!1}},gt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function _t(e,n,r){e.length!==0&&UJ(e,e=>{e.call(t,n,r,Ye)})}let vt=function(e,t){return!!(he&&e.hasChildNodes()&&!gt(e.firstElementChild)&&nY(vY,e.textContent)&&nY(vY,e.innerHTML)||he&&e.namespaceURI===Ie&&t===`style`&>(e.firstElementChild)||e.nodeType===yY.processingInstruction||he&&e.nodeType===yY.comment&&nY(sEe,e.data))},yt=function(e,t){if(!se[t]&&St(t)&&(U.tagNameCheck instanceof RegExp&&nY(U.tagNameCheck,t)||U.tagNameCheck instanceof Function&&U.tagNameCheck(t)))return!1;if(Te&&!Oe[t]){let t=g(e),n=h(e);if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=Ee?n[i]:f(n[i],!0);t.insertBefore(r,m(e))}}}return at(e),!0},bt=function(e){if(_t(I.beforeSanitizeElements,e,null),mt(e))return at(e),!0;let n=Je(b?b(e):e.nodeName);if(_t(I.uponSanitizeElement,e,{tagName:n,allowedTags:ie}),vt(e,n))return at(e),!0;if(se[n]||!(le.tagCheck instanceof Function&&le.tagCheck(n))&&!ie[n])return yt(e,n);if((y?y(e):e.nodeType)===yY.element&&!it(e)||(n===`noscript`||n===`noembed`||n===`noframes`)&&nY(cEe,e.innerHTML))return at(e),!0;if(me&&e.nodeType===yY.text){let n=ft(e.textContent);e.textContent!==n&&(GJ(t.removed,{element:e.cloneNode()}),e.textContent=n)}return _t(I.afterSanitizeElements,e,null),!1},xt=function(e,t,r){if(ce[t]||Se&&(t===`id`||t===`name`)&&(r in n||r in Xe))return!1;let i=ae[t]||le.attributeCheck instanceof Function&&le.attributeCheck(t,e);if(!(de&&nY(B,t))&&!(ue&&nY(ee,t))){if(!i){if(!(St(e)&&(U.tagNameCheck instanceof RegExp&&nY(U.tagNameCheck,e)||U.tagNameCheck instanceof Function&&U.tagNameCheck(e))&&(U.attributeNameCheck instanceof RegExp&&nY(U.attributeNameCheck,t)||U.attributeNameCheck instanceof Function&&U.attributeNameCheck(t,e))||t===`is`&&U.allowCustomizedBuiltInElements&&(U.tagNameCheck instanceof RegExp&&nY(U.tagNameCheck,r)||U.tagNameCheck instanceof Function&&U.tagNameCheck(r))))return!1}else if(!Me[t]&&!nY(re,XJ(r,te,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&ZJ(r,`data:`)===0&&Ae[e])&&!(fe&&!nY(V,XJ(r,te,``)))&&r)return!1}return!0},W=aY({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),St=function(e){return!W[qJ(e)]&&nY(ne,e)},Ct=function(e,t,n,r){if(x&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return D(r);case`TrustedScriptURL`:return O(r)}return r},wt=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),mt(e)?at(e):WJ(t.removed)}catch{st(n,e)}},Tt=function(e){_t(I.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||mt(e))return;let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:ae,forceKeepAttr:void 0},r=t.length,i=Je(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=Je(o),u=c,d=o===`value`?u:UTe(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,_t(I.uponSanitizeAttribute,e,n),d=n.attrValue,Ce&&(l===`id`||l===`name`)&&ZJ(d,we)!==0&&(st(o,e),d=we+d),he&&nY(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){st(o,e);continue}if(l===`attributename`&&YJ(d,`href`)){st(o,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr){st(o,e);continue}if(!pe&&nY(lEe,d)){st(o,e);continue}if(me&&(d=ft(d)),!xt(i,l,d)){st(o,e);continue}d=Ct(i,l,s,d),d!==u&&wt(e,o,s,d)}}_t(I.afterSanitizeAttributes,e,null)},Et=function(e){let t=null,n=dt(e);for(_t(I.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(_t(I.uponSanitizeShadowNode,t,null),bt(t),Tt(t),ht(t.content)&&Et(t.content),(y?y(t):t.nodeType)===yY.element){let e=_(t);ht(e)&&(Dt(e),Et(e))}_t(I.afterSanitizeShadowDOM,e,null)},Dt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Et(e.shadow);continue}let n=e.node,r=(y?y(n):n.nodeType)===yY.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&Je(e)===`template`){let e=n.content;ht(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);ht(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Re=!e,Re&&(e=``),typeof e!=`string`&&!gt(e)&&(e=JTe(e),typeof e!=`string`))throw rY(`dirty is not a string, aborting`);if(!t.isSupported)return e;_e||Qe(n),t.removed=[];let c=Ee&&typeof e!=`string`&>(e);if(c){let t=b?b(e):e.nodeName;if(typeof t==`string`){let e=Je(t);if(!ie[e]||se[e])throw rY(`root node is forbidden and cannot be sanitized in-place`)}if(mt(e))throw rY(`root node is clobbered and cannot be sanitized in-place`);try{Dt(e)}catch(t){throw ot(e),t}}else if(gt(e))i=ut(``),a=i.ownerDocument.importNode(e,!0),a.nodeType===yY.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Dt(a);else{if(!ye&&!me&&!ge&&e.indexOf(`<`)===-1)return x&&xe?D(e):e;if(i=ut(e),!i)return ye?null:xe?S:``}i&&ve&&at(i.firstChild);let l=dt(c?e:i);try{for(;o=l.nextNode();)bt(o),Tt(o),ht(o.content)&&Et(o.content)}catch(t){throw c&&ot(e),t}if(c)return UJ(t.removed,e=>{e.element&<(e.element)}),me&&pt(e),e;if(ye){if(me&&pt(i),be)for(s=N.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(ae.shadowroot||ae.shadowrootmode)&&(s=F.call(r,s,!0)),s}let u=ge?i.outerHTML:i.innerHTML;return ge&&ie[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&nY(aEe,i.ownerDocument.doctype.name)&&(u=` -`+u),me&&(u=ft(u)),x&&xe?D(u):u},t.setConfig=function(){Qe(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),_e=!0},t.clearConfig=function(){Ye=null,_e=!1,x=C,S=``},t.isValidAttribute=function(e,t,n){return Ye||Qe({}),xt(Je(e),Je(t),n)},t.addHook=function(e,t){typeof t==`function`&&GJ(I[e],t)},t.removeHook=function(e,t){if(t!==void 0){let n=VTe(I[e],t);return n===-1?void 0:HTe(I[e],n,1)[0]}return WJ(I[e])},t.removeHooks=function(e){I[e]=[]},t.removeAllHooks=function(){I=bY()},t}var CY=SY();function wY(e){this.content=e}wY.prototype={constructor:wY,find:function(e){for(var t=0;t>1}},wY.from=function(e){if(e instanceof wY)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new wY(t)};function TY(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){for(let e=0;i.text[e]==a.text[e];e++)n++;return n}if(i.content.size||a.content.size){let e=TY(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function EY(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=0,t=Math.min(o.text.length,s.text.length);for(;ee&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);at)for(let e=0,a=0;at&&((an)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?kY(t+1,i):kY(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return new e(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;ethis.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;te.type.rank-t.type.rank),n}};jY.none=[];var MY=class extends Error{},NY=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=FY(this.content,t+this.openStart,n);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(PY(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(DY.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};NY.empty=new NY(DY.empty,0,0);function PY(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(PY(a.content,t-i-1,n-i-1)))}function FY(e,t,n,r){let{index:i,offset:a}=e.findIndex(t),o=e.maybeChild(i);if(a==t||o.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let s=FY(o.content,t-a-1,n,o);return s&&e.replaceChild(i,o.copy(s))}function fEe(e,t,n){if(n.openStart>e.depth)throw new MY(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new MY(`Inconsistent open depths`);return IY(e,t,n,0)}function IY(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function BY(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(zY(e.nodeAfter,r),a++));for(let e=a;ei&&RY(e,t,i+1),o=r.depth>i&&RY(n,r,i+1),s=[];return BY(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(LY(a,o),zY(VY(a,HY(e,t,n,r,i+1)),s)):(a&&zY(VY(a,UY(e,t,i+1)),s),BY(t,n,i,s),o&&zY(VY(o,UY(n,r,i+1)),s)),BY(r,null,i,s),new DY(s)}function UY(e,t,n){let r=[];return BY(null,e,n,r),e.depth>n&&zY(VY(RY(e,t,n+1),UY(e,t,n+1)),r),BY(t,null,n,r),new DY(r)}function pEe(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(DY.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var WY=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new KY(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=GY.get(t);if(r)for(let e=0;ee&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),JY(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=DY.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;ee.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=DY.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};qY.prototype.text=void 0;var _Ee=class e extends qY{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):JY(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function JY(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var YY=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new vEe(t,n);if(r.next==null)return e.empty;let i=XY(r);r.next&&r.err(`Unexpected trailing text`);let a=TEe(wEe(i));return EEe(a,r),a}matchType(e){for(let t=0;te.createAndFill()));for(let e=0;e=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n`+e.indexOf(t.next[n].next);return r}).join(` +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ITe(e,t){return NTe(e)||PTe(e,t)||LTe(e,t)||FTe()}function LTe(e,t){if(e){if(typeof e==`string`)return PJ(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?PJ(e,t):void 0}}var FJ=Object.entries,IJ=Object.setPrototypeOf,RTe=Object.isFrozen,zTe=Object.getPrototypeOf,BTe=Object.getOwnPropertyDescriptor,LJ=Object.freeze,RJ=Object.seal,zJ=Object.create,BJ=typeof Reflect<`u`&&Reflect,VJ=BJ.apply,HJ=BJ.construct;LJ||=function(e){return e},RJ||=function(e){return e},VJ||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},HJ||=function(e){return new e(...[...arguments].slice(1))};var UJ=iY(Array.prototype.forEach),VTe=iY(Array.prototype.lastIndexOf),WJ=iY(Array.prototype.pop),GJ=iY(Array.prototype.push),HTe=iY(Array.prototype.splice),KJ=Array.isArray,qJ=iY(String.prototype.toLowerCase),JJ=iY(String.prototype.toString),YJ=iY(String.prototype.match),XJ=iY(String.prototype.replace),ZJ=iY(String.prototype.indexOf),UTe=iY(String.prototype.trim),WTe=iY(Number.prototype.toString),GTe=iY(Boolean.prototype.toString),QJ=typeof BigInt>`u`?null:iY(BigInt.prototype.toString),$J=typeof Symbol>`u`?null:iY(Symbol.prototype.toString),eY=iY(Object.prototype.hasOwnProperty),tY=iY(Object.prototype.toString),nY=iY(RegExp.prototype.test),rY=KTe(TypeError);function iY(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return VJ(e,t,n)}}function KTe(e){return function(){return HJ(e,[...arguments])}}function aY(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:qJ;if(IJ&&IJ(e,null),!KJ(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(RTe(t)||(t[r]=e),i=e)}e[i]=!0}return e}function qTe(e){for(let t=0;t/g),eEe=RJ(/\${[\w\W]*/g),tEe=RJ(/^data-[\-\w.\u00B7-\uFFFF]+$/),nEe=RJ(/^aria-[\-\w]+$/),_Y=RJ(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),rEe=RJ(/^(?:\w+script|data):/i),iEe=RJ(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),aEe=RJ(/^html$/i),oEe=RJ(/^[a-z][.\w]*(-[.\w]+)+$/i),vY=RJ(/<[/\w!]/g),sEe=RJ(/<[/\w]/g),cEe=RJ(/<\/no(script|embed|frames)/i),lEe=RJ(/\/>/i),yY={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},uEe=function(){return typeof window>`u`?null:window},dEe=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},bY=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},xY=function(e,t,n,r){return eY(e,t)&&KJ(e[t])?aY(r.base?oY(r.base):{},e[t],r.transform):n};function SY(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:uEe(),t=e=>SY(e);if(t.version=`3.4.11`,t.removed=[],!e||!e.document||e.document.nodeType!==yY.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=sY(d,`cloneNode`),p=sY(d,`remove`),m=sY(d,`nextSibling`),h=sY(d,`childNodes`),g=sY(d,`parentNode`),_=sY(d,`shadowRoot`),v=sY(d,`attributes`),y=o&&o.prototype?sY(o.prototype,`nodeType`):null,b=o&&o.prototype?sY(o.prototype,`nodeName`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let x,S=``,C,w=!1,T=0,E=function(){if(T>0)throw rY(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},D=function(e){E(),T++;try{return x.createHTML(e)}finally{T--}},O=function(e){E(),T++;try{return x.createScriptURL(e)}finally{T--}},k=function(){return w||=(C=dEe(u,i),!0),C},A=n,j=A.implementation,M=A.createNodeIterator,N=A.createDocumentFragment,P=A.getElementsByTagName,F=r.importNode,I=bY();t.isSupported=typeof FJ==`function`&&typeof g==`function`&&j&&j.createHTMLDocument!==void 0;let L=QTe,R=$Te,z=eEe,B=tEe,ee=nEe,V=rEe,te=iEe,ne=oEe,re=_Y,ie=null,H=aY({},[...cY,...lY,...uY,...dY,...fY]),ae=null,oe=aY({},[...pY,...mY,...hY,...gY]),U=Object.seal(zJ(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),se=null,ce=null,le=Object.seal(zJ(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ue=!0,de=!0,fe=!1,pe=!0,me=!1,he=!0,ge=!1,_e=!1,ve=null,ye=null,be=!1,xe=!1,Se=!1,Ce=!1,we=!0,Te=!1,Ee=`user-content-`,De=!0,Oe=!1,ke={},Ae=null,je=aY({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Me=null,Ne=aY({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Pe=null,Fe=aY({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Ie=`http://www.w3.org/1998/Math/MathML`,Le=`http://www.w3.org/2000/svg`,Re=`http://www.w3.org/1999/xhtml`,ze=Re,Be=!1,Ve=null,He=aY({},[Ie,Le,Re],JJ),Ue=LJ([`mi`,`mo`,`mn`,`ms`,`mtext`]),We=aY({},Ue),Ge=LJ([`annotation-xml`]),Ke=aY({},Ge),qe=aY({},[`title`,`style`,`font`,`a`,`script`]),Je=null,Ye=[`application/xhtml+xml`,`text/html`],Xe=null,Ze=null,Qe=n.createElement(`form`),$e=function(e){return e instanceof RegExp||e instanceof Function},et=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Ze&&Ze===e)return;(!e||typeof e!=`object`)&&(e={}),e=oY(e),Je=Ye.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,Xe=Je===`application/xhtml+xml`?JJ:qJ,ie=xY(e,`ALLOWED_TAGS`,H,{transform:Xe}),ae=xY(e,`ALLOWED_ATTR`,oe,{transform:Xe}),Ve=xY(e,`ALLOWED_NAMESPACES`,He,{transform:JJ}),Pe=xY(e,`ADD_URI_SAFE_ATTR`,Fe,{transform:Xe,base:Fe}),Me=xY(e,`ADD_DATA_URI_TAGS`,Ne,{transform:Xe,base:Ne}),Ae=xY(e,`FORBID_CONTENTS`,je,{transform:Xe}),se=xY(e,`FORBID_TAGS`,oY({}),{transform:Xe}),ce=xY(e,`FORBID_ATTR`,oY({}),{transform:Xe}),ke=eY(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?oY(e.USE_PROFILES):e.USE_PROFILES:!1,ue=e.ALLOW_ARIA_ATTR!==!1,de=e.ALLOW_DATA_ATTR!==!1,fe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,pe=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,me=e.SAFE_FOR_TEMPLATES||!1,he=e.SAFE_FOR_XML!==!1,ge=e.WHOLE_DOCUMENT||!1,xe=e.RETURN_DOM||!1,Se=e.RETURN_DOM_FRAGMENT||!1,Ce=e.RETURN_TRUSTED_TYPE||!1,be=e.FORCE_BODY||!1,we=e.SANITIZE_DOM!==!1,Te=e.SANITIZE_NAMED_PROPS||!1,De=e.KEEP_CONTENT!==!1,Oe=e.IN_PLACE||!1,re=YTe(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:_Y,ze=typeof e.NAMESPACE==`string`?e.NAMESPACE:Re,We=eY(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?oY(e.MATHML_TEXT_INTEGRATION_POINTS):aY({},Ue),Ke=eY(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?oY(e.HTML_INTEGRATION_POINTS):aY({},Ge);let t=eY(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?oY(e.CUSTOM_ELEMENT_HANDLING):zJ(null);if(U=zJ(null),eY(t,`tagNameCheck`)&&$e(t.tagNameCheck)&&(U.tagNameCheck=t.tagNameCheck),eY(t,`attributeNameCheck`)&&$e(t.attributeNameCheck)&&(U.attributeNameCheck=t.attributeNameCheck),eY(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(U.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),RJ(U),me&&(de=!1),Se&&(xe=!0),ke&&(ie=aY({},fY),ae=zJ(null),ke.html===!0&&(aY(ie,cY),aY(ae,pY)),ke.svg===!0&&(aY(ie,lY),aY(ae,mY),aY(ae,gY)),ke.svgFilters===!0&&(aY(ie,uY),aY(ae,mY),aY(ae,gY)),ke.mathMl===!0&&(aY(ie,dY),aY(ae,hY),aY(ae,gY))),le.tagCheck=null,le.attributeCheck=null,eY(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?le.tagCheck=e.ADD_TAGS:KJ(e.ADD_TAGS)&&(ie===H&&(ie=oY(ie)),aY(ie,e.ADD_TAGS,Xe))),eY(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?le.attributeCheck=e.ADD_ATTR:KJ(e.ADD_ATTR)&&(ae===oe&&(ae=oY(ae)),aY(ae,e.ADD_ATTR,Xe))),eY(e,`ADD_URI_SAFE_ATTR`)&&KJ(e.ADD_URI_SAFE_ATTR)&&aY(Pe,e.ADD_URI_SAFE_ATTR,Xe),eY(e,`FORBID_CONTENTS`)&&KJ(e.FORBID_CONTENTS)&&(Ae===je&&(Ae=oY(Ae)),aY(Ae,e.FORBID_CONTENTS,Xe)),eY(e,`ADD_FORBID_CONTENTS`)&&KJ(e.ADD_FORBID_CONTENTS)&&(Ae===je&&(Ae=oY(Ae)),aY(Ae,e.ADD_FORBID_CONTENTS,Xe)),De&&(ie[`#text`]=!0),ge&&aY(ie,[`html`,`head`,`body`]),ie.table&&(aY(ie,[`tbody`]),delete se.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw rY(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw rY(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=x;x=e.TRUSTED_TYPES_POLICY;try{S=D(``)}catch(e){throw x=t,e}}else e.TRUSTED_TYPES_POLICY===null?(x=void 0,S=``):(x===void 0&&(x=k()),x&&typeof S==`string`&&(S=D(``)));LJ&&LJ(e),Ze=e},tt=aY({},[...lY,...uY,...XTe]),nt=aY({},[...dY,...ZTe]),rt=function(e,t,n){return t.namespaceURI===Re?e===`svg`:t.namespaceURI===Ie?e===`svg`&&(n===`annotation-xml`||We[n]):!!tt[e]},it=function(e,t,n){return t.namespaceURI===Re?e===`math`:t.namespaceURI===Le?e===`math`&&Ke[n]:!!nt[e]},at=function(e,t,n){return t.namespaceURI===Le&&!Ke[n]||t.namespaceURI===Ie&&!We[n]?!1:!nt[e]&&(qe[e]||!tt[e])},ot=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:ze,tagName:`template`});let n=qJ(e.tagName),r=qJ(t.tagName);return Ve[e.namespaceURI]?e.namespaceURI===Le?rt(n,t,r):e.namespaceURI===Ie?it(n,t,r):e.namespaceURI===Re?at(n,t,r):!!(Je===`application/xhtml+xml`&&Ve[e.namespaceURI]):!1},st=function(e){GJ(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw rY(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},ct=function(e){let t=h(e);if(t){let e=[];UJ(t,t=>{GJ(e,t)}),UJ(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;if(typeof i==`string`)try{e.removeAttribute(i)}catch{}}},lt=function(e,n){try{GJ(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{GJ(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(xe||Se)try{st(n)}catch{}else try{n.setAttribute(e,``)}catch{}},ut=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;if(!(typeof i!=`string`||ae[Xe(i)]))try{e.removeAttribute(i)}catch{}}},dt=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(y?y(e):e.nodeType)===yY.element&&ut(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},ft=function(e){let t=null,r=null;if(be)e=``+e;else{let t=YJ(e,/^[\r\n\t ]+/);r=t&&t[0]}Je===`application/xhtml+xml`&&ze===Re&&(e=``+e+``);let i=x?D(e):e;if(ze===Re)try{t=new l().parseFromString(i,Je)}catch{}if(!t||!t.documentElement){t=j.createDocument(ze,`template`,null);try{t.documentElement.innerHTML=Be?S:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),ze===Re?P.call(t,ge?`html`:`body`)[0]:ge?t.documentElement:a},pt=function(e){return M.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},mt=function(e){return e=XJ(e,L,` `),e=XJ(e,R,` `),e=XJ(e,z,` `),e},ht=function(e){e.normalize();let t=M.call(e.ownerDocument||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),n=t.nextNode();for(;n;)n.data=mt(n.data),n=t.nextNode();let r=e.querySelectorAll?.call(e,`template`);r&&UJ(r,e=>{_t(e.content)&&ht(e.content)})},gt=function(e){let t=b?b(e):null;return typeof t!=`string`||Xe(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},_t=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===yY.documentFragment}catch{return!1}},vt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function yt(e,n,r){e.length!==0&&UJ(e,e=>{e.call(t,n,r,Ze)})}let bt=function(e,t){return!!(he&&e.hasChildNodes()&&!vt(e.firstElementChild)&&nY(vY,e.textContent)&&nY(vY,e.innerHTML)||he&&e.namespaceURI===Re&&t===`style`&&vt(e.firstElementChild)||e.nodeType===yY.processingInstruction||he&&e.nodeType===yY.comment&&nY(sEe,e.data))},xt=function(e,t){if(!se[t]&&wt(t)&&(U.tagNameCheck instanceof RegExp&&nY(U.tagNameCheck,t)||U.tagNameCheck instanceof Function&&U.tagNameCheck(t)))return!1;if(De&&!Ae[t]){let t=g(e),n=h(e);if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=Oe?n[i]:f(n[i],!0);t.insertBefore(r,m(e))}}}return st(e),!0},W=function(e){if(yt(I.beforeSanitizeElements,e,null),gt(e))return st(e),!0;let n=Xe(b?b(e):e.nodeName);if(yt(I.uponSanitizeElement,e,{tagName:n,allowedTags:ie}),bt(e,n))return st(e),!0;if(se[n]||!(le.tagCheck instanceof Function&&le.tagCheck(n))&&!ie[n])return xt(e,n);if((y?y(e):e.nodeType)===yY.element&&!ot(e)||(n===`noscript`||n===`noembed`||n===`noframes`)&&nY(cEe,e.innerHTML))return st(e),!0;if(me&&e.nodeType===yY.text){let n=mt(e.textContent);e.textContent!==n&&(GJ(t.removed,{element:e.cloneNode()}),e.textContent=n)}return yt(I.afterSanitizeElements,e,null),!1},St=function(e,t,r){if(ce[t]||we&&(t===`id`||t===`name`)&&(r in n||r in Qe))return!1;let i=ae[t]||le.attributeCheck instanceof Function&&le.attributeCheck(t,e);if(!(de&&nY(B,t))&&!(ue&&nY(ee,t))){if(!i){if(!(wt(e)&&(U.tagNameCheck instanceof RegExp&&nY(U.tagNameCheck,e)||U.tagNameCheck instanceof Function&&U.tagNameCheck(e))&&(U.attributeNameCheck instanceof RegExp&&nY(U.attributeNameCheck,t)||U.attributeNameCheck instanceof Function&&U.attributeNameCheck(t,e))||t===`is`&&U.allowCustomizedBuiltInElements&&(U.tagNameCheck instanceof RegExp&&nY(U.tagNameCheck,r)||U.tagNameCheck instanceof Function&&U.tagNameCheck(r))))return!1}else if(!Pe[t]&&!nY(re,XJ(r,te,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&ZJ(r,`data:`)===0&&Me[e])&&!(fe&&!nY(V,XJ(r,te,``)))&&r)return!1}return!0},Ct=aY({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),wt=function(e){return!Ct[qJ(e)]&&nY(ne,e)},Tt=function(e,t,n,r){if(x&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return D(r);case`TrustedScriptURL`:return O(r)}return r},Et=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),gt(e)?st(e):WJ(t.removed)}catch{lt(n,e)}},Dt=function(e){yt(I.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||gt(e))return;let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:ae,forceKeepAttr:void 0},r=t.length,i=Xe(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=Xe(o),u=c,d=o===`value`?u:UTe(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,yt(I.uponSanitizeAttribute,e,n),d=n.attrValue,Te&&(l===`id`||l===`name`)&&ZJ(d,Ee)!==0&&(lt(o,e),d=Ee+d),he&&nY(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){lt(o,e);continue}if(l===`attributename`&&YJ(d,`href`)){lt(o,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr){lt(o,e);continue}if(!pe&&nY(lEe,d)){lt(o,e);continue}if(me&&(d=mt(d)),!St(i,l,d)){lt(o,e);continue}d=Tt(i,l,s,d),d!==u&&Et(e,o,s,d)}}yt(I.afterSanitizeAttributes,e,null)},Ot=function(e){let t=null,n=pt(e);for(yt(I.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(yt(I.uponSanitizeShadowNode,t,null),W(t),Dt(t),_t(t.content)&&Ot(t.content),(y?y(t):t.nodeType)===yY.element){let e=_(t);_t(e)&&(kt(e),Ot(e))}yt(I.afterSanitizeShadowDOM,e,null)},kt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Ot(e.shadow);continue}let n=e.node,r=(y?y(n):n.nodeType)===yY.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&Xe(e)===`template`){let e=n.content;_t(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);_t(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Be=!e,Be&&(e=``),typeof e!=`string`&&!vt(e)&&(e=JTe(e),typeof e!=`string`))throw rY(`dirty is not a string, aborting`);if(!t.isSupported)return e;_e?(ie=ve,ae=ye):et(n),(I.uponSanitizeElement.length>0||I.uponSanitizeAttribute.length>0)&&(ie=oY(ie)),I.uponSanitizeAttribute.length>0&&(ae=oY(ae)),t.removed=[];let c=Oe&&typeof e!=`string`&&vt(e);if(c){let t=b?b(e):e.nodeName;if(typeof t==`string`){let e=Xe(t);if(!ie[e]||se[e])throw rY(`root node is forbidden and cannot be sanitized in-place`)}if(gt(e))throw rY(`root node is clobbered and cannot be sanitized in-place`);try{kt(e)}catch(t){throw ct(e),t}}else if(vt(e))i=ft(``),a=i.ownerDocument.importNode(e,!0),a.nodeType===yY.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),kt(a);else{if(!xe&&!me&&!ge&&e.indexOf(`<`)===-1)return x&&Ce?D(e):e;if(i=ft(e),!i)return xe?null:Ce?S:``}i&&be&&st(i.firstChild);let l=pt(c?e:i);try{for(;o=l.nextNode();)W(o),Dt(o),_t(o.content)&&Ot(o.content)}catch(t){throw c&&ct(e),t}if(c)return UJ(t.removed,e=>{e.element&&dt(e.element)}),me&&ht(e),e;if(xe){if(me&&ht(i),Se)for(s=N.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(ae.shadowroot||ae.shadowrootmode)&&(s=F.call(r,s,!0)),s}let u=ge?i.outerHTML:i.innerHTML;return ge&&ie[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&nY(aEe,i.ownerDocument.doctype.name)&&(u=` +`+u),me&&(u=mt(u)),x&&Ce?D(u):u},t.setConfig=function(){et(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),_e=!0,ve=ie,ye=ae},t.clearConfig=function(){Ze=null,_e=!1,ve=null,ye=null,x=C,S=``},t.isValidAttribute=function(e,t,n){return Ze||et({}),St(Xe(e),Xe(t),n)},t.addHook=function(e,t){typeof t==`function`&&eY(I,e)&&GJ(I[e],t)},t.removeHook=function(e,t){if(eY(I,e)){if(t!==void 0){let n=VTe(I[e],t);return n===-1?void 0:HTe(I[e],n,1)[0]}return WJ(I[e])}},t.removeHooks=function(e){eY(I,e)&&(I[e]=[])},t.removeAllHooks=function(){I=bY()},t}var CY=SY();function wY(e){this.content=e}wY.prototype={constructor:wY,find:function(e){for(var t=0;t>1}},wY.from=function(e){if(e instanceof wY)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new wY(t)};function TY(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){for(let e=0;i.text[e]==a.text[e];e++)n++;return n}if(i.content.size||a.content.size){let e=TY(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function EY(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=0,t=Math.min(o.text.length,s.text.length);for(;ee&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);at)for(let e=0,a=0;at&&((an)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?kY(t+1,i):kY(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return new e(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;ethis.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;te.type.rank-t.type.rank),n}};jY.none=[];var MY=class extends Error{},NY=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=FY(this.content,t+this.openStart,n);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(PY(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(DY.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};NY.empty=new NY(DY.empty,0,0);function PY(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(PY(a.content,t-i-1,n-i-1)))}function FY(e,t,n,r){let{index:i,offset:a}=e.findIndex(t),o=e.maybeChild(i);if(a==t||o.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let s=FY(o.content,t-a-1,n,o);return s&&e.replaceChild(i,o.copy(s))}function fEe(e,t,n){if(n.openStart>e.depth)throw new MY(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new MY(`Inconsistent open depths`);return IY(e,t,n,0)}function IY(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function BY(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(zY(e.nodeAfter,r),a++));for(let e=a;ei&&RY(e,t,i+1),o=r.depth>i&&RY(n,r,i+1),s=[];return BY(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(LY(a,o),zY(VY(a,HY(e,t,n,r,i+1)),s)):(a&&zY(VY(a,UY(e,t,i+1)),s),BY(t,n,i,s),o&&zY(VY(o,UY(n,r,i+1)),s)),BY(r,null,i,s),new DY(s)}function UY(e,t,n){let r=[];return BY(null,e,n,r),e.depth>n&&zY(VY(RY(e,t,n+1),UY(e,t,n+1)),r),BY(t,null,n,r),new DY(r)}function pEe(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(DY.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var WY=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new KY(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=GY.get(t);if(r)for(let e=0;ee&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),JY(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=DY.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;ee.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=DY.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};qY.prototype.text=void 0;var _Ee=class e extends qY{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):JY(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function JY(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var YY=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new vEe(t,n);if(r.next==null)return e.empty;let i=XY(r);r.next&&r.err(`Unexpected trailing text`);let a=TEe(wEe(i));return EEe(a,r),a}matchType(e){for(let t=0;te.createAndFill()));for(let e=0;e=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n`+e.indexOf(t.next[n].next);return r}).join(` `)}};YY.empty=new YY(!0);var vEe=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function XY(e){let t=[];do t.push(yEe(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function yEe(e){let t=[];do t.push(bEe(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function bEe(e){let t=CEe(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=xEe(e,t);else break;return t}function ZY(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function xEe(e,t){let n=ZY(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:ZY(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function SEe(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function CEe(e){if(e.eat(`(`)){let t=XY(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=SEe(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function wEe(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new YY(r.indexOf(e.length-1)>-1);for(let e=0;e-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:tX(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new qY(this,this.computeAttrs(e),DY.from(t),jY.setFrom(n))}createChecked(e=null,t,n){return t=DY.from(t),this.checkContent(t),new qY(this,this.computeAttrs(e),t,jY.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=DY.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(DY.empty,!0);return i?new qY(this,e,t.append(i),jY.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;tr[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function DEe(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var OEe=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?DEe(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},aX=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=rX(e,r.attrs),this.excluded=null;let i=eX(this.attrs);this.instance=i?new jY(this,i):null}create(e=null){return!e&&this.instance?this.instance:new jY(this,tX(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t-1}},oX=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=wY.from(e.nodes),t.marks=wY.from(e.marks||{}),this.nodes=iX.compile(this.spec.nodes,this),this.marks=aX.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=YY.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?sX(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:sX(this,n.split(` `))}this.nodeFromJSON=e=>qY.fromJSON(this,e),this.markFromJSON=e=>jY.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof iX))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new _Ee(n,n.defaultAttrs,e,jY.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function sX(e,t){let n=[];for(let r=0;r-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function kEe(e){return e.tag!=null}function AEe(e){return e.style!=null}var cX=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(kEe(e))this.tags.push(e);else if(AEe(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new gX(this,t,!1);return n.addAll(e,jY.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new gX(this,t,!0);return n.addAll(e,jY.none,t.from,t.to),NY.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;re.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r{n(e=_X(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=_X(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},lX={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},jEe={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},uX={ol:!0,ul:!0},dX=1,fX=2,pX=4;function mX(e,t,n){return t==null?e&&e.whitespace==`pre`?3:n&-5:(t?dX:0)|(t===`full`?fX:0)}var hX=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=jY.none,this.match=i||(a&pX?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(DY.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&dX)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=DY.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(DY.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!lX.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},gX=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=mX(null,t.preserveWhitespace,0)|(n?pX:0);i=r?new hX(r.type,r.attrs,jY.none,!0,t.topMatch||r.type.contentMatch,a):n?new hX(null,null,jY.none,!0,null,a):new hX(e.schema.topNodeType,null,jY.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&fX?`full`:this.localPreserveWS||(r.options&dX)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,` `);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n!n.clearMark(e)):t.concat(this.parser.schema.marks[n.mark].create(n.attrs)),n.consuming===!1)e=n;else break}}return t}addElementByRule(e,t,n,r){let i,a;if(t.node)if(a=this.parser.schema.nodes[t.node],a.isLeaf)this.insertNode(a.create(t.attrs),n,e.nodeName==`BR`)||this.leafFallback(e,n);else{let e=this.enter(a,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let o=this.top;if(a&&a.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;typeof t.contentElement==`string`?r=e.querySelector(t.contentElement):typeof t.contentElement==`function`?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(o)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let a=n?e.childNodes[n]:e.firstChild,o=r==null?null:e.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(a,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let t=this.open,a=0;t>=0;t--){let o=this.nodes[t],s=o.findWrapping(e);if(s&&(!r||r.length>s.length+a)&&(r=s,i=o,!s.length))break;if(o.solid){if(n)break;a+=2}}if(!r)return null;this.sync(i);for(let e=0;e(a.type?a.type.allowsMarkType(t.type):vX(t.type,e))?(s=t.addToSet(s),!1):!0),this.nodes.push(new hX(e,t,s,r,null,o)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--)if(this.nodes[t]==e)return this.open=t,!0;else this.localPreserveWS&&(this.nodes[t].options|=dX);return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split(`/`),n=this.options.context,r=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),i=-(n?n.depth+1:0)+ +!r,a=(e,o)=>{for(;e>=0;e--){let s=t[e];if(s==``){if(e==t.length-1||e==0)continue;for(;o>=i;o--)if(a(e-1,o))return!0;return!1}else{let e=o>0||o==0&&r?this.nodes[o].type:n&&o>=i?n.node(o-i).type:null;if(!e||e.name!=s&&!e.isInGroup(s))return!1;o--}}return!0};return a(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let e in this.parser.schema.nodes){let t=this.parser.schema.nodes[e];if(t.isTextblock&&t.defaultAttrs)return t}}};function MEe(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&uX.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function NEe(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function _X(e){let t={};for(let n in e)t[n]=e[n];return t}function vX(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=e=>{a.push(e);for(let n=0;n{if(i.length||e.marks.length){let n=0,a=0;for(;n=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&CX(xX(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return CX(e,t,n,r)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new e(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(e){let t=bX(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return bX(e.marks)}};function bX(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function xX(e){return e.document||window.document}var SX=new WeakMap;function PEe(e){let t=SX.get(e);return t===void 0&&SX.set(e,t=FEe(e)),t}function FEe(e){let t=null;function n(e){if(e&&typeof e==`object`)if(Array.isArray(e))if(typeof e[0]==`string`)t||=[],t.push(e);else for(let t=0;t-1)throw RangeError(`Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.`);let o=i.indexOf(` `);o>0&&(n=i.slice(0,o),i=i.slice(o+1));let s,c=n?e.createElementNS(n,i):e.createElement(i),l=t[1],u=1;if(l&&typeof l==`object`&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let e in l)if(l[e]!=null){let t=e.indexOf(` `);t>0?c.setAttributeNS(e.slice(0,t),e.slice(t+1),l[e]):e==`style`&&c.style?c.style.cssText=l[e]:c.setAttribute(e,l[e])}}for(let i=u;iu)throw RangeError(`Content hole must be the only child of its parent node`);return{dom:c,contentDOM:c}}else{let{dom:t,contentDOM:i}=CX(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var wX=65535,TX=2**16;function IEe(e,t){return e+t*TX}function EX(e){return e&wX}function LEe(e){return(e-(e&wX))/TX}var REe=1,zEe=2,DX=4,OX=8,kX=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&OX)>0}get deletedBefore(){return(this.delInfo&5)>0}get deletedAfter(){return(this.delInfo&6)>0}get deletedAcross(){return(this.delInfo&DX)>0}},AX=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=EX(e);if(!this.inverted)for(let e=0;ee)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:IEe(o/3,e-s),f=e==s?zEe:e==u?REe:DX;return(t<0?e!=s:e!=u)&&(f|=OX),new kX(a,f,d)}r+=l-c}return n?e+r:new kX(e+r,0,null)}touches(e,t){let n=0,r=EX(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;te)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r=0;t--){let r=e.getMirror(t);this.appendMap(e._maps[t].invert(),r!=null&&r>t?n-r-1:void 0)}}invert(){let t=new e;return t.appendMappingInverted(this),t}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;nn&&t!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return PX.fromReplace(e,this.from,this.to,i)}invert(){return new LX(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};NX.jsonID(`addMark`,IX);var LX=class e extends NX{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new NY(FX(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return PX.fromReplace(e,this.from,this.to,n)}invert(){return new IX(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};NX.jsonID(`removeMark`,LX);var RX=class e extends NX{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return PX.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return PX.fromReplace(e,this.pos,this.pos+1,new NY(DY.from(n),0,+!t.isLeaf))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;rr.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,NY.fromJSON(t,n.slice),n.insert,!!n.structure)}};NX.jsonID(`replaceAround`,VX);function HX(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function BEe(e,t,n,r){let i=[],a=[],o,s;e.doc.nodesBetween(t,n,(e,c,l)=>{if(!e.isInline)return;let u=e.marks;if(!r.isInSet(u)&&l.type.allowsMarkType(r.type)){let l=Math.max(c,t),d=Math.min(c+e.nodeSize,n),f=r.addToSet(u);for(let e=0;ee.step(t)),a.forEach(t=>e.step(t))}function VEe(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(e,o)=>{if(!e.isInline)return;a++;let s=null;if(r instanceof aX){let t=e.marks,n;for(;n=r.isInSet(t);)(s||=[]).push(n),t=n.removeFromSet(t)}else r?r.isInSet(e.marks)&&(s=[r]):s=e.marks;if(s&&s.length){let r=Math.min(o+e.nodeSize,n);for(let e=0;ee.step(new LX(t.from,t.to,t.style)))}function UX(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],s=t+1;for(let t=0;t=0;t--)e.step(o[t])}function HEe(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function WX(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth,r=0,i=0;;--n){let a=e.$from.node(n),o=e.$from.index(n)+r,s=e.$to.indexAfter(n)-i;if(nn;e--)t||r.index(e)>0?(t=!0,u=DY.from(r.node(e).copy(u)),d++):c--;let f=DY.empty,p=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)=0;e--){if(r.size){let t=n[e].type.contentMatch.matchFragment(r);if(!t||!t.validEnd)throw RangeError(`Wrapper type given to Transform.wrap does not form valid content of its parent wrapper`)}r=DY.from(n[e].type.create(n[e].attrs,r))}let i=t.start,a=t.end;e.step(new VX(i,a,i,a,new NY(r,0,0),n.length,!0))}function qEe(e,t,n,r,i){if(!r.isTextblock)throw RangeError(`Type given to setBlockType should be a textblock`);let a=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let o=typeof i==`function`?i(t):i;if(t.isTextblock&&!t.hasMarkup(r,o)&&JEe(e.doc,e.mapping.slice(a).map(n),r)){let i=null;if(r.schema.linebreakReplacement){let e=r.whitespace==`pre`,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?i=!1:!e&&t&&(i=!0)}i===!1&&JX(e,t,n,a),UX(e,e.mapping.slice(a).map(n,1),r,void 0,i===null);let s=e.mapping.slice(a),c=s.map(n,1),l=s.map(n+t.nodeSize,1);return e.step(new VX(c,l,c+1,l-1,new NY(DY.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&qX(e,t,n,a),!1}})}function qX(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,s=/\r?\n|\r/g;for(;o=s.exec(i.text);){let i=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function JX(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+a);e.replaceWith(i,i+1,t.type.schema.text(` diff --git a/static/img/sponsors/northpole-3d-printing.jpg b/static/img/sponsors/northpole-3d-printing.jpg deleted file mode 100644 index 8a7c6276d8b56f9d468574956a22859fd8598932..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133973 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

9P_4D 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 diff --git a/static/index.html b/static/index.html index 292eaef9c..6be8263ee 100644 --- a/static/index.html +++ b/static/index.html @@ -26,7 +26,7 @@ - +