| 12 |
- import{i as e}from"./chunk-aKtaBQYM.js";import{C as t,D as n,a as r,w as i,x as a}from"./client-BdOyoZJz.js";import{n as o}from"./QueryClientProvider-Clbyr4Jg.js";import{t as s}from"./useQuery-CCy0EwsM.js";import{t as c}from"./useMutation-qh3Iyscy.js";import{t as l}from"./createLucideIcon-Yo2YoYjm.js";import{a as u}from"./info-DcT0QU8O.js";import{n as d}from"./ToastContext-VFOrCCoA.js";import{t as f}from"./cloud-off-DmnG-KIw.js";import{t as p}from"./cog-pa-nvQzt.js";import{t as m}from"./loader-circle-CB4leTZa.js";import{t as h}from"./search-BpAJdxRw.js";import{t as g}from"./x-Dctff5l9.js";import{o as _}from"./date-G9KUauqz.js";import{B as v,Gt as y,H as b,Kn as x,Kt as S,Q as C,U as w,W as T,cn as E,t as ee,tt as te,w as D}from"./index-BoVbGTav.js";import{a as O,i as ne,n as k,t as A}from"./slicerPrinterMatch-g7Dr6p0c.js";var re=l(`grid-2x2`,[[`path`,{d:`M12 3v18`,key:`108xh3`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}]]),j=e(n(),1),M=1024;function ie(){let[e,t]=(0,j.useState)(()=>typeof window<`u`?window.innerWidth>=M:!1);return(0,j.useEffect)(()=>{let e=window.matchMedia(`(min-width: ${M}px)`),n=e=>{t(e.matches)};return t(e.matches),e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var N=t();function ae({plates:e,onSelect:t,onClose:n}){let{t:r}=i();return(0,N.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:n,children:(0,N.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,N.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,N.jsxs)(`div`,{className:`min-w-0`,children:[(0,N.jsx)(`h3`,{className:`text-white font-medium`,children:r(`archives.platePicker.title`)}),(0,N.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`archives.platePicker.hint`)})]}),(0,N.jsx)(`button`,{onClick:n,className:`flex-shrink-0 text-bambu-gray hover:text-white transition-colors`,"aria-label":r(`common.close`,`Close`),children:(0,N.jsx)(g,{className:`w-5 h-5`})})]}),(0,N.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:e.map(e=>(0,N.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,N.jsx)(`img`,{src:a(e.thumbnail_url),alt:`Plate ${e.index}`,className:`w-12 h-12 rounded object-cover bg-bambu-dark-tertiary flex-shrink-0`}):(0,N.jsx)(`div`,{className:`w-12 h-12 rounded bg-bambu-dark-tertiary flex items-center justify-center flex-shrink-0`,children:(0,N.jsx)(E,{className:`w-5 h-5 text-bambu-gray`})}),(0,N.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,N.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,N.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?``:` • ${_(e.print_time_seconds)}`]})]})]},e.index))})})]})})}var P=[`local`,`orca_cloud`,`cloud`,`standard`],F={local:1.75,orca_cloud:1.5,cloud:1,standard:.5};function oe(e,t){for(let n of P){let r=e[n][t];if(r.length>0)return{source:r[0].source,id:r[0].id}}return null}function I(e,t,n){return t?e[t.source][n].find(e=>e.id===t.id)??null:null}function se(e,t,n){if(!n)return null;for(let r of P){let i=e[r][t].find(e=>e.name===n);if(i)return{source:i.source,id:i.id}}return null}function ce(e,t,n,r){let i=se(e,`process`,r);if(i){let r=I(e,i,`process`);if(r&&O(r,`process`,t,n)!==`mismatch`)return i}for(let r of[`match`,`unknown`])for(let i of P){let a=de(e[i].process.filter(e=>O(e,`process`,t,n)===r));if(a)return{source:a.source,id:a.id}}return oe(e,`process`)}var le=.2,ue=/^\s*([\d.]+)\s*mm\b/i;function de(e){let t=null,n=1/0,r=-1/0;for(let i of e){let e=ue.exec(i.name),a=e?Number.parseFloat(e[1]):NaN,o=Number.isFinite(a)&&a>0,s=o?Math.abs(a-le):1/0;(t==null||s<n||s===n&&o&&a>r)&&(t=i,n=s,r=o?a:-1/0)}return t}function fe(e,t){let n=t.trim().toUpperCase(),r=(e.filament_type??``).trim().toUpperCase();return!!n&&!!r&&n!==r}function pe(e,t,n,r){let i=t.type.trim().toUpperCase(),a=C(t.color),o=null,s=null,c=null,l=null;for(let u of P)for(let d of e[u].filament){let e=0,f=(d.filament_type??``).trim().toUpperCase(),p=C(d.filament_colour??``);i&&f&&i===f&&(e+=10),a&&p&&(p===a?e+=5:v(d.filament_colour??``,t.color)&&(e+=2)),e+=F[u];let m={source:d.source,id:d.id};fe(d,i)?O(d,`filament`,n,r)===`mismatch`?(l==null||e>l.score)&&(l={ref:m,score:e}):(c==null||e>c.score)&&(c={ref:m,score:e}):O(d,`filament`,n,r)===`mismatch`?(s==null||e>s.score)&&(s={ref:m,score:e}):(o==null||e>o.score)&&(o={ref:m,score:e})}return o==null?s==null?c==null?l==null?oe(e,`filament`):l.ref:c.ref:s.ref:o.ref}function me(e){return`${e.source}:${e.id}`}function he(e,t){if(!e)return null;let n=e.replace(/^#\s*/,``).trim().match(/^Bambu Lab\s+(.+?)(?:\s+[\d.]+\s*nozzle)?$/i);if(!n)return null;let r=n[1].trim(),i=`bambu lab ${r}`.toLowerCase();for(let[e,n]of Object.entries(t))if(e.toLowerCase()===i)return n;return r}function ge(e,t){return!e||!t?!1:ne(e.trim(),t.trim())}function _e(e,t){return t?e.filter(e=>ge(e.model,t)):e}function ve(e,t,n){let r=he(e.name,n);return r===null?!0:t.some(e=>ge(e,r))}function ye(e,t,n){let r=null;for(let i of P)for(let a of e[i].printer){let e=he(a.name,n);if(e===null||!t.some(t=>ge(t,e)))continue;let o={source:i,id:a.id};if(/\b0\.4\s*nozzle\b/i.test(a.name))return o;r??=o}return r}function be(e){let t=e.replace(/^#\s*/,``),n=t.lastIndexOf(`@`);return n>0&&(t=t.slice(0,n)),t.replace(/\s+/g,` `).trim().toLowerCase()}function xe(e){let t=e.replace(/^#\s*/,``),n=t.lastIndexOf(`@`);return n>0&&(t=t.slice(0,n)),t.replace(/\s+/g,` `).trim()}function Se(e){return!!e.tray_type}function Ce(e){let t=e.saved_preset;return t&&te(t.preset_id,e.tray_info_idx,t.tray_info_idx)?t:null}function we(e){if(e.preset_source===`local`){let t=e.preset_id.match(/^local_(\d+)$/);return t?{source:`local`,id:t[1]}:null}return(e.preset_source===`cloud`||e.preset_source===`orca_cloud`)&&e.preset_id?{source:e.preset_source,id:e.preset_id}:null}function Te(e,t){let n=[];t?.preset_name&&n.push(t.preset_name);let r=(e.tray_sub_brands??``).trim();r?(/^GF/i.test(e.tray_info_idx??``)&&!/^bambu\b/i.test(r)&&n.push(`Bambu ${r}`),n.push(r)):e.tray_type&&n.push(`Generic ${e.tray_type}`);let i=new Set;return n.filter(e=>{let t=be(e);return!t||i.has(t)?!1:(i.add(t),!0)})}function Ee(e){let t=new Map;for(let n of P)for(let r of e[n].filament){let e=be(r.name),i=t.get(e);i?i.push({source:n,preset:r}):t.set(e,[{source:n,preset:r}])}return t}function De(e,t,n,r,i){if(!Se(e))return null;let a=Ce(e),o=e=>O(e,`filament`,r,i);if(a){let e=we(a),n=e?t[e.source].filament.find(t=>t.id===e.id):void 0;if(e&&n&&o(n)!==`mismatch`)return{ref:e,preset:n}}let s=a?we(a)?.source:void 0;for(let t of Te(e,a)){let r=n.get(be(t))??[],i=s?[...r.filter(e=>e.source===s),...r.filter(e=>e.source!==s)]:r,a=null;for(let{source:t,preset:n}of i){if(fe(n,e.tray_type??``))continue;let r=o(n);if(r===`match`)return{ref:{source:t,id:n.id},preset:n};r===`unknown`&&!a&&(a={ref:{source:t,id:n.id},preset:n})}if(a)return a}return null}function Oe(e){let t=[];for(let n of e){for(let e of n.ams)for(let n of e.trays)Se(n)&&t.push(n);for(let e of n.external)Se(e)&&t.push(e)}return t}function ke(e,t,n,r,i){let a=new Set;for(let o of Oe(e)){let e=De(o,t,n,r,i);e&&a.add(me(e.ref))}return a}function Ae(e){let t=(e.tray_color??``).replace(/^#/,``);return/^[0-9a-fA-F]{6}/.test(t)?`#${t.slice(0,6).toUpperCase()}`:null}function je({printers:e,data:t,index:n,selectedPrinterName:r,compatIndex:a,slotLabel:o,onPick:s,onClose:c}){let{t:l}=i();return(0,j.useEffect)(()=>{let e=e=>{e.key===`Escape`&&c()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c]),(0,N.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center bg-black/60 p-4`,onClick:c,children:(0,N.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`slice-spool-picker-title`,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,N.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,N.jsxs)(`div`,{className:`min-w-0`,children:[(0,N.jsx)(`h3`,{id:`slice-spool-picker-title`,className:`text-white font-medium`,children:l(`slice.loadedSpools.title`,`Loaded spools`)}),(0,N.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1 truncate`,children:o})]}),(0,N.jsx)(`button`,{type:`button`,onClick:c,className:`flex-shrink-0 text-bambu-gray hover:text-white transition-colors`,"aria-label":l(`common.close`),children:(0,N.jsx)(g,{className:`w-5 h-5`})})]}),(0,N.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-5`,children:e.length===0?(0,N.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:l(`slice.loadedSpools.none`,`No printer of this model is online.`)}):e.map(e=>(0,N.jsx)(Me,{printer:e,matchFor:e=>De(e,t,n,r,a),onPick:s},e.id))})]})})}function Me({printer:e,matchFor:t,onPick:n}){let{t:r}=i(),a=e.ams.filter(e=>!e.is_ams_ht),o=e.ams.filter(e=>e.is_ams_ht),s=e.ams.length>0||e.external.length>0,c=(e,r)=>(0,N.jsx)(Ne,{tray:e,label:r,match:t(e),onPick:n},`${e.ams_id}-${e.tray_id}`);return(0,N.jsxs)(`section`,{children:[(0,N.jsxs)(`h4`,{className:`text-sm text-white font-medium mb-2`,children:[e.name,e.model&&(0,N.jsx)(`span`,{className:`ml-2 text-xs text-bambu-gray font-normal`,children:e.model})]}),!s&&(0,N.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`slice.loadedSpools.nothingLoaded`,`No AMS and no external spool.`)}),(0,N.jsxs)(`div`,{className:`space-y-3`,children:[a.map(e=>(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`div`,{className:`text-xs text-bambu-gray mb-1`,children:w(e.id,e.trays.length)}),(0,N.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-2`,children:e.trays.map(t=>c(t,b(e.id,t.tray_id,!1,!1)))})]},e.id)),o.length>0&&(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`div`,{className:`text-xs text-bambu-gray mb-1`,children:`AMS-HT`}),(0,N.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-2`,children:o.flatMap(e=>e.trays.map(t=>c(t,b(e.id,t.tray_id,!0,!1))))})]}),e.external.length>0&&(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`div`,{className:`text-xs text-bambu-gray mb-1`,children:r(`printers.external`)}),(0,N.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-2`,children:e.external.map(t=>c(t,e.external_holders>1?t.tray_id===0?r(`printers.extL`):r(`printers.extR`):r(`printers.ext`)))})]})]})]})}function Ne({tray:e,label:t,match:n,onPick:r}){let{t:a}=i(),o=T(e),s=Ae(e),c=(0,j.useMemo)(()=>{if(n)return xe(n.preset.name);let t=Ce(e);return t?.preset_name?xe(t.preset_name):e.tray_sub_brands||null},[n,e]);if(o!==null)return(0,N.jsxs)(`div`,{className:`rounded-md border border-dashed border-bambu-dark-tertiary px-2 py-2 text-xs text-bambu-gray/70`,children:[(0,N.jsx)(`div`,{className:`font-medium text-bambu-gray`,children:t}),(0,N.jsx)(`div`,{children:o===`reset`?a(`slice.loadedSpools.unknownSpool`,`Unidentified spool`):a(`slice.loadedSpools.empty`,`Empty`)})]});let l=n===null;return(0,N.jsxs)(`button`,{type:`button`,disabled:l,onClick:()=>n&&r(n,s),title:l?a(`slice.loadedSpools.noProfile`,`No profile for the selected printer`):c??void 0,className:`text-left rounded-md border border-bambu-dark-tertiary bg-bambu-dark px-2 py-2 text-xs transition-colors enabled:hover:border-bambu-green disabled:opacity-50 disabled:cursor-not-allowed`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,N.jsx)(D,{rgba:e.tray_color,className:`w-3.5 h-3.5 shrink-0`,effectSize:`table`}),(0,N.jsx)(`span`,{className:`font-medium text-white`,children:t}),(0,N.jsx)(`span`,{className:`ml-auto text-bambu-gray`,children:e.tray_type})]}),(0,N.jsx)(`div`,{className:`mt-1 truncate text-bambu-gray`,title:c??void 0,children:c??`—`}),l&&(0,N.jsx)(`div`,{className:`mt-0.5 truncate text-[11px] text-amber-600 dark:text-amber-400`,children:a(`slice.loadedSpools.noProfileShort`,`No profile for this printer`)})]})}var Pe=e=>typeof e==`object`&&!!e&&`enumKey`in e,L=`enum:`;function R(e){if(typeof e==`number`)return e;if(typeof e==`boolean`)return+!!e;if(typeof e!=`string`)return;let t=Number.parseFloat(e);return Number.isFinite(t)?t:void 0}function z(e){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e!==0;if(e===`1`||e===`true`)return!0;if(e===`0`||e===`false`)return!1}function Fe(e,t){return{get:n=>{let r=e[n];if((r===void 0||r===``)&&(r=t[n]?.default),Array.isArray(r)&&(r=r[0]),typeof r==`boolean`||typeof r==`number`||typeof r==`string`)return r},has:e=>e in t}}var Ie=[`->`,`||`,`&&`,`==`,`!=`,`<=`,`>=`,`(`,`)`,`,`,`<`,`>`,`!`];function B(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===` `||r===` `||r===`
- `){n+=1;continue}if(r===`"`){let r=e.indexOf(`"`,n+1);if(r<0)return;t.push({kind:`str`,value:e.slice(n+1,r)}),n=r+1;continue}let i=/^\d+(\.\d*)?f?/.exec(e.slice(n));if(i&&/^[\d]/.test(r)){t.push({kind:`num`,value:Number.parseFloat(i[0])}),n+=i[0].length;continue}let a=Ie.find(t=>e.startsWith(t,n));if(a){t.push({kind:`op`,value:a}),n+=a.length;continue}let o=/^[A-Za-z_][A-Za-z0-9_]*(::[A-Za-z_][A-Za-z0-9_]*)*/.exec(e.slice(n));if(o){t.push({kind:`id`,value:o[0]}),n+=o[0].length;continue}return}return t}var Le=new Set([`opt_bool`,`opt_int`,`opt_float`,`opt_float_nullable`,`opt_int_nullable`,`opt_bool_nullable`,`opt_enum`,`opt_string`,`option`,`has`]),V=class e{tokens=[];pos=0;cfg;locals;schema;resolving;memo;constructor(e,t,n,r,i){this.cfg=e,this.locals=t,this.schema=n,this.resolving=r,this.memo=i}evaluate(e){let t=B(e);if(!t||t.length===0)return;this.tokens=t,this.pos=0;let n=this.parseOr();if(this.pos===this.tokens.length)return n}peek(){return this.tokens[this.pos]}eatOp(e){let t=this.peek();return t&&t.kind===`op`&&t.value===e?(this.pos+=1,!0):!1}parseOr(){let e=this.parseAnd();for(;this.eatOp(`||`);){let t=this.parseAnd(),n=z(e),r=z(t);e=n===!0||r===!0?!0:n===void 0||r===void 0?void 0:n||r}return e}parseAnd(){let e=this.parseComparison();for(;this.eatOp(`&&`);){let t=this.parseComparison(),n=z(e),r=z(t);e=n===!1||r===!1?!1:n===void 0||r===void 0?void 0:n&&r}return e}parseComparison(){let e=this.parseUnary();for(let t of[`==`,`!=`,`<=`,`>=`,`<`,`>`])if(this.eatOp(t))return Re(e,this.parseUnary(),t,this.schema);return e}parseUnary(){if(this.eatOp(`!`)){let e=z(this.parseUnary());return e===void 0?void 0:!e}return this.parsePrimary()}parsePrimary(){let e=this.peek();if(!e)return;if(e.kind===`num`||e.kind===`str`)return this.pos+=1,e.value;if(e.kind===`op`&&e.value===`(`){this.pos+=1;let e=this.parseOr();return this.eatOp(`)`)?e:void 0}if(e.kind!==`id`)return;if(this.pos+=1,e.value===`true`)return!0;if(e.value===`false`)return!1;if(e.value===`config`)return this.parseConfigAccess();let t=this.locals[e.value];return t===void 0?`${L}${e.value}`:this.resolveLocal(e.value,t)}parseConfigAccess(){if(!this.eatOp(`->`))return;let e=this.peek();if(!e||e.kind!==`id`||!Le.has(e.value))return;if(this.pos+=1,this.eatOp(`<`)){let e=1;for(;e>0;){let t=this.peek();if(!t)return;this.pos+=1,t.kind===`op`&&t.value===`<`&&(e+=1),t.kind===`op`&&t.value===`>`&&--e}}if(!this.eatOp(`(`))return;let t=this.peek();if(!t||t.kind!==`str`)return;this.pos+=1;let n=t.value;for(;this.eatOp(`,`);){let e=0;for(;;){let t=this.peek();if(!t)return;if(t.kind===`op`&&t.value===`(`&&(e+=1),t.kind===`op`&&t.value===`)`){if(e===0)break;--e}if(t.kind===`op`&&t.value===`,`&&e===0)break;this.pos+=1}}if(!this.eatOp(`)`))return;if(this.eatOp(`->`)){let e=this.peek();if(!e||e.kind!==`id`)return;this.pos+=1}if(e.value===`has`)return this.cfg.has(n);let r=this.cfg.get(n);return this.schema[n]?.enum_values?{enumKey:n,value:typeof r==`string`?r:void 0}:r}resolveLocal(t,n){let r=this.memo.get(t);if(r!==void 0||this.memo.has(t))return r;if(this.resolving.has(t))return;this.resolving.add(t);let i=new e(this.cfg,this.locals,this.schema,this.resolving,this.memo).evaluate(n);return this.resolving.delete(t),this.memo.set(t,i),i}};function Re(e,t,n,r){let i=typeof e==`string`&&e.startsWith(L)?e:typeof t==`string`&&t.startsWith(L)?t:void 0;if(i!==void 0){if(n!==`==`&&n!==`!=`)return;let a=i===e?t:e;if(!Pe(a))return;let o=r[a.enumKey]?.enum_values;if(!o||a.value===void 0)return;let s=ze(i.slice(5)).filter(e=>o.includes(e));if(s.length!==1)return;let c=s[0]===a.value;return n===`==`?c:!c}let a=Pe(e)?e.value:e,o=Pe(t)?t.value:t;if(n===`==`||n===`!=`){if(a===void 0||o===void 0)return;let e=typeof a==`string`||typeof o==`string`?String(a)===String(o):R(a)===R(o);return n===`==`?e:!e}let s=R(a),c=R(o);if(!(s===void 0||c===void 0)){if(n===`<`)return s<c;if(n===`<=`)return s<=c;if(n===`>`)return s>c;if(n===`>=`)return s>=c}}function ze(e){let t=e.includes(`::`)?e.slice(e.lastIndexOf(`::`)+2):e,n=[t,/^[a-z]+([A-Z].*)$/.exec(t)?.[1]].filter(e=>!!e),r=new Set;for(let e of n){let t=e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).toLowerCase();r.add(t),r.add(t.replace(/_/g,` `)),r.add(t.replace(/_/g,``))}return[...r]}function Be(e,t,n){let r=Fe(e,t),i=new Map,a=new Set;for(let e of n.rules){let o=H(e.enable_if);if(o&&z(new V(r,n.locals,t,new Set,i).evaluate(o))===!1)for(let t of e.fields)a.add(t)}return a}function H(e){let t=0;for(let n=0;n<e.length;n+=1){let r=e[n];if(r===`(`)t+=1;else if(r===`)`)--t;else if(r===`,`&&t===0)return e.slice(0,n).trim()||void 0}return e.trim()||void 0}var U=new Set([`coBools`,`coFloats`,`coFloatsOrPercents`]),Ve=e=>U.has(e.type);function He(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e!=`string`)return;let t=Number.parseFloat(e);return Number.isFinite(t)?t:void 0}function Ue(e){let t=e.sidetext;if(!(!t||t.includes(`->`)||t.includes(`::`)))return t}function We(e,t){let n=t===void 0?e.default:t;return n===void 0?``:Array.isArray(n)?n.map(String).join(`, `):typeof n==`boolean`?n?`1`:`0`:String(n)}function W(e,t){if(Ve(e))return(Array.isArray(t)?t.map(String):String(t).split(`,`)).map(e=>e.trim()).filter(e=>e!==``);if(e.type===`coBool`)return typeof t==`boolean`?t?`1`:`0`:t===`1`||t===`true`||t===1?`1`:`0`;let n=String(t).trim();return e.type===`coPercent`?n.endsWith(`%`)?n:`${n}%`:n}function G(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=t[r];e&&(n[r]=W(e,i))}return n}function K(e,t,n){if(t===void 0||t===``)return!1;let r=t=>{let n=W(e,Array.isArray(t)?t.map(String).join(`, `):t);return Array.isArray(n)?n.join(`, `):n},i=r(t),a=n===void 0?e.default:n;return a===void 0?i!==``:i!==r(a)}var Ge=new Set([`support_filament`,`support_interface_filament`,`outer_wall_filament_id`,`inner_wall_filament_id`,`top_surface_filament_id`,`bottom_surface_filament_id`,`internal_solid_filament_id`,`sparse_infill_filament_id`]),Ke=[`simple`,`advanced`,`expert`],qe={simple:0,advanced:1,expert:2,develop:3};function Je({values:e,onChange:t,disabled:n=!1,sourceOverrides:r=[],sourceSelected:a,onToggleSource:o,filamentChoices:s,presetValues:c,presetValuesResolved:l=!0,presetValuesReason:u}){let{t:d}=i(),[f,p]=(0,j.useState)(null),[g,_]=(0,j.useState)(`simple`),[v,b]=(0,j.useState)(null),[S,C]=(0,j.useState)(``);(0,j.useEffect)(()=>{let e=!1;return Promise.all([x(()=>import(`./process-schema-CzfeynAH.js`),[]),x(()=>import(`./process-ui-tree-BWrKRLV6.js`),[]),x(()=>import(`./process-toggle-rules-DDBax3G5.js`),[])]).then(([t,n,r])=>{e||p({schema:t.default??t,tree:n.default??n,toggles:r.default??r})}),()=>{e=!0}},[]);let w=(0,j.useMemo)(()=>{let t={...c??{}};for(let e of r)a?.has(e.key)&&(t[e.key]=e.value);for(let[n,r]of Object.entries(e))r!==void 0&&r!==``&&(t[n]=r);return t},[c,r,a,e]),T=(0,j.useMemo)(()=>f?Be(w,f.schema,f.toggles):new Set,[f,w]),E=(0,j.useMemo)(()=>new Map(r.map(e=>[e.key,e])),[r]),ee=(0,j.useMemo)(()=>r.filter(e=>!e.printer_coupled&&!e.preset_defining),[r]),te=(0,j.useMemo)(()=>r.filter(e=>a?.has(e.key)).length,[r,a]),D=(0,j.useMemo)(()=>f?r.filter(e=>!f.schema[e.key]):[],[f,r]),O=e=>{if(!f)return;let n={};for(let[t,r]of Object.entries(e))f.schema[t]&&K(f.schema[t],r,c?.[t])&&(n[t]=r);t(e,G(n,f.schema))},ne=(t,n)=>{let r={...e};n===void 0?delete r[t]:r[t]=n,O(r)},k=(0,j.useMemo)(()=>{if(!f)return[];let e=e=>e.toLowerCase().replace(/[_\s]+/g,` `).trim(),t=e(S),n=e=>qe[f.schema[e]?.mode??`expert`]<=qe[g],r=(n,r,i)=>{if(!t)return!0;let a=f.schema[n];return[n,a?.label??``,a?.tooltip??``,r,i].some(n=>e(n).includes(t))};return f.tree.map(e=>({...e,groups:e.groups.map(t=>({...t,options:t.options.filter(i=>n(i)&&r(i,t.group,e.page))})).filter(e=>e.options.length>0)})).filter(e=>e.groups.length>0)},[f,g,S]),A=(0,j.useMemo)(()=>k.length===0||S.trim()?null:k.find(e=>e.page===v)??k[0],[k,v,S]),re=(0,j.useMemo)(()=>f?Object.keys(e).filter(t=>f.schema[t]&&K(f.schema[t],e[t],c?.[t])).length:0,[f,e,c]);if(!f)return(0,N.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-8 text-sm text-bambu-gray`,children:[(0,N.jsx)(m,{className:`w-4 h-4 animate-spin`}),d(`slicerSettings.loading`,`Loading slicer settings...`)]});let M=A?[A]:k;return(0,N.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,N.jsx)(`div`,{className:`flex overflow-hidden rounded border border-bambu-dark-tertiary`,children:Ke.map(e=>(0,N.jsx)(`button`,{type:`button`,onClick:()=>_(e),disabled:n,className:`px-2.5 py-1 text-xs capitalize transition-colors ${g===e?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:d(`slicerSettings.mode.${e}`,e)},e))}),(0,N.jsxs)(`div`,{className:`relative flex-1 min-w-[10rem]`,children:[(0,N.jsx)(h,{className:`absolute left-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-bambu-gray`}),(0,N.jsx)(`input`,{type:`search`,value:S,onChange:e=>C(e.target.value),disabled:n,placeholder:d(`slicerSettings.searchPlaceholder`,`Search settings`),className:`w-full rounded border border-bambu-dark-tertiary bg-bambu-dark pl-7 pr-2 py-1 text-xs text-white placeholder:text-bambu-gray/60 focus:border-bambu-green focus:outline-none disabled:opacity-40`})]}),re>0&&(0,N.jsxs)(`button`,{type:`button`,onClick:()=>O({}),disabled:n,className:`flex items-center gap-1 text-xs text-bambu-gray hover:text-white`,children:[(0,N.jsx)(y,{className:`w-3 h-3`}),d(`slicerSettings.resetAll`,`Reset {{count}}`,{count:re})]})]}),!l&&(0,N.jsx)(`p`,{className:`rounded border border-amber-300 bg-amber-50 px-2 py-1 text-[0.7rem] text-amber-800 dark:border-amber-700/40 dark:bg-amber-900/20 dark:text-amber-200`,children:u===`sidecar_outdated`?d(`slicerSettings.presetValuesOutdatedSidecar`,`Showing slicer defaults: your slicer sidecar is older than this feature and can't report a preset's values. Update the sidecar image to see them. Anything you don't change still uses the preset.`):u===`not_configured`?d(`slicerSettings.presetValuesNotConfigured`,`Showing slicer defaults: no slicer sidecar is configured, so a preset's values can't be read. Anything you don't change still uses the preset.`):u===`sidecar_unavailable`?d(`slicerSettings.presetValuesSidecarUnavailable`,`Showing slicer defaults: the slicer sidecar did not answer, so a preset's values can't be read. Anything you don't change still uses the preset.`):d(`slicerSettings.presetValuesUnavailable`,`Showing slicer defaults: the picked preset's own values could not be read. Anything you don't change still uses the preset.`)}),r.length>0&&o&&(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded border border-bambu-dark-tertiary px-2 py-1.5 text-[0.7rem] text-bambu-gray`,children:[(0,N.jsx)(`span`,{className:`min-w-0 flex-1`,children:d(`slicerSettings.fromFileSummary`,`The designer changed {{count}} process settings in this file. Only the ones you tick are used.`,{count:r.length})}),(0,N.jsx)(`button`,{type:`button`,disabled:n,onClick:()=>ee.forEach(e=>o(e.key,!0)),title:d(`slicerSettings.fromFileUseAllHint`,`Ticks the settings that carry across printers. The ones tuned for the designer's own printer, and the ones that define the preset you picked, stay off.`),className:`shrink-0 rounded border border-bambu-dark-tertiary px-1.5 py-0.5 hover:text-white disabled:opacity-40`,children:d(`slicerSettings.fromFileUseAll`,`Use the designer's settings`)}),te>0&&(0,N.jsx)(`button`,{type:`button`,disabled:n,onClick:()=>r.forEach(e=>o(e.key,!1)),className:`shrink-0 rounded border border-bambu-dark-tertiary px-1.5 py-0.5 hover:text-white disabled:opacity-40`,children:d(`slicerSettings.fromFileClear`,`Clear {{count}}`,{count:te})})]}),!S.trim()&&(0,N.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:k.map(e=>(0,N.jsx)(`button`,{type:`button`,onClick:()=>b(e.page),disabled:n,className:`px-2 py-1 text-xs rounded transition-colors ${A?.page===e.page?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:text-white`}`,children:e.page},e.page))}),M.length===0?(0,N.jsx)(`p`,{className:`py-6 text-center text-xs text-bambu-gray`,children:d(`slicerSettings.noMatches`,`No settings match this search.`)}):(0,N.jsxs)(`div`,{className:`flex flex-col gap-4 max-h-[22rem] lg:max-h-[58vh] overflow-y-auto pr-1`,children:[M.map(t=>(0,N.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[S.trim()&&(0,N.jsx)(`p`,{className:`text-[0.7rem] uppercase tracking-wide text-bambu-gray/70`,children:t.page}),t.groups.map(r=>(0,N.jsxs)(`fieldset`,{className:`flex flex-col gap-1.5`,children:[(0,N.jsx)(`legend`,{className:`mb-1 text-xs font-medium text-white`,children:r.group}),r.options.map(t=>(0,N.jsx)(Ye,{optionKey:t,option:f.schema[t],value:e[t],onChange:e=>ne(t,e),disabled:n||T.has(t),disabledBySlicer:T.has(t),formDisabled:n,source:E.get(t),sourceOn:a?.has(t)??!1,onToggleSource:o,filamentChoices:Ge.has(t)?s:void 0,presetValue:c?.[t]},t))]},`${t.page}:${r.group}`))]},t.page)),D.length>0&&!S.trim()&&(0,N.jsxs)(`fieldset`,{className:`flex flex-col gap-1.5`,children:[(0,N.jsx)(`legend`,{className:`mb-1 text-xs font-medium text-white`,children:d(`slicerSettings.otherFromFile`,`Other settings from this file`)}),D.map(e=>(0,N.jsxs)(`label`,{className:`flex items-center gap-2 text-xs cursor-pointer`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:a?.has(e.key)??!1,disabled:n||!o,onChange:t=>o?.(e.key,t.target.checked),className:`shrink-0 cursor-pointer disabled:opacity-40`}),(0,N.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[(0,N.jsx)(`span`,{className:`font-mono text-bambu-gray`,children:e.key}),(0,N.jsx)(`span`,{className:`ml-1.5 text-white`,children:q(e.value)})]}),(e.printer_coupled||e.preset_defining)&&(0,N.jsx)(`span`,{className:`shrink-0 rounded bg-amber-100 px-1 py-0.5 text-[10px] text-amber-700 dark:bg-amber-500/20 dark:text-amber-400`,children:e.printer_coupled?d(`slicerSettings.fromFilePrinterCoupled`,`designer's printer`):d(`slicerSettings.fromFileOverridesPreset`,`overrides preset`)})]},e.key))]})]})]})}function Ye({optionKey:e,option:t,value:n,onChange:r,disabled:a,disabledBySlicer:o,formDisabled:s,source:c,sourceOn:l=!1,onToggleSource:u,filamentChoices:d,presetValue:f}){let{t:p}=i(),m=K(t,n,f),h=Ue(t),g=n===void 0?l&&c?q(c.value):We(t,f):String(n);return(0,N.jsxs)(`div`,{className:`flex items-center gap-2 group`,title:t.tooltip,children:[(0,N.jsxs)(`label`,{htmlFor:`slicer-opt-${e}`,className:`flex min-w-0 flex-1 items-center gap-1 text-xs ${o?`text-bambu-gray/40`:`text-bambu-gray`}`,children:[(0,N.jsx)(`span`,{className:`truncate`,title:t.label||e,children:t.label||e}),m&&(0,N.jsx)(`span`,{className:`shrink-0 text-bambu-green`,"aria-hidden":`true`,children:`•`}),c&&(0,N.jsx)(`span`,{className:`shrink-0 rounded px-1 py-0.5 text-[10px] ${c.printer_coupled||c.preset_defining?`bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-400`:`bg-bambu-green/15 text-bambu-green`}`,title:c.printer_coupled?p(`slicerSettings.fromFilePrinterCoupledHint`,`Tuned for the printer this file was designed for -- may be wrong or out of range on yours.`):c.preset_defining?p(`slicerSettings.fromFileOverridesPresetHint`,`The file sets this to {{value}} where the preset you picked uses {{preset}}. Tick it only if the file should win.`,{value:q(c.value),preset:We(t,f)}):p(`slicerSettings.fromFileHint`,`The designer changed this in the source file. Its value is {{value}}.`,{value:q(c.value)}),children:c.printer_coupled?p(`slicerSettings.fromFilePrinterCoupled`,`designer's printer`):c.preset_defining?p(`slicerSettings.fromFileOverridesPreset`,`overrides preset`):p(`slicerSettings.fromFile`,`from file`)})]}),(0,N.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,N.jsx)(`span`,{className:`flex w-3 shrink-0 justify-center`,children:c&&u&&(0,N.jsx)(`input`,{type:`checkbox`,checked:l,disabled:s,onChange:t=>u(e,t.target.checked),"aria-label":p(`slicerSettings.useFromFile`,`Use the source file's value for {{option}}`,{option:t.label||e}),title:p(`slicerSettings.useFromFile`,`Use the source file's value for {{option}}`,{option:t.label||e}),className:`w-3 h-3 cursor-pointer disabled:opacity-40`})}),(0,N.jsx)(`div`,{className:`w-40`,children:(0,N.jsx)(Xe,{id:`slicer-opt-${e}`,option:t,current:g,onChange:r,disabled:a,filamentChoices:d})}),(0,N.jsx)(`span`,{className:`w-16 shrink-0 whitespace-nowrap text-[0.65rem] text-bambu-gray/60`,children:h??``}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>r(void 0),disabled:a||!m,"aria-label":p(`slicerSettings.resetOption`,`Reset to default`),className:`p-0.5 transition-opacity ${m?`text-bambu-gray hover:text-white`:`opacity-0 pointer-events-none`}`,children:(0,N.jsx)(y,{className:`w-3 h-3`})})]})]})}function q(e){return Array.isArray(e)?e.map(e=>String(e)).join(`, `):e==null?``:String(e)}function Xe({id:e,option:t,current:n,onChange:r,disabled:a,filamentChoices:o}){let{t:s}=i(),c=`w-full rounded border border-bambu-dark-tertiary bg-bambu-dark px-1.5 py-0.5 text-xs text-white focus:border-bambu-green focus:outline-none disabled:opacity-40`;if(o&&o.length>0){let t=o.find(e=>String(e.index)===n);return(0,N.jsxs)(`div`,{className:`relative w-full`,children:[(0,N.jsxs)(`select`,{id:e,value:n,onChange:e=>r(e.target.value),disabled:a,className:`${c} w-full cursor-pointer appearance-none pr-5`,title:t?.label,children:[(0,N.jsx)(`option`,{value:`0`,children:s(`slicerSettings.filamentDefault`,`Default`)}),o.map(e=>(0,N.jsxs)(`option`,{value:String(e.index),children:[e.index,`: `,e.label]},e.index))]}),(0,N.jsx)(u,{className:`pointer-events-none absolute right-1.5 top-1/2 h-3 w-3 -translate-y-1/2 text-bambu-gray`})]})}return t.type===`coBool`?(0,N.jsx)(`input`,{id:e,type:`checkbox`,checked:n===`1`||n===`true`,onChange:e=>r(e.target.checked),disabled:a,className:`w-3.5 h-3.5 cursor-pointer disabled:opacity-40`}):t.type===`coEnum`&&t.enum_values?(0,N.jsxs)(`div`,{className:`relative w-full`,children:[(0,N.jsx)(`select`,{id:e,value:n,onChange:e=>r(e.target.value),disabled:a,className:`${c} w-full cursor-pointer appearance-none pr-5`,children:t.enum_values.map((e,n)=>(0,N.jsx)(`option`,{value:e,children:t.enum_labels?.[n]??e},e))}),(0,N.jsx)(u,{className:`pointer-events-none absolute right-1.5 top-1/2 h-3 w-3 -translate-y-1/2 text-bambu-gray`})]}):t.type===`coInt`||t.type===`coFloat`||t.type===`coPercent`?(0,N.jsx)(`input`,{id:e,type:`number`,value:n.replace(`%`,``),min:He(t.min),max:He(t.max),step:t.type===`coInt`?1:`any`,onChange:e=>r(e.target.value),disabled:a,className:c}):(0,N.jsx)(`input`,{id:e,type:`text`,value:n,onChange:e=>r(e.target.value),disabled:a,className:c})}var Ze=`bambuddy.slice.onlyConnectedModels`,Qe=`bambuddy.slice.onlyLoadedSpools`;function $e(e){try{return localStorage.getItem(e)===`true`}catch{return!1}}function et(e,t){try{localStorage.setItem(e,String(t))}catch{}}var tt=[];function J(e){return e?`${e.source}:${e.id}`:``}function Y(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 nt({requestId:e,sourceName:t}){let{t:n}=i(),{showPersistentToast:a,dismissToast:o}=d(),[s,c]=(0,j.useState)(0),[l,u]=(0,j.useState)(null),f=t;try{f=decodeURIComponent(t)}catch{}(0,j.useEffect)(()=>{let e=Date.now(),t=setInterval(()=>c(Math.floor((Date.now()-e)/1e3)),1e3);return()=>clearInterval(t)},[]),(0,j.useEffect)(()=>{let t=!1,n=setInterval(async()=>{if(t)return;let n=await r.getPreviewSliceProgress(e);!t&&n&&u(n)},1e3);return()=>{t=!0,clearInterval(n)}},[e]);let p=`slice-preview-${e}`;(0,j.useEffect)(()=>{let e=l&&l.stage&&l.total_percent>0,t=rt(s);return e?a(p,n(`slice.previewWithProgress`,`Analyzing {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{name:f,stage:l.stage,percent:Math.min(100,Math.max(0,Math.round(l.total_percent))),elapsed:t}),`loading`):a(p,n(`slice.previewToast`,{name:f,elapsed:t}),`loading`),()=>{o(p)}},[s,l,f,a,o,n,p]);let h=l?.stage,g=l?.total_percent,_=h&&typeof g==`number`&&g>0?`${h} (${Math.min(100,Math.max(0,Math.round(g)))}%)`:n(`slice.analyzingPlateFilaments`);return(0,N.jsxs)(`div`,{className:`flex flex-col gap-1 text-bambu-gray text-sm py-2`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(m,{className:`w-4 h-4 animate-spin`}),_,(0,N.jsxs)(`span`,{className:`text-xs tabular-nums`,children:[s,`s`]})]}),s>=5&&(0,N.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 rt(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`}var it=`#00AE42`;function X(e){let t=(e||``).trim();return/^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(t)?t.slice(0,7).toUpperCase():it}function at({source:e,onClose:t,defaultAutoArrange:n=!1}){let{t:a}=i(),{trackJob:l}=ee(),u=o(),[f,h]=(0,j.useState)(null),[_,v]=(0,j.useState)(null),[y,b]=(0,j.useState)([]),x=(0,j.useRef)(new Set),C=(0,j.useRef)(!1),[w,T]=(0,j.useState)([]),[E,te]=(0,j.useState)(null),[D,ne]=(0,j.useState)(null),[A,re]=(0,j.useState)(!1),[M,P]=(0,j.useState)(null),[F,le]=(0,j.useState)(!1),[ue,de]=(0,j.useState)(!1),[me,ge]=(0,j.useState)(n),[be,xe]=(0,j.useState)(new Set),[Se,Ce]=(0,j.useState)({}),[we,Te]=(0,j.useState)({}),[De,Oe]=(0,j.useState)(!1),Ae=ie(),Me=Ae||De,Ne=s({queryKey:[`slicer-pipelines`],queryFn:()=>r.listSlicerPipelines(),staleTime:6e4}),[Pe,L]=(0,j.useState)(!1),[R,z]=(0,j.useState)(``),{showToast:Fe}=d(),Ie=c({mutationFn:e=>r.createSlicerPipeline(e),onSuccess:()=>{u.invalidateQueries({queryKey:[`slicer-pipelines`]}),Fe(a(`slice.pipelines.toast.saved`,`Pipeline saved`),`success`),L(!1),z(``)},onError:e=>{Fe(e.message||a(`slice.pipelines.toast.saveFailed`,`Save failed`),`error`)}}),B=s({queryKey:[`slicePlates`,e.kind,e.id],queryFn:async()=>e.kind===`libraryFile`?r.getLibraryFilePlates(e.id):r.getArchivePlates(e.id),staleTime:6e4}),Le=!!B.data?.is_multi_plate&&(B.data?.plates?.length??0)>1,V=Le&&D==null,Re=D??1,ze=(0,j.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${Re}-${t}`},[e.kind,e.id,Re]),Be=s({queryKey:[`sliceFilamentReqs`,e.kind,e.id,Re],queryFn:async()=>e.kind===`libraryFile`?r.getLibraryFileFilamentRequirements(e.id,Re,ze,!0):r.getArchiveFilamentRequirements(e.id,Re,ze,!0),enabled:!V,staleTime:6e4}),H=(0,j.useMemo)(()=>{let e=Be.data?.filaments??[],t=e.length>0?e:[{slot_id:1,type:``,color:``,used_grams:0,used_meters:0}];return A?t.map(e=>({...e,used_in_plate:!0})):t},[A,Be.data]),U=s({queryKey:[`slicerPresets`],queryFn:()=>r.getSlicerPresets(),staleTime:6e4,enabled:!B.isLoading&&!V}),[Ve,He]=(0,j.useState)(!1),Ue=async()=>{if(!Ve){He(!0);try{let e=await r.getSlicerPresets({refresh:!0});u.setQueryData([`slicerPresets`],e)}catch{u.invalidateQueries({queryKey:[`slicerPresets`]})}finally{He(!1)}}},We=s({queryKey:[`slicerPrinterModels`],queryFn:r.getSlicerPrinterModels,staleTime:1/0}),W=(0,j.useMemo)(()=>!U.data||!f?null:I(U.data,f,`printer`)?.name??null,[U.data,f]),G=(0,j.useMemo)(()=>k(We.data??{}),[We.data]),[K,Ge]=(0,j.useState)(()=>$e(Ze)),[Ke,qe]=(0,j.useState)(()=>$e(Qe)),[Ye,q]=(0,j.useState)(null),Xe=s({queryKey:[`slicerLoadedSpools`],queryFn:r.getSlicerLoadedSpools,staleTime:15e3,retry:!1,enabled:!V}),J=Xe.data?.printers??tt,Y=(0,j.useMemo)(()=>We.data??{},[We.data]),rt=(0,j.useMemo)(()=>_e(J,he(W,Y)),[J,W,Y]),it=(0,j.useMemo)(()=>U.data?Ee(U.data):new Map,[U.data]),X=(0,j.useMemo)(()=>U.data?ke(rt,U.data,it,W,G):new Set,[rt,U.data,it,W,G]),at=(0,j.useMemo)(()=>{if(!K||J.length===0)return null;let e=J.map(e=>e.model);return t=>ve(t,e,Y)},[K,J,Y]),Z=(0,j.useMemo)(()=>!Ke||X.size===0?null:e=>X.has(`${e.source}:${e.id}`),[Ke,X]),lt=(0,j.useMemo)(()=>{let e=U.data;if(!e||!Z)return null;let t=e=>({...e,filament:e.filament.filter(Z)});return{...e,local:t(e.local),orca_cloud:t(e.orca_cloud),cloud:t(e.cloud),standard:t(e.standard)}},[U.data,Z]),ut=s({queryKey:[`slicer-preset-values`,_?.source,_?.id],queryFn:()=>r.getSlicerPresetValues(_),enabled:_!=null,staleTime:5*6e4}),dt=ut.data?.values,ft=ut.data?.resolved??ut.isLoading,pt=ut.data?.reason??(ut.isError?`sidecar_unavailable`:void 0),mt=(0,j.useMemo)(()=>{let e=U.data;return H.map((t,n)=>{let r=y[n]??null,i=e&&r?I(e,r,`filament`):null;return{index:n+1,label:i?.name||t.type||a(`slice.filamentSlotUnset`,`not set`),color:t.color||void 0}})},[H,y,U.data,a]),Q=B.data?.embedded_printer??null,ht=(0,j.useMemo)(()=>B.data?.design_overrides??[],[B.data]),gt=B.data?.embedded_process??null,_t=(0,j.useMemo)(()=>{if(!Q||!gt||!W)return!1;let e=e=>e.replace(/^#\s*/,``).trim().toLowerCase();return e(W)===e(Q)},[Q,gt,W]);(0,j.useEffect)(()=>{_t||le(!1)},[_t]),(0,j.useEffect)(()=>{xe(F?new Set(ht.map(e=>e.key)):new Set)},[ht,F]),(0,j.useEffect)(()=>{let e=U.data;e&&(f??h(se(e,`printer`,Q)??oe(e,`printer`)))},[U.data,Q]),(0,j.useEffect)(()=>{let e=U.data;if(!e||!at||C.current||!f||F)return;let t=I(e,f,`printer`);if(t&&at(t))return;let n=se(e,`printer`,Q),r=I(e,n,`printer`),i=r&&at(r)?n:ye(e,J.map(e=>e.model),Y);i&&h(i)},[U.data,at,f,Q,J,Y,F]),(0,j.useEffect)(()=>{let e=U.data;e&&v(t=>{if(t){let n=I(e,t,`process`);if(n&&O(n,`process`,W,G)!==`mismatch`)return t}return ce(e,W,G,gt)})},[U.data,W,G,gt]),(0,j.useEffect)(()=>{let e=U.data;e&&b(t=>H.map((n,r)=>{let i=t[r]??null;if(i){let t=I(e,i,`filament`),a=t&&!x.current.has(r)&&fe(t,n.type),o=t&&Z!==null&&!x.current.has(r)&&!Z(t);if(t&&!a&&!o&&O(t,`filament`,W,G)!==`mismatch`)return i}let a={type:n.type,color:n.color},o=lt&&pe(lt,a,W,G),s=I(e,o??null,`filament`);return o&&s&&!fe(s,n.type)?o:pe(e,a,W,G)}))},[U.data,H,W,G,Z,lt]),(0,j.useEffect)(()=>{T(e=>e.length===H.length?e:(x.current=new Set,H.map(()=>null)))},[H]);let vt=c({mutationFn:async t=>{let n=yt(t);return e.kind===`libraryFile`?r.sliceLibraryFile(e.id,n):r.sliceArchive(e.id,n)},onSuccess:n=>{l(n.job_id,e.kind,e.filename),t()},onError:e=>{te(e instanceof Error?e.message:String(e))}});function yt(e){if(!f||!_||y.length===0||y.some(e=>e==null))throw Error(a(`slice.allPresetsRequired`));return{printer_preset:f,process_preset:_,filament_preset:y[0],filament_presets:y,filament_colours:H.map((e,t)=>w[t]??e.color??``),...e==null?{}:{plate:e},...M==null?{}:{bed_type:M},...F&&_t?{use_embedded_settings:!0}:{},...!F&&ht.length>0?{design_overrides:[...be]}:{},...!F&&Object.keys(Se).length>0?{process_overrides:we}:{},...ue?{auto_orient:!0}:{},...me?{auto_arrange:!0}:{}}}let bt=f!=null&&_!=null&&Be.isSuccess&&y.length>0&&y.every(e=>e!=null),$=vt.isPending,xt=B.data?.plates?.length??0,St=Le&&xt>1&&!V;return V&&B.data?(0,N.jsx)(ae,{plates:B.data.plates,onSelect:e=>ne(e),onClose:t}):(0,N.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:()=>{$||t()},children:[(0,N.jsxs)(`div`,{className:`w-full max-w-xl lg:max-w-5xl xl:max-w-7xl 2xl:max-w-[96rem] max-h-[85vh] flex flex-col rounded-lg bg-bambu-dark-secondary border border-bambu-dark-tertiary/60`,onClick:e=>e.stopPropagation(),children:[(0,N.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,N.jsxs)(`div`,{className:`min-w-0`,children:[(0,N.jsxs)(`h3`,{className:`text-white font-medium flex items-center gap-2`,children:[(0,N.jsx)(p,{className:`w-4 h-4`}),a(`slice.title`)]}),(0,N.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1 truncate`,title:e.filename,children:[e.filename,D==null?``:` • ${a(`archives.platePicker.plateLabel`,{index:D})}`]})]}),(0,N.jsx)(`button`,{onClick:t,disabled:$,className:`flex-shrink-0 text-bambu-gray hover:text-white transition-colors disabled:opacity-50`,"aria-label":a(`common.close`),children:(0,N.jsx)(g,{className:`w-5 h-5`})})]}),(0,N.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-4`,children:[(B.isLoading||U.isLoading)&&(0,N.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm`,children:[(0,N.jsx)(m,{className:`w-4 h-4 animate-spin`}),a(`slice.loadingPresets`)]}),U.isError&&(0,N.jsx)(`div`,{className:`text-sm text-red-700 dark:text-red-400`,role:`alert`,children:a(`slice.presetsLoadFailed`,`Failed to load presets. Open Settings → Profiles to import them, or sign in to Bambu Cloud.`)}),U.data&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,N.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,N.jsx)(ot,{status:U.data.cloud_status,cloudName:`bambu`}),(0,N.jsx)(ot,{status:U.data.orca_cloud_status,cloudName:`orca`})]}),(0,N.jsxs)(`button`,{type:`button`,onClick:Ue,disabled:Ve||$,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:a(`slice.refreshPresetsTitle`),"aria-label":a(`slice.refreshPresets`),children:[(0,N.jsx)(S,{className:`w-3.5 h-3.5 ${Ve?`animate-spin`:``}`}),a(`slice.refreshPresets`)]})]}),(0,N.jsxs)(`div`,{className:`lg:grid lg:grid-cols-[minmax(20rem,2fr)_minmax(0,3fr)] lg:gap-5 lg:items-start`,children:[(0,N.jsxs)(`div`,{className:`space-y-4 min-w-0`,children:[(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 px-2 py-1.5 rounded-md bg-bambu-dark/40 border border-bambu-dark-tertiary`,children:[(0,N.jsxs)(`span`,{className:`text-xs font-medium text-bambu-gray flex items-center gap-1`,children:[(0,N.jsx)(p,{className:`w-3.5 h-3.5`}),` `,a(`slice.pipelines.label`,`Pipeline`)]}),(0,N.jsxs)(`select`,{value:``,disabled:$||(Ne.data?.pipelines.length??0)===0,onChange:e=>{let t=parseInt(e.target.value,10);if(Number.isNaN(t))return;let n=Ne.data?.pipelines.find(e=>e.id===t);n&&(C.current=!0,h(n.printer_preset),v(n.process_preset),P(n.bed_type),b(e=>{let t=e.length>0?[...e]:n.filament_presets.map(()=>null);for(let e=0;e<t.length;e++)e<n.filament_presets.length&&(t[e]=n.filament_presets[e],x.current.add(e));return t}),Fe(a(`slice.pipelines.toast.applied`,`Applied "{{name}}"`,{name:n.name}),`success`),e.target.value=``)},className:`text-xs px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white disabled:opacity-50 disabled:cursor-not-allowed flex-1 min-w-[10ch]`,"aria-label":a(`slice.pipelines.applyAria`,`Apply pipeline`),children:[(0,N.jsx)(`option`,{value:``,children:(Ne.data?.pipelines.length??0)===0?a(`slice.pipelines.empty`,`No saved pipelines`):a(`slice.pipelines.applyPrompt`,`Apply pipeline…`)}),Ne.data?.pipelines.map(e=>(0,N.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),Pe?(0,N.jsxs)(`div`,{className:`flex items-center gap-1 flex-1 min-w-[16ch]`,children:[(0,N.jsx)(`input`,{autoFocus:!0,value:R,onChange:e=>z(e.target.value),placeholder:a(`slice.pipelines.namePlaceholder`,`Pipeline name`),"aria-label":a(`slice.pipelines.nameAria`,`New pipeline name`),className:`flex-1 text-xs px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>{let e=R.trim();if(!e||!f||!_)return;let t=y.filter(e=>e!==null);t.length!==0&&Ie.mutate({name:e,printer_preset:f,process_preset:_,filament_presets:t,bed_type:M})},disabled:Ie.isPending||!R.trim(),className:`text-xs px-2 py-1 bg-bambu-green hover:bg-bambu-green/80 text-white rounded disabled:opacity-50`,children:Ie.isPending?(0,N.jsx)(m,{className:`w-3 h-3 animate-spin`}):a(`common.save`,`Save`)}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>{L(!1),z(``)},className:`text-xs px-2 py-1 text-bambu-gray hover:text-white`,children:a(`common.cancel`,`Cancel`)})]}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>{z(``),L(!0)},disabled:$||!f||!_||y.length===0||y.some(e=>e===null),className:`text-xs px-2 py-1 bg-bambu-green/20 hover:bg-bambu-green/30 text-bambu-green border border-bambu-green/40 rounded disabled:opacity-50 disabled:cursor-not-allowed`,title:a(`slice.pipelines.saveTitle`,`Save the current four-slot selection as a reusable pipeline`),children:a(`slice.pipelines.saveButton`,`Save as pipeline`)})]}),Xe.isSuccess&&(0,N.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,N.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:K,onChange:e=>{Ge(e.target.checked),et(Ze,e.target.checked)},disabled:$,className:`mt-0.5 cursor-pointer`}),(0,N.jsxs)(`span`,{children:[a(`slice.filters.onlyConnectedModels`,`Only printers that are online`),(0,N.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:a(`slice.filters.onlyConnectedModelsHint`,`Printer profiles for the models online right now, at every nozzle size.`)})]})]}),(0,N.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:Ke,onChange:e=>{qe(e.target.checked),et(Qe,e.target.checked)},disabled:$,className:`mt-0.5 cursor-pointer`}),(0,N.jsxs)(`span`,{children:[a(`slice.filters.onlyLoadedSpools`,`Only spools that are loaded`),(0,N.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:a(`slice.filters.onlyLoadedSpoolsHint`,`Filament profiles of the spools in the online printers of the selected model. A profile you pick yourself stays.`)})]})]}),(K||Ke)&&J.length===0&&(0,N.jsx)(`p`,{className:`text-xs text-bambu-gray/70`,role:`status`,children:a(`slice.filters.noneOnline`,`No printer is online, so every profile is shown.`)}),Ke&&J.length>0&&X.size===0&&(0,N.jsx)(`p`,{className:`text-xs text-bambu-gray/70`,role:`status`,children:a(`slice.filters.noneLoaded`,`No loaded spool has a profile for this printer, so every filament profile is shown.`)})]}),(0,N.jsx)(ct,{label:a(`slice.printer`),slot:`printer`,data:U.data,value:f,onChange:e=>{C.current=!0,h(e)},allowed:at,filteredLabel:a(`slice.filters.notOnline`,`Not online`),disabled:$||F}),_t&&(0,N.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:F,onChange:e=>le(e.target.checked),disabled:$,className:`mt-0.5 cursor-pointer`}),(0,N.jsxs)(`span`,{children:[a(`slice.useEmbedded`),(0,N.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:a(`slice.useEmbeddedHint`)})]})]}),(0,N.jsx)(ct,{label:a(`slice.process`),slot:`process`,data:U.data,value:_,onChange:v,disabled:$||F,selectedPrinterName:W,compatIndex:G}),(0,N.jsx)(st,{value:M,onChange:P,disabled:$||F}),(0,N.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,N.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:ue,onChange:e=>de(e.target.checked),disabled:$,className:`mt-0.5 cursor-pointer`}),(0,N.jsxs)(`span`,{children:[a(`slice.autoOrient`),(0,N.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:a(`slice.autoOrientHint`)})]})]}),(0,N.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:me,onChange:e=>ge(e.target.checked),disabled:$,className:`mt-0.5 cursor-pointer`}),(0,N.jsxs)(`span`,{children:[a(`slice.autoArrange`),(0,N.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:a(`slice.autoArrangeHint`)})]})]})]}),Be.isLoading?(0,N.jsx)(nt,{requestId:ze,sourceName:e.filename}):H.map((e,t)=>{let n=e.used_in_plate!==!1,r=H.length>1?a(`slice.filamentSlot`,{index:t+1,type:e.type}):a(`slice.filament`);return(0,N.jsx)(ct,{label:n?r:`${r} ${a(`slice.notUsedByPlate`)}`,slot:`filament`,data:U.data,value:y[t]??null,onChange:e=>{x.current.add(t),b(n=>{let r=n.length===H.length?[...n]:H.map((e,t)=>n[t]??null);return r[t]=e,r})},disabled:$||!n||F,swatchColor:w[t]??e.color,swatchColorLabel:a(`slice.filamentColour`),onSwatchColorChange:e=>T(n=>{let r=n.length===H.length?[...n]:H.map((e,t)=>n[t]??null);return r[t]=e,r}),selectedPrinterName:W,compatIndex:G,allowed:Z,filteredLabel:a(`slice.filters.notLoaded`,`Not loaded`),onPick:J.length>0?()=>q(t):void 0},`filament-${t}`)})]}),(0,N.jsx)(`div`,{className:`mt-4 lg:mt-0 min-w-0`,children:(0,N.jsxs)(`div`,{className:`rounded border border-bambu-dark-tertiary p-3 ${F?`opacity-60`:``}`,children:[(0,N.jsxs)(`button`,{type:`button`,onClick:()=>Oe(e=>!e),"aria-expanded":Me,disabled:Ae,className:`flex w-full items-center justify-between gap-2 text-left lg:cursor-default`,children:[(0,N.jsxs)(`span`,{className:`text-sm text-white`,children:[a(`slice.processSettings`,`Process settings`),(0,N.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:F?a(`slice.processSettingsEmbedded`,`Not used while "Use the file's built-in settings" is on -- the file's own settings drive this slice.`):a(`slice.processSettingsHint`,`Adjust the picked preset for this slice. Anything you don't touch stays as the preset defines it.`)})]}),(0,N.jsx)(`span`,{className:`shrink-0 text-xs text-bambu-gray`,children:F?a(`slice.processSettingsInactive`,`Inactive`):Object.keys(we).length>0?a(`slice.processSettingsChanged`,`{{count}} changed`,{count:Object.keys(we).length}):a(`slice.processSettingsUnchanged`,`Preset defaults`)})]}),Me&&(0,N.jsx)(`div`,{className:`mt-3 border-t border-bambu-dark-tertiary pt-3`,children:(0,N.jsx)(Je,{values:Se,onChange:(e,t)=>{Ce(e),Te(t)},disabled:$||F,filamentChoices:mt,presetValues:dt,presetValuesResolved:ft,presetValuesReason:pt,sourceOverrides:ht,sourceSelected:be,onToggleSource:(e,t)=>xe(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})})})]})})]})]}),E&&(0,N.jsx)(`div`,{className:`text-sm text-red-700 dark:text-red-400 bg-red-900/20 border border-red-900/40 rounded p-2`,role:`alert`,children:E})]}),(0,N.jsxs)(`div`,{className:`flex-shrink-0 flex justify-end gap-2 px-4 py-3 border-t border-bambu-dark-tertiary/40`,children:[(0,N.jsx)(`button`,{type:`button`,onClick:t,disabled:$,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:a(`common.cancel`)}),St&&(0,N.jsxs)(`label`,{className:`flex items-center gap-2 mr-auto text-sm text-bambu-gray cursor-pointer select-none`,title:a(`slice.actionAllTitle`,{count:xt}),children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:A,onChange:e=>re(e.target.checked),disabled:$,className:`cursor-pointer`}),a(`slice.allPlatesToggle`,{count:xt})]}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>{te(null);let e=A?0:D;vt.mutate(e)},disabled:!bt||$,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:$?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(m,{className:`w-4 h-4 animate-spin`}),a(`slice.enqueuing`)]}):A?a(`slice.actionAll`,{count:xt}):a(`slice.action`)})]})]}),Ye!==null&&U.data&&H[Ye]&&(0,N.jsx)(`div`,{onClick:e=>e.stopPropagation(),children:(0,N.jsx)(je,{printers:rt,data:U.data,index:it,selectedPrinterName:W,compatIndex:G,slotLabel:H.length>1?a(`slice.filamentSlot`,{index:Ye+1,type:H[Ye].type}):a(`slice.filament`),onClose:()=>q(null),onPick:(e,t)=>{let n=Ye;x.current.add(n),b(t=>{let r=t.length===H.length?[...t]:H.map((e,n)=>t[n]??null);return r[n]=e.ref,r}),t&&T(e=>{let r=e.length===H.length?[...e]:H.map((t,n)=>e[n]??null);return r[n]=t,r}),q(null)}})})]})}function ot({status:e,cloudName:t=`bambu`}){let{t:n}=i();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:a,icon:o}={expired:{tone:`border-amber-300 dark:border-amber-700/40 bg-amber-50 dark:bg-amber-900/20 text-amber-800 dark:text-amber-200`,icon:f},unreachable:{tone:`border-bambu-dark-tertiary/40 bg-bambu-dark text-bambu-gray`,icon:f}}[e],{key:s,fallback:c}=r[e];return(0,N.jsxs)(`div`,{className:`flex items-start gap-2 text-xs rounded-md border p-2 ${a}`,role:`status`,children:[(0,N.jsx)(o,{className:`w-4 h-4 flex-shrink-0 mt-0.5`}),(0,N.jsx)(`span`,{children:n(s,c)})]})}var Z=[{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 st({value:e,onChange:t,disabled:n}){let{t:r}=i();return(0,N.jsxs)(`label`,{className:`block`,children:[(0,N.jsx)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:r(`slice.bedType.label`)}),(0,N.jsxs)(`select`,{value:e??``,onChange:e=>t(e.target.value===``?null:e.target.value),disabled:n,className:`flex-1 min-w-0 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,N.jsx)(`option`,{value:``,children:r(`slice.bedType.auto`)}),Z.map(e=>(0,N.jsx)(`option`,{value:e.value,children:r(e.labelKey,e.fallback)},e.value))]})]})}function ct({label:e,slot:t,data:n,value:r,onChange:a,disabled:o,swatchColor:s,onSwatchColorChange:c,swatchColorLabel:l,selectedPrinterName:u,compatIndex:d,allowed:f,filteredLabel:p,onPick:m}){let{t:h}=i(),[g,_]=(0,j.useState)(!1),v=(0,j.useId)(),y=`${v}-colour`,{sections:b,otherEntries:x,filteredEntries:S}=(0,j.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=[],o=[];for(let{key:s,label:c,fallback:l}of e){let e=n[s][t];if(e.length>0&&a.push({tierLabel:h(c,l),entries:e}),!r){e.length>0&&i.push({tierLabel:h(c,l),entries:e});continue}let f=[];for(let n of e)O(n,t,u??null,d??A)===`mismatch`?o.push(n):f.push(n);f.length>0&&i.push({tierLabel:h(c,l),entries:f})}if(i.length===0&&o.length>0)return{sections:a,otherEntries:[],filteredEntries:[]};if(f){let e=[],t=[];for(let n of i){let r=n.entries.filter(e=>f(e)?!0:(t.push(e),!1));r.length>0&&e.push({tierLabel:n.tierLabel,entries:r})}if(e.length>0)return{sections:e,otherEntries:o,filteredEntries:t}}return{sections:i,otherEntries:o,filteredEntries:[]}},[n,t,h,u,d,f]),C=J(r),w=(0,j.useMemo)(()=>g?x:x.filter(e=>`${e.source}:${e.id}`===C),[g,x,C]),T=(0,j.useMemo)(()=>g?S:S.filter(e=>`${e.source}:${e.id}`===C),[g,S,C]),E=x.length-w.length+S.length-T.length,ee=b.reduce((e,t)=>e+t.entries.length,0)+w.length+T.length;return(0,N.jsxs)(`div`,{className:`block`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray mb-1`,children:[!c&&s&&(0,N.jsx)(`span`,{className:`inline-block w-3 h-3 rounded-full border border-bambu-dark-tertiary`,style:{backgroundColor:s},"aria-hidden":!0}),(0,N.jsx)(`label`,{htmlFor:v,children:e}),(E>0||g)&&(0,N.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 font-normal`,children:[E>0&&(0,N.jsx)(`span`,{className:`text-bambu-gray/60`,children:h(`slice.presetsHidden`,`{{count}} hidden`,{count:E})}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>_(e=>!e),disabled:o,className:`text-bambu-green hover:underline disabled:opacity-50 disabled:no-underline`,children:g?h(`slice.showFewerPresets`,`Show fewer`):h(`slice.showAllPresets`,`Show all`)})]})]}),(0,N.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,N.jsxs)(`select`,{id:v,value:J(r),onChange:e=>a(Y(e.target.value)),disabled:o||ee===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,N.jsx)(`option`,{value:``,children:h(ee===0?`slice.noPresetsForSlot`:`slice.selectPreset`)}),b.map(e=>(0,N.jsx)(`optgroup`,{label:e.tierLabel,children:e.entries.map(e=>(0,N.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))},e.tierLabel)),T.length>0&&(0,N.jsx)(`optgroup`,{label:p??h(`slice.otherPrinters`),children:T.map(e=>(0,N.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))}),w.length>0&&(0,N.jsx)(`optgroup`,{label:h(`slice.otherPrinters`),children:w.map(e=>(0,N.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))})]}),c&&(0,N.jsxs)(`label`,{htmlFor:y,title:l,className:`flex items-center gap-2 px-2.5 rounded-md bg-bambu-dark border border-bambu-dark-tertiary text-sm ${o?`opacity-50 cursor-not-allowed`:`cursor-pointer hover:border-bambu-gray transition-colors`}`,children:[(0,N.jsx)(`input`,{id:y,type:`color`,value:X(s),onChange:e=>c(e.target.value.toUpperCase()),disabled:o,"aria-label":l,style:{backgroundColor:X(s)},className:`slice-colour-swatch w-4 h-4 shrink-0 rounded-full border border-bambu-dark-tertiary p-0 disabled:cursor-not-allowed enabled:cursor-pointer`}),(0,N.jsx)(`span`,{className:`font-mono text-xs text-white tracking-tight`,children:X(s)})]}),m&&(0,N.jsxs)(`button`,{type:`button`,onClick:m,disabled:o,title:h(`slice.loadedSpools.pickTitle`,`Pick a spool loaded in a connected printer`),className:`flex items-center gap-1.5 px-2.5 rounded-md bg-bambu-dark border border-bambu-dark-tertiary text-sm text-bambu-gray transition-colors enabled:hover:text-white enabled:hover:border-bambu-gray disabled:opacity-50 disabled:cursor-not-allowed`,children:[(0,N.jsx)(re,{className:`w-4 h-4`,"aria-hidden":!0}),h(`slice.loadedSpools.pick`,`Pick`)]})]})]})}export{ae as n,at as t};
|