| 12 |
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{C as t,T as n,a as r,k as i,w as a,x as o}from"./client-DSw2TdH4.js";import{t as s}from"./preload-helper-Czpn1I53.js";import{n as c}from"./QueryClientProvider-B5vEWYBq.js";import{t as l}from"./useQuery-DfiorXB9.js";import{t as u}from"./useMutation-DLyYCmQ0.js";import{a as d}from"./info-3cB5_JmI.js";import{n as f}from"./ToastContext-C3zxW_t3.js";import{t as p}from"./cloud-off-C8GjuBYm.js";import{t as m}from"./cog-BGgA7SfL.js";import{t as h}from"./layers-DxbB-A8k.js";import{t as g}from"./loader-circle-Ck-s1kyS.js";import{t as ee}from"./refresh-cw-D7pR-PbA.js";import{t as _}from"./rotate-ccw-DQ5GxrrP.js";import{t as v}from"./search-CiK-3DPp.js";import{t as y}from"./x-DIT5l0_1.js";import{o as b}from"./date-G9KUauqz.js";import{O as x,a as S,f as C,m as w,p as T,w as E}from"./amsHelpers-CWcmx9Ax.js";import{t as D}from"./FilamentSwatch-CElzyuMD.js";import{t as te}from"./index-C0j9bTzR.js";import{a as O,i as ne,n as k,t as A}from"./slicerPrinterMatch-CUdoNag2.js";var re=t(`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(i(),1),M=1024;function ie(){let[e,t]=(0,j.useState)(()=>typeof window<`u`&&window.innerWidth>=M);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=a();function ae({plates:e,onSelect:t,onClose:r}){let{t:i}=n();return(0,N.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:r,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:i(`archives.platePicker.title`)}),(0,N.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`archives.platePicker.hint`)})]}),(0,N.jsx)(`button`,{onClick:r,className:`flex-shrink-0 text-bambu-gray hover:text-white transition-colors`,"aria-label":i(`common.close`,`Close`),children:(0,N.jsx)(y,{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:o(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)(h,{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?`${i(`archives.platePicker.plateLabel`,{index:e.index})} — ${e.name}`:i(`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?i(`archives.platePicker.objectCount`,{count:e.object_count}):`${e.filaments.length} filament${e.filaments.length===1?``:`s`}`,e.print_time_seconds==null?``:` • ${b(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=E(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=E(d.filament_colour??``);i&&f&&i===f&&(e+=10),a&&p&&(p===a?e+=5:S(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={}){return e?he((Object.hasOwn(n,e)?n[e]:null)||e,t):null}function ye(e,t,n,r={}){let i=ve(e.name,n,r);return i===null||t.some(e=>ge(e,i))}function be(e,t,n,r={}){let i=null;for(let a of P)for(let o of e[a].printer){let e=ve(o.name,n,r);if(e===null||!t.some(t=>ge(t,e)))continue;let s={source:a,id:o.id};if(/\b0\.4\s*nozzle\b/i.test(o.name))return s;i??=s}return i}function xe(e){let t=e.replace(/^#\s*/,``),n=t.lastIndexOf(`@`);return n>0&&(t=t.slice(0,n)),t.replace(/\s+/g,` `).trim().toLowerCase()}function Se(e){let t=e.replace(/^#\s*/,``),n=t.lastIndexOf(`@`);return n>0&&(t=t.slice(0,n)),t.replace(/\s+/g,` `).trim()}function Ce(e){return!!e.tray_type}function we(e){let t=e.saved_preset;return t&&x(t.preset_id,e.tray_info_idx,t.tray_info_idx)?t:null}function Te(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 Ee(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=xe(e);return!t||i.has(t)?!1:(i.add(t),!0)})}function De(e){let t=new Map;for(let n of P)for(let r of e[n].filament){let e=xe(r.name),i=t.get(e);i?i.push({source:n,preset:r}):t.set(e,[{source:n,preset:r}])}return t}function Oe(e,t,n,r,i){if(!Ce(e))return null;let a=we(e),o=e=>O(e,`filament`,r,i);if(a){let e=Te(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?Te(a)?.source:void 0;for(let t of Ee(e,a)){let r=n.get(xe(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 ke(e){let t=[];for(let n of e){for(let e of n.ams)for(let n of e.trays)Ce(n)&&t.push(n);for(let e of n.external)Ce(e)&&t.push(e)}return t}function Ae(e,t,n,r,i){let a=new Set;for(let o of ke(e)){let e=Oe(o,t,n,r,i);e&&a.add(me(e.ref))}return a}function je(e){let t=(e.tray_color??``).replace(/^#/,``);return/^[0-9a-fA-F]{6}/.test(t)?`#${t.slice(0,6).toUpperCase()}`:null}function Me({printers:e,data:t,index:r,selectedPrinterName:i,compatIndex:a,slotLabel:o,onPick:s,onClose:c}){let{t:l}=n();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)(y,{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)(Ne,{printer:e,matchFor:e=>Oe(e,t,r,i,a),onPick:s},e.id))})]})})}function Ne({printer:e,matchFor:t,onPick:r}){let{t:i}=n(),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,n)=>(0,N.jsx)(Pe,{tray:e,label:n,match:t(e),onPick:r},`${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:i(`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:T(e.id)}),(0,N.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-2`,children:e.trays.map(t=>c(t,C(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,C(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:i(`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?i(`printers.extL`):i(`printers.extR`):i(`printers.ext`)))})]})]})]})}function Pe({tray:e,label:t,match:r,onPick:i}){let{t:a}=n(),o=w(e),s=je(e),c=(0,j.useMemo)(()=>{if(r)return Se(r.preset.name);let t=we(e);return t?.preset_name?Se(t.preset_name):e.tray_sub_brands||null},[r,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=r===null;return(0,N.jsxs)(`button`,{type:`button`,disabled:l,onClick:()=>r&&i(r,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 L=e=>typeof e==`object`&&!!e&&`enumKey`in e,Fe=`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 Ie(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 B=[`->`,`||`,`&&`,`==`,`!=`,`<=`,`>=`,`(`,`)`,`,`,`<`,`>`,`!`];function Le(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=B.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 Re=new Set([`opt_bool`,`opt_int`,`opt_float`,`opt_float_nullable`,`opt_int_nullable`,`opt_bool_nullable`,`opt_enum`,`opt_string`,`option`,`has`]),ze=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=Le(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 Be(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?`${Fe}${e.value}`:this.resolveLocal(e.value,t)}parseConfigAccess(){if(!this.eatOp(`->`))return;let e=this.peek();if(!e||e.kind!==`id`||!Re.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 Be(e,t,n,r){let i=typeof e==`string`&&e.startsWith(Fe)?e:typeof t==`string`&&t.startsWith(Fe)?t:void 0;if(i!==void 0){if(n!==`==`&&n!==`!=`)return;let a=i===e?t:e;if(!L(a))return;let o=r[a.enumKey]?.enum_values;if(!o||a.value===void 0)return;let s=Ve(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=L(e)?e.value:e,o=L(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 Ve(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 V(e,t,n){let r=Ie(e,t),i=new Map,a=new Set;for(let e of n.rules){let o=H(e.enable_if);if(o&&z(new ze(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 He=new Set([`coBools`,`coFloats`,`coFloatsOrPercents`]),Ue=e=>He.has(e.type);function We(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 Ge(e){let t=e.sidetext;if(!(!t||t.includes(`->`)||t.includes(`::`)))return t}function U(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(Ue(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 Ke=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`]),qe=[`simple`,`advanced`,`expert`],Je={simple:0,advanced:1,expert:2,develop:3};function Ye({values:e,onChange:t,disabled:r=!1,sourceOverrides:i=[],sourceSelected:a,onToggleSource:o,filamentChoices:c,presetValues:l,presetValuesResolved:u=!0,presetValuesReason:d}){let{t:f}=n(),[p,m]=(0,j.useState)(null),[h,ee]=(0,j.useState)(`simple`),[y,b]=(0,j.useState)(null),[x,S]=(0,j.useState)(``);(0,j.useEffect)(()=>{let e=!1;return Promise.all([s(()=>import(`./process-schema-CzfeynAH.js`),[]),s(()=>import(`./process-ui-tree-BWrKRLV6.js`),[]),s(()=>import(`./process-toggle-rules-DDBax3G5.js`),[])]).then(([t,n,r])=>{e||m({schema:t.default??t,tree:n.default??n,toggles:r.default??r})}),()=>{e=!0}},[]);let C=(0,j.useMemo)(()=>{let t={...l??{}};for(let e of i)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},[l,i,a,e]),w=(0,j.useMemo)(()=>p?V(C,p.schema,p.toggles):new Set,[p,C]),T=(0,j.useMemo)(()=>new Map(i.map(e=>[e.key,e])),[i]),E=(0,j.useMemo)(()=>i.filter(e=>!e.printer_coupled&&!e.preset_defining),[i]),D=(0,j.useMemo)(()=>i.filter(e=>a?.has(e.key)).length,[i,a]),te=(0,j.useMemo)(()=>p?i.filter(e=>!p.schema[e.key]):[],[p,i]),O=e=>{if(!p)return;let n={};for(let[t,r]of Object.entries(e))p.schema[t]&&K(p.schema[t],r,l?.[t])&&(n[t]=r);t(e,G(n,p.schema))},ne=(t,n)=>{let r={...e};n===void 0?delete r[t]:r[t]=n,O(r)},k=(0,j.useMemo)(()=>{if(!p)return[];let e=e=>e.toLowerCase().replace(/[_\s]+/g,` `).trim(),t=e(x),n=e=>Je[p.schema[e]?.mode??`expert`]<=Je[h],r=(n,r,i)=>{if(!t)return!0;let a=p.schema[n];return[n,a?.label??``,a?.tooltip??``,r,i].some(n=>e(n).includes(t))};return p.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)},[p,h,x]),A=(0,j.useMemo)(()=>k.length===0||x.trim()?null:k.find(e=>e.page===y)??k[0],[k,y,x]),re=(0,j.useMemo)(()=>p?Object.keys(e).filter(t=>p.schema[t]&&K(p.schema[t],e[t],l?.[t])).length:0,[p,e,l]);if(!p)return(0,N.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-8 text-sm text-bambu-gray`,children:[(0,N.jsx)(g,{className:`w-4 h-4 animate-spin`}),f(`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:qe.map(e=>(0,N.jsx)(`button`,{type:`button`,onClick:()=>ee(e),disabled:r,className:`px-2.5 py-1 text-xs capitalize transition-colors ${h===e?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:f(`slicerSettings.mode.${e}`,e)},e))}),(0,N.jsxs)(`div`,{className:`relative flex-1 min-w-[10rem]`,children:[(0,N.jsx)(v,{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:x,onChange:e=>S(e.target.value),disabled:r,placeholder:f(`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:r,className:`flex items-center gap-1 text-xs text-bambu-gray hover:text-white`,children:[(0,N.jsx)(_,{className:`w-3 h-3`}),f(`slicerSettings.resetAll`,`Reset {{count}}`,{count:re})]})]}),!u&&(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:d===`sidecar_outdated`?f(`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.`):d===`not_configured`?f(`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.`):d===`sidecar_unavailable`?f(`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.`):f(`slicerSettings.presetValuesUnavailable`,`Showing slicer defaults: the picked preset's own values could not be read. Anything you don't change still uses the preset.`)}),i.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:f(`slicerSettings.fromFileSummary`,`The designer changed {{count}} process settings in this file. Only the ones you tick are used.`,{count:i.length})}),(0,N.jsx)(`button`,{type:`button`,disabled:r,onClick:()=>E.forEach(e=>o(e.key,!0)),title:f(`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:f(`slicerSettings.fromFileUseAll`,`Use the designer's settings`)}),D>0&&(0,N.jsx)(`button`,{type:`button`,disabled:r,onClick:()=>i.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:f(`slicerSettings.fromFileClear`,`Clear {{count}}`,{count:D})})]}),!x.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:r,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:f(`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:[x.trim()&&(0,N.jsx)(`p`,{className:`text-[0.7rem] uppercase tracking-wide text-bambu-gray/70`,children:t.page}),t.groups.map(n=>(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:n.group}),n.options.map(t=>(0,N.jsx)(Xe,{optionKey:t,option:p.schema[t],value:e[t],onChange:e=>ne(t,e),disabled:r||w.has(t),disabledBySlicer:w.has(t),formDisabled:r,source:T.get(t),sourceOn:a?.has(t)??!1,onToggleSource:o,filamentChoices:Ke.has(t)?c:void 0,presetValue:l?.[t]},t))]},`${t.page}:${n.group}`))]},t.page)),te.length>0&&!x.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:f(`slicerSettings.otherFromFile`,`Other settings from this file`)}),te.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:r||!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?f(`slicerSettings.fromFilePrinterCoupled`,`designer's printer`):f(`slicerSettings.fromFileOverridesPreset`,`overrides preset`)})]},e.key))]})]})]})}function Xe({optionKey:e,option:t,value:r,onChange:i,disabled:a,disabledBySlicer:o,formDisabled:s,source:c,sourceOn:l=!1,onToggleSource:u,filamentChoices:d,presetValue:f}){let{t:p}=n(),m=K(t,r,f),h=Ge(t),g=r===void 0?l&&c?q(c.value):U(t,f):String(r);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:U(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)(Ze,{id:`slicer-opt-${e}`,option:t,current:g,onChange:i,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:()=>i(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)(_,{className:`w-3 h-3`})})]})]})}function q(e){return Array.isArray(e)?e.map(e=>String(e)).join(`, `):e==null?``:String(e)}function Ze({id:e,option:t,current:r,onChange:i,disabled:a,filamentChoices:o}){let{t:s}=n(),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)===r);return(0,N.jsxs)(`div`,{className:`relative w-full`,children:[(0,N.jsxs)(`select`,{id:e,value:r,onChange:e=>i(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)(d,{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:r===`1`||r===`true`,onChange:e=>i(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:r,onChange:e=>i(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)(d,{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:r.replace(`%`,``),min:We(t.min),max:We(t.max),step:t.type===`coInt`?1:`any`,onChange:e=>i(e.target.value),disabled:a,className:c}):(0,N.jsx)(`input`,{id:e,type:`text`,value:r,onChange:e=>i(e.target.value),disabled:a,className:c})}var Qe=`bambuddy.slice.onlyConnectedModels`,$e=`bambuddy.slice.onlyLoadedSpools`;function et(e){try{return localStorage.getItem(e)===`true`}catch{return!1}}function tt(e,t){try{localStorage.setItem(e,String(t))}catch{}}var nt=[];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 rt({requestId:e,sourceName:t}){let{t:i}=n(),{showPersistentToast:a,dismissToast:o}=f(),[s,c]=(0,j.useState)(0),[l,u]=(0,j.useState)(null),d=t;try{d=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=it(s);return e?a(p,i(`slice.previewWithProgress`,`Analyzing {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{name:d,stage:l.stage,percent:Math.min(100,Math.max(0,Math.round(l.total_percent))),elapsed:t}),`loading`):a(p,i(`slice.previewToast`,{name:d,elapsed:t}),`loading`),()=>{o(p)}},[s,l,d,a,o,i,p]);let m=l?.stage,h=l?.total_percent,ee=m&&typeof h==`number`&&h>0?`${m} (${Math.min(100,Math.max(0,Math.round(h)))}%)`:i(`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)(g,{className:`w-4 h-4 animate-spin`}),ee,(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:i(`slice.analyzingPlateFilamentsHint`,`Running a preview slice to discover which AMS slots this plate uses. Cached after — re-opening is instant.`)})]})}function it(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 at=`#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():at}function ot({source:e,onClose:t,defaultAutoArrange:i=!1}){let{t:a}=n(),{trackJob:o}=te(),s=c(),[d,p]=(0,j.useState)(null),[h,_]=(0,j.useState)(null),[v,b]=(0,j.useState)([]),x=(0,j.useRef)(new Set),S=(0,j.useRef)(!1),[C,w]=(0,j.useState)([]),[T,E]=(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,he]=(0,j.useState)(i),[ge,xe]=(0,j.useState)(new Set),[Se,Ce]=(0,j.useState)({}),[we,Te]=(0,j.useState)({}),[Ee,Oe]=(0,j.useState)(!1),ke=ie(),je=ke||Ee,Ne=l({queryKey:[`slicer-pipelines`],queryFn:()=>r.listSlicerPipelines(),staleTime:6e4}),[Pe,L]=(0,j.useState)(!1),[Fe,R]=(0,j.useState)(``),{showToast:z}=f(),Ie=u({mutationFn:e=>r.createSlicerPipeline(e),onSuccess:()=>{s.invalidateQueries({queryKey:[`slicer-pipelines`]}),z(a(`slice.pipelines.toast.saved`,`Pipeline saved`),`success`),L(!1),R(``)},onError:e=>{z(e.message||a(`slice.pipelines.toast.saveFailed`,`Save failed`),`error`)}}),B=l({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,Re=Le&&D==null,ze=D??1,Be=(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${ze}-${t}`},[e.kind,e.id,ze]),Ve=l({queryKey:[`sliceFilamentReqs`,e.kind,e.id,ze],queryFn:async()=>e.kind===`libraryFile`?r.getLibraryFileFilamentRequirements(e.id,ze,Be,!0):r.getArchiveFilamentRequirements(e.id,ze,Be,!0),enabled:!Re,staleTime:6e4}),V=(0,j.useMemo)(()=>{let e=Ve.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,Ve.data]),H=l({queryKey:[`slicerPresets`],queryFn:()=>r.getSlicerPresets(),staleTime:6e4,enabled:!B.isLoading&&!Re}),[He,Ue]=(0,j.useState)(!1),We=async()=>{if(!He){Ue(!0);try{let e=await r.getSlicerPresets({refresh:!0});s.setQueryData([`slicerPresets`],e)}catch{s.invalidateQueries({queryKey:[`slicerPresets`]})}finally{Ue(!1)}}},Ge=l({queryKey:[`slicerPrinterModels`],queryFn:r.getSlicerPrinterModels,staleTime:1/0}),U=(0,j.useMemo)(()=>!H.data||!d?null:I(H.data,d,`printer`)?.name??null,[H.data,d]),W=(0,j.useMemo)(()=>{let e={},t=H.data;if(!t)return e;for(let n of[t.local,t.orca_cloud,t.cloud,t.standard])for(let t of n.printer)t.inherits&&!Object.hasOwn(e,t.name)&&(e[t.name]=t.inherits);return e},[H.data]),G=(0,j.useMemo)(()=>k(Ge.data??{},W),[Ge.data,W]),[K,Ke]=(0,j.useState)(()=>et(Qe)),[qe,Je]=(0,j.useState)(()=>et($e)),[Xe,q]=(0,j.useState)(null),Ze=l({queryKey:[`slicerLoadedSpools`],queryFn:r.getSlicerLoadedSpools,staleTime:15e3,retry:!1,enabled:!Re}),J=Ze.data?.printers??nt,Y=(0,j.useMemo)(()=>Ge.data??{},[Ge.data]),it=(0,j.useMemo)(()=>_e(J,ve(U,Y,W)),[J,U,Y,W]),at=(0,j.useMemo)(()=>H.data?De(H.data):new Map,[H.data]),X=(0,j.useMemo)(()=>H.data?Ae(it,H.data,at,U,G):new Set,[it,H.data,at,U,G]),ot=(0,j.useMemo)(()=>{if(!K||J.length===0)return null;let e=J.map(e=>e.model);return t=>ye(t,e,Y,W)},[K,J,Y,W]),Z=(0,j.useMemo)(()=>!qe||X.size===0?null:e=>X.has(`${e.source}:${e.id}`),[qe,X]),ut=(0,j.useMemo)(()=>{let e=H.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)}},[H.data,Z]),dt=l({queryKey:[`slicer-preset-values`,h?.source,h?.id],queryFn:()=>r.getSlicerPresetValues(h),enabled:h!=null,staleTime:5*6e4}),ft=dt.data?.values,pt=dt.data?.resolved??dt.isLoading,mt=dt.data?.reason??(dt.isError?`sidecar_unavailable`:void 0),ht=(0,j.useMemo)(()=>{let e=H.data;return V.map((t,n)=>{let r=v[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}})},[V,v,H.data,a]),Q=B.data?.embedded_printer??null,gt=(0,j.useMemo)(()=>B.data?.design_overrides??[],[B.data]),_t=B.data?.embedded_process??null,vt=(0,j.useMemo)(()=>{if(!Q||!_t||!U)return!1;let e=e=>e.replace(/^#\s*/,``).trim().toLowerCase();return e(U)===e(Q)},[Q,_t,U]);(0,j.useEffect)(()=>{vt||le(!1)},[vt]),(0,j.useEffect)(()=>{xe(F?new Set(gt.map(e=>e.key)):new Set)},[gt,F]),(0,j.useEffect)(()=>{let e=H.data;e&&(d??p(se(e,`printer`,Q)??oe(e,`printer`)))},[H.data,Q]),(0,j.useEffect)(()=>{let e=H.data;if(!e||!ot||S.current||!d||F)return;let t=I(e,d,`printer`);if(t&&ot(t))return;let n=se(e,`printer`,Q),r=I(e,n,`printer`),i=r&&ot(r)?n:be(e,J.map(e=>e.model),Y,W);i&&p(i)},[H.data,ot,d,Q,J,Y,W,F]),(0,j.useEffect)(()=>{let e=H.data;e&&_(t=>{if(t){let n=I(e,t,`process`);if(n&&O(n,`process`,U,G)!==`mismatch`)return t}return ce(e,U,G,_t)})},[H.data,U,G,_t]),(0,j.useEffect)(()=>{let e=H.data;e&&b(t=>V.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`,U,G)!==`mismatch`)return i}let a={type:n.type,color:n.color},o=ut&&pe(ut,a,U,G),s=I(e,o??null,`filament`);return o&&s&&!fe(s,n.type)?o:pe(e,a,U,G)}))},[H.data,V,U,G,Z,ut]),(0,j.useEffect)(()=>{w(e=>e.length===V.length?e:(x.current=new Set,V.map(()=>null)))},[V]);let yt=u({mutationFn:async t=>{let n=bt(t);return e.kind===`libraryFile`?r.sliceLibraryFile(e.id,n):r.sliceArchive(e.id,n)},onSuccess:n=>{o(n.job_id,e.kind,e.filename),t()},onError:e=>{let t=e instanceof Error?e.message:String(e);E(t)}});function bt(e){if(!d||!h||v.length===0||v.some(e=>e==null))throw Error(a(`slice.allPresetsRequired`));return{printer_preset:d,process_preset:h,filament_preset:v[0],filament_presets:v,filament_colours:V.map((e,t)=>C[t]??e.color??``),...e==null?{}:{plate:e},...M==null?{}:{bed_type:M},...F&&vt?{use_embedded_settings:!0}:{},...!F&>.length>0?{design_overrides:[...ge]}:{},...!F&&Object.keys(Se).length>0?{process_overrides:we}:{},...ue?{auto_orient:!0}:{},...me?{auto_arrange:!0}:{}}}let xt=d!=null&&h!=null&&Ve.isSuccess&&v.length>0&&v.every(e=>e!=null),$=yt.isPending,St=B.data?.plates?.length??0,Ct=Le&&St>1&&!Re;return Re&&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)(m,{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)(y,{className:`w-5 h-5`})})]}),(0,N.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-4`,children:[(B.isLoading||H.isLoading)&&(0,N.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm`,children:[(0,N.jsx)(g,{className:`w-4 h-4 animate-spin`}),a(`slice.loadingPresets`)]}),H.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.`)}),H.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)(st,{status:H.data.cloud_status,cloudName:`bambu`}),(0,N.jsx)(st,{status:H.data.orca_cloud_status,cloudName:`orca`})]}),(0,N.jsxs)(`button`,{type:`button`,onClick:We,disabled:He||$,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)(ee,{className:`w-3.5 h-3.5 ${He?`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)(m,{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&&(S.current=!0,p(n.printer_preset),_(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}),z(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:Fe,onChange:e=>R(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=Fe.trim();if(!e||!d||!h)return;let t=v.filter(e=>e!==null);t.length!==0&&Ie.mutate({name:e,printer_preset:d,process_preset:h,filament_presets:t,bed_type:M})},disabled:Ie.isPending||!Fe.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)(g,{className:`w-3 h-3 animate-spin`}):a(`common.save`,`Save`)}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>{L(!1),R(``)},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:()=>{R(``),L(!0)},disabled:$||!d||!h||v.length===0||v.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`)})]}),Ze.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=>{Ke(e.target.checked),tt(Qe,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:qe,onChange:e=>{Je(e.target.checked),tt($e,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||qe)&&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.`)}),qe&&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)(lt,{label:a(`slice.printer`),slot:`printer`,data:H.data,value:d,onChange:e=>{S.current=!0,p(e)},allowed:ot,filteredLabel:a(`slice.filters.notOnline`,`Not online`),disabled:$||F}),vt&&(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)(lt,{label:a(`slice.process`),slot:`process`,data:H.data,value:h,onChange:_,disabled:$||F,selectedPrinterName:U,compatIndex:G}),(0,N.jsx)(ct,{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=>he(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`)})]})]})]}),Ve.isLoading?(0,N.jsx)(rt,{requestId:Be,sourceName:e.filename}):V.map((e,t)=>{let n=e.used_in_plate!==!1,r=V.length>1?a(`slice.filamentSlot`,{index:t+1,type:e.type}):a(`slice.filament`);return(0,N.jsx)(lt,{label:n?r:`${r} ${a(`slice.notUsedByPlate`)}`,slot:`filament`,data:H.data,value:v[t]??null,onChange:e=>{x.current.add(t),b(n=>{let r=n.length===V.length?[...n]:V.map((e,t)=>n[t]??null);return r[t]=e,r})},disabled:$||!n||F,swatchColor:C[t]??e.color,swatchColorLabel:a(`slice.filamentColour`),onSwatchColorChange:e=>w(n=>{let r=n.length===V.length?[...n]:V.map((e,t)=>n[t]??null);return r[t]=e,r}),selectedPrinterName:U,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":je,disabled:ke,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`)})]}),je&&(0,N.jsx)(`div`,{className:`mt-3 border-t border-bambu-dark-tertiary pt-3`,children:(0,N.jsx)(Ye,{values:Se,onChange:(e,t)=>{Ce(e),Te(t)},disabled:$||F,filamentChoices:ht,presetValues:ft,presetValuesResolved:pt,presetValuesReason:mt,sourceOverrides:gt,sourceSelected:ge,onToggleSource:(e,t)=>xe(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})})})]})})]})]}),T&&(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:T})]}),(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`)}),Ct&&(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:St}),children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:A,onChange:e=>re(e.target.checked),disabled:$,className:`cursor-pointer`}),a(`slice.allPlatesToggle`,{count:St})]}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>{E(null);let e=A?0:D;yt.mutate(e)},disabled:!xt||$,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)(g,{className:`w-4 h-4 animate-spin`}),a(`slice.enqueuing`)]}):A?a(`slice.actionAll`,{count:St}):a(`slice.action`)})]})]}),Xe!==null&&H.data&&V[Xe]&&(0,N.jsx)(`div`,{onClick:e=>e.stopPropagation(),children:(0,N.jsx)(Me,{printers:it,data:H.data,index:at,selectedPrinterName:U,compatIndex:G,slotLabel:V.length>1?a(`slice.filamentSlot`,{index:Xe+1,type:V[Xe].type}):a(`slice.filament`),onClose:()=>q(null),onPick:(e,t)=>{let n=Xe;x.current.add(n),b(t=>{let r=t.length===V.length?[...t]:V.map((e,n)=>t[n]??null);return r[n]=e.ref,r}),t&&w(e=>{let r=e.length===V.length?[...e]:V.map((t,n)=>e[n]??null);return r[n]=t,r}),q(null)}})})]})}function st({status:e,cloudName:t=`bambu`}){let{t:r}=n();if(e===`ok`||e===`not_authenticated`)return null;let i=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:p},unreachable:{tone:`border-bambu-dark-tertiary/40 bg-bambu-dark text-bambu-gray`,icon:p}}[e],{key:s,fallback:c}=i[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:r(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 ct({value:e,onChange:t,disabled:r}){let{t:i}=n();return(0,N.jsxs)(`label`,{className:`block`,children:[(0,N.jsx)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`slice.bedType.label`)}),(0,N.jsxs)(`select`,{value:e??``,onChange:e=>t(e.target.value===``?null:e.target.value),disabled:r,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:i(`slice.bedType.auto`)}),Z.map(e=>(0,N.jsx)(`option`,{value:e.value,children:i(e.labelKey,e.fallback)},e.value))]})]})}function lt({label:e,slot:t,data:r,value:i,onChange:a,disabled:o,swatchColor:s,onSwatchColorChange:c,swatchColorLabel:l,selectedPrinterName:u,compatIndex:d,allowed:f,filteredLabel:p,onPick:m}){let{t:h}=n(),[g,ee]=(0,j.useState)(!1),_=(0,j.useId)(),v=`${_}-colour`,{sections:y,otherEntries:b,filteredEntries:x}=(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`}],n=t!==`printer`,i=[],a=[],o=[];for(let{key:s,label:c,fallback:l}of e){let e=r[s][t];if(e.length>0&&a.push({tierLabel:h(c,l),entries:e}),!n){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:[]}},[r,t,h,u,d,f]),S=J(i),C=(0,j.useMemo)(()=>g?b:b.filter(e=>`${e.source}:${e.id}`===S),[g,b,S]),w=(0,j.useMemo)(()=>g?x:x.filter(e=>`${e.source}:${e.id}`===S),[g,x,S]),T=b.length-C.length+x.length-w.length,E=y.reduce((e,t)=>e+t.entries.length,0)+C.length+w.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:_,children:e}),(T>0||g)&&(0,N.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 font-normal`,children:[T>0&&(0,N.jsx)(`span`,{className:`text-bambu-gray/60`,children:h(`slice.presetsHidden`,`{{count}} hidden`,{count:T})}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>ee(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:_,value:J(i),onChange:e=>a(Y(e.target.value)),disabled:o||E===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(E===0?`slice.noPresetsForSlot`:`slice.selectPreset`)}),y.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)),w.length>0&&(0,N.jsx)(`optgroup`,{label:p??h(`slice.otherPrinters`),children:w.map(e=>(0,N.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))}),C.length>0&&(0,N.jsx)(`optgroup`,{label:h(`slice.otherPrinters`),children:C.map(e=>(0,N.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))})]}),c&&(0,N.jsxs)(`label`,{htmlFor:v,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:v,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,ot as t};
|