glotfile 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],en
4
4
  `);s=t.pop()??``;for(let e of t){if(e.startsWith(`event:`)){c=e.slice(6).trim();continue}e.startsWith(`data:`)&&(yield{...JSON.parse(e.slice(5).trim()),type:c},c=`message`)}}}finally{a.cancel().catch(()=>{})}}async function*nf(e,t){let n;try{n=await fetch(`/api/context/build`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e),signal:t})}catch(e){if(e.name===`AbortError`)return;throw e}if(!n.ok||!n.body)throw Error(n.statusText);let r=n.body.getReader(),i=new TextDecoder,a=``,o=`message`;try{for(;;){let e;try{e=await r.read()}catch(e){if(e.name===`AbortError`)return;throw e}if(e.done)break;a+=i.decode(e.value,{stream:!0});let t=a.split(`
5
5
  `);a=t.pop()??``;for(let e of t){if(e.startsWith(`event:`)){o=e.slice(6).trim();continue}if(e.startsWith(`data:`)){let t=JSON.parse(e.slice(5).trim());if(o===`error`)throw Error(t.error??`Unknown error`);yield{...t,type:o},o=`message`}}}}finally{r.cancel().catch(()=>{})}}var rf=()=>fetch(`/api/scan`,{method:`POST`}).then(e=>Y(e)),af=()=>fetch(`/api/scan`).then(e=>Y(e)),of=e=>fetch(`/api/scan/usage?key=${encodeURIComponent(e)}`).then(e=>Y(e)),sf=()=>fetch(`/api/scan/used`).then(e=>Y(e)),cf=e=>fetch(`/api/config`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(Y),lf=()=>fetch(`/api/ui-prefs`).then(e=>Y(e)),uf=e=>fetch(`/api/ui-prefs`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(Y),df=()=>fetch(`/api/local-settings`).then(e=>Y(e)),ff=e=>fetch(`/api/local-settings`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(Y),pf=()=>fetch(`/api/ai-profiles`).then(e=>Y(e)),mf=(e,t)=>fetch(`/api/ai-profiles/${encodeURIComponent(e)}`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)}).then(Y),hf=e=>fetch(`/api/ai-profiles/${encodeURIComponent(e)}`,{method:`DELETE`}).then(Y),gf=e=>fetch(`/api/ai-profiles/active`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({name:e})}).then(Y),_f=e=>fetch(`/api/dictionary`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({word:e})}).then(Y),vf=()=>fetch(`/api/glossary`).then(e=>Y(e)),yf=e=>fetch(`/api/glossary`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(Y),bf=e=>fetch(`/api/glossary/${encodeURIComponent(e)}`,{method:`DELETE`}).then(Y),xf=(e,t)=>{let n=new FormData;return n.append(`file`,t),fetch(`/api/keys/${encodeURIComponent(e)}/screenshot`,{method:`POST`,body:n}).then(Y)},Sf=e=>fetch(`/api/keys/${encodeURIComponent(e)}/screenshot`,{method:`DELETE`}).then(Y),Cf=(e,t)=>fetch(`/api/keys/${encodeURIComponent(e)}/notes`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({text:t})}).then(e=>Y(e)),wf=(e,t,n)=>fetch(`/api/keys/${encodeURIComponent(e)}/notes/${encodeURIComponent(t)}`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify({text:n})}).then(Y),Tf=(e,t)=>fetch(`/api/keys/${encodeURIComponent(e)}/notes/${encodeURIComponent(t)}`,{method:`DELETE`}).then(Y),Ef=()=>fetch(`/api/log`).then(e=>Y(e)),Df=()=>fetch(`/api/export/preview`).then(e=>Y(e)),Of=()=>fetch(`/api/export`,{method:`POST`}).then(e=>Y(e)),kf=()=>fetch(`/api/file`).then(e=>Y(e)),Af=()=>fetch(`/api/files`).then(e=>Y(e)),jf=e=>fetch(`/api/file`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({path:e})}).then(e=>Y(e)),Mf=e=>e.length===0?Promise.resolve({issues:[],spellPending:!1}):fetch(`/api/checks?checks=${e.join(`,`)}`).then(e=>Y(e)),Nf=(e={})=>fetch(`/api/lint${e.includeSuppressed?`?includeSuppressed=1`:``}`).then(e=>Y(e)),Pf=(e,t,n)=>fetch(`/api/keys/${encodeURIComponent(e)}/suppressions`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({rule:t,locale:n})}).then(Y),Ff=(e,t,n)=>fetch(`/api/keys/${encodeURIComponent(e)}/suppressions?rule=${encodeURIComponent(t)}&locale=${encodeURIComponent(n)}`,{method:`DELETE`}).then(Y),If=(e={})=>fetch(`/api/lint/accept`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(e=>Y(e)),Lf=()=>fetch(`/api/import/detect`).then(e=>Y(e)),Rf=e=>fetch(`/api/import`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(e=>Y(e)),zf=()=>fetch(`/api/sync`,{method:`POST`,headers:{"content-type":`application/json`},body:`{}`}).then(e=>Y(e)),Bf=e=>fetch(`/api/sync`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({apply:!0,...e})}).then(e=>Y(e));function Vf(e,t,n){let r=Array(e);return new Proxy(r,{get(r,i,a){if(typeof i==`string`){let a=i.charCodeAt(0);if(a>=48&&a<=57){let a=+i;if(Number.isInteger(a)&&a>=0&&a<e){let e=r[a];if(!e){let i=t[a*2];e=r[a]={index:a,key:n(a),start:i,size:t[a*2+1],end:i+t[a*2+1],lane:0}}return e}}if(i===`length`)return e}return Reflect.get(r,i,a)}})}function Hf(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function Uf(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var Wf=(e,t)=>Math.abs(e-t)<1.01,Gf=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},Kf,qf=()=>{if(Kf!==void 0)return Kf;if(typeof navigator>`u`)return Kf=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return Kf=!0;let e=navigator.maxTouchPoints;return Kf=navigator.platform===`MacIntel`&&e!==void 0&&e>0},Jf=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},Yf=e=>e,Xf=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},Zf=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(Jf(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(Jf(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},Qf={passive:!0},$f=typeof window>`u`?!0:`onscrollend`in window,ep=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&$f,o=0,s=a?null:Gf(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,Qf),a&&r.addEventListener(`scrollend`,u,Qf),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},tp=(e,t)=>ep(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),np=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},rp=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},ip=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Yf,rangeExtractor:Xf,onChange:()=>{},measureElement:np,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=e.start+t;n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=Hf(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!qf()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,Qf),e.addEventListener(`touchend`,n,Qf),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(qf()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=Hf(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,n,r,i,a,o)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=Hf(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o},s)=>{let c=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let l=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=this.options.gap,a=e*2,o=this._flatMeasurements;if(!o||o.length<a){let e=new Float64Array(a);o&&l>0&&e.set(o.subarray(0,l*2)),o=e,this._flatMeasurements=o}let s;if(l===0)s=t+n;else{let e=l-1;s=o[e*2]+o[e*2+1]+i}for(let t=l;t<e;t++){let e=r(t),n=c.get(e),a=typeof n==`number`?n:this.options.estimateSize(t);o[t*2]=s,o[t*2+1]=a,s+=a+i}let u=Vf(e,o,r);return this.measurementsCache=u,u}let u=this.measurementsCache.slice(0,l),d=Array(a).fill(void 0);for(let e=0;e<l;e++){let t=u[e];t&&(d[t.lane]=e)}for(let i=l;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),s,l,f=o===`estimate`||c.has(e);if(a!==void 0&&this.options.lanes>1){s=a;let e=d[s],r=e===void 0?void 0:u[e];l=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?u[i-1]:this.getFurthestMeasurement(u,i);l=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&f&&this.laneAssignments.set(i,s)}let p=c.get(e),m=typeof p==`number`?p:this.options.estimateSize(i),h=l+m;u[i]={index:i,start:l,size:m,end:h,key:e,lane:s},d[s]=i}return this.measurementsCache=u,u},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Hf(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?op({measurements:e,outerSize:t,scrollOffset:n,lanes:r,flat:r===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Hf(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=t-(this.itemSizeCache.get(i)??n);if(o!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,s=a?this.getTotalSize():0,c=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?r<this.getScrollOffset()+this.scrollAdjustments&&this.scrollDirection!==`backward`:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},o,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++,a?this.applyScrollAdjustment(this.getTotalSize()-s):c&&this.applyScrollAdjustment(o),this.notify(!1)}},this.getVirtualItems=Hf(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return Uf(t[ap(0,t.length-1,r?e=>n[e*2]:e=>Uf(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){e!==0&&(qf()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=e:this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&Wf(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},ap=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function op({measurements:e,outerSize:t,scrollOffset:n,lanes:r,flat:i}){let a=e.length-1,o=i?e=>i[e*2]:t=>e[t].start,s=i?e=>i[e*2]+i[e*2+1]:t=>e[t].end;if(e.length<=r)return{startIndex:0,endIndex:a};let c=ap(0,a,o,n),l=c;if(r===1)for(;l<a&&s(l)<n+t;)l++;else if(r>1){let i=Array(r).fill(0);for(;l<a&&i.some(e=>e<n+t);){let t=e[l];i[t.lane]=t.end,l++}let o=Array(r).fill(n+t);for(;c>=0&&o.some(e=>e>=n);){let t=e[c];o[t.lane]=t.start,c--}c=Math.max(0,c-c%r),l=Math.min(a,l+(r-1-l%r))}return{startIndex:c,endIndex:l}}function sp(e){let t=new ip(N(e)),n=un(t),r=t._didMount();return Er(()=>N(e).getScrollElement(),e=>{e&&t._willUpdate()},{immediate:!0}),Er(()=>N(e),e=>{t.setOptions({...e,onChange:(t,r)=>{var i;pn(n),(i=e.onChange)==null||i.call(e,t,r)}}),t._willUpdate(),pn(n)},{immediate:!0}),Pe(r),n}function cp(e){return sp(q(()=>({observeElementRect:Zf,observeElementOffset:tp,scrollToFn:rp,...N(e)})))}function lp(e,t){let n=e.values[t];return n?e.plural?(n.forms?.other??``).trim()===``:(n.value??``).trim()===``:!0}function up(e,t,n,r){return n===`missing`?r?lp(t,r):e.config.locales.some(n=>n!==e.config.sourceLocale&&lp(t,n)):r?t.values[r]?.state===n:Object.values(t.values).some(e=>e.state===n)}function dp(e){try{return new RegExp(e,`i`)}catch{return null}}function fp(e,t,n,r){let i=t.text.trim(),a=i.length>=2&&i.startsWith(`"`)&&i.endsWith(`"`)?i.slice(1,-1).toLowerCase():null,o=a===null&&i.startsWith(`^`)?dp(i):null,s=i.toLowerCase();return Object.keys(e.keys).sort().filter(c=>{let l=e.keys[c];if(t.tag&&!(l.tags??[]).includes(t.tag)||t.needsAttention&&(n?.get(c)?.length??0)===0||t.aiContextUnreviewed&&l.contextSource!==`ai`||t.emptySource&&!lp(l,e.config.sourceLocale)||t.noUsages&&r&&r.has(c)||t.skipTranslate&&!l.skipTranslate)return!1;if(t.plurality?.length){let e=l.plural?`plural`:`single`;if(!t.plurality.includes(e))return!1}if(t.states.length&&!t.states.some(n=>up(e,l,n,t.locale)))return!1;if(t.issues.length){let e=(n?.get(c)??[]).filter(e=>!t.locale||e.locale===t.locale),r=new Set(e.map(e=>e.check));if(!t.issues.some(e=>r.has(e)))return!1}if(i){if(a!==null){if(c.toLowerCase()!==a)return!1}else if(i.startsWith(`^`)){if(!o||!o.test(c))return!1}else if(!(c+` `+(l.context??``)+` `+(l.tags??[]).join(` `)+` `+Object.values(l.values).map(e=>e.value).join(` `)).toLowerCase().includes(s))return!1}return!0})}var pp=[`untranslated`,`placeholder`,`spelling`,`length`,`glossary`],mp=[`untranslated`,`placeholder`,`length`,`glossary`],hp=[`missing`,`machine`,`needs-review`,`reviewed`],gp=[`plural`,`single`],_p={untranslated:`Untranslated`,placeholder:`Placeholder mismatch`,spelling:`Spelling`,length:`Too long`,glossary:`Glossary`},vp={missing:`Missing`,machine:`Machine`,reviewed:`Reviewed`,"needs-review":`Needs review`},yp={plural:`Plural`,single:`Single`};function bp(e){let t=new Map;for(let n of e){let e=t.get(n.key);e?e.push(n):t.set(n.key,[n])}return t}var xp=[`key-asc`,`key-desc`,`created`,`updated`],Sp=[`multilingual`,`bilingual`],Cp={text:``,states:[],issues:[],plurality:[],tag:``,needsAttention:!1,emptySource:!1,aiContextUnreviewed:!1,noUsages:!1,skipTranslate:!1};function wp(e){let t=e.get(`q`)??``,n=e.get(`tag`)??``,r=(e.get(`states`)??``).split(`,`).map(e=>e.trim()).filter(e=>hp.includes(e)),i=(e.get(`issues`)??``).split(`,`).map(e=>e.trim()).filter(e=>pp.includes(e)),a=(e.get(`plurality`)??``).split(`,`).map(e=>e.trim()).filter(e=>gp.includes(e)),o=e.get(`sort`)??``,s=xp.includes(o)?o:`key-asc`,c=e.get(`view`)??``,l=Sp.includes(c)?c:`multilingual`,u=e.get(`locale`)??``;return{filter:{...Cp,text:t,tag:n,states:r,issues:i,plurality:a,needsAttention:e.get(`attention`)===`1`,emptySource:e.get(`emptySource`)===`1`,aiContextUnreviewed:e.get(`aiContext`)===`1`,noUsages:e.get(`noUsages`)===`1`,skipTranslate:e.get(`skipTranslate`)===`1`},sort:s,view:l,locale:u}}function Tp(e){let t=new URLSearchParams,{filter:n,sort:r,view:i,locale:a}=e;return n.text&&t.set(`q`,n.text),n.tag&&t.set(`tag`,n.tag),n.states.length&&t.set(`states`,n.states.join(`,`)),n.issues.length&&t.set(`issues`,n.issues.join(`,`)),n.plurality.length&&t.set(`plurality`,n.plurality.join(`,`)),n.needsAttention&&t.set(`attention`,`1`),n.emptySource&&t.set(`emptySource`,`1`),n.aiContextUnreviewed&&t.set(`aiContext`,`1`),n.noUsages&&t.set(`noUsages`,`1`),n.skipTranslate&&t.set(`skipTranslate`,`1`),r!==`key-asc`&&t.set(`sort`,r),i!==`multilingual`&&t.set(`view`,i),i===`bilingual`&&a&&t.set(`locale`,a),t}var Ep=[`editor`,`analytics`,`glossary`,`screenshots`,`settings`,`activity`,`docs`];function Dp(){let e=location.hash.replace(/^#\/?/,``),t=e.indexOf(`?`),n=t===-1?e:e.slice(0,t),r=t===-1?``:e.slice(t+1);return{route:Ep.includes(n)?n:`editor`,search:r}}var Op=M(Dp().route);window.addEventListener(`hashchange`,()=>{Op.value=Dp().route});var kp=null;function Ap(e){kp=e}function jp(e){kp&&!kp(e)||(location.hash=e)}function Mp(){return Zt(Op)}function Np(){return new URLSearchParams(Dp().search)}function Pp(e){let t=e.toString(),n=`#${Dp().route}${t?`?${t}`:``}`;history.replaceState(null,``,n)}function Fp(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Fp(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function Ip(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Fp(e))&&(r&&(r+=` `),r+=t);return r}var Lp=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},Rp=(e,t)=>({classGroupId:e,validator:t}),zp=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Bp=`-`,Vp=[],Hp=`arbitrary..`,Up=e=>{let t=Kp(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return Gp(e);let n=e.split(Bp);return Wp(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?Lp(i,t):t:i||Vp}return n[e]||Vp}}},Wp=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=Wp(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(Bp):e.slice(t).join(Bp),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},Gp=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?Hp+r:void 0})(),Kp=e=>{let{theme:t,classGroups:n}=e;return qp(n,t)},qp=(e,t)=>{let n=zp();for(let r in e){let i=e[r];Jp(i,n,r,t)}return n},Jp=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];Yp(i,t,n,r)}},Yp=(e,t,n,r)=>{if(typeof e==`string`){Xp(e,t,n);return}if(typeof e==`function`){Zp(e,t,n,r);return}Qp(e,t,n,r)},Xp=(e,t,n)=>{let r=e===``?t:$p(t,e);r.classGroupId=n},Zp=(e,t,n,r)=>{if(em(e)){Jp(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(Rp(n,e))},Qp=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];Jp(o,$p(t,a),n,r)}},$p=(e,t)=>{let n=e,r=t.split(Bp),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=zp(),n.nextPart.set(t,i)),n=i}return n},em=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,tm=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},nm=`!`,rm=`:`,im=[],am=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),om=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===rm){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(nm)?(c=s.slice(0,-1),l=!0):s.startsWith(nm)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return am(t,l,c,u)};if(t){let e=t+rm,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):am(im,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},sm=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},cm=e=>({cache:tm(e.cacheSize),parseClassName:om(e),sortModifiers:sm(e),postfixLookupClassGroupIds:lm(e),...Up(e)}),lm=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},um=/\s+/,dm=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(um),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+nm:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e<b.length;++e){let t=b[e];s.push(v+t)}l=t+(l.length>0?` `+l:l)}return l},fm=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=pm(n))&&(i&&(i+=` `),i+=r);return i},pm=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=pm(e[r]))&&(n&&(n+=` `),n+=t);return n},mm=(e,...t)=>{let n,r,i,a,o=o=>(n=cm(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=dm(e,n);return i(e,a),a};return a=o,(...e)=>a(fm(...e))},hm=[],gm=e=>{let t=t=>t[e]||hm;return t.isThemeGetter=!0,t},_m=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,vm=/^\((?:(\w[\w-]*):)?(.+)\)$/i,ym=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,bm=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,xm=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Sm=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Cm=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,wm=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Tm=e=>ym.test(e),Em=e=>!!e&&!Number.isNaN(Number(e)),Dm=e=>!!e&&Number.isInteger(Number(e)),Om=e=>e.endsWith(`%`)&&Em(e.slice(0,-1)),km=e=>bm.test(e),Am=()=>!0,jm=e=>xm.test(e)&&!Sm.test(e),Mm=()=>!1,Nm=e=>Cm.test(e),Pm=e=>wm.test(e),Fm=e=>!X(e)&&!Z(e),Im=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),Lm=e=>Qm(e,nh,Mm),X=e=>_m.test(e),Rm=e=>Qm(e,rh,jm),zm=e=>Qm(e,ih,Em),Bm=e=>Qm(e,oh,Am),Vm=e=>Qm(e,ah,Mm),Hm=e=>Qm(e,eh,Mm),Um=e=>Qm(e,th,Pm),Wm=e=>Qm(e,sh,Nm),Z=e=>vm.test(e),Gm=e=>$m(e,rh),Km=e=>$m(e,ah),qm=e=>$m(e,eh),Jm=e=>$m(e,nh),Ym=e=>$m(e,th),Xm=e=>$m(e,sh,!0),Zm=e=>$m(e,oh,!0),Qm=(e,t,n)=>{let r=_m.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},$m=(e,t,n=!1)=>{let r=vm.exec(e);return r?r[1]?t(r[1]):n:!1},eh=e=>e===`position`||e===`percentage`,th=e=>e===`image`||e===`url`,nh=e=>e===`length`||e===`size`||e===`bg-size`,rh=e=>e===`length`,ih=e=>e===`number`,ah=e=>e===`family-name`,oh=e=>e===`number`||e===`weight`,sh=e=>e===`shadow`,ch=mm(()=>{let e=gm(`color`),t=gm(`font`),n=gm(`text`),r=gm(`font-weight`),i=gm(`tracking`),a=gm(`leading`),o=gm(`breakpoint`),s=gm(`container`),c=gm(`spacing`),l=gm(`radius`),u=gm(`shadow`),d=gm(`inset-shadow`),f=gm(`text-shadow`),p=gm(`drop-shadow`),m=gm(`blur`),h=gm(`perspective`),g=gm(`aspect`),_=gm(`ease`),v=gm(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),Z,X],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[Z,X,c],T=()=>[Tm,`full`,`auto`,...w()],E=()=>[Dm,`none`,`subgrid`,Z,X],D=()=>[`auto`,{span:[`full`,Dm,Z,X]},Dm,Z,X],ee=()=>[Dm,`auto`,Z,X],te=()=>[`auto`,`min`,`max`,`fr`,Z,X],ne=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],O=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],re=()=>[`auto`,...w()],ie=()=>[Tm,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],ae=()=>[Tm,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],oe=()=>[Tm,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],k=()=>[e,Z,X],se=()=>[...b(),qm,Hm,{position:[Z,X]}],ce=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],le=()=>[`auto`,`cover`,`contain`,Jm,Lm,{size:[Z,X]}],ue=()=>[Om,Gm,Rm],de=()=>[``,`none`,`full`,l,Z,X],fe=()=>[``,Em,Gm,Rm],pe=()=>[`solid`,`dashed`,`dotted`,`double`],me=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],he=()=>[Em,Om,qm,Hm],ge=()=>[``,`none`,m,Z,X],_e=()=>[`none`,Em,Z,X],ve=()=>[`none`,Em,Z,X],A=()=>[Em,Z,X],ye=()=>[Tm,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[km],breakpoint:[km],color:[Am],container:[km],"drop-shadow":[km],ease:[`in`,`out`,`in-out`],font:[Fm],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[km],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[km],shadow:[km],spacing:[`px`,Em],text:[km],"text-shadow":[km],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,Tm,X,Z,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,Z,X]}],"container-named":[Im],columns:[{columns:[Em,X,Z,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[Dm,`auto`,Z,X]}],basis:[{basis:[Tm,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[Em,Tm,`auto`,`initial`,`none`,X]}],grow:[{grow:[``,Em,Z,X]}],shrink:[{shrink:[``,Em,Z,X]}],order:[{order:[Dm,`first`,`last`,`none`,Z,X]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":ee()}],"col-end":[{"col-end":ee()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":ee()}],"row-end":[{"row-end":ee()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":te()}],"auto-rows":[{"auto-rows":te()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...ne(),`normal`]}],"justify-items":[{"justify-items":[...O(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...O()]}],"align-content":[{content:[`normal`,...ne()]}],"align-items":[{items:[...O(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...O(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":ne()}],"place-items":[{"place-items":[...O(),`baseline`]}],"place-self":[{"place-self":[`auto`,...O()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:re()}],mx:[{mx:re()}],my:[{my:re()}],ms:[{ms:re()}],me:[{me:re()}],mbs:[{mbs:re()}],mbe:[{mbe:re()}],mt:[{mt:re()}],mr:[{mr:re()}],mb:[{mb:re()}],ml:[{ml:re()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:ie()}],"inline-size":[{inline:[`auto`,...ae()]}],"min-inline-size":[{"min-inline":[`auto`,...ae()]}],"max-inline-size":[{"max-inline":[`none`,...ae()]}],"block-size":[{block:[`auto`,...oe()]}],"min-block-size":[{"min-block":[`auto`,...oe()]}],"max-block-size":[{"max-block":[`none`,...oe()]}],w:[{w:[s,`screen`,...ie()]}],"min-w":[{"min-w":[s,`screen`,`none`,...ie()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...ie()]}],h:[{h:[`screen`,`lh`,...ie()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...ie()]}],"max-h":[{"max-h":[`screen`,`lh`,...ie()]}],"font-size":[{text:[`base`,n,Gm,Rm]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Zm,Bm]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Om,X]}],"font-family":[{font:[Km,Vm,t]}],"font-features":[{"font-features":[X]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,Z,X]}],"line-clamp":[{"line-clamp":[Em,`none`,Z,zm]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,Z,X]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,Z,X]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:k()}],"text-color":[{text:k()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...pe(),`wavy`]}],"text-decoration-thickness":[{decoration:[Em,`from-font`,`auto`,Z,Rm]}],"text-decoration-color":[{decoration:k()}],"underline-offset":[{"underline-offset":[Em,`auto`,Z,X]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"tab-size":[{tab:[Dm,Z,X]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,Z,X]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,Z,X]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:se()}],"bg-repeat":[{bg:ce()}],"bg-size":[{bg:le()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},Dm,Z,X],radial:[``,Z,X],conic:[Dm,Z,X]},Ym,Um]}],"bg-color":[{bg:k()}],"gradient-from-pos":[{from:ue()}],"gradient-via-pos":[{via:ue()}],"gradient-to-pos":[{to:ue()}],"gradient-from":[{from:k()}],"gradient-via":[{via:k()}],"gradient-to":[{to:k()}],rounded:[{rounded:de()}],"rounded-s":[{"rounded-s":de()}],"rounded-e":[{"rounded-e":de()}],"rounded-t":[{"rounded-t":de()}],"rounded-r":[{"rounded-r":de()}],"rounded-b":[{"rounded-b":de()}],"rounded-l":[{"rounded-l":de()}],"rounded-ss":[{"rounded-ss":de()}],"rounded-se":[{"rounded-se":de()}],"rounded-ee":[{"rounded-ee":de()}],"rounded-es":[{"rounded-es":de()}],"rounded-tl":[{"rounded-tl":de()}],"rounded-tr":[{"rounded-tr":de()}],"rounded-br":[{"rounded-br":de()}],"rounded-bl":[{"rounded-bl":de()}],"border-w":[{border:fe()}],"border-w-x":[{"border-x":fe()}],"border-w-y":[{"border-y":fe()}],"border-w-s":[{"border-s":fe()}],"border-w-e":[{"border-e":fe()}],"border-w-bs":[{"border-bs":fe()}],"border-w-be":[{"border-be":fe()}],"border-w-t":[{"border-t":fe()}],"border-w-r":[{"border-r":fe()}],"border-w-b":[{"border-b":fe()}],"border-w-l":[{"border-l":fe()}],"divide-x":[{"divide-x":fe()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":fe()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...pe(),`hidden`,`none`]}],"divide-style":[{divide:[...pe(),`hidden`,`none`]}],"border-color":[{border:k()}],"border-color-x":[{"border-x":k()}],"border-color-y":[{"border-y":k()}],"border-color-s":[{"border-s":k()}],"border-color-e":[{"border-e":k()}],"border-color-bs":[{"border-bs":k()}],"border-color-be":[{"border-be":k()}],"border-color-t":[{"border-t":k()}],"border-color-r":[{"border-r":k()}],"border-color-b":[{"border-b":k()}],"border-color-l":[{"border-l":k()}],"divide-color":[{divide:k()}],"outline-style":[{outline:[...pe(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[Em,Z,X]}],"outline-w":[{outline:[``,Em,Gm,Rm]}],"outline-color":[{outline:k()}],shadow:[{shadow:[``,`none`,u,Xm,Wm]}],"shadow-color":[{shadow:k()}],"inset-shadow":[{"inset-shadow":[`none`,d,Xm,Wm]}],"inset-shadow-color":[{"inset-shadow":k()}],"ring-w":[{ring:fe()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:k()}],"ring-offset-w":[{"ring-offset":[Em,Rm]}],"ring-offset-color":[{"ring-offset":k()}],"inset-ring-w":[{"inset-ring":fe()}],"inset-ring-color":[{"inset-ring":k()}],"text-shadow":[{"text-shadow":[`none`,f,Xm,Wm]}],"text-shadow-color":[{"text-shadow":k()}],opacity:[{opacity:[Em,Z,X]}],"mix-blend":[{"mix-blend":[...me(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":me()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[Em]}],"mask-image-linear-from-pos":[{"mask-linear-from":he()}],"mask-image-linear-to-pos":[{"mask-linear-to":he()}],"mask-image-linear-from-color":[{"mask-linear-from":k()}],"mask-image-linear-to-color":[{"mask-linear-to":k()}],"mask-image-t-from-pos":[{"mask-t-from":he()}],"mask-image-t-to-pos":[{"mask-t-to":he()}],"mask-image-t-from-color":[{"mask-t-from":k()}],"mask-image-t-to-color":[{"mask-t-to":k()}],"mask-image-r-from-pos":[{"mask-r-from":he()}],"mask-image-r-to-pos":[{"mask-r-to":he()}],"mask-image-r-from-color":[{"mask-r-from":k()}],"mask-image-r-to-color":[{"mask-r-to":k()}],"mask-image-b-from-pos":[{"mask-b-from":he()}],"mask-image-b-to-pos":[{"mask-b-to":he()}],"mask-image-b-from-color":[{"mask-b-from":k()}],"mask-image-b-to-color":[{"mask-b-to":k()}],"mask-image-l-from-pos":[{"mask-l-from":he()}],"mask-image-l-to-pos":[{"mask-l-to":he()}],"mask-image-l-from-color":[{"mask-l-from":k()}],"mask-image-l-to-color":[{"mask-l-to":k()}],"mask-image-x-from-pos":[{"mask-x-from":he()}],"mask-image-x-to-pos":[{"mask-x-to":he()}],"mask-image-x-from-color":[{"mask-x-from":k()}],"mask-image-x-to-color":[{"mask-x-to":k()}],"mask-image-y-from-pos":[{"mask-y-from":he()}],"mask-image-y-to-pos":[{"mask-y-to":he()}],"mask-image-y-from-color":[{"mask-y-from":k()}],"mask-image-y-to-color":[{"mask-y-to":k()}],"mask-image-radial":[{"mask-radial":[Z,X]}],"mask-image-radial-from-pos":[{"mask-radial-from":he()}],"mask-image-radial-to-pos":[{"mask-radial-to":he()}],"mask-image-radial-from-color":[{"mask-radial-from":k()}],"mask-image-radial-to-color":[{"mask-radial-to":k()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[Em]}],"mask-image-conic-from-pos":[{"mask-conic-from":he()}],"mask-image-conic-to-pos":[{"mask-conic-to":he()}],"mask-image-conic-from-color":[{"mask-conic-from":k()}],"mask-image-conic-to-color":[{"mask-conic-to":k()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:se()}],"mask-repeat":[{mask:ce()}],"mask-size":[{mask:le()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,Z,X]}],filter:[{filter:[``,`none`,Z,X]}],blur:[{blur:ge()}],brightness:[{brightness:[Em,Z,X]}],contrast:[{contrast:[Em,Z,X]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,Xm,Wm]}],"drop-shadow-color":[{"drop-shadow":k()}],grayscale:[{grayscale:[``,Em,Z,X]}],"hue-rotate":[{"hue-rotate":[Em,Z,X]}],invert:[{invert:[``,Em,Z,X]}],saturate:[{saturate:[Em,Z,X]}],sepia:[{sepia:[``,Em,Z,X]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,Z,X]}],"backdrop-blur":[{"backdrop-blur":ge()}],"backdrop-brightness":[{"backdrop-brightness":[Em,Z,X]}],"backdrop-contrast":[{"backdrop-contrast":[Em,Z,X]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,Em,Z,X]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Em,Z,X]}],"backdrop-invert":[{"backdrop-invert":[``,Em,Z,X]}],"backdrop-opacity":[{"backdrop-opacity":[Em,Z,X]}],"backdrop-saturate":[{"backdrop-saturate":[Em,Z,X]}],"backdrop-sepia":[{"backdrop-sepia":[``,Em,Z,X]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,Z,X]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[Em,`initial`,Z,X]}],ease:[{ease:[`linear`,`initial`,_,Z,X]}],delay:[{delay:[Em,Z,X]}],animate:[{animate:[`none`,v,Z,X]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,Z,X]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:_e()}],"rotate-x":[{"rotate-x":_e()}],"rotate-y":[{"rotate-y":_e()}],"rotate-z":[{"rotate-z":_e()}],scale:[{scale:ve()}],"scale-x":[{"scale-x":ve()}],"scale-y":[{"scale-y":ve()}],"scale-z":[{"scale-z":ve()}],"scale-3d":[`scale-3d`],skew:[{skew:A()}],"skew-x":[{"skew-x":A()}],"skew-y":[{"skew-y":A()}],transform:[{transform:[Z,X,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:ye()}],"translate-x":[{"translate-x":ye()}],"translate-y":[{"translate-y":ye()}],"translate-z":[{"translate-z":ye()}],"translate-none":[`translate-none`],zoom:[{zoom:[Dm,Z,X]}],accent:[{accent:k()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:k()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,Z,X]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":k()}],"scrollbar-track-color":[{"scrollbar-track":k()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,Z,X]}],fill:[{fill:[`none`,...k()]}],"stroke-w":[{stroke:[Em,Gm,Rm,zm]}],stroke:[{stroke:[`none`,...k()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function lh(...e){return ch(Ip(e))}async function uh(e){if(navigator.clipboard){await navigator.clipboard.writeText(e);return}let t=document.createElement(`textarea`);t.value=e,t.style.cssText=`position:fixed;top:-9999px;left:-9999px;opacity:0`,document.body.appendChild(t),t.select(),document.execCommand(`copy`),document.body.removeChild(t)}var dh={class:`pointer-events-none fixed bottom-4 right-4 z-[200] flex w-80 flex-col gap-2`},fh=[`onClick`],ph=F({__name:`Toaster`,setup(e){let t=bh();return(e,n)=>(z(),V(Vr,{to:`body`},[H(`div`,dh,[U(Cl,{name:`toast`},{default:P(()=>[(z(!0),B(R,null,I(N(t).toasts,e=>(z(),B(`button`,{key:e.id,type:`button`,class:A(N(lh)(`pointer-events-auto flex items-center rounded-md border bg-card px-4 py-3 text-left text-sm text-card-foreground shadow-lg`,e.variant===`success`&&`border-state-reviewed/50 text-state-reviewed`,e.variant===`error`&&`border-destructive/50 text-destructive`)),onClick:t=>N(yh)(e.id)},j(e.message),11,fh))),128))]),_:1})])]))}}),mh=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},hh=mh(ph,[[`__scopeId`,`data-v-e9967100`]]),gh=Yt({toasts:[]}),_h=0;function vh(e,t,n=4e3){let r=_h++;gh.toasts.push({id:r,message:e,variant:t}),window.setTimeout(()=>yh(r),n)}function yh(e){let t=gh.toasts.findIndex(t=>t.id===e);t!==-1&&gh.toasts.splice(t,1)}var Q=Object.assign(e=>vh(e,`default`),{success:e=>vh(e,`success`),error:e=>vh(e,`error`),info:e=>vh(e,`default`)});function bh(){return gh}var xh=new Set,Sh=null;function Ch(){Sh||(Sh=new EventSource(`/api/events`),Sh.addEventListener(`state-changed`,()=>wh()))}function wh(){Q(`Reloaded — external change detected`);for(let e of[...xh])try{e()}catch{}}function Th(e){xh.add(e),Yi(()=>{xh.delete(e)})}var Eh=M(null);function Dh(e){Eh.value=e,jp(`editor`)}var Oh=M(null);function kh(e){Oh.value=e,Dh({text:e})}var Ah=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,jh=Ip,Mh=(e,t)=>n=>{if(t?.variants==null)return jh(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=Ah(t)||Ah(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return jh(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};function Nh(e){return typeof e==`string`?`'${e}'`:new Ph().serialize(e)}var Ph=function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?e.localeCompare(t):n===`number`&&r===`number`?e-t:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}return this.serializeObjectEntries(r,Object.entries(e))}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t?.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e}();function Fh(e,t){return e===t||Nh(e)===Nh(t)}function Ih(e,t,n){let r=e.findIndex(e=>Fh(e,t)),i=e.findIndex(e=>Fh(e,n));if(r===-1||i===-1)return[];let[a,o]=[r,i].sort((e,t)=>e-t);return e.slice(a,o+1)}function Lh(e,t=-1/0,n=1/0){return Math.min(n,Math.max(t,e))}function Rh(e,t){let n=typeof e==`string`&&!t?`${e}Context`:t,r=Symbol(n);return[t=>{let n=yr(r,t);if(n||n===null)return n;throw Error(`Injection \`${r.toString()}\` not found. Component must be used within ${Array.isArray(e)?`one of the following components: ${e.join(`, `)}`:`\`${e}\``}`)},e=>(vr(r,e),e)]}function zh(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function Bh(e,t,n){let r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),r.dispatchEvent(i)}function Vh(e){return e==null}function Hh(e,t){let n=un();return Cr(()=>{n.value=e()},{...t,flush:t?.flush??`sync`}),Zt(n)}function Uh(e,t){return Ne()?(Pe(e,t),!0):!1}function Wh(){let e=new Set,t=t=>{e.delete(t)};return{on:n=>{e.add(n);let r=()=>t(n);return Uh(r),{off:r}},off:t,trigger:(...t)=>Promise.all(Array.from(e).map(e=>e(...t))),clear:()=>{e.clear()}}}function Gh(e){let t=!1,n,r=Me(!0);return((...i)=>(t||=(n=r.run(()=>e(...i)),!0),n))}var Kh=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var qh=e=>e!==void 0,Jh=Object.prototype.toString,Yh=e=>Jh.call(e)===`[object Object]`,Xh=Zh();function Zh(){var e,t;return Kh&&!!(!((e=window)==null||(e=e.navigator)==null)&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function Qh(e){return Array.isArray(e)?e:[e]}function $h(e){return e||Es()}function eg(e){if(!Kh)return e;let t=0,n,r,i=()=>{--t,r&&t<=0&&(r.stop(),n=void 0,r=void 0)};return((...a)=>(t+=1,r||(r=Me(!0),n=r.run(()=>e(...a))),Uh(i),n))}function tg(e){return Yt(ln(e)?new Proxy({},{get(t,n,r){return N(Reflect.get(e.value,n,r))},set(t,n,r){return ln(e.value[n])&&!ln(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return Reflect.has(e.value,n)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}):e)}function ng(e){return tg(q(e))}function rg(e,...t){let n=t.flat(),r=n[0];return ng(()=>Object.fromEntries(typeof r==`function`?Object.entries(yn(e)).filter(([e,t])=>!r(mn(t),e)):Object.entries(yn(e)).filter(e=>!n.includes(e[0]))))}function ig(e,t=1e4){return vn((n,r)=>{let i=mn(e),a,o=()=>setTimeout(()=>{i=mn(e),r()},mn(t));return Uh(()=>{clearTimeout(a)}),{get(){return n(),i},set(e){i=e,r(),clearTimeout(a),a=o()}}})}function ag(e,t){$h(t)&&Ji(e,t)}function og(e,t,n={}){let{immediate:r=!0,immediateCallback:i=!1}=n,a=un(!1),o;function s(){o&&=(clearTimeout(o),void 0)}function c(){a.value=!1,s()}function l(...n){i&&e(),s(),a.value=!0,o=setTimeout(()=>{a.value=!1,o=void 0,e(...n)},mn(t))}return r&&(a.value=!0,Kh&&l()),Uh(c),{isPending:Qt(a),start:l,stop:c}}function sg(e,t,n){return Er(e,t,{...n,immediate:!0})}var cg=Kh?window:void 0;Kh&&window.document,Kh&&window.navigator,Kh&&window.location;function lg(e){let t=mn(e);return t?.$el??t}function ug(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=q(()=>{let t=Qh(mn(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return sg(()=>[n.value?.map(e=>lg(e))??[cg].filter(e=>e!=null),Qh(mn(n.value?e[1]:e[0])),Qh(N(n.value?e[2]:e[1])),mn(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=Yh(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}function dg(){let e=un(!1),t=Es();return t&&Gi(()=>{e.value=!0},t),e}function fg(e){let t=dg();return q(()=>(t.value,!!e()))}function pg(e){return typeof e==`function`?e:typeof e==`string`?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function mg(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]==`object`?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);let{target:i=cg,eventName:a=`keydown`,passive:o=!1,dedupe:s=!1}=r,c=pg(t);return ug(i,a,e=>{e.repeat&&mn(s)||c(e)&&n(e)},o)}function hg(e){return JSON.parse(JSON.stringify(e))}function gg(e,t,n={}){let{window:r=cg,...i}=n,a,o=fg(()=>r&&`ResizeObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=Er(q(()=>{let t=mn(e);return Array.isArray(t)?t.map(e=>lg(e)):[lg(t)]}),e=>{if(s(),o.value&&r){a=new ResizeObserver(t);for(let t of e)t&&a.observe(t,i)}},{immediate:!0,flush:`post`}),l=()=>{s(),c()};return Uh(l),{isSupported:o,stop:l}}function _g(e,t,n,r={}){var i,a;let{clone:o=!1,passive:s=!1,eventName:c,deep:l=!1,defaultValue:u,shouldEmit:d}=r,f=Es(),p=n||f?.emit||(f==null||(i=f.$emit)==null?void 0:i.bind(f))||(f==null||(a=f.proxy)==null||(a=a.$emit)==null?void 0:a.bind(f?.proxy)),m=c;t||=`modelValue`,m||=`update:${t.toString()}`;let h=e=>o?typeof o==`function`?o(e):hg(e):e,g=()=>qh(e[t])?h(e[t]):u,_=e=>{d?d(e)&&p(m,e):p(m,e)};if(s){let n=M(g()),r=!1;return Er(()=>e[t],e=>{r||(r=!0,n.value=h(e),Qn(()=>r=!1))}),Er(n,n=>{!r&&(n!==e[t]||l)&&_(n)},{deep:l}),n}else return q({get(){return g()},set(e){_(e)}})}function vg(e){return e?e.flatMap(e=>e.type===R?vg(e.children):[e]):[]}var yg=[`INPUT`,`TEXTAREA`];function bg(e,t,n,r={}){if(!t||r.enableIgnoredElement&&yg.includes(t.nodeName))return null;let{arrowKeyOptions:i=`both`,attributeName:a=`[data-reka-collection-item]`,itemsArray:o=[],loop:s=!0,dir:c=`ltr`,preventScroll:l=!0,focus:u=!1}=r,[d,f,p,m,h,g]=[e.key===`ArrowRight`,e.key===`ArrowLeft`,e.key===`ArrowUp`,e.key===`ArrowDown`,e.key===`Home`,e.key===`End`],_=p||m,v=d||f;if(!h&&!g&&(!_&&!v||i===`vertical`&&v||i===`horizontal`&&_))return null;let y=n?Array.from(n.querySelectorAll(a)):o;if(!y.length)return null;l&&e.preventDefault();let b=null;return v||_?b=xg(y,t,{goForward:_?m:c===`ltr`?d:f,loop:s}):h?b=y.at(0)||null:g&&(b=y.at(-1)||null),u&&b?.focus(),b}function xg(e,t,n,r=e.includes(t)?e.length:e.length+1){if(--r===0)return null;let i=e.indexOf(t),a;if(a=i===-1?n.goForward?0:e.length-1:n.goForward?i+1:i-1,!n.loop&&(a<0||a>=e.length))return null;let o=e[(a+e.length)%e.length];return o?o.hasAttribute(`disabled`)&&o.getAttribute(`disabled`)!==`false`?xg(e,o,n,r):o:null}var[Sg,Cg]=Rh(`ConfigProvider`);function wg(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function Tg(e,t,n=`.`,r){if(!wg(t))return Tg(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(Array.isArray(a)&&Array.isArray(i[t])?i[t]=[...a,...i[t]]:wg(a)&&wg(i[t])?i[t]=Tg(a,i[t],(n?`${n}.`:``)+t.toString(),r):i[t]=a))}return i}function Eg(e){return(...t)=>t.reduce((t,n)=>Tg(t,n,``,e),{})}var Dg=Eg(),Og=eg(()=>{let e=M(new Map),t=M(),n=q(()=>{for(let t of e.value.values())if(t)return!0;return!1}),r=Sg({scrollBody:M(!0)}),i=null,a=()=>{document.body.style.paddingRight=``,document.body.style.marginRight=``,document.body.style.pointerEvents=``,document.documentElement.style.removeProperty(`--scrollbar-width`),document.body.style.overflow=t.value??``,Xh&&i?.(),t.value=void 0};return Er(n,(e,o)=>{if(!Kh)return;if(!e){o&&a();return}t.value===void 0&&(t.value=document.body.style.overflow);let s=window.innerWidth-document.documentElement.clientWidth,c={padding:s,margin:0},l=r.scrollBody?.value?typeof r.scrollBody.value==`object`?Dg({padding:r.scrollBody.value.padding===!0?s:r.scrollBody.value.padding,margin:r.scrollBody.value.margin===!0?s:r.scrollBody.value.margin},c):c:{padding:0,margin:0};s>0&&(document.body.style.paddingRight=typeof l.padding==`number`?`${l.padding}px`:String(l.padding),document.body.style.marginRight=typeof l.margin==`number`?`${l.margin}px`:String(l.margin),document.documentElement.style.setProperty(`--scrollbar-width`,`${s}px`),document.body.style.overflow=`hidden`),Xh&&(i=ug(document,`touchmove`,e=>jg(e),{passive:!1})),Qn(()=>{n.value&&(document.body.style.pointerEvents=`none`,document.body.style.overflow=`hidden`)})},{immediate:!0,flush:`sync`}),e});function kg(e){let t=Math.random().toString(36).substring(2,7),n=Og();n.value.set(t,e??!1);let r=q({get:()=>n.value.get(t)??!1,set:e=>n.value.set(t,e)});return ag(()=>{n.value.delete(t)}),r}function Ag(e){let t=window.getComputedStyle(e);if(t.overflowX===`scroll`||t.overflowY===`scroll`||t.overflowX===`auto`&&e.clientWidth<e.scrollWidth||t.overflowY===`auto`&&e.clientHeight<e.scrollHeight)return!0;{let t=e.parentNode;return!(t instanceof Element)||t.tagName===`BODY`?!1:Ag(t)}}function jg(e){let t=e||window.event,n=t.target;return n instanceof Element&&Ag(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}function Mg(e){let t=M(!1);function n(){t.value=!0}function r(n){Qn(()=>{t.value=!1,e?.(n)})}return{isComposing:t,handleCompositionStart:n,handleCompositionEnd:r}}function Ng(e){let t=Sg({dir:M(`ltr`)});return q(()=>e?.value||t.dir?.value||`ltr`)}function Pg(e){let t=Es(),n=t?.type.emits,r={};return n?.length||console.warn(`No emitted event found. Please check component: ${t?.type.__name}`),n?.forEach(t=>{r[oe(O(t))]=(...n)=>e(t,...n)}),r}function Fg(e){let t=q(()=>N(e)),n=q(()=>new Intl.Collator(`en`,{usage:`search`,...t.value}));return{startsWith:(e,t)=>t.length===0?!0:(e=e.normalize(`NFC`),t=t.normalize(`NFC`),n.value.compare(e.slice(0,t.length),t)===0),endsWith:(e,t)=>t.length===0?!0:(e=e.normalize(`NFC`),t=t.normalize(`NFC`),n.value.compare(e.slice(-t.length),t)===0),contains:(e,t)=>{if(t.length===0)return!0;e=e.normalize(`NFC`),t=t.normalize(`NFC`);let r=0,i=t.length;for(;r+i<=e.length;r++){let a=e.slice(r,r+i);if(n.value.compare(t,a)===0)return!0}return!1}}}var Ig=0;function Lg(){Cr(e=>{if(!Kh)return;let t=document.querySelectorAll(`[data-reka-focus-guard]`);document.body.insertAdjacentElement(`afterbegin`,t[0]??Rg()),document.body.insertAdjacentElement(`beforeend`,t[1]??Rg()),Ig++,e(()=>{Ig===1&&document.querySelectorAll(`[data-reka-focus-guard]`).forEach(e=>e.remove()),Ig--})})}function Rg(){let e=document.createElement(`span`);return e.setAttribute(`data-reka-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}function zg(e){return q(()=>mn(e)?!!lg(e)?.closest(`form`):!0)}function Bg(){let e=Es(),t=M(),n=q(()=>r());qi(()=>{n.value!==r()&&pn(t)});function r(){return t.value&&`$el`in t.value&&[`#text`,`#comment`].includes(t.value.$el.nodeName)?t.value.$el.nextElementSibling:lg(t)}let i=Object.assign({},e.exposed),a={};for(let t in e.props)Object.defineProperty(a,t,{enumerable:!0,configurable:!0,get:()=>e.props[t]});if(Object.keys(i).length>0)for(let e in i)Object.defineProperty(a,e,{enumerable:!0,configurable:!0,get:()=>i[e]});Object.defineProperty(a,"$el",{enumerable:!0,configurable:!0,get:()=>e.vnode.el}),e.exposed=a;function o(n){if(t.value=n,n&&(Object.defineProperty(a,"$el",{enumerable:!0,configurable:!0,get:()=>n instanceof Element?n:n.$el}),!(n instanceof Element)&&!Object.hasOwn(n,`$el`))){let t=n.$.exposed,r=Object.assign({},a);for(let e in t)Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>t[e]});e.exposed=r}}return{forwardRef:o,currentRef:t,currentElement:n}}function Vg(e){let t=Es(),n=Object.keys(t?.type.props??{}).reduce((e,n)=>{let r=(t?.type.props[n]).default;return r!==void 0&&(e[n]=r),e},{}),r=Sn(e);return q(()=>{let e={},i=t?.vnode.props??{};return Object.keys(i).forEach(t=>{e[O(t)]=i[t]}),Object.keys({...n,...e}).reduce((e,t)=>(r.value[t]!==void 0&&(e[t]=r.value[t]),e),{})})}function Hg(e,t){let n=Vg(e),r=t?Pg(t):{};return q(()=>({...n.value,...r}))}function Ug(e,t){let n=ig(!1,300);Uh(()=>{n.value=!1});let r=M(null),i=Wh();function a(){r.value=null,n.value=!1}function o(e,t){if(!t)return;let i=e.currentTarget,a={x:e.clientX,y:e.clientY},o=Gg(a,Wg(a,i.getBoundingClientRect()),1),s=Kg(t.getBoundingClientRect());r.value=Jg([...o,...s]),n.value=!0}return Cr(n=>{if(e.value&&t.value){let r=e=>o(e,t.value),i=t=>o(t,e.value);e.value.addEventListener(`pointerleave`,r),t.value.addEventListener(`pointerleave`,i),n(()=>{e.value?.removeEventListener(`pointerleave`,r),t.value?.removeEventListener(`pointerleave`,i)})}}),Cr(n=>{if(r.value){let o=n=>{if(!r.value||!(n.target instanceof Element))return;let o=n.target,s={x:n.clientX,y:n.clientY},c=e.value?.contains(o)||t.value?.contains(o),l=!qg(s,r.value),u=!!o.closest(`[data-grace-area-trigger]`);c?a():(l||u)&&(a(),i.trigger())};e.value?.ownerDocument.addEventListener(`pointermove`,o),n(()=>e.value?.ownerDocument.removeEventListener(`pointermove`,o))}}),{isPointerInTransit:n,onPointerExit:i.on}}function Wg(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function Gg(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function Kg(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function qg(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function Jg(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Yg(t)}function Yg(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var Xg=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},Zg=new WeakMap,Qg=new WeakMap,$g={},e_=0,t_=function(e){return e&&(e.host||t_(e.parentNode))},n_=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=t_(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},r_=function(e,t,n,r){var i=n_(t,Array.isArray(e)?e:[e]);$g[n]||($g[n]=new WeakMap);var a=$g[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(Zg.get(e)||0)+1,l=(a.get(e)||0)+1;Zg.set(e,c),a.set(e,l),o.push(e),c===1&&i&&Qg.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),e_++,function(){o.forEach(function(e){var t=Zg.get(e)-1,i=a.get(e)-1;Zg.set(e,t),a.set(e,i),t||(Qg.has(e)||e.removeAttribute(r),Qg.delete(e)),i||e.removeAttribute(n)}),e_--,e_||(Zg=new WeakMap,Zg=new WeakMap,Qg=new WeakMap,$g={})}},i_=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Xg(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),r_(r,i,n,`aria-hidden`)):function(){return null}};function a_(e){let t;Er(()=>lg(e),e=>{let n=!1;try{n=!!e?.closest(`[popover]:not(:popover-open)`)}catch{}e&&!n?t=i_(e):t&&t()}),Yi(()=>{t&&t()})}var o_=0;function s_(e,t=`reka`){if(e)return e;let n;return n=`useId`in uu?ai?.():Sg({useId:void 0}).useId?.()??`${++o_}`,t?`${t}-${n}`:n}function c_(){return{ALT:`Alt`,ARROW_DOWN:`ArrowDown`,ARROW_LEFT:`ArrowLeft`,ARROW_RIGHT:`ArrowRight`,ARROW_UP:`ArrowUp`,BACKSPACE:`Backspace`,CAPS_LOCK:`CapsLock`,CONTROL:`Control`,DELETE:`Delete`,END:`End`,ENTER:`Enter`,ESCAPE:`Escape`,F1:`F1`,F10:`F10`,F11:`F11`,F12:`F12`,F2:`F2`,F3:`F3`,F4:`F4`,F5:`F5`,F6:`F6`,F7:`F7`,F8:`F8`,F9:`F9`,HOME:`Home`,META:`Meta`,PAGE_DOWN:`PageDown`,PAGE_UP:`PageUp`,SHIFT:`Shift`,SPACE:` `,TAB:`Tab`,CTRL:`Control`,ASTERISK:`*`,SPACE_CODE:`Space`}}function l_(e){let t=M(),n=q(()=>t.value?.width??0),r=q(()=>t.value?.height??0);return Gi(()=>{let n=lg(e);if(n){t.value={width:n.offsetWidth,height:n.offsetHeight};let e=new ResizeObserver(e=>{if(!Array.isArray(e)||!e.length)return;let r=e[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=n.offsetWidth,a=n.offsetHeight;t.value={width:i,height:a}});return e.observe(n,{box:`border-box`}),()=>e.unobserve(n)}else t.value=void 0}),{width:n,height:r}}function u_(e,t){let n=M(e);function r(e){return t[n.value][e]??n.value}return{state:n,dispatch:e=>{n.value=r(e)}}}function d_(e){let t=ig(``,1e3);return{search:t,handleTypeaheadSearch:(n,r)=>{if(t.value+=n,e)e(n);else{let e=zh(),n=r.map(e=>({...e,textValue:e.value?.textValue??e.ref.textContent?.trim()??``})),i=n.find(t=>t.ref===e),a=p_(n.map(e=>e.textValue),t.value,i?.textValue),o=n.find(e=>e.textValue===a);return o&&o.ref.focus(),o?.ref}},resetTypeahead:()=>{t.value=``}}}function f_(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function p_(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=f_(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function m_(e,t){let n=M({}),r=M(`none`),i=M(e),a=e.value?`mounted`:`unmounted`,o,s=t.value?.ownerDocument.defaultView??cg,{state:c,dispatch:l}=u_(a,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}}),u=e=>{if(Kh){let n=new CustomEvent(e,{bubbles:!1,cancelable:!1});t.value?.dispatchEvent(n)}};Er(e,async(e,i)=>{let a=i!==e;if(await Qn(),a){let a=r.value,o=h_(t.value);e?(l(`MOUNT`),u(`enter`),o===`none`&&u(`after-enter`)):o===`none`||o===`undefined`||n.value?.display===`none`?(l(`UNMOUNT`),u(`leave`),u(`after-leave`)):i&&a!==o?(l(`ANIMATION_OUT`),u(`leave`)):(l(`UNMOUNT`),u(`after-leave`))}},{immediate:!0});let d=e=>{let n=h_(t.value),r=n.includes(CSS.escape(e.animationName)),a=c.value===`mounted`?`enter`:`leave`;if(e.target===t.value&&r&&(u(`after-${a}`),l(`ANIMATION_END`),!i.value)){let e=t.value.style.animationFillMode;t.value.style.animationFillMode=`forwards`,o=s?.setTimeout(()=>{t.value?.style.animationFillMode===`forwards`&&(t.value.style.animationFillMode=e)})}e.target===t.value&&n===`none`&&l(`ANIMATION_END`)},f=e=>{e.target===t.value&&(r.value=h_(t.value))},p=Er(t,(e,t)=>{e?(n.value=getComputedStyle(e),e.addEventListener(`animationstart`,f),e.addEventListener(`animationcancel`,d),e.addEventListener(`animationend`,d)):(l(`ANIMATION_END`),o!==void 0&&s?.clearTimeout(o),t?.removeEventListener(`animationstart`,f),t?.removeEventListener(`animationcancel`,d),t?.removeEventListener(`animationend`,d))},{immediate:!0}),m=Er(c,()=>{let e=h_(t.value);r.value=c.value===`mounted`?e:`none`});return Yi(()=>{p(),m()}),{isPresent:q(()=>[`mounted`,`unmountSuspended`].includes(c.value))}}function h_(e){return e&&getComputedStyle(e).animationName||`none`}var g_=F({name:`Presence`,props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:t,expose:n}){let{present:r,forceMount:i}=yn(e),a=M(),{isPresent:o}=m_(r,a);n({present:o});let s=t.default({present:o.value});s=vg(s||[]);let c=Es();if(s&&s?.length>1){let e=c?.parent?.type.name?`<${c.parent.type.name} />`:`component`;throw Error([`Detected an invalid children for \`${e}\` for \`Presence\` component.`,``,"Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.",`You can apply a few solutions:`,["Provide a single child element so that `presence` directive attach correctly.",`Ensure the first child is an actual element instead of a raw text node or comment node.`].map(e=>` - ${e}`).join(`
6
6
  `)].join(`
7
- `))}return()=>i.value||r.value||o.value?Ks(t.default({present:o.value})[0],{ref:e=>{let t=lg(e);return t?.hasAttribute===void 0||(t?.hasAttribute(`data-reka-popper-content-wrapper`)?a.value=t.firstElementChild:a.value=t),t}}):null}}),__=F({name:`PrimitiveSlot`,inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;let e=vg(n.default()),r=e.findIndex(e=>e.type!==ts);if(r===-1)return e;let i=e[r];delete i.props?.ref;let a=i.props?K(t,i.props):t,o=gs({...i,props:{}},a);return e.length===1?o:(e[r]=o,e)}}}),v_=[`area`,`img`,`input`],y_=F({name:`Primitive`,inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:`div`}},setup(e,{attrs:t,slots:n}){let r=e.asChild?`template`:e.as;return typeof r==`string`&&v_.includes(r)?()=>Ks(r,t):r===`template`?()=>Ks(__,t,{default:n.default}):()=>Ks(e.as,t,{default:n.default})}});function b_(){let e=M();return{primitiveElement:e,currentElement:q(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:lg(e))}}var[x_,S_]=Rh(`DialogRoot`),C_=F({inheritAttrs:!1,__name:`DialogRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=_g(n,`open`,t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),i=M(),a=M(),{modal:o}=yn(n);return S_({open:r,modal:o,openModal:()=>{r.value=!0},onOpenChange:e=>{r.value=e},onOpenToggle:()=>{r.value=!r.value},contentId:``,titleId:``,descriptionId:``,triggerElement:i,contentElement:a}),(e,t)=>L(e.$slots,`default`,{open:N(r),close:()=>r.value=!1})}}),w_=F({__name:`DialogClose`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e;Bg();let n=x_();return(e,r)=>(z(),V(N(y_),K(t,{type:e.as===`button`?`button`:void 0,onClick:r[0]||=e=>N(n).onOpenChange(!1)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`type`]))}}),T_=`dismissableLayer.pointerDownOutside`,E_=`dismissableLayer.focusOutside`;function D_(e,t){if(!(t instanceof Element))return!1;let n=t.closest(`[data-dismissable-layer]`),r=e.dataset.dismissableLayer===``?e:e.querySelector(`[data-dismissable-layer]`),i=Array.from(e.ownerDocument.querySelectorAll(`[data-dismissable-layer]`));return!!(n&&(r===n||i.indexOf(r)<i.indexOf(n)))}function O_(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=M(!1),a=M(()=>{});return Cr(o=>{if(!Kh||!mn(n))return;let s=async n=>{let o=n.target;if(!(!t?.value||!o)){if(D_(t.value,o)){i.value=!1;return}if(n.target&&!i.value){let t={originalEvent:n};function i(){Bh(T_,e,t)}n.pointerType===`touch`?(r.removeEventListener(`click`,a.value),a.value=i,r.addEventListener(`click`,a.value,{once:!0})):i()}else r.removeEventListener(`click`,a.value);i.value=!1}},c=window.setTimeout(()=>{r.addEventListener(`pointerdown`,s)},0);o(()=>{window.clearTimeout(c),r.removeEventListener(`pointerdown`,s),r.removeEventListener(`click`,a.value)})}),{onPointerDownCapture:()=>{mn(n)&&(i.value=!0)}}}function k_(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=M(!1);return Cr(a=>{if(!Kh||!mn(n))return;let o=async n=>{if(!t?.value)return;await Qn(),await Qn();let r=n.target;!t.value||!r||D_(t.value,r)||n.target&&!i.value&&Bh(E_,e,{originalEvent:n})};r.addEventListener(`focusin`,o),a(()=>r.removeEventListener(`focusin`,o))}),{onFocusCapture:()=>{mn(n)&&(i.value=!0)},onBlurCapture:()=>{mn(n)&&(i.value=!1)}}}var A_=Yt({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set}),j_=F({__name:`DismissableLayer`,props:{disableOutsidePointerEvents:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,{forwardRef:i,currentElement:a}=Bg(),o=q(()=>a.value?.ownerDocument??globalThis.document),s=q(()=>A_.layersRoot),c=q(()=>a.value?Array.from(s.value).indexOf(a.value):-1),l=q(()=>A_.layersWithOutsidePointerEventsDisabled.size>0),u=q(()=>{let e=Array.from(s.value),[t]=[...A_.layersWithOutsidePointerEventsDisabled].slice(-1),n=e.indexOf(t);return c.value>=n}),d=O_(async e=>{let t=[...A_.branches].some(t=>t?.contains(e.target));!u.value||t||(r(`pointerDownOutside`,e),r(`interactOutside`,e),await Qn(),e.defaultPrevented||r(`dismiss`))},a),f=k_(e=>{[...A_.branches].some(t=>t?.contains(e.target))||(r(`focusOutside`,e),r(`interactOutside`,e),e.defaultPrevented||r(`dismiss`))},a);return mg(`Escape`,e=>{c.value===s.value.size-1&&(r(`escapeKeyDown`,e),e.defaultPrevented||r(`dismiss`))}),Cr(e=>{a.value&&(n.disableOutsidePointerEvents&&(A_.layersWithOutsidePointerEventsDisabled.size===0&&(A_.originalBodyPointerEvents=o.value.body.style.pointerEvents,o.value.body.style.pointerEvents=`none`),A_.layersWithOutsidePointerEventsDisabled.add(a.value)),s.value.add(a.value),e(()=>{n.disableOutsidePointerEvents&&A_.layersWithOutsidePointerEventsDisabled.size===1&&!Vh(A_.originalBodyPointerEvents)&&(o.value.body.style.pointerEvents=A_.originalBodyPointerEvents)}))}),Cr(e=>{e(()=>{a.value&&(s.value.delete(a.value),A_.layersWithOutsidePointerEventsDisabled.delete(a.value))})}),(e,t)=>(z(),V(N(y_),{ref:N(i),"as-child":e.asChild,as:e.as,"data-dismissable-layer":``,style:me({pointerEvents:l.value?u.value?`auto`:`none`:void 0}),onFocusCapture:N(f).onFocusCapture,onBlurCapture:N(f).onBlurCapture,onPointerdownCapture:N(d).onPointerDownCapture},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`style`,`onFocusCapture`,`onBlurCapture`,`onPointerdownCapture`]))}}),M_=Gh(()=>M([]));function N_(){let e=M_();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=P_(e.value,t),e.value.unshift(t)},remove(t){e.value=P_(e.value,t),e.value[0]?.resume()}}}function P_(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}var F_=`focusScope.autoFocusOnMount`,I_=`focusScope.autoFocusOnUnmount`,L_={bubbles:!1,cancelable:!0};function R_(e,{select:t=!1}={}){let n=zh();for(let r of e)if(W_(r,{select:t}),zh()!==n)return!0}function z_(e){let t=B_(e);return[V_(t,e),V_(t.reverse(),e)]}function B_(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function V_(e,t){for(let n of e)if(!H_(n,{upTo:t}))return n}function H_(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function U_(e){return e instanceof HTMLInputElement&&`select`in e}function W_(e,{select:t=!1}={}){if(e&&e.focus){let n=zh();e.focus({preventScroll:!0}),e!==n&&U_(e)&&t&&e.select()}}var G_=F({__name:`FocusScope`,props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`mountAutoFocus`,`unmountAutoFocus`],setup(e,{emit:t}){let n=e,r=t,{currentRef:i,currentElement:a}=Bg(),o=M(null),s=N_(),c=Yt({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});Cr(e=>{if(!Kh)return;let t=a.value;if(!n.trapped)return;function r(e){if(c.paused||!t)return;let n=e.target;t.contains(n)?o.value=n:W_(o.value,{select:!0})}function i(e){if(c.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||W_(o.value,{select:!0}))}function s(e){let n=o.value;n!==null&&e.some(e=>e.removedNodes.length>0)&&(t.contains(n)||W_(t))}document.addEventListener(`focusin`,r),document.addEventListener(`focusout`,i);let l=new MutationObserver(s);t&&l.observe(t,{childList:!0,subtree:!0}),e(()=>{document.removeEventListener(`focusin`,r),document.removeEventListener(`focusout`,i),l.disconnect()})}),Cr(async e=>{let t=a.value;if(await Qn(),!t)return;s.add(c);let n=zh();if(!t.contains(n)){let e=new CustomEvent(F_,L_);t.addEventListener(F_,e=>r(`mountAutoFocus`,e)),t.dispatchEvent(e),e.defaultPrevented||(R_(B_(t),{select:!0}),zh()===n&&W_(t))}e(()=>{t.removeEventListener(F_,e=>r(`mountAutoFocus`,e));let e=new CustomEvent(I_,L_),i=e=>{r(`unmountAutoFocus`,e)};t.addEventListener(I_,i),t.dispatchEvent(e),t.setAttribute(`data-focus-scope-unmounting`,``),setTimeout(()=>{e.defaultPrevented||W_(n??document.body,{select:!0}),t.removeEventListener(I_,i),s.remove(c),t.removeAttribute(`data-focus-scope-unmounting`)},0)})});function l(e){if(!n.loop&&!n.trapped||c.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,r=zh();if(t&&r){let t=e.currentTarget,[i,a]=z_(t);i&&a?!e.shiftKey&&r===a?(e.preventDefault(),n.loop&&W_(i,{select:!0})):e.shiftKey&&r===i&&(e.preventDefault(),n.loop&&W_(a,{select:!0})):r===t&&e.preventDefault()}}return(e,t)=>(z(),V(N(y_),{ref_key:`currentRef`,ref:i,tabindex:`-1`,"as-child":e.asChild,as:e.as,onKeydown:l},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}}),K_=`menu.itemSelect`,q_=[`Enter`,` `],J_=[`ArrowDown`,`PageUp`,`Home`],Y_=[`ArrowUp`,`PageDown`,`End`],X_=[...J_,...Y_];[...q_],[...q_];function Z_(e){return e?`open`:`closed`}function Q_(e){let t=zh();for(let n of e)if(n===t||(n.focus(),zh()!==t))return}function $_(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function ev(e,t){return t?$_({x:e.clientX,y:e.clientY},t):!1}function tv(e){return e.pointerType===`mouse`}var nv=F({__name:`DialogContentImpl`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=x_(),{forwardRef:a,currentElement:o}=Bg();return i.titleId||=s_(void 0,`reka-dialog-title`),i.descriptionId||=s_(void 0,`reka-dialog-description`),Gi(()=>{i.contentElement=o,zh()!==document.body&&(i.triggerElement.value=zh())}),(e,t)=>(z(),V(N(G_),{"as-child":``,loop:``,trapped:n.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(j_),K({id:N(i).contentId,ref:N(a),as:e.as,"as-child":e.asChild,"disable-outside-pointer-events":e.disableOutsidePointerEvents,role:`dialog`,"aria-describedby":N(i).descriptionId,"aria-labelledby":N(i).titleId,"data-state":N(Z_)(N(i).open.value)},e.$attrs,{onDismiss:t[0]||=e=>N(i).onOpenChange(!1),onEscapeKeyDown:t[1]||=e=>r(`escapeKeyDown`,e),onFocusOutside:t[2]||=e=>r(`focusOutside`,e),onInteractOutside:t[3]||=e=>r(`interactOutside`,e),onPointerDownOutside:t[4]||=e=>r(`pointerDownOutside`,e)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`as`,`as-child`,`disable-outside-pointer-events`,`aria-describedby`,`aria-labelledby`,`data-state`])]),_:3},8,[`trapped`]))}}),rv=F({__name:`DialogContentModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=x_(),a=Pg(r),{forwardRef:o,currentElement:s}=Bg();return a_(s),(e,t)=>(z(),V(nv,K({...n,...N(a)},{ref:N(o),"trap-focus":N(i).open.value,"disable-outside-pointer-events":!0,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(e.preventDefault(),N(i).triggerElement.value?.focus())},onPointerDownOutside:t[1]||=e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()},onFocusOutside:t[2]||=e=>{e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),iv=F({__name:`DialogContentNonModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=Pg(t);Bg();let i=x_(),a=M(!1),o=M(!1);return(e,t)=>(z(),V(nv,K({...n,...N(r)},{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(a.value||N(i).triggerElement.value?.focus(),e.preventDefault()),a.value=!1,o.value=!1},onInteractOutside:t[1]||=e=>{e.defaultPrevented||(a.value=!0,e.detail.originalEvent.type===`pointerdown`&&(o.value=!0));let t=e.target;N(i).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&o.value&&e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),av=F({__name:`DialogContent`,props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=x_(),a=Pg(r),{forwardRef:o}=Bg();return(e,t)=>(z(),V(N(g_),{present:e.forceMount||N(i).open.value},{default:P(()=>[N(i).modal.value?(z(),V(rv,K({key:0,ref:N(o)},{...n,...N(a),...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(iv,K({key:1,ref:N(o)},{...n,...N(a),...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),ov=F({__name:`DialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(e){let t=e;Bg();let n=x_();return(e,r)=>(z(),V(N(y_),K(t,{id:N(n).descriptionId}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),sv=F({__name:`DialogOverlayImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=x_();return kg(!0),Bg(),(e,n)=>(z(),V(N(y_),{as:e.as,"as-child":e.asChild,"data-state":N(t).open.value?`open`:`closed`,style:{"pointer-events":`auto`},onPointerdown:n[0]||=Jl(()=>{},[`left`,`self`,`prevent`])},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`]))}}),cv=F({__name:`DialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=x_(),{forwardRef:n}=Bg();return(e,r)=>N(t)?.modal.value?(z(),V(N(g_),{key:0,present:e.forceMount||N(t).open.value},{default:P(()=>[U(sv,K(e.$attrs,{ref:N(n),as:e.as,"as-child":e.asChild}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`as`,`as-child`])]),_:3},8,[`present`])):G(`v-if`,!0)}}),lv=F({__name:`Teleport`,props:{to:{type:null,required:!1,default:`body`},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=dg();return(e,n)=>N(t)||e.forceMount?(z(),V(Vr,{key:0,to:e.to,disabled:e.disabled,defer:e.defer},[L(e.$slots,`default`)],8,[`to`,`disabled`,`defer`])):G(`v-if`,!0)}}),uv=F({__name:`DialogPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),dv=F({__name:`DialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(e){let t=e,n=x_();return Bg(),(e,r)=>(z(),V(N(y_),K(t,{id:N(n).titleId}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),fv=`data-reka-collection-item`;function pv(e={}){let{key:t=``,isProvider:n=!1}=e,r=`${t}CollectionProvider`,i;n?(i={collectionRef:M(),itemMap:M(new Map)},vr(r,i)):i=yr(r);let a=(e=!1)=>{let t=i.collectionRef.value;if(!t)return[];let n=Array.from(t.querySelectorAll(`[${fv}]`)),r=Array.from(i.itemMap.value.values()).sort((e,t)=>n.indexOf(e.ref)-n.indexOf(t.ref));return e?r:r.filter(e=>e.ref.dataset.disabled!==``)},o=F({name:`CollectionSlot`,inheritAttrs:!1,setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:a}=b_();return Er(a,()=>{i.collectionRef.value=a.value}),()=>Ks(__,{ref:r,...n},t)}}),s=F({name:`CollectionItem`,inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:a}=b_();return Cr(t=>{if(a.value){let n=on(a.value);i.itemMap.value.set(n,{ref:a.value,value:e.value}),t(()=>i.itemMap.value.delete(n))}}),()=>Ks(__,{...n,[fv]:``,ref:r},t)}});return{getItems:a,reactiveItems:q(()=>Array.from(i.itemMap.value.values())),itemMapSize:q(()=>i.itemMap.value.size),CollectionSlot:o,CollectionItem:s}}var mv=F({__name:`VisuallyHidden`,props:{feature:{type:String,required:!1,default:`focusable`},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(z(),V(N(y_),{as:e.as,"as-child":e.asChild,"aria-hidden":e.feature===`focusable`?`true`:void 0,"data-hidden":e.feature===`fully-hidden`?``:void 0,tabindex:e.feature===`fully-hidden`?`-1`:void 0,style:{position:`absolute`,border:0,width:`1px`,height:`1px`,padding:0,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,clipPath:`inset(50%)`,whiteSpace:`nowrap`,wordWrap:`normal`,top:`-1px`,left:`-1px`}},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`aria-hidden`,`data-hidden`,`tabindex`]))}}),hv=F({inheritAttrs:!1,__name:`VisuallyHiddenInputBubble`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(e){let t=e,{primitiveElement:n,currentElement:r}=b_();return Er(q(()=>t.checked??t.value),(e,t)=>{if(!r.value)return;let n=r.value,i=window.HTMLInputElement.prototype,a=Object.getOwnPropertyDescriptor(i,`value`).set;if(a&&e!==t){let t=new Event(`input`,{bubbles:!0}),r=new Event(`change`,{bubbles:!0});a.call(n,e),n.dispatchEvent(t),n.dispatchEvent(r)}}),(e,r)=>(z(),V(mv,K({ref_key:`primitiveElement`,ref:n},{...t,...e.$attrs},{as:`input`}),null,16))}}),gv=F({inheritAttrs:!1,__name:`VisuallyHiddenInput`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(e){let t=e,n=q(()=>typeof t.value==`object`&&Array.isArray(t.value)&&t.value.length===0&&t.required),r=q(()=>typeof t.value==`string`||typeof t.value==`number`||typeof t.value==`boolean`||t.value===null||t.value===void 0?[{name:t.name,value:t.value}]:typeof t.value==`object`&&Array.isArray(t.value)?t.value.flatMap((e,n)=>typeof e==`object`?Object.entries(e).map(([e,r])=>({name:`${t.name}[${n}][${e}]`,value:r})):{name:`${t.name}[${n}]`,value:e}):t.value!==null&&typeof t.value==`object`&&!Array.isArray(t.value)?Object.entries(t.value).map(([e,n])=>({name:`${t.name}[${e}]`,value:n})):[]);return(e,i)=>(z(),B(R,null,[G(` We render single input if it's required `),n.value?(z(),V(hv,K({key:e.name},{...t,...e.$attrs},{name:e.name,value:e.value}),null,16,[`name`,`value`])):(z(!0),B(R,{key:1},I(r.value,n=>(z(),V(hv,K({key:n.name},{ref_for:!0},{...t,...e.$attrs},{name:n.name,value:n.value}),null,16,[`name`,`value`]))),128))],2112))}});function _v(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>vv(e,t,n)):vv(e,t,n)}function vv(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:Fh(e,t)}var yv=`rovingFocusGroup.onEntryFocus`,bv={bubbles:!1,cancelable:!0},xv={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Sv(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Cv(e,t,n){let r=Sv(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return xv[r]}function wv(e,t=!1){let n=zh();for(let r of e)if(r===n||(r.focus({preventScroll:t}),zh()!==n))return}function Tv(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[Ev,Dv]=Rh(`ListboxRoot`),Ov=F({__name:`ListboxRoot`,props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},orientation:{type:String,required:!1,default:`vertical`},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},selectionBehavior:{type:String,required:!1,default:`toggle`},highlightOnHover:{type:Boolean,required:!1},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`],setup(e,{expose:t,emit:n}){let r=e,i=n,{multiple:a,highlightOnHover:o,orientation:s,disabled:c,selectionBehavior:l,dir:u}=yn(r),{getItems:d}=pv({isProvider:!0}),{handleTypeaheadSearch:f}=d_(),{primitiveElement:p,currentElement:m}=b_(),h=c_(),g=Ng(u),_=zg(m),v=M(),y=M(!1),b=M(!0),x=_g(r,`modelValue`,i,{defaultValue:r.defaultValue??(a.value?[]:void 0),passive:r.modelValue===void 0,deep:!0});function S(e){if(y.value=!0,r.multiple){let t=Array.isArray(x.value)?[...x.value]:[],n=t.findIndex(t=>vv(t,e,r.by));r.selectionBehavior===`toggle`?(n===-1?t.push(e):t.splice(n,1),x.value=t):(x.value=[e],v.value=e)}else r.selectionBehavior===`toggle`&&vv(x.value,e,r.by)?x.value=void 0:x.value=e;setTimeout(()=>{y.value=!1},1)}let C=M(null),w=M(null),T=M(!1),E=M(!1),D=Wh(),ee=Wh(),te=Wh();function ne(){return d().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)}function O(e,t=!0,n){e&&(C.value=e,(n??b.value)&&C.value.focus(),t&&C.value.scrollIntoView({block:`nearest`}),i(`highlight`,d().find(t=>t.ref===e)))}function re(e){if(T.value)te.trigger(e);else{let t=d().find(t=>vv(t.value,e,r.by));t&&(C.value=t.ref,O(t.ref))}}function ie(e){C.value&&C.value.isConnected&&(e.preventDefault(),e.stopPropagation(),E.value||C.value.click())}function ae(e){if(b.value){if(y.value=!0,T.value)ee.trigger(e);else{let t=e.altKey||e.ctrlKey||e.metaKey;if(t&&e.key===`a`&&a.value){let t=d();x.value=[...t.map(e=>e.value)],e.preventDefault();let n=t.at(-1);n&&O(n.ref)}else if(!t){let t=f(e.key,d());t&&O(t)}}setTimeout(()=>{y.value=!1},1)}}function oe(){E.value=!0}function k(){Qn(()=>{E.value=!1})}function se(){Qn(()=>{ue(new KeyboardEvent(`keydown`,{key:`PageUp`}))})}function ce(e){let t=C.value;t?.isConnected&&(w.value=t),C.value=null,i(`leave`,e)}function le(e){let t=new CustomEvent(`listbox.entryFocus`,{bubbles:!1,cancelable:!0});if(e.currentTarget?.dispatchEvent(t),i(`entryFocus`,t),!t.defaultPrevented)if(w.value)O(w.value);else{let e=ne()?.[0];O(e)}}function ue(e){let t=Cv(e,s.value,g.value);if(!t)return;let n=ne();if(C.value){if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let e=n.indexOf(C.value);n=n.slice(e+1)}de(e,n[0])}if(n.length){let e=!C.value&&t===`prev`?n.length-1:0;O(n[e])}if(T.value)return ee.trigger(e)}function de(e,t){if(!(T.value||r.selectionBehavior!==`replace`||!a.value||!Array.isArray(x.value))&&!((e.altKey||e.ctrlKey||e.metaKey)&&!e.shiftKey)&&e.shiftKey){let n=d().filter(e=>e.ref.dataset.disabled!==``),r=n.find(e=>e.ref===t)?.value;if(e.key===h.END?r=n.at(-1)?.value:e.key===h.HOME&&(r=n[0]?.value),!r||!v.value)return;x.value=Ih(n.map(e=>e.value),v.value,r)}}async function fe(e,t=!0){if(Kh)if(await Qn(),T.value)D.trigger(e);else{let e=ne(),n=e.find(e=>e.dataset.state===`checked`),r=t?void 0:!1;n?O(n,t,r):e.length&&O(e[0],t,r)}}let pe=!1;return Er(x,()=>{if(!y.value){let e=pe;pe=!0,Qn(()=>{fe(void 0,e)})}},{immediate:!0,deep:!0}),t({highlightedElement:C,highlightItem:re,highlightFirstItem:se,highlightSelected:fe,getItems:d}),Dv({modelValue:x,onValueChange:S,multiple:a,orientation:s,dir:g,disabled:c,highlightOnHover:o,highlightedElement:C,isVirtual:T,virtualFocusHook:D,virtualKeydownHook:ee,virtualHighlightHook:te,by:r.by,firstValue:v,selectionBehavior:l,focusable:b,onLeave:ce,onEnter:le,changeHighlight:O,onKeydownEnter:ie,onKeydownNavigation:ue,onKeydownTypeAhead:ae,onCompositionStart:oe,onCompositionEnd:k,highlightFirstItem:se}),(e,t)=>(z(),V(N(y_),{ref_key:`primitiveElement`,ref:p,as:e.as,"as-child":e.asChild,dir:N(g),"data-disabled":N(c)?``:void 0,onPointerleave:ce,onFocusout:t[0]||=async e=>{let t=e.relatedTarget||e.target;await Qn(),C.value&&N(m)&&!N(m).contains(t)&&ce(e)}},{default:P(()=>[L(e.$slots,`default`,{modelValue:N(x)}),N(_)&&e.name?(z(),V(N(gv),{key:0,name:e.name,value:N(x),disabled:N(c),required:e.required},null,8,[`name`,`value`,`disabled`,`required`])):G(`v-if`,!0)]),_:3},8,[`as`,`as-child`,`dir`,`data-disabled`]))}}),kv=F({__name:`ListboxContent`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{CollectionSlot:t}=pv(),n=Ev(),r=ig(!1,10);return(e,i)=>(z(),V(N(t),null,{default:P(()=>[U(N(y_),{role:`listbox`,as:e.as,"as-child":e.asChild,tabindex:N(n).focusable.value?N(n).highlightedElement.value?`-1`:`0`:`-1`,"aria-orientation":N(n).orientation.value,"aria-multiselectable":!!N(n).multiple.value,"data-orientation":N(n).orientation.value,onMousedown:i[0]||=Jl(e=>r.value=!0,[`left`]),onFocus:i[1]||=e=>{N(r)||N(n).onEnter(e)},onKeydown:[i[2]||=Xl(e=>{N(n).orientation.value===`vertical`&&(e.key===`ArrowLeft`||e.key===`ArrowRight`)||N(n).orientation.value===`horizontal`&&(e.key===`ArrowUp`||e.key===`ArrowDown`)||(e.preventDefault(),N(n).focusable.value&&N(n).onKeydownNavigation(e))},[`down`,`up`,`left`,`right`,`home`,`end`]),Xl(N(n).onKeydownEnter,[`enter`]),N(n).onKeydownTypeAhead]},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`tabindex`,`aria-orientation`,`aria-multiselectable`,`data-orientation`,`onKeydown`])]),_:3}))}}),Av=F({__name:`ListboxFilter`,props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`input`}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=_g(n,`modelValue`,t,{defaultValue:``,passive:n.modelValue===void 0}),i=Ev(),{primitiveElement:a,currentElement:o}=b_(),s=q(()=>n.disabled||i.disabled.value||!1),c=M();Tr(()=>c.value=i.highlightedElement.value?.id),Gi(()=>{i.focusable.value=!1,setTimeout(()=>{n.autoFocus&&o.value?.focus()},1)}),Yi(()=>{i.focusable.value=!0});let{isComposing:l,handleCompositionStart:u,handleCompositionEnd:d}=Mg(e=>{r.value=e.target.value,i.onCompositionEnd(),i.highlightFirstItem()});function f(){i.onCompositionStart(),u()}function p(e){l.value||(r.value=e.target.value,i.highlightFirstItem())}function m(e){l.value||(e.preventDefault(),i.onKeydownNavigation(e))}function h(e){l.value||i.onKeydownEnter(e)}return(e,t)=>(z(),V(N(y_),{ref_key:`primitiveElement`,ref:a,as:e.as,"as-child":e.asChild,value:N(r),disabled:s.value?``:void 0,"data-disabled":s.value?``:void 0,"aria-disabled":s.value??void 0,"aria-activedescendant":c.value,type:`text`,onKeydown:[Xl(m,[`down`,`up`,`home`,`end`]),Xl(h,[`enter`])],onInput:p,onCompositionstart:f,onCompositionend:N(d)},{default:P(()=>[L(e.$slots,`default`,{modelValue:N(r)})]),_:3},8,[`as`,`as-child`,`value`,`disabled`,`data-disabled`,`aria-disabled`,`aria-activedescendant`,`onCompositionend`]))}}),jv=`listbox.select`,[Mv,Nv]=Rh(`ListboxItem`),Pv=F({__name:`ListboxItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=s_(void 0,`reka-listbox-item`),{CollectionItem:a}=pv(),{forwardRef:o,currentElement:s}=Bg(),c=Ev(),l=q(()=>s.value!=null&&s.value===c.highlightedElement.value),u=q(()=>_v(c.modelValue.value,n.value,c.by)),d=q(()=>c.disabled.value||n.disabled);async function f(e){r(`select`,e),!e?.defaultPrevented&&!d.value&&e&&(c.onValueChange(n.value),c.changeHighlight(s.value))}function p(e){Bh(jv,f,{originalEvent:e,value:n.value})}return Nv({isSelected:u}),(e,t)=>(z(),V(N(a),{value:e.value},{default:P(()=>[Js([l.value,u.value,d.value,N(c).focusable.value],()=>U(N(y_),K({id:N(i)},e.$attrs,{ref:N(o),role:`option`,tabindex:N(c).focusable.value?l.value?`0`:`-1`:-1,"aria-selected":u.value,as:e.as,"as-child":e.asChild,disabled:d.value?``:void 0,"data-disabled":d.value?``:void 0,"data-highlighted":l.value?``:void 0,"data-state":u.value?`checked`:`unchecked`,onClick:p,onKeydown:Xl(Jl(p,[`prevent`]),[`space`]),onPointermove:t[0]||=()=>{N(c).highlightedElement.value!==N(s)&&N(c).highlightOnHover.value&&N(c).changeHighlight(N(s),!1,!1)}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`tabindex`,`aria-selected`,`as`,`as-child`,`disabled`,`data-disabled`,`data-highlighted`,`data-state`,`onKeydown`]),t,1)]),_:3},8,[`value`]))}}),Fv=F({__name:`ListboxItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e;Bg();let n=Mv();return(e,r)=>N(n).isSelected.value?(z(),V(N(y_),K({key:0,"aria-hidden":`true`},t),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):G(`v-if`,!0)}}),[Iv,Lv]=Rh(`PopperRoot`),Rv=F({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let t=M();return Lv({anchor:t,onAnchorChange:e=>t.value=e}),(e,t)=>L(e.$slots,`default`)}}),zv=F({__name:`PopperAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n,currentElement:r}=Bg(),i=Iv();return wr(()=>{i.onAnchorChange(t.reference??r.value)}),(e,t)=>(z(),V(N(y_),{ref:N(n),as:e.as,"as-child":e.asChild},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}});function Bv(e){return e!==null}function Vv(e){return{name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=Hv(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}}function Hv(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var Uv=[`top`,`right`,`bottom`,`left`],Wv=Math.min,Gv=Math.max,Kv=Math.round,qv=Math.floor,Jv=e=>({x:e,y:e}),Yv={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Xv(e,t,n){return Gv(e,Wv(t,n))}function Zv(e,t){return typeof e==`function`?e(t):e}function Qv(e){return e.split(`-`)[0]}function $v(e){return e.split(`-`)[1]}function ey(e){return e===`x`?`y`:`x`}function ty(e){return e===`y`?`height`:`width`}function ny(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function ry(e){return ey(ny(e))}function iy(e,t,n){n===void 0&&(n=!1);let r=$v(e),i=ry(e),a=ty(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=py(o)),[o,py(o)]}function ay(e){let t=py(e);return[oy(e),t,oy(t)]}function oy(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var sy=[`left`,`right`],cy=[`right`,`left`],ly=[`top`,`bottom`],uy=[`bottom`,`top`];function dy(e,t,n){switch(e){case`top`:case`bottom`:return n?t?cy:sy:t?sy:cy;case`left`:case`right`:return t?ly:uy;default:return[]}}function fy(e,t,n,r){let i=$v(e),a=dy(Qv(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(oy)))),a}function py(e){let t=Qv(e);return Yv[t]+e.slice(t.length)}function my(e){return{top:0,right:0,bottom:0,left:0,...e}}function hy(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:my(e)}function gy(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function _y(e,t,n){let{reference:r,floating:i}=e,a=ny(t),o=ry(t),s=ty(o),c=Qv(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch($v(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function vy(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Zv(t,e),p=hy(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=gy(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=gy(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var yy=50,by=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:vy},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=_y(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<yy&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=_y(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},xy=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=Zv(e,t)||{};if(l==null)return{};let d=hy(u),f={x:n,y:r},p=ry(i),m=ty(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=Wv(d[_],T),D=Wv(d[v],T),ee=E,te=C-h[m]-D,ne=C/2-h[m]/2+w,O=Xv(ee,ne,te),re=!c.arrow&&$v(i)!=null&&ne!==O&&a.reference[m]/2-(ne<ee?E:D)-h[m]/2<0,ie=re?ne<ee?ne-ee:ne-te:0;return{[p]:f[p]+ie,data:{[p]:O,centerOffset:ne-O-ie,...re&&{alignmentOffset:ie}},reset:re}}}),Sy=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Zv(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=Qv(r),_=ny(o),v=Qv(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[py(o)]:ay(o)),x=p!==`none`;!d&&x&&b.push(...fy(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=iy(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==ny(t))||T.every(e=>ny(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=ny(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function Cy(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function wy(e){return Uv.some(t=>e[t]>=0)}var Ty=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=Zv(e,t);switch(i){case`referenceHidden`:{let e=Cy(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:wy(e)}}}case`escaped`:{let e=Cy(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:wy(e)}}}default:return{}}}}},Ey=new Set([`left`,`top`]);async function Dy(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Qv(n),s=$v(n),c=ny(n)===`y`,l=Ey.has(o)?-1:1,u=a&&c?-1:1,d=Zv(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Oy=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Dy(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},ky=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Zv(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=ny(Qv(i)),p=ey(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=Xv(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=Xv(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Ay=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Zv(e,t),u={x:n,y:r},d=ny(i),f=ey(d),p=u[f],m=u[d],h=Zv(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Ey.has(Qv(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},jy=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=Zv(e,t),u=await o.detectOverflow(t,l),d=Qv(i),f=$v(i),p=ny(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=Wv(h-u[g],v),x=Wv(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=Gv(u.left,0),t=Gv(u.right,0),n=Gv(u.top,0),r=Gv(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:Gv(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:Gv(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function My(){return typeof window<`u`}function Ny(e){return Iy(e)?(e.nodeName||``).toLowerCase():`#document`}function Py(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Fy(e){return((Iy(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Iy(e){return My()?e instanceof Node||e instanceof Py(e).Node:!1}function Ly(e){return My()?e instanceof Element||e instanceof Py(e).Element:!1}function Ry(e){return My()?e instanceof HTMLElement||e instanceof Py(e).HTMLElement:!1}function zy(e){return!My()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Py(e).ShadowRoot}function By(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Zy(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Vy(e){return/^(table|td|th)$/.test(Ny(e))}function Hy(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Uy=/transform|translate|scale|rotate|perspective|filter/,Wy=/paint|layout|strict|content/,Gy=e=>!!e&&e!==`none`,Ky;function qy(e){let t=Ly(e)?Zy(e):e;return Gy(t.transform)||Gy(t.translate)||Gy(t.scale)||Gy(t.rotate)||Gy(t.perspective)||!Yy()&&(Gy(t.backdropFilter)||Gy(t.filter))||Uy.test(t.willChange||``)||Wy.test(t.contain||``)}function Jy(e){let t=$y(e);for(;Ry(t)&&!Xy(t);){if(qy(t))return t;if(Hy(t))return null;t=$y(t)}return null}function Yy(){return Ky??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ky}function Xy(e){return/^(html|body|#document)$/.test(Ny(e))}function Zy(e){return Py(e).getComputedStyle(e)}function Qy(e){return Ly(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function $y(e){if(Ny(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||zy(e)&&e.host||Fy(e);return zy(t)?t.host:t}function eb(e){let t=$y(e);return Xy(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ry(t)&&By(t)?t:eb(t)}function tb(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=eb(e),i=r===e.ownerDocument?.body,a=Py(r);if(i){let e=nb(a);return t.concat(a,a.visualViewport||[],By(r)?r:[],e&&n?tb(e):[])}else return t.concat(r,tb(r,[],n))}function nb(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function rb(e){let t=Zy(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Ry(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Kv(n)!==a||Kv(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function ib(e){return Ly(e)?e:e.contextElement}function ab(e){let t=ib(e);if(!Ry(t))return Jv(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=rb(t),o=(a?Kv(n.width):n.width)/r,s=(a?Kv(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var ob=Jv(0);function sb(e){let t=Py(e);return!Yy()||!t.visualViewport?ob:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function cb(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Py(e)?!1:t}function lb(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=ib(e),o=Jv(1);t&&(r?Ly(r)&&(o=ab(r)):o=ab(e));let s=cb(a,n,r)?sb(a):Jv(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=Py(a),t=r&&Ly(r)?Py(r):r,n=e,i=nb(n);for(;i&&r&&t!==n;){let e=ab(i),t=i.getBoundingClientRect(),r=Zy(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Py(i),i=nb(n)}}return gy({width:u,height:d,x:c,y:l})}function ub(e,t){let n=Qy(e).scrollLeft;return t?t.left+n:lb(Fy(e)).left+n}function db(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-ub(e,n),y:n.top+t.scrollTop}}function fb(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Fy(r),s=t?Hy(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Jv(1),u=Jv(0),d=Ry(r);if((d||!d&&!a)&&((Ny(r)!==`body`||By(o))&&(c=Qy(r)),d)){let e=lb(r);l=ab(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?db(o,c):Jv(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function pb(e){return Array.from(e.getClientRects())}function mb(e){let t=Fy(e),n=Qy(e),r=e.ownerDocument.body,i=Gv(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Gv(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+ub(e),s=-n.scrollTop;return Zy(r).direction===`rtl`&&(o+=Gv(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var hb=25;function gb(e,t){let n=Py(e),r=Fy(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Yy();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=ub(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=hb&&(a-=o)}else l<=hb&&(a+=l);return{width:a,height:o,x:s,y:c}}function _b(e,t){let n=lb(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Ry(e)?ab(e):Jv(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function vb(e,t,n){let r;if(t===`viewport`)r=gb(e,n);else if(t===`document`)r=mb(Fy(e));else if(Ly(t))r=_b(t,n);else{let n=sb(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return gy(r)}function yb(e,t){let n=$y(e);return n===t||!Ly(n)||Xy(n)?!1:Zy(n).position===`fixed`||yb(n,t)}function bb(e,t){let n=t.get(e);if(n)return n;let r=tb(e,[],!1).filter(e=>Ly(e)&&Ny(e)!==`body`),i=null,a=Zy(e).position===`fixed`,o=a?$y(e):e;for(;Ly(o)&&!Xy(o);){let t=Zy(o),n=qy(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||By(o)&&!n&&yb(e,o))?r=r.filter(e=>e!==o):i=t,o=$y(o)}return t.set(e,r),r}function xb(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Hy(t)?[]:bb(t,this._c):[].concat(n),r],o=vb(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=vb(t,a[e],i);s=Gv(n.top,s),c=Wv(n.right,c),l=Wv(n.bottom,l),u=Gv(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function Sb(e){let{width:t,height:n}=rb(e);return{width:t,height:n}}function Cb(e,t,n){let r=Ry(t),i=Fy(t),a=n===`fixed`,o=lb(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=Jv(0);function l(){c.x=ub(i)}if(r||!r&&!a)if((Ny(t)!==`body`||By(i))&&(s=Qy(t)),r){let e=lb(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?db(i,s):Jv(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function wb(e){return Zy(e).position===`static`}function Tb(e,t){if(!Ry(e)||Zy(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Fy(e)===n&&(n=n.ownerDocument.body),n}function Eb(e,t){let n=Py(e);if(Hy(e))return n;if(!Ry(e)){let t=$y(e);for(;t&&!Xy(t);){if(Ly(t)&&!wb(t))return t;t=$y(t)}return n}let r=Tb(e,t);for(;r&&Vy(r)&&wb(r);)r=Tb(r,t);return r&&Xy(r)&&wb(r)&&!qy(r)?n:r||Jy(e)||n}var Db=async function(e){let t=this.getOffsetParent||Eb,n=this.getDimensions,r=await n(e.floating);return{reference:Cb(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Ob(e){return Zy(e).direction===`rtl`}var kb={convertOffsetParentRelativeRectToViewportRelativeRect:fb,getDocumentElement:Fy,getClippingRect:xb,getOffsetParent:Eb,getElementRects:Db,getClientRects:pb,getDimensions:Sb,getScale:ab,isElement:Ly,isRTL:Ob};function Ab(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function jb(e,t){let n=null,r,i=Fy(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=qv(d),h=qv(i.clientWidth-(u+f)),g=qv(i.clientHeight-(d+p)),_=qv(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:Gv(0,Wv(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!Ab(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function Mb(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=ib(e),u=i||a?[...l?tb(l):[],...t?tb(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?jb(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?lb(e):null;c&&g();function g(){let t=lb(e);h&&!Ab(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Nb=Oy,Pb=ky,Fb=Sy,Ib=jy,Lb=Ty,Rb=xy,zb=Ay,Bb=(e,t,n)=>{let r=new Map,i={platform:kb,...n},a={...i.platform,_c:r};return by(e,t,{...i,platform:a})};function Vb(e){return typeof e==`object`&&!!e&&`$el`in e}function Hb(e){if(Vb(e)){let t=e.$el;return Iy(t)&&Ny(t)===`#comment`?null:t}return e}function Ub(e){return typeof e==`function`?e():N(e)}function Wb(e){return{name:`arrow`,options:e,fn(t){let n=Hb(Ub(e.element));return n==null?{}:Rb({element:n,padding:e.padding}).fn(t)}}}function Gb(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Kb(e,t){let n=Gb(e);return Math.round(t*n)/n}function qb(e,t,n){n===void 0&&(n={});let r=n.whileElementsMounted,i=q(()=>Ub(n.open)??!0),a=q(()=>Ub(n.middleware)),o=q(()=>Ub(n.placement)??`bottom`),s=q(()=>Ub(n.strategy)??`absolute`),c=q(()=>Ub(n.transform)??!0),l=q(()=>Hb(e.value)),u=q(()=>Hb(t.value)),d=M(0),f=M(0),p=M(s.value),m=M(o.value),h=un({}),g=M(!1),_=q(()=>{let e={position:p.value,left:`0`,top:`0`};if(!u.value)return e;let t=Kb(u.value,d.value),n=Kb(u.value,f.value);return c.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...Gb(u.value)>=1.5&&{willChange:`transform`}}:{position:p.value,left:t+`px`,top:n+`px`}}),v;function y(){if(l.value==null||u.value==null)return;let e=i.value;Bb(l.value,u.value,{middleware:a.value,placement:o.value,strategy:s.value}).then(t=>{d.value=t.x,f.value=t.y,p.value=t.strategy,m.value=t.placement,h.value=t.middlewareData,g.value=e!==!1})}function b(){typeof v==`function`&&(v(),v=void 0)}function x(){if(b(),r===void 0){y();return}if(l.value!=null&&u.value!=null){v=r(l.value,u.value,y);return}}function S(){i.value||(g.value=!1)}return Er([a,o,s,i],y,{flush:`sync`}),Er([l,u],x,{flush:`sync`}),Er(i,S,{flush:`sync`}),Ne()&&Pe(b),{x:Qt(d),y:Qt(f),strategy:Qt(p),placement:Qt(m),middlewareData:Qt(h),isPositioned:Qt(g),floatingStyles:_,update:y}}var Jb={side:`bottom`,sideOffset:0,sideFlip:!0,align:`center`,alignOffset:0,alignFlip:!0,arrowPadding:0,hideShiftedArrow:!0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:`partial`,hideWhenDetached:!1,positionStrategy:`fixed`,updatePositionStrategy:`optimized`,prioritizePosition:!1},[Yb,Xb]=Rh(`PopperContent`),Zb=F({inheritAttrs:!1,__name:`PopperContent`,props:Da({side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...Jb}),emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,i=Iv(),{forwardRef:a,currentElement:o}=Bg(),s=M(),c=M(),{width:l,height:u}=l_(c),d=q(()=>n.side+(n.align===`center`?``:`-${n.align}`)),f=q(()=>typeof n.collisionPadding==`number`?n.collisionPadding:{top:0,right:0,bottom:0,left:0,...n.collisionPadding}),p=q(()=>Array.isArray(n.collisionBoundary)?n.collisionBoundary:[n.collisionBoundary]),m=q(()=>({padding:f.value,boundary:p.value.filter(Bv),altBoundary:p.value.length>0})),h=q(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),g=Hh(()=>[Nb({mainAxis:n.sideOffset+u.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&Fb({...m.value,...h.value}),n.avoidCollisions&&Pb({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky===`partial`?zb():void 0,...m.value}),!n.prioritizePosition&&n.avoidCollisions&&Fb({...m.value,...h.value}),Ib({...m.value,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--reka-popper-available-width`,`${n}px`),o.setProperty(`--reka-popper-available-height`,`${r}px`),o.setProperty(`--reka-popper-anchor-width`,`${i}px`),o.setProperty(`--reka-popper-anchor-height`,`${a}px`)}}),c.value&&Wb({element:c.value,padding:n.arrowPadding}),Vv({arrowWidth:l.value,arrowHeight:u.value}),n.hideWhenDetached&&Lb({strategy:`referenceHidden`,...m.value})]),{floatingStyles:_,placement:v,isPositioned:y,middlewareData:b,update:x}=qb(q(()=>n.reference??i.anchor.value),s,{strategy:n.positionStrategy,placement:d,whileElementsMounted:(...e)=>Mb(...e,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy===`always`}),middleware:g}),S=q(()=>Hv(v.value)[0]),C=q(()=>Hv(v.value)[1]);wr(()=>{y.value&&r(`placed`)});let w=q(()=>{let e=b.value.arrow?.centerOffset!==0;return n.hideShiftedArrow&&e}),T=M(``);return Cr(()=>{o.value&&(T.value=window.getComputedStyle(o.value).zIndex)}),Xb({placedSide:S,onArrowChange:e=>c.value=e,arrowX:q(()=>b.value.arrow?.x??0),arrowY:q(()=>b.value.arrow?.y??0),shouldHideArrow:w}),(e,t)=>(z(),B(`div`,{ref_key:`floatingRef`,ref:s,"data-reka-popper-content-wrapper":``,style:me({...N(_),transform:N(y)?N(_).transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:T.value,"--reka-popper-transform-origin":[N(b).transformOrigin?.x,N(b).transformOrigin?.y].join(` `),...N(b).hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}})},[U(N(y_),K({ref:N(a)},e.$attrs,{"as-child":n.asChild,as:e.as,"data-side":S.value,"data-align":C.value,style:{animation:N(y)?void 0:`none`}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`style`])],4))}}),[Qb,$b]=Rh(`ComboboxRoot`),ex=F({__name:`ComboboxRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},resetSearchTermOnBlur:{type:Boolean,required:!1,default:!0},resetSearchTermOnSelect:{type:Boolean,required:!1,default:!0},openOnFocus:{type:Boolean,required:!1,default:!1},openOnClick:{type:Boolean,required:!1,default:!1},ignoreFilter:{type:Boolean,required:!1},resetModelValueOnClear:{type:Boolean,required:!1,default:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},highlightOnHover:{type:Boolean,required:!1,default:!0},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`highlight`,`update:open`],setup(e,{expose:t,emit:n}){let r=e,i=n,{primitiveElement:a,currentElement:o}=b_(),{multiple:s,disabled:c,ignoreFilter:l,resetSearchTermOnSelect:u,openOnFocus:d,openOnClick:f,dir:p,resetModelValueOnClear:m,highlightOnHover:h}=yn(r),g=Ng(p),_=_g(r,`modelValue`,i,{defaultValue:r.defaultValue??(s.value?[]:void 0),passive:r.modelValue===void 0,deep:!0}),v=_g(r,`open`,i,{defaultValue:r.defaultOpen,passive:r.open===void 0});async function y(e){v.value=e,te.value=``,e?(await Qn(),a.value?.highlightSelected(),x.value=!0,C.value?.focus()):(x.value=!1,setTimeout(()=>{!e&&r.resetSearchTermOnBlur&&b.trigger()},1))}let b=Wh(),x=M(!1),S=M(!1),C=M(),w=M(),T=q(()=>a.value?.highlightedElement??void 0),E=M(new Map),D=M(new Map),{contains:ee}=Fg({sensitivity:`base`}),te=M(``),ne=q(e=>{if(!te.value||r.ignoreFilter||S.value)return{count:E.value.size,items:e?.items??new Map,groups:e?.groups??new Set(D.value.keys())};let t=0,n=new Map,i=new Set;for(let[e,r]of E.value){let i=ee(r,te.value);n.set(e,+!!i),i&&t++}for(let[e,t]of D.value)for(let r of t)if(n.get(r)>0){i.add(e);break}return{count:t,items:n,groups:i}}),O=Es();return Gi(()=>{O?.exposed&&(O.exposed.highlightItem=a.value?.highlightItem,O.exposed.highlightFirstItem=a.value?.highlightFirstItem,O.exposed.highlightSelected=a.value?.highlightSelected)}),t({filtered:ne,highlightedElement:T,highlightItem:a.value?.highlightItem,highlightFirstItem:a.value?.highlightFirstItem,highlightSelected:a.value?.highlightSelected}),$b({modelValue:_,multiple:s,disabled:c,open:v,onOpenChange:y,contentId:``,isUserInputted:x,isVirtual:S,inputElement:C,highlightedElement:T,onInputElementChange:e=>C.value=e,triggerElement:w,onTriggerElementChange:e=>w.value=e,parentElement:o,resetSearchTermOnSelect:u,onResetSearchTerm:b.on,allItems:E,allGroups:D,filterSearch:te,filterState:ne,ignoreFilter:l,openOnFocus:d,openOnClick:f,resetModelValueOnClear:m}),(e,t)=>(z(),V(N(Rv),null,{default:P(()=>[U(N(Ov),K({ref_key:`primitiveElement`,ref:a},e.$attrs,{modelValue:N(_),"onUpdate:modelValue":t[0]||=e=>ln(_)?_.value=e:null,style:{pointerEvents:N(v)?`auto`:void 0},as:e.as,"as-child":e.asChild,dir:N(g),multiple:N(s),name:e.name,required:e.required,disabled:N(c),"highlight-on-hover":N(h),by:r.by,onHighlight:t[1]||=e=>i(`highlight`,e)}),{default:P(()=>[L(e.$slots,`default`,{open:N(v),modelValue:N(_)})]),_:3},16,[`modelValue`,`style`,`as`,`as-child`,`dir`,`multiple`,`name`,`required`,`disabled`,`highlight-on-hover`,`by`])]),_:3}))}}),tx=F({__name:`ComboboxAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{forwardRef:t}=Bg();return(e,n)=>(z(),V(N(zv),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(y_),K({ref:N(t),"as-child":e.asChild,as:e.as},e.$attrs),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`as-child`,`as`])]),_:3},8,[`reference`]))}}),[nx,rx]=Rh(`ComboboxContent`),ix=F({__name:`ComboboxContentImpl`,props:{position:{type:String,required:!1,default:`inline`},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`],setup(e,{emit:t}){let n=e,r=t,{position:i}=yn(n),a=Qb(),o=q(()=>a.ignoreFilter.value?a.allItems.value.size===0:a.filterState.value.count===0),{forwardRef:s,currentElement:c}=Bg();kg(n.bodyLock),Lg(),a_(a.parentElement);let l=Vg(q(()=>n.position===`popper`?n:{}).value),u={boxSizing:`border-box`,"--reka-combobox-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-combobox-content-available-width":`var(--reka-popper-available-width)`,"--reka-combobox-content-available-height":`var(--reka-popper-available-height)`,"--reka-combobox-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-combobox-trigger-height":`var(--reka-popper-anchor-height)`};rx({position:i});let d=M(!1);return Gi(()=>{a.inputElement.value&&(d.value=c.value.contains(a.inputElement.value),d.value&&a.inputElement.value.focus())}),Yi(()=>{let e=zh();d.value&&(!e||e===document.body)&&a.triggerElement.value?.focus()}),(e,t)=>(z(),V(N(kv),{"as-child":``},{default:P(()=>[U(N(G_),{"as-child":``,onMountAutoFocus:t[5]||=Jl(()=>{},[`prevent`]),onUnmountAutoFocus:t[6]||=Jl(()=>{},[`prevent`])},{default:P(()=>[U(N(j_),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onDismiss:t[0]||=e=>N(a).onOpenChange(!1),onFocusOutside:t[1]||=e=>{N(a).parentElement.value?.contains(e.target)&&e.preventDefault(),r(`focusOutside`,e)},onInteractOutside:t[2]||=e=>r(`interactOutside`,e),onEscapeKeyDown:t[3]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[4]||=e=>{N(a).parentElement.value?.contains(e.target)&&e.preventDefault(),r(`pointerDownOutside`,e)}},{default:P(()=>[(z(),V(ia(N(i)===`popper`?N(Zb):N(y_)),K({...e.$attrs,...N(l)},{id:N(a).contentId,ref:N(s),"data-state":N(a).open.value?`open`:`closed`,"data-empty":o.value?``:void 0,style:{display:n.hideWhenEmpty&&o.value?`none`:`flex`,flexDirection:`column`,outline:`none`,...N(i)===`popper`?u:{}}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`data-empty`,`style`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),ax=F({__name:`ComboboxContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`],setup(e,{emit:t}){let n=Hg(e,t),{forwardRef:r}=Bg(),i=Qb();return i.contentId||=s_(void 0,`reka-combobox-content`),(e,t)=>(z(),V(N(g_),{present:e.forceMount||N(i).open.value},{default:P(()=>[U(ix,K({...N(n),...e.$attrs},{ref:N(r)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`]))}}),ox=F({__name:`ComboboxEmpty`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=Qb(),r=q(()=>n.ignoreFilter.value?n.allItems.value.size===0:n.filterState.value.count===0);return(e,n)=>r.value?(z(),V(N(y_),ye(K({key:0},t)),{default:P(()=>[L(e.$slots,`default`,{},()=>[n[0]||=W(`No options`)])]),_:3},16)):G(`v-if`,!0)}}),[sx,cx]=Rh(`ComboboxGroup`),lx=F({__name:`ComboboxInput`,props:{displayValue:{type:Function,required:!1},modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`input`}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=Qb(),a=Ev(),{primitiveElement:o,currentElement:s}=b_(),c=_g(n,`modelValue`,r,{passive:n.modelValue===void 0});Gi(()=>{s.value&&i.onInputElementChange(s.value)});let{isComposing:l,handleCompositionStart:u,handleCompositionEnd:d}=Mg(e=>{let t=e.target;t&&p(t.value)});function f(e){l.value||(e.preventDefault(),i.open.value||i.onOpenChange(!0))}function p(e){i.open.value?i.filterSearch.value=e:(i.onOpenChange(!0),Qn(()=>{e&&(i.filterSearch.value=e,a.highlightFirstItem())}))}function m(e){l.value||p(e.target.value)}function h(){i.openOnFocus.value&&!i.open.value&&i.onOpenChange(!0)}function g(e){if(!i.open.value)return;let t=e.relatedTarget;if(!t)return;let n=i.parentElement.value?.contains(t),r=document.getElementById(i.contentId)?.contains(t);!n&&!r&&requestAnimationFrame(()=>{if(!i.open.value)return;let e=document.activeElement;!i.parentElement.value?.contains(e)&&!document.getElementById(i.contentId)?.contains(e)&&i.onOpenChange(!1)})}function _(){i.openOnClick.value&&!i.open.value&&i.onOpenChange(!0)}function v(){let e=i.modelValue.value;n.displayValue?c.value=n.displayValue(e):!i.multiple.value&&e&&!Array.isArray(e)?typeof e==`object`?c.value=``:c.value=e.toString():c.value=``,Qn(()=>{c.value=c.value})}return i.onResetSearchTerm(()=>{v()}),Er(i.modelValue,async()=>{!i.isUserInputted.value&&i.resetSearchTermOnSelect.value&&v()},{immediate:!0,deep:!0}),Er(i.filterState,(e,t)=>{!i.isVirtual.value&&t.count===0&&a.highlightFirstItem()}),(e,t)=>(z(),V(N(Av),{ref_key:`primitiveElement`,ref:o,modelValue:N(c),"onUpdate:modelValue":t[0]||=e=>ln(c)?c.value=e:null,as:e.as,"as-child":e.asChild,"auto-focus":e.autoFocus,disabled:e.disabled,"aria-expanded":N(i).open.value,"aria-controls":N(i).contentId,"aria-autocomplete":`list`,role:`combobox`,autocomplete:`off`,onClick:_,onInput:m,onKeydown:Xl(f,[`down`,`up`]),onFocus:h,onBlur:g,onCompositionstart:N(u),onCompositionend:N(d)},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`modelValue`,`as`,`as-child`,`auto-focus`,`disabled`,`aria-expanded`,`aria-controls`,`onCompositionstart`,`onCompositionend`]))}}),ux=F({__name:`ComboboxItem`,props:{textValue:{type:String,required:!1},value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=s_(void 0,`reka-combobox-item`),a=Qb(),o=sx(null),{primitiveElement:s,currentElement:c}=b_();if(n.value===``)throw Error(`A <ComboboxItem /> must have a value prop that is not an empty string. This is because the Combobox value can be set to an empty string to clear the selection and show the placeholder.`);let l=q(()=>{if(a.isVirtual.value||a.ignoreFilter.value||!a.filterSearch.value)return!0;{let e=a.filterState.value.items.get(i);return e===void 0?!0:e>0}});return Gi(()=>{a.allItems.value.set(i,n.textValue||c.value.textContent||c.value.innerText);let e=o?.id;e&&(a.allGroups.value.has(e)?a.allGroups.value.get(e)?.add(i):a.allGroups.value.set(e,new Set([i])))}),Yi(()=>{a.allItems.value.delete(i)}),(e,t)=>l.value?(z(),V(N(Pv),K({key:0},n,{id:N(i),ref_key:`primitiveElement`,ref:s,disabled:N(a).disabled.value||e.disabled,onSelect:t[0]||=t=>{r(`select`,t),!t.defaultPrevented&&(!N(a).multiple.value&&!e.disabled&&!N(a).disabled.value?(t.preventDefault(),N(a).onOpenChange(!1),N(a).modelValue.value=n.value):N(a).multiple.value&&N(a).inputElement.value?.focus())}}),{default:P(()=>[L(e.$slots,`default`,{},()=>[W(j(e.value),1)])]),_:3},16,[`id`,`disabled`])):G(`v-if`,!0)}}),dx=F({__name:`ComboboxItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e;return(e,n)=>(z(),V(N(Fv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),fx=F({__name:`ComboboxPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),px=F({__name:`ComboboxTrigger`,props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,{forwardRef:n,currentElement:r}=Bg(),i=Qb(),a=q(()=>t.disabled||i.disabled.value||!1);return Gi(()=>{r.value&&i.onTriggerElementChange(r.value)}),(e,r)=>(z(),V(N(y_),K(t,{ref:N(n),type:e.as===`button`?`button`:void 0,tabindex:`-1`,"aria-label":`Show popup`,"aria-haspopup":`listbox`,"aria-expanded":N(i).open.value,"aria-controls":N(i).contentId,"data-state":N(i).open.value?`open`:`closed`,disabled:a.value,"data-disabled":a.value?``:void 0,"aria-disabled":a.value??void 0,onClick:r[0]||=e=>N(i).onOpenChange(!N(i).open.value)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`type`,`aria-expanded`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`aria-disabled`]))}});function mx(e){let t=Sg({nonce:M()});return q(()=>e?.value||t.nonce?.value)}var hx=F({__name:`ComboboxViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n}=Bg(),{nonce:r}=yn(t),i=mx(r),a=Qb();return(e,r)=>(z(),B(R,null,[U(N(y_),K({...e.$attrs,...t},{ref:N(n),"data-reka-combobox-viewport":``,role:`presentation`,style:{position:`relative`,flex:N(a).isVirtual.value?void 0:1,overflow:`auto`}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`style`]),U(N(y_),{as:`style`,nonce:N(i)},{default:P(()=>r[0]||=[W(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-combobox-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-combobox-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),[gx,_x]=Rh(`RovingFocusGroup`),vx=F({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:t,emit:n}){let r=e,i=n,{loop:a,orientation:o,dir:s}=yn(r),c=Ng(s),l=_g(r,`currentTabStopId`,i,{defaultValue:r.defaultCurrentTabStopId,passive:r.currentTabStopId===void 0}),u=M(!1),d=M(!1),f=M(0),{getItems:p,CollectionSlot:m}=pv({isProvider:!0});function h(e){let t=!d.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!u.value){let t=new CustomEvent(yv,bv);if(e.currentTarget.dispatchEvent(t),i(`entryFocus`,t),!t.defaultPrevented){let e=p().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);wv([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===l.value),...e].filter(Boolean),r.preventScrollOnEntryFocus)}}d.value=!1}function g(){setTimeout(()=>{d.value=!1},1)}return t({getItems:p}),_x({loop:a,dir:c,orientation:o,currentTabStopId:l,onItemFocus:e=>{l.value=e},onItemShiftTab:()=>{u.value=!0},onFocusableItemAdd:()=>{f.value++},onFocusableItemRemove:()=>{f.value--}}),(e,t)=>(z(),V(N(m),null,{default:P(()=>[U(N(y_),{tabindex:u.value||f.value===0?-1:0,"data-orientation":N(o),as:e.as,"as-child":e.asChild,dir:N(c),style:{outline:`none`},onMousedown:t[0]||=e=>d.value=!0,onMouseup:g,onFocus:h,onBlur:t[1]||=e=>u.value=!1},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),yx=F({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=gx(),r=s_(),i=q(()=>t.tabStopId||r),a=q(()=>n.currentTabStopId.value===i.value),{getItems:o,CollectionItem:s}=pv();Gi(()=>{t.focusable&&n.onFocusableItemAdd()}),Yi(()=>{t.focusable&&n.onFocusableItemRemove()});function c(e){if(e.key===`Tab`&&e.shiftKey){n.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let r=Cv(e,n.orientation.value,n.dir.value);if(r!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!t.allowShiftKey&&e.shiftKey)return;e.preventDefault();let i=[...o().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(r===`last`)i.reverse();else if(r===`prev`||r===`next`){r===`prev`&&i.reverse();let t=i.indexOf(e.currentTarget);i=n.loop.value?Tv(i,t+1):i.slice(t+1)}Qn(()=>wv(i))}}return(e,t)=>(z(),V(N(s),null,{default:P(()=>[U(N(y_),{tabindex:a.value?0:-1,"data-orientation":N(n).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:t[0]||=t=>{e.focusable?N(n).onItemFocus(i.value):t.preventDefault()},onFocus:t[1]||=e=>N(n).onItemFocus(i.value),onKeydown:c},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}}),bx=F({__name:`MenuAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(zv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}});function xx(){let e=M(!1);return Gi(()=>{ug(`keydown`,()=>{e.value=!0},{capture:!0,passive:!0}),ug([`pointerdown`,`pointermove`],()=>{e.value=!1},{capture:!0,passive:!0})}),e}var Sx=eg(xx),[Cx,wx]=Rh([`MenuRoot`,`MenuSub`],`MenuContext`),[Tx,Ex]=Rh(`MenuRoot`),Dx=F({__name:`MenuRoot`,props:{open:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,{modal:i,dir:a}=yn(n),o=Ng(a),s=_g(n,`open`,r),c=M(),l=Sx();return wx({open:s,onOpenChange:e=>{s.value=e},content:c,onContentChange:e=>{c.value=e}}),Ex({onClose:()=>{s.value=!1},isUsingKeyboardRef:l,dir:o,modal:i}),(e,t)=>(z(),V(N(Rv),null,{default:P(()=>[L(e.$slots,`default`)]),_:3}))}}),[Ox,kx]=Rh(`MenuContent`),Ax=F({__name:`MenuContentImpl`,props:Da({loop:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},disableOutsideScroll:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...Jb}),emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,i=Cx(),a=Tx(),{trapFocus:o,disableOutsidePointerEvents:s,loop:c}=yn(n);Lg(),kg(s.value);let l=M(``),u=M(0),d=M(0),f=M(null),p=M(`right`),m=M(0),h=M(null),g=M(),{forwardRef:_,currentElement:v}=Bg(),{handleTypeaheadSearch:y}=d_(),b=M();function x(e){let t=bg(e,b.value||zh(),v.value,{loop:c.value,arrowKeyOptions:`vertical`,dir:a?.dir.value,focus:!1,attributeName:`[data-reka-collection-item]:not([data-disabled])`});t&&(b.value=t,t.scrollIntoView({block:`nearest`}))}function S(){b.value&&b.value.click()}let C=M(),w=M();Er(b,e=>{w.value&&(e===void 0||e!==w.value.trigger.value)&&(w.value.onOpenChange(!1),w.value=void 0)}),Er(v,e=>{i.onContentChange(e)}),Yi(()=>{window.clearTimeout(u.value)});function T(e){return p.value===f.value?.side&&ev(e,f.value?.area)}async function E(e){r(`openAutoFocus`,e),!e.defaultPrevented&&(e.preventDefault(),v.value?.focus({preventScroll:!0}))}function D(e){if(e.defaultPrevented)return;let t=e.target,n=t.closest(`[data-reka-menu-content]`)===e.currentTarget,r=[`input`,`textarea`].includes(t.tagName.toLowerCase()),i=e.ctrlKey||e.altKey||e.metaKey,o=e.key.length===1,s=bg(e,zh(),v.value,{loop:c.value,arrowKeyOptions:`vertical`,dir:a?.dir.value,focus:!0,attributeName:`[data-reka-collection-item]:not([data-disabled])`});if(s)return s?.focus();if(e.code===`Space`)return;let l=g.value?.getItems()??[];if(n&&(e.key===`Tab`&&e.preventDefault(),!i&&o&&!r&&y(e.key,l)),e.target!==v.value||!X_.includes(e.key))return;e.preventDefault();let u=[...l.map(e=>e.ref)];Y_.includes(e.key)&&u.reverse(),Q_(u)}function ee(e){e?.currentTarget?.contains?.(e.target)||(window.clearTimeout(u.value),l.value=``)}function te(e){if(!tv(e))return;let t=e.target,n=m.value!==e.clientX;(e?.currentTarget)?.contains(t)&&n&&(p.value=e.clientX>m.value?`right`:`left`,m.value=e.clientX)}function ne(e){tv(e)&&C.value&&C.value.focus()}return kx({onItemEnter:e=>!!T(e),onItemLeave:e=>T(e)?!0:([`INPUT`,`TEXTAREA`].includes(zh()?.tagName||``)||v.value?.focus(),h.value=null,!1),onTriggerLeave:e=>!!T(e),searchRef:l,highlightedElement:b,onKeydownNavigation:x,onKeydownEnter:S,filterElement:C,onFilterElementChange:e=>{C.value=e},activeSubmenuContext:w,pointerGraceTimerRef:d,onPointerGraceIntentChange:e=>{f.value=e}}),(e,t)=>(z(),V(N(G_),{"as-child":``,trapped:N(o),onMountAutoFocus:E,onUnmountAutoFocus:t[7]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(j_),{"as-child":``,"disable-outside-pointer-events":N(s),onEscapeKeyDown:t[2]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[3]||=e=>r(`pointerDownOutside`,e),onFocusOutside:t[4]||=e=>r(`focusOutside`,e),onInteractOutside:t[5]||=e=>r(`interactOutside`,e),onDismiss:t[6]||=e=>r(`dismiss`)},{default:P(()=>[U(N(vx),{ref_key:`rovingFocusGroupRef`,ref:g,"current-tab-stop-id":h.value,"onUpdate:currentTabStopId":t[0]||=e=>h.value=e,"as-child":``,orientation:`vertical`,dir:N(a).dir.value,loop:N(c),onEntryFocus:t[1]||=e=>{r(`entryFocus`,e),N(a).isUsingKeyboardRef.value||e.preventDefault()}},{default:P(()=>[U(N(Zb),{ref:N(_),role:`menu`,as:e.as,"as-child":e.asChild,"aria-orientation":`vertical`,"data-reka-menu-content":``,"data-state":N(Z_)(N(i).open.value),dir:N(a).dir.value,side:e.side,"side-offset":e.sideOffset,align:e.align,"align-offset":e.alignOffset,"avoid-collisions":e.avoidCollisions,"collision-boundary":e.collisionBoundary,"collision-padding":e.collisionPadding,"arrow-padding":e.arrowPadding,"prioritize-position":e.prioritizePosition,"position-strategy":e.positionStrategy,"update-position-strategy":e.updatePositionStrategy,sticky:e.sticky,"hide-when-detached":e.hideWhenDetached,reference:e.reference,onKeydown:D,onBlur:ee,onPointermove:te,onPointerenter:ne},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`,`dir`,`side`,`side-offset`,`align`,`align-offset`,`avoid-collisions`,`collision-boundary`,`collision-padding`,`arrow-padding`,`prioritize-position`,`position-strategy`,`update-position-strategy`,`sticky`,`hide-when-detached`,`reference`])]),_:3},8,[`current-tab-stop-id`,`dir`,`loop`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),jx=F({inheritAttrs:!1,__name:`MenuItemImpl`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=Ox(),{forwardRef:r,currentElement:i}=Bg(),{CollectionItem:a}=pv(),o=M(!1),s=q(()=>o.value||i.value!=null&&n.highlightedElement.value===i.value);async function c(e){if(!(e.defaultPrevented||!tv(e))){if(t.disabled)n.onItemLeave(e);else if(!n.onItemEnter(e)){let t=e.currentTarget;n.highlightedElement.value=t,[`INPUT`,`TEXTAREA`].includes(zh()?.tagName||``)||t.focus({preventScroll:!0})}}}async function l(e){await Qn(),!e.defaultPrevented&&tv(e)&&n.highlightedElement.value===i.value&&!n.onItemLeave(e)&&n.highlightedElement.value===i.value&&(n.highlightedElement.value=void 0)}return(e,t)=>(z(),V(N(a),{value:{textValue:e.textValue}},{default:P(()=>[U(N(y_),K({ref:N(r),role:`menuitem`,tabindex:`-1`},e.$attrs,{as:e.as,"as-child":e.asChild,"aria-disabled":e.disabled||void 0,"data-disabled":e.disabled?``:void 0,"data-highlighted":s.value?``:void 0,onPointermove:c,onPointerleave:l,onFocus:t[0]||=async t=>{await Qn(),!(t.defaultPrevented||e.disabled)&&(o.value=!0,N(n).highlightedElement.value=t.currentTarget)},onBlur:t[1]||=async e=>{await Qn(),!e.defaultPrevented&&(o.value=!1)}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`aria-disabled`,`data-disabled`,`data-highlighted`])]),_:3},8,[`value`]))}}),Mx=F({__name:`MenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,{forwardRef:i,currentElement:a}=Bg(),o=Tx(),s=Ox(),c=M(!1);async function l(){let e=a.value;if(!n.disabled&&e){let e=new CustomEvent(K_,{bubbles:!0,cancelable:!0});r(`select`,e),await Qn(),e.defaultPrevented?c.value=!1:o.onClose()}}return(e,t)=>(z(),V(jx,K(n,{ref:N(i),onClick:l,onPointerdown:t[0]||=()=>{c.value=!0},onPointerup:t[1]||=async e=>{await Qn(),!e.defaultPrevented&&(c.value||e.currentTarget?.click())},onKeydown:t[2]||=async t=>{let n=N(s).searchRef.value!==``;e.disabled||n&&t.key===` `||N(q_).includes(t.key)&&(t.currentTarget?.click(),t.preventDefault())}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Nx=F({__name:`MenuRootContentModal`,props:{loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Hg(n,r),a=Cx(),{forwardRef:o,currentElement:s}=Bg();return a_(s),(e,t)=>(z(),V(Ax,K(N(i),{ref:N(o),"trap-focus":N(a).open.value,"disable-outside-pointer-events":N(a).open.value,"disable-outside-scroll":!0,onDismiss:t[0]||=e=>N(a).onOpenChange(!1),onFocusOutside:t[1]||=Jl(e=>r(`focusOutside`,e),[`prevent`])}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`trap-focus`,`disable-outside-pointer-events`]))}}),Px=F({__name:`MenuRootContentNonModal`,props:{loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=Hg(e,t),r=Cx();return(e,t)=>(z(),V(Ax,K(N(n),{"trap-focus":!1,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,onDismiss:t[0]||=e=>N(r).onOpenChange(!1)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Fx=F({__name:`MenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=Hg(e,t),r=Cx(),i=Tx();return(e,t)=>(z(),V(N(g_),{present:e.forceMount||N(r).open.value},{default:P(()=>[N(i).modal.value?(z(),V(Nx,ye(K({key:0},{...e.$attrs,...N(n)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(Px,ye(K({key:1},{...e.$attrs,...N(n)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),[Ix,Lx]=Rh(`MenuGroup`),Rx=F({__name:`MenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,n=Ix({id:``});return(e,r)=>(z(),V(N(y_),K(t,{id:N(n).id||void 0}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),zx=F({__name:`MenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Bx=F({__name:`MenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(y_),K(t,{role:`separator`,"aria-orientation":`horizontal`}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),[Vx,Hx]=Rh(`PopoverRoot`),Ux=F({__name:`PopoverRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},modal:{type:Boolean,required:!1,default:!1}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,{modal:i}=yn(n),a=_g(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});return Hx({contentId:``,triggerId:``,modal:i,open:a,onOpenChange:e=>{a.value=e},onOpenToggle:()=>{a.value=!a.value},triggerElement:M(),hasCustomAnchor:M(!1)}),(e,t)=>(z(),V(N(Rv),null,{default:P(()=>[L(e.$slots,`default`,{open:N(a),close:()=>a.value=!1})]),_:3}))}}),Wx=F({__name:`PopoverContentImpl`,props:{trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Vg(rg(n,`trapFocus`,`disableOutsidePointerEvents`)),{forwardRef:a}=Bg(),o=Vx();return Lg(),(e,t)=>(z(),V(N(G_),{"as-child":``,loop:``,trapped:e.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(j_),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onPointerDownOutside:t[0]||=e=>r(`pointerDownOutside`,e),onInteractOutside:t[1]||=e=>r(`interactOutside`,e),onEscapeKeyDown:t[2]||=e=>r(`escapeKeyDown`,e),onFocusOutside:t[3]||=e=>r(`focusOutside`,e),onDismiss:t[4]||=e=>N(o).onOpenChange(!1)},{default:P(()=>[U(N(Zb),K(N(i),{id:N(o).contentId,ref:N(a),"data-state":N(o).open.value?`open`:`closed`,"aria-labelledby":N(o).triggerId,style:{"--reka-popover-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-popover-content-available-width":`var(--reka-popper-available-width)`,"--reka-popover-content-available-height":`var(--reka-popper-available-height)`,"--reka-popover-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-popover-trigger-height":`var(--reka-popper-anchor-height)`},role:`dialog`}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`aria-labelledby`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),Gx=F({__name:`PopoverContentModal`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Vx(),a=M(!1);kg(!0);let o=Hg(n,r),{forwardRef:s,currentElement:c}=Bg();return a_(c),(e,t)=>(z(),V(Wx,K(N(o),{ref:N(s),"trap-focus":N(i).open.value,"disable-outside-pointer-events":``,onCloseAutoFocus:t[0]||=Jl(e=>{r(`closeAutoFocus`,e),a.value||N(i).triggerElement.value?.focus()},[`prevent`]),onPointerDownOutside:t[1]||=e=>{r(`pointerDownOutside`,e);let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;a.value=t.button===2||n},onFocusOutside:t[2]||=Jl(()=>{},[`prevent`])}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),Kx=F({__name:`PopoverContentNonModal`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Vx(),a=M(!1),o=M(!1),s=Hg(n,r);return(e,t)=>(z(),V(Wx,K(N(s),{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:t[0]||=e=>{r(`closeAutoFocus`,e),e.defaultPrevented||(a.value||N(i).triggerElement.value?.focus(),e.preventDefault()),a.value=!1,o.value=!1},onInteractOutside:t[1]||=async e=>{r(`interactOutside`,e),e.defaultPrevented||(a.value=!0,e.detail.originalEvent.type===`pointerdown`&&(o.value=!0));let t=e.target;N(i).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&o.value&&e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),qx=F({__name:`PopoverContent`,props:{forceMount:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Vx(),a=Hg(n,r),{forwardRef:o}=Bg();return i.contentId||=s_(void 0,`reka-popover-content`),(e,t)=>(z(),V(N(g_),{present:e.forceMount||N(i).open.value},{default:P(()=>[N(i).modal.value?(z(),V(Gx,K({key:0},N(a),{ref:N(o)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(Kx,K({key:1},N(a),{ref:N(o)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),Jx=F({__name:`PopoverPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Yx=F({__name:`PopoverTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Vx(),{forwardRef:r,currentElement:i}=Bg();return n.triggerId||=s_(void 0,`reka-popover-trigger`),Gi(()=>{n.triggerElement.value=i.value}),(e,i)=>(z(),V(ia(N(n).hasCustomAnchor.value?N(y_):N(zv)),{"as-child":``},{default:P(()=>[U(N(y_),{id:N(n).triggerId,ref:N(r),type:e.as===`button`?`button`:void 0,"aria-haspopup":`dialog`,"aria-expanded":N(n).open.value,"aria-controls":N(n).contentId,"data-state":N(n).open.value?`open`:`closed`,as:e.as,"as-child":t.asChild,onClick:N(n).onOpenToggle},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`id`,`type`,`aria-expanded`,`aria-controls`,`data-state`,`as`,`as-child`,`onClick`])]),_:3}))}}),[Xx,Zx]=Rh(`DropdownMenuRoot`),Qx=F({__name:`DropdownMenuRoot`,props:{defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1,default:void 0},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;Bg();let i=_g(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),a=M(),{modal:o,dir:s}=yn(n),c=Ng(s);return Zx({open:i,onOpenChange:e=>{i.value=e},onOpenToggle:()=>{i.value=!i.value},triggerId:``,triggerElement:a,contentId:``,modal:o,dir:c}),(e,t)=>(z(),V(N(Dx),{open:N(i),"onUpdate:open":t[0]||=e=>ln(i)?i.value=e:null,dir:N(c),modal:N(o)},{default:P(()=>[L(e.$slots,`default`,{open:N(i)})]),_:3},8,[`open`,`dir`,`modal`]))}}),$x=F({__name:`DropdownMenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(e,{emit:t}){let n=Hg(e,t);Bg();let r=Xx(),i=M(!1);function a(e){e.defaultPrevented||(i.value||setTimeout(()=>{r.triggerElement.value?.focus()},0),i.value=!1,e.preventDefault())}return r.contentId||=s_(void 0,`reka-dropdown-menu-content`),(e,t)=>(z(),V(N(Fx),K(N(n),{id:N(r).contentId,"aria-labelledby":N(r)?.triggerId,style:{"--reka-dropdown-menu-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-dropdown-menu-content-available-width":`var(--reka-popper-available-width)`,"--reka-dropdown-menu-content-available-height":`var(--reka-popper-available-height)`,"--reka-dropdown-menu-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-dropdown-menu-trigger-height":`var(--reka-popper-anchor-height)`},onCloseAutoFocus:a,onInteractOutside:t[0]||=e=>{if(e.defaultPrevented)return;let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,a=t.button===2||n;(!N(r).modal.value||a)&&(i.value=!0),N(r).triggerElement.value?.contains(e.target)&&e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`]))}}),eS=F({__name:`DropdownMenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=Pg(t);return Bg(),(e,t)=>(z(),V(N(Mx),ye(hs({...n,...N(r)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),tS=F({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return Bg(),(e,n)=>(z(),V(N(Rx),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),nS=F({__name:`DropdownMenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(zx),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),rS=F({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return Bg(),(e,n)=>(z(),V(N(Bx),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),iS=F({__name:`DropdownMenuTrigger`,props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Xx(),{forwardRef:r,currentElement:i}=Bg();return Gi(()=>{n.triggerElement=i}),n.triggerId||=s_(void 0,`reka-dropdown-menu-trigger`),(e,i)=>(z(),V(N(bx),{"as-child":``},{default:P(()=>[U(N(y_),{id:N(n).triggerId,ref:N(r),type:e.as===`button`?`button`:void 0,"as-child":t.asChild,as:e.as,"aria-haspopup":`menu`,"aria-expanded":N(n).open.value,"aria-controls":N(n).open.value?N(n).contentId:void 0,"data-disabled":e.disabled?``:void 0,disabled:e.disabled,"data-state":N(n).open.value?`open`:`closed`,onClick:i[0]||=async t=>{!e.disabled&&t.button===0&&t.ctrlKey===!1&&(N(n)?.onOpenToggle(),await Qn(),N(n).open.value&&t.preventDefault())},onKeydown:i[1]||=Xl(t=>{e.disabled||([`Enter`,` `].includes(t.key)&&N(n).onOpenToggle(),t.key===`ArrowDown`&&N(n).onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(t.key)&&t.preventDefault())},[`enter`,`space`,`arrow-down`])},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as-child`,`as`,`aria-expanded`,`aria-controls`,`data-disabled`,`disabled`,`data-state`])]),_:3}))}}),aS=F({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(e){let t=e;return Bg(),(e,n)=>(z(),V(N(y_),K(t,{onMousedown:n[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),oS=[` `,`Enter`,`ArrowUp`,`ArrowDown`],sS=[` `,`Enter`];function cS(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>lS(e,t,n)):lS(e,t,n)}function lS(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:Fh(e,t)}function uS(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var dS={key:0,value:``},[fS,pS]=Rh(`SelectRoot`),mS=F({inheritAttrs:!1,__name:`SelectRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`update:open`],setup(e,{emit:t}){let n=e,r=t,{required:i,disabled:a,multiple:o,dir:s}=yn(n),c=_g(n,`modelValue`,r,{defaultValue:n.defaultValue??(o.value?[]:void 0),passive:n.modelValue===void 0,deep:!0}),l=_g(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),u=M(),d=M(),f=M({x:0,y:0}),p=q(()=>o.value&&Array.isArray(c.value)?c.value?.length===0:Vh(c.value));pv({isProvider:!0});let m=Ng(s),h=zg(u),g=M(new Set),_=q(()=>Array.from(g.value).map(e=>e.value).join(`;`));function v(e){if(o.value){let t=Array.isArray(c.value)?[...c.value]:[],r=t.findIndex(t=>lS(t,e,n.by));r===-1?t.push(e):t.splice(r,1),c.value=[...t]}else c.value=e}function y(e){return Array.from(g.value).find(t=>cS(e,t.value,n.by))}return pS({triggerElement:u,onTriggerChange:e=>{u.value=e},valueElement:d,onValueElementChange:e=>{d.value=e},contentId:``,modelValue:c,onValueChange:v,by:n.by,open:l,multiple:o,required:i,onOpenChange:e=>{l.value=e},dir:m,triggerPointerDownPosRef:f,disabled:a,isEmptyModelValue:p,optionsSet:g,onOptionAdd:e=>{let t=y(e.value);t&&g.value.delete(t),g.value.add(e)},onOptionRemove:e=>{let t=y(e.value);t&&g.value.delete(t)}}),(e,t)=>(z(),V(N(Rv),null,{default:P(()=>[L(e.$slots,`default`,{modelValue:N(c),open:N(l)}),N(h)&&e.name?(z(),V(hS,{key:_.value,"aria-hidden":`true`,tabindex:`-1`,multiple:N(o),required:N(i),name:e.name,autocomplete:e.autocomplete,disabled:N(a),value:N(c)},{default:P(()=>[N(Vh)(N(c))?(z(),B(`option`,dS)):G(`v-if`,!0),(z(!0),B(R,null,I(Array.from(g.value),e=>(z(),B(`option`,K({key:e.value??``},{ref_for:!0},e),null,16))),128))]),_:1},8,[`multiple`,`required`,`name`,`autocomplete`,`disabled`,`value`])):G(`v-if`,!0)]),_:3}))}}),hS=F({__name:`BubbleSelect`,props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(e){let t=e,n=M(),r=fS();Er(()=>t.value,(e,t)=>{let r=window.HTMLSelectElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(e!==t&&i&&n.value){let t=new Event(`change`,{bubbles:!0});i.call(n.value,e),n.value.dispatchEvent(t)}});function i(e){r.onValueChange(e.target.value)}return(e,r)=>(z(),V(N(mv),{"as-child":``},{default:P(()=>[H(`select`,K({ref_key:`selectElement`,ref:n},t,{onInput:i}),[L(e.$slots,`default`)],16)]),_:3}))}}),gS=F({__name:`SelectPopperPosition`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:10},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Vg(e);return(e,n)=>(z(),V(N(Zb),K(N(t),{style:{boxSizing:`border-box`,"--reka-select-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-select-content-available-width":`var(--reka-popper-available-width)`,"--reka-select-content-available-height":`var(--reka-popper-available-height)`,"--reka-select-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-select-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),_S={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[vS,yS]=Rh(`SelectContent`),bS=F({__name:`SelectContentImpl`,props:{position:{type:String,required:!1,default:`item-aligned`},bodyLock:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=fS();Lg(),kg(n.bodyLock);let{CollectionSlot:a,getItems:o}=pv(),s=M();a_(s);let{search:c,handleTypeaheadSearch:l}=d_(),u=M(),d=M(),f=M(),p=M(!1),m=M(!1),h=M(!1);function g(){d.value&&s.value&&Q_([d.value,s.value])}Er(p,()=>{g()});let{onOpenChange:_,triggerPointerDownPosRef:v}=i;Cr(e=>{if(!s.value)return;let t={x:0,y:0},n=e=>{t={x:Math.abs(Math.round(e.pageX)-(v.value?.x??0)),y:Math.abs(Math.round(e.pageY)-(v.value?.y??0))}},r=e=>{e.pointerType!==`touch`&&(t.x<=10&&t.y<=10?e.preventDefault():s.value?.contains(e.target)||_(!1),document.removeEventListener(`pointermove`,n),v.value=null)};v.value!==null&&(document.addEventListener(`pointermove`,n),document.addEventListener(`pointerup`,r,{capture:!0,once:!0})),e(()=>{document.removeEventListener(`pointermove`,n),document.removeEventListener(`pointerup`,r,{capture:!0})})});function y(e){let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&l(e.key,o()),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=[...o().map(e=>e.ref)];if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>Q_(t)),e.preventDefault()}}let b=Vg(q(()=>n.position===`popper`?n:{}).value);return yS({content:s,viewport:u,onViewportChange:e=>{u.value=e},itemRefCallback:(e,t,n)=>{let r=!m.value&&!n,a=cS(i.modelValue.value,t,i.by);if(i.multiple.value){if(h.value)return;(a||r)&&(d.value=e,a&&(h.value=!0))}else (a||r)&&(d.value=e);r&&(m.value=!0)},selectedItem:d,selectedItemText:f,onItemLeave:()=>{s.value?.focus()},itemTextRefCallback:(e,t,n)=>{let r=!m.value&&!n;(cS(i.modelValue.value,t,i.by)||r)&&(f.value=e)},focusSelectedItem:g,position:n.position,isPositioned:p,searchRef:c}),(e,t)=>(z(),V(N(a),null,{default:P(()=>[U(N(G_),{"as-child":``,onMountAutoFocus:t[6]||=Jl(()=>{},[`prevent`]),onUnmountAutoFocus:t[7]||=e=>{r(`closeAutoFocus`,e),!e.defaultPrevented&&(N(i).triggerElement.value?.focus({preventScroll:!0}),e.preventDefault())}},{default:P(()=>[U(N(j_),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onFocusOutside:t[2]||=Jl(()=>{},[`prevent`]),onDismiss:t[3]||=e=>N(i).onOpenChange(!1),onEscapeKeyDown:t[4]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[5]||=e=>r(`pointerDownOutside`,e)},{default:P(()=>[(z(),V(ia(e.position===`popper`?gS:CS),K({...e.$attrs,...N(b)},{id:N(i).contentId,ref:e=>{if(!e)return;let t=N(lg)(e);t?.hasAttribute(`data-reka-popper-content-wrapper`)?s.value=t.firstElementChild:s.value=t},role:`listbox`,"data-state":N(i).open.value?`open`:`closed`,dir:N(i).dir.value,style:{display:`flex`,flexDirection:`column`,outline:`none`},onContextmenu:t[0]||=Jl(()=>{},[`prevent`]),onPlaced:t[1]||=e=>p.value=!0,onKeydown:y}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`dir`,`onKeydown`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),[xS,SS]=Rh(`SelectItemAlignedPosition`),CS=F({inheritAttrs:!1,__name:`SelectItemAlignedPosition`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,{getItems:i}=pv(),a=fS(),o=vS(),s=M(!1),c=M(!0),l=M(),{forwardRef:u,currentElement:d}=Bg(),{viewport:f,selectedItem:p,selectedItemText:m,focusSelectedItem:h}=o;function g(){if(a.triggerElement.value&&a.valueElement.value&&l.value&&d.value&&f?.value&&p?.value&&m?.value){let e=a.triggerElement.value.getBoundingClientRect(),t=d.value.getBoundingClientRect(),n=a.valueElement.value.getBoundingClientRect(),o=m.value.getBoundingClientRect();if(a.dir.value!==`rtl`){let r=o.left-t.left,i=n.left-r,a=e.left-i,s=e.width+a,c=Math.max(s,t.width),u=window.innerWidth-10,d=Lh(i,10,Math.max(10,u-c));l.value.style.minWidth=`${s}px`,l.value.style.left=`${d}px`}else{let r=t.right-o.right,i=window.innerWidth-n.right-r,a=window.innerWidth-e.right-i,s=e.width+a,c=Math.max(s,t.width),u=window.innerWidth-10,d=Lh(i,10,Math.max(10,u-c));l.value.style.minWidth=`${s}px`,l.value.style.right=`${d}px`}let c=i().map(e=>e.ref),u=window.innerHeight-20,h=f.value.scrollHeight,g=window.getComputedStyle(d.value),_=Number.parseInt(g.borderTopWidth,10),v=Number.parseInt(g.paddingTop,10),y=Number.parseInt(g.borderBottomWidth,10),b=Number.parseInt(g.paddingBottom,10),x=_+v+h+b+y,S=Math.min(p.value.offsetHeight*5,x),C=window.getComputedStyle(f.value),w=Number.parseInt(C.paddingTop,10),T=Number.parseInt(C.paddingBottom,10),E=e.top+e.height/2-10,D=u-E,ee=p.value.offsetHeight/2,te=p.value.offsetTop+ee,ne=_+v+te,O=x-ne;if(ne<=E){let e=p.value===c.at(-1);l.value.style.bottom=`0px`;let t=d.value.clientHeight-f.value.offsetTop-f.value.offsetHeight,n=ne+Math.max(D,ee+(e?T:0)+t+y);l.value.style.height=`${n}px`}else{let e=p.value===c[0];l.value.style.top=`0px`;let t=Math.max(E,_+f.value.offsetTop+(e?w:0)+ee)+O;l.value.style.height=`${t}px`,f.value.scrollTop=ne-E+f.value.offsetTop}l.value.style.margin=`10px 0`,l.value.style.minHeight=`${S}px`,l.value.style.maxHeight=`${u}px`,r(`placed`),requestAnimationFrame(()=>s.value=!0)}}let _=M(``);Gi(async()=>{await Qn(),g(),d.value&&(_.value=window.getComputedStyle(d.value).zIndex)});function v(e){e&&c.value===!0&&(g(),h?.(),c.value=!1)}return gg(a.triggerElement,()=>{g()}),SS({contentWrapper:l,shouldExpandOnScrollRef:s,onScrollButtonChange:v}),(e,t)=>(z(),B(`div`,{ref_key:`contentWrapperElement`,ref:l,style:me({display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:_.value})},[U(N(y_),K({ref:N(u),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...n}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)],4))}}),wS=F({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return pS(e.context),yS(_S),(e,t)=>L(e.$slots,`default`)}}),TS={key:1},ES=F({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=Hg(n,t),i=fS(),a=M();Gi(()=>{a.value=new DocumentFragment});let o=M(),s=q(()=>n.forceMount||i.open.value),c=M(s.value),l;function u(){l&&=(clearTimeout(l),void 0)}return Er(s,(e,t,n)=>{u(),l=setTimeout(()=>{c.value=s.value,l=void 0}),n(u)}),Yi(u),(e,t)=>s.value||c.value||o.value?.present?(z(),V(N(g_),{key:0,ref_key:`presenceRef`,ref:o,present:s.value},{default:P(()=>[U(bS,ye(hs({...N(r),...e.$attrs})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):a.value?(z(),B(`div`,TS,[(z(),V(Vr,{to:a.value},[U(wS,{context:N(i)},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):G(`v-if`,!0)}}),DS=F({__name:`SelectIcon`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(z(),V(N(y_),{"aria-hidden":`true`,as:e.as,"as-child":e.asChild},{default:P(()=>[L(e.$slots,`default`,{},()=>[t[0]||=W(`▼`)])]),_:3},8,[`as`,`as-child`]))}}),[OS,kS]=Rh(`SelectItem`),AS=F({__name:`SelectItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,{disabled:i}=yn(n),a=fS(),o=vS(),{forwardRef:s,currentElement:c}=Bg(),{CollectionItem:l}=pv(),u=q(()=>cS(a.modelValue?.value,n.value,a.by)),d=M(!1),f=M(n.textValue??``),p=s_(void 0,`reka-select-item-text`);async function m(e){e.defaultPrevented||Bh(`select.select`,h,{originalEvent:e,value:n.value})}async function h(e){await Qn(),r(`select`,e),!e.defaultPrevented&&(i.value||(a.onValueChange(n.value),a.multiple.value||a.onOpenChange(!1)))}async function g(e){await Qn(),!e.defaultPrevented&&(i.value?o.onItemLeave?.():e.currentTarget?.focus({preventScroll:!0}))}async function _(e){await Qn(),!e.defaultPrevented&&e.currentTarget===zh()&&o.onItemLeave?.()}async function v(e){await Qn(),!e.defaultPrevented&&(o.searchRef?.value!==``&&e.key===` `||(sS.includes(e.key)&&m(e),e.key===` `&&e.preventDefault()))}if(n.value===``)throw Error(`A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return Gi(()=>{c.value&&o.itemRefCallback(c.value,n.value,n.disabled)}),kS({value:n.value,disabled:i,textId:p,isSelected:u,onItemTextChange:e=>{f.value=((f.value||e?.textContent)??``).trim()}}),(e,t)=>(z(),V(N(l),{value:{textValue:f.value}},{default:P(()=>[U(N(y_),{ref:N(s),role:`option`,"aria-labelledby":N(p),"data-highlighted":d.value?``:void 0,"aria-selected":u.value,"data-state":u.value?`checked`:`unchecked`,"aria-disabled":N(i)||void 0,"data-disabled":N(i)?``:void 0,tabindex:N(i)?void 0:-1,as:e.as,"as-child":e.asChild,onFocus:t[0]||=e=>d.value=!0,onBlur:t[1]||=e=>d.value=!1,onPointerup:m,onPointerdown:t[2]||=e=>{e.currentTarget.focus({preventScroll:!0})},onTouchend:t[3]||=Jl(()=>{},[`prevent`,`stop`]),onPointermove:g,onPointerleave:_,onKeydown:v},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`aria-labelledby`,`data-highlighted`,`aria-selected`,`data-state`,`aria-disabled`,`data-disabled`,`tabindex`,`as`,`as-child`])]),_:3},8,[`value`]))}}),jS=F({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=OS();return(e,r)=>N(n).isSelected.value?(z(),V(N(y_),K({key:0,"aria-hidden":`true`},t),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):G(`v-if`,!0)}}),MS=F({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=fS(),r=vS(),i=OS(),{forwardRef:a,currentElement:o}=Bg(),s=q(()=>({value:i.value,disabled:i.disabled.value,textContent:o.value?.textContent??i.value?.toString()??``}));return Gi(()=>{o.value&&(i.onItemTextChange(o.value),r.itemTextRefCallback(o.value,i.value,i.disabled.value),n.onOptionAdd(s.value))}),Yi(()=>{n.onOptionRemove(s.value)}),(e,n)=>(z(),V(N(y_),K({id:N(i).textId,ref:N(a)},{...t,...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),NS=F({__name:`SelectPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),PS=F({__name:`SelectTrigger`,props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=fS(),{forwardRef:r,currentElement:i}=Bg(),a=q(()=>n.disabled?.value||t.disabled);n.contentId||=s_(void 0,`reka-select-content`),Gi(()=>{n.onTriggerChange(i.value)});let{getItems:o}=pv(),{search:s,handleTypeaheadSearch:c,resetTypeahead:l}=d_();function u(){a.value||(n.onOpenChange(!0),l())}function d(e){u(),n.triggerPointerDownPosRef.value={x:Math.round(e.pageX),y:Math.round(e.pageY)}}return(e,t)=>(z(),V(N(zv),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(y_),{ref:N(r),role:`combobox`,type:e.as===`button`?`button`:void 0,"aria-controls":N(n).contentId,"aria-expanded":N(n).open.value||!1,"aria-required":N(n).required?.value,"aria-autocomplete":`none`,disabled:a.value,dir:N(n)?.dir.value,"data-state":N(n)?.open.value?`open`:`closed`,"data-disabled":a.value?``:void 0,"data-placeholder":N(uS)(N(n).modelValue?.value)?``:void 0,"as-child":e.asChild,as:e.as,onClick:t[0]||=e=>{(e?.currentTarget)?.focus()},onPointerdown:t[1]||=e=>{if(e.pointerType===`touch`)return e.preventDefault();let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&(d(e),e.preventDefault())},onPointerup:t[2]||=Jl(e=>{e.pointerType===`touch`&&d(e)},[`prevent`]),onKeydown:t[3]||=e=>{let t=N(s)!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&t&&e.key===` `||(N(c)(e.key,N(o)()),N(oS).includes(e.key)&&(u(),e.preventDefault()))}},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`type`,`aria-controls`,`aria-expanded`,`aria-required`,`disabled`,`dir`,`data-state`,`data-disabled`,`data-placeholder`,`as-child`,`as`])]),_:3},8,[`reference`]))}}),FS=F({__name:`SelectValue`,props:{placeholder:{type:String,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,{forwardRef:n,currentElement:r}=Bg(),i=fS();Gi(()=>{i.valueElement=r});let a=q(()=>{let e=[],t=Array.from(i.optionsSet.value),n=e=>t.find(t=>cS(e,t.value,i.by));return e=Array.isArray(i.modelValue.value)?i.modelValue.value.map(e=>n(e)?.textContent??``):[n(i.modelValue.value)?.textContent??``],e.filter(Boolean)}),o=q(()=>a.value.length?a.value.join(`, `):t.placeholder);return(e,r)=>(z(),V(N(y_),{ref:N(n),as:e.as,"as-child":e.asChild,style:{pointerEvents:`none`},"data-placeholder":a.value.length?void 0:t.placeholder},{default:P(()=>[L(e.$slots,`default`,{selectedLabel:a.value,modelValue:N(i).modelValue.value},()=>[W(j(o.value),1)])]),_:3},8,[`as`,`as-child`,`data-placeholder`]))}}),IS=F({__name:`SelectViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{nonce:n}=yn(t),r=mx(n),i=vS(),a=i.position===`item-aligned`?xS():void 0,{forwardRef:o,currentElement:s}=Bg();Gi(()=>{i?.onViewportChange(s.value)});let c=M(0);function l(e){let t=e.currentTarget,{shouldExpandOnScrollRef:n,contentWrapper:r}=a??{};if(n?.value&&r?.value){let e=Math.abs(c.value-t.scrollTop);if(e>0){let n=window.innerHeight-20,i=Number.parseFloat(r.value.style.minHeight),a=Number.parseFloat(r.value.style.height),o=Math.max(i,a);if(o<n){let i=o+e,a=Math.min(n,i),s=i-a;r.value.style.height=`${a}px`,r.value.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,r.value.style.justifyContent=`flex-end`)}}}c.value=t.scrollTop}return(e,n)=>(z(),B(R,null,[U(N(y_),K({ref:N(o),"data-reka-select-viewport":``,role:`presentation`},{...e.$attrs,...t},{style:{position:`relative`,flex:1,overflow:`hidden auto`},onScroll:l}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16),U(N(y_),{as:`style`,nonce:N(r)},{default:P(()=>n[0]||=[W(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),[LS,RS]=Rh(`SwitchRoot`),zS=F({__name:`SwitchRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:`on`},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,{disabled:i}=yn(n),a=_g(n,`modelValue`,r,{defaultValue:n.defaultValue??n.falseValue,passive:n.modelValue===void 0}),o=q(()=>a.value===n.trueValue);function s(){i.value||(a.value=o.value?n.falseValue:n.trueValue)}let{forwardRef:c,currentElement:l}=Bg(),u=zg(l),d=q(()=>n.id&&l.value?document.querySelector(`[for="${n.id}"]`)?.innerText:void 0);return RS({checked:o,toggleCheck:s,disabled:i}),(e,t)=>(z(),V(N(y_),K(e.$attrs,{id:e.id,ref:N(c),role:`switch`,type:e.as===`button`?`button`:void 0,value:e.value,"aria-label":e.$attrs[`aria-label`]||d.value,"aria-checked":o.value,"aria-required":e.required,"data-state":o.value?`checked`:`unchecked`,"data-disabled":N(i)?``:void 0,"as-child":e.asChild,as:e.as,disabled:N(i),onClick:s,onKeydown:Xl(Jl(s,[`prevent`]),[`enter`])}),{default:P(()=>[L(e.$slots,`default`,{modelValue:N(a),checked:o.value}),N(u)&&e.name?(z(),V(N(gv),{key:0,type:`checkbox`,name:e.name,disabled:N(i),required:e.required,value:e.value,checked:o.value},null,8,[`name`,`disabled`,`required`,`value`,`checked`])):G(`v-if`,!0)]),_:3},16,[`id`,`type`,`value`,`aria-label`,`aria-checked`,`aria-required`,`data-state`,`data-disabled`,`as-child`,`as`,`disabled`,`onKeydown`]))}}),BS=F({__name:`SwitchThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=LS();return Bg(),(e,n)=>(z(),V(N(y_),{"data-state":N(t).checked.value?`checked`:`unchecked`,"data-disabled":N(t).disabled.value?``:void 0,"as-child":e.asChild,as:e.as},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`data-state`,`data-disabled`,`as-child`,`as`]))}}),[VS,HS]=Rh(`TabsRoot`),US=F({__name:`TabsRoot`,props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:`automatic`},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,{orientation:i,unmountOnHide:a,dir:o}=yn(n),s=Ng(o);Bg();let c=_g(n,`modelValue`,r,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),l=M(),u=un(new Set);return HS({modelValue:c,changeModelValue:e=>{c.value=e},orientation:i,dir:s,unmountOnHide:a,activationMode:n.activationMode,baseId:s_(void 0,`reka-tabs`),tabsList:l,contentIds:u,registerContent:e=>{u.value=new Set([...u.value,e])},unregisterContent:e=>{let t=new Set(u.value);t.delete(e),u.value=t}}),(e,t)=>(z(),V(N(y_),{dir:N(s),"data-orientation":N(i),"as-child":e.asChild,as:e.as},{default:P(()=>[L(e.$slots,`default`,{modelValue:N(c)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function WS(e,t){return`${e}-trigger-${t}`}function GS(e,t){return`${e}-content-${t}`}var KS=F({__name:`TabsList`,props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{loop:t}=yn(e),{forwardRef:n,currentElement:r}=Bg(),i=VS();return i.tabsList=r,(e,r)=>(z(),V(N(vx),{"as-child":``,orientation:N(i).orientation.value,dir:N(i).dir.value,loop:N(t)},{default:P(()=>[U(N(y_),{ref:N(n),role:`tablist`,"as-child":e.asChild,as:e.as,"aria-orientation":N(i).orientation.value},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),qS=F({__name:`TabsTrigger`,props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,{forwardRef:n}=Bg(),r=VS(),i=q(()=>WS(r.baseId,t.value)),a=q(()=>r.contentIds.value.has(t.value)?GS(r.baseId,t.value):void 0),o=q(()=>t.value===r.modelValue.value);return(e,t)=>(z(),V(N(yx),{"as-child":``,focusable:!e.disabled,active:o.value},{default:P(()=>[U(N(y_),{id:i.value,ref:N(n),role:`tab`,type:e.as===`button`?`button`:void 0,as:e.as,"as-child":e.asChild,"aria-selected":o.value?`true`:`false`,"aria-controls":a.value,"data-state":o.value?`active`:`inactive`,disabled:e.disabled,"data-disabled":e.disabled?``:void 0,"data-orientation":N(r).orientation.value,onMousedown:t[0]||=Jl(t=>{!e.disabled&&t.ctrlKey===!1?N(r).changeModelValue(e.value):t.preventDefault()},[`left`]),onKeydown:t[1]||=Xl(t=>N(r).changeModelValue(e.value),[`enter`,`space`]),onFocus:t[2]||=()=>{let t=N(r).activationMode!==`manual`;!o.value&&!e.disabled&&t&&N(r).changeModelValue(e.value)}},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as`,`as-child`,`aria-selected`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`data-orientation`])]),_:3},8,[`focusable`,`active`]))}}),[JS,YS]=Rh(`TooltipProvider`),XS=F({inheritAttrs:!1,__name:`TooltipProvider`,props:{delayDuration:{type:Number,required:!1,default:700},skipDelayDuration:{type:Number,required:!1,default:300},disableHoverableContent:{type:Boolean,required:!1,default:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:!1},content:{type:Object,required:!1}},setup(e){let{delayDuration:t,skipDelayDuration:n,disableHoverableContent:r,disableClosingTrigger:i,ignoreNonKeyboardFocus:a,disabled:o,content:s}=yn(e);Bg();let c=M(!0),l=M(!1),{start:u,stop:d}=og(()=>{c.value=!0},n,{immediate:!1});return YS({isOpenDelayed:c,delayDuration:t,onOpen(){d(),c.value=!1},onClose(){u()},isPointerInTransitRef:l,disableHoverableContent:r,disableClosingTrigger:i,disabled:o,ignoreNonKeyboardFocus:a,content:s}),(e,t)=>L(e.$slots,`default`)}}),ZS=`tooltip.open`,[QS,$S]=Rh(`TooltipRoot`),eC=F({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;Bg();let i=JS(),a=q(()=>n.disableHoverableContent??i.disableHoverableContent.value),o=q(()=>n.disableClosingTrigger??i.disableClosingTrigger.value),s=q(()=>n.disabled??i.disabled.value),c=q(()=>n.delayDuration??i.delayDuration.value),l=q(()=>n.ignoreNonKeyboardFocus??i.ignoreNonKeyboardFocus.value),u=_g(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});Er(u,e=>{i.onClose&&(e?(i.onOpen(),document.dispatchEvent(new CustomEvent(ZS))):i.onClose())});let d=M(!1),f=M(),p=q(()=>u.value?d.value?`delayed-open`:`instant-open`:`closed`),{start:m,stop:h}=og(()=>{d.value=!0,u.value=!0},c,{immediate:!1});function g(){h(),d.value=!1,u.value=!0}function _(){h(),u.value=!1}function v(){m()}return $S({contentId:``,open:u,stateAttribute:p,trigger:f,onTriggerChange(e){f.value=e},onTriggerEnter(){i.isOpenDelayed.value?v():g()},onTriggerLeave(){a.value?_():h()},onOpen:g,onClose:_,disableHoverableContent:a,disableClosingTrigger:o,disabled:s,ignoreNonKeyboardFocus:l}),(e,t)=>(z(),V(N(Rv),null,{default:P(()=>[L(e.$slots,`default`,{open:N(u)})]),_:3}))}}),tC=F({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=QS(),a=JS(),{forwardRef:o,currentElement:s}=Bg(),c=q(()=>n.ariaLabel||s.value?.textContent),l=q(()=>{let{ariaLabel:e,...t}=n;return Dg(t,a.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return Gi(()=>{ug(window,`scroll`,e=>{e.target?.contains(i.trigger.value)&&i.onClose()},{capture:!0}),ug(window,ZS,i.onClose)}),(e,t)=>(z(),V(N(j_),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:t[0]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[1]||=e=>{N(i).disableClosingTrigger.value&&N(i).trigger.value?.contains(e.target)&&e.preventDefault(),r(`pointerDownOutside`,e)},onFocusOutside:t[2]||=Jl(()=>{},[`prevent`]),onDismiss:t[3]||=e=>N(i).onClose()},{default:P(()=>[U(N(Zb),K({ref:N(o),"data-state":N(i).stateAttribute.value},{...e.$attrs,...l.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:P(()=>[L(e.$slots,`default`),U(N(mv),{id:N(i).contentId,role:`tooltip`},{default:P(()=>[W(j(c.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),nC=F({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let t=Vg(e),{forwardRef:n,currentElement:r}=Bg(),{trigger:i,onClose:a}=QS(),o=JS(),{isPointerInTransit:s,onPointerExit:c}=Ug(i,r);return o.isPointerInTransitRef=s,c(()=>{a()}),(e,r)=>(z(),V(tC,K({ref:N(n)},N(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),rC=F({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=QS(),a=Hg(n,r),{forwardRef:o}=Bg();return(e,t)=>(z(),V(N(g_),{present:e.forceMount||N(i).open.value},{default:P(()=>[(z(),V(ia(N(i).disableHoverableContent.value?tC:nC),K({ref:N(o)},N(a)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),iC=F({__name:`TooltipPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),aC=F({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=QS(),r=JS();n.contentId||=s_(void 0,`reka-tooltip-content`);let{forwardRef:i,currentElement:a}=Bg(),o=M(!1),s=M(!1),c=q(()=>n.disabled.value?{}:{click:h,focus:p,pointermove:d,pointerleave:f,pointerdown:u,blur:m});Gi(()=>{n.onTriggerChange(a.value)});function l(){setTimeout(()=>{o.value=!1},1)}function u(){n.open&&!n.disableClosingTrigger.value&&n.onClose(),o.value=!0,document.addEventListener(`pointerup`,l,{once:!0})}function d(e){e.pointerType!==`touch`&&!s.value&&!r.isPointerInTransitRef.value&&(n.onTriggerEnter(),s.value=!0)}function f(){n.onTriggerLeave(),s.value=!1}function p(e){o.value||n.ignoreNonKeyboardFocus.value&&!e.target.matches?.(`:focus-visible`)||n.onOpen()}function m(){n.onClose()}function h(){n.disableClosingTrigger.value||n.onClose()}return(e,r)=>(z(),V(N(zv),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(y_),K({ref:N(i),"aria-describedby":N(n).open.value?N(n).contentId:void 0,"data-state":N(n).stateAttribute.value,as:e.as,"as-child":t.asChild,"data-grace-area-trigger":``},ua(c.value)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),$=F({__name:`Button`,props:{variant:{},size:{},class:{},asChild:{type:Boolean},as:{default:`button`}},setup(e){let t=e;return(n,r)=>(z(),V(N(y_),{as:e.as,"as-child":e.asChild,class:A(N(lh)(N(oC)({variant:e.variant,size:e.size}),t.class))},{default:P(()=>[L(n.$slots,`default`)]),_:3},8,[`as`,`as-child`,`class`]))}}),oC=Mh(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,destructive:`bg-destructive text-white hover:bg-destructive/90`},size:{sm:`h-8 rounded-md px-3 text-xs`,default:`h-9 px-4 py-2`,icon:`size-9`}},defaultVariants:{variant:`default`,size:`default`}}),sC=F({__name:`Input`,props:Oa({class:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=Xa(e,`modelValue`);return(e,n)=>gr((z(),B(`input`,{"onUpdate:modelValue":n[0]||=e=>t.value=e,class:A(N(lh)(`flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50`,e.$props.class))},null,2)),[[Pl,t.value]])}}),cC=F({__name:`SelectTrigger`,props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=Vg(t);return(e,r)=>(z(),V(N(PS),K(N(n),{class:N(lh)(`flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,t.class)}),{default:P(()=>[L(e.$slots,`default`),U(N(DS),{"as-child":``},{default:P(()=>[U(N(Ou),{class:`size-4 opacity-50`})]),_:1})]),_:3},16,[`class`]))}}),lC=F({__name:`SelectContent`,props:{forceMount:{type:Boolean},position:{default:`popper`},bodyLock:{type:Boolean},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(t,i)=>(z(),V(N(NS),null,{default:P(()=>[U(N(ES),K(N(r),{class:N(lh)(`relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,e.position===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1`,n.class)}),{default:P(()=>[U(N(IS),{class:A(N(lh)(`p-1`,e.position===`popper`&&`h-[var(--reka-select-trigger-height)] w-full min-w-[var(--reka-select-trigger-width)]`))},{default:P(()=>[L(t.$slots,`default`)]),_:3},8,[`class`])]),_:3},16,[`class`])]),_:3}))}}),uC={class:`absolute left-2 flex size-3.5 items-center justify-center`},dC=F({__name:`SelectItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=Vg(t);return(e,r)=>(z(),V(N(AS),K(N(n),{class:N(lh)(`relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,t.class)}),{default:P(()=>[H(`span`,uC,[U(N(jS),null,{default:P(()=>[U(N(Du),{class:`size-4`})]),_:1})]),U(N(MS),null,{default:P(()=>[L(e.$slots,`default`)]),_:3})]),_:3},16,[`class`]))}}),fC=F({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(KS),K(t,{class:N(lh)(`inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground`,t.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`]))}}),pC=F({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=Vg(t);return(e,r)=>(z(),V(N(qS),K(N(n),{class:N(lh)(`inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow`,t.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`]))}}),mC=F({__name:`PopoverContent`,props:{forceMount:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{default:`center`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(e,t)=>(z(),V(N(Jx),null,{default:P(()=>[U(N(qx),K(N(r),{class:N(lh)(`z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,n.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),hC=F({__name:`Badge`,props:{variant:{},class:{}},setup(e){return(t,n)=>(z(),B(`span`,{class:A(N(lh)(N(gC)({variant:e.variant}),t.$props.class))},[L(t.$slots,`default`)],2))}}),gC=Mh(`inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground`,secondary:`border-transparent bg-secondary text-secondary-foreground`,outline:`text-foreground`,destructive:`border-transparent bg-destructive text-white`,source:`border-transparent bg-state-source/15 text-state-source`,machine:`border-transparent bg-state-machine/15 text-state-machine`,reviewed:`border-transparent bg-state-reviewed/15 text-state-reviewed`,"needs-review":`border-transparent bg-state-needs-review/15 text-state-needs-review`}},defaultVariants:{variant:`default`}}),_C=F({__name:`Switch`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},id:{},value:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(e,t)=>(z(),V(N(zS),K(N(r),{class:N(lh)(`peer inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,n.class)}),{default:P(()=>[U(N(BS),{class:`pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0`})]),_:1},16,[`class`]))}}),vC={class:`flex flex-col gap-3`},yC=[`aria-checked`,`onClick`],bC=[`aria-checked`],xC=[`aria-checked`,`disabled`],SC={key:0,class:`ml-[30px] text-[11px] text-muted-foreground`},CC=[`aria-checked`],wC={class:`border-t pt-2`},TC=[`aria-checked`,`onClick`],EC={class:`border-t pt-2`},DC=[`aria-checked`],OC={class:`border-t pt-2`},kC=[`aria-checked`,`disabled`,`onClick`],AC={class:`truncate`},jC=F({__name:`FilterMenu`,props:{states:{},issues:{},enabled:{},plurality:{},emptySource:{type:Boolean},aiContextUnreviewed:{type:Boolean},noUsages:{type:Boolean},skipTranslate:{type:Boolean},scanIndexed:{type:Boolean}},emits:[`update:states`,`update:issues`,`update:enabled`,`update:plurality`,`update:emptySource`,`update:aiContextUnreviewed`,`update:noUsages`,`update:skipTranslate`],setup(e,{emit:t}){let n=e,r=t,i=q(()=>new Set(n.enabled));function a(e){r(`update:states`,n.states.includes(e)?n.states.filter(t=>t!==e):[...n.states,e])}function o(e){r(`update:plurality`,n.plurality.includes(e)?n.plurality.filter(t=>t!==e):[...n.plurality,e])}function s(e){i.value.has(e)&&r(`update:issues`,n.issues.includes(e)?n.issues.filter(t=>t!==e):[...n.issues,e])}function c(e,t){t?i.value.has(e)||r(`update:enabled`,[...n.enabled,e]):(r(`update:enabled`,n.enabled.filter(t=>t!==e)),n.issues.includes(e)&&r(`update:issues`,n.issues.filter(t=>t!==e)))}return(t,n)=>(z(),B(`div`,vC,[H(`div`,null,[n[7]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Status`,-1),(z(!0),B(R,null,I(N(hp),t=>(z(),B(`button`,{key:t,type:`button`,role:`checkbox`,"aria-checked":e.states.includes(t),class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:e=>a(t)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.states.includes(t)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.states.includes(t)?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),W(` `+j(N(vp)[t]),1)],8,yC))),128)),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.emptySource,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:n[0]||=t=>r(`update:emptySource`,!e.emptySource)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.emptySource?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.emptySource?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),n[4]||=W(` Empty source `,-1)],8,bC),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.noUsages,disabled:!e.scanIndexed,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm enabled:hover:bg-accent disabled:cursor-not-allowed disabled:opacity-50`,onClick:n[1]||=t=>r(`update:noUsages`,!e.noUsages)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.noUsages?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.noUsages?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),n[5]||=W(` Unused `,-1)],8,xC),e.scanIndexed?G(``,!0):(z(),B(`p`,SC,`Run a scan first`)),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.skipTranslate,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:n[2]||=t=>r(`update:skipTranslate`,!e.skipTranslate)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.skipTranslate?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.skipTranslate?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),n[6]||=W(` Skip-translate `,-1)],8,CC)]),H(`div`,wC,[n[8]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Type`,-1),(z(!0),B(R,null,I(N(gp),t=>(z(),B(`button`,{key:t,type:`button`,role:`checkbox`,"aria-checked":e.plurality.includes(t),class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:e=>o(t)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.plurality.includes(t)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.plurality.includes(t)?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),W(` `+j(N(yp)[t]),1)],8,TC))),128))]),H(`div`,EC,[n[10]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Context`,-1),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.aiContextUnreviewed,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:n[3]||=t=>r(`update:aiContextUnreviewed`,!e.aiContextUnreviewed)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.aiContextUnreviewed?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.aiContextUnreviewed?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),U(N(vd),{class:`size-3.5 text-muted-foreground`}),n[9]||=W(` AI context (unreviewed) `,-1)],8,DC)]),H(`div`,OC,[n[11]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Issues`,-1),n[12]||=H(`p`,{class:`mb-1.5 text-[11px] text-muted-foreground`},`Toggle a check to run it; tick its box to filter by it.`,-1),(z(!0),B(R,null,I(N(pp),t=>(z(),B(`div`,{key:t,class:`flex items-center gap-2 py-0.5`},[H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.issues.includes(t),class:`flex min-w-0 flex-1 items-center gap-2 rounded px-1.5 py-1 text-sm disabled:opacity-50 enabled:hover:bg-accent`,disabled:!i.value.has(t),onClick:e=>s(t)},[H(`span`,{class:A([`flex size-4 shrink-0 items-center justify-center rounded border transition-colors`,e.issues.includes(t)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.issues.includes(t)?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),H(`span`,AC,j(N(_p)[t]),1)],8,kC),U(N(_C),{"model-value":i.value.has(t),"aria-label":`Enable ${N(_p)[t]} check`,"onUpdate:modelValue":e=>c(t,e)},null,8,[`model-value`,`aria-label`,`onUpdate:modelValue`])]))),128))])]))}}),MC=F({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(aS),{for:t.for,class:A(N(lh)(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`for`,`class`]))}}),NC=F({__name:`DialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(e,t)=>(z(),V(N(uv),null,{default:P(()=>[U(N(cv),{class:`fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`}),U(N(av),K(N(r),{class:N(lh)(`fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-card p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg`,n.class)}),{default:P(()=>[L(e.$slots,`default`),U(N(w_),{class:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`},{default:P(()=>[U(N(kd),{class:`size-4`}),t[0]||=H(`span`,{class:`sr-only`},`Close`,-1)]),_:1})]),_:3},16,[`class`])]),_:3}))}}),PC=F({__name:`DialogHeader`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`div`,{class:A(N(lh)(`flex flex-col gap-1.5 text-center sm:text-left`,e.$props.class))},[L(e.$slots,`default`)],2))}}),FC=F({__name:`DialogFooter`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`div`,{class:A(N(lh)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e.$props.class))},[L(e.$slots,`default`)],2))}}),IC=F({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(dv),{class:A(N(lh)(`text-lg font-semibold leading-none tracking-tight`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),LC=F({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(ov),{class:A(N(lh)(`text-sm text-muted-foreground`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),RC=F({__name:`DropdownMenuContent`,props:{forceMount:{type:Boolean},loop:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(e,t)=>(z(),V(N(nS),null,{default:P(()=>[U(N($x),K(N(r),{class:N(lh)(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,n.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),zC=F({__name:`DropdownMenuItem`,props:{disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=Vg(t);return(e,r)=>(z(),V(N(eS),K(N(n),{class:N(lh)(`relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4`,t.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`]))}}),BC=F({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(tS),{class:A(N(lh)(`px-2 py-1.5 text-sm font-semibold`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),VC=F({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(rS),{class:A(N(lh)(`-mx-1 my-1 h-px bg-border`,t.class))},null,8,[`class`]))}}),HC={class:`flex flex-wrap items-center gap-2`},UC={class:`grid gap-2`},WC={class:`flex flex-wrap gap-2`},GC=F({__name:`SelectionBar`,props:{keys:{},locales:{},scopeLabel:{},tagsOnSelection:{}},emits:[`changed`,`clear`,`translate`,`build-context`],setup(e,{emit:t}){let n=e,r=t,i=M(!1),a=M(!1),o=M(!1),s=M(!1),c=M(!1),l=M(``);Er(s,e=>{e||(l.value=``)});async function u(e,t,n=!1){i.value=!0;try{await e(),Q.success(t),r(`changed`),n&&r(`clear`),a.value=!1,o.value=!1,s.value=!1,c.value=!1}catch(e){Q.error(e.message||`Bulk action failed`)}finally{i.value=!1}}let d=()=>u(()=>Pd(n.keys,n.locales),`Cleared translations for ${n.keys.length} key${n.keys.length===1?``:`s`}`),f=()=>u(()=>Fd(n.keys),`Deleted ${n.keys.length} key${n.keys.length===1?``:`s`}`,!0),p=e=>u(()=>Id(n.keys,n.locales,e),`Marked ${n.keys.length} key${n.keys.length===1?``:`s`} ${e}`),m=e=>u(()=>Ld(n.keys,{skipTranslate:e}),e?`Marked skip-translate`:`Cleared skip-translate`),h=()=>u(()=>Ld(n.keys,{clearContext:!0}),`Cleared context for ${n.keys.length} key${n.keys.length===1?``:`s`}`),g=()=>{let e=l.value.trim();if(!(!e||i.value))return u(()=>Ld(n.keys,{addTags:[e]}),`Added tag "${e}"`).then(()=>l.value=``)},_=e=>u(()=>Ld(n.keys,{removeTags:[e]}),`Removed tag "${e}"`);return(t,n)=>(z(),B(`div`,HC,[U(N($),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-clear-trigger`,disabled:i.value||!e.keys.length,onClick:n[0]||=e=>a.value=!0},{default:P(()=>[U(N(Ru),{class:`size-4`}),n[19]||=W(` Clear translations `,-1)]),_:1},8,[`disabled`]),U(N($),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-translate`,disabled:i.value||!e.keys.length,onClick:n[1]||=e=>r(`translate`)},{default:P(()=>[U(N(vd),{class:`size-4`}),n[20]||=W(` Translate `,-1)]),_:1},8,[`disabled`]),U(N($),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-build-context`,disabled:i.value||!e.keys.length,onClick:n[2]||=e=>r(`build-context`)},{default:P(()=>[U(N(Od),{class:`size-4`}),n[21]||=W(` Build context `,-1)]),_:1},8,[`disabled`]),U(N(Qx),null,{default:P(()=>[U(N(iS),{"as-child":``},{default:P(()=>[U(N($),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-set-trigger`,disabled:i.value||!e.keys.length},{default:P(()=>[n[22]||=W(` Set `,-1),U(N(Ou),{class:`size-4`})]),_:1},8,[`disabled`])]),_:1}),U(N(RC),{align:`end`,class:`w-52`},{default:P(()=>[U(N(BC),null,{default:P(()=>[W(`Status · `+j(e.scopeLabel),1)]),_:1}),U(N(zC),{"data-testid":`bulk-mark-reviewed`,onSelect:n[3]||=e=>p(`reviewed`)},{default:P(()=>[...n[23]||=[W(`Mark reviewed`,-1)]]),_:1}),U(N(zC),{"data-testid":`bulk-mark-needs-review`,onSelect:n[4]||=e=>p(`needs-review`)},{default:P(()=>[...n[24]||=[W(`Mark needs-review`,-1)]]),_:1}),U(N(VC)),U(N(BC),null,{default:P(()=>[...n[25]||=[W(`Tags · key`,-1)]]),_:1}),U(N(zC),{onSelect:n[5]||=e=>s.value=!0},{default:P(()=>[...n[26]||=[W(`Add tag…`,-1)]]),_:1}),U(N(zC),{disabled:!e.tagsOnSelection.length,onSelect:n[6]||=e=>c.value=!0},{default:P(()=>[...n[27]||=[W(`Remove tag…`,-1)]]),_:1},8,[`disabled`]),U(N(VC)),U(N(BC),null,{default:P(()=>[...n[28]||=[W(`Context · key`,-1)]]),_:1}),U(N(zC),{onSelect:h},{default:P(()=>[...n[29]||=[W(`Clear context`,-1)]]),_:1}),U(N(VC)),U(N(BC),null,{default:P(()=>[...n[30]||=[W(`Translation · key`,-1)]]),_:1}),U(N(zC),{onSelect:n[7]||=e=>m(!0)},{default:P(()=>[...n[31]||=[W(`Skip translate`,-1)]]),_:1}),U(N(zC),{onSelect:n[8]||=e=>m(!1)},{default:P(()=>[...n[32]||=[W(`Don't skip`,-1)]]),_:1})]),_:1})]),_:1}),U(N($),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5 text-destructive hover:bg-destructive/10 hover:text-destructive`,"data-testid":`bulk-delete-trigger`,disabled:i.value||!e.keys.length,onClick:n[9]||=e=>o.value=!0},{default:P(()=>[U(N(wd),{class:`size-4`}),n[33]||=W(` Delete `,-1)]),_:1},8,[`disabled`]),U(N(C_),{open:a.value,"onUpdate:open":n[11]||=e=>a.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[34]||=[W(`Clear translations`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[W(` Clear translations for `+j(e.keys.length)+` `+j(e.keys.length===1?`key`:`keys`)+` in `+j(e.scopeLabel)+`? Source strings are kept. This cannot be undone. `,1)]),_:1})]),_:1}),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:i.value,onClick:n[10]||=e=>a.value=!1},{default:P(()=>[...n[35]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:i.value,"data-testid":`bulk-clear-confirm`,onClick:d},{default:P(()=>[...n[36]||=[W(`Clear translations`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(N(C_),{open:o.value,"onUpdate:open":n[13]||=e=>o.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[37]||=[W(`Delete keys`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[W(` Delete `+j(e.keys.length)+` `+j(e.keys.length===1?`key`:`keys`)+` and all their translations? This cannot be undone. `,1)]),_:1})]),_:1}),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:i.value,onClick:n[12]||=e=>o.value=!1},{default:P(()=>[...n[38]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:i.value,"data-testid":`bulk-delete-confirm`,onClick:f},{default:P(()=>[...n[39]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(N(C_),{open:s.value,"onUpdate:open":n[16]||=e=>s.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[40]||=[W(`Add tag`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[W(`Add a tag to `+j(e.keys.length)+` `+j(e.keys.length===1?`key`:`keys`)+`.`,1)]),_:1})]),_:1}),H(`div`,UC,[U(N(MC),{for:`bulk-add-tag`},{default:P(()=>[...n[41]||=[W(`Tag`,-1)]]),_:1}),U(N(sC),{id:`bulk-add-tag`,modelValue:l.value,"onUpdate:modelValue":n[14]||=e=>l.value=e,disabled:i.value,onKeydown:Xl(Jl(g,[`prevent`]),[`enter`])},null,8,[`modelValue`,`disabled`,`onKeydown`])]),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:i.value,onClick:n[15]||=e=>s.value=!1},{default:P(()=>[...n[42]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:i.value||!l.value.trim(),onClick:g},{default:P(()=>[...n[43]||=[W(`Add`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(N(C_),{open:c.value,"onUpdate:open":n[18]||=e=>c.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[44]||=[W(`Remove tag`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[...n[45]||=[W(`Remove a tag from the selected keys.`,-1)]]),_:1})]),_:1}),H(`div`,WC,[(z(!0),B(R,null,I(e.tagsOnSelection,e=>(z(),V(N($),{key:e,variant:`outline`,size:`sm`,disabled:i.value,onClick:t=>_(e)},{default:P(()=>[W(j(e),1)]),_:2},1032,[`disabled`,`onClick`]))),128))]),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:i.value,onClick:n[17]||=e=>c.value=!1},{default:P(()=>[...n[46]||=[W(`Close`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});function KC(){let e=M(new Set),t=null;function n(t){return e.value.has(t)}function r(n){e.value.has(n)?e.value.delete(n):e.value.add(n),t=n}function i(n,i){if(t===null)return r(n);let a=i.indexOf(t),o=i.indexOf(n);if(a===-1||o===-1)return r(n);let[s,c]=a<o?[a,o]:[o,a];for(let t=s;t<=c;t++)e.value.add(i[t]);t=n}function a(n){for(let t of n)e.value.add(t);t=n.length?n[n.length-1]:null}function o(){e.value.clear(),t=null}function s(n){let r=new Set(n);for(let t of[...e.value])r.has(t)||e.value.delete(t);t!==null&&!r.has(t)&&(t=null)}return{has:n,toggle:r,toggleRange:i,selectAll:a,clear:o,pruneTo:s,keys:()=>[...e.value],count:q(()=>e.value.size),allSelected:t=>t.length>0&&t.every(t=>e.value.has(t)),someSelected:t=>t.some(t=>e.value.has(t))}}var qC=F({__name:`TooltipContent`,props:{forceMount:{type:Boolean},ariaLabel:{},asChild:{type:Boolean},as:{},side:{},sideOffset:{default:4},align:{},alignOffset:{},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(e,t)=>(z(),V(N(iC),null,{default:P(()=>[U(N(rC),K(N(r),{class:N(lh)(`z-50 overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background shadow-md data-[state=delayed-open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95`,n.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),JC=[`zero`,`one`,`two`,`few`,`many`,`other`];function YC(e){let t;try{t=new Intl.PluralRules(e.replace(/_/g,`-`),{type:`cardinal`}).resolvedOptions().pluralCategories}catch{t=[`other`]}let n=new Set(t);return JC.filter(e=>n.has(e))}function XC(e,t,n){if(t===n)return!1;let r=e.values[n];if(e.plural){if(!r?.forms?.other)return!1;let n=e.values[t]?.forms??{};return YC(t).some(e=>(n[e]??``)===``)}return r?.value?!e.values[t]?.value:!1}function ZC(e,t,n){return t.filter(t=>XC(e,t,n))}function QC(e,t,n){return t.filter(t=>{if(t===n)return!1;let r=e.values[t];return!r||r.state!==`needs-review`?!1:r.value?r.value.length>0:Object.keys(r.forms??{}).length>0})}var $C=new Intl.DisplayNames([`en`],{type:`language`}),ew=new Map;function tw(e){if(!ew.has(e)){let t;try{t=new Intl.DisplayNames([e],{type:`language`}).of(e)??void 0}catch{t=void 0}ew.set(e,t)}return ew.get(e)}function nw(e){return e.split(`-`).slice(1).some(e=>/^[a-zA-Z]{5,8}$/.test(e)||/^[0-9][a-zA-Z0-9]{3}$/.test(e))}var rw=new Set([`ar`,`he`,`iw`,`fa`,`ur`,`ps`,`sd`,`ug`,`yi`,`dv`,`ckb`,`ks`,`nqo`,`rhg`]);function iw(e){let t=e.split(/[-_]/)[0]?.toLowerCase()??``;return rw.has(t)}function aw(e,t){let n=e.replace(/_/g,`-`),r=n,i=!1;try{r=Intl.getCanonicalLocales(n)[0]??n,nw(r)&&(i=!0)}catch{i=!0}let a=e;t?.name===void 0?i||(a=$C.of(r)??e):a=t.name;let o;return o=t&&t.flag!==void 0?t.flag:i?null:r===`en`?`en`:new Intl.Locale(r).maximize().region??null,{code:e,bcp47:r,name:a,endonym:i?void 0:tw(r),flagRegion:o,isCustom:i,rtl:iw(e)}}var ow=[`aria-label`],sw=`inline-flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-[11.5px] font-medium leading-none whitespace-nowrap min-w-[132px]`,cw=F({__name:`StateBadge`,props:{state:{},editable:{type:Boolean}},emits:[`setState`],setup(e,{emit:t}){let n=e,r=t,i=[`machine`,`reviewed`,`needs-review`],a={source:`Source`,machine:`Machine`,reviewed:`Reviewed`,"needs-review":`Needs review`},o={source:`bg-accent text-muted-foreground border-border-soft`,machine:`bg-machine-soft text-machine border-transparent`,reviewed:`bg-review-soft text-review border-transparent`,"needs-review":`bg-muted text-muted-foreground border-border`},s={source:`bg-muted-foreground`,machine:`bg-machine`,reviewed:`bg-review`,"needs-review":`bg-muted-foreground`};return(t,c)=>!e.editable||e.state===`source`?(z(),B(`span`,{key:0,class:A(N(lh)(sw,o[e.state],`cursor-default`)),"data-testid":`state-badge`},[e.state===`reviewed`?(z(),V(N(Du),{key:0,class:`size-3 shrink-0`})):(z(),B(`span`,{key:1,class:A(N(lh)(`size-[7px] shrink-0 rounded-full`,s[e.state]))},null,2)),W(` `+j(a[e.state]),1)],2)):(z(),V(N(Qx),{key:1},{default:P(()=>[U(N(iS),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:A(N(lh)(sw,o[e.state],`transition hover:brightness-95 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`)),"aria-label":`${a[e.state]} — change state`,"data-testid":`state-badge`},[e.state===`reviewed`?(z(),V(N(Du),{key:0,class:`size-3 shrink-0`})):(z(),B(`span`,{key:1,class:A(N(lh)(`size-[7px] shrink-0 rounded-full`,s[e.state]))},null,2)),W(` `+j(a[e.state])+` `,1),U(N(Ou),{class:`ml-auto size-3 opacity-50`})],10,ow)]),_:1}),U(N(RC),{align:`end`,class:`min-w-[10rem]`},{default:P(()=>[(z(),B(R,null,I(i,e=>U(N(zC),{key:e,onSelect:t=>r(`setState`,e)},{default:P(()=>[H(`span`,{class:A(N(lh)(`size-[7px] shrink-0 rounded-full`,s[e]))},null,2),W(` `+j(a[e])+` `,1),U(N(Du),{class:A(N(lh)(`ml-auto size-4`,e===n.state?`opacity-100`:`opacity-0`))},null,8,[`class`])]),_:2},1032,[`onSelect`])),64))]),_:1})]),_:1}))}}),lw=new RegExp([`\\{\\s*[A-Za-z0-9_]+\\s*,\\s*(?:plural|select|selectordinal)\\s*,(?:[^{}]|\\{[^{}]*\\})*\\}`,`\\{\\s*[A-Za-z0-9_.]+\\s*\\}`].join(`|`),`g`);function uw(e){let t=[];if(!e.includes(`'`))return t;for(let n=0;n<e.length;){if(e[n]===`'`){let r=e[n+1];if(r===`'`){n+=2;continue}if(r===`{`||r===`}`||r===`#`||r===`|`){let r=n;for(n+=2;n<e.length&&e[n]!==`'`;)n++;let i=n<e.length?n+1:n;t.push([r,i]),n=i;continue}}n++}return t}function dw(e){if(!e)return[];let t=uw(e),n=e=>t.some(([t,n])=>e>=t&&e<n),r=[],i=0;lw.lastIndex=0;let a;for(;(a=lw.exec(e))!==null;){if(a[0].length===0){lw.lastIndex++;continue}n(a.index)||(a.index>i&&r.push({text:e.slice(i,a.index),placeholder:!1}),r.push({text:a[0],placeholder:!0}),i=a.index+a[0].length)}return i<e.length&&r.push({text:e.slice(i),placeholder:!1}),r}var fw=F({__name:`Textarea`,props:Oa({class:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=Xa(e,`modelValue`);return(e,n)=>gr((z(),B(`textarea`,{"onUpdate:modelValue":n[0]||=e=>t.value=e,class:A(N(lh)(`flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50`,e.$props.class))},null,2)),[[Pl,t.value]])}}),pw={class:`min-w-0`},mw={key:0,class:`flex flex-col gap-1`},hw={class:`whitespace-pre-wrap break-words`},gw={key:0,class:`rounded bg-ph-bg px-1 font-mono text-[0.85em] font-semibold text-ph-fg`},_w=F({__name:`ValueEditor`,props:{keyName:{},locale:{},sourceLocale:{},value:{},maxLength:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=M(!1),a=M(``),o=M(!1),s=M(null),c=q(()=>n.locale===n.sourceLocale),l=q(()=>dw(n.value)),u=q(()=>n.maxLength!==void 0&&n.value.length>n.maxLength);function d(e){e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,160)}px`)}async function f(){a.value=n.value,i.value=!0,await Qn();let e=s.value?.$el;e?.focus(),e?.select(),d(e)}function p(){i.value=!1}async function m(){if(!i.value)return;i.value=!1;let e=a.value;if(e!==n.value){o.value=!0;try{c.value?await Rd(n.keyName,{source:e}):await zd(n.keyName,n.locale,e),r(`changed`)}catch(e){Q.error(`Could not save: ${e.message}`),r(`changed`)}finally{o.value=!1}}}return(t,n)=>(z(),B(`div`,pw,[i.value?(z(),B(`div`,mw,[U(N(fw),{ref_key:`textareaEl`,ref:s,modelValue:a.value,"onUpdate:modelValue":n[0]||=e=>a.value=e,rows:`1`,maxlength:e.maxLength,class:`max-w-[560px] resize-none rounded-lg border-2 border-primary text-sm shadow-[0_0_0_3px_var(--ring)]`,onInput:n[1]||=e=>d(e.target),onBlur:m,onKeydown:[Xl(Jl(p,[`prevent`]),[`escape`]),Xl(Jl(m,[`exact`,`prevent`]),[`enter`])]},null,8,[`modelValue`,`maxlength`,`onKeydown`]),n[2]||=H(`span`,{class:`text-[10.5px] text-muted-foreground`},[H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`↵`),W(` save · `),H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`esc`),W(` cancel `)],-1)])):e.value?(z(),B(`button`,{key:1,type:`button`,class:A(N(lh)(`group inline-flex max-w-full items-center gap-1.5 rounded-md px-2 py-1 -mx-2 -my-1 text-left text-sm leading-relaxed hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,u.value&&`text-destructive`)),onClick:Jl(f,[`stop`])},[H(`span`,hw,[(z(!0),B(R,null,I(l.value,(e,t)=>(z(),B(R,{key:t},[e.placeholder?(z(),B(`span`,gw,j(e.text),1)):(z(),B(R,{key:1},[W(j(e.text),1)],64))],64))),128))]),U(N(ad),{"aria-hidden":`true`,class:`size-3 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-60`})],2)):(z(),B(`button`,{key:2,type:`button`,"data-testid":`empty-marker`,class:`group inline-flex items-center gap-1.5 rounded-md border border-dashed border-input px-2.5 py-1 text-[12.5px] font-medium italic text-muted-foreground transition-colors hover:border-border hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:Jl(f,[`stop`])},[n[3]||=W(` Empty `,-1),U(N(ad),{class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-60`,"aria-hidden":`true`})]))]))}}),vw={class:`flex min-w-0 flex-col gap-2`},yw={class:`min-w-0 flex-1`},bw={key:0,class:`flex flex-col gap-1`},xw={class:`font-mono text-[10px] font-semibold uppercase tracking-wide text-primary`},Sw=[`onClick`],Cw={class:`whitespace-pre-wrap break-words`},ww={key:0,class:`rounded bg-ph-bg px-1 font-mono text-[0.85em] font-semibold text-ph-fg`},Tw=[`onClick`],Ew=F({__name:`PluralValueEditor`,props:{keyName:{},locale:{},sourceLocale:{},arg:{},forms:{},sourceForms:{},maxLength:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=q(()=>n.locale===n.sourceLocale),a=q(()=>[...Object.keys(n.forms).filter(e=>/^=\d+$/.test(e)).sort((e,t)=>Number(e.slice(1))-Number(t.slice(1))),...YC(n.locale)]),o=M(null),s=M(``),c=M(!1),l=M(null);function u(e){l.value=e}function d(e){return n.forms[e]??``}function f(e){return dw(d(e))}function p(e){return n.maxLength!==void 0&&d(e).length>n.maxLength}function m(e){e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,160)}px`)}async function h(e){s.value=d(e),o.value=e,await Qn();let t=l.value?.$el;t?.focus(),t?.select(),m(t)}function g(){o.value=null}async function _(){let e=o.value;if(!e)return;o.value=null;let t=s.value;if(t!==d(e)){c.value=!0;try{let i={};for(let[e,t]of Object.entries(n.forms))i[e]=t??``;i[e]=t,await Hd(n.keyName,n.locale,i),r(`changed`)}catch(e){Q.error(`Could not save: ${e.message}`),r(`changed`)}finally{c.value=!1}}}return(t,n)=>(z(),B(`div`,vw,[(z(!0),B(R,null,I(a.value,t=>(z(),B(`div`,{key:t,"data-testid":`plural-field`,class:`flex items-start gap-2.5`},[H(`span`,{class:A(N(lh)(`mt-0.5 min-w-[46px] shrink-0 rounded border border-border px-1.5 py-1 text-center font-mono text-[9.5px] font-semibold uppercase tracking-wide text-muted-foreground`,!i.value&&!d(t)&&`opacity-55`))},j(t),3),H(`div`,yw,[o.value===t?(z(),B(`div`,bw,[H(`span`,xw,`Plural: `+j(t),1),U(N(fw),{ref_for:!0,ref:u,modelValue:s.value,"onUpdate:modelValue":n[0]||=e=>s.value=e,rows:`1`,maxlength:e.maxLength,class:`max-w-[560px] resize-none rounded-lg border-2 border-primary text-sm shadow-[0_0_0_3px_var(--ring)]`,onInput:n[1]||=e=>m(e.target),onBlur:_,onKeydown:[Xl(Jl(g,[`prevent`]),[`escape`]),Xl(Jl(_,[`exact`,`prevent`]),[`enter`])]},null,8,[`modelValue`,`maxlength`,`onKeydown`]),n[2]||=H(`span`,{class:`text-[10.5px] text-muted-foreground`},[H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`↵`),W(` save · `),H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`esc`),W(` cancel `)],-1)])):d(t)?(z(),B(`button`,{key:1,type:`button`,class:A(N(lh)(`group inline-flex max-w-full items-center gap-1.5 rounded-md px-2 py-1 -mx-2 -my-1 text-left text-sm leading-relaxed hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,p(t)&&`text-destructive`)),onClick:Jl(e=>h(t),[`stop`])},[H(`span`,Cw,[(z(!0),B(R,null,I(f(t),(e,t)=>(z(),B(R,{key:t},[e.placeholder?(z(),B(`span`,ww,j(e.text),1)):(z(),B(R,{key:1},[W(j(e.text),1)],64))],64))),128))]),U(N(ad),{class:`size-3 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-60`,"aria-hidden":`true`})],10,Sw)):(z(),B(`button`,{key:2,type:`button`,"data-testid":`empty-marker`,class:`group inline-flex items-center gap-1.5 rounded-md border border-dashed border-input px-2.5 py-1 text-[12.5px] font-medium italic text-muted-foreground transition-colors hover:border-border hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:Jl(e=>h(t),[`stop`])},[n[3]||=W(` Empty `,-1),U(N(ad),{class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-60`,"aria-hidden":`true`})],8,Tw))])]))),128))]))}}),Dw=Object.assign({"./assets/flags/ad.svg":`/assets/ad-B18i8NGa.svg`,"./assets/flags/ae.svg":`/assets/ae-CZRtWSox.svg`,"./assets/flags/af.svg":`/assets/af-C77Rf6cE.svg`,"./assets/flags/ag.svg":`/assets/ag-C8MykuG2.svg`,"./assets/flags/ai.svg":`/assets/ai-Dmedkf4v.svg`,"./assets/flags/al.svg":`/assets/al-10QRkakw.svg`,"./assets/flags/am.svg":`/assets/am-DMt4_dd4.svg`,"./assets/flags/ao.svg":`/assets/ao-tXuRa6vm.svg`,"./assets/flags/aq.svg":`/assets/aq-CF5jO-0h.svg`,"./assets/flags/ar.svg":`/assets/ar-Be8Ju1cG.svg`,"./assets/flags/arab.svg":`/assets/arab-C4CYPgyC.svg`,"./assets/flags/as.svg":`/assets/as-Dekqy8Of.svg`,"./assets/flags/asean.svg":`/assets/asean-WMtZ-US_.svg`,"./assets/flags/at.svg":`/assets/at-DGA_6m5E.svg`,"./assets/flags/au.svg":`/assets/au-DAHDIuPI.svg`,"./assets/flags/aw.svg":`/assets/aw-W0PWLK5p.svg`,"./assets/flags/ax.svg":`/assets/ax-DvLIy84U.svg`,"./assets/flags/az.svg":`/assets/az-Bk-bYNxy.svg`,"./assets/flags/ba.svg":`/assets/ba-WdDiSMvP.svg`,"./assets/flags/bb.svg":`/assets/bb-DJxbaxmT.svg`,"./assets/flags/bd.svg":`/assets/bd-BF9t1-60.svg`,"./assets/flags/be.svg":`/assets/be-CLLkK3PN.svg`,"./assets/flags/bf.svg":`/assets/bf-YclsoDuF.svg`,"./assets/flags/bg.svg":`/assets/bg-GUQenraa.svg`,"./assets/flags/bh.svg":`/assets/bh-BQqEGq6F.svg`,"./assets/flags/bi.svg":`/assets/bi-CRmKY6RQ.svg`,"./assets/flags/bj.svg":`/assets/bj-14PhO9bM.svg`,"./assets/flags/bl.svg":`/assets/bl-4CI2YcwX.svg`,"./assets/flags/bm.svg":`/assets/bm-BeYgB2z9.svg`,"./assets/flags/bn.svg":`/assets/bn-B6T3O78g.svg`,"./assets/flags/bo.svg":`/assets/bo-CcUiMqkJ.svg`,"./assets/flags/bq.svg":`/assets/bq-BYpdxEeT.svg`,"./assets/flags/br.svg":`/assets/br-Cu5YU29T.svg`,"./assets/flags/bs.svg":`/assets/bs-7Gd_oriM.svg`,"./assets/flags/bt.svg":`/assets/bt-BTo4qm10.svg`,"./assets/flags/bv.svg":`/assets/bv-wM9JLv4R.svg`,"./assets/flags/bw.svg":`/assets/bw-n5ZaAnGL.svg`,"./assets/flags/by.svg":`/assets/by-C621sBpd.svg`,"./assets/flags/bz.svg":`/assets/bz-BCKHR4_q.svg`,"./assets/flags/ca.svg":`/assets/ca-PYUrLVUV.svg`,"./assets/flags/cc.svg":`/assets/cc-BNT6Xjzk.svg`,"./assets/flags/cd.svg":`/assets/cd-BGclsrP6.svg`,"./assets/flags/cefta.svg":`/assets/cefta-2dDBYygd.svg`,"./assets/flags/cf.svg":`/assets/cf-DRetLmp-.svg`,"./assets/flags/cg.svg":`/assets/cg-CwIyG6SE.svg`,"./assets/flags/ch.svg":`/assets/ch-sfriZoF1.svg`,"./assets/flags/ci.svg":`/assets/ci-C8Q8IYTn.svg`,"./assets/flags/ck.svg":`/assets/ck-DfXMUOTo.svg`,"./assets/flags/cl.svg":`/assets/cl-BgYYb4qP.svg`,"./assets/flags/cm.svg":`/assets/cm-D4yjdmKT.svg`,"./assets/flags/cn.svg":`/assets/cn-DifnnI3t.svg`,"./assets/flags/co.svg":`/assets/co-DV591zMm.svg`,"./assets/flags/cp.svg":`/assets/cp-K_ay05Q_.svg`,"./assets/flags/cr.svg":`/assets/cr-BlYVN-_Q.svg`,"./assets/flags/cu.svg":`/assets/cu-L6XVZNgo.svg`,"./assets/flags/cv.svg":`/assets/cv-CPsfcOfk.svg`,"./assets/flags/cw.svg":`/assets/cw-BbrnximR.svg`,"./assets/flags/cx.svg":`/assets/cx-DpYD6n6U.svg`,"./assets/flags/cy.svg":`/assets/cy-bZuP8hmf.svg`,"./assets/flags/cz.svg":`/assets/cz-WWBC5Aeb.svg`,"./assets/flags/de.svg":`/assets/de-B-2o-4Z9.svg`,"./assets/flags/dg.svg":`/assets/dg-CJPJrjiZ.svg`,"./assets/flags/dj.svg":`/assets/dj-hp_BwbmO.svg`,"./assets/flags/dk.svg":`/assets/dk-DmS9BCZB.svg`,"./assets/flags/dm.svg":`/assets/dm-Cbhezfe1.svg`,"./assets/flags/do.svg":`/assets/do-B86d445t.svg`,"./assets/flags/dz.svg":`/assets/dz-Dytc1TFu.svg`,"./assets/flags/eac.svg":`/assets/eac-CwGQsyAM.svg`,"./assets/flags/ec.svg":`/assets/ec-CaVOFQ3t.svg`,"./assets/flags/ee.svg":`/assets/ee-DufrxGIR.svg`,"./assets/flags/eg.svg":`/assets/eg-YC70hswZ.svg`,"./assets/flags/eh.svg":`/assets/eh-0awM4TVj.svg`,"./assets/flags/en.svg":`/assets/en-BZRN_IpI.svg`,"./assets/flags/er.svg":`/assets/er-X83uml6t.svg`,"./assets/flags/es-ct.svg":`/assets/es-ct-CVyhLp7O.svg`,"./assets/flags/es-ga.svg":`/assets/es-ga-D9xG2hYr.svg`,"./assets/flags/es-pv.svg":`/assets/es-pv-CO3NM2SE.svg`,"./assets/flags/es.svg":`/assets/es-d5m8M5h8.svg`,"./assets/flags/et.svg":`/assets/et-DwdlzOIx.svg`,"./assets/flags/eu.svg":`/assets/eu-Brdgz8ab.svg`,"./assets/flags/fi.svg":`/assets/fi-DWUIkfjL.svg`,"./assets/flags/fj.svg":`/assets/fj-DEAVMg38.svg`,"./assets/flags/fk.svg":`/assets/fk-nuUF_Ak3.svg`,"./assets/flags/fm.svg":`/assets/fm-B4Z83GL0.svg`,"./assets/flags/fo.svg":`/assets/fo-DFjwyWur.svg`,"./assets/flags/fr.svg":`/assets/fr-DVvUyOqI.svg`,"./assets/flags/ga.svg":`/assets/ga-BklUhLH_.svg`,"./assets/flags/gb-eng.svg":`/assets/gb-eng-C8iDhGHN.svg`,"./assets/flags/gb-nir.svg":`/assets/gb-nir-D4gikpNq.svg`,"./assets/flags/gb-sct.svg":`/assets/gb-sct-fW5q01ek.svg`,"./assets/flags/gb-wls.svg":`/assets/gb-wls-Bxz9hxvX.svg`,"./assets/flags/gb.svg":`/assets/gb-DTXiLQoe.svg`,"./assets/flags/gd.svg":`/assets/gd-CO-whzUe.svg`,"./assets/flags/ge.svg":`/assets/ge-B2RiL-Ih.svg`,"./assets/flags/gf.svg":`/assets/gf-DWl5zcw0.svg`,"./assets/flags/gg.svg":`/assets/gg-jdOQS2nU.svg`,"./assets/flags/gh.svg":`/assets/gh-r3LP_X7q.svg`,"./assets/flags/gi.svg":`/assets/gi-BJKE9SzW.svg`,"./assets/flags/gl.svg":`/assets/gl-CHaBnMib.svg`,"./assets/flags/gm.svg":`/assets/gm-Bu99atwn.svg`,"./assets/flags/gn.svg":`/assets/gn-1dJNy9oQ.svg`,"./assets/flags/gp.svg":`/assets/gp-DNyt_wTA.svg`,"./assets/flags/gq.svg":`/assets/gq-Cag8QTk2.svg`,"./assets/flags/gr.svg":`/assets/gr-C5PU0p9p.svg`,"./assets/flags/gs.svg":`/assets/gs-DiiNa0F5.svg`,"./assets/flags/gt.svg":`/assets/gt-CJo5DI-7.svg`,"./assets/flags/gu.svg":`/assets/gu-Di1JYREk.svg`,"./assets/flags/gw.svg":`/assets/gw-D249VY33.svg`,"./assets/flags/gy.svg":`/assets/gy-CcVYUM2E.svg`,"./assets/flags/hk.svg":`/assets/hk-CUNIaSX0.svg`,"./assets/flags/hm.svg":`/assets/hm-Dh6t_Tj3.svg`,"./assets/flags/hn.svg":`/assets/hn-CRjyS_bm.svg`,"./assets/flags/hr.svg":`/assets/hr-fzLfaANM.svg`,"./assets/flags/ht.svg":`/assets/ht-DIMg4gti.svg`,"./assets/flags/hu.svg":`/assets/hu-7Q5wwIIi.svg`,"./assets/flags/ic.svg":`/assets/ic-CSo4d8tH.svg`,"./assets/flags/id.svg":`/assets/id-DiSP6Fmm.svg`,"./assets/flags/ie.svg":`/assets/ie-ChAXClx3.svg`,"./assets/flags/il.svg":`/assets/il-_56OEGLa.svg`,"./assets/flags/im.svg":`/assets/im--VPIqfkF.svg`,"./assets/flags/in.svg":`/assets/in-Cdwu6Bq7.svg`,"./assets/flags/io.svg":`/assets/io-13HOfeJD.svg`,"./assets/flags/iq.svg":`/assets/iq-Dp8HDzo2.svg`,"./assets/flags/ir.svg":`/assets/ir-cCIgaNf6.svg`,"./assets/flags/is.svg":`/assets/is-CZjefTNV.svg`,"./assets/flags/it.svg":`/assets/it-Br7q0Zh6.svg`,"./assets/flags/je.svg":`/assets/je-DyWbhIiC.svg`,"./assets/flags/jm.svg":`/assets/jm-CItSr3iX.svg`,"./assets/flags/jo.svg":`/assets/jo-BAF1FGbm.svg`,"./assets/flags/jp.svg":`/assets/jp-BIMmfxpO.svg`,"./assets/flags/ke.svg":`/assets/ke-C8foqndp.svg`,"./assets/flags/kg.svg":`/assets/kg-B0FsxZiL.svg`,"./assets/flags/kh.svg":`/assets/kh-BeWfuE30.svg`,"./assets/flags/ki.svg":`/assets/ki-p_fAQGbS.svg`,"./assets/flags/km.svg":`/assets/km-B5tqtGG7.svg`,"./assets/flags/kn.svg":`/assets/kn-DVPxDkNY.svg`,"./assets/flags/kp.svg":`/assets/kp-CrDKzoxe.svg`,"./assets/flags/kr.svg":`/assets/kr-BCXH1Hao.svg`,"./assets/flags/kw.svg":`/assets/kw-fSBzmd30.svg`,"./assets/flags/ky.svg":`/assets/ky-Dpsu1myA.svg`,"./assets/flags/kz.svg":`/assets/kz-CwKXYZ8s.svg`,"./assets/flags/la.svg":`/assets/la-CuJflhIW.svg`,"./assets/flags/lb.svg":`/assets/lb-BSjpYEoo.svg`,"./assets/flags/lc.svg":`/assets/lc-CNvab8Ae.svg`,"./assets/flags/li.svg":`/assets/li-CHdhvNcr.svg`,"./assets/flags/lk.svg":`/assets/lk-DUkgV9Tq.svg`,"./assets/flags/lr.svg":`/assets/lr-B84vu3Ds.svg`,"./assets/flags/ls.svg":`/assets/ls-5Xk3Mxq5.svg`,"./assets/flags/lt.svg":`/assets/lt-DoukV-Sm.svg`,"./assets/flags/lu.svg":`/assets/lu-DOI02Msy.svg`,"./assets/flags/lv.svg":`/assets/lv-C-KfY8Yc.svg`,"./assets/flags/ly.svg":`/assets/ly-BWpTK3ux.svg`,"./assets/flags/ma.svg":`/assets/ma-BTRNTRUj.svg`,"./assets/flags/mc.svg":`/assets/mc-PK078JHl.svg`,"./assets/flags/md.svg":`/assets/md-DRlxvNwm.svg`,"./assets/flags/me.svg":`/assets/me-Cv4Gwqah.svg`,"./assets/flags/mf.svg":`/assets/mf-BaAGWwAq.svg`,"./assets/flags/mg.svg":`/assets/mg-C168LHXW.svg`,"./assets/flags/mh.svg":`/assets/mh-gxuIp6Wk.svg`,"./assets/flags/mk.svg":`/assets/mk-D9SIMr-a.svg`,"./assets/flags/ml.svg":`/assets/ml-DVf6ujpi.svg`,"./assets/flags/mm.svg":`/assets/mm-lwT09MQ0.svg`,"./assets/flags/mn.svg":`/assets/mn-CgXyw0O9.svg`,"./assets/flags/mo.svg":`/assets/mo-BAtCjuYA.svg`,"./assets/flags/mp.svg":`/assets/mp-CrOApEqW.svg`,"./assets/flags/mq.svg":`/assets/mq-BFnJ22KI.svg`,"./assets/flags/mr.svg":`/assets/mr-D6G1wpeZ.svg`,"./assets/flags/ms.svg":`/assets/ms-DxciGbUu.svg`,"./assets/flags/mt.svg":`/assets/mt-YqzKx9xl.svg`,"./assets/flags/mu.svg":`/assets/mu-mcq7cUFl.svg`,"./assets/flags/mv.svg":`/assets/mv-BynAllfM.svg`,"./assets/flags/mw.svg":`/assets/mw-C15nc1xZ.svg`,"./assets/flags/mx.svg":`/assets/mx-Cc8Ccfe8.svg`,"./assets/flags/my.svg":`/assets/my-Co4JeeyE.svg`,"./assets/flags/mz.svg":`/assets/mz-Drlr_USV.svg`,"./assets/flags/na.svg":`/assets/na-D79ffb4Z.svg`,"./assets/flags/nc.svg":`/assets/nc-5j7wEmDR.svg`,"./assets/flags/ne.svg":`/assets/ne-B1jPOYkl.svg`,"./assets/flags/nf.svg":`/assets/nf-Dl00mlk2.svg`,"./assets/flags/ng.svg":`/assets/ng-su4NM9If.svg`,"./assets/flags/ni.svg":`/assets/ni-CcFCSQxm.svg`,"./assets/flags/nl.svg":`/assets/nl-BnOa6UiA.svg`,"./assets/flags/no.svg":`/assets/no-qf2JPO73.svg`,"./assets/flags/np.svg":`/assets/np-CIuq5GKd.svg`,"./assets/flags/nr.svg":`/assets/nr-DERIdzkN.svg`,"./assets/flags/nu.svg":`/assets/nu-BfgWvGcd.svg`,"./assets/flags/nz.svg":`/assets/nz-5vODdBjz.svg`,"./assets/flags/om.svg":`/assets/om-DcqxRdQL.svg`,"./assets/flags/pa.svg":`/assets/pa-BLNN9G2-.svg`,"./assets/flags/pc.svg":`/assets/pc-BJpYiA9b.svg`,"./assets/flags/pe.svg":`/assets/pe-BLqhuu1C.svg`,"./assets/flags/pf.svg":`/assets/pf-C8ahG68q.svg`,"./assets/flags/pg.svg":`/assets/pg-BAYpbp9Z.svg`,"./assets/flags/ph.svg":`/assets/ph-BEzTn62K.svg`,"./assets/flags/pk.svg":`/assets/pk-CWMEc3ad.svg`,"./assets/flags/pl.svg":`/assets/pl-o38JROoc.svg`,"./assets/flags/pm.svg":`/assets/pm-CHiP5UmZ.svg`,"./assets/flags/pn.svg":`/assets/pn-DgxdtieE.svg`,"./assets/flags/pr.svg":`/assets/pr-B4tMV0xm.svg`,"./assets/flags/ps.svg":`/assets/ps-DO8YKYeS.svg`,"./assets/flags/pt.svg":`/assets/pt-DZ2ADgIR.svg`,"./assets/flags/pw.svg":`/assets/pw-CQP52WMX.svg`,"./assets/flags/py.svg":`/assets/py-mNzh0mZC.svg`,"./assets/flags/qa.svg":`/assets/qa-Dkmpc78M.svg`,"./assets/flags/re.svg":`/assets/re-Bk4ipYK1.svg`,"./assets/flags/ro.svg":`/assets/ro-CoSeqKY1.svg`,"./assets/flags/rs.svg":`/assets/rs-BfwKwXtn.svg`,"./assets/flags/ru.svg":`/assets/ru-D-4tNwXt.svg`,"./assets/flags/rw.svg":`/assets/rw-D7nbSYKI.svg`,"./assets/flags/sa.svg":`/assets/sa-Dh79zbT9.svg`,"./assets/flags/sb.svg":`/assets/sb-BDTYjcbk.svg`,"./assets/flags/sc.svg":`/assets/sc-CRNsSLg9.svg`,"./assets/flags/sd.svg":`/assets/sd-ClziNjGr.svg`,"./assets/flags/se.svg":`/assets/se-8C923vhy.svg`,"./assets/flags/sg.svg":`/assets/sg-DGYIMG0G.svg`,"./assets/flags/sh-ac.svg":`/assets/sh-ac-FjwY7RYr.svg`,"./assets/flags/sh-hl.svg":`/assets/sh-hl-CqtQPzWZ.svg`,"./assets/flags/sh-ta.svg":`/assets/sh-ta-CPJublpi.svg`,"./assets/flags/sh.svg":`/assets/sh-DNImvbrE.svg`,"./assets/flags/si.svg":`/assets/si-BMKT-Tec.svg`,"./assets/flags/sj.svg":`/assets/sj-BFFEGknm.svg`,"./assets/flags/sk.svg":`/assets/sk-K9BNIYAO.svg`,"./assets/flags/sl.svg":`/assets/sl-DxLJY5vJ.svg`,"./assets/flags/sm.svg":`/assets/sm-DGBIRFB_.svg`,"./assets/flags/sn.svg":`/assets/sn-S8ipNF1U.svg`,"./assets/flags/so.svg":`/assets/so-DlzA2Fco.svg`,"./assets/flags/sr.svg":`/assets/sr-Co7OKBh3.svg`,"./assets/flags/ss.svg":`/assets/ss-CxVEpdPD.svg`,"./assets/flags/st.svg":`/assets/st-C1Nd1c3V.svg`,"./assets/flags/sv.svg":`/assets/sv-CJIHhYwF.svg`,"./assets/flags/sx.svg":`/assets/sx-nDhIaDNb.svg`,"./assets/flags/sy.svg":`/assets/sy-DwSud114.svg`,"./assets/flags/sz.svg":`/assets/sz-qxMwa2gs.svg`,"./assets/flags/tc.svg":`/assets/tc-dtelpZmc.svg`,"./assets/flags/td.svg":`/assets/td-BsuVhZpT.svg`,"./assets/flags/tf.svg":`/assets/tf-Co33RhQH.svg`,"./assets/flags/tg.svg":`/assets/tg-CP1-sc35.svg`,"./assets/flags/th.svg":`/assets/th-tzq84hgd.svg`,"./assets/flags/tj.svg":`/assets/tj-b-aWfOTb.svg`,"./assets/flags/tk.svg":`/assets/tk-CDucsEss.svg`,"./assets/flags/tl.svg":`/assets/tl-wpo93AGk.svg`,"./assets/flags/tm.svg":`/assets/tm-C_WSgUcv.svg`,"./assets/flags/tn.svg":`/assets/tn-BcKCZULf.svg`,"./assets/flags/to.svg":`/assets/to-D8uVsoxb.svg`,"./assets/flags/tr.svg":`/assets/tr-Cd6FO9Bg.svg`,"./assets/flags/tt.svg":`/assets/tt-CTnr7aY5.svg`,"./assets/flags/tv.svg":`/assets/tv-DDqkVT-n.svg`,"./assets/flags/tw.svg":`/assets/tw-d-Mf-0VT.svg`,"./assets/flags/tz.svg":`/assets/tz-BjLtHeil.svg`,"./assets/flags/ua.svg":`/assets/ua-Bq0XgQqK.svg`,"./assets/flags/ug.svg":`/assets/ug-ByL2ejGl.svg`,"./assets/flags/um.svg":`/assets/um-Bhke9Eic.svg`,"./assets/flags/un.svg":`/assets/un-Bqg4Cbbh.svg`,"./assets/flags/us.svg":`/assets/us-C73uVeEr.svg`,"./assets/flags/uy.svg":`/assets/uy-DD6peej-.svg`,"./assets/flags/uz.svg":`/assets/uz-C2f-Cubn.svg`,"./assets/flags/va.svg":`/assets/va-B9-hqIE-.svg`,"./assets/flags/vc.svg":`/assets/vc-COpmFovN.svg`,"./assets/flags/ve.svg":`/assets/ve-BSqnIB9l.svg`,"./assets/flags/vg.svg":`/assets/vg-C7xY6pic.svg`,"./assets/flags/vi.svg":`/assets/vi-BC_zcciE.svg`,"./assets/flags/vn.svg":`/assets/vn-BEAEijd0.svg`,"./assets/flags/vu.svg":`/assets/vu-D6k0NQlg.svg`,"./assets/flags/wf.svg":`/assets/wf-DrxpOO_G.svg`,"./assets/flags/ws.svg":`/assets/ws-vzJNwdVm.svg`,"./assets/flags/xk.svg":`/assets/xk-Bj15g7cp.svg`,"./assets/flags/xx.svg":`/assets/xx-zm_JmrXl.svg`,"./assets/flags/ye.svg":`/assets/ye-BwST9gXC.svg`,"./assets/flags/yt.svg":`/assets/yt-DIfEG0ex.svg`,"./assets/flags/za.svg":`/assets/za-Jz40JTrv.svg`,"./assets/flags/zm.svg":`/assets/zm-BmsW91ne.svg`,"./assets/flags/zw.svg":`/assets/zw-U0m7oJ5e.svg`}),Ow=new Map;for(let[e,t]of Object.entries(Dw)){let n=e.match(/\/([^/]+)\.svg$/);n&&Ow.set(n[1].toLowerCase(),t)}function kw(e){return Ow.get(e.toLowerCase())}var Aw=[`src`,`alt`,`width`,`height`],jw=F({__name:`Flag`,props:{code:{},override:{},size:{default:16}},setup(e){let t=e,n=q(()=>aw(t.code,t.override)),r=q(()=>n.value.flagRegion?kw(n.value.flagRegion):void 0),i=q(()=>Math.round(t.size*4/3));return(t,a)=>r.value?(z(),B(`img`,{key:0,src:r.value,alt:n.value.name,width:i.value,height:e.size,class:`inline-block shrink-0 rounded-[2px] object-cover ring-1 ring-black/10`,style:me({width:`${i.value}px`,height:`${e.size}px`})},null,12,Aw)):(z(),V(N(qu),{key:1,class:`inline-block shrink-0 text-muted-foreground`,style:me({width:`${e.size}px`,height:`${e.size}px`}),"aria-hidden":`true`},null,8,[`style`]))}}),Mw={class:`inline-flex min-w-0 items-start gap-2`},Nw={class:`flex min-w-0 flex-col leading-tight`},Pw={class:`flex items-center gap-1.5`},Fw={class:`font-mono text-[11.5px] font-semibold tracking-wide`},Iw={key:0,class:`truncate text-[11px] text-muted-foreground`},Lw={class:`inline-flex min-w-0 items-center gap-1.5`},Rw={key:0,class:`truncate`},zw=F({__name:`LanguageLabel`,props:{code:{},override:{},showName:{type:Boolean,default:!1},showCode:{type:Boolean,default:!0},size:{default:16},codeMinChars:{},layout:{default:`inline`}},setup(e){let t=e,n=q(()=>aw(t.code,t.override));return(t,r)=>e.layout===`stacked`?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,Mw,[U(jw,{code:e.code,override:e.override,size:e.size,class:`mt-0.5 shrink-0`},null,8,[`code`,`override`,`size`]),H(`span`,Nw,[H(`span`,Pw,[H(`span`,Fw,j(e.code.toUpperCase()),1),n.value.rtl?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[...r[0]||=[H(`span`,{class:`rounded border border-border px-1 text-[9px] font-bold uppercase tracking-wide text-muted-foreground`},`RTL`,-1)]]),_:1}),U(N(qC),null,{default:P(()=>[...r[1]||=[W(`Right-to-left`,-1)]]),_:1})]),_:1})):G(``,!0)]),e.showName?(z(),B(`span`,Iw,j(n.value.name),1)):G(``,!0)])])]),_:1}),U(N(qC),null,{default:P(()=>[W(j(n.value.name),1)]),_:1})]),_:1})):(z(),V(N(eC),{key:1},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,Lw,[U(jw,{code:e.code,override:e.override,size:e.size},null,8,[`code`,`override`,`size`]),e.showName?(z(),B(`span`,Rw,j(n.value.name),1)):G(``,!0),e.showCode?(z(),B(`span`,{key:1,class:`font-mono text-xs`,style:me(e.codeMinChars==null?void 0:{minWidth:`${e.codeMinChars}ch`})},j(e.code.toUpperCase()),5)):G(``,!0)])]),_:1}),U(N(qC),null,{default:P(()=>[W(j(n.value.name),1)]),_:1})]),_:1}))}}),Bw=[`data-state`],Vw={class:`flex flex-wrap items-start gap-2 pt-0.5`},Hw={key:0,class:`rounded-md border border-border-soft bg-accent px-1.5 py-0.5 text-[10.5px] font-semibold uppercase tracking-wide text-muted-foreground`},Uw=[`dir`],Ww={key:0,"data-testid":`filling-hint`,class:`flex items-center gap-1.5 text-sm italic text-muted-foreground`},Gw={key:0,class:`flex items-center justify-end gap-1.5 pt-0.5`},Kw={type:`button`,class:`flex size-7 items-center justify-center rounded-md bg-destructive-soft text-destructive transition hover:brightness-95 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,"aria-label":`Show issues`},qw={class:`flex flex-col gap-1`},Jw={key:0,class:`mt-2 border-t pt-2`},Yw={class:`flex flex-wrap gap-1`},Xw=[`onClick`],Zw=[`disabled`],Qw=F({__name:`TranslationRow`,props:{keyName:{},locale:{},sourceLocale:{},value:{},maxLength:{},issues:{},labelChars:{},plural:{},sourceForms:{},filling:{type:Boolean}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=q(()=>n.locale===n.sourceLocale),a=q(()=>n.value?.state??(i.value?`source`:`needs-review`)),o=q(()=>n.value?.value??``),s=q(()=>!!n.plural),c=q(()=>n.value?.forms??{}),l=q(()=>iw(n.locale)),u=q(()=>!i.value&&(s.value?Object.keys(c.value).length>0:!!n.value?.value)),d=q(()=>(n.issues?.length??0)>0),f=q(()=>[...new Set((n.issues??[]).filter(e=>e.check===`spelling`).flatMap(e=>e.detail??[]))]);async function p(e){try{await _f(e),Q.success(`Added "${e}" to the dictionary`),r(`changed`)}catch(e){Q.error(`Could not add word: ${e.message}`)}}let m=M(!1);async function h(){try{await Vd(n.keyName,n.locale),Q.success(`Cleared`),r(`changed`)}catch(e){Q.error(e.message)}}async function g(e){try{await Bd(n.keyName,n.locale,e),r(`changed`)}catch(e){Q.error(`Could not update state: ${e.message}`)}}async function _(){m.value=!0;try{let e=await Gd({onlyMissing:!1,locales:[n.locale],keyGlob:n.keyName,force:!0});e.errors?.length?Q.error(e.errors[0]?.error??`Translation failed`):Q.success(`Translated ${n.locale.toUpperCase()} (${e.written} written)`),r(`changed`)}catch(e){Q.error(`Translate failed: ${e.message}`)}finally{m.value=!1}}return(t,n)=>(z(),B(`div`,{class:A(N(lh)(`grid grid-cols-[172px_minmax(0,1fr)_232px] items-start gap-[18px] border-b border-border-soft py-[11px] pl-4 pr-[18px] last:border-b-0 max-[1080px]:grid-cols-[150px_minmax(0,1fr)_200px] max-[1080px]:gap-3`,i.value&&`bg-foreground/[0.015] dark:bg-foreground/[0.025]`)),"data-state":a.value},[H(`div`,Vw,[U(zw,{code:e.locale,layout:`stacked`,"show-name":``,size:15},null,8,[`code`]),i.value?(z(),B(`span`,Hw,`Source`)):G(``,!0)]),H(`div`,{class:`flex min-w-0 flex-col gap-2`,dir:l.value?`rtl`:`ltr`},[e.filling?(z(),B(`div`,Ww,[U(N($u),{class:`size-3.5 shrink-0 animate-spin`}),n[2]||=W(` filling… `,-1)])):s.value?(z(),V(Ew,{key:1,"key-name":e.keyName,locale:e.locale,"source-locale":e.sourceLocale,arg:e.plural.arg,forms:c.value,"source-forms":e.sourceForms,"max-length":e.maxLength,onChanged:n[0]||=e=>r(`changed`)},null,8,[`key-name`,`locale`,`source-locale`,`arg`,`forms`,`source-forms`,`max-length`])):(z(),V(_w,{key:2,"key-name":e.keyName,locale:e.locale,"source-locale":e.sourceLocale,value:o.value,"max-length":e.maxLength,onChanged:n[1]||=e=>r(`changed`)},null,8,[`key-name`,`locale`,`source-locale`,`value`,`max-length`]))],8,Uw),i.value?G(``,!0):(z(),B(`div`,Gw,[d.value?(z(),V(N(Ux),{key:0},{default:P(()=>[U(N(Yx),{"as-child":``},{default:P(()=>[H(`button`,Kw,[U(N(Td),{class:`size-3.5`})])]),_:1}),U(N(mC),{align:`end`,class:`w-fit max-w-xs text-xs`},{default:P(()=>[H(`ul`,qw,[(z(!0),B(R,null,I(e.issues,(e,t)=>(z(),B(`li`,{key:t,class:`whitespace-pre-line text-foreground/80`},j(e.message),1))),128))]),f.value.length?(z(),B(`div`,Jw,[n[3]||=H(`p`,{class:`mb-1 text-[11px] font-medium text-muted-foreground`},`Add to dictionary`,-1),H(`div`,Yw,[(z(!0),B(R,null,I(f.value,e=>(z(),V(N(eC),{key:e},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`inline-flex items-center gap-0.5 rounded border border-amber-500/40 px-1.5 py-0.5 text-[11px] text-amber-700 transition-colors hover:bg-amber-500/10 dark:text-amber-300`,onClick:t=>p(e)},[U(N(od),{class:`size-3`}),W(j(e),1)],8,Xw)]),_:2},1024),U(N(qC),null,{default:P(()=>[W(`Add '`+j(e)+`' to the custom dictionary`,1)]),_:2},1024)]),_:2},1024))),128))])])):G(``,!0)]),_:1})]),_:1})):G(``,!0),u.value?(z(),V(N(eC),{key:1},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,"aria-label":`Clear translation`,onClick:Jl(h,[`stop`])},[U(N(Ru),{class:`size-4`})])]),_:1}),U(N(qC),null,{default:P(()=>[...n[4]||=[W(`Clear translation`,-1)]]),_:1})]),_:1})):G(``,!0),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-primary-soft hover:text-primary disabled:opacity-50`,disabled:m.value||e.filling,"aria-label":`AI translate this cell`,onClick:Jl(_,[`stop`])},[m.value||e.filling?(z(),V(N($u),{key:0,class:`size-4 animate-spin`})):(z(),V(N(Zu),{key:1,class:`size-4`}))],8,Zw)]),_:1}),U(N(qC),null,{default:P(()=>[...n[5]||=[W(`AI translate`,-1)]]),_:1})]),_:1}),U(cw,{state:a.value,editable:!0,onSetState:g},null,8,[`state`])]))],10,Bw))}}),$w=[`aria-pressed`],eT={key:0,class:`pointer-events-none absolute inset-0 z-[3] border-2 border-primary`,"aria-hidden":`true`},tT={key:1,class:`pointer-events-none absolute inset-y-0 left-0 z-[4] w-1 bg-primary`,"aria-hidden":`true`},nT={class:`sticky top-3`},rT=[`aria-checked`],iT={class:`absolute right-0 top-0`},aT=[`disabled`],oT=[`innerHTML`],sT={key:0,class:`mt-1.5 flex flex-wrap items-center gap-1.5 pl-6`},cT={key:0,class:`inline-flex items-center gap-1 rounded-md border border-primary-border bg-primary/[0.09] px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-primary`},lT={class:`font-medium normal-case text-muted-foreground`},uT={"data-testid":`issue-badge`,class:`inline-flex items-center gap-1 rounded-md bg-destructive-soft px-1.5 py-0.5 text-[11.5px] font-bold text-destructive`},dT={key:1,class:`mt-2 flex flex-wrap gap-1.5 pl-6`},fT=[`onClick`],pT=[`data-testid`,`disabled`],mT={key:3,"data-testid":`translating-missing`,class:`ml-6 mt-2.5 inline-flex items-center gap-1 text-[11px] text-primary`},hT=[`disabled`],gT={class:`min-w-0 flex-1 [&>*:nth-child(even)]:bg-zebra`},_T={class:`grid gap-2`},vT={class:`break-all rounded bg-muted px-1 py-0.5 font-mono text-sm`},yT=F({__name:`KeyRow`,props:{keyName:{},entry:{},sourceLocale:{},locales:{},selected:{type:Boolean},checked:{type:Boolean},issues:{}},emits:[`changed`,`select`,`toggle-select`,`renamed`,`filter-tag`],setup(e,{emit:t}){let n=e,r=q(()=>n.keyName.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/\./g,`.<wbr>`)),i=q(()=>{let e=new Map;for(let t of n.issues??[]){let n=e.get(t.locale);n?n.push(t):e.set(t.locale,[t])}return e}),a=t,o=M(!1),s=M(``),c=M(!1),l=M(!1),u=M(!1),d=M(!1),f=q(()=>ZC(n.entry,n.locales,n.sourceLocale)),p=q(()=>QC(n.entry,n.locales,n.sourceLocale));async function m(){d.value=!0;try{let e=await Gd({onlyMissing:!1,force:!0,keyGlob:n.keyName,locales:p.value});e.errors?.length?Q.error(e.errors[0]?.error??`Translation failed`):Q.success(`Re-translated ${e.written} stale value${e.written===1?``:`s`}`),a(`changed`)}catch(e){Q.error(`Translate failed: ${e.message}`)}finally{d.value=!1}}async function h(){u.value=!0;try{let e=await Gd({onlyMissing:!0,keyGlob:n.keyName});e.errors?.length?Q.error(e.errors[0]?.error??`Translation failed`):Q.success(`Translated ${e.written} missing value${e.written===1?``:`s`}`),a(`changed`)}catch(e){Q.error(`Translate failed: ${e.message}`)}finally{u.value=!1}}function g(e){a(`toggle-select`,{shift:e.shiftKey})}function _(e){e.target?.closest(`button, input, textarea, select, a, [contenteditable="true"]`)||a(`select`)}async function v(){let e=!n.entry.skipTranslate;l.value=!0;try{await Ld([n.keyName],{skipTranslate:e}),Q.success(e?`Excluded from translation`:`Included in translation`),a(`changed`)}catch(e){Q.error(`Update failed: ${e.message}`)}finally{l.value=!1}}function y(){s.value=n.keyName,o.value=!0}async function b(){let e=s.value.trim();if(!e||e===n.keyName){o.value=!1;return}l.value=!0;try{await Rd(n.keyName,{rename:e}),o.value=!1,Q.success(`Renamed to ${e}`),a(`renamed`,e)}catch(e){Q.error(`Rename failed: ${e.message}`)}finally{l.value=!1}}async function x(){l.value=!0;try{await Nd(n.keyName),c.value=!1,Q.success(`Deleted ${n.keyName}`),a(`changed`)}catch(e){Q.error(`Delete failed: ${e.message}`)}finally{l.value=!1}}return(t,n)=>(z(),B(`div`,{class:A(N(lh)(`relative flex border-b-2 border-border bg-card`,e.selected&&`z-[1]`)),role:`button`,"aria-pressed":e.selected,"aria-label":`Select key`,onClick:_},[e.selected?(z(),B(`span`,eT)):G(``,!0),e.selected?(z(),B(`span`,tT)):G(``,!0),H(`div`,{class:A(N(lh)(`relative w-[var(--key-col-width,272px)] shrink-0 border-r border-border-soft p-[14px_16px_14px_18px]`,e.selected&&`bg-primary-soft/60`))},[H(`div`,nT,[H(`button`,{type:`button`,role:`checkbox`,"aria-checked":!!e.checked,"data-testid":`row-select`,class:A([`absolute left-0 top-0.5 flex size-4 items-center justify-center rounded border transition-colors`,e.checked?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`]),"aria-label":`Select key`,onClick:Jl(g,[`stop`])},[e.checked?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],10,rT),H(`div`,iT,[U(N(Qx),null,{default:P(()=>[U(N(iS),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`flex size-6 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Key actions`,disabled:u.value,onClick:n[0]||=Jl(()=>{},[`stop`])},[U(N(Lu),{class:`size-4`})],8,aT)]),_:1}),U(N(RC),{align:`end`},{default:P(()=>[f.value.length>0?(z(),V(N(zC),{key:0,disabled:u.value,onSelect:h},{default:P(()=>[U(N(vd),{class:`size-4`}),W(` Translate missing (`+j(f.value.length)+`) `,1)]),_:1},8,[`disabled`])):G(``,!0),U(N(zC),{onSelect:y},{default:P(()=>[U(N(ad),{class:`size-4`}),n[9]||=W(` Rename `,-1)]),_:1}),U(N(zC),{"data-testid":`toggle-skip`,disabled:l.value,onSelect:v},{default:P(()=>[U(N(Zu),{class:`size-4`}),W(` `+j(e.entry.skipTranslate?`Include in translation`:`Skip translation`),1)]),_:1},8,[`disabled`]),U(N(zC),{class:`text-destructive data-[highlighted]:bg-destructive/10 data-[highlighted]:text-destructive`,onSelect:n[1]||=e=>c.value=!0},{default:P(()=>[U(N(wd),{class:`size-4`}),n[10]||=W(` Delete `,-1)]),_:1})]),_:1})]),_:1})]),H(`div`,{class:`break-words pl-6 pr-7 font-mono text-[13.5px] font-semibold tracking-tight cursor-pointer`,onClick:n[2]||=Jl(e=>g(e),[`stop`])},[H(`span`,{innerHTML:r.value},null,8,oT),e.entry.screenshot?(z(),V(N(Yu),{key:0,class:`ml-1.5 inline size-3.5 align-[-2px] text-muted-foreground`,"aria-label":`Has screenshot`})):G(``,!0)]),e.entry.plural||e.entry.skipTranslate||(e.issues?.length??0)>0?(z(),B(`div`,sT,[e.entry.plural?(z(),B(`span`,cT,[n[11]||=W(`PLURAL`,-1),H(`span`,lT,`· `+j(e.entry.plural.arg),1)])):G(``,!0),e.entry.skipTranslate?(z(),V(N(eC),{key:1},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[...n[12]||=[H(`span`,{"data-testid":`skip-badge`,class:`inline-flex items-center gap-1 rounded-md border border-warning-border bg-warning-bg px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-warning`},`SKIP`,-1)]]),_:1}),U(N(qC),null,{default:P(()=>[...n[13]||=[W(`Excluded from translation`,-1)]]),_:1})]),_:1})):G(``,!0),(e.issues?.length??0)>0?(z(),V(N(eC),{key:2},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,uT,[U(N(Td),{class:`size-3`}),W(j(e.issues.length),1)])]),_:1}),U(N(qC),null,{default:P(()=>[W(j(e.issues.length)+` issue`+j(e.issues.length===1?``:`s`),1)]),_:1})]),_:1})):G(``,!0)])):G(``,!0),(e.entry.tags??[]).length?(z(),B(`div`,dT,[(z(!0),B(R,null,I(e.entry.tags,e=>(z(),V(N(eC),{key:e},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`inline-flex h-[22px] items-center gap-1.5 rounded-full border border-primary-border bg-transparent px-[9px] text-xs font-medium text-foreground transition-colors hover:border-primary hover:bg-primary/[0.07]`,onClick:Jl(t=>a(`filter-tag`,e),[`stop`])},[U(N(Sd),{class:`size-3 text-primary`}),W(j(e),1)],8,fT)]),_:2},1024),U(N(qC),null,{default:P(()=>[W(`Filter by tag: `+j(e),1)]),_:2},1024)]),_:2},1024))),128))])):G(``,!0),f.value.length>0?(z(),V(N(eC),{key:2},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"data-testid":u.value?`translating-missing`:`translate-missing-btn`,disabled:u.value,class:`ml-6 mt-2.5 inline-flex items-center gap-1.5 rounded-lg border border-primary-border bg-primary-soft px-2.5 py-1.5 text-[11.5px] font-semibold text-primary transition hover:brightness-95 disabled:opacity-80`,onClick:Jl(h,[`stop`])},[u.value?(z(),V(N($u),{key:0,class:`size-3 animate-spin`})):(z(),V(N(vd),{key:1,class:`size-3`})),W(` `+j(u.value?`Translating…`:`Translate ${f.value.length} missing`),1)],8,pT)]),_:1}),U(N(qC),null,{default:P(()=>[W(`Translate the `+j(f.value.length)+` missing language`+j(f.value.length>1?`s`:``)+` for this key`,1)]),_:1})]),_:1})):u.value?(z(),B(`span`,mT,[U(N($u),{class:`size-3 animate-spin`}),n[14]||=W(` Translating… `,-1)])):G(``,!0),p.value.length>0?(z(),V(N(eC),{key:4},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"data-testid":`retranslate-stale-btn`,disabled:d.value,class:`ml-6 mt-2.5 inline-flex items-center gap-1.5 rounded-lg border border-amber-500/40 bg-amber-500/10 px-2.5 py-1.5 text-[11.5px] font-semibold text-amber-700 transition hover:brightness-95 disabled:opacity-80 dark:text-amber-300`,onClick:Jl(m,[`stop`])},[d.value?(z(),V(N($u),{key:0,class:`size-3 animate-spin`})):(z(),V(N(sd),{key:1,class:`size-3`})),W(` `+j(d.value?`Re-translating…`:`Re-translate ${p.value.length} stale`),1)],8,hT)]),_:1}),U(N(qC),null,{default:P(()=>[W(`Re-translate the `+j(p.value.length)+` stale language`+j(p.value.length>1?`s`:``)+` for this key`,1)]),_:1})]),_:1})):G(``,!0)])],2),H(`div`,gT,[(z(!0),B(R,null,I(e.locales,t=>(z(),V(Qw,{key:t,"key-name":e.keyName,locale:t,"source-locale":e.sourceLocale,value:e.entry.values[t],"max-length":e.entry.maxLength,issues:i.value.get(t)??[],plural:e.entry.plural,"source-forms":e.entry.values[e.sourceLocale]?.forms,filling:u.value&&f.value.includes(t)||d.value&&p.value.includes(t),onChanged:n[3]||=e=>a(`changed`)},null,8,[`key-name`,`locale`,`source-locale`,`value`,`max-length`,`issues`,`plural`,`source-forms`,`filling`]))),128))]),U(N(C_),{open:o.value,"onUpdate:open":n[6]||=e=>o.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[15]||=[W(`Rename key`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[...n[16]||=[W(`Use dot notation, e.g. `,-1),H(`span`,{class:`font-mono`},`home.title`,-1),W(`.`,-1)]]),_:1})]),_:1}),H(`div`,_T,[U(N(MC),{for:`rename-key`},{default:P(()=>[...n[17]||=[W(`New key`,-1)]]),_:1}),U(N(sC),{id:`rename-key`,modelValue:s.value,"onUpdate:modelValue":n[4]||=e=>s.value=e,class:`font-mono`,onKeydown:Xl(Jl(b,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:l.value,onClick:n[5]||=e=>o.value=!1},{default:P(()=>[...n[18]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:l.value,onClick:b},{default:P(()=>[...n[19]||=[W(`Rename`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(N(C_),{open:c.value,"onUpdate:open":n[8]||=e=>c.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[20]||=[W(`Delete key`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[n[21]||=W(` Delete `,-1),H(`code`,vT,j(e.keyName),1),n[22]||=W(` and all its translations? This cannot be undone. `,-1)]),_:1})]),_:1}),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:l.value,onClick:n[7]||=e=>c.value=!1},{default:P(()=>[...n[23]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:l.value,onClick:x},{default:P(()=>[...n[24]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])],10,$w))}}),bT=[{id:`phpstorm`,label:`PhpStorm`,buildUrl:e=>`phpstorm://open?file=${encodeURIComponent(e.abs)}&line=${e.line}`},{id:`vscode`,label:`VS Code`,buildUrl:e=>`vscode://file${e.abs}:${e.line}:${e.col}`},{id:`zed`,label:`Zed`,buildUrl:e=>`zed://file${e.abs}:${e.line}:${e.col}`}],xT=`vscode`,ST=e=>bT.some(t=>t.id===e),CT=M(xT);function wT(e){ST(e)&&(CT.value=e,ff({editor:e}).catch(()=>{}))}async function TT(){try{let{editor:e}=await df();ST(e)&&(CT.value=e)}catch{}}function ET(e,t){return(bT.find(e=>e.id===CT.value)??bT[0]).buildUrl(e,t)}function DT(){return{dirs:new Map,files:new Map}}function OT(e){let t=DT();for(let n of e){let e=n.file.split(`/`).filter(Boolean),r=e.pop()??n.file,i=t;for(let t of e){let e=i.dirs.get(t);e||(e=DT(),i.dirs.set(t,e)),i=e}let a=i.files.get(r)??[];a.push({line:n.line,url:n.url}),i.files.set(r,a)}let n=[],r=(e,t)=>{for(let i of[...e.dirs.keys()].sort()){let a=i,o=e.dirs.get(i);for(;o.files.size===0&&o.dirs.size===1;){let e=[...o.dirs.keys()][0];a+=`/`+e,o=o.dirs.get(e)}n.push({kind:`dir`,depth:t,label:a}),r(o,t+1)}for(let r of[...e.files.keys()].sort()){let i=e.files.get(r).slice().sort((e,t)=>e.line-t.line);n.push({kind:`file`,depth:t,name:r,refs:i})}};return r(t,0),n}var kT={class:`flex flex-col gap-2`},AT={class:`flex items-center gap-1.5`},jT={key:0,class:`flex flex-col gap-2`},MT={class:`mt-1 flex gap-2`},NT={class:`flex items-center justify-between`},PT={class:`font-mono text-[10px] text-muted-foreground`},FT={class:`flex gap-1.5`},IT=[`onClick`],LT=[`onClick`],RT={class:`whitespace-pre-wrap break-words text-[12.5px] leading-snug`},zT=F({__name:`NotesEditor`,props:{keyName:{},notes:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=e=>new Date(e).toLocaleString(),a=M(``),o=M(!1);async function s(){let e=a.value.trim();if(e){o.value=!0;try{await Cf(n.keyName,e),a.value=``,r(`changed`)}catch(e){Q.error(`Could not add note: ${e.message}`)}finally{o.value=!1}}}let c=M(null),l=M(``),u=M(!1);function d(e){c.value=e.id,l.value=e.text}function f(){c.value=null,l.value=``}async function p(e){let t=l.value.trim();if(t){u.value=!0;try{await wf(n.keyName,e,t),f(),r(`changed`)}catch(e){Q.error(`Could not save note: ${e.message}`)}finally{u.value=!1}}}async function m(e){try{await Tf(n.keyName,e),r(`changed`)}catch(e){Q.error(`Could not delete note: ${e.message}`)}}return(t,n)=>(z(),B(`div`,kT,[H(`div`,AT,[U(N(bd),{class:`size-3.5 text-muted-foreground`}),n[2]||=H(`p`,{class:`text-[13px] font-semibold`},`Notes`,-1)]),n[6]||=H(`p`,{class:`-mt-1 text-[11.5px] text-muted-foreground`},`Internal notes — never sent to the AI or exported.`,-1),e.notes.length?(z(),B(`ul`,jT,[(z(!0),B(R,null,I(e.notes,e=>(z(),B(`li`,{key:e.id,class:`flex flex-col gap-1 rounded-lg border border-border-soft bg-background p-2.5 text-sm`},[c.value===e.id?(z(),B(R,{key:0},[U(N(fw),{modelValue:l.value,"onUpdate:modelValue":n[0]||=e=>l.value=e,rows:`2`,onKeydown:Xl(Jl(f,[`prevent`]),[`escape`])},null,8,[`modelValue`,`onKeydown`]),H(`div`,MT,[U(N($),{size:`sm`,disabled:u.value||!l.value.trim(),onClick:t=>p(e.id)},{default:P(()=>[...n[3]||=[W(`Save`,-1)]]),_:1},8,[`disabled`,`onClick`]),U(N($),{size:`sm`,variant:`ghost`,onClick:f},{default:P(()=>[...n[4]||=[W(`Cancel`,-1)]]),_:1})])],64)):(z(),B(R,{key:1},[H(`div`,NT,[H(`span`,PT,j(i(e.at)),1),H(`span`,FT,[H(`button`,{type:`button`,"aria-label":`Edit note`,class:`text-muted-foreground hover:text-foreground`,onClick:t=>d(e)},[U(N(ad),{class:`size-3.5`})],8,IT),H(`button`,{type:`button`,"aria-label":`Delete note`,class:`text-muted-foreground hover:text-destructive`,onClick:t=>m(e.id)},[U(N(wd),{class:`size-3.5`})],8,LT)])]),H(`p`,RT,j(e.text),1)],64))]))),128))])):G(``,!0),U(N(fw),{"data-testid":`new-note`,modelValue:a.value,"onUpdate:modelValue":n[1]||=e=>a.value=e,rows:`2`,placeholder:`Add an internal note…`},null,8,[`modelValue`]),U(N($),{"data-testid":`add-note`,variant:`outline`,class:`w-full text-muted-foreground`,disabled:o.value||!a.value.trim(),onClick:s},{default:P(()=>[...n[5]||=[W(` Add note `,-1)]]),_:1},8,[`disabled`])]))}}),BT={class:`flex shrink-0 flex-col overflow-y-auto border-l border-border bg-card max-[1080px]:hidden`},VT={key:0,class:`flex flex-1 flex-col items-center justify-center gap-2.5 p-10 text-center text-muted-foreground`},HT={key:1,class:`flex flex-col gap-4 px-5 pb-10 pt-[18px]`},UT={class:`flex flex-col gap-0.5`},WT=[`innerHTML`],GT={class:`flex flex-wrap items-center gap-2`},KT={key:0,class:`rounded-md border border-primary-border bg-primary-soft px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-primary`},qT={key:1,class:`rounded-md border border-border-soft bg-accent px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-muted-foreground`},JT=[`disabled`],YT=[`disabled`],XT={key:0,class:`flex flex-col gap-1.5`},ZT={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-destructive`},QT={class:`font-mono text-[11px] font-semibold`},$T={class:`ml-auto rounded border border-destructive px-1.5 py-0.5 text-[10.5px] font-semibold text-destructive`},eE=[`disabled`,`onClick`],tE={key:1,class:`flex flex-col gap-1.5`},nE={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-muted-foreground`},rE={class:`font-mono text-[11px] font-semibold`},iE={class:`flex flex-col gap-1.5`},aE={class:`flex items-center gap-1.5`},oE={key:0,class:`ml-auto text-[11.5px] text-muted-foreground`},sE={key:0,class:`text-[12px] text-muted-foreground`},cE={key:0,class:`rounded-md border border-border-soft bg-accent px-2 py-1.5 text-[12px] text-muted-foreground`},lE={key:1,class:`flex flex-col gap-0.5 text-[11.5px]`},uE={class:`min-w-0 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},dE=[`href`],fE={key:1,class:`min-w-0 shrink truncate font-mono text-foreground`},pE={class:`flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5`},mE=[`href`],hE={key:1,class:`shrink-0 font-mono text-muted-foreground`},gE={key:2,class:`flex flex-col gap-1`},_E={class:`flex items-center gap-1 text-[11px] font-medium text-muted-foreground`},vE={class:`flex flex-col gap-1`},yE={class:`min-w-0 flex-1 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},bE={class:`shrink-0 rounded border border-dashed border-border-soft px-1 font-mono text-[10px]`},xE={class:`shrink-0 font-mono`},SE={key:3,class:`flex flex-col gap-1`},CE={class:`flex items-center gap-1 text-[11px] font-medium text-muted-foreground`},wE={class:`flex flex-col gap-1`},TE={class:`min-w-0 flex-1 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},EE={class:`shrink-0 rounded border border-dashed border-border-soft px-1 font-mono text-[10px]`},DE={class:`shrink-0 font-mono`},OE={class:`flex flex-col gap-1.5`},kE={class:`flex items-center gap-1.5`},AE={class:`ml-0.5 flex items-center gap-0.5 rounded border border-primary/30 bg-primary/10 px-1 py-0.5 text-[10px] font-semibold text-primary`},jE=[`disabled`],ME={class:`flex flex-col gap-1.5`},NE={class:`flex items-center gap-1.5`},PE={class:`flex flex-col gap-1.5`},FE={class:`flex items-center gap-1.5`},IE={class:`flex flex-col gap-2`},LE={class:`flex items-center gap-1.5`},RE={key:0,class:`flex flex-col gap-2`},zE=[`src`,`alt`],BE={class:`flex gap-2`},VE=[`disabled`],HE={class:`flex flex-col gap-1.5 text-[11.5px] text-muted-foreground`},UE={class:`flex items-center justify-between gap-3`},WE={class:`font-mono text-[11px] text-foreground`},GE={class:`flex items-center justify-between gap-3`},KE={class:`font-mono text-[11px] text-foreground`},qE=F({__name:`DetailPanel`,props:{keyName:{},entry:{},issues:{},locales:{},sourceLocale:{},usageRevision:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=e=>e?new Date(e).toLocaleString():`—`,a=q(()=>n.keyName?n.keyName.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/\./g,`.<wbr>`):``),o=q(()=>{let e=``;for(let t of Object.values(n.entry?.values??{}))t.updatedAt&&t.updatedAt>e&&(e=t.updatedAt);return e||void 0}),s=q(()=>!!n.entry?.plural),c=M(!1),l;function u(){uh(n.keyName).then(()=>{c.value=!0,clearTimeout(l),l=setTimeout(()=>c.value=!1,1500)}).catch(()=>{})}let d={placeholder:`Placeholder`,spelling:`Spelling`,length:`Length`,glossary:`Glossary`},f=q(()=>(n.issues??[]).filter(e=>e.check!==`untranslated`)),p={spelling:`spelling`,length:`max-length`},m=M(!1);async function h(e){let t=p[e.check];if(!(!t||!n.keyName||m.value)){m.value=!0;try{await Pf(n.keyName,t,e.locale),Q.success(`Dismissed until the source text changes`),r(`changed`)}catch(e){Q.error(e.message)}finally{m.value=!1}}}let g=q(()=>{let e=n.entry,t=n.sourceLocale;return!e||!t?[]:(n.locales??[]).filter(n=>XC(e,n,t))}),_=M(null),v=M(!1),y=M(!1);function b(){_.value?.click()}async function x(e){let t=e.target,i=t.files?.[0];if(t.value=``,!(!i||!n.keyName)){v.value=!0;try{await xf(n.keyName,i),Q.success(`Screenshot uploaded`),r(`changed`)}catch(e){Q.error(`Upload failed: ${e.message}`)}finally{v.value=!1}}}async function S(){if(n.keyName){y.value=!0;try{await Sf(n.keyName),Q.success(`Screenshot removed`),r(`changed`)}catch(e){Q.error(`Could not remove: ${e.message}`)}finally{y.value=!1}}}let C=Yt({context:``,tags:``,maxLength:void 0}),w=M(!1),T=M(!1);async function E(){if(n.keyName){T.value=!0;try{let e=0,t=[];for await(let r of nf({keyGlob:n.keyName,all:!0,force:!0}))r.type===`done`&&(e=r.written,t=r.errors);e>0?(Q.success(`Context suggested and saved — review it below`),r(`changed`)):t.length>0?Q.error(t[0].error):Q.info(`No usage found — add a code snippet or type context manually`)}catch(e){Q.error(`Could not suggest: ${e.message}`)}finally{T.value=!1}}}Er(()=>[n.keyName,n.entry],()=>{C.context=n.entry?.context??``,C.tags=(n.entry?.tags??[]).join(`, `),C.maxLength=n.entry?.maxLength},{immediate:!0});let D=M(null),ee=M(6);async function te(){let e=n.keyName;if(!e){D.value=null;return}try{D.value=await of(e)}catch{D.value=null}}Er(()=>n.keyName,async()=>{D.value=null,ee.value=6,await te()},{immediate:!0}),Er(()=>n.usageRevision,te);let ne=e=>ET(e,D.value?.project??``),O=q(()=>(D.value?.refs??[]).map(e=>({...e,url:ne(e)}))),re=q(()=>(D.value?.prefixRefs??[]).map(e=>({...e,url:ne(e)}))),ie=q(()=>(D.value?.literalRefs??[]).map(e=>({...e,url:ET(e,D.value?.project??``)}))),ae=q(()=>OT(O.value.slice(0,ee.value))),oe=e=>e.find(e=>e.url)?.url??null,k=M(`count`),se=M(!1);Er(()=>[n.keyName,n.entry],()=>{k.value=n.entry?.plural?.arg??`count`},{immediate:!0});async function ce(){if(!n.keyName)return;let e=k.value.trim()||`count`;se.value=!0;try{await Ud(n.keyName,e),Q.success(`Converted to plural`),r(`changed`)}catch(e){Q.error(`Could not convert: ${e.message}`)}finally{se.value=!1}}async function le(){if(n.keyName){se.value=!0;try{await Wd(n.keyName),Q.success(`Converted to a single string`),r(`changed`)}catch(e){Q.error(`Could not convert: ${e.message}`)}finally{se.value=!1}}}async function ue(){let e=k.value.trim();if(!(!n.keyName||!e||e===n.entry?.plural?.arg))try{await Rd(n.keyName,{pluralArg:e}),Q.success(`Renamed count variable`),r(`changed`)}catch(e){Q.error(`Could not rename: ${e.message}`)}}async function de(){if(n.keyName){w.value=!0;try{await Rd(n.keyName,{metadata:{context:C.context.trim(),tags:C.tags.split(`,`).map(e=>e.trim()).filter(Boolean),maxLength:C.maxLength?Number(C.maxLength):null}}),Q.success(`Metadata saved`),r(`changed`)}catch(e){Q.error(`Could not save: ${e.message}`)}finally{w.value=!1}}}return(t,n)=>(z(),B(`aside`,BT,[!e.keyName||!e.entry?(z(),B(`div`,VT,[U(N(Uu),{class:`size-5`}),n[6]||=H(`p`,{class:`max-w-[200px] text-sm leading-relaxed`},`Select a key to view and edit its details.`,-1)])):(z(),B(`div`,HT,[H(`div`,UT,[n[7]||=H(`span`,{class:`text-[10.5px] font-bold uppercase tracking-wide text-muted-foreground`},`Key`,-1),U(N(eC),{"disable-closing-trigger":``},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,{class:`inline-block w-fit break-words cursor-pointer font-mono text-base font-semibold tracking-tight`,innerHTML:a.value,onClick:u},null,8,WT)]),_:1}),U(N(qC),null,{default:P(()=>[W(j(c.value?`Copied`:`Click to copy`),1)]),_:1})]),_:1})]),H(`div`,GT,[s.value?(z(),B(`span`,KT,`PLURAL`)):(z(),B(`span`,qT,`SINGLE`)),s.value?(z(),B(R,{key:2},[n[8]||=H(`span`,{class:`text-[11.5px] text-muted-foreground`},`arg`,-1),U(N(sC),{modelValue:k.value,"onUpdate:modelValue":n[0]||=e=>k.value=e,class:`h-7 w-24 font-mono text-xs`,"aria-label":`Number variable name`,onBlur:ue,onKeydown:Xl(Jl(ue,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),H(`button`,{type:`button`,class:`ml-auto rounded-md px-2 py-1 text-[12px] font-semibold text-primary transition-colors hover:bg-primary-soft disabled:opacity-50`,disabled:se.value,onClick:le},`Make single`,8,JT)],64)):(z(),B(`button`,{key:3,type:`button`,class:`ml-auto rounded-md px-2 py-1 text-[12px] font-semibold text-primary transition-colors hover:bg-primary-soft disabled:opacity-50`,disabled:se.value,onClick:ce},`Make plural`,8,YT))]),f.value.length||g.value.length?(z(),B(`div`,{key:0,class:A(N(lh)(`flex flex-col gap-3 rounded-xl border border-border bg-background p-3`,f.value.length&&`border-primary-border`))},[f.value.length?(z(),B(`div`,XT,[H(`div`,ZT,[U(N(Td),{class:`size-3.5`}),W(` `+j(f.value.length)+` issue`+j(f.value.length===1?``:`s`),1)]),(z(!0),B(R,null,I(f.value,(e,t)=>(z(),B(`div`,{key:t,class:`group flex items-center gap-2 text-[12.5px]`},[U(jw,{code:e.locale,size:14},null,8,[`code`]),H(`span`,QT,j(e.locale.toUpperCase()),1),H(`span`,$T,j(d[e.check]??e.check),1),p[e.check]?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`flex size-[20px] items-center justify-center rounded text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-foreground group-hover:opacity-100`,disabled:m.value,"aria-label":`Dismiss until the source changes`,onClick:t=>h(e)},[U(N(Su),{class:`size-3`})],8,eE)]),_:2},1024),U(N(qC),null,{default:P(()=>[...n[9]||=[W(`Dismiss until the source text changes`,-1)]]),_:1})]),_:2},1024)):G(``,!0)]))),128))])):G(``,!0),g.value.length?(z(),B(`div`,tE,[H(`div`,nE,[n[10]||=H(`span`,{class:`size-[7px] rounded-full bg-muted-foreground`},null,-1),W(` `+j(g.value.length)+` untranslated `,1)]),(z(!0),B(R,null,I(g.value,e=>(z(),B(`div`,{key:e,class:`flex items-center gap-2 text-[12.5px]`},[U(jw,{code:e,size:14},null,8,[`code`]),H(`span`,rE,j(e.toUpperCase()),1),n[11]||=H(`span`,{class:`ml-auto rounded border border-border-soft bg-accent px-1.5 py-0.5 text-[10.5px] font-semibold italic text-muted-foreground`},`Empty`,-1)]))),128))])):G(``,!0)],2)):G(``,!0),H(`div`,iE,[H(`div`,aE,[U(N(Fu),{class:`size-3.5 text-muted-foreground`}),n[12]||=H(`span`,{class:`text-[13px] font-semibold`},`Usage`,-1),D.value?.indexed?(z(),B(`span`,oE,j(D.value.count)+` reference`+j(D.value.count===1?``:`s`),1)):G(``,!0)]),!D.value||!D.value.indexed?(z(),B(`p`,sE,` Run a scan to find where this key is used in your code. `)):(z(),B(R,{key:1},[D.value.count===0&&re.value.length===0&&ie.value.length===0?(z(),B(`p`,cE,` Not referenced in the last scan — this key may be unused. `)):G(``,!0),O.value.length?(z(),B(`div`,lE,[(z(!0),B(R,null,I(ae.value,(e,t)=>(z(),B(R,{key:t},[e.kind===`dir`?(z(),B(`div`,{key:0,class:`flex items-center gap-1 text-muted-foreground`,style:me({paddingLeft:`${e.depth*12}px`})},[U(N(Ku),{class:`size-3 shrink-0`}),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,uE,j(e.label),1)]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(e.label),1)]),_:2},1024)]),_:2},1024)],4)):(z(),B(`div`,{key:1,class:`flex items-baseline gap-1.5`,style:me({paddingLeft:`${e.depth*12+16}px`})},[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[oe(e.refs)?(z(),B(`a`,{key:0,href:oe(e.refs),class:`min-w-0 shrink truncate rounded px-0.5 font-mono text-foreground hover:bg-accent hover:text-primary`},j(e.name),9,dE)):(z(),B(`span`,fE,j(e.name),1))]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(oe(e.refs)?`Open ${e.name}`:e.name),1)]),_:2},1024)]),_:2},1024),H(`span`,pE,[(z(!0),B(R,null,I(e.refs,(t,n)=>(z(),B(R,{key:n},[t.url?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`a`,{href:t.url,class:`shrink-0 rounded px-0.5 font-mono text-muted-foreground hover:bg-accent hover:text-primary`},`:`+j(t.line),9,mE)]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(`Open `+j(e.name)+`:`+j(t.line),1)]),_:2},1024)]),_:2},1024)):(z(),B(`span`,hE,`:`+j(t.line),1))],64))),128))])],4))],64))),128)),D.value.count>ee.value?(z(),B(`button`,{key:0,type:`button`,class:`mt-0.5 self-start text-[11.5px] text-primary hover:underline`,onClick:n[1]||=e=>ee.value=D.value.count},` + `+j(D.value.count-ee.value)+` more `,1)):G(``,!0)])):G(``,!0),re.value.length?(z(),B(`div`,gE,[H(`p`,_E,[U(N(xu),{class:`size-3`}),n[13]||=W(` Possible usage (dynamic keys) `,-1)]),H(`ul`,vE,[(z(!0),B(R,null,I(re.value,(e,t)=>(z(),B(`li`,{key:t,class:`text-[11.5px]`},[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[(z(),V(ia(e.url?`a`:`div`),{href:e.url||void 0,class:A([`group flex items-baseline gap-2 text-muted-foreground`,e.url?`hover:text-primary`:``])},{default:P(()=>[H(`span`,yE,j(e.file),1),H(`span`,bE,j(e.prefix)+`*`,1),H(`span`,xE,`:`+j(e.line),1),e.url?(z(),V(N(zu),{key:0,class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-100`})):G(``,!0)]),_:2},1032,[`href`,`class`]))]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(e.url?`Open ${e.file}:${e.line}`:`${e.file}:${e.line}`),1)]),_:2},1024)]),_:2},1024)]))),128))])])):G(``,!0),ie.value.length?(z(),B(`div`,SE,[H(`p`,CE,[U(N(xu),{class:`size-3`}),n[14]||=W(` Possible usage (string literals) `,-1)]),H(`ul`,wE,[(z(!0),B(R,null,I(ie.value,(e,t)=>(z(),B(`li`,{key:t,class:`text-[11.5px]`},[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[(z(),V(ia(e.url?`a`:`div`),{href:e.url||void 0,class:A([`group flex items-baseline gap-2 text-muted-foreground`,e.url?`hover:text-primary`:``])},{default:P(()=>[H(`span`,TE,j(e.file),1),H(`span`,EE,`'`+j(e.literal)+`'`,1),H(`span`,DE,`:`+j(e.line),1),e.url?(z(),V(N(zu),{key:0,class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-100`})):G(``,!0)]),_:2},1032,[`href`,`class`]))]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(e.url?`Open ${e.file}:${e.line}`:`${e.file}:${e.line}`),1)]),_:2},1024)]),_:2},1024)]))),128))])])):G(``,!0)],64))]),H(`div`,OE,[H(`div`,kE,[U(N(Xu),{class:`size-3.5 text-muted-foreground`}),n[16]||=H(`label`,{for:`detail-context`,class:`text-[13px] font-semibold`},`Context`,-1),e.entry.contextSource===`ai`?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,AE,[U(N(vd),{class:`size-2.5`}),n[15]||=W(` AI `,-1)])]),_:1}),U(N(qC),null,{default:P(()=>[W(j(e.entry.contextAt?`AI-generated ${i(e.entry.contextAt)}`:`AI-generated`),1)]),_:1})]),_:1})):G(``,!0),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`ml-auto flex items-center gap-1 rounded px-1.5 py-0.5 text-[11.5px] font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:opacity-40`,disabled:T.value,onClick:E},[U(N(vd),{class:`size-3`}),W(` `+j(T.value?`Suggesting…`:`Suggest`),1)],8,jE)]),_:1}),U(N(qC),null,{default:P(()=>[W(j(T.value?`Suggesting…`:`Suggest context with AI`),1)]),_:1})]),_:1})]),U(N(fw),{id:`detail-context`,modelValue:C.context,"onUpdate:modelValue":n[2]||=e=>C.context=e,rows:`5`,class:`min-h-28`,placeholder:`Where/how this string is used…`},null,8,[`modelValue`])]),H(`div`,ME,[H(`div`,NE,[U(N(Cd),{class:`size-3.5 text-muted-foreground`}),n[17]||=H(`label`,{for:`detail-tags`,class:`text-[13px] font-semibold`},`Tags`,-1)]),U(N(sC),{id:`detail-tags`,modelValue:C.tags,"onUpdate:modelValue":n[3]||=e=>C.tags=e,placeholder:`comma, separated`},null,8,[`modelValue`])]),H(`div`,PE,[H(`div`,FE,[U(N(ld),{class:`size-3.5 text-muted-foreground`}),n[18]||=H(`label`,{for:`detail-maxlen`,class:`text-[13px] font-semibold`},`Max length`,-1)]),U(N(sC),{id:`detail-maxlen`,modelValue:C.maxLength,"onUpdate:modelValue":n[4]||=e=>C.maxLength=e,modelModifiers:{number:!0},type:`number`,min:`0`,placeholder:`—`,class:`font-mono`},null,8,[`modelValue`])]),U(N($),{class:`w-full`,disabled:w.value,onClick:de},{default:P(()=>[...n[19]||=[W(`Save details`,-1)]]),_:1},8,[`disabled`]),n[25]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),e.keyName?(z(),V(zT,{key:1,"key-name":e.keyName,notes:e.entry.notes??[],onChanged:n[5]||=e=>r(`changed`)},null,8,[`key-name`,`notes`])):G(``,!0),n[26]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),H(`div`,IE,[H(`div`,LE,[U(N(Yu),{class:`size-3.5 text-muted-foreground`}),n[20]||=H(`span`,{class:`text-[13px] font-semibold`},`Screenshot`,-1)]),H(`input`,{ref_key:`fileInput`,ref:_,type:`file`,accept:`image/*`,class:`hidden`,onChange:x},null,544),e.entry.screenshot?(z(),B(`div`,RE,[H(`img`,{src:`/`+e.entry.screenshot,alt:`Screenshot for ${e.keyName}`,class:`max-h-48 w-full rounded-lg border border-border object-contain`},null,8,zE),H(`div`,BE,[U(N($),{variant:`outline`,size:`sm`,disabled:v.value,onClick:b},{default:P(()=>[U(N(sd),{class:`size-4`}),n[21]||=W(` Replace `,-1)]),_:1},8,[`disabled`]),U(N($),{variant:`outline`,size:`sm`,class:`text-muted-foreground hover:text-destructive`,disabled:y.value,onClick:S},{default:P(()=>[U(N(wd),{class:`size-4`}),n[22]||=W(` Remove `,-1)]),_:1},8,[`disabled`])])])):(z(),B(`button`,{key:1,type:`button`,class:`flex w-full flex-col items-center gap-2 rounded-xl border-[1.5px] border-dashed border-input p-[22px] text-center text-[12.5px] font-medium text-muted-foreground transition-colors hover:border-primary-border hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-60`,disabled:v.value,onClick:b},[U(N(Dd),{class:`size-5`}),W(` `+j(v.value?`Uploading…`:`Upload screenshot`),1)],8,VE))]),n[27]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),H(`div`,HE,[H(`div`,UE,[n[23]||=H(`span`,null,`Created`,-1),H(`span`,WE,j(i(e.entry.createdAt)),1)]),H(`div`,GE,[n[24]||=H(`span`,null,`Last updated`,-1),H(`span`,KE,j(i(o.value)),1)])])]))]))}}),JE={class:`grid gap-3`},YE={class:`grid gap-1.5`},XE={class:`grid gap-1.5`},ZE={class:`flex items-center justify-between gap-2 rounded-md border p-2.5`},QE={class:`flex flex-col`},$E={key:0,class:`grid gap-1.5`},eD={key:1,class:`text-sm text-destructive`},tD=F({__name:`AddKeyDialog`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:Oa([`created`],[`update:open`]),setup(e,{emit:t}){let n=Xa(e,`open`),r=t,i=M(``),a=M(``),o=M(``),s=M(!1),c=M(!1),l=M(`count`);Er(n,e=>{e&&(i.value=``,a.value=``,o.value=``,c.value=!1,l.value=`count`)});async function u(){let e=i.value.trim();if(!e){o.value=`Key is required.`;return}if(!a.value.trim()){o.value=`Source value is required.`;return}s.value=!0,o.value=``;try{c.value?await Md(e,a.value,{arg:l.value.trim()||`count`}):await Md(e,a.value),Q.success(`Added ${e}`),n.value=!1,r(`created`,e)}catch(e){o.value=e.message}finally{s.value=!1}}return(e,t)=>(z(),V(N(C_),{open:n.value,"onUpdate:open":t[5]||=e=>n.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...t[6]||=[W(`Add key`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[...t[7]||=[W(`Create a new translation key using dot notation.`,-1)]]),_:1})]),_:1}),H(`div`,JE,[H(`div`,YE,[U(N(MC),{for:`add-key`},{default:P(()=>[...t[8]||=[W(`Key `,-1),H(`span`,{class:`text-destructive`},`*`,-1)]]),_:1}),U(N(sC),{id:`add-key`,modelValue:i.value,"onUpdate:modelValue":t[0]||=e=>i.value=e,class:`font-mono`,placeholder:`home.title`,onKeydown:Xl(Jl(u,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),H(`div`,XE,[U(N(MC),{for:`add-value`},{default:P(()=>[W(j(c.value?`Source value (other form)`:`Source value`)+` `,1),t[9]||=H(`span`,{class:`text-destructive`},`*`,-1)]),_:1}),U(N(sC),{id:`add-value`,modelValue:a.value,"onUpdate:modelValue":t[1]||=e=>a.value=e,placeholder:c.value?`{count} items`:`Welcome home`,onKeydown:Xl(Jl(u,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),H(`div`,ZE,[H(`div`,QE,[U(N(MC),{for:`add-plural`,class:`cursor-pointer`},{default:P(()=>[...t[10]||=[W(`Plural`,-1)]]),_:1}),t[11]||=H(`span`,{class:`text-xs text-muted-foreground`},`One form per CLDR category, by locale.`,-1)]),U(N(_C),{id:`add-plural`,modelValue:c.value,"onUpdate:modelValue":t[2]||=e=>c.value=e},null,8,[`modelValue`])]),c.value?(z(),B(`div`,$E,[U(N(MC),{for:`add-plural-arg`},{default:P(()=>[...t[12]||=[W(`Count argument`,-1)]]),_:1}),U(N(sC),{id:`add-plural-arg`,modelValue:l.value,"onUpdate:modelValue":t[3]||=e=>l.value=e,class:`font-mono`,placeholder:`count`,onKeydown:Xl(Jl(u,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])):G(``,!0),o.value?(z(),B(`p`,eD,j(o.value),1)):G(``,!0)]),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:s.value,onClick:t[4]||=e=>n.value=!1},{default:P(()=>[...t[13]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:s.value||!i.value.trim()||!a.value.trim(),onClick:u},{default:P(()=>[...t[14]||=[W(`Add key`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),nD={key:0,class:`flex items-center gap-1.5 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-400`},rD={key:1,class:`text-sm text-destructive`},iD={key:2,class:`flex flex-1 items-center justify-center py-12 text-sm text-muted-foreground`},aD={key:0,class:`flex flex-col gap-1 rounded-md border border-amber-500/30 bg-amber-500/10 p-3 text-sm text-amber-700 dark:text-amber-400`},oD={class:`flex items-center gap-1.5 font-medium`},sD={class:`list-inside list-disc pl-1`},cD={class:`grid min-h-0 flex-1 grid-cols-[16rem_1fr] gap-3 overflow-hidden`},lD={class:`min-h-0 overflow-y-auto rounded-md border`},uD=[`onClick`],dD={key:0,class:`px-3 py-2 text-xs text-muted-foreground`},fD={key:0,class:`min-h-0 overflow-auto rounded-md border bg-muted/30 p-3 font-mono text-xs leading-relaxed [tab-size:2]`},pD={key:1,class:`flex min-h-0 items-center justify-center rounded-md border text-sm text-muted-foreground`},mD=F({__name:`ExportDialog`,props:Oa({exportLocales:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:[`update:open`],setup(e){let t=Xa(e,`open`),n=e,r=q(()=>(n.exportLocales?.length??0)>0),i=M(!1),a=M(!1),o=M(``),s=M([]),c=M([]),l=M(null),u=q(()=>s.value.find(e=>e.path===l.value)??null);async function d(){i.value=!0,o.value=``,s.value=[],c.value=[],l.value=null;try{let e=await Df();s.value=[...e.files].sort((e,t)=>e.path.localeCompare(t.path)),c.value=e.warnings,l.value=s.value[0]?.path??null}catch(e){o.value=e.message}finally{i.value=!1}}Er(t,e=>{e&&d()},{immediate:!0});async function f(){a.value=!0;try{let e=await Of();Q.success(`Wrote ${e.files} file${e.files===1?``:`s`}`),t.value=!1}catch(e){Q.error(`Export failed: ${e.message}`)}finally{a.value=!1}}return(e,d)=>(z(),V(N(C_),{open:t.value,"onUpdate:open":d[1]||=e=>t.value=e},{default:P(()=>[U(N(NC),{class:`flex max-h-[85vh] w-full max-w-5xl flex-col`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...d[2]||=[W(`Export preview`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[...d[3]||=[W(`Review the files that will be written to disk.`,-1)]]),_:1})]),_:1}),r.value?(z(),B(`p`,nD,[U(N(Td),{class:`size-3.5 shrink-0`}),W(` Export is limited to `+j(n.exportLocales.length)+` language`+j(n.exportLocales.length===1?``:`s`)+` (Settings → Export targets). `,1)])):G(``,!0),o.value?(z(),B(`p`,rD,j(o.value),1)):G(``,!0),i.value?(z(),B(`div`,iD,` Generating preview… `)):o.value?G(``,!0):(z(),B(R,{key:3},[c.value.length?(z(),B(`div`,aD,[H(`p`,oD,[U(N(Td),{class:`size-4`}),W(` `+j(c.value.length)+` warning`+j(c.value.length===1?``:`s`),1)]),H(`ul`,sD,[(z(!0),B(R,null,I(c.value,(e,t)=>(z(),B(`li`,{key:t},j(e),1))),128))])])):G(``,!0),H(`div`,cD,[H(`ul`,lD,[(z(!0),B(R,null,I(s.value,e=>(z(),B(`li`,{key:e.path},[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:A(N(lh)(`w-full truncate px-3 py-1.5 text-left font-mono text-xs transition-colors`,e.path===l.value?`bg-accent text-accent-foreground`:`hover:bg-muted/60`)),onClick:t=>l.value=e.path},j(e.path),11,uD)]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(e.path),1)]),_:2},1024)]),_:2},1024)]))),128)),s.value.length===0?(z(),B(`li`,dD,` No files to write. `)):G(``,!0)]),u.value?(z(),B(`pre`,fD,j(u.value.contents),1)):(z(),B(`div`,pD,` Select a file to preview its contents. `))])],64)),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:a.value,onClick:d[0]||=e=>t.value=!1},{default:P(()=>[...d[4]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:i.value||a.value||s.value.length===0,onClick:f},{default:P(()=>[U(N(Hu),{class:`size-4`}),W(` `+j(a.value?`Writing…`:`Write ${s.value.length} file${s.value.length===1?``:`s`}`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),hD={class:`relative h-2 w-full overflow-hidden rounded-full bg-muted`},gD={key:0,class:`gf-progress-indeterminate absolute inset-y-0 w-1/3 rounded-full bg-primary`},_D=mh(F({__name:`Progress`,props:{modelValue:{},indeterminate:{type:Boolean}},setup(e){return(t,n)=>(z(),B(`div`,hD,[e.indeterminate?(z(),B(`div`,gD)):(z(),B(`div`,{key:1,class:`h-full bg-primary transition-all`,style:me({width:`${Math.min(100,Math.max(0,e.modelValue??0))}%`})},null,4))]))}}),[[`__scopeId`,`data-v-558dffb9`]]),vD={key:0,class:`rounded-md border bg-muted/40 px-3 py-2 text-xs text-muted-foreground`},yD={class:`font-medium text-foreground`},bD={key:0,class:`mt-0.5`},xD={key:1,class:`mt-1`},SD={class:`mt-1`},CD={key:1,class:`flex min-h-0 flex-col gap-1.5`},wD={class:`flex justify-between text-xs text-muted-foreground`},TD={key:0},ED={key:0,class:`mt-1 flex max-h-56 min-h-0 flex-col overflow-y-auto rounded-md border text-sm`},DD={key:2,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},OD={class:`flex items-center gap-1.5 font-medium`},kD={key:3,class:`flex min-h-0 flex-col gap-1.5`},AD={class:`flex items-center gap-1.5 text-sm font-medium text-amber-700 dark:text-amber-400`},jD={class:`min-h-0 flex-1 overflow-y-auto rounded-md border text-sm`},MD={class:`inline-flex items-center gap-1.5 font-mono text-xs`},ND={class:`text-muted-foreground`},PD=F({__name:`TranslateDialog`,props:Oa({state:{},filteredKeys:{},targetLocale:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:Oa([`changed`,`batch-submitted`],[`update:open`]),setup(e,{emit:t}){let n=e,r=Xa(e,`open`),i=t,a=M(!1),o=M(``),s=M([]),c=M(0),l=M(0),u=null,d=M([]),f=e=>d.value.find(t=>t.locale===e),p=q(()=>d.value.filter(e=>e.status===`active`).length),m={active:0,queued:1,done:2},h=q(()=>[...d.value].sort((e,t)=>m[e.status]-m[t.status])),g=e=>e===`active`?$u:e===`done`?Du:Nu,_=q(()=>{let e=n.state;return e?n.targetLocale?[n.targetLocale]:e.config.locales.filter(t=>t!==e.config.sourceLocale):[]}),v=q(()=>{let e=n.state;if(!e)return 0;let t=n.filteredKeys?new Set(n.filteredKeys):null,r=0;for(let[n,i]of Object.entries(e.keys))if(!(t&&!t.has(n))&&!i.skipTranslate)for(let t of _.value)XC(i,t,e.config.sourceLocale)&&r++;return r}),y=M(null),b=q(()=>y.value??v.value),x=M(!1),S=M(!1);async function C(){x.value=!1;try{let e=await qd();x.value=e.supported&&!e.pending}catch{}}async function w(){S.value=!0;try{let e=await Jd({keys:n.filteredKeys?.length?n.filteredKeys:void 0,locales:n.targetLocale?[n.targetLocale]:void 0});Q.success(`Batch of ${e.total.toLocaleString()} strings submitted — results apply when processing finishes (usually under an hour).`),i(`batch-submitted`),r.value=!1}catch(e){o.value=e.message}finally{S.value=!1}}let T=M(null),E=e=>e>=1e4?`${Math.round(e/1e3)}k`:e.toLocaleString(),D=e=>e>=.1?`$${e.toFixed(2)}`:`$${e.toFixed(4)}`,ee=q(()=>{let e=T.value?.estimatedCost;return e==null?`Batch (50% off)`:`Batch ≈ ${D(e/2)} (50% off)`});async function te(){T.value=null;try{T.value=await Kd({keys:n.filteredKeys?.length?n.filteredKeys:void 0,locales:n.targetLocale?[n.targetLocale]:void 0})}catch{}}Er(r,e=>{e&&(o.value=``,s.value=[],c.value=0,l.value=0,d.value=[],y.value=null,te(),C())},{immediate:!0});function ne(){u?.abort()}async function O(){u=new AbortController,a.value=!0,o.value=``,s.value=[],c.value=0,d.value=[],y.value=v.value,l.value=y.value;try{let e=u.signal,t=0,a=n.filteredKeys?.length?n.filteredKeys:void 0,o=n.targetLocale?[n.targetLocale]:void 0,p=o?[e,a,o]:a?[e,a]:[e];for await(let e of tf(...p))if(e.type===`start`)l.value=e.total,d.value=e.locales.map(e=>({locale:e.locale,total:e.total,done:0,status:`queued`}));else if(e.type===`locale-start`){let t=f(e.locale);t&&(t.status=`active`)}else if(e.type===`progress`){c.value=e.done,l.value=e.total;let t=f(e.locale);t&&(t.done=e.localeDone,t.status===`queued`&&(t.status=`active`)),i(`changed`)}else if(e.type===`locale-done`){let t=f(e.locale);t&&(t.status=`done`,t.done=t.total)}else e.type===`done`&&(t=e.written,s.value=e.errors,c.value=l.value,i(`changed`));e.aborted||(Q.success(`Translated ${t} string${t===1?``:`s`}`),s.value.length===0&&(r.value=!1))}catch(e){e.name!==`AbortError`&&(o.value=e.message)}finally{a.value=!1,u=null}}return(e,t)=>(z(),V(N(C_),{open:r.value,"onUpdate:open":t[1]||=e=>r.value=e},{default:P(()=>[U(N(NC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...t[2]||=[W(`Translate missing strings`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[b.value===0?(z(),B(R,{key:0},[W(`Nothing missing — all translations are filled.`)],64)):(z(),B(R,{key:1},[W(` Translate `+j(b.value.toLocaleString())+` missing string`+j(b.value===1?``:`s`)+` across `+j(_.value.length)+` language`+j(_.value.length===1?``:`s`)+` with Claude? This sends source strings + context to the AI provider. `,1)],64))]),_:1})]),_:1}),T.value&&T.value.requests>0&&b.value>0&&!a.value&&c.value===0?(z(),B(`div`,vD,[H(`p`,null,[W(` ≈ `+j(T.value.requests.toLocaleString())+` requests · `+j(T.value.batches.toLocaleString())+` batch`+j(T.value.batches===1?``:`es`)+` · ~`+j(E(T.value.inputTokens))+` in / ~`+j(E(T.value.outputTokens))+` out tokens`,1),T.value.estimatedCost===null?G(``,!0):(z(),B(R,{key:0},[t[3]||=W(` · `,-1),H(`span`,yD,`≈ `+j(D(T.value.estimatedCost)),1),t[4]||=W(` (±20%)`,-1)],64))]),T.value.pricing?G(``,!0):(z(),B(`p`,bD,` No pricing known for this model — set a price in Settings → AI for a dollar estimate. `)),T.value.perLocale.length>1?(z(),B(`details`,xD,[t[5]||=H(`summary`,{class:`cursor-pointer select-none`},`Per-language breakdown`,-1),H(`ul`,SD,[(z(!0),B(R,null,I(T.value.perLocale,e=>(z(),B(`li`,{key:e.locale,class:`flex justify-between font-mono tabular-nums`},[H(`span`,null,j(e.locale),1),H(`span`,null,j(e.requests.toLocaleString())+` req · ~`+j(E(e.inputTokens))+` / ~`+j(E(e.outputTokens)),1)]))),128))])])):G(``,!0)])):G(``,!0),a.value||c.value>0?(z(),B(`div`,CD,[H(`div`,wD,[H(`span`,null,j(c.value.toLocaleString())+` / `+j(l.value.toLocaleString())+` translated`,1),a.value&&d.value.length?(z(),B(`span`,TD,j(p.value)+` of `+j(d.value.length)+` language`+j(d.value.length===1?``:`s`)+` active`,1)):G(``,!0)]),U(N(_D),{"model-value":l.value>0?c.value/l.value*100:0},null,8,[`model-value`]),d.value.length?(z(),B(`ul`,ED,[(z(!0),B(R,null,I(h.value,e=>(z(),B(`li`,{key:e.locale,class:A([`flex items-center gap-2 border-b px-3 py-1.5 last:border-b-0`,e.status===`queued`&&`opacity-55`])},[(z(),V(ia(g(e.status)),{class:A([`size-3.5 shrink-0`,e.status===`active`?`animate-spin text-primary`:e.status===`done`?`text-emerald-600 dark:text-emerald-400`:`text-muted-foreground`])},null,8,[`class`])),U(zw,{code:e.locale,size:14,"show-name":``},null,8,[`code`]),H(`span`,{class:A([`ml-auto font-mono text-xs tabular-nums`,e.status===`active`?`text-foreground`:`text-muted-foreground`])},j(e.done.toLocaleString())+` / `+j(e.total.toLocaleString()),3)],2))),128))])):G(``,!0)])):G(``,!0),o.value?(z(),B(`div`,DD,[H(`p`,OD,[U(N(Td),{class:`size-4`}),t[6]||=W(` Translation failed `,-1)]),H(`p`,null,j(o.value),1)])):G(``,!0),s.value.length?(z(),B(`div`,kD,[H(`p`,AD,[U(N(Td),{class:`size-4`}),W(` `+j(s.value.length)+` string`+j(s.value.length===1?``:`s`)+` could not be translated `,1)]),H(`ul`,jD,[(z(!0),B(R,null,I(s.value,(e,t)=>(z(),B(`li`,{key:`${e.key}-${e.locale}-${t}`,class:`border-b px-3 py-1.5 last:border-b-0`},[H(`span`,MD,[W(j(e.key)+` @ `,1),U(zw,{code:e.locale,size:12},null,8,[`code`])]),H(`span`,ND,` — `+j(e.error),1)]))),128))])])):G(``,!0),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,onClick:t[0]||=e=>a.value?ne():r.value=!1},{default:P(()=>[W(j(a.value?`Cancel`:`Close`),1)]),_:1}),b.value>0&&x.value?(z(),V(N($),{key:0,variant:`outline`,disabled:a.value||S.value,onClick:w},{default:P(()=>[W(j(S.value?`Submitting…`:ee.value),1)]),_:1},8,[`disabled`])):G(``,!0),b.value>0?(z(),V(N($),{key:1,disabled:a.value,onClick:O},{default:P(()=>[U(N(vd),{class:`size-4`}),W(` `+j(a.value?`Translating…`:`Translate`),1)]),_:1},8,[`disabled`])):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),FD={key:0,class:`flex flex-col gap-1.5`},ID={class:`flex justify-between text-xs text-muted-foreground`},LD={key:1,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},RD={class:`flex items-center gap-1.5 font-medium`},zD={key:2,class:`flex min-h-0 flex-col gap-1.5`},BD={class:`flex items-center gap-1.5 text-sm font-medium text-amber-700 dark:text-amber-400`},VD={class:`min-h-0 flex-1 overflow-y-auto rounded-md border text-sm`},HD={class:`font-mono text-xs`},UD={class:`text-muted-foreground`},WD=F({__name:`ContextDialog`,props:Oa({state:{},keys:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:Oa([`changed`,`batch-submitted`],[`update:open`]),setup(e,{emit:t}){let n=e,r=Xa(e,`open`),i=t,a=M(!1),o=M(null),s=M(``),c=M([]),l=M(0),u=M(0),d=q(()=>{let e=n.state;return e?n.keys.filter(t=>e.keys[t]&&!e.keys[t].context).length:0}),f=M(!1),p=M(!1);async function m(){f.value=!1;try{let e=await Zd();f.value=e.supported&&!e.pending}catch{}}async function h(){p.value=!0;try{let e=await Qd({keys:n.keys});Q.success(`Context batch of ${e.total.toLocaleString()} keys submitted — results apply when processing finishes (usually under an hour).`),i(`batch-submitted`),r.value=!1}catch(e){s.value=e.message}finally{p.value=!1}}Er(r,e=>{e?(s.value=``,c.value=[],l.value=0,u.value=0,m()):o.value?.abort()});function g(){o.value?.abort()}async function _(){a.value=!0,s.value=``,c.value=[],l.value=0,u.value=0,o.value=new AbortController;let e=!1;try{for await(let t of nf({keys:n.keys},o.value.signal))t.type===`start`?u.value=t.total:t.type===`progress`?(l.value=t.done,u.value=t.total):t.type===`done`&&(e=!0,l.value=u.value,c.value=t.errors,i(`changed`),Q.success(`Built context for ${t.written} key${t.written===1?``:`s`}`),t.errors.length===0&&(r.value=!1))}catch(e){s.value=e.message}finally{!e&&o.value?.signal.aborted&&(i(`changed`),Q(`Build cancelled after ${l.value} of ${u.value} keys`)),o.value=null,a.value=!1}}return(e,t)=>(z(),V(N(C_),{open:r.value,"onUpdate:open":t[1]||=e=>r.value=e},{default:P(()=>[U(N(NC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...t[2]||=[W(`Build context`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[d.value===0?(z(),B(R,{key:0},[W(` All selected keys already have context — nothing to build. `)],64)):(z(),B(R,{key:1},[W(` Build AI context notes for `+j(d.value)+` selected key`+j(d.value===1?``:`s`)+` that currently have none? The AI will scan call-site code snippets to write a short translator hint for each key. `,1)],64))]),_:1})]),_:1}),a.value||l.value>0?(z(),B(`div`,FD,[H(`div`,ID,[H(`span`,null,j(l.value.toLocaleString())+` / `+j(u.value.toLocaleString())+` built`,1)]),U(N(_D),{"model-value":u.value>0?l.value/u.value*100:0},null,8,[`model-value`])])):G(``,!0),s.value?(z(),B(`div`,LD,[H(`p`,RD,[U(N(Td),{class:`size-4`}),t[3]||=W(` Build failed `,-1)]),H(`p`,null,j(s.value),1)])):G(``,!0),c.value.length?(z(),B(`div`,zD,[H(`p`,BD,[U(N(Td),{class:`size-4`}),W(` `+j(c.value.length)+` key`+j(c.value.length===1?``:`s`)+` could not be processed `,1)]),H(`ul`,VD,[(z(!0),B(R,null,I(c.value,(e,t)=>(z(),B(`li`,{key:`${e.key}-${t}`,class:`border-b px-3 py-1.5 last:border-b-0`},[H(`span`,HD,j(e.key),1),H(`span`,UD,` — `+j(e.error),1)]))),128))])])):G(``,!0),U(N(FC),null,{default:P(()=>[a.value?(z(),V(N($),{key:0,variant:`outline`,onClick:g},{default:P(()=>[...t[4]||=[W(`Cancel`,-1)]]),_:1})):(z(),V(N($),{key:1,variant:`outline`,onClick:t[0]||=e=>r.value=!1},{default:P(()=>[...t[5]||=[W(`Close`,-1)]]),_:1})),d.value>0&&f.value?(z(),V(N($),{key:2,variant:`outline`,disabled:a.value||p.value,onClick:h},{default:P(()=>[W(j(p.value?`Submitting…`:`Batch (50% off)`),1)]),_:1},8,[`disabled`])):G(``,!0),d.value>0?(z(),V(N($),{key:3,disabled:a.value||p.value,onClick:_},{default:P(()=>[U(N(vd),{class:`size-4`}),W(` `+j(a.value?`Building…`:`Build context`),1)]),_:1},8,[`disabled`])):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),GD={key:0,class:`flex items-center gap-3 rounded-md border bg-muted/40 px-3 py-2 text-sm`},KD={class:`flex min-w-0 flex-1 flex-col gap-1`},qD={class:`truncate`},JD=F({__name:`BatchBanner`,props:{kind:{default:`translate`}},emits:[`changed`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=M(null),o=M(!1),s;async function c(){try{a.value=(await(r.kind===`context`?Zd():qd())).pending}catch{}}Gi(()=>{c(),s=setInterval(()=>void c(),3e4)}),Yi(()=>clearInterval(s)),t({refresh:c});let l=q(()=>a.value?.status===`ended`);async function u(){o.value=!0;try{if(r.kind===`context`){let e=await $d(),t=[e.retried?`${e.retried} retried`:``,e.errors.length?`${e.errors.length} error(s)`:``].filter(Boolean).join(`, `);Q.success(`Context batch applied — wrote ${e.written} context(s)${t?` (${t})`:``}`)}else{let e=await Yd(),t=[e.retried?`${e.retried} retried`:``,e.staleSkipped?`${e.staleSkipped} stale skipped`:``,e.errors.length?`${e.errors.length} error(s)`:``].filter(Boolean).join(`, `);Q.success(`Batch applied — wrote ${e.written} translation(s)${t?` (${t})`:``}`)}i(`changed`),await c()}catch(e){Q.error(e.message)}finally{o.value=!1}}async function d(){if(window.confirm(`Cancel this batch? Finished entries are discarded.`))try{await(r.kind===`context`?ef():Xd()),await c()}catch(e){Q.error(e.message)}}return(e,t)=>a.value?(z(),B(`div`,GD,[(z(),V(ia(l.value?N(Du):N($u)),{class:A([`size-4 shrink-0`,l.value?`text-emerald-600 dark:text-emerald-400`:`animate-spin text-primary`])},null,8,[`class`])),H(`div`,KD,[H(`span`,qD,[W(j(r.kind===`context`?`Batch context build`:`Batch translation`)+` (`+j(a.value.total.toLocaleString())+` `+j(r.kind===`context`?`keys`:`strings`)+`) `,1),l.value?(z(),B(R,{key:0},[W(` — finished, ready to apply`)],64)):(z(),B(R,{key:1},[W(` — processing…`)],64))]),l.value?G(``,!0):(z(),V(N(_D),{key:0,indeterminate:``,class:`h-1`}))]),U(N($),{size:`sm`,disabled:!l.value||o.value,onClick:u},{default:P(()=>[W(j(o.value?`Applying…`:l.value?`Apply results`:`Waiting…`),1)]),_:1},8,[`disabled`]),U(N($),{size:`sm`,variant:`ghost`,disabled:o.value,onClick:d},{default:P(()=>[U(N(kd),{class:`size-4`})]),_:1},8,[`disabled`])])):G(``,!0)}}),YD={key:1,class:`text-muted-foreground`},XD={class:`flex items-center gap-2 border-b px-3`},ZD={class:`absolute left-2 flex size-3.5 items-center justify-center`},QD={class:`flex w-full min-w-0 items-center justify-between gap-2`},$D={class:`shrink-0 font-mono text-xs text-muted-foreground`},eO=F({__name:`LocaleCombobox`,props:Oa({locales:{},placeholder:{},class:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=Xa(e,`modelValue`),r=M(!1),i=M(``),a=q(()=>t.locales.map(e=>({code:e,resolved:aw(e)})).sort((e,t)=>e.resolved.name.localeCompare(t.resolved.name,`en`))),o=q(()=>{let e=i.value.trim().toLowerCase();return e?a.value.filter(({code:t,resolved:n})=>t.toLowerCase().includes(e)||n.bcp47.toLowerCase().includes(e)||n.name.toLowerCase().includes(e)||(n.endonym?.toLowerCase().includes(e)??!1)):a.value});function s(e){r.value=e,e&&(i.value=``)}return(a,c)=>(z(),V(N(ex),{modelValue:n.value,"onUpdate:modelValue":c[1]||=e=>n.value=e,open:r.value,"ignore-filter":``,"onUpdate:open":s},{default:P(()=>[U(N(tx),{"as-child":``},{default:P(()=>[U(N(px),{class:A(N(lh)(`flex h-9 items-center justify-between gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,t.class))},{default:P(()=>[n.value?(z(),V(zw,{key:0,code:n.value,"show-name":``,"show-code":!1,size:14},null,8,[`code`])):(z(),B(`span`,YD,j(e.placeholder??`Locale`),1)),U(N(Ou),{class:`size-4 shrink-0 opacity-50`})]),_:1},8,[`class`])]),_:1}),U(N(fx),null,{default:P(()=>[U(N(ax),{position:`popper`,align:`start`,"side-offset":4,class:`z-50 max-h-96 w-[260px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1`},{default:P(()=>[H(`div`,XD,[U(N(pd),{class:`size-4 shrink-0 opacity-50`}),U(N(lx),{modelValue:i.value,"onUpdate:modelValue":c[0]||=e=>i.value=e,"display-value":()=>``,placeholder:`Search locales…`,class:`h-9 w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground`},null,8,[`modelValue`])]),U(N(hx),{class:`max-h-72 p-1`},{default:P(()=>[U(N(ox),{class:`py-6 text-center text-sm text-muted-foreground`},{default:P(()=>[...c[2]||=[W(` No locales found `,-1)]]),_:1}),(z(!0),B(R,null,I(o.value,({code:e})=>(z(),V(N(ux),{key:e,value:e,class:`relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`},{default:P(()=>[H(`span`,ZD,[U(N(dx),null,{default:P(()=>[U(N(Du),{class:`size-4`})]),_:1})]),H(`span`,QD,[U(zw,{code:e,"show-name":``,"show-code":!1,size:14},null,8,[`code`]),H(`span`,$D,j(e.toUpperCase()),1)])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`open`]))}}),tO={class:`relative w-0 shrink-0`},nO=[`aria-valuenow`,`aria-valuemin`,`aria-valuemax`],rO=F({__name:`ResizeHandle`,props:{side:{},width:{},min:{},max:{}},emits:[`update:width`,`commit`,`reset`],setup(e,{emit:t}){let n=e,r=t,i=M(!1);function a(e){if(e.button!==0)return;let t=e.currentTarget,a=e.clientX,o=n.width,s=n.side===`right`?1:-1;i.value=!0,t.setPointerCapture(e.pointerId),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let c=e=>Math.min(n.max,Math.max(n.min,Math.round(e))),l=e=>{r(`update:width`,c(o+s*(e.clientX-a)))},u=()=>{t.removeEventListener(`pointermove`,l),t.removeEventListener(`pointerup`,u),t.removeEventListener(`pointercancel`,u),document.body.style.cursor=``,document.body.style.userSelect=``,i.value=!1,r(`commit`)};t.addEventListener(`pointermove`,l),t.addEventListener(`pointerup`,u),t.addEventListener(`pointercancel`,u)}return(t,n)=>(z(),B(`div`,tO,[H(`div`,{class:A(N(lh)(`absolute inset-y-0 -left-1 z-10 w-2 cursor-col-resize transition-colors hover:bg-primary/20`,i.value&&`bg-primary/30`)),role:`separator`,"aria-orientation":`vertical`,"aria-valuenow":e.width,"aria-valuemin":e.min,"aria-valuemax":e.max,"aria-label":`Resize panel (double-click to reset)`,onPointerdown:a,onDblclick:n[0]||=e=>r(`reset`)},null,42,nO)]))}});function iO(e,t,n,r){let i=`glotfile-${e}`,a=e=>Math.min(r,Math.max(n,Math.round(e))),o=M((()=>{let e=Number(localStorage.getItem(i));return Number.isFinite(e)&&e>0?a(e):t})()),s=()=>{localStorage.setItem(i,String(o.value)),uf({[e]:o.value}).catch(()=>{})};return{width:o,min:n,max:r,set:e=>{o.value=a(e)},commit:s,reset:()=>{o.value=t,s()},syncValue:e=>{typeof e==`number`&&Number.isFinite(e)&&(o.value=a(e),localStorage.setItem(i,String(o.value)))}}}var aO=iO(`keyColumnWidth`,272,180,560),oO=iO(`detailPanelWidth`,420,320,720);async function sO(e){try{let t=e??await lf();aO.syncValue(t.keyColumnWidth),oO.syncValue(t.detailPanelWidth)}catch{}}var cO={class:`flex min-h-0 flex-1 flex-col`},lO={class:`flex shrink-0 flex-wrap items-center gap-2 border-b px-4 py-2`},uO={class:`relative`},dO={key:0,class:`rounded bg-primary px-1.5 text-xs text-primary-foreground`},fO=[`aria-label`],pO={class:`ml-auto flex items-center gap-2`},mO={class:`mr-1 text-xs text-muted-foreground tabular-nums`},hO={key:2},gO={key:3},_O={key:4},vO={key:0,class:`flex shrink-0 flex-wrap items-center gap-1.5 border-b px-4 py-1.5`},yO=[`aria-label`,`onClick`],bO=[`aria-label`,`onClick`],xO=[`aria-label`,`onClick`],SO={class:`flex flex-col gap-2 px-4 py-2 empty:hidden`},CO={key:1,class:`sticky top-0 z-20 flex h-11 shrink-0 items-center gap-2 border-b bg-background pl-[18px] pr-4`},wO=[`aria-checked`,`aria-label`],TO={class:`text-sm font-medium tabular-nums`},EO={class:`text-sm text-muted-foreground`},DO={key:1,for:`select-all-checkbox`,class:`cursor-pointer select-none text-sm text-muted-foreground`},OO={class:`relative min-w-0 flex-1 overflow-hidden`},kO={key:0,class:`flex h-full items-center justify-center gap-2 p-8 text-sm text-muted-foreground`},AO={key:1,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},jO=[`data-index`],MO=`glotfile:enabledChecks`,NO=F({__name:`EditorView`,setup(e){let t=aO.width,n=oO.width,r=un(null),{filter:i,sort:a,view:o,locale:s}=wp(Np()),c=M(i),l=KC();function u(){try{let e=localStorage.getItem(MO);if(e){let t=JSON.parse(e);return pp.filter(e=>t.includes(e))}}catch{}return[...mp]}let d=M(u()),f=M(new Map),p=M(null),m=M(!1),h=M(0);async function g(){try{let e=await sf();m.value=e.indexed,p.value=e.indexed?new Set(e.used):null}catch{m.value=!1,p.value=null}h.value++}let _=M(!1),v=0;async function y(){if(d.value.length===0){f.value=new Map,_.value=!1;return}try{let e=await Mf(d.value);f.value=bp(e.issues),_.value=e.spellPending,e.spellPending&&v<6?(v++,setTimeout(y,800)):v=0}catch{f.value=new Map}}Er(d,e=>{localStorage.setItem(MO,JSON.stringify(e)),v=0,y()},{deep:!0});let b=M(a),x=M(o),S=M(s),C=null;Er([b,x,S,()=>({...c.value,text:void 0})],()=>{Pp(Tp({filter:c.value,sort:b.value,view:x.value,locale:S.value}))},{deep:!0}),Er(()=>c.value.text,()=>{C&&clearTimeout(C),C=setTimeout(()=>{Pp(Tp({filter:c.value,sort:b.value,view:x.value,locale:S.value}))},300)});let w=q(()=>c.value.states.length+c.value.issues.length+c.value.plurality.length+ +!!c.value.emptySource+ +!!c.value.aiContextUnreviewed+ +!!c.value.noUsages+ +!!c.value.skipTranslate),T=q(()=>{let e=0;for(let t of f.value.values())e+=t.length;return e});function E(e){c.value.states=c.value.states.filter(t=>t!==e)}function D(e){c.value.issues=c.value.issues.filter(t=>t!==e)}function ee(e){c.value.plurality=c.value.plurality.filter(t=>t!==e)}if(Eh.value){let e=Eh.value;if(c.value={text:``,states:[],issues:[],plurality:[],tag:``,needsAttention:!1,emptySource:!1,aiContextUnreviewed:!1,noUsages:!1,skipTranslate:!1,...e},e.issues?.length){let t=new Set([...d.value,...e.issues]);d.value=pp.filter(e=>t.has(e))}e.locale&&(x.value=`bilingual`,S.value=e.locale),Eh.value=null}let te=M(null),ne=M(null),O=M(null);Oh.value&&=(te.value=Oh.value,null);let re=M(!1),ie=M(!1),ae=M(!1),oe=M(!1),k=M(!1),se=M(null),ce=M(null),le=M(!0),ue=M(!1);async function de(){r.value=await jd(),y()}Th(de);let fe=setTimeout(()=>{le.value&&(ue.value=!0)},250);de().finally(()=>{le.value=!1,ue.value=!1,clearTimeout(fe)});let pe=q(()=>r.value?.config.sourceLocale??``),he=q(()=>r.value?.config.locales??[]),ge=q(()=>he.value.filter(e=>e!==pe.value));Er(ge,e=>{!S.value&&e.length>0&&(S.value=e[0])},{immediate:!0});let _e=q(()=>{if(x.value===`bilingual`)return S.value?[pe.value,S.value]:[pe.value];let e=he.value.filter(e=>e!==pe.value);return[pe.value,...e]}),ve=q(()=>{let e=r.value;if(!e)return[];let t=x.value===`bilingual`&&S.value?S.value:void 0;return fp(e,{...c.value,locale:t},f.value,p.value??void 0)}),ye=q(()=>{let e=r.value,t=ve.value;if(b.value===`key-desc`)return[...t].reverse();if(b.value===`created`){let n=t=>{let n=e?.keys[t]?.createdAt;return n?Date.parse(n):0};return[...t].sort((e,t)=>n(t)-n(e))}if(b.value===`updated`){let n=t=>{let n=Object.values(e?.keys[t]?.values??{}),r=0;for(let e of n){let t=e.updatedAt?Date.parse(e.updatedAt):0;t>r&&(r=t)}return r};return[...t].sort((e,t)=>n(t)-n(e))}return t}),be=q(()=>x.value===`bilingual`?S.value?[S.value]:[]:ge.value),xe=q(()=>x.value===`bilingual`?S.value||`—`:`all ${ge.value.length} targets`),Se=q(()=>l.keys()),Ce=q(()=>l.count.value),we=q(()=>l.allSelected(ye.value)),Te=q(()=>l.someSelected(ye.value)),Ee=q(()=>{let e=r.value;if(!e)return[];let t=new Set;for(let n of l.keys())for(let r of e.keys[n]?.tags??[])t.add(r);return[...t].sort()});function De(){l.allSelected(ye.value)?l.clear():l.selectAll(ye.value)}function Oe(e,t){t?l.toggleRange(e,ye.value):l.toggle(e)}Er(ye,e=>l.pruneTo(e));let ke=q(()=>r.value&&te.value?r.value.keys[te.value]??null:null),Ae=cp(q(()=>({count:ye.value.length,getScrollElement:()=>ce.value,estimateSize:()=>56,overscan:8,getItemKey:e=>ye.value[e]??e}))),je=q(()=>Ae.value.getVirtualItems()),Me=q(()=>Ae.value.getTotalSize());function Ne(e){te.value=e}let Pe=M(null);function Fe(){let e=Pe.value?.$el;e?.focus?.(),e?.select?.()}function Ie(e){let t=e.target,n=!!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable)),r=!!document.querySelector(`[role="listbox"],[role="menu"],[role="dialog"]`);if(e.key===`/`&&!n&&!r&&!e.metaKey&&!e.ctrlKey&&!e.altKey){e.preventDefault(),Fe();return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||n||r)return;let i=ye.value;if(i.length===0)return;e.preventDefault();let a=te.value?i.indexOf(te.value):-1,o=Math.max(0,Math.min(i.length-1,e.key===`ArrowDown`?a+1:a-1)),s=i[o];s&&(te.value=s,Ae.value.scrollToIndex(o,{align:`auto`}))}Gi(()=>window.addEventListener(`keydown`,Ie)),Yi(()=>{window.removeEventListener(`keydown`,Ie),C&&clearTimeout(C)}),Gi(async()=>{try{let e=await af();e.indexed&&!se.value&&!k.value&&(se.value=`${e.files.toLocaleString()} files · ${e.refs.toLocaleString()} refs`)}catch{}g()});async function Le(e,t){te.value===e&&(te.value=t),await de()}async function Re(e){await de(),te.value=e,c.value.text=`"${e}"`}async function ze(){k.value=!0,se.value=null;try{let e=await rf();se.value=`${e.files.toLocaleString()} files · ${e.refs.toLocaleString()} refs`,await g()}catch{se.value=`Scan failed`}finally{k.value=!1}}return(e,i)=>(z(),V(N(XS),{"delay-duration":400},{default:P(()=>[H(`div`,cO,[H(`div`,lO,[H(`div`,uO,[U(N(pd),{class:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`}),U(N(sC),{ref_key:`searchInput`,ref:Pe,modelValue:c.value.text,"onUpdate:modelValue":i[0]||=e=>c.value.text=e,placeholder:`Search keys, values, context…`,class:`h-8 w-64 pl-8 pr-8`,onKeydown:i[1]||=Xl(e=>c.value.text=``,[`esc`])},null,8,[`modelValue`]),c.value.text?(z(),B(`button`,{key:0,type:`button`,class:`absolute right-1.5 top-1/2 grid size-5 -translate-y-1/2 place-items-center rounded text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,"aria-label":`Clear search`,onClick:i[2]||=e=>c.value.text=``},[U(N(kd),{class:`size-3.5`})])):G(``,!0)]),U(N(Ux),null,{default:P(()=>[U(N(Yx),{"as-child":``},{default:P(()=>[U(N($),{variant:`outline`,size:`sm`,class:`h-8 gap-1.5`},{default:P(()=>[U(N(Qu),{class:`size-4 opacity-60`}),i[31]||=W(` Filter `,-1),w.value?(z(),B(`span`,dO,j(w.value),1)):G(``,!0)]),_:1})]),_:1}),U(N(mC),{align:`start`,class:`w-64`},{default:P(()=>[U(jC,{states:c.value.states,"onUpdate:states":i[3]||=e=>c.value.states=e,issues:c.value.issues,"onUpdate:issues":i[4]||=e=>c.value.issues=e,enabled:d.value,"onUpdate:enabled":i[5]||=e=>d.value=e,plurality:c.value.plurality,"onUpdate:plurality":i[6]||=e=>c.value.plurality=e,"empty-source":c.value.emptySource,"onUpdate:emptySource":i[7]||=e=>c.value.emptySource=e,"ai-context-unreviewed":c.value.aiContextUnreviewed,"onUpdate:aiContextUnreviewed":i[8]||=e=>c.value.aiContextUnreviewed=e,"no-usages":c.value.noUsages,"onUpdate:noUsages":i[9]||=e=>c.value.noUsages=e,"skip-translate":c.value.skipTranslate,"onUpdate:skipTranslate":i[10]||=e=>c.value.skipTranslate=e,"scan-indexed":m.value},null,8,[`states`,`issues`,`enabled`,`plurality`,`empty-source`,`ai-context-unreviewed`,`no-usages`,`skip-translate`,`scan-indexed`])]),_:1})]),_:1}),U(N($),{variant:c.value.needsAttention?`default`:`outline`,size:`sm`,class:`h-8 gap-1.5`,role:`switch`,"aria-checked":c.value.needsAttention,onClick:i[11]||=e=>c.value.needsAttention=!c.value.needsAttention},{default:P(()=>[U(N(Td),{class:A([`size-4`,c.value.needsAttention?``:`opacity-60`])},null,8,[`class`]),i[32]||=W(` Needs attention `,-1),T.value?(z(),B(`span`,{key:0,class:`ml-0.5 rounded-full bg-destructive-soft px-1.5 text-[11px] font-bold text-destructive tabular-nums`,"aria-label":`${T.value} issue${T.value===1?``:`s`}`},j(T.value.toLocaleString()),9,fO)):G(``,!0)]),_:1},8,[`variant`,`aria-checked`]),U(N(mS),{modelValue:b.value,"onUpdate:modelValue":i[12]||=e=>b.value=e},{default:P(()=>[U(N(cC),{class:`h-8 w-[160px]`},{default:P(()=>[U(N(FS),{placeholder:`Sort`})]),_:1}),U(N(lC),null,{default:P(()=>[U(N(dC),{value:`key-asc`},{default:P(()=>[...i[33]||=[W(`Key A→Z`,-1)]]),_:1}),U(N(dC),{value:`key-desc`},{default:P(()=>[...i[34]||=[W(`Key Z→A`,-1)]]),_:1}),U(N(dC),{value:`created`},{default:P(()=>[...i[35]||=[W(`Recently created`,-1)]]),_:1}),U(N(dC),{value:`updated`},{default:P(()=>[...i[36]||=[W(`Recently updated`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`]),U(N(US),{modelValue:x.value,"onUpdate:modelValue":i[13]||=e=>x.value=e},{default:P(()=>[U(N(fC),{class:`h-8`},{default:P(()=>[U(N(pC),{value:`bilingual`,class:`text-xs`},{default:P(()=>[...i[37]||=[W(`Bilingual`,-1)]]),_:1}),U(N(pC),{value:`multilingual`,class:`text-xs`},{default:P(()=>[...i[38]||=[W(`Multilingual`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`]),x.value===`bilingual`?(z(),V(eO,{key:0,modelValue:S.value,"onUpdate:modelValue":i[14]||=e=>S.value=e,locales:ge.value,class:`h-8 w-[170px]`},null,8,[`modelValue`,`locales`])):G(``,!0),H(`div`,pO,[H(`span`,mO,j(ye.value.length.toLocaleString())+` keys`,1),U(N($),{size:`sm`,variant:`outline`,onClick:i[15]||=e=>ie.value=!0},{default:P(()=>[U(N(Hu),{class:`size-4`}),i[39]||=W(` Export `,-1)]),_:1}),U(N($),{size:`sm`,variant:`outline`,disabled:k.value,onClick:ze},{default:P(()=>[k.value?(z(),V(N($u),{key:0,class:`size-4 animate-spin`})):(z(),V(N(dd),{key:1,class:`size-4`})),k.value?(z(),B(`span`,hO,`Scanning…`)):se.value?(z(),B(`span`,gO,j(se.value),1)):(z(),B(`span`,_O,`Scan`))]),_:1},8,[`disabled`]),U(N($),{size:`sm`,onClick:i[16]||=e=>re.value=!0},{default:P(()=>[U(N(od),{class:`size-4`}),i[40]||=W(` Add key `,-1)]),_:1})])]),c.value.states.length||c.value.issues.length||c.value.plurality.length||c.value.emptySource||c.value.aiContextUnreviewed||c.value.noUsages||c.value.skipTranslate?(z(),B(`div`,vO,[(z(!0),B(R,null,I(c.value.states,e=>(z(),V(N(hC),{key:`s-${e}`,variant:`secondary`,class:`gap-1`},{default:P(()=>[W(j(N(vp)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(vp)[e]} filter`,onClick:t=>E(e)},[U(N(kd),{class:`size-3`})],8,yO)]),_:2},1024))),128)),(z(!0),B(R,null,I(c.value.plurality,e=>(z(),V(N(hC),{key:`p-${e}`,variant:`secondary`,class:`gap-1`},{default:P(()=>[W(j(N(yp)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(yp)[e]} filter`,onClick:t=>ee(e)},[U(N(kd),{class:`size-3`})],8,bO)]),_:2},1024))),128)),c.value.emptySource?(z(),V(N(hC),{key:0,variant:`secondary`,class:`gap-1`},{default:P(()=>[i[41]||=W(` Empty source `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove Empty source filter`,onClick:i[17]||=e=>c.value.emptySource=!1},[U(N(kd),{class:`size-3`})])]),_:1})):G(``,!0),(z(!0),B(R,null,I(c.value.issues,e=>(z(),V(N(hC),{key:`i-${e}`,variant:`outline`,class:`gap-1`},{default:P(()=>[W(j(N(_p)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(_p)[e]} filter`,onClick:t=>D(e)},[U(N(kd),{class:`size-3`})],8,xO)]),_:2},1024))),128)),c.value.aiContextUnreviewed?(z(),V(N(hC),{key:1,variant:`secondary`,class:`gap-1`},{default:P(()=>[U(N(vd),{class:`size-3`}),i[42]||=W(` AI context (unreviewed) `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove AI context filter`,onClick:i[18]||=e=>c.value.aiContextUnreviewed=!1},[U(N(kd),{class:`size-3`})])]),_:1})):G(``,!0),c.value.noUsages?(z(),V(N(hC),{key:2,variant:`secondary`,class:`gap-1`},{default:P(()=>[i[43]||=W(` Unused `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove Unused filter`,onClick:i[19]||=e=>c.value.noUsages=!1},[U(N(kd),{class:`size-3`})])]),_:1})):G(``,!0),c.value.skipTranslate?(z(),V(N(hC),{key:3,variant:`secondary`,class:`gap-1`},{default:P(()=>[i[44]||=W(` Skip-translate `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove Skip-translate filter`,onClick:i[20]||=e=>c.value.skipTranslate=!1},[U(N(kd),{class:`size-3`})])]),_:1})):G(``,!0)])):G(``,!0),H(`div`,SO,[U(JD,{ref_key:`translateBanner`,ref:ne,onChanged:de},null,512),U(JD,{ref_key:`contextBanner`,ref:O,kind:`context`,onChanged:de},null,512)]),ye.value.length?(z(),B(`div`,CO,[H(`button`,{id:`select-all-checkbox`,type:`button`,role:`checkbox`,"aria-checked":we.value?`true`:Te.value?`mixed`:`false`,"data-testid":`select-all`,class:A([`flex size-4 items-center justify-center rounded border transition-colors`,we.value||Te.value?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`]),"aria-label":we.value?`Deselect all`:`Select all`,onClick:De},[we.value?(z(),V(N(Du),{key:0,class:`size-3`})):Te.value?(z(),V(N(td),{key:1,class:`size-3`})):G(``,!0)],10,wO),Ce.value?(z(),B(R,{key:0},[H(`span`,TO,j(Ce.value.toLocaleString())+` selected`,1),H(`span`,EO,`· `+j(xe.value),1)],64)):(z(),B(`label`,DO,`Select all`)),Ce.value?(z(),V(GC,{key:2,class:`ml-auto`,keys:Se.value,locales:be.value,"scope-label":xe.value,"tags-on-selection":Ee.value,onChanged:de,onClear:i[21]||=e=>N(l).clear(),onTranslate:i[22]||=e=>ae.value=!0,onBuildContext:i[23]||=e=>oe.value=!0},null,8,[`keys`,`locales`,`scope-label`,`tags-on-selection`])):G(``,!0)])):G(``,!0),H(`div`,{class:`flex min-h-0 flex-1 overflow-hidden`,style:me({"--key-col-width":`${N(t)}px`})},[H(`div`,OO,[H(`div`,{ref_key:`parent`,ref:ce,class:`h-full overflow-auto`},[ue.value?(z(),B(`div`,kO,[U(N($u),{class:`size-4 animate-spin`}),i[45]||=W(` Loading… `,-1)])):!le.value&&ye.value.length===0?(z(),B(`div`,AO,` No keys match the current filter. `)):(z(),B(`div`,{key:2,style:me({height:`${Me.value}px`,position:`relative`,width:`100%`})},[(z(!0),B(R,null,I(je.value,e=>(z(),B(`div`,{key:e.key,ref_for:!0,ref:e=>N(Ae).measureElement(e),"data-index":e.index,style:me({position:`absolute`,top:`${e.start}px`,left:`0`,width:`100%`})},[r.value&&ye.value[e.index]?(z(),V(yT,{key:0,"key-name":ye.value[e.index],entry:r.value.keys[ye.value[e.index]],"source-locale":pe.value,locales:_e.value,selected:te.value===ye.value[e.index],issues:f.value.get(ye.value[e.index])??[],checked:N(l).has(ye.value[e.index]),onSelect:t=>Ne(ye.value[e.index]),onChanged:de,onRenamed:t=>Le(ye.value[e.index],t),onFilterTag:i[24]||=e=>c.value.text=e,onToggleSelect:t=>Oe(ye.value[e.index],t.shift)},null,8,[`key-name`,`entry`,`source-locale`,`locales`,`selected`,`issues`,`checked`,`onSelect`,`onRenamed`,`onToggleSelect`])):G(``,!0)],12,jO))),128))],4))],512),ye.value.length?(z(),B(`div`,{key:0,class:`absolute inset-y-0`,style:me({left:`${N(t)}px`})},[U(rO,{side:`right`,class:`h-full`,width:N(t),min:N(aO).min,max:N(aO).max,"onUpdate:width":N(aO).set,onCommit:N(aO).commit,onReset:N(aO).reset},null,8,[`width`,`min`,`max`,`onUpdate:width`,`onCommit`,`onReset`])],4)):G(``,!0)]),U(rO,{side:`left`,class:`max-[1080px]:hidden`,width:N(n),min:N(oO).min,max:N(oO).max,"onUpdate:width":N(oO).set,onCommit:N(oO).commit,onReset:N(oO).reset},null,8,[`width`,`min`,`max`,`onUpdate:width`,`onCommit`,`onReset`]),U(qE,{"key-name":te.value,entry:ke.value,issues:te.value?f.value.get(te.value)??[]:[],locales:he.value,"source-locale":pe.value,"usage-revision":h.value,style:me({width:`${N(n)}px`}),onChanged:de},null,8,[`key-name`,`entry`,`issues`,`locales`,`source-locale`,`usage-revision`,`style`])],4),U(tD,{open:re.value,"onUpdate:open":i[25]||=e=>re.value=e,onCreated:Re},null,8,[`open`]),U(mD,{open:ie.value,"onUpdate:open":i[26]||=e=>ie.value=e,"export-locales":r.value?.config.exportLocales??[]},null,8,[`open`,`export-locales`]),U(PD,{open:ae.value,"onUpdate:open":i[27]||=e=>ae.value=e,state:r.value,"filtered-keys":Se.value,"target-locale":x.value===`bilingual`?S.value:void 0,onChanged:de,onBatchSubmitted:i[28]||=e=>ne.value?.refresh()},null,8,[`open`,`state`,`filtered-keys`,`target-locale`]),U(WD,{open:oe.value,"onUpdate:open":i[29]||=e=>oe.value=e,state:r.value,keys:Se.value,onChanged:de,onBatchSubmitted:i[30]||=e=>O.value?.refresh()},null,8,[`open`,`state`,`keys`])])]),_:1}))}}),PO={"empty-source":`Empty source`,"empty-translation":`Untranslated`,"placeholder-mismatch":`Placeholder mismatch`,"icu-mismatch":`ICU mismatch`,"glossary-violation":`Glossary`,"max-length":`Too long`,"identical-to-source":`Identical to source`,whitespace:`Whitespace`,spelling:`Spelling`,"output-stale":`Outputs out of date`},FO={"empty-translation":`untranslated`,"placeholder-mismatch":`placeholder`,"glossary-violation":`glossary`,"max-length":`length`,spelling:`spelling`};function IO(e){if(e.ruleId===`empty-translation`)return{text:e.key,states:[`missing`]};if(e.ruleId===`output-stale`)return{};let t=FO[e.ruleId],n=e.locale?{locale:e.locale}:{};return t?{...n,issues:[t]}:{...n,text:e.key}}function LO(e,t){let n=e.values[t];return n?e.plural?(n.forms?.other??``).trim()!==``:(n.value??``).trim()!==``:!1}function RO(e,t){if(!LO(e,t))return`missing`;let n=e.values[t].state;return n===`reviewed`?`reviewed`:n===`needs-review`?`needsReview`:`machine`}function zO(e,t){let n=e.values[t];return n?e.plural?n.forms?.other??``:n.value??``:``}function BO(e){let t=e.trim();return t===``?0:t.split(/\s+/).length}function VO(e,t){return`${e} ${t}${e===1?``:`s`}`}function HO(e,t){let{sourceLocale:n,locales:r}=e.config,i=r.filter(e=>e!==n),a=Object.keys(e.keys).filter(t=>!e.keys[t].skipTranslate),o=t.findings.filter(e=>e.locale===``),s=o.filter(e=>e.severity===`error`).length,c=new Map;for(let e of t.findings){if(e.locale===``)continue;let t=c.get(e.locale);t?t.push(e):c.set(e.locale,[e])}let l=i.map(t=>{let n={reviewed:0,needsReview:0,machine:0,missing:0},r=[];for(let i of a){let a=RO(e.keys[i],t);n[a]++,a===`needsReview`&&r.push(i)}let i=c.get(t)??[],o=[...new Set(i.filter(e=>e.ruleId===`empty-translation`).map(e=>e.key))],s=i.filter(e=>e.severity===`error`&&e.ruleId!==`empty-translation`),l=i.filter(e=>e.severity===`warn`),u=a.length,d=n.reviewed+n.needsReview+n.machine,f;f=o.length>0||s.length>0?`blocked`:r.length>0?`almost`:`ready`;let p=[];o.length&&p.push(`${o.length} missing`),s.length&&p.push(`${s.length} breaking`),r.length&&p.push(`${r.length} stale`);let m=[];return l.length&&m.push(VO(l.length,`warning`)),{locale:t,total:u,translated:d,pct:u?Math.round(d/u*100):0,counts:n,missingKeys:o,staleKeys:r,errors:s,warnings:l,breaking:s.length,warning:l.length,verdict:f,blockers:p,notes:m}}),u=a.length*i.length,d=0,f=0;for(let e of l)d+=e.translated,f+=e.counts.reviewed;let p=a.reduce((t,r)=>t+BO(zO(e.keys[r],n)),0),m={breaking:[],warning:[]};for(let e of t.findings)e.ruleId!==`empty-translation`&&m[e.severity===`error`?`breaking`:`warning`].push(e);return{totals:{keys:Object.keys(e.keys).length,locales:i.length,translatedPct:u?Math.round(d/u*1e3)/10:0,reviewedPct:u?Math.round(f/u*1e3)/10:0,sourceWords:p,openIssues:m.breaking.length+m.warning.length,ready:l.filter(e=>e.verdict===`ready`).length,almost:l.filter(e=>e.verdict===`almost`).length,blocked:l.filter(e=>e.verdict===`blocked`).length,breaking:m.breaking.length,missing:l.reduce((e,t)=>e+t.missingKeys.length,0),stale:l.reduce((e,t)=>e+t.staleKeys.length,0)},project:o,projectErrors:s,locales:l,risk:m,worklist:UO(l,m)}}function UO(e,t){let n=[];for(let e of t.breaking)n.push({id:`b:${e.locale}:${e.key}:${e.ruleId}`,priority:`breaking`,title:`Fix ${PO[e.ruleId].toLowerCase()}`,where:e.locale?`${e.locale.toUpperCase()} · ${e.key}`:e.key,detail:e.message,filter:e.ruleId===`output-stale`?void 0:IO(e),count:1});let r=new Map;for(let t of e)for(let e of t.missingKeys){let n=r.get(e);n?n.push(t.locale):r.set(e,[t.locale])}for(let[e,t]of r)n.push({id:`m:${e}`,priority:`missing`,title:`Translate ${VO(t.length,`missing string`)}`,where:e,detail:`Missing in ${t.map(e=>e.toUpperCase()).join(`, `)}`,filter:{text:e,states:[`missing`]},count:t.length});let i=[];for(let t of e)for(let e of t.staleKeys)i.push({locale:t.locale,key:e});i.length&&n.push({id:`s:all`,priority:`stale`,title:`Refresh ${VO(i.length,`stale translation`)}`,where:`source changed since translated`,detail:i.map(e=>`${e.locale.toUpperCase()} · ${e.key}`).join(` · `),filter:{states:[`needs-review`]},count:i.length});let a=new Map;for(let e of t.warning){let t=a.get(e.ruleId);t?t.push(e):a.set(e.ruleId,[e])}for(let[e,t]of a)n.push({id:`w:${e}`,priority:`warning`,title:`Review ${VO(t.length,`${PO[e].toLowerCase()} warning`)}`,where:[...new Set(t.map(e=>e.locale.toUpperCase()||e.key))].join(`, `),detail:t.map(e=>`${e.locale?e.locale.toUpperCase():`—`} · ${e.key}`).join(` · `),filter:IO(t[0]),count:t.length});return n}var WO={class:`min-h-0 flex-1 overflow-y-auto p-6`},GO={key:0,class:`mt-8 text-center text-sm text-muted-foreground`},KO={key:1,class:`mt-8 text-center text-sm text-muted-foreground`},qO={key:2,class:`mx-auto flex max-w-[1080px] flex-col gap-4`},JO={class:`flex flex-wrap divide-x rounded-xl border bg-card px-2 py-3 shadow-sm`},YO={class:`flex flex-col px-5`},XO={class:`text-lg font-semibold tabular-nums`},ZO={class:`flex flex-col px-5`},QO={class:`text-lg font-semibold tabular-nums`},$O={class:`flex flex-col px-5`},ek={class:`text-lg font-semibold tabular-nums`},tk={class:`flex flex-col px-5`},nk={class:`text-lg font-semibold tabular-nums`},rk=[`disabled`],ik={class:`flex flex-col px-5`},ak={class:`text-lg font-semibold tabular-nums`},ok={class:`flex flex-wrap items-start justify-between gap-6`},sk={class:`min-w-0`},ck={class:`mt-1.5 flex items-center gap-2.5 text-2xl font-semibold tracking-tight`},lk={class:`mt-1.5 text-sm text-muted-foreground`},uk={class:`text-emerald-600 dark:text-emerald-400`},dk={class:`text-amber-600 dark:text-amber-400`},fk={class:`text-red-600 dark:text-red-400`},pk={key:0,class:`mt-2 flex flex-col gap-1`},mk={class:`font-semibold`},hk={class:`font-mono text-muted-foreground`},gk={class:`text-muted-foreground`},_k={class:`flex gap-2`},vk={class:`text-[11px] uppercase tracking-wide text-muted-foreground`},yk={class:`mt-4 flex flex-wrap items-center gap-x-4 gap-y-2 border-t pt-3.5`},bk={class:`flex items-center gap-1 text-xs text-muted-foreground`},xk={class:`flex items-center gap-1 text-xs text-muted-foreground`},Sk={class:`flex items-center gap-1 text-xs text-muted-foreground`},Ck={class:`flex items-center gap-1 text-xs text-muted-foreground`},wk={class:`rounded-2xl border bg-card p-5 shadow-sm`},Tk={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},Ek={key:1,class:`grid grid-cols-[repeat(auto-fill,minmax(218px,1fr))] gap-3`},Dk=[`data-test`,`onClick`],Ok={class:`flex items-start justify-between gap-2`},kk={class:`flex min-w-0 flex-col`},Ak={class:`truncate font-mono text-xs font-semibold uppercase`},jk=[`title`],Mk={class:`text-2xl font-semibold tabular-nums leading-none`},Nk={class:`flex h-[7px] w-full overflow-hidden rounded-full bg-muted`},Pk={class:`flex min-h-[20px] items-center gap-1.5 text-xs text-muted-foreground`},Fk={class:`truncate`},Ik={class:`rounded-2xl border bg-card p-5 shadow-sm`},Lk={class:`mb-4`},Rk={class:`mt-0.5 text-sm text-muted-foreground`},zk={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},Bk={key:1,class:`flex flex-col gap-2`},Vk=[`disabled`,`onClick`],Hk={class:`flex min-w-0 flex-col gap-0.5`},Uk={class:`flex items-center gap-2 text-sm font-semibold`},Wk={class:`truncate font-mono text-xs text-muted-foreground`},Gk={key:0,class:`grid grid-cols-1 gap-4 lg:grid-cols-2`},Kk={class:`rounded-2xl border bg-card p-5 shadow-sm`},qk={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},Jk={key:1,class:`flex flex-col gap-2.5`},Yk=[`disabled`,`onClick`],Xk={class:`flex flex-1 flex-col`},Zk={class:`text-sm font-semibold`},Qk={class:`text-xs text-muted-foreground`},$k={key:0,class:`border-t`},eA={class:`flex items-center justify-between gap-2 border-b bg-muted/40 px-3.5 py-1.5`},tA={class:`text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`},nA=[`disabled`,`title`,`onClick`],rA=[`onClick`,`onKeydown`],iA=[`title`],aA={class:`truncate font-medium`},oA={class:`font-mono text-muted-foreground`},sA={class:`truncate text-muted-foreground`},cA={class:`flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100`},lA=[`disabled`,`title`,`onClick`],uA=[`disabled`,`onClick`],dA={key:2,class:`mt-3 overflow-hidden rounded-xl border`},fA={key:0,class:`border-t`},pA={class:`font-mono font-semibold uppercase`},mA={class:`truncate`},hA={class:`font-mono`},gA={class:`truncate`},_A=[`disabled`,`onClick`],vA={class:`rounded-2xl border bg-card p-5 shadow-sm`},yA=[`onClick`],bA={class:`flex min-w-0 items-center gap-2`},xA={class:`flex min-w-0 flex-col`},SA={class:`whitespace-nowrap font-mono uppercase leading-tight`},CA=[`title`],wA={class:`text-center font-mono tabular-nums`},TA={key:1,class:`rounded-2xl border bg-card p-5 shadow-sm`},EA={class:`flex items-center gap-3 rounded-xl bg-muted p-4`},DA=F({__name:`AnalyticsView`,setup(e){let t=M(null),n=M({findings:[],counts:{error:0,warn:0,suppressed:0},ok:!0}),r=M(!0),i=q(()=>({...n.value,findings:n.value.findings.filter(e=>!e.suppressed)})),a=q(()=>n.value.findings.filter(e=>e.suppressed)),o=q(()=>t.value?HO(t.value,i.value):null),s=q(()=>!!o.value&&(o.value.totals.keys===0||o.value.totals.locales===0)),c=q(()=>!!o.value&&o.value.totals.translatedPct===0);async function l(){let[e,r]=await Promise.all([jd(),Nf({includeSuppressed:!0}).catch(()=>null)]);t.value=e,r&&(n.value=r)}Th(l),Gi(async()=>{try{await l()}catch(e){Q.error(e.message)}finally{r.value=!1}});let u=M(!1),d=M(!1);function f(e){return e.ruleId===`spelling`?/"([^"]+)"/.exec(e.message)?.[1]:void 0}async function p(e,t){if(!d.value){d.value=!0;try{await t(),await l(),Q.success(e)}catch(e){Q.error(e.message)}finally{d.value=!1}}}let m=e=>p(`Dismissed until the source of ${e.key} changes`,()=>Pf(e.key,e.ruleId,e.locale)),h=e=>p(`Restored ${PO[e.ruleId].toLowerCase()} on ${e.key}`,()=>Ff(e.key,e.ruleId,e.locale)),g=(e,t)=>p(`Dismissed ${t} warning${t===1?``:`s`}`,()=>If({rules:[e]})),_=e=>{let t=f(e);t&&p(`Added "${t}" to the dictionary`,()=>_f(t))};function v(e){let t=new Map;for(let n of o.value.risk[e]){let e=t.get(n.ruleId);e?e.push(n):t.set(n.ruleId,[n])}return[...t.entries()].map(([e,t])=>({ruleId:e,findings:t}))}let y={ready:{label:`Ready`,icon:ju,text:`text-emerald-600 dark:text-emerald-400`,border:`border-l-emerald-500`,bar:`bg-emerald-500`,soft:`bg-emerald-500/10`},almost:{label:`Almost`,icon:Pu,text:`text-amber-600 dark:text-amber-400`,border:`border-l-amber-500`,bar:`bg-amber-500`,soft:`bg-amber-500/10`},blocked:{label:`Blocked`,icon:id,text:`text-red-600 dark:text-red-400`,border:`border-l-red-500`,bar:`bg-red-500`,soft:`bg-red-500/10`},none:{label:`Not started`,icon:gd,text:`text-muted-foreground`,border:`border-l-border`,bar:`bg-muted-foreground/40`,soft:`bg-muted`}},b={breaking:{label:`Breaking`,icon:id,text:`text-red-600 dark:text-red-400`,border:`border-l-red-500`,soft:`bg-red-500/10`},missing:{label:`Missing`,icon:Nu,text:`text-muted-foreground`,border:`border-l-muted-foreground/40`,soft:`bg-muted`},stale:{label:`Stale`,icon:Pu,text:`text-amber-600 dark:text-amber-400`,border:`border-l-amber-500`,soft:`bg-amber-500/10`},warning:{label:`Warning`,icon:Td,text:`text-amber-600 dark:text-amber-400`,border:`border-l-amber-500`,soft:`bg-amber-500/10`}},x=[{key:`breaking`,label:`Breaking`,blurb:"Lint errors — `glotfile check` fails on these. Ship-blocking.",text:`text-red-600 dark:text-red-400`,bar:`bg-red-500`},{key:`warning`,label:`Warning`,blurb:`Lint warnings — worth a look, won't block a release.`,text:`text-amber-600 dark:text-amber-400`,bar:`bg-amber-500`}],S=q(()=>{let e=o.value;return c.value?`none`:e.projectErrors>0?`blocked`:e.totals.ready===e.totals.locales&&e.totals.locales>0?`ready`:`blocked`}),C=q(()=>S.value===`none`?`Nothing to ship yet`:S.value===`ready`?`Ready to ship`:`Not ready to ship`);function w(e){return e.verdict===`ready`?e.notes.length?e.notes.join(` · `):`Clean — clears the gate`:e.blockers.join(` · `)}function T(e){return e.missingKeys.length?{locale:e.locale,states:[`missing`]}:e.errors.length?{locale:e.locale,...IO(e.errors[0])}:e.staleKeys.length?{locale:e.locale,states:[`needs-review`]}:{locale:e.locale}}function E(e){return aw(e).name}function D(e,t){return(t?e/t*100:0)+`%`}function ee(e){let t=[...new Set(o.value.risk[e].flatMap(e=>IO(e).issues??[]))];return t.length?{issues:t}:{needsAttention:!0}}return(e,t)=>(z(),B(`div`,WO,[r.value?(z(),B(`div`,GO,`Loading analytics…`)):s.value?(z(),B(`div`,KO,` No keys yet — add keys in the Editor to see analytics. `)):o.value?(z(),B(`div`,qO,[H(`section`,JO,[H(`div`,YO,[H(`span`,XO,j(o.value.totals.keys),1),t[2]||=H(`span`,{class:`text-xs text-muted-foreground`},`keys`,-1)]),H(`div`,ZO,[H(`span`,QO,j(o.value.totals.locales),1),t[3]||=H(`span`,{class:`text-xs text-muted-foreground`},`locales`,-1)]),H(`div`,$O,[H(`span`,ek,j(o.value.totals.translatedPct)+`%`,1),t[4]||=H(`span`,{class:`text-xs text-muted-foreground`},`translated`,-1)]),H(`div`,tk,[H(`span`,nk,j(o.value.totals.reviewedPct)+`%`,1),t[5]||=H(`span`,{class:`text-xs text-muted-foreground`},`reviewed`,-1)]),H(`button`,{type:`button`,class:`group flex flex-col px-5 text-left`,"data-test":`open-issues`,disabled:!o.value.totals.openIssues,onClick:t[0]||=e=>N(Dh)({needsAttention:!0})},[H(`span`,{class:A([`text-lg font-semibold tabular-nums`,o.value.totals.breaking?`text-red-600 dark:text-red-400`:``])},j(o.value.totals.openIssues),3),t[6]||=H(`span`,{class:`text-xs text-muted-foreground group-hover:text-foreground`},`open issues`,-1)],8,rk),H(`div`,ik,[H(`span`,ak,j(o.value.totals.sourceWords),1),t[7]||=H(`span`,{class:`text-xs text-muted-foreground`},`source words`,-1)])]),H(`section`,{class:A([`rounded-2xl border border-l-4 bg-card p-6 shadow-sm`,y[S.value].border])},[H(`div`,ok,[H(`div`,sk,[t[12]||=H(`div`,{class:`font-mono text-[11px] uppercase tracking-wider text-muted-foreground`},`Can I ship?`,-1),H(`h1`,ck,[(z(),V(ia(y[S.value].icon),{class:A([`size-6`,y[S.value].text])},null,8,[`class`])),W(` `+j(C.value),1)]),H(`p`,lk,[c.value?(z(),B(R,{key:0},[W(`Add translations to get started — run a sync to let the AI fill them in.`)],64)):(z(),B(R,{key:1},[H(`strong`,uk,j(o.value.totals.ready),1),W(` of `+j(o.value.totals.locales)+` locales ready`,1),o.value.totals.almost?(z(),B(R,{key:0},[t[8]||=W(` · `,-1),H(`strong`,dk,j(o.value.totals.almost),1),t[9]||=W(` need a refresh`,-1)],64)):G(``,!0),o.value.totals.blocked?(z(),B(R,{key:1},[t[10]||=W(` · `,-1),H(`strong`,fk,j(o.value.totals.blocked),1),t[11]||=W(` blocked`,-1)],64)):G(``,!0)],64))]),o.value.project.length?(z(),B(`ul`,pk,[(z(!0),B(R,null,I(o.value.project,e=>(z(),B(`li`,{key:`${e.ruleId}:${e.key}`,class:A([`flex items-center gap-1.5 text-xs`,e.severity===`error`?`text-red-600 dark:text-red-400`:`text-amber-600 dark:text-amber-400`])},[e.severity===`error`?(z(),V(N(id),{key:0,class:`size-3 shrink-0`})):(z(),V(N(Td),{key:1,class:`size-3 shrink-0`})),H(`span`,mk,j(N(PO)[e.ruleId]),1),H(`span`,hk,j(e.key),1),H(`span`,gk,j(e.message),1)],2))),128))])):G(``,!0)]),H(`div`,_k,[(z(!0),B(R,null,I([{n:o.value.totals.ready,label:`ready`,cls:`text-emerald-600 dark:text-emerald-400`},{n:o.value.totals.almost,label:`almost`,cls:`text-amber-600 dark:text-amber-400`},{n:o.value.totals.blocked,label:`blocked`,cls:`text-red-600 dark:text-red-400`}],e=>(z(),B(`div`,{key:e.label,class:`flex min-w-[66px] flex-col items-center rounded-xl border px-4 py-2`},[H(`span`,{class:A([`text-2xl font-semibold tabular-nums`,e.n?e.cls:`text-muted-foreground/50`])},j(e.n),3),H(`span`,vk,j(e.label),1)]))),128))])]),H(`div`,yk,[t[17]||=H(`span`,{class:`font-mono text-[10px] uppercase tracking-wider text-muted-foreground`},`Release gate`,-1),H(`span`,bk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[13]||=W(` 100% translated`,-1)]),H(`span`,xk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[14]||=W(` 0 lint errors`,-1)]),H(`span`,Sk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[15]||=W(` outputs exported`,-1)]),H(`span`,Ck,[U(N(Du),{class:`size-3 text-emerald-500`}),t[16]||=W(` nothing stale`,-1)]),t[18]||=H(`span`,{class:`ml-auto text-[11px] italic text-muted-foreground`},[W(`same rules as `),H(`code`,{class:`font-mono not-italic`},`glotfile check`),W(` · skip via `),H(`code`,{class:`font-mono not-italic`},`config.lint.rules`)],-1)])],2),H(`section`,wk,[t[21]||=H(`header`,{class:`mb-4`},[H(`h2`,{class:`text-base font-semibold`},`Release readiness`),H(`p`,{class:`mt-0.5 text-sm text-muted-foreground`},`Per-locale status against the release gate. Click any locale to drill in.`)],-1),c.value?(z(),B(`div`,Tk,[U(N(Wu),{class:`size-5 text-muted-foreground`}),t[19]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`No locale is ready yet.`),H(`span`,{class:`text-sm text-muted-foreground`},`Translate your strings, then locales appear here as they clear the gate.`)],-1)])):(z(),B(`div`,Ek,[(z(!0),B(R,null,I(o.value.locales,e=>(z(),B(`button`,{key:e.locale,type:`button`,"data-test":`rcard-${e.locale}`,class:A([`flex flex-col gap-2 rounded-xl border border-l-[3px] p-3.5 text-left transition hover:-translate-y-0.5 hover:bg-muted/50`,y[e.verdict].border]),onClick:t=>N(Dh)(T(e))},[H(`div`,Ok,[H(`span`,kk,[H(`span`,Ak,j(e.locale),1),H(`span`,{class:`truncate text-[11px] text-muted-foreground`,title:E(e.locale)},j(E(e.locale)),9,jk)]),H(`span`,{class:A([`flex items-center gap-1 text-[11px] font-semibold`,y[e.verdict].text])},[(z(),V(ia(y[e.verdict].icon),{class:`size-3`})),W(j(y[e.verdict].label),1)],2)]),H(`div`,Mk,[W(j(e.pct),1),t[20]||=H(`span`,{class:`ml-0.5 text-xs text-muted-foreground`},`%`,-1)]),H(`div`,Nk,[H(`span`,{class:`h-full bg-emerald-500`,style:me({width:D(e.counts.reviewed,e.total)})},null,4),H(`span`,{class:`h-full bg-amber-500`,style:me({width:D(e.counts.needsReview,e.total)})},null,4),H(`span`,{class:`h-full bg-sky-500`,style:me({width:D(e.counts.machine,e.total)})},null,4)]),H(`div`,Pk,[e.verdict===`ready`?G(``,!0):(z(),V(ia(y[e.verdict].icon),{key:0,class:A([`size-3 shrink-0`,y[e.verdict].text])},null,8,[`class`])),H(`span`,Fk,j(w(e)),1)])],10,Dk))),128))]))]),H(`section`,Ik,[H(`header`,Lk,[t[22]||=H(`h2`,{class:`text-base font-semibold`},`Needs attention`,-1),H(`p`,Rk,j(c.value?`Your prioritized worklist will fill in as the AI translates.`:`Prioritized — fix the top item first. Each opens the matching strings.`),1)]),o.value.worklist.length?(z(),B(`ol`,Bk,[(z(!0),B(R,null,I(o.value.worklist,(e,t)=>(z(),B(`li`,{key:e.id},[H(`button`,{type:`button`,class:A([`grid w-full grid-cols-[30px_1fr_auto_16px] items-center gap-3 rounded-xl border border-l-[3px] px-3.5 py-3 text-left transition enabled:hover:bg-muted/50`,[b[e.priority].border,t===0?b[e.priority].soft:``]]),disabled:!e.filter,onClick:t=>e.filter&&N(Dh)(e.filter)},[H(`span`,{class:A([`flex size-[30px] items-center justify-center rounded-lg`,[b[e.priority].soft,b[e.priority].text]])},[(z(),V(ia(b[e.priority].icon),{class:`size-4`}))],2),H(`span`,Hk,[H(`span`,Uk,[W(j(e.title)+` `,1),t===0?(z(),B(`span`,{key:0,class:A([`rounded-full px-2 py-0.5 font-mono text-[9.5px] font-semibold uppercase tracking-wide text-white`,b[e.priority].text.includes(`red`)?`bg-red-500`:b[e.priority].text.includes(`amber`)?`bg-amber-500`:`bg-muted-foreground`])},`Start here`,2)):G(``,!0)]),H(`span`,Wk,j(e.where),1)]),H(`span`,{class:A([`rounded-full px-2.5 py-1 text-[11px] font-semibold`,[b[e.priority].soft,b[e.priority].text]])},j(b[e.priority].label),3),U(N(ku),{class:`size-4 text-muted-foreground`})],10,Vk)]))),128))])):(z(),B(`div`,zk,[U(N(ju),{class:`size-5 text-emerald-500`}),t[23]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`Nothing needs attention.`),H(`span`,{class:`text-sm text-muted-foreground`},`Every translated string clears its checks and is up to date.`)],-1)]))]),c.value?(z(),B(`section`,TA,[t[32]||=H(`h2`,{class:`mb-4 text-base font-semibold`},`Quality`,-1),H(`div`,EA,[U(N(Mu),{class:`size-5 text-muted-foreground`}),t[31]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`No checks run yet.`),H(`span`,{class:`text-sm text-muted-foreground`},`Quality checks appear once strings are translated.`)],-1)])])):(z(),B(`div`,Gk,[H(`section`,Kk,[t[29]||=H(`header`,{class:`mb-4`},[H(`h2`,{class:`text-base font-semibold`},`Quality`),H(`p`,{class:`mt-0.5 text-sm text-muted-foreground`},`Grouped by risk — a broken placeholder is not a typo.`)],-1),o.value.totals.openIssues?(z(),B(`div`,Jk,[(z(),B(R,null,I(x,e=>H(`div`,{key:e.key,class:`overflow-hidden rounded-xl border`},[H(`button`,{type:`button`,class:`flex w-full items-center gap-3 px-3.5 py-3 text-left enabled:hover:bg-muted/50`,disabled:!o.value.risk[e.key].length,onClick:t=>N(Dh)(ee(e.key))},[H(`span`,{class:A([`w-1 self-stretch rounded-full`,e.bar])},null,2),H(`span`,{class:A([`min-w-[22px] text-xl font-semibold tabular-nums`,e.text])},j(o.value.risk[e.key].length),3),H(`span`,Xk,[H(`span`,Zk,j(e.label),1),H(`span`,Qk,j(e.blurb),1)]),o.value.risk[e.key].length?(z(),V(N(ku),{key:0,class:`size-4 text-muted-foreground`})):G(``,!0)],8,Yk),o.value.risk[e.key].length?(z(),B(`div`,$k,[(z(!0),B(R,null,I(v(e.key),n=>(z(),B(R,{key:n.ruleId},[H(`div`,eA,[H(`span`,tA,j(N(PO)[n.ruleId])+` · `+j(n.findings.length),1),e.key===`warning`?(z(),B(`button`,{key:0,type:`button`,class:`flex items-center gap-1 rounded px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,disabled:d.value,title:`Hide all ${n.findings.length} until each key's source changes`,onClick:e=>g(n.ruleId,n.findings.length)},[U(N(Su),{class:`size-3`}),t[25]||=W(` Dismiss all `,-1)],8,nA)):G(``,!0)]),(z(!0),B(R,null,I(n.findings,(e,n)=>(z(),B(`div`,{key:n,role:`button`,tabindex:`0`,class:`group grid w-full cursor-pointer grid-cols-[42px_minmax(90px,1fr)_1.4fr_auto] items-center gap-2.5 border-b px-3.5 py-2.5 text-left text-xs last:border-b-0 hover:bg-muted/50`,onClick:t=>N(Dh)(N(IO)(e)),onKeydown:Xl(t=>N(Dh)(N(IO)(e)),[`enter`])},[H(`span`,{class:`font-mono font-semibold uppercase text-muted-foreground`,title:e.locale?E(e.locale):`project-wide`},j(e.locale||`—`),9,iA),H(`span`,aA,[H(`span`,oA,j(e.key),1)]),H(`span`,sA,j(e.message),1),H(`span`,cA,[f(e)?(z(),B(`button`,{key:0,type:`button`,class:`flex items-center gap-1 rounded border bg-background px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,disabled:d.value,title:`Never flag "${f(e)}" again`,onClick:Jl(t=>_(e),[`stop`])},[U(N(wu),{class:`size-3`}),t[26]||=W(` Add word `,-1)],8,lA)):G(``,!0),e.severity===`warn`?(z(),B(`button`,{key:1,type:`button`,class:`flex items-center gap-1 rounded border bg-background px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,disabled:d.value,title:`Hide until this key's source changes`,onClick:Jl(t=>m(e),[`stop`])},[U(N(Su),{class:`size-3`}),t[27]||=W(` Dismiss `,-1)],8,uA)):G(``,!0)])],40,rA))),128))],64))),128))])):G(``,!0)])),64))])):(z(),B(`div`,qk,[U(N(ju),{class:`size-5 text-emerald-500`}),t[24]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`No issues found.`),H(`span`,{class:`text-sm text-muted-foreground`},`All translated strings pass their checks.`)],-1)])),a.value.length?(z(),B(`div`,dA,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3.5 py-2.5 text-left text-xs text-muted-foreground hover:bg-muted/50`,onClick:t[1]||=e=>u.value=!u.value},[(z(),V(ia(u.value?N(Ou):N(ku)),{class:`size-3.5`})),U(N(Su),{class:`size-3.5`}),W(` Suppressed (`+j(a.value.length)+`) — hidden until each key's source changes `,1)]),u.value?(z(),B(`div`,fA,[(z(!0),B(R,null,I(a.value,(e,n)=>(z(),B(`div`,{key:n,class:`grid w-full grid-cols-[42px_minmax(90px,1fr)_1.4fr_auto] items-center gap-2.5 border-b px-3.5 py-2.5 text-left text-xs text-muted-foreground last:border-b-0`},[H(`span`,pA,j(e.locale||`—`),1),H(`span`,mA,[W(j(N(PO)[e.ruleId])+` · `,1),H(`span`,hA,j(e.key),1)]),H(`span`,gA,j(e.message),1),H(`button`,{type:`button`,class:`flex items-center gap-1 rounded border bg-background px-1.5 py-0.5 text-[11px] transition-colors hover:bg-accent hover:text-foreground`,disabled:d.value,onClick:t=>h(e)},[U(N(cd),{class:`size-3`}),t[28]||=W(` Restore `,-1)],8,_A)]))),128))])):G(``,!0)])):G(``,!0)]),H(`section`,vA,[t[30]||=_s(`<header class="mb-4"><h2 class="text-base font-semibold">By locale</h2><p class="mt-0.5 text-sm text-muted-foreground">Full breakdown.</p></header><div class="grid grid-cols-[minmax(96px,1.4fr)_52px_64px_50px_72px_72px_16px] gap-2 border-b pb-2 font-mono text-[11px] uppercase tracking-wide text-muted-foreground"><span>Locale</span><span class="text-center">Done</span><span class="text-center">Missing</span><span class="text-center">Stale</span><span class="text-center">Breaking</span><span class="text-center">Warnings</span><span></span></div>`,2),(z(!0),B(R,null,I(o.value.locales,e=>(z(),B(`button`,{key:e.locale,type:`button`,class:`grid w-full grid-cols-[minmax(96px,1.4fr)_52px_64px_50px_72px_72px_16px] items-center gap-2 border-b py-2.5 text-left text-sm last:border-b-0 hover:bg-muted/50`,onClick:t=>N(Dh)(T(e))},[H(`span`,bA,[H(`span`,{class:A([`size-2 shrink-0 rounded-full`,y[e.verdict].bar])},null,2),H(`span`,xA,[H(`span`,SA,j(e.locale),1),H(`span`,{class:`truncate text-xs leading-tight text-muted-foreground`,title:E(e.locale)},j(E(e.locale)),9,CA)])]),H(`span`,wA,j(e.pct)+`%`,1),H(`span`,{class:A([`text-center font-mono tabular-nums`,e.missingKeys.length?``:`text-muted-foreground`])},j(e.missingKeys.length||`—`),3),H(`span`,{class:A([`text-center font-mono tabular-nums`,e.staleKeys.length?`text-amber-600 dark:text-amber-400`:`text-muted-foreground`])},j(e.staleKeys.length||`—`),3),H(`span`,{class:A([`text-center font-mono tabular-nums`,e.breaking?`text-red-600 dark:text-red-400`:`text-muted-foreground`])},j(e.breaking||`—`),3),H(`span`,{class:A([`text-center font-mono tabular-nums`,e.warning?`text-amber-600 dark:text-amber-400`:`text-muted-foreground`])},j(e.warning||`—`),3),U(N(ku),{class:`size-3.5 text-muted-foreground`})],8,yA))),128))])]))])):G(``,!0)]))}});function OA(e,t){let n=t.trim().toLowerCase();return n===``?e:e.filter(e=>e.term.toLowerCase().includes(n)||(e.notes??``).toLowerCase().includes(n)?!0:Object.entries(e.translations??{}).some(([e,t])=>e.toLowerCase().includes(n)||t.toLowerCase().includes(n)))}var kA={class:`grid gap-4`},AA={class:`grid gap-1.5`},jA={key:0,class:`text-xs text-muted-foreground`},MA={class:`flex items-center justify-between`},NA={class:`flex items-center justify-between`},PA={class:`grid gap-1.5`},FA={key:0,class:`grid gap-2 border-t pt-3`},IA={key:1,class:`text-sm text-destructive`},LA=F({__name:`GlossaryEntryDialog`,props:Oa({entry:{},targetLocales:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:Oa([`saved`],[`update:open`]),setup(e,{emit:t}){let n=e,r=Xa(e,`open`),i=t,a=Yt({term:``,doNotTranslate:!1,caseSensitive:!1,notes:``,translations:{}}),o=M(!1),s=M(``),c=M(!1);Er(r,e=>{if(!e)return;let t=n.entry;c.value=t!==null,a.term=t?.term??``,a.doNotTranslate=t?.doNotTranslate??!1,a.caseSensitive=t?.caseSensitive??!1,a.notes=t?.notes??``,a.translations={};for(let e of n.targetLocales)a.translations[e]=t?.translations?.[e]??``;s.value=``},{immediate:!0});async function l(){let e=a.term.trim();if(!e){s.value=`Term is required.`;return}let t={};for(let[e,n]of Object.entries(a.translations)){let r=n.trim();r&&(t[e]=r)}let n={term:e};a.doNotTranslate&&(n.doNotTranslate=!0),a.caseSensitive&&(n.caseSensitive=!0),a.notes.trim()&&(n.notes=a.notes.trim()),Object.keys(t).length>0&&(n.translations=t),o.value=!0,s.value=``;try{await yf(n),Q.success(c.value?`Updated ${e}`:`Added ${e}`),r.value=!1,i(`saved`)}catch(e){s.value=e.message}finally{o.value=!1}}return(t,n)=>(z(),V(N(C_),{open:r.value,"onUpdate:open":n[5]||=e=>r.value=e},{default:P(()=>[U(N(NC),{class:`max-h-[85vh] max-w-lg overflow-y-auto`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[W(j(c.value?`Edit term`:`Add term`),1)]),_:1}),U(N(LC),null,{default:P(()=>[...n[6]||=[W(` Guide AI translations with do-not-translate terms and forced translations. `,-1)]]),_:1})]),_:1}),H(`div`,kA,[H(`div`,AA,[U(N(MC),{for:`glossary-term`},{default:P(()=>[...n[7]||=[W(`Term`,-1)]]),_:1}),U(N(sC),{id:`glossary-term`,modelValue:a.term,"onUpdate:modelValue":n[0]||=e=>a.term=e,class:`font-mono`,placeholder:`Sign in`,disabled:c.value,onKeydown:Xl(Jl(l,[`prevent`]),[`enter`])},null,8,[`modelValue`,`disabled`,`onKeydown`]),c.value?(z(),B(`p`,jA,` The term is the entry's identity and can't be changed. `)):G(``,!0)]),H(`div`,MA,[H(`div`,null,[U(N(MC),{for:`glossary-dnt`},{default:P(()=>[...n[8]||=[W(`Do not translate`,-1)]]),_:1}),n[9]||=H(`p`,{class:`text-xs text-muted-foreground`},`Keep this term verbatim in every language.`,-1)]),U(N(_C),{id:`glossary-dnt`,modelValue:a.doNotTranslate,"onUpdate:modelValue":n[1]||=e=>a.doNotTranslate=e},null,8,[`modelValue`])]),H(`div`,NA,[H(`div`,null,[U(N(MC),{for:`glossary-cs`},{default:P(()=>[...n[10]||=[W(`Case sensitive`,-1)]]),_:1}),n[11]||=H(`p`,{class:`text-xs text-muted-foreground`},`Only match the exact casing.`,-1)]),U(N(_C),{id:`glossary-cs`,modelValue:a.caseSensitive,"onUpdate:modelValue":n[2]||=e=>a.caseSensitive=e},null,8,[`modelValue`])]),H(`div`,PA,[U(N(MC),{for:`glossary-notes`},{default:P(()=>[...n[12]||=[W(`Notes`,-1)]]),_:1}),U(N(fw),{id:`glossary-notes`,modelValue:a.notes,"onUpdate:modelValue":n[3]||=e=>a.notes=e,rows:`5`,class:`min-h-24 resize-y`,placeholder:`Optional guidance for translators.`},null,8,[`modelValue`])]),e.targetLocales.length>0?(z(),B(`div`,FA,[n[13]||=H(`p`,{class:`text-sm font-medium`},`Forced translations`,-1),(z(!0),B(R,null,I(e.targetLocales,e=>(z(),B(`div`,{key:e,class:`grid gap-1.5`},[U(N(MC),{for:`glossary-tr-${e}`,class:`text-xs text-muted-foreground`},{default:P(()=>[U(zw,{code:e,"show-name":``,"show-code":!1,size:12},null,8,[`code`])]),_:2},1032,[`for`]),U(N(sC),{id:`glossary-tr-${e}`,modelValue:a.translations[e],"onUpdate:modelValue":t=>a.translations[e]=t,placeholder:`Forced translation for ${e}`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`placeholder`])]))),128))])):G(``,!0),s.value?(z(),B(`p`,IA,j(s.value),1)):G(``,!0)]),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:o.value,onClick:n[4]||=e=>r.value=!1},{default:P(()=>[...n[14]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:o.value,onClick:l},{default:P(()=>[W(j(c.value?`Save`:`Add term`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),RA={class:`min-h-0 flex-1 overflow-y-auto`},zA={key:0,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},BA={key:1,class:`mx-auto flex max-w-3xl flex-col gap-4 p-6`},VA={class:`flex items-center justify-between`},HA={class:`relative`},UA={key:0,class:`rounded-lg border border-dashed p-10 text-center text-sm text-muted-foreground`},WA={key:1,class:`rounded-lg border border-dashed p-10 text-center text-sm text-muted-foreground`},GA={key:2,class:`flex flex-col gap-2`},KA={class:`min-w-0 flex-1`},qA={class:`flex flex-wrap items-center gap-2`},JA={class:`font-mono text-sm font-medium`},YA={key:0,class:`mt-1 text-sm text-muted-foreground`},XA={key:1,class:`mt-2 flex flex-wrap gap-1.5`},ZA={class:`flex shrink-0 items-center gap-1`},QA={class:`font-mono`},$A=F({__name:`GlossaryView`,setup(e){let t=M([]),n=M(``),r=M([]),i=M(!1),a=M(!1),o=M(null),s=M(null),c=M(!1),l=M(``),u=q(()=>OA(t.value,l.value)),d=q(()=>r.value.filter(e=>e!==n.value));async function f(){let[e,a]=await Promise.all([vf(),jd()]);t.value=e,n.value=a.config.sourceLocale,r.value=a.config.locales,i.value=!0}f(),Th(f);function p(){o.value=null,a.value=!0}function m(e){o.value=e,a.value=!0}function h(e){return Object.entries(e.translations??{}).map(([e,t])=>`${e}: ${t}`)}async function g(){let e=s.value;if(e){c.value=!0;try{await bf(e.term),Q.success(`Deleted ${e.term}`),s.value=null,await f()}catch(e){Q.error(`Delete failed: ${e.message}`)}finally{c.value=!1}}}return(e,n)=>(z(),B(`div`,RA,[i.value?(z(),B(`div`,BA,[H(`div`,VA,[n[7]||=H(`div`,null,[H(`h2`,{class:`text-base font-semibold`},`Glossary`),H(`p`,{class:`text-sm text-muted-foreground`},`Do-not-translate terms and forced translations.`)],-1),U(N($),{onClick:p},{default:P(()=>[U(N(od),{class:`size-4`}),n[6]||=W(` Add term `,-1)]),_:1})]),H(`div`,HA,[U(N(pd),{class:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`}),U(N(sC),{modelValue:l.value,"onUpdate:modelValue":n[0]||=e=>l.value=e,placeholder:`Search terms, notes, translations…`,class:`h-8 w-full pl-8 pr-8`,onKeydown:n[1]||=Xl(e=>l.value=``,[`esc`])},null,8,[`modelValue`]),l.value?(z(),B(`button`,{key:0,class:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,"aria-label":`Clear search`,onClick:n[2]||=e=>l.value=``},[U(N(kd),{class:`size-4`})])):G(``,!0)]),t.value.length===0?(z(),B(`div`,UA,` No glossary terms yet — add do-not-translate terms and forced translations to guide AI. `)):u.value.length===0?(z(),B(`div`,WA,` No terms match your search. `)):(z(),B(`ul`,GA,[(z(!0),B(R,null,I(u.value,e=>(z(),B(`li`,{key:e.term,class:`flex items-start gap-3 rounded-lg border bg-card p-3 text-card-foreground shadow-sm`},[H(`div`,KA,[H(`div`,qA,[H(`span`,JA,j(e.term),1),e.doNotTranslate?(z(),V(N(hC),{key:0,variant:`secondary`},{default:P(()=>[...n[8]||=[W(`Do-not-translate`,-1)]]),_:1})):G(``,!0),e.caseSensitive?(z(),V(N(hC),{key:1,variant:`outline`},{default:P(()=>[...n[9]||=[W(`Case-sensitive`,-1)]]),_:1})):G(``,!0)]),e.notes?(z(),B(`p`,YA,j(e.notes),1)):G(``,!0),h(e).length?(z(),B(`div`,XA,[(z(!0),B(R,null,I(h(e),e=>(z(),B(`span`,{key:e,class:`inline-flex items-center rounded-md border bg-background px-2 py-0.5 font-mono text-xs`},j(e),1))),128))])):G(``,!0)]),H(`div`,ZA,[U(N($),{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.term}`,onClick:t=>m(e)},{default:P(()=>[U(N(ad),{class:`size-4`})]),_:1},8,[`aria-label`,`onClick`]),U(N($),{variant:`ghost`,size:`icon`,class:`text-muted-foreground hover:text-destructive`,"aria-label":`Delete ${e.term}`,onClick:t=>s.value=e},{default:P(()=>[U(N(wd),{class:`size-4`})]),_:1},8,[`aria-label`,`onClick`])])]))),128))]))])):(z(),B(`div`,zA,` Loading glossary… `)),U(LA,{open:a.value,"onUpdate:open":n[3]||=e=>a.value=e,entry:o.value,"target-locales":d.value,onSaved:f},null,8,[`open`,`entry`,`target-locales`]),U(N(C_),{open:s.value!==null,"onUpdate:open":n[5]||=e=>{e||(s.value=null)}},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[10]||=[W(`Delete term`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[n[11]||=W(` Delete `,-1),H(`span`,QA,j(s.value?.term),1),n[12]||=W(` from the glossary? This cannot be undone. `,-1)]),_:1})]),_:1}),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:c.value,onClick:n[4]||=e=>s.value=null},{default:P(()=>[...n[13]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:c.value,onClick:g},{default:P(()=>[...n[14]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}}),ej=[{id:`empty-source`,label:`Empty source`,description:`The source text itself is empty.`,default:`error`},{id:`empty-translation`,label:`Untranslated`,description:`A target translation is missing or blank.`,default:`error`},{id:`placeholder-mismatch`,label:`Placeholder mismatch`,description:`Placeholders differ between source and translation.`,default:`error`},{id:`icu-mismatch`,label:`ICU mismatch`,description:`ICU plural/select structure differs from the source.`,default:`error`},{id:`glossary-violation`,label:`Glossary`,description:`A glossary term is missing or translated incorrectly.`,default:`error`},{id:`max-length`,label:`Too long`,description:`The translation exceeds the key's maximum length.`,default:`warn`},{id:`identical-to-source`,label:`Identical to source`,description:`The translation is exactly the source text.`,default:`warn`},{id:`whitespace`,label:`Whitespace`,description:`Leading/trailing whitespace differs from the source.`,default:`warn`},{id:`spelling`,label:`Spelling`,description:`A word isn't in the locale's dictionary, the glossary, or your custom dictionary.`,default:`warn`}],tj=Object.fromEntries(ej.map(e=>[e.id,e.default]));function nj(e,t){if(typeof e==`string`&&e.trim()===``)return t;let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)?n:t}function rj(e){return{sourceLocale:e.sourceLocale,locales:[...e.locales],outputs:e.outputs.map(e=>({adapter:e.adapter,path:e.path,emptyAs:e.emptyAs,style:e.style===`flat`?`flat`:`nested`,indent:e.indent??null,finalNewline:e.finalNewline??null,includeLocale:e.includeLocale??!0,skipSourceLocale:e.skipSourceLocale??!1,localeAliases:e.localeAliases?structuredClone(e.localeAliases):{},localeCase:e.localeCase,localeMap:e.localeMap?structuredClone(e.localeMap):{}})),indent:e.format.indent,sortKeys:e.format.sortKeys,finalNewline:e.format.finalNewline,autoExport:e.autoExport??!0,exportLocales:[...e.exportLocales??[]],customWords:[...e.spelling?.customWords??[]],lintRules:{...tj,...e.lint?.rules},lintIgnore:[...e.lint?.ignore??[]],scanAccessors:[...e.scan?.accessors??[]],scanPatterns:[...e.scan?.patterns??[]],scanInclude:[...e.scan?.include??[]],scanExclude:[...e.scan?.exclude??[]],scanKeep:[...e.scan?.keep??[]]}}function ij(e,t){let n=e.outputs.map(e=>{let t={adapter:e.adapter.trim(),path:e.path.trim()};if(e.style===`flat`&&(t.style=`flat`),e.emptyAs&&(t.emptyAs=e.emptyAs),e.indent!=null&&(t.indent=e.indent),e.finalNewline!=null&&(t.finalNewline=e.finalNewline),e.includeLocale||(t.includeLocale=!1),e.skipSourceLocale&&(t.skipSourceLocale=!0),e.localeAliases&&Object.keys(e.localeAliases).length&&(t.localeAliases=Object.fromEntries(Object.entries(e.localeAliases).filter(([,e])=>e.length>0)),Object.keys(t.localeAliases).length===0&&delete t.localeAliases),e.localeCase&&(t.localeCase=e.localeCase),e.localeMap){let n=Object.fromEntries(Object.entries(e.localeMap).filter(([,e])=>e.trim()!==``));Object.keys(n).length&&(t.localeMap=n)}return t}).filter(e=>e.adapter||e.path),r={};e.scanAccessors.length&&(r.accessors=[...e.scanAccessors]),e.scanPatterns.length&&(r.patterns=[...e.scanPatterns]),e.scanInclude.length&&(r.include=[...e.scanInclude]),e.scanExclude.length&&(r.exclude=[...e.scanExclude]),e.scanKeep.length&&(r.keep=[...e.scanKeep]);let i={sourceLocale:e.sourceLocale,locales:[...e.locales],outputs:n,format:{indent:nj(e.indent,2),sortKeys:e.sortKeys,finalNewline:e.finalNewline},autoExport:e.autoExport,...e.exportLocales.length?{exportLocales:[...e.exportLocales]}:{},spelling:{customWords:[...e.customWords]},...Object.keys(r).length?{scan:r}:{}},a=Object.fromEntries(Object.entries(e.lintRules).filter(([e,t])=>tj[e]!==void 0&&t!==tj[e])),o={};return Object.keys(a).length&&(o.rules=a),e.lintIgnore.length&&(o.ignore=[...e.lintIgnore]),t?.lint?.spelling!==void 0&&(o.spelling=t.lint.spelling),Object.keys(o).length&&(i.lint=o),t?.storage!==void 0&&(i.storage=t.storage),i}var aj=M(0),oj={class:`flex items-center gap-2 p-2`},sj=[`aria-label`],cj={class:`!flex items-center gap-2`},lj={class:`truncate font-medium`},uj={class:`flex items-center gap-2`},dj={key:0,class:`grid gap-5 border-t border-border p-4`},fj={key:0,class:`grid gap-1.5`},pj={class:`mt-1 inline-flex w-fit rounded-md border border-input p-0.5`},mj=[`onClick`],hj={key:1,class:`grid gap-1.5`},gj={class:`mt-1 inline-flex w-fit rounded-md border border-input p-0.5`},_j=[`onClick`],vj={key:2,class:`grid gap-1.5`},yj={class:`flex items-center gap-2`},bj={key:0,class:`text-xs text-muted-foreground`},xj={class:`flex items-center gap-2`},Sj={key:3,class:`grid gap-1.5`},Cj={class:`flex items-center gap-2`},wj={key:0,class:`text-xs text-muted-foreground`},Tj={class:`flex items-center gap-2`},Ej={class:`text-xs text-muted-foreground`},Dj={key:4,class:`grid gap-1.5`},Oj={class:`flex items-center gap-2`},kj={class:`text-xs text-muted-foreground`},Aj={class:`grid gap-1.5`},jj={class:`flex w-full items-center justify-between gap-4`},Mj={class:`font-mono text-xs text-muted-foreground`},Nj={class:`grid gap-1.5`},Pj={class:`mt-1 grid gap-2`},Fj={key:0,class:`text-xs text-muted-foreground`},Ij={class:`w-24 shrink-0 font-mono text-xs font-semibold`},Lj={key:1},Rj={class:`!flex items-center gap-1.5`},zj={class:`border-t border-border pt-4`},Bj={class:`mt-2 grid gap-2`},Vj={key:0,class:`text-xs text-muted-foreground`},Hj={class:`flex h-8 shrink-0 items-center gap-1.5`},Uj={class:`font-mono text-xs font-semibold`},Wj={class:`flex flex-1 flex-wrap items-center gap-1.5`},Gj=[`onClick`],Kj={key:1},qj={class:`!flex items-center gap-1.5`},Jj=F({__name:`OutputEditor`,props:{output:{},formatIndent:{},formatFinalNewline:{type:Boolean},locales:{},adapters:{}},emits:[`update:output`,`remove`],setup(e,{emit:t}){let n=e,r=t,i=M(!1),a=M({}),o={"laravel-php":[`emptyAs`,`indent`,`finalNewline`],"vue-i18n-json":[`emptyAs`,`style`,`indent`,`finalNewline`],"flutter-arb":[`emptyAs`,`indent`,`finalNewline`,`includeLocale`],"angular-xliff":[`emptyAs`],"rails-yaml":[`emptyAs`,`indent`,`finalNewline`],"apple-strings":[`emptyAs`]};function s(e){return o[e]??[`emptyAs`,`indent`,`finalNewline`]}function c(e){return s(n.output.adapter).includes(e)}let l=[{value:`source`,label:`Fill source`},{value:`empty`,label:`Leave empty`},{value:`omit`,label:`Omit`}],u=[{value:`lower-hyphen`,label:`lower-hyphen`,example:`en-us`},{value:`lower-underscore`,label:`lower-underscore`,example:`en_us`},{value:`bcp47-hyphen`,label:`bcp47-hyphen`,example:`en-US`},{value:`bcp47-underscore`,label:`bcp47-underscore`,example:`en_US`}];function d(e){return e===`flutter-arb`?`Default (Flutter: en_US)`:e===`angular-xliff`?`Default (Angular: en-US)`:e===`rails-yaml`?`Default (Rails: en-US)`:e===`apple-strings`?`Default (Apple: en-US)`:`Default (en-us)`}let f=q(()=>n.output.localeCase??`default`);function p(e){y({localeCase:e==="default"?void 0:e})}let m={"laravel-php":`Laravel PHP`,"vue-i18n-json":`Vue i18n JSON`,"flutter-arb":`Flutter ARB`,"angular-xliff":`Angular XLIFF`,"rails-yaml":`Rails YAML`,"apple-strings":`Apple .strings`};function h(e){return m[e]??e}let g=q(()=>[...n.adapters].sort((e,t)=>h(e).localeCompare(h(t)))),_={"laravel-php":Vu,"vue-i18n-json":Bu,"flutter-arb":_d,"angular-xliff":Vu,"rails-yaml":Vu,"apple-strings":_d};function v(e){return _[e]??Uu}function y(e){r(`update:output`,{...n.output,...e})}function b(e){return e===`flutter-arb`?`omit`:`source`}function x(e){y({adapter:e,emptyAs:b(e),style:e===`vue-i18n-json`?`nested`:n.output.style,includeLocale:!0})}let S=q(()=>n.output.emptyAs??b(n.output.adapter)),C=q(()=>n.output.finalNewline??n.formatFinalNewline),w=q(()=>n.output.indent!=null),T=q(()=>n.output.finalNewline!=null),E=q(()=>n.output.localeAliases??{}),D=q(()=>Object.keys(E.value)),ee=q(()=>n.locales.filter(e=>!D.value.includes(e)));function te(e){y({localeAliases:e})}function ne(e){te({...E.value,[e]:[]})}function O(e){let t={...E.value};delete t[e],te(t)}function re(e){let t=(a.value[e]??``).trim();if(!t)return;let n=E.value[e]??[];n.includes(t)||(te({...E.value,[e]:[...n,t]}),a.value={...a.value,[e]:``})}function ie(e,t){te({...E.value,[e]:(E.value[e]??[]).filter(e=>e!==t)})}let ae=q(()=>n.output.localeMap??{}),oe=q(()=>Object.keys(ae.value)),k=q(()=>n.locales.filter(e=>!oe.value.includes(e)));function se(e){y({localeMap:e})}function ce(e){se({...ae.value,[e]:e})}function le(e){let t={...ae.value};delete t[e],se(t)}function ue(e,t){se({...ae.value,[e]:t})}return(t,n)=>(z(),B(`div`,{class:A([`rounded-lg border`,i.value?`border-input`:`border-border`])},[H(`div`,oj,[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`grid size-7 shrink-0 place-items-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground`,"aria-label":i.value?`Collapse`:`Expand options`,onClick:n[0]||=e=>i.value=!i.value},[U(N(ku),{class:A([`size-4 transition-transform`,i.value?`rotate-90`:``])},null,8,[`class`])],8,sj)]),_:1}),U(N(qC),null,{default:P(()=>[W(j(i.value?`Collapse`:`Expand options`),1)]),_:1})]),_:1}),U(N(mS),{"model-value":e.output.adapter,"onUpdate:modelValue":x},{default:P(()=>[U(N(cC),{class:`w-44 shrink-0`},{default:P(()=>[H(`span`,cj,[(z(),V(ia(v(e.output.adapter)),{class:`size-3.5 shrink-0 text-primary`})),H(`span`,lj,j(h(e.output.adapter)),1)])]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(g.value,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[H(`span`,uj,[(z(),V(ia(v(e)),{class:`size-3.5 text-primary`})),W(` `+j(h(e)),1)])]),_:2},1032,[`value`]))),128)),e.output.adapter&&!e.adapters.includes(e.output.adapter)?(z(),V(N(dC),{key:0,value:e.output.adapter},{default:P(()=>[W(j(e.output.adapter),1)]),_:1},8,[`value`])):G(``,!0)]),_:1})]),_:1},8,[`model-value`]),U(N(sC),{"model-value":e.output.path,class:`flex-1 font-mono text-sm`,placeholder:`lib/l10n/app_{locale}.arb`,spellcheck:`false`,"aria-label":`Output path`,"onUpdate:modelValue":n[1]||=e=>y({path:String(e)})},null,8,[`model-value`]),U(N($),{variant:`ghost`,size:`icon`,class:`shrink-0 text-muted-foreground hover:text-destructive`,"aria-label":`Remove output`,onClick:n[2]||=e=>r(`remove`)},{default:P(()=>[U(N(wd),{class:`size-4`})]),_:1})]),i.value?(z(),B(`div`,dj,[c(`emptyAs`)?(z(),B(`div`,fj,[U(N(MC),null,{default:P(()=>[...n[8]||=[W(`Empty keys`,-1)]]),_:1}),n[9]||=H(`p`,{class:`text-xs text-muted-foreground`},`What to write when a translation is missing.`,-1),H(`div`,pj,[(z(),B(R,null,I(l,e=>H(`button`,{key:e.value,type:`button`,class:A([`rounded-[5px] px-2.5 py-1 text-xs font-medium transition-colors`,S.value===e.value?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:t=>y({emptyAs:e.value})},j(e.label),11,mj)),64))])])):G(``,!0),c(`style`)?(z(),B(`div`,hj,[U(N(MC),null,{default:P(()=>[...n[10]||=[W(`Nesting`,-1)]]),_:1}),n[11]||=H(`p`,{class:`text-xs text-muted-foreground`},`Expand dotted keys into nested objects.`,-1),H(`div`,gj,[(z(),B(R,null,I([`nested`,`flat`],t=>H(`button`,{key:t,type:`button`,class:A([`rounded-[5px] px-2.5 py-1 text-xs font-medium capitalize transition-colors`,(e.output.style??`nested`)===t?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:e=>y({style:t})},j(t),11,_j)),64))])])):G(``,!0),c(`indent`)?(z(),B(`div`,vj,[H(`div`,yj,[U(N(MC),null,{default:P(()=>[...n[12]||=[W(`Indent`,-1)]]),_:1}),w.value?(z(),B(`button`,{key:1,type:`button`,class:`text-xs text-primary hover:underline`,onClick:n[3]||=e=>y({indent:null})},`Reset`)):(z(),B(`span`,bj,`Inherited · `+j(e.formatIndent),1))]),H(`div`,xj,[U(N(sC),{type:`number`,min:`0`,max:`8`,class:A([`w-20`,w.value?`border-primary`:``]),"model-value":e.output.indent??``,placeholder:String(e.formatIndent),"onUpdate:modelValue":n[4]||=e=>y({indent:e===``?null:Math.max(0,parseInt(String(e),10)||0)})},null,8,[`class`,`model-value`,`placeholder`]),n[13]||=H(`span`,{class:`text-xs text-muted-foreground`},`spaces`,-1)])])):G(``,!0),c(`finalNewline`)?(z(),B(`div`,Sj,[H(`div`,Cj,[U(N(MC),null,{default:P(()=>[...n[14]||=[W(`Final newline`,-1)]]),_:1}),T.value?(z(),B(`button`,{key:1,type:`button`,class:`text-xs text-primary hover:underline`,onClick:n[5]||=e=>y({finalNewline:null})},`Reset`)):(z(),B(`span`,wj,`Inherited · `+j(e.formatFinalNewline?`on`:`off`),1))]),H(`div`,Tj,[U(N(_C),{"model-value":C.value,"onUpdate:modelValue":n[6]||=e=>y({finalNewline:e})},null,8,[`model-value`]),H(`span`,Ej,j(C.value?`Enabled`:`Disabled`),1)])])):G(``,!0),c(`includeLocale`)?(z(),B(`div`,Dj,[U(N(MC),{class:`flex items-center gap-1.5`},{default:P(()=>[...n[15]||=[W(`Include `,-1),H(`code`,{class:`font-mono text-xs`},`@@locale`,-1)]]),_:1}),n[16]||=H(`p`,{class:`text-xs text-muted-foreground`},`Write the locale marker into each file. Standard for Flutter.`,-1),H(`div`,Oj,[U(N(_C),{"model-value":e.output.includeLocale??!0,"onUpdate:modelValue":n[7]||=e=>y({includeLocale:e})},null,8,[`model-value`]),H(`span`,kj,j(e.output.includeLocale??!0?`Enabled`:`Disabled`),1)])])):G(``,!0),H(`div`,Aj,[U(N(MC),null,{default:P(()=>[...n[17]||=[W(`Locale code format`,-1)]]),_:1}),n[18]||=H(`p`,{class:`text-xs text-muted-foreground`},[W(`How the `),H(`code`,{class:`font-mono text-xs`},`{locale}`),W(` token is rendered in file names (and the in-file marker for ARB).`)],-1),U(N(mS),{"model-value":f.value,"onUpdate:modelValue":p},{default:P(()=>[U(N(cC),{class:`w-72`,"aria-label":`Locale code format`},{default:P(()=>[U(N(FS))]),_:1}),U(N(lC),null,{default:P(()=>[U(N(dC),{value:`default`},{default:P(()=>[W(j(d(e.output.adapter)),1)]),_:1}),(z(),B(R,null,I(u,e=>U(N(dC),{key:e.value,value:e.value},{default:P(()=>[H(`span`,jj,[H(`span`,null,j(e.label),1),H(`span`,Mj,j(e.example),1)])]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`model-value`])]),H(`div`,Nj,[U(N(MC),null,{default:P(()=>[...n[19]||=[W(`Locale overrides`,-1)]]),_:1}),n[21]||=H(`p`,{class:`text-xs text-muted-foreground`},`Force a specific export code for one locale — wins over the format above.`,-1),H(`div`,Pj,[oe.value.length===0?(z(),B(`p`,Fj,`No overrides.`)):G(``,!0),(z(!0),B(R,null,I(oe.value,e=>(z(),B(`div`,{key:e,class:`flex items-center gap-2`},[H(`span`,Ij,j(e),1),U(N(bu),{class:`size-3 shrink-0 text-muted-foreground`}),U(N(sC),{class:`h-8 flex-1 font-mono text-xs`,"aria-label":`Export code for `+e,placeholder:`export code`,"model-value":ae.value[e]??``,"onUpdate:modelValue":t=>ue(e,String(t))},null,8,[`aria-label`,`model-value`,`onUpdate:modelValue`]),U(N($),{variant:`ghost`,size:`icon`,class:`size-8 shrink-0 text-muted-foreground hover:text-destructive`,"aria-label":`Remove override `+e,onClick:t=>le(e)},{default:P(()=>[U(N(wd),{class:`size-3.5`})]),_:1},8,[`aria-label`,`onClick`])]))),128)),k.value.length>0?(z(),B(`div`,Lj,[U(N(mS),{"model-value":``,"onUpdate:modelValue":ce},{default:P(()=>[U(N(cC),{class:`w-56 text-muted-foreground`,"aria-label":`Add locale override`},{default:P(()=>[H(`span`,Rj,[U(N(od),{class:`size-3.5`}),n[20]||=W(` Add override…`,-1)])]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(k.value,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])):G(``,!0)])]),H(`div`,zj,[n[25]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Advanced · Locale aliases`,-1),n[26]||=H(`p`,{class:`mt-1.5 text-xs text-muted-foreground`},[W(` Write one catalog locale to additional file codes — e.g. `),H(`span`,{class:`font-mono`},`zh-Hans`),W(` also as `),H(`span`,{class:`font-mono`},`zh, zh_CN`),W(`. `)],-1),H(`div`,Bj,[D.value.length===0?(z(),B(`p`,Vj,`No aliases. The locale's own code is used as the file name.`)):G(``,!0),(z(!0),B(R,null,I(D.value,e=>(z(),B(`div`,{key:e,class:`flex items-start gap-2`},[H(`div`,Hj,[H(`span`,Uj,j(e),1),U(N(bu),{class:`size-3 text-muted-foreground`})]),H(`div`,Wj,[(z(!0),B(R,null,I(E.value[e]??[],t=>(z(),B(`span`,{key:t,class:`inline-flex items-center gap-1 rounded-md border border-border bg-muted px-1.5 py-0.5 font-mono text-xs`},[W(j(t)+` `,1),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`text-muted-foreground hover:text-destructive`,"aria-label":`Remove`,onClick:n=>ie(e,t)},[U(N(kd),{class:`size-3`})],8,Gj)]),_:2},1024),U(N(qC),null,{default:P(()=>[...n[22]||=[W(`Remove`,-1)]]),_:1})]),_:2},1024)]))),128)),U(N(sC),{class:`h-8 w-28 font-mono text-xs`,placeholder:`add code…`,"model-value":a.value[e]??``,"onUpdate:modelValue":t=>a.value={...a.value,[e]:String(t)},onKeydown:Xl(Jl(t=>re(e),[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`])]),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[U(N($),{variant:`ghost`,size:`icon`,class:`size-8 shrink-0 text-muted-foreground hover:text-destructive`,"aria-label":`Remove alias`,onClick:t=>O(e)},{default:P(()=>[U(N(wd),{class:`size-3.5`})]),_:1},8,[`onClick`])]),_:2},1024),U(N(qC),null,{default:P(()=>[...n[23]||=[W(`Remove alias`,-1)]]),_:1})]),_:2},1024)]))),128)),ee.value.length>0?(z(),B(`div`,Kj,[U(N(mS),{"model-value":``,"onUpdate:modelValue":ne},{default:P(()=>[U(N(cC),{class:`w-56 text-muted-foreground`},{default:P(()=>[H(`span`,qj,[U(N(od),{class:`size-3.5`}),n[24]||=W(` Add locale alias…`,-1)])]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(ee.value,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])):G(``,!0)])])])):G(``,!0)],2))}}),Yj={class:`grid gap-1.5`},Xj={class:`flex flex-wrap gap-2`},Zj=[`aria-label`,`onClick`],Qj={key:0,class:`text-sm text-muted-foreground`},$j={class:`flex max-w-sm gap-2`},eM={key:0,class:`flex items-center gap-1.5 text-xs text-destructive`},tM=F({__name:`ScanListField`,props:{label:{},items:{},placeholder:{},mono:{type:Boolean},addLabel:{},validate:{type:Function}},emits:[`update:items`],setup(e,{emit:t}){let n=e,r=t,i=M(``),a=M(``);function o(){let e=i.value.trim();if(!e)return;if(n.items.includes(e)){a.value=`"${e}" is already listed`;return}let t=n.validate?.(e)??null;if(t){a.value=t;return}a.value=``,r(`update:items`,[...n.items,e]),i.value=``}function s(e){r(`update:items`,n.items.filter(t=>t!==e))}return(t,n)=>(z(),B(`div`,Yj,[U(N(MC),null,{default:P(()=>[W(j(e.label),1)]),_:1}),L(t.$slots,`help`),H(`div`,Xj,[(z(!0),B(R,null,I(e.items,t=>(z(),B(`span`,{key:t,class:A([`inline-flex items-center gap-1.5 rounded-lg border bg-accent px-2.5 py-1.5 text-sm`,e.mono&&`font-mono`])},[W(j(t)+` `,1),H(`button`,{type:`button`,class:`flex size-[18px] items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove ${t}`,onClick:e=>s(t)},[U(N(kd),{class:`size-3`})],8,Zj)],2))),128)),e.items.length===0?(z(),B(`p`,Qj,`None — auto-detect.`)):G(``,!0)]),H(`div`,$j,[U(N(sC),{modelValue:i.value,"onUpdate:modelValue":n[0]||=e=>i.value=e,class:A(e.mono?`font-mono`:void 0),placeholder:e.placeholder,onKeydown:Xl(Jl(o,[`prevent`]),[`enter`]),onInput:n[1]||=e=>a.value=``},null,8,[`modelValue`,`class`,`placeholder`,`onKeydown`]),U(N($),{variant:`outline`,onClick:o},{default:P(()=>[U(N(od),{class:`size-4`}),W(` `+j(e.addLabel??`Add`),1)]),_:1})]),a.value?(z(),B(`p`,eM,[U(N(Td),{class:`size-3.5`}),W(` `+j(a.value),1)])):G(``,!0)]))}}),nM={class:`flex flex-col items-center justify-center gap-4 p-6 py-10 text-center`},rM={class:`p-6`},iM={class:`flex items-start gap-3 pr-6`},aM={class:`grid h-10 w-10 shrink-0 place-items-center rounded-lg border border-primary/25 bg-primary/10 text-primary`},oM={class:`min-w-0`},sM={key:0,class:`mt-5 flex items-center gap-3 rounded-lg border border-success-border bg-success-bg/50 px-4 py-3.5`},cM={class:`mt-4 grid grid-cols-4 gap-2`},lM={class:`mt-1.5 text-[17px] font-semibold leading-none tabular-nums`},uM={class:`mt-1 whitespace-nowrap text-[10.5px] text-muted-foreground`},dM={class:`mt-2 text-center text-[11px] text-muted-foreground`},fM={class:`mt-4 divide-y divide-border overflow-hidden rounded-lg border border-border`},pM={key:0},mM=[`onClick`],hM={class:`ml-auto font-mono text-[11px] text-muted-foreground tabular-nums`},gM={key:0,class:`max-h-36 divide-y divide-border/50 overflow-auto border-t border-border bg-muted/20 gf-content-fade`},_M={key:0,class:`mt-4 flex items-center justify-between gap-4 rounded-lg border border-destructive/30 bg-destructive-soft/40 p-3.5`},vM={class:`flex items-start gap-2.5`},yM={class:`text-[13px] font-medium`},bM={class:`flex items-center gap-2 border-t border-border px-6 py-4`},xM={class:`ml-auto`},SM={class:`flex flex-col items-center justify-center gap-4 p-6 py-10 text-center`},CM={class:`p-6`},wM={class:`flex flex-col items-center gap-3 pt-1 text-center`},TM={class:`grid h-12 w-12 place-items-center rounded-full bg-success-bg text-success ring-1 ring-success-border`},EM={class:`font-semibold text-foreground`},DM={class:`font-semibold text-foreground`},OM={class:`font-semibold text-foreground`},kM={key:0,class:`mt-5 overflow-hidden rounded-lg border border-warning-border bg-warning-bg/60`},AM={class:`whitespace-nowrap text-[13px] font-medium text-warning`},jM={key:0,class:`max-h-44 divide-y divide-warning-border/40 overflow-auto border-t border-warning-border/70 gf-content-fade`},MM={class:`flex items-center border-t border-border px-6 py-4`},NM={class:`ml-auto`},PM={class:`p-6`},FM={class:`flex items-start gap-3 pr-6`},IM={class:`grid h-10 w-10 shrink-0 place-items-center rounded-full bg-destructive-soft text-destructive`},LM={class:`min-w-0`},RM={class:`flex items-center border-t border-border px-6 py-4`},zM={class:`ml-auto`},BM=F({__name:`SyncWizard`,emits:[`dismiss`,`synced`],setup(e,{expose:t,emit:n}){let r=n,i=M(!0),a=M(`loading`),o=M(null),s=M([]),c=M(null),l=M(``),u=M(!1),d=M(!1),f=M({});t({init:p});async function p(){a.value=`loading`;try{let e=await zf();o.value=e.plan,s.value=e.warnings,a.value=`review`}catch(e){l.value=e.message,a.value=`error`}}let m=q(()=>{let e=o.value;return e?e.added.length+e.sourceChanged.length+e.adopted.length+e.removed.length:0}),h=q(()=>m.value===0),g=q(()=>{let e=o.value;return e?[{id:`added`,label:`Added`,icon:od,tone:`added`,keys:e.added},{id:`sourceChanged`,label:`Source changed`,icon:ad,tone:`changed`,keys:e.sourceChanged},{id:`adopted`,label:`Adopted`,icon:Du,tone:`adopted`,keys:e.adopted.map(e=>`${e.key} · ${e.locale}`)},{id:`removed`,label:`Removed`,icon:wd,tone:`removed`,keys:e.removed}]:[]}),_={added:`text-success`,changed:`text-amber-600 dark:text-amber-400`,adopted:`text-primary`,removed:`text-destructive`};async function v(){a.value=`applying`;try{c.value=await Bf({prune:u.value}),a.value=`done`}catch(e){l.value=e.message,a.value=`error`}}function y(e){e||a.value!==`applying`&&(a.value===`done`?r(`synced`):r(`dismiss`))}return(e,t)=>(z(),V(N(C_),{open:i.value,"onUpdate:open":y},{default:P(()=>[U(N(uv),null,{default:P(()=>[U(N(cv),{class:`fixed inset-0 z-50 bg-foreground/40 gf-content-fade`}),U(N(av),{class:`fixed left-1/2 top-1/2 z-50 w-[30rem] max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-border bg-card text-card-foreground shadow-2xl focus:outline-none gf-content-fade`,onInteractOutside:t[8]||=Jl(()=>{},[`prevent`])},{default:P(()=>[a.value===`loading`?(z(),B(R,{key:0},[U(N(dv),{class:`sr-only`},{default:P(()=>[...t[9]||=[W(`Comparing files`,-1)]]),_:1}),H(`div`,nM,[U(N($u),{class:`size-9 text-primary gf-spin`}),t[10]||=H(`div`,{class:`text-[13px] text-muted-foreground`},`Reading your locale files…`,-1)])],64)):a.value===`review`&&o.value?(z(),B(R,{key:1},[H(`button`,{type:`button`,class:`absolute right-3.5 top-3.5 z-10 grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:t[0]||=e=>r(`dismiss`)},[U(N(kd),{class:`size-4`})]),H(`div`,rM,[H(`div`,iM,[H(`div`,aM,[U(N(sd),{class:`size-5`})]),H(`div`,oM,[U(N(dv),{class:`text-base font-semibold leading-tight`},{default:P(()=>[...t[11]||=[W(`Sync from files`,-1)]]),_:1}),U(N(ov),{class:`mt-0.5 text-[13px] text-muted-foreground`},{default:P(()=>[...t[12]||=[W(` Re-reads your locale files and merges changes in. Glossary, context and existing translations are kept. `,-1)]]),_:1})])]),h.value?(z(),B(`div`,sM,[U(N(Du),{class:`size-4 shrink-0 text-success`,"stroke-width":2.5}),t[13]||=H(`span`,{class:`text-[13px] text-foreground`},`Already in sync — nothing changed on disk.`,-1)])):(z(),B(R,{key:1},[H(`div`,cM,[(z(!0),B(R,null,I(g.value,e=>(z(),B(`div`,{key:e.id,class:`flex flex-col items-center rounded-lg border border-border bg-muted/40 px-2 py-2.5`},[(z(),V(ia(e.icon),{class:A([`size-3.5`,_[e.tone]])},null,8,[`class`])),H(`span`,lM,j(e.keys.length),1),H(`span`,uM,j(e.label),1)]))),128))]),H(`p`,dM,j(o.value.unchanged.toLocaleString())+` key`+j(o.value.unchanged===1?``:`s`)+` unchanged `,1),H(`div`,fM,[(z(!0),B(R,null,I(g.value,e=>(z(),B(R,{key:e.id},[e.keys.length?(z(),B(`div`,pM,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3 py-2 text-[12.5px] transition-colors hover:bg-muted/50`,onClick:t=>f.value[e.id]=!f.value[e.id]},[U(N(ku),{class:A([`size-3.5 shrink-0 transition-transform`,f.value[e.id]?`rotate-90`:``])},null,8,[`class`]),(z(),V(ia(e.icon),{class:A([`size-3.5 shrink-0`,_[e.tone]])},null,8,[`class`])),H(`span`,null,j(e.label),1),H(`span`,hM,j(e.keys.length),1)],8,mM),f.value[e.id]?(z(),B(`ul`,gM,[(z(!0),B(R,null,I(e.keys,e=>(z(),B(`li`,{key:e,class:`truncate px-3 py-1.5 font-mono text-[11.5px] text-muted-foreground`},j(e),1))),128))])):G(``,!0)])):G(``,!0)],64))),128))]),o.value.removed.length?(z(),B(`div`,_M,[H(`div`,vM,[U(N(wd),{class:`mt-0.5 size-4 shrink-0 text-destructive`}),H(`div`,null,[H(`div`,yM,`Delete `+j(o.value.removed.length)+` removed `+j(o.value.removed.length===1?`key`:`keys`),1),t[14]||=H(`div`,{class:`mt-0.5 text-[11.5px] text-muted-foreground`},` Keys gone from the source file. Off keeps them — safer if an edited string just changed its id. `,-1)])]),U(N(_C),{"data-testid":`prune-toggle`,modelValue:u.value,"onUpdate:modelValue":t[1]||=e=>u.value=e},null,8,[`modelValue`])])):G(``,!0)],64))]),H(`div`,bM,[U(N($),{variant:`ghost`,size:`sm`,onClick:t[2]||=e=>r(`dismiss`)},{default:P(()=>[W(j(h.value?`Close`:`Cancel`),1)]),_:1}),H(`div`,xM,[h.value?(z(),V(N($),{key:0,variant:`outline`,onClick:t[3]||=e=>r(`dismiss`)},{default:P(()=>[...t[15]||=[W(`Done`,-1)]]),_:1})):(z(),V(N($),{key:1,"data-testid":`apply-btn`,onClick:v},{default:P(()=>[U(N(sd),{class:`size-4`}),W(` Apply `+j(m.value)+` `+j(m.value===1?`change`:`changes`),1)]),_:1}))])])],64)):a.value===`applying`?(z(),B(R,{key:2},[U(N(dv),{class:`sr-only`},{default:P(()=>[...t[16]||=[W(`Applying changes`,-1)]]),_:1}),H(`div`,SM,[U(N($u),{class:`size-9 text-primary gf-spin`}),t[17]||=H(`div`,{class:`text-[13px] text-muted-foreground`},`Merging changes…`,-1)])],64)):a.value===`done`&&c.value?(z(),B(R,{key:3},[H(`div`,CM,[H(`div`,wM,[H(`div`,TM,[U(N(Du),{class:`size-6`,"stroke-width":2.5})]),H(`div`,null,[U(N(dv),{class:`text-base font-semibold`},{default:P(()=>[...t[18]||=[W(`Sync complete`,-1)]]),_:1}),U(N(ov),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[H(`span`,EM,`+`+j(c.value.plan.added.length),1),t[19]||=W(` added, `,-1),H(`span`,DM,`~`+j(c.value.plan.sourceChanged.length),1),t[20]||=W(` changed, `,-1),H(`span`,OM,j(c.value.plan.removed.length),1),t[21]||=W(` removed. `,-1)]),_:1})])]),c.value.warnings.length?(z(),B(`div`,kM,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3 py-2.5 text-left`,onClick:t[4]||=e=>d.value=!d.value},[U(N(Td),{class:`size-3.5 shrink-0 text-warning`}),H(`span`,AM,j(c.value.warnings.length)+` `+j(c.value.warnings.length===1?`warning`:`warnings`),1),U(N(ku),{class:A([`ml-auto size-3.5 shrink-0 text-warning transition-transform`,d.value?`rotate-90`:``])},null,8,[`class`])]),d.value?(z(),B(`ul`,jM,[(z(!0),B(R,null,I(c.value.warnings,(e,t)=>(z(),B(`li`,{key:t,class:`px-3 py-2 text-[12px] text-muted-foreground`},j(e),1))),128))])):G(``,!0)])):G(``,!0)]),H(`div`,MM,[H(`div`,NM,[U(N($),{onClick:t[5]||=e=>r(`synced`)},{default:P(()=>[t[22]||=W(`Reload editor `,-1),U(N(bu),{class:`size-4`})]),_:1})])])],64)):a.value===`error`?(z(),B(R,{key:4},[H(`button`,{type:`button`,class:`absolute right-3.5 top-3.5 z-10 grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:t[6]||=e=>r(`dismiss`)},[U(N(kd),{class:`size-4`})]),H(`div`,PM,[H(`div`,FM,[H(`div`,IM,[U(N(Td),{class:`size-5`})]),H(`div`,LM,[U(N(dv),{class:`text-base font-semibold`},{default:P(()=>[...t[23]||=[W(`Couldn't sync`,-1)]]),_:1}),U(N(ov),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[W(j(l.value),1)]),_:1})])])]),H(`div`,RM,[H(`div`,zM,[U(N($),{variant:`outline`,onClick:t[7]||=e=>r(`dismiss`)},{default:P(()=>[...t[24]||=[W(`Dismiss`,-1)]]),_:1})])])],64)):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),VM={key:0,class:`flex flex-1 items-center justify-center text-sm text-muted-foreground`},HM={key:1,class:`flex min-h-0 flex-1 overflow-hidden`},UM={class:`flex w-60 shrink-0 flex-col gap-1 overflow-y-auto border-r bg-muted p-3`},WM=[`onClick`],GM={class:`min-w-0 flex-1`},KM={class:`block text-[13px] font-[570] leading-tight`},qM={class:`mt-0.5 block truncate text-[11px] opacity-70`},JM={key:0,class:`size-2 shrink-0 rounded-full bg-primary ring-2 ring-primary/25`},YM={key:1,class:`shrink-0 rounded border border-emerald-500/30 bg-emerald-500/10 px-1.5 py-0.5 font-mono text-[9px] font-semibold uppercase tracking-wide text-emerald-600 dark:text-emerald-400`},XM=[`onClick`],ZM={class:`min-w-0 flex-1`},QM={class:`block text-[13px] font-[570] leading-tight`},$M={class:`mt-0.5 block truncate text-[11px] opacity-70`},eN={class:`relative flex min-w-0 flex-1 flex-col`},tN={class:`flex-1 overflow-y-auto px-8 pb-28 pt-7`},nN={class:`max-w-[680px]`},rN={class:`mb-6`},iN={class:`flex items-center gap-2.5 text-[21px] font-bold tracking-tight`},aN={key:0,class:`size-2 rounded-full bg-primary ring-2 ring-primary/25`},oN={key:0,class:`mt-1.5 text-sm text-muted-foreground`},sN={key:1,class:`mt-1.5 text-sm text-muted-foreground`},cN={key:2,class:`mt-1.5 text-sm text-muted-foreground`},lN={key:3,class:`mt-1.5 text-sm text-muted-foreground`},uN={key:4,class:`mt-1.5 text-sm text-muted-foreground`},dN={key:5,class:`mt-1.5 text-sm text-muted-foreground`},fN={key:6,class:`mt-1.5 text-sm text-muted-foreground`},pN={key:7,class:`mt-2 flex items-center gap-1.5 text-sm text-muted-foreground`},mN={key:0,class:`flex flex-col gap-5`},hN={class:`grid max-w-sm gap-1.5`},gN={key:0},_N={class:`grid gap-1.5`},vN={class:`ml-1.5 font-normal text-muted-foreground`},yN={class:`flex flex-wrap gap-2`},bN={key:0,class:`font-mono text-[10px] italic text-muted-foreground`},xN=[`aria-label`,`onClick`],SN={class:`mt-1 flex items-center gap-1.5 text-xs text-destructive`},CN={class:`grid max-w-sm gap-1.5`},wN={class:`flex gap-2`},TN={key:0,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},EN={key:1,class:`flex flex-col gap-6`},DN={class:`flex items-center justify-between gap-4 rounded-lg border p-3.5`},ON={class:`flex items-start gap-2.5`},kN={class:`grid size-8 shrink-0 place-items-center rounded-md border border-primary/25 bg-primary/10 text-primary`},AN={class:`flex items-center justify-between gap-4 rounded-lg border p-3.5`},jN={class:`flex items-start gap-2.5`},MN={class:`grid size-8 shrink-0 place-items-center rounded-md border border-primary/25 bg-primary/10 text-primary`},NN={class:`rounded-lg border p-3.5`},PN={class:`flex items-center justify-between gap-4`},FN={class:`flex items-start gap-2.5`},IN={class:`grid size-8 shrink-0 place-items-center rounded-md border border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400`},LN={key:0,class:`mt-3 border-t pt-3`},RN={class:`flex flex-wrap gap-2`},zN=[`aria-checked`,`onClick`],BN={class:`mt-2 flex items-center gap-1.5 text-xs text-amber-600 dark:text-amber-400`},VN={class:`mt-2 divide-y rounded-lg border`},HN={class:`flex items-center justify-between gap-4 p-3.5`},UN={class:`flex items-center gap-2`},WN={class:`flex items-center justify-between gap-4 p-3.5`},GN={class:`flex items-center gap-2 text-sm font-medium`},KN={class:`inline-flex items-center gap-1 rounded border border-border bg-muted px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`},qN={class:`inline-flex shrink-0 items-center gap-1 rounded-md border border-primary/25 bg-primary/10 px-2 py-1 text-xs font-medium text-primary`},JN={class:`flex items-center justify-between gap-4 p-3.5`},YN={class:`mt-2 flex flex-col gap-2.5`},XN={key:0,class:`text-sm text-muted-foreground`},ZN={key:2,class:`flex flex-col gap-4`},QN={class:`flex items-center gap-2 rounded-lg border p-3`},$N={key:1,class:`flex-1 text-sm text-muted-foreground`},eP={class:`grid max-w-sm gap-4`},tP={class:`grid gap-1.5`},nP={class:`flex items-center gap-2`},rP={key:0,class:`flex items-center gap-1 text-xs leading-none text-emerald-600 dark:text-emerald-400`},iP={class:`text-xs text-muted-foreground`},aP={class:`grid gap-1.5`},oP={key:0,class:`text-xs text-muted-foreground`},sP=[`onClick`],cP={key:0},lP={key:0,class:`grid gap-1.5`},uP={key:1,class:`grid gap-1.5`},dP={key:0,class:`text-xs text-muted-foreground`},fP={key:1,class:`text-xs text-muted-foreground`},pP={class:`grid gap-1.5`},mP={class:`grid gap-1.5`},hP={class:`grid gap-1.5`},gP={class:`grid gap-1.5`},_P={class:`grid gap-1.5`},vP={class:`grid gap-1.5`},yP={key:2,class:`flex items-center gap-3`},bP={class:`grid gap-0.5`},xP={key:3,class:`grid gap-1.5`},SP={key:3,class:`flex flex-col gap-6`},CP={key:4,class:`flex flex-col gap-6`},wP={class:`mt-2 divide-y rounded-lg border`},TP={class:`min-w-0`},EP={class:`flex items-center gap-2 text-sm font-medium`},DP={class:`rounded border bg-muted px-1 py-0.5 font-mono text-[10px] text-muted-foreground`},OP={class:`mt-0.5 text-xs text-muted-foreground`},kP={key:5,class:`flex flex-col gap-4`},AP={class:`flex flex-wrap gap-2`},jP=[`aria-label`,`onClick`],MP={key:0,class:`text-sm text-muted-foreground`},NP={class:`grid max-w-sm gap-1.5`},PP={class:`flex gap-2`},FP={key:6,class:`flex flex-col gap-4`},IP={class:`grid max-w-sm gap-1.5`},LP={class:`flex items-center gap-2`},RP={key:0,class:`flex items-center gap-1 text-xs leading-none text-emerald-600 dark:text-emerald-400`},zP={class:`flex items-center gap-1.5 text-sm text-muted-foreground`},BP={class:`inline-grid h-5 min-w-[20px] shrink-0 place-items-center rounded-full bg-primary px-1.5 text-[11px] font-bold tabular-nums text-primary-foreground`},VP={class:`font-semibold`},HP={class:`relative`},UP={key:0,class:`absolute bottom-full left-1/2 z-50 mb-2.5 w-64 -translate-x-1/2 rounded-xl border bg-card p-3.5 shadow-lg`},WP={class:`mt-1 text-xs leading-relaxed text-muted-foreground`},GP={class:`mt-3 flex justify-end gap-2`},KP={role:`dialog`,"aria-modal":`true`,"aria-labelledby":`leave-warning-title`,class:`w-full max-w-md rounded-2xl border bg-card p-5 shadow-xl`},qP={id:`leave-warning-title`,class:`flex items-center gap-2 text-[15px] font-semibold`},JP={class:`mt-1.5 text-[13px] leading-relaxed text-muted-foreground`},YP={class:`font-medium text-foreground`},XP={class:`block`},ZP={class:`mt-4 flex items-center gap-2`},QP={key:0,class:`fixed left-1/2 top-4 z-[80] flex -translate-x-1/2 items-center gap-2 rounded-[11px] bg-foreground px-4 py-2.5 text-[12.5px] font-medium text-background shadow-lg`},$P=F({__name:`SettingsView`,setup(e){let t=[`languages`,`outputs`,`ai`,`scan`,`quality`,`dictionary`,`editor`],n=[`flutter-arb`,`laravel-php`,`vue-i18n-json`,`angular-xliff`,`rails-yaml`,`apple-strings`],r=[{value:`anthropic`,label:`Anthropic`},{value:`bedrock`,label:`AWS Bedrock`},{value:`claude-code`,label:`Claude Code`},{value:`ollama`,label:`Ollama`},{value:`openai`,label:`OpenAI`},{value:`openrouter`,label:`OpenRouter`}],i={anthropic:[`claude-opus-4-8`,`claude-sonnet-4-6`,`claude-haiku-4-5-20251001`],openai:[`gpt-4o-mini`,`gpt-4o`,`gpt-4.1`],bedrock:[`amazon.nova-pro-v1:0`,`anthropic.claude-3-5-sonnet-20241022-v2:0`,`meta.llama3-1-70b-instruct-v1:0`],openrouter:[`anthropic/claude-3.5-haiku`,`openai/gpt-4o-mini`,`google/gemini-2.0-flash-001`],ollama:[`translategemma:4b`,`translategemma:12b`,`qwen3.5:9b`],"claude-code":[`claude-opus-4-8`,`claude-sonnet-4-6`,`claude-haiku-4-5-20251001`]},a={anthropic:`Set ANTHROPIC_API_KEY in your environment (or a .env file).`,openai:`Set OPENAI_API_KEY in your environment (or a .env file).`,bedrock:`Uses your AWS credentials (env vars, AWS_PROFILE, or an instance/SSO role).`,openrouter:`Set OPENROUTER_API_KEY in your environment (or a .env file).`,ollama:`Runs locally — no API key needed. Set OLLAMA_API_KEY only for a secured/remote server.`,"claude-code":`Uses your local Claude Code session — no separate API key needed. Requires the claude CLI to be installed.`},o=M(null),s=M(null),c=Yt({sourceLocale:``,locales:[],outputs:[],indent:2,sortKeys:!0,finalNewline:!0,autoExport:!0,exportLocales:[],customWords:[],lintRules:{},lintIgnore:[],scanAccessors:[],scanPatterns:[],scanInclude:[],scanExclude:[],scanKeep:[]}),l=M(!1),u=M(!1),d=M(p()),f=M(!1);function p(){let e=Np().get(`section`)??``;return t.includes(e)?e:`languages`}function m(e){d.value=e,location.hash=`settings?section=${e}`}function h(){d.value=p()}let g=M(null),_=M(!1),v=null;function y(e){c.sourceLocale=e.sourceLocale,c.locales=[...e.locales],c.outputs=e.outputs.map(e=>({...e})),c.indent=e.indent,c.sortKeys=e.sortKeys,c.finalNewline=e.finalNewline,c.autoExport=e.autoExport,c.exportLocales=[...e.exportLocales],c.customWords=[...e.customWords],c.lintRules={...e.lintRules},c.lintIgnore=[...e.lintIgnore],c.scanAccessors=[...e.scanAccessors],c.scanPatterns=[...e.scanPatterns],c.scanInclude=[...e.scanInclude],c.scanExclude=[...e.scanExclude],c.scanKeep=[...e.scanKeep]}function b(){o.value={sourceLocale:c.sourceLocale,locales:[...c.locales],outputs:c.outputs.map(e=>({...e})),indent:c.indent,sortKeys:c.sortKeys,finalNewline:c.finalNewline,autoExport:c.autoExport,exportLocales:[...c.exportLocales],customWords:[...c.customWords],lintRules:{...c.lintRules},lintIgnore:[...c.lintIgnore],scanAccessors:[...c.scanAccessors],scanPatterns:[...c.scanPatterns],scanInclude:[...c.scanInclude],scanExclude:[...c.scanExclude],scanKeep:[...c.scanKeep]}}async function x(){let e=await jd();s.value=e.config,y(rj(e.config)),b(),await O(),l.value=!0}x();let S=M({}),C=q(()=>Object.keys(S.value).sort((e,t)=>e.localeCompare(t))),w=M(null),T=M(``),E=Yt({provider:`anthropic`,model:``,endpoint:``,region:``,batchSize:25,concurrency:``,contextBatchSize:``,contextConcurrency:``,vision:!1,promptStyle:``,inputPricePerMTok:``,outputPricePerMTok:``}),D=M(!1),ee=null,te=null,ne=``;async function O(){let[e,t]=await Promise.all([df(),pf()]);S.value=t.profiles,w.value=t.activeProfile,T.value=t.activeProfile??``,re(w.value?t.profiles[w.value]??e.ai:e.ai),ne=JSON.stringify(ie())}function re(e){E.provider=e.provider,E.model=e.model,E.endpoint=e.endpoint??``,E.region=e.region??``,E.batchSize=e.batchSize,E.concurrency=e.concurrency??``,E.contextBatchSize=e.contextBatchSize??``,E.contextConcurrency=e.contextConcurrency??``,E.vision=e.vision??!1,E.promptStyle=e.promptStyle??``,E.inputPricePerMTok=e.inputPricePerMTok??``,E.outputPricePerMTok=e.outputPricePerMTok??``,ne=JSON.stringify(ie())}function ie(){let e=String(E.endpoint).trim(),t=String(E.region).trim(),n=Number(E.batchSize),r=Number(E.concurrency),i=Number(E.contextBatchSize),a=Number(E.contextConcurrency),o=Number(E.inputPricePerMTok),s=Number(E.outputPricePerMTok);return{provider:E.provider.trim(),model:E.model.trim(),endpoint:e===``?null:e,region:t===``?null:t,batchSize:Number.isFinite(n)&&n>0?n:25,concurrency:Number.isFinite(r)&&r>0?r:void 0,contextBatchSize:Number.isFinite(i)&&i>0?i:void 0,contextConcurrency:Number.isFinite(a)&&a>0?a:void 0,vision:E.vision||void 0,promptStyle:E.promptStyle||void 0,inputPricePerMTok:E.inputPricePerMTok!==``&&Number.isFinite(o)&&o>=0?o:void 0,outputPricePerMTok:E.outputPricePerMTok!==``&&Number.isFinite(s)&&s>=0?s:void 0}}Er(E,()=>{JSON.stringify(ie())!==ne&&(te&&clearTimeout(te),te=setTimeout(async()=>{let e=ie();try{w.value?(await mf(w.value,e),S.value={...S.value,[w.value]:e}):await ff({ai:e}),ne=JSON.stringify(e),D.value=!0,ee&&clearTimeout(ee),ee=setTimeout(()=>{D.value=!1},1700)}catch(e){Q.error(e.message)}},500))},{deep:!0});let ae=[`languages`,`outputs`,`scan`,`quality`,`dictionary`],oe=[`ai`,`editor`];function k(e){if(!o.value)return!0;let t=c,n=o.value;return e===`languages`?JSON.stringify(t.locales)===JSON.stringify(n.locales)&&t.sourceLocale===n.sourceLocale:e===`outputs`?JSON.stringify(t.outputs)===JSON.stringify(n.outputs)&&String(t.indent)===String(n.indent)&&t.finalNewline===n.finalNewline&&t.autoExport===n.autoExport&&JSON.stringify(t.exportLocales)===JSON.stringify(n.exportLocales):e===`scan`?JSON.stringify(t.scanAccessors)===JSON.stringify(n.scanAccessors)&&JSON.stringify(t.scanPatterns)===JSON.stringify(n.scanPatterns)&&JSON.stringify(t.scanInclude)===JSON.stringify(n.scanInclude)&&JSON.stringify(t.scanExclude)===JSON.stringify(n.scanExclude)&&JSON.stringify(t.scanKeep)===JSON.stringify(n.scanKeep):e===`quality`?JSON.stringify(t.lintRules)===JSON.stringify(n.lintRules)&&JSON.stringify(t.lintIgnore)===JSON.stringify(n.lintIgnore):e===`dictionary`?JSON.stringify(t.customWords)===JSON.stringify(n.customWords):!0}let se=q(()=>ae.filter(e=>!k(e))),ce=q(()=>se.value.length),le=q(()=>se.value.map(e=>me[e].title));Er(ce,e=>{aj.value=e},{immediate:!0}),Yi(()=>{aj.value=0});let ue=q(()=>bT.find(e=>e.id===CT.value)?.label??`VS Code`),de=M(!1),fe=null;function pe(e){wT(e),de.value=!0,fe&&clearTimeout(fe),fe=setTimeout(()=>{de.value=!1},1700)}let me={languages:{title:`Languages`},outputs:{title:`Export targets`},ai:{title:`AI`},scan:{title:`Scan`},quality:{title:`Quality checks`},dictionary:{title:`Custom dictionary`},editor:{title:`Editor`}},he=[{id:`languages`,title:`Languages`},{id:`outputs`,title:`Export targets`},{id:`scan`,title:`Scan`},{id:`quality`,title:`Quality checks`},{id:`dictionary`,title:`Custom dictionary`}];function ge(e){if(e===`languages`)return`${c.locales.length} language${c.locales.length===1?``:`s`}`;if(e===`outputs`)return`${c.outputs.length} target${c.outputs.length===1?``:`s`}${c.autoExport?` · auto`:``}${c.exportLocales.length?` · limited`:``}`;if(e===`ai`)return w.value?`${w.value} · ${E.model}`:`${E.provider} · ${E.model}`;if(e===`scan`){let e=c.scanAccessors.length,t=c.scanPatterns.length,n=c.scanKeep.length,r=[e&&`${e} accessor${e===1?``:`s`}`,t&&`${t} pattern${t===1?``:`s`}`,n&&`${n} kept`].filter(Boolean);return r.length?r.join(` · `):`Auto-detect`}if(e===`quality`){let e=Object.entries(c.lintRules).filter(([,e])=>e===`off`).length,t=Object.entries(c.lintRules).filter(([e,t])=>tj[e]!==void 0&&t!==tj[e]).length;return!t&&!c.lintIgnore.length?`Defaults`:[t&&`${t} adjusted${e?` (${e} off)`:``}`,c.lintIgnore.length&&`${c.lintIgnore.length} ignored`].filter(Boolean).join(` · `)}return e===`dictionary`?c.customWords.length?`${c.customWords.length} word${c.customWords.length===1?``:`s`}`:`No custom words`:``}async function _e(){if(ce.value!==0){u.value=!0;try{await cf(ij(c,s.value??void 0)),b(),_.value=!0,v&&clearTimeout(v),v=setTimeout(()=>{_.value=!1},1700)}catch(e){Q.error(e.message)}finally{u.value=!1}}}function ve(){o.value&&y(o.value),f.value=!1}function ye(e){return e===`settings`||ce.value===0?!0:(g.value=e,!1)}function be(e){g.value=null,jp(e)}function xe(){g.value=null}function Se(){let e=g.value;ve(),e&&be(e)}async function Ce(){let e=g.value;await _e(),e&&ce.value===0&&be(e)}function we(e){ce.value>0&&(e.preventDefault(),e.returnValue=``)}function Te(e){if(e.key===`Escape`&&g.value){e.preventDefault(),xe();return}(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),_e())}Gi(()=>{window.addEventListener(`keydown`,Te),window.addEventListener(`beforeunload`,we),window.addEventListener(`hashchange`,h),Ap(ye)}),Yi(()=>{window.removeEventListener(`keydown`,Te),window.removeEventListener(`beforeunload`,we),window.removeEventListener(`hashchange`,h),Ap(null)});let Ee=M(``);function De(){let e=Ee.value.trim().toLowerCase();if(e){if(c.locales.some(t=>t.toLowerCase()===e)){Q.error(`${e} is already in the list`);return}c.locales.push(e),Ee.value=``}}function Oe(e){e!==c.sourceLocale&&(c.locales=c.locales.filter(t=>t!==e))}function ke(){c.outputs.push({adapter:`flutter-arb`,path:``,emptyAs:`omit`,style:`nested`,indent:null,finalNewline:null,includeLocale:!0,localeAliases:{}})}function Ae(e){c.outputs.splice(e,1)}let je=q(()=>c.exportLocales.length>0);function Me(e){c.exportLocales=e?[...c.locales]:[]}function Ne(e){c.exportLocales=c.exportLocales.includes(e)?c.exportLocales.filter(t=>t!==e):[...c.exportLocales,e]}let Pe=q(()=>E.provider===`bedrock`),Fe=q(()=>E.provider===`ollama`),Ie=q(()=>a[E.provider]??``),Le=q(()=>i[E.provider]??[]),Re=q(()=>Le.value[0]??``);async function ze(e){w.value=e,T.value=e??``,await gf(e),re(e?S.value[e]??ie():(await df()).ai)}async function Be(){let e=`Profile ${Object.keys(S.value).length+1}`,t=ie();await mf(e,t),S.value={...S.value,[e]:t},await ze(e)}async function Ve(e,t){let n=t.trim();if(!n||n===e){T.value=e;return}if(n in S.value){Q.error(`A profile with that name already exists`),T.value=e;return}let r=S.value[e];await mf(n,r),await hf(e);let i={...S.value};delete i[e],i[n]=r,S.value=i,await ze(n)}async function He(){if(!w.value)return;let e=w.value;await hf(e);let t={...S.value};delete t[e],S.value=t,await ze(null)}let Ue=M(``);function We(){let e=Ue.value.trim();if(e){if(c.customWords.includes(e)){Q.error(`${e} is already in the dictionary`);return}c.customWords=[...c.customWords,e].sort(),Ue.value=``}}function Ge(e){c.customWords=c.customWords.filter(t=>t!==e)}function Ke(e){try{return new RegExp(e),null}catch(e){return`Invalid regex: ${e.message}`}}let qe=M(!1),Je=M(null);function Ye(){location.reload()}return(e,t)=>(z(),B(R,null,[l.value?(z(),B(`div`,HM,[H(`nav`,UM,[t[33]||=H(`p`,{class:`px-2.5 pb-2 pt-1 text-[10.5px] font-bold uppercase tracking-widest text-muted-foreground`},` Settings `,-1),(z(),B(R,null,I(he,e=>H(`button`,{key:e.id,type:`button`,class:A([`flex w-full items-center gap-2.5 rounded-[10px] border px-2.5 py-2.5 text-left transition-colors`,d.value===e.id?`border-border bg-card text-foreground shadow-sm`:`border-transparent bg-transparent text-muted-foreground hover:bg-accent hover:text-foreground`]),onClick:t=>m(e.id)},[H(`span`,{class:A([`flex size-[30px] shrink-0 items-center justify-center rounded-lg border`,d.value===e.id?`border-primary/30 bg-primary/10 text-primary`:`border-border/60 bg-background text-muted-foreground`])},[e.id===`languages`?(z(),V(N(qu),{key:0,class:`size-4`})):e.id===`outputs`?(z(),V(N(Uu),{key:1,class:`size-4`})):e.id===`ai`?(z(),V(N(Iu),{key:2,class:`size-4`})):e.id===`scan`?(z(),V(N(dd),{key:3,class:`size-4`})):e.id===`quality`?(z(),V(N(hd),{key:4,class:`size-4`})):(z(),V(N(Cu),{key:5,class:`size-4`}))],2),H(`span`,GM,[H(`span`,KM,j(e.title),1),H(`span`,qM,j(ge(e.id)),1)]),!e.autosave&&se.value.includes(e.id)?(z(),B(`span`,JM)):G(``,!0),e.autosave?(z(),B(`span`,YM,`Auto`)):G(``,!0)],10,WM)),64)),t[34]||=H(`p`,{class:`mt-4 border-t px-2.5 pb-2 pt-3 text-[10.5px] font-bold uppercase tracking-widest text-muted-foreground`},` Local (not committed) `,-1),(z(),B(R,null,I(oe,e=>H(`button`,{key:e,type:`button`,class:A([`flex w-full items-center gap-2.5 rounded-[10px] border px-2.5 py-2.5 text-left transition-colors`,d.value===e?`border-border bg-card text-foreground shadow-sm`:`border-transparent bg-transparent text-muted-foreground hover:bg-accent hover:text-foreground`]),onClick:t=>m(e)},[H(`span`,{class:A([`flex size-[30px] shrink-0 items-center justify-center rounded-lg border`,d.value===e?`border-primary/30 bg-primary/10 text-primary`:`border-border/60 bg-background text-muted-foreground`])},[e===`ai`?(z(),V(N(Iu),{key:0,class:`size-4`})):(z(),V(N(Fu),{key:1,class:`size-4`}))],2),H(`span`,ZM,[H(`span`,QM,j(me[e].title),1),H(`span`,$M,j(e===`editor`?ue.value:ge(e)),1)])],10,XM)),64))]),H(`div`,eN,[H(`div`,tN,[H(`div`,nN,[H(`div`,rN,[H(`h2`,iN,[W(j(me[d.value].title)+` `,1),se.value.includes(d.value)?(z(),B(`span`,aN)):G(``,!0)]),d.value===`languages`?(z(),B(`p`,oN,` The source language is translated into every other language. `)):d.value===`outputs`?(z(),B(`p`,sN,[...t[35]||=[W(` Where compiled translation files are written. Use `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`{locale}`,-1),W(` and `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`{namespace}`,-1),W(` placeholders in the path. `,-1)]])):d.value===`ai`?(z(),B(`p`,cN,[...t[36]||=[W(` The provider and model used for machine translation. Stored locally in `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`.glotfile/`,-1),W(`, not shared with your team. `,-1)]])):d.value===`scan`?(z(),B(`p`,lN,` How the usage scanner finds where keys are referenced in code. Auto-detection handles most projects — these settings are for the cases it can't infer. `)):d.value===`quality`?(z(),B(`p`,uN,[...t[37]||=[W(` Which checks run and how severe they are — in the editor, the Analytics release gate, and `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`glotfile lint`,-1),W(` alike. Errors block a release; warnings don't. `,-1)]])):d.value===`dictionary`?(z(),B(`p`,dN,` Words the spell checker should never flag. Added here or from a cell's warning. `)):d.value===`editor`?(z(),B(`p`,fN,[...t[38]||=[W(` Which editor opens when you click a key's code usage. Stored locally in `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`.glotfile/`,-1),W(`, not shared with your team. `,-1)]])):G(``,!0),oe.includes(d.value)?(z(),B(`p`,pN,[U(N(Ad),{class:`size-3.5`}),t[39]||=W(` Changes here save automatically. `,-1)])):G(``,!0)]),d.value===`languages`?(z(),B(`div`,mN,[H(`div`,hN,[U(N(MC),{for:`source-locale`},{default:P(()=>[...t[40]||=[W(`Source language`,-1)]]),_:1}),U(N(mS),{modelValue:c.sourceLocale,"onUpdate:modelValue":t[0]||=e=>c.sourceLocale=e},{default:P(()=>[U(N(cC),{id:`source-locale`},{default:P(()=>[c.sourceLocale?(z(),B(`span`,gN,[U(zw,{code:c.sourceLocale,"show-name":``,size:14},null,8,[`code`])])):(z(),V(N(FS),{key:1,placeholder:`Select source`}))]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(c.locales,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[U(zw,{code:e,"show-name":``,size:14},null,8,[`code`])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`div`,_N,[U(N(MC),null,{default:P(()=>[t[41]||=W(` Languages `,-1),H(`span`,vN,j(c.locales.length),1)]),_:1}),H(`div`,yN,[(z(!0),B(R,null,I(c.locales,e=>(z(),B(`span`,{key:e,class:A([`inline-flex items-center gap-1.5 rounded-[9px] border px-2.5 py-1.5 text-sm transition-colors`,e===c.sourceLocale?`border-border/60 bg-accent`:`border-border bg-background`])},[U(zw,{code:e,"show-name":``,size:14},null,8,[`code`]),e===c.sourceLocale?(z(),B(`span`,bN,`source`)):(z(),B(`button`,{key:1,type:`button`,class:`ml-0.5 flex size-[18px] items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove ${e}`,onClick:t=>Oe(e)},[U(N(kd),{class:`size-3`})],8,xN))],2))),128))]),H(`p`,SN,[U(N(Td),{class:`size-3.5`}),t[42]||=W(` Removing a language deletes its translations. `,-1)])]),H(`div`,CN,[U(N(MC),{for:`add-locale`},{default:P(()=>[...t[43]||=[W(`Add language`,-1)]]),_:1}),H(`div`,wN,[U(N(sC),{id:`add-locale`,modelValue:Ee.value,"onUpdate:modelValue":t[1]||=e=>Ee.value=e,class:`font-mono`,placeholder:`es`,onKeydown:Xl(Jl(De,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),U(N($),{variant:`outline`,onClick:De},{default:P(()=>[U(N(od),{class:`size-4`}),t[44]||=W(` Add`,-1)]),_:1})]),Ee.value.trim()?(z(),B(`p`,TN,[t[45]||=W(` Preview: `,-1),U(zw,{code:Ee.value.trim(),"show-name":``,size:14},null,8,[`code`])])):G(``,!0)])])):d.value===`outputs`?(z(),B(`div`,EN,[H(`div`,DN,[H(`div`,ON,[H(`span`,kN,[U(N(Ad),{class:`size-4`})]),t[46]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Auto-export on save`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Write locale files to your project automatically as you edit, so your running app picks them up immediately.`)],-1)]),U(N(_C),{modelValue:c.autoExport,"onUpdate:modelValue":t[2]||=e=>c.autoExport=e},null,8,[`modelValue`])]),H(`div`,AN,[H(`div`,jN,[H(`span`,MN,[U(N(sd),{class:`size-4`})]),t[47]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Sync from files`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},[W(`Re-read the locale files on disk and merge changes into the catalog — keeping glossary, context and translations. For Angular, run this after `),H(`span`,{class:`font-mono`},`ng extract-i18n`),W(`.`)])],-1)]),U(N($),{variant:`outline`,size:`sm`,"data-testid":`open-sync`,class:`shrink-0`,onClick:t[3]||=e=>qe.value=!0},{default:P(()=>[U(N(sd),{class:`size-4`}),t[48]||=W(` Sync `,-1)]),_:1})]),H(`div`,NN,[H(`div`,PN,[H(`div`,FN,[H(`span`,IN,[U(N(Zu),{class:`size-4`})]),t[49]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Limit export languages`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Only the selected languages are written to disk, including auto-export. Off exports all languages.`)],-1)]),U(N(_C),{"model-value":je.value,"onUpdate:modelValue":Me},null,8,[`model-value`])]),je.value?(z(),B(`div`,LN,[H(`div`,RN,[(z(!0),B(R,null,I(c.locales,e=>(z(),B(`button`,{key:e,type:`button`,role:`checkbox`,"aria-checked":c.exportLocales.includes(e),class:A([`inline-flex items-center gap-1.5 rounded-[9px] border px-2.5 py-1.5 text-sm transition-colors`,c.exportLocales.includes(e)?`border-primary/40 bg-primary/10`:`border-border bg-background text-muted-foreground hover:bg-accent`]),onClick:t=>Ne(e)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,c.exportLocales.includes(e)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[c.exportLocales.includes(e)?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),U(zw,{code:e,"show-name":``,size:14},null,8,[`code`])],10,zN))),128))]),H(`p`,BN,[U(N(Td),{class:`size-3.5`}),W(` Export limited to `+j(c.exportLocales.length)+` of `+j(c.locales.length)+` languages. `,1)])])):G(``,!0)]),H(`div`,null,[t[57]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Format defaults`,-1),t[58]||=H(`p`,{class:`mt-1 text-xs text-muted-foreground`},`Export targets inherit these. Indent and Final newline can be overridden per target.`,-1),H(`div`,VN,[H(`div`,HN,[t[51]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Indent`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Spaces per nesting level.`)],-1),H(`div`,UN,[U(N(sC),{modelValue:c.indent,"onUpdate:modelValue":t[4]||=e=>c.indent=e,modelModifiers:{number:!0},type:`number`,min:`0`,max:`8`,class:`w-20`},null,8,[`modelValue`]),t[50]||=H(`span`,{class:`text-xs text-muted-foreground`},`spaces`,-1)])]),H(`div`,WN,[H(`div`,null,[H(`div`,GN,[t[53]||=W(` Sort keys `,-1),H(`span`,KN,[U(N(ed),{class:`size-2.5`}),t[52]||=W(` Locked`,-1)])]),t[54]||=H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Keys are always written alphabetically so output is deterministic and diffs stay clean.`,-1)]),H(`span`,qN,[U(N(Du),{class:`size-3`}),t[55]||=W(` Always alphabetical`,-1)])]),H(`div`,JN,[t[56]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Final newline`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Append a trailing newline at the end of every file.`)],-1),U(N(_C),{modelValue:c.finalNewline,"onUpdate:modelValue":t[5]||=e=>c.finalNewline=e},null,8,[`modelValue`])])])]),H(`div`,null,[t[60]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Export targets`,-1),H(`div`,YN,[(z(!0),B(R,null,I(c.outputs,(e,t)=>(z(),V(Jj,{key:t,output:e,"format-indent":Number(c.indent)||0,"format-final-newline":c.finalNewline,locales:c.locales,adapters:n,"onUpdate:output":e=>c.outputs.splice(t,1,e),onRemove:e=>Ae(t)},null,8,[`output`,`format-indent`,`format-final-newline`,`locales`,`onUpdate:output`,`onRemove`]))),128)),c.outputs.length===0?(z(),B(`p`,XN,`No export targets configured.`)):G(``,!0),H(`div`,null,[U(N($),{variant:`ghost`,size:`sm`,class:`mt-1 pl-2`,onClick:ke},{default:P(()=>[U(N(od),{class:`size-4`}),t[59]||=W(` Add export target `,-1)]),_:1})])])])])):d.value===`ai`?(z(),B(`div`,ZN,[H(`div`,QN,[U(N(mS),{"model-value":w.value??`__none__`,"onUpdate:modelValue":t[6]||=e=>ze(e===`__none__`?null:e)},{default:P(()=>[U(N(cC),{class:`w-44`},{default:P(()=>[U(N(FS),{placeholder:`No profile`})]),_:1}),U(N(lC),null,{default:P(()=>[U(N(dC),{value:`__none__`},{default:P(()=>[...t[61]||=[W(`No profile`,-1)]]),_:1}),(z(!0),B(R,null,I(C.value,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),w.value?(z(),V(N(sC),{key:0,modelValue:T.value,"onUpdate:modelValue":t[7]||=e=>T.value=e,class:`flex-1 font-medium`,placeholder:`Profile name`,onBlur:t[8]||=e=>Ve(w.value,T.value),onKeydown:t[9]||=Xl(Jl(e=>Ve(w.value,T.value),[`prevent`]),[`enter`])},null,8,[`modelValue`])):(z(),B(`span`,$N,`Using default settings`)),U(N($),{variant:`outline`,size:`sm`,class:`shrink-0`,onClick:Be},{default:P(()=>[U(N(od),{class:`size-4`}),t[62]||=W(` New `,-1)]),_:1}),U(N($),{variant:`ghost`,size:`sm`,class:`shrink-0 text-destructive hover:bg-destructive/10 hover:text-destructive`,disabled:!w.value,onClick:He},{default:P(()=>[U(N(kd),{class:`size-4`})]),_:1},8,[`disabled`])]),H(`div`,eP,[H(`div`,tP,[H(`div`,nP,[U(N(MC),{for:`ai-provider`},{default:P(()=>[...t[63]||=[W(`Provider`,-1)]]),_:1}),U(hc,{"enter-active-class":`transition duration-150 ease-out`,"enter-from-class":`opacity-0 translate-y-0.5`,"enter-to-class":`opacity-100 translate-y-0`,"leave-active-class":`transition duration-300 ease-in`,"leave-from-class":`opacity-100 translate-y-0`,"leave-to-class":`opacity-0`},{default:P(()=>[D.value?(z(),B(`span`,rP,[U(N(Du),{class:`size-3`}),t[64]||=W(` Saved `,-1)])):G(``,!0)]),_:1})]),U(N(mS),{modelValue:E.provider,"onUpdate:modelValue":t[10]||=e=>E.provider=e},{default:P(()=>[U(N(cC),{id:`ai-provider`},{default:P(()=>[U(N(FS),{placeholder:`Select provider`})]),_:1}),U(N(lC),null,{default:P(()=>[(z(),B(R,null,I(r,e=>U(N(dC),{key:e.value,value:e.value},{default:P(()=>[W(j(e.label),1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`]),H(`p`,iP,j(Ie.value),1)]),H(`div`,aP,[U(N(MC),{for:`ai-model`},{default:P(()=>[...t[65]||=[W(`Model`,-1)]]),_:1}),U(N(sC),{id:`ai-model`,modelValue:E.model,"onUpdate:modelValue":t[11]||=e=>E.model=e,class:`font-mono`,placeholder:Re.value},null,8,[`modelValue`,`placeholder`]),Le.value.length?(z(),B(`p`,oP,[t[66]||=W(` Examples: `,-1),(z(!0),B(R,null,I(Le.value,(e,t)=>(z(),B(R,{key:e},[H(`button`,{type:`button`,class:`font-mono underline-offset-2 hover:text-foreground hover:underline`,onClick:t=>E.model=e},j(e),9,sP),t<Le.value.length-1?(z(),B(`span`,cP,` · `)):G(``,!0)],64))),128))])):G(``,!0)]),Pe.value?(z(),B(`div`,lP,[U(N(MC),{for:`ai-region`},{default:P(()=>[...t[67]||=[W(`Region`,-1)]]),_:1}),U(N(sC),{id:`ai-region`,modelValue:E.region,"onUpdate:modelValue":t[12]||=e=>E.region=e,class:`font-mono`,placeholder:`us-east-1`},null,8,[`modelValue`]),t[68]||=H(`p`,{class:`text-xs text-muted-foreground`},[W(`AWS region for Bedrock. Falls back to `),H(`code`,{class:`font-mono`},`AWS_REGION`),W(` if empty.`)],-1)])):(z(),B(`div`,uP,[U(N(MC),{for:`ai-endpoint`},{default:P(()=>[...t[69]||=[W(`Endpoint`,-1)]]),_:1}),U(N(sC),{id:`ai-endpoint`,modelValue:E.endpoint,"onUpdate:modelValue":t[13]||=e=>E.endpoint=e,class:`font-mono`,placeholder:Fe.value?`http://localhost:11434/v1`:`Default (leave empty)`},null,8,[`modelValue`,`placeholder`]),Fe.value?(z(),B(`p`,dP,[...t[70]||=[W(`Defaults to the local Ollama server. Override only for a remote instance — include the `,-1),H(`code`,{class:`font-mono`},`/v1`,-1),W(` suffix.`,-1)]])):(z(),B(`p`,fP,`Optional — for an in-region or self-hosted / OpenAI-compatible gateway.`))])),t[88]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Translation`,-1),H(`div`,pP,[U(N(MC),{for:`ai-batch`},{default:P(()=>[...t[71]||=[W(`Batch size`,-1)]]),_:1}),U(N(sC),{id:`ai-batch`,modelValue:E.batchSize,"onUpdate:modelValue":t[14]||=e=>E.batchSize=e,modelModifiers:{number:!0},type:`number`,min:`1`,class:`w-28`},null,8,[`modelValue`]),t[72]||=H(`p`,{class:`text-xs text-muted-foreground`},`Strings sent per request.`,-1)]),H(`div`,mP,[U(N(MC),{for:`ai-concurrency`},{default:P(()=>[...t[73]||=[W(`Parallel locales`,-1)]]),_:1}),U(N(sC),{id:`ai-concurrency`,modelValue:E.concurrency,"onUpdate:modelValue":t[15]||=e=>E.concurrency=e,modelModifiers:{number:!0},type:`number`,min:`1`,placeholder:`3`,class:`w-28`},null,8,[`modelValue`]),t[74]||=H(`p`,{class:`text-xs text-muted-foreground`},`How many locales to translate at once.`,-1)]),H(`div`,hP,[U(N(MC),{for:`ai-price-in`},{default:P(()=>[...t[75]||=[W(`Input price ($ / 1M tokens)`,-1)]]),_:1}),U(N(sC),{id:`ai-price-in`,modelValue:E.inputPricePerMTok,"onUpdate:modelValue":t[16]||=e=>E.inputPricePerMTok=e,modelModifiers:{number:!0},type:`number`,min:`0`,step:`0.01`,placeholder:`Auto for Claude models`,class:`w-44`},null,8,[`modelValue`])]),H(`div`,gP,[U(N(MC),{for:`ai-price-out`},{default:P(()=>[...t[76]||=[W(`Output price ($ / 1M tokens)`,-1)]]),_:1}),U(N(sC),{id:`ai-price-out`,modelValue:E.outputPricePerMTok,"onUpdate:modelValue":t[17]||=e=>E.outputPricePerMTok=e,modelModifiers:{number:!0},type:`number`,min:`0`,step:`0.01`,placeholder:`Auto for Claude models`,class:`w-44`},null,8,[`modelValue`]),t[77]||=H(`p`,{class:`text-xs text-muted-foreground`},`Used for the pre-translate cost estimate. Set both to override the built-in Claude prices or to price other models.`,-1)]),t[89]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Context build`,-1),H(`div`,_P,[U(N(MC),{for:`ai-context-batch`},{default:P(()=>[...t[78]||=[W(`Batch size`,-1)]]),_:1}),U(N(sC),{id:`ai-context-batch`,modelValue:E.contextBatchSize,"onUpdate:modelValue":t[18]||=e=>E.contextBatchSize=e,modelModifiers:{number:!0},type:`number`,min:`1`,placeholder:String(E.batchSize||25),class:`w-28`},null,8,[`modelValue`,`placeholder`]),t[79]||=H(`p`,{class:`text-xs text-muted-foreground`},`Keys per request. Defaults to translation batch size.`,-1)]),H(`div`,vP,[U(N(MC),{for:`ai-context-concurrency`},{default:P(()=>[...t[80]||=[W(`Concurrency`,-1)]]),_:1}),U(N(sC),{id:`ai-context-concurrency`,modelValue:E.contextConcurrency,"onUpdate:modelValue":t[19]||=e=>E.contextConcurrency=e,modelModifiers:{number:!0},type:`number`,min:`1`,placeholder:String(E.concurrency||3),class:`w-28`},null,8,[`modelValue`,`placeholder`]),t[81]||=H(`p`,{class:`text-xs text-muted-foreground`},`Parallel context requests. Defaults to parallel locales.`,-1)]),Fe.value?(z(),B(`div`,yP,[U(N(_C),{id:`ai-vision`,modelValue:E.vision,"onUpdate:modelValue":t[20]||=e=>E.vision=e},null,8,[`modelValue`]),H(`div`,bP,[U(N(MC),{for:`ai-vision`},{default:P(()=>[...t[82]||=[W(`Vision`,-1)]]),_:1}),t[83]||=H(`p`,{class:`text-xs text-muted-foreground`},`Enable for models that support image input (e.g. translategemma, llava).`,-1)])])):G(``,!0),Fe.value?(z(),B(`div`,xP,[U(N(MC),{for:`ai-prompt-style`},{default:P(()=>[...t[84]||=[W(`Prompt style`,-1)]]),_:1}),U(N(mS),{"model-value":E.promptStyle||`__default__`,"onUpdate:modelValue":t[21]||=e=>E.promptStyle=e===`__default__`?``:e},{default:P(()=>[U(N(cC),{id:`ai-prompt-style`},{default:P(()=>[U(N(FS),{placeholder:`Default`})]),_:1}),U(N(lC),null,{default:P(()=>[U(N(dC),{value:`__default__`},{default:P(()=>[...t[85]||=[W(`Default`,-1)]]),_:1}),U(N(dC),{value:`translategemma`},{default:P(()=>[...t[86]||=[W(`TranslateGemma`,-1)]]),_:1})]),_:1})]),_:1},8,[`model-value`]),t[87]||=H(`p`,{class:`text-xs text-muted-foreground`},`TranslateGemma uses a role-based system prompt and plain-text output instead of JSON batching.`,-1)])):G(``,!0)])])):d.value===`scan`?(z(),B(`div`,SP,[U(tM,{label:`Flutter accessors`,items:c.scanAccessors,mono:``,placeholder:`translations`,"onUpdate:items":t[22]||=e=>c.scanAccessors=e},{help:P(()=>[...t[90]||=[H(`p`,{class:`text-xs text-muted-foreground`},[W(` Accessors assigned from `),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-[11px]`},`AppLocalizations.of(...)`),W(` are detected automatically. Add a name only if yours isn't found. `)],-1)]]),_:1},8,[`items`]),U(tM,{label:`Custom patterns`,items:c.scanPatterns,mono:``,placeholder:`LocaleKeys\\.(\\w+)\\.tr\\(\\)`,validate:Ke,"onUpdate:items":t[23]||=e=>c.scanPatterns=e},{help:P(()=>[...t[91]||=[H(`p`,{class:`text-xs text-muted-foreground`},` Regex applied to every scanned file — capture group 1 is the key. `,-1)]]),_:1},8,[`items`]),U(tM,{label:`Include globs`,items:c.scanInclude,mono:``,placeholder:`lib/**`,"onUpdate:items":t[24]||=e=>c.scanInclude=e},{help:P(()=>[...t[92]||=[H(`p`,{class:`text-xs text-muted-foreground`},`Limit the scan to these globs. Empty scans everything.`,-1)]]),_:1},8,[`items`]),U(tM,{label:`Exclude globs`,items:c.scanExclude,mono:``,placeholder:`**/*.g.dart`,"onUpdate:items":t[25]||=e=>c.scanExclude=e},{help:P(()=>[...t[93]||=[H(`p`,{class:`text-xs text-muted-foreground`},`Skipped on top of always-excluded dirs (node_modules, build, …).`,-1)]]),_:1},8,[`items`]),U(tM,{label:`Keep keys`,items:c.scanKeep,mono:``,placeholder:`validation.*`,"onUpdate:items":t[26]||=e=>c.scanKeep=e},{help:P(()=>[...t[94]||=[H(`p`,{class:`text-xs text-muted-foreground`},[W(` Key globs always treated as used — for keys consumed by code the scan can't see (framework internals, vendored packages). They never show as unused and are safe from `),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-[11px]`},`prune --unused`),W(`. `)],-1)]]),_:1},8,[`items`])])):d.value===`quality`?(z(),B(`div`,CP,[H(`div`,null,[t[96]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Rules`,-1),H(`div`,wP,[(z(!0),B(R,null,I(N(ej),e=>(z(),B(`div`,{key:e.id,class:`flex items-center justify-between gap-4 p-3.5`},[H(`div`,TP,[H(`div`,EP,[W(j(e.label)+` `,1),H(`code`,DP,j(e.id),1)]),H(`div`,OP,j(e.description),1)]),U(N(mS),{"model-value":c.lintRules[e.id]??e.default,"onUpdate:modelValue":t=>c.lintRules={...c.lintRules,[e.id]:t}},{default:P(()=>[U(N(cC),{class:A([`w-32 shrink-0`,c.lintRules[e.id]===`off`?`text-muted-foreground`:``])},{default:P(()=>[U(N(FS))]),_:1},8,[`class`]),U(N(lC),null,{default:P(()=>[U(N(dC),{value:`error`},{default:P(()=>[W(`Error`+j(e.default===`error`?` ·`:``),1)]),_:2},1024),U(N(dC),{value:`warn`},{default:P(()=>[W(`Warning`+j(e.default===`warn`?` ·`:``),1)]),_:2},1024),U(N(dC),{value:`off`},{default:P(()=>[...t[95]||=[W(`Off`,-1)]]),_:1})]),_:2},1024)]),_:2},1032,[`model-value`,`onUpdate:modelValue`])]))),128))]),t[97]||=H(`p`,{class:`mt-2 text-xs text-muted-foreground`},`· marks the built-in default.`,-1)]),U(tM,{label:`Ignore keys`,items:c.lintIgnore,mono:``,placeholder:`legacy.*`,"onUpdate:items":t[27]||=e=>c.lintIgnore=e},{help:P(()=>[...t[98]||=[H(`p`,{class:`text-xs text-muted-foreground`},` Key globs excluded from every check — for legacy or generated keys you don't maintain. `,-1)]]),_:1},8,[`items`])])):d.value===`dictionary`?(z(),B(`div`,kP,[H(`div`,AP,[(z(!0),B(R,null,I(c.customWords,e=>(z(),B(`span`,{key:e,class:`inline-flex items-center gap-1.5 rounded-lg border bg-accent px-2.5 py-1.5 font-mono text-sm`},[W(j(e)+` `,1),H(`button`,{type:`button`,class:`flex size-[18px] items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove ${e}`,onClick:t=>Ge(e)},[U(N(kd),{class:`size-3`})],8,jP)]))),128)),c.customWords.length===0?(z(),B(`p`,MP,`No custom words yet.`)):G(``,!0)]),H(`div`,NP,[U(N(MC),{for:`add-word`},{default:P(()=>[...t[99]||=[W(`Add word`,-1)]]),_:1}),H(`div`,PP,[U(N(sC),{id:`add-word`,modelValue:Ue.value,"onUpdate:modelValue":t[28]||=e=>Ue.value=e,class:`font-mono`,placeholder:`Glotfile`,onKeydown:Xl(Jl(We,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),U(N($),{variant:`outline`,onClick:We},{default:P(()=>[U(N(od),{class:`size-4`}),t[100]||=W(` Add`,-1)]),_:1})])])])):d.value===`editor`?(z(),B(`div`,FP,[H(`div`,IP,[H(`div`,LP,[U(N(MC),{for:`editor-select`},{default:P(()=>[...t[101]||=[W(`Editor`,-1)]]),_:1}),U(hc,{"enter-active-class":`transition duration-150 ease-out`,"enter-from-class":`opacity-0 translate-y-0.5`,"enter-to-class":`opacity-100 translate-y-0`,"leave-active-class":`transition duration-300 ease-in`,"leave-from-class":`opacity-100 translate-y-0`,"leave-to-class":`opacity-0`},{default:P(()=>[de.value?(z(),B(`span`,RP,[U(N(Du),{class:`size-3`}),t[102]||=W(` Saved `,-1)])):G(``,!0)]),_:1})]),U(N(mS),{"model-value":N(CT),"onUpdate:modelValue":pe},{default:P(()=>[U(N(cC),{id:`editor-select`},{default:P(()=>[U(N(FS),{placeholder:`Select editor`})]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(N(bT),e=>(z(),V(N(dC),{key:e.id,value:e.id},{default:P(()=>[W(j(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),H(`p`,zP,[U(N(ed),{class:`size-3.5`}),t[103]||=W(` Stored locally in `,-1),t[104]||=H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`.glotfile/`,-1),t[105]||=W(` — clicking a usage opens the file via its URL scheme. `,-1)])])):G(``,!0)])]),oe.includes(d.value)?G(``,!0):(z(),B(`div`,{key:0,class:A([`absolute bottom-5 left-1/2 flex min-w-[400px] max-w-[calc(100%-3.5rem)] -translate-x-1/2 items-center gap-3 rounded-[14px] border bg-card px-4 py-2.5 shadow-lg transition-[border-color,box-shadow]`,ce.value>0?`border-primary/40 shadow-primary/10`:`border-border`])},[H(`span`,{class:A([`flex min-w-0 flex-1 items-center gap-2 overflow-hidden text-ellipsis whitespace-nowrap text-[13px]`,ce.value>0?`text-foreground`:`text-muted-foreground`])},[ce.value>0?(z(),B(R,{key:0},[H(`span`,BP,j(ce.value),1),W(` Unsaved `+j(ce.value===1?`change`:`changes`)+` in `,1),H(`strong`,VP,j(le.value.join(`, `)),1)],64)):(z(),B(R,{key:1},[U(N(Du),{class:`size-3.5 shrink-0`}),t[106]||=W(` All changes saved `,-1)],64))],2),H(`div`,HP,[U(N($),{variant:`ghost`,size:`sm`,disabled:ce.value===0,onClick:t[29]||=e=>f.value=!f.value},{default:P(()=>[U(N(Ed),{class:`size-4`}),t[107]||=W(` Discard `,-1)]),_:1},8,[`disabled`]),f.value?(z(),B(`div`,UP,[t[110]||=H(`p`,{class:`text-[13px] font-semibold`},`Discard all changes?`,-1),H(`p`,WP,` Reverts every unsaved edit in `+j(le.value.join(`, `))+`. `,1),H(`div`,GP,[U(N($),{size:`sm`,variant:`outline`,onClick:t[30]||=e=>f.value=!1},{default:P(()=>[...t[108]||=[W(`Keep editing`,-1)]]),_:1}),U(N($),{size:`sm`,variant:`destructive`,onClick:ve},{default:P(()=>[...t[109]||=[W(`Discard`,-1)]]),_:1})])])):G(``,!0)]),U(N($),{size:`sm`,disabled:ce.value===0||u.value,onClick:_e},{default:P(()=>[U(N(ud),{class:`size-4`}),t[111]||=W(` Save changes `,-1)]),_:1},8,[`disabled`])],2))])])):(z(),B(`div`,VM,` Loading settings… `)),U(hc,{"enter-active-class":`transition duration-150 ease-out`,"enter-from-class":`opacity-0`,"enter-to-class":`opacity-100`,"leave-active-class":`transition duration-100 ease-in`,"leave-from-class":`opacity-100`,"leave-to-class":`opacity-0`},{default:P(()=>[g.value?(z(),B(`div`,{key:0,class:`fixed inset-0 z-[70] flex items-center justify-center bg-background/70 p-6 backdrop-blur-sm`,onClick:Jl(xe,[`self`])},[H(`div`,KP,[H(`h3`,qP,[U(N(Td),{class:`size-4 text-amber-500`}),t[112]||=W(` Unsaved changes `,-1)]),H(`p`,JP,[W(` You have `+j(ce.value)+` unsaved `+j(ce.value===1?`change`:`changes`)+` in `,1),H(`strong`,YP,j(le.value.join(`, `)),1),t[113]||=W(`. `,-1),H(`span`,XP,`Leaving now discards `+j(ce.value===1?`it`:`them`)+`.`,1)]),H(`div`,ZP,[U(N($),{size:`sm`,variant:`outline`,class:`mr-auto`,onClick:xe},{default:P(()=>[...t[114]||=[W(`Keep editing`,-1)]]),_:1}),U(N($),{size:`sm`,variant:`destructive`,onClick:Se},{default:P(()=>[U(N(Ed),{class:`size-4`}),t[115]||=W(` Discard & leave `,-1)]),_:1}),U(N($),{size:`sm`,disabled:u.value,onClick:Ce},{default:P(()=>[U(N(ud),{class:`size-4`}),t[116]||=W(` Save & leave `,-1)]),_:1},8,[`disabled`])])])])):G(``,!0)]),_:1}),U(hc,{"enter-active-class":`transition duration-200 ease-out`,"enter-from-class":`opacity-0 -translate-y-1.5`,"enter-to-class":`opacity-100 translate-y-0`,"leave-active-class":`transition duration-150 ease-in`,"leave-from-class":`opacity-100 translate-y-0`,"leave-to-class":`opacity-0 -translate-y-1.5`},{default:P(()=>[_.value?(z(),B(`div`,QP,[U(N(Du),{class:`size-3.5`}),t[117]||=W(` Settings saved `,-1)])):G(``,!0)]),_:1}),qe.value?(z(),V(BM,{key:2,ref_key:`syncWizardRef`,ref:Je,onVnodeMounted:t[31]||=e=>Je.value?.init(),onDismiss:t[32]||=e=>qe.value=!1,onSynced:Ye},null,512)):G(``,!0)],64))}}),eF={class:`min-h-0 flex-1 overflow-y-auto`},tF={key:0,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},nF={key:1,class:`flex h-full items-center justify-center p-8`},rF={class:`flex max-w-md flex-col items-center gap-3 text-center text-muted-foreground`},iF={key:2,class:`grid grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-3 p-6`},aF=[`onClick`],oF={class:`flex aspect-video items-center justify-center overflow-hidden border-b bg-muted/30`},sF=[`src`,`alt`],cF={class:`flex flex-col gap-0.5 p-2.5`},lF={class:`truncate font-mono text-xs font-medium`},uF={class:`truncate text-xs text-muted-foreground`},dF={key:1,class:`truncate text-xs text-muted-foreground`},fF={class:`flex max-h-[70vh] items-center justify-center overflow-auto rounded-md border bg-muted/30 p-2`},pF=[`src`,`alt`],mF={key:0,class:`text-sm text-muted-foreground`},hF=F({__name:`ScreenshotsView`,setup(e){let t=un(null),n=M(!1),r=M(null);async function i(){t.value=await jd(),n.value=!0}i(),Th(i);let a=q(()=>t.value?.config.sourceLocale??``),o=q(()=>{let e=t.value;return e?Object.entries(e.keys).filter(([,e])=>!!e.screenshot).map(([e,t])=>({key:e,entry:t,screenshot:t.screenshot,source:t.values[a.value]?.value??``})).sort((e,t)=>e.key.localeCompare(t.key)):[]});return(e,t)=>(z(),B(`div`,eF,[n.value?o.value.length===0?(z(),B(`div`,nF,[H(`div`,rF,[U(N(Ju),{class:`size-8 opacity-60`}),t[2]||=H(`p`,{class:`text-sm`},` No screenshots yet — add one from a key's detail panel in the Editor. `,-1)])])):(z(),B(`div`,iF,[(z(!0),B(R,null,I(o.value,e=>(z(),B(`button`,{key:e.key,type:`button`,class:`group flex flex-col overflow-hidden rounded-lg border bg-card text-left shadow-sm transition-colors hover:border-ring focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:t=>r.value=e},[H(`div`,oF,[H(`img`,{src:`/`+e.screenshot,alt:`Screenshot for ${e.key}`,class:`h-full w-full object-contain`},null,8,sF)]),H(`div`,cF,[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,lF,j(e.key),1)]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(e.key),1)]),_:2},1024)]),_:2},1024),e.source?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,uF,j(e.source),1)]),_:2},1024),U(N(qC),null,{default:P(()=>[W(j(e.source),1)]),_:2},1024)]),_:2},1024)):(z(),B(`span`,dF,`—`))])],8,aF))),128))])):(z(),B(`div`,tF,` Loading screenshots… `)),U(N(C_),{open:r.value!==null,"onUpdate:open":t[1]||=e=>{e||(r.value=null)}},{default:P(()=>[r.value?(z(),V(N(NC),{key:0,class:`max-w-3xl`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),{class:`break-all font-mono text-sm`},{default:P(()=>[W(j(r.value.key),1)]),_:1}),U(N(LC),null,{default:P(()=>[W(j(r.value.source||`—`),1)]),_:1})]),_:1}),H(`div`,fF,[H(`img`,{src:`/`+r.value.screenshot,alt:`Screenshot for ${r.value.key}`,class:`max-h-[65vh] w-auto object-contain`},null,8,pF)]),r.value.entry.context?(z(),B(`p`,mF,[t[3]||=H(`span`,{class:`font-medium text-foreground`},`Context:`,-1),W(` `+j(r.value.entry.context),1)])):G(``,!0),U(N(FC),null,{default:P(()=>[U(N($),{size:`sm`,onClick:t[0]||=e=>N(kh)(r.value.key)},{default:P(()=>[U(N(yd),{class:`size-4`}),t[4]||=W(` Open in editor `,-1)]),_:1})]),_:1})]),_:1})):G(``,!0)]),_:1},8,[`open`])]))}}),gF={class:`min-h-0 flex-1 overflow-y-auto p-4`},_F={key:0,class:`mt-8 text-center text-sm text-muted-foreground`},vF={key:1,class:`mx-auto flex max-w-4xl flex-col gap-4`},yF={key:0,class:`flex flex-wrap gap-1.5`},bF=[`onClick`],xF={class:`flex flex-wrap items-center gap-3 border-b px-4 py-2.5`},SF={class:`text-sm font-medium`},CF={class:`text-sm text-muted-foreground`},wF={class:`border-b`},TF={class:`overflow-x-auto whitespace-pre-wrap break-words bg-muted/40 px-4 py-3 font-mono text-xs leading-relaxed`},EF={class:`divide-y`},DF={class:`flex items-center gap-2`},OF={class:`truncate font-mono text-xs text-muted-foreground`},kF={class:`flex items-start gap-2 text-sm`},AF={class:`min-w-0 flex-1 break-words`},jF={class:`min-w-0 flex-1 break-words`},MF={key:0,class:`text-destructive`},NF={key:1},PF={key:0,class:`text-xs text-muted-foreground`},FF={key:1,class:`flex flex-wrap gap-1`},IF={key:2,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},LF={class:`truncate font-mono`},RF={key:1,class:`flex flex-col gap-1.5 px-4 py-3`},zF={key:0,class:`flex items-center gap-2`},BF={class:`truncate font-mono text-xs text-muted-foreground`},VF={key:1,class:`flex items-start gap-2 text-sm`},HF=F({__name:`ActivityView`,setup(e){let t=M([]),n=M(!0),r=M(`all`);async function i(){try{t.value=await Ef()}catch(e){Q.error(e.message)}finally{n.value=!1}}Gi(i),Th(i);let a=e=>e.kind===`translate`||e.kind===`context`,o=q(()=>[...new Set(t.value.map(e=>e.kind))]),s=q(()=>r.value===`all`?t.value:t.value.filter(e=>e.kind===r.value)),c=e=>lh(`rounded-full border px-2.5 py-0.5 text-xs transition-colors`,r.value===e?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`);function l(e,t){return e.results?.find(e=>e.id===t)}function u(e){return e.doNotTranslate?`${e.term} (do-not-translate)`:e.forced?`${e.term} → ${e.forced}`:e.term}function d(e){return e==null||e===``?`∅`:typeof e==`string`?e:JSON.stringify(e)}let f=e=>typeof e==`object`&&!!e;return(e,i)=>(z(),B(`div`,gF,[!n.value&&t.value.length===0?(z(),B(`p`,_F,` No activity yet — edits, translations, and config changes will show up here. `)):(z(),B(`div`,vF,[o.value.length>1?(z(),B(`div`,yF,[H(`button`,{type:`button`,class:A(c(`all`)),onClick:i[0]||=e=>r.value=`all`},`All`,2),(z(!0),B(R,null,I(o.value,e=>(z(),B(`button`,{key:e,type:`button`,class:A(c(e)),onClick:t=>r.value=e},j(e),11,bF))),128))])):G(``,!0),(z(!0),B(R,null,I(s.value,(e,t)=>(z(),B(`article`,{key:`${e.at}-${t}`,class:`rounded-lg border bg-card`},[H(`header`,xF,[H(`span`,SF,j(new Date(e.at).toLocaleString()),1),U(N(hC),{variant:`outline`,class:`font-mono uppercase`},{default:P(()=>[W(j(e.kind),1)]),_:2},1024),H(`span`,CF,j(e.summary),1),e.model?(z(),V(N(hC),{key:0,variant:`secondary`,class:`ml-auto font-mono`},{default:P(()=>[W(j(e.model),1)]),_:2},1024)):G(``,!0)]),a(e)?(z(),B(R,{key:0},[H(`details`,wF,[i[1]||=H(`summary`,{class:`cursor-pointer select-none px-4 py-2 text-xs font-medium text-muted-foreground hover:text-foreground`},` System prompt `,-1),H(`pre`,TF,j(e.system),1)]),H(`ul`,EF,[(z(!0),B(R,null,I(e.items,t=>(z(),B(`li`,{key:t.id,class:`flex flex-col gap-1.5 px-4 py-3`},[H(`div`,DF,[H(`span`,OF,j(t.key),1),t.targetLocale?(z(),V(N(hC),{key:0,variant:`outline`,class:`shrink-0 font-mono uppercase`},{default:P(()=>[W(j(t.targetLocale),1)]),_:2},1024)):G(``,!0)]),H(`div`,kF,[H(`span`,AF,j(t.source),1),U(N(bu),{class:`mt-0.5 size-4 shrink-0 text-muted-foreground`}),H(`span`,jF,[l(e,t.id)?.error?(z(),B(`span`,MF,j(l(e,t.id)?.error),1)):(z(),B(`span`,NF,j(l(e,t.id)?.translation??l(e,t.id)?.value),1))])]),t.context?(z(),B(`p`,PF,j(t.context),1)):G(``,!0),t.glossary?.length?(z(),B(`div`,FF,[(z(!0),B(R,null,I(t.glossary,e=>(z(),B(`span`,{key:e.term,class:`rounded bg-muted px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground`},j(u(e)),1))),128))])):G(``,!0),t.screenshot?(z(),B(`div`,IF,[U(N(Yu),{class:`size-3.5 shrink-0`}),H(`span`,LF,j(t.screenshot),1)])):G(``,!0)]))),128))])],64)):e.key||e.before!==void 0||e.after!==void 0?(z(),B(`div`,RF,[e.key?(z(),B(`div`,zF,[H(`span`,BF,j(e.key),1),e.locale?(z(),V(N(hC),{key:0,variant:`outline`,class:`shrink-0 font-mono uppercase`},{default:P(()=>[W(j(e.locale),1)]),_:2},1024)):G(``,!0)])):G(``,!0),e.before!==void 0||e.after!==void 0?(z(),B(`div`,VF,[e.before===void 0?G(``,!0):(z(),B(`span`,{key:0,class:A(N(lh)(`min-w-0 flex-1 break-words text-muted-foreground`,f(e.before)&&`font-mono text-xs`))},j(d(e.before)),3)),e.before!==void 0&&e.after!==void 0?(z(),V(N(bu),{key:1,class:`mt-0.5 size-4 shrink-0 text-muted-foreground`})):G(``,!0),e.after===void 0?G(``,!0):(z(),B(`span`,{key:2,class:A(N(lh)(`min-w-0 flex-1 break-words`,f(e.after)&&`font-mono text-xs`))},j(d(e.after)),3))])):G(``,!0)])):G(``,!0)]))),128))]))]))}}),UF=[{id:`home`,title:`Home`,section:``,html:`<h1>Glotfile</h1>
7
+ `))}return()=>i.value||r.value||o.value?Ks(t.default({present:o.value})[0],{ref:e=>{let t=lg(e);return t?.hasAttribute===void 0||(t?.hasAttribute(`data-reka-popper-content-wrapper`)?a.value=t.firstElementChild:a.value=t),t}}):null}}),__=F({name:`PrimitiveSlot`,inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;let e=vg(n.default()),r=e.findIndex(e=>e.type!==ts);if(r===-1)return e;let i=e[r];delete i.props?.ref;let a=i.props?K(t,i.props):t,o=gs({...i,props:{}},a);return e.length===1?o:(e[r]=o,e)}}}),v_=[`area`,`img`,`input`],y_=F({name:`Primitive`,inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:`div`}},setup(e,{attrs:t,slots:n}){let r=e.asChild?`template`:e.as;return typeof r==`string`&&v_.includes(r)?()=>Ks(r,t):r===`template`?()=>Ks(__,t,{default:n.default}):()=>Ks(e.as,t,{default:n.default})}});function b_(){let e=M();return{primitiveElement:e,currentElement:q(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:lg(e))}}var[x_,S_]=Rh(`DialogRoot`),C_=F({inheritAttrs:!1,__name:`DialogRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=_g(n,`open`,t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),i=M(),a=M(),{modal:o}=yn(n);return S_({open:r,modal:o,openModal:()=>{r.value=!0},onOpenChange:e=>{r.value=e},onOpenToggle:()=>{r.value=!r.value},contentId:``,titleId:``,descriptionId:``,triggerElement:i,contentElement:a}),(e,t)=>L(e.$slots,`default`,{open:N(r),close:()=>r.value=!1})}}),w_=F({__name:`DialogClose`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e;Bg();let n=x_();return(e,r)=>(z(),V(N(y_),K(t,{type:e.as===`button`?`button`:void 0,onClick:r[0]||=e=>N(n).onOpenChange(!1)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`type`]))}}),T_=`dismissableLayer.pointerDownOutside`,E_=`dismissableLayer.focusOutside`;function D_(e,t){if(!(t instanceof Element))return!1;let n=t.closest(`[data-dismissable-layer]`),r=e.dataset.dismissableLayer===``?e:e.querySelector(`[data-dismissable-layer]`),i=Array.from(e.ownerDocument.querySelectorAll(`[data-dismissable-layer]`));return!!(n&&(r===n||i.indexOf(r)<i.indexOf(n)))}function O_(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=M(!1),a=M(()=>{});return Cr(o=>{if(!Kh||!mn(n))return;let s=async n=>{let o=n.target;if(!(!t?.value||!o)){if(D_(t.value,o)){i.value=!1;return}if(n.target&&!i.value){let t={originalEvent:n};function i(){Bh(T_,e,t)}n.pointerType===`touch`?(r.removeEventListener(`click`,a.value),a.value=i,r.addEventListener(`click`,a.value,{once:!0})):i()}else r.removeEventListener(`click`,a.value);i.value=!1}},c=window.setTimeout(()=>{r.addEventListener(`pointerdown`,s)},0);o(()=>{window.clearTimeout(c),r.removeEventListener(`pointerdown`,s),r.removeEventListener(`click`,a.value)})}),{onPointerDownCapture:()=>{mn(n)&&(i.value=!0)}}}function k_(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=M(!1);return Cr(a=>{if(!Kh||!mn(n))return;let o=async n=>{if(!t?.value)return;await Qn(),await Qn();let r=n.target;!t.value||!r||D_(t.value,r)||n.target&&!i.value&&Bh(E_,e,{originalEvent:n})};r.addEventListener(`focusin`,o),a(()=>r.removeEventListener(`focusin`,o))}),{onFocusCapture:()=>{mn(n)&&(i.value=!0)},onBlurCapture:()=>{mn(n)&&(i.value=!1)}}}var A_=Yt({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set}),j_=F({__name:`DismissableLayer`,props:{disableOutsidePointerEvents:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,{forwardRef:i,currentElement:a}=Bg(),o=q(()=>a.value?.ownerDocument??globalThis.document),s=q(()=>A_.layersRoot),c=q(()=>a.value?Array.from(s.value).indexOf(a.value):-1),l=q(()=>A_.layersWithOutsidePointerEventsDisabled.size>0),u=q(()=>{let e=Array.from(s.value),[t]=[...A_.layersWithOutsidePointerEventsDisabled].slice(-1),n=e.indexOf(t);return c.value>=n}),d=O_(async e=>{let t=[...A_.branches].some(t=>t?.contains(e.target));!u.value||t||(r(`pointerDownOutside`,e),r(`interactOutside`,e),await Qn(),e.defaultPrevented||r(`dismiss`))},a),f=k_(e=>{[...A_.branches].some(t=>t?.contains(e.target))||(r(`focusOutside`,e),r(`interactOutside`,e),e.defaultPrevented||r(`dismiss`))},a);return mg(`Escape`,e=>{c.value===s.value.size-1&&(r(`escapeKeyDown`,e),e.defaultPrevented||r(`dismiss`))}),Cr(e=>{a.value&&(n.disableOutsidePointerEvents&&(A_.layersWithOutsidePointerEventsDisabled.size===0&&(A_.originalBodyPointerEvents=o.value.body.style.pointerEvents,o.value.body.style.pointerEvents=`none`),A_.layersWithOutsidePointerEventsDisabled.add(a.value)),s.value.add(a.value),e(()=>{n.disableOutsidePointerEvents&&A_.layersWithOutsidePointerEventsDisabled.size===1&&!Vh(A_.originalBodyPointerEvents)&&(o.value.body.style.pointerEvents=A_.originalBodyPointerEvents)}))}),Cr(e=>{e(()=>{a.value&&(s.value.delete(a.value),A_.layersWithOutsidePointerEventsDisabled.delete(a.value))})}),(e,t)=>(z(),V(N(y_),{ref:N(i),"as-child":e.asChild,as:e.as,"data-dismissable-layer":``,style:me({pointerEvents:l.value?u.value?`auto`:`none`:void 0}),onFocusCapture:N(f).onFocusCapture,onBlurCapture:N(f).onBlurCapture,onPointerdownCapture:N(d).onPointerDownCapture},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`style`,`onFocusCapture`,`onBlurCapture`,`onPointerdownCapture`]))}}),M_=Gh(()=>M([]));function N_(){let e=M_();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=P_(e.value,t),e.value.unshift(t)},remove(t){e.value=P_(e.value,t),e.value[0]?.resume()}}}function P_(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}var F_=`focusScope.autoFocusOnMount`,I_=`focusScope.autoFocusOnUnmount`,L_={bubbles:!1,cancelable:!0};function R_(e,{select:t=!1}={}){let n=zh();for(let r of e)if(W_(r,{select:t}),zh()!==n)return!0}function z_(e){let t=B_(e);return[V_(t,e),V_(t.reverse(),e)]}function B_(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function V_(e,t){for(let n of e)if(!H_(n,{upTo:t}))return n}function H_(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function U_(e){return e instanceof HTMLInputElement&&`select`in e}function W_(e,{select:t=!1}={}){if(e&&e.focus){let n=zh();e.focus({preventScroll:!0}),e!==n&&U_(e)&&t&&e.select()}}var G_=F({__name:`FocusScope`,props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`mountAutoFocus`,`unmountAutoFocus`],setup(e,{emit:t}){let n=e,r=t,{currentRef:i,currentElement:a}=Bg(),o=M(null),s=N_(),c=Yt({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});Cr(e=>{if(!Kh)return;let t=a.value;if(!n.trapped)return;function r(e){if(c.paused||!t)return;let n=e.target;t.contains(n)?o.value=n:W_(o.value,{select:!0})}function i(e){if(c.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||W_(o.value,{select:!0}))}function s(e){let n=o.value;n!==null&&e.some(e=>e.removedNodes.length>0)&&(t.contains(n)||W_(t))}document.addEventListener(`focusin`,r),document.addEventListener(`focusout`,i);let l=new MutationObserver(s);t&&l.observe(t,{childList:!0,subtree:!0}),e(()=>{document.removeEventListener(`focusin`,r),document.removeEventListener(`focusout`,i),l.disconnect()})}),Cr(async e=>{let t=a.value;if(await Qn(),!t)return;s.add(c);let n=zh();if(!t.contains(n)){let e=new CustomEvent(F_,L_);t.addEventListener(F_,e=>r(`mountAutoFocus`,e)),t.dispatchEvent(e),e.defaultPrevented||(R_(B_(t),{select:!0}),zh()===n&&W_(t))}e(()=>{t.removeEventListener(F_,e=>r(`mountAutoFocus`,e));let e=new CustomEvent(I_,L_),i=e=>{r(`unmountAutoFocus`,e)};t.addEventListener(I_,i),t.dispatchEvent(e),t.setAttribute(`data-focus-scope-unmounting`,``),setTimeout(()=>{e.defaultPrevented||W_(n??document.body,{select:!0}),t.removeEventListener(I_,i),s.remove(c),t.removeAttribute(`data-focus-scope-unmounting`)},0)})});function l(e){if(!n.loop&&!n.trapped||c.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,r=zh();if(t&&r){let t=e.currentTarget,[i,a]=z_(t);i&&a?!e.shiftKey&&r===a?(e.preventDefault(),n.loop&&W_(i,{select:!0})):e.shiftKey&&r===i&&(e.preventDefault(),n.loop&&W_(a,{select:!0})):r===t&&e.preventDefault()}}return(e,t)=>(z(),V(N(y_),{ref_key:`currentRef`,ref:i,tabindex:`-1`,"as-child":e.asChild,as:e.as,onKeydown:l},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}}),K_=`menu.itemSelect`,q_=[`Enter`,` `],J_=[`ArrowDown`,`PageUp`,`Home`],Y_=[`ArrowUp`,`PageDown`,`End`],X_=[...J_,...Y_];[...q_],[...q_];function Z_(e){return e?`open`:`closed`}function Q_(e){let t=zh();for(let n of e)if(n===t||(n.focus(),zh()!==t))return}function $_(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function ev(e,t){return t?$_({x:e.clientX,y:e.clientY},t):!1}function tv(e){return e.pointerType===`mouse`}var nv=F({__name:`DialogContentImpl`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=x_(),{forwardRef:a,currentElement:o}=Bg();return i.titleId||=s_(void 0,`reka-dialog-title`),i.descriptionId||=s_(void 0,`reka-dialog-description`),Gi(()=>{i.contentElement=o,zh()!==document.body&&(i.triggerElement.value=zh())}),(e,t)=>(z(),V(N(G_),{"as-child":``,loop:``,trapped:n.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(j_),K({id:N(i).contentId,ref:N(a),as:e.as,"as-child":e.asChild,"disable-outside-pointer-events":e.disableOutsidePointerEvents,role:`dialog`,"aria-describedby":N(i).descriptionId,"aria-labelledby":N(i).titleId,"data-state":N(Z_)(N(i).open.value)},e.$attrs,{onDismiss:t[0]||=e=>N(i).onOpenChange(!1),onEscapeKeyDown:t[1]||=e=>r(`escapeKeyDown`,e),onFocusOutside:t[2]||=e=>r(`focusOutside`,e),onInteractOutside:t[3]||=e=>r(`interactOutside`,e),onPointerDownOutside:t[4]||=e=>r(`pointerDownOutside`,e)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`as`,`as-child`,`disable-outside-pointer-events`,`aria-describedby`,`aria-labelledby`,`data-state`])]),_:3},8,[`trapped`]))}}),rv=F({__name:`DialogContentModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=x_(),a=Pg(r),{forwardRef:o,currentElement:s}=Bg();return a_(s),(e,t)=>(z(),V(nv,K({...n,...N(a)},{ref:N(o),"trap-focus":N(i).open.value,"disable-outside-pointer-events":!0,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(e.preventDefault(),N(i).triggerElement.value?.focus())},onPointerDownOutside:t[1]||=e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()},onFocusOutside:t[2]||=e=>{e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),iv=F({__name:`DialogContentNonModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=Pg(t);Bg();let i=x_(),a=M(!1),o=M(!1);return(e,t)=>(z(),V(nv,K({...n,...N(r)},{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(a.value||N(i).triggerElement.value?.focus(),e.preventDefault()),a.value=!1,o.value=!1},onInteractOutside:t[1]||=e=>{e.defaultPrevented||(a.value=!0,e.detail.originalEvent.type===`pointerdown`&&(o.value=!0));let t=e.target;N(i).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&o.value&&e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),av=F({__name:`DialogContent`,props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=x_(),a=Pg(r),{forwardRef:o}=Bg();return(e,t)=>(z(),V(N(g_),{present:e.forceMount||N(i).open.value},{default:P(()=>[N(i).modal.value?(z(),V(rv,K({key:0,ref:N(o)},{...n,...N(a),...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(iv,K({key:1,ref:N(o)},{...n,...N(a),...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),ov=F({__name:`DialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(e){let t=e;Bg();let n=x_();return(e,r)=>(z(),V(N(y_),K(t,{id:N(n).descriptionId}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),sv=F({__name:`DialogOverlayImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=x_();return kg(!0),Bg(),(e,n)=>(z(),V(N(y_),{as:e.as,"as-child":e.asChild,"data-state":N(t).open.value?`open`:`closed`,style:{"pointer-events":`auto`},onPointerdown:n[0]||=Jl(()=>{},[`left`,`self`,`prevent`])},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`]))}}),cv=F({__name:`DialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=x_(),{forwardRef:n}=Bg();return(e,r)=>N(t)?.modal.value?(z(),V(N(g_),{key:0,present:e.forceMount||N(t).open.value},{default:P(()=>[U(sv,K(e.$attrs,{ref:N(n),as:e.as,"as-child":e.asChild}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`as`,`as-child`])]),_:3},8,[`present`])):G(`v-if`,!0)}}),lv=F({__name:`Teleport`,props:{to:{type:null,required:!1,default:`body`},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=dg();return(e,n)=>N(t)||e.forceMount?(z(),V(Vr,{key:0,to:e.to,disabled:e.disabled,defer:e.defer},[L(e.$slots,`default`)],8,[`to`,`disabled`,`defer`])):G(`v-if`,!0)}}),uv=F({__name:`DialogPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),dv=F({__name:`DialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(e){let t=e,n=x_();return Bg(),(e,r)=>(z(),V(N(y_),K(t,{id:N(n).titleId}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),fv=`data-reka-collection-item`;function pv(e={}){let{key:t=``,isProvider:n=!1}=e,r=`${t}CollectionProvider`,i;n?(i={collectionRef:M(),itemMap:M(new Map)},vr(r,i)):i=yr(r);let a=(e=!1)=>{let t=i.collectionRef.value;if(!t)return[];let n=Array.from(t.querySelectorAll(`[${fv}]`)),r=Array.from(i.itemMap.value.values()).sort((e,t)=>n.indexOf(e.ref)-n.indexOf(t.ref));return e?r:r.filter(e=>e.ref.dataset.disabled!==``)},o=F({name:`CollectionSlot`,inheritAttrs:!1,setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:a}=b_();return Er(a,()=>{i.collectionRef.value=a.value}),()=>Ks(__,{ref:r,...n},t)}}),s=F({name:`CollectionItem`,inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:a}=b_();return Cr(t=>{if(a.value){let n=on(a.value);i.itemMap.value.set(n,{ref:a.value,value:e.value}),t(()=>i.itemMap.value.delete(n))}}),()=>Ks(__,{...n,[fv]:``,ref:r},t)}});return{getItems:a,reactiveItems:q(()=>Array.from(i.itemMap.value.values())),itemMapSize:q(()=>i.itemMap.value.size),CollectionSlot:o,CollectionItem:s}}var mv=F({__name:`VisuallyHidden`,props:{feature:{type:String,required:!1,default:`focusable`},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(z(),V(N(y_),{as:e.as,"as-child":e.asChild,"aria-hidden":e.feature===`focusable`?`true`:void 0,"data-hidden":e.feature===`fully-hidden`?``:void 0,tabindex:e.feature===`fully-hidden`?`-1`:void 0,style:{position:`absolute`,border:0,width:`1px`,height:`1px`,padding:0,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,clipPath:`inset(50%)`,whiteSpace:`nowrap`,wordWrap:`normal`,top:`-1px`,left:`-1px`}},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`aria-hidden`,`data-hidden`,`tabindex`]))}}),hv=F({inheritAttrs:!1,__name:`VisuallyHiddenInputBubble`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(e){let t=e,{primitiveElement:n,currentElement:r}=b_();return Er(q(()=>t.checked??t.value),(e,t)=>{if(!r.value)return;let n=r.value,i=window.HTMLInputElement.prototype,a=Object.getOwnPropertyDescriptor(i,`value`).set;if(a&&e!==t){let t=new Event(`input`,{bubbles:!0}),r=new Event(`change`,{bubbles:!0});a.call(n,e),n.dispatchEvent(t),n.dispatchEvent(r)}}),(e,r)=>(z(),V(mv,K({ref_key:`primitiveElement`,ref:n},{...t,...e.$attrs},{as:`input`}),null,16))}}),gv=F({inheritAttrs:!1,__name:`VisuallyHiddenInput`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(e){let t=e,n=q(()=>typeof t.value==`object`&&Array.isArray(t.value)&&t.value.length===0&&t.required),r=q(()=>typeof t.value==`string`||typeof t.value==`number`||typeof t.value==`boolean`||t.value===null||t.value===void 0?[{name:t.name,value:t.value}]:typeof t.value==`object`&&Array.isArray(t.value)?t.value.flatMap((e,n)=>typeof e==`object`?Object.entries(e).map(([e,r])=>({name:`${t.name}[${n}][${e}]`,value:r})):{name:`${t.name}[${n}]`,value:e}):t.value!==null&&typeof t.value==`object`&&!Array.isArray(t.value)?Object.entries(t.value).map(([e,n])=>({name:`${t.name}[${e}]`,value:n})):[]);return(e,i)=>(z(),B(R,null,[G(` We render single input if it's required `),n.value?(z(),V(hv,K({key:e.name},{...t,...e.$attrs},{name:e.name,value:e.value}),null,16,[`name`,`value`])):(z(!0),B(R,{key:1},I(r.value,n=>(z(),V(hv,K({key:n.name},{ref_for:!0},{...t,...e.$attrs},{name:n.name,value:n.value}),null,16,[`name`,`value`]))),128))],2112))}});function _v(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>vv(e,t,n)):vv(e,t,n)}function vv(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:Fh(e,t)}var yv=`rovingFocusGroup.onEntryFocus`,bv={bubbles:!1,cancelable:!0},xv={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Sv(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Cv(e,t,n){let r=Sv(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return xv[r]}function wv(e,t=!1){let n=zh();for(let r of e)if(r===n||(r.focus({preventScroll:t}),zh()!==n))return}function Tv(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[Ev,Dv]=Rh(`ListboxRoot`),Ov=F({__name:`ListboxRoot`,props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},orientation:{type:String,required:!1,default:`vertical`},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},selectionBehavior:{type:String,required:!1,default:`toggle`},highlightOnHover:{type:Boolean,required:!1},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`],setup(e,{expose:t,emit:n}){let r=e,i=n,{multiple:a,highlightOnHover:o,orientation:s,disabled:c,selectionBehavior:l,dir:u}=yn(r),{getItems:d}=pv({isProvider:!0}),{handleTypeaheadSearch:f}=d_(),{primitiveElement:p,currentElement:m}=b_(),h=c_(),g=Ng(u),_=zg(m),v=M(),y=M(!1),b=M(!0),x=_g(r,`modelValue`,i,{defaultValue:r.defaultValue??(a.value?[]:void 0),passive:r.modelValue===void 0,deep:!0});function S(e){if(y.value=!0,r.multiple){let t=Array.isArray(x.value)?[...x.value]:[],n=t.findIndex(t=>vv(t,e,r.by));r.selectionBehavior===`toggle`?(n===-1?t.push(e):t.splice(n,1),x.value=t):(x.value=[e],v.value=e)}else r.selectionBehavior===`toggle`&&vv(x.value,e,r.by)?x.value=void 0:x.value=e;setTimeout(()=>{y.value=!1},1)}let C=M(null),w=M(null),T=M(!1),E=M(!1),D=Wh(),ee=Wh(),te=Wh();function ne(){return d().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)}function O(e,t=!0,n){e&&(C.value=e,(n??b.value)&&C.value.focus(),t&&C.value.scrollIntoView({block:`nearest`}),i(`highlight`,d().find(t=>t.ref===e)))}function re(e){if(T.value)te.trigger(e);else{let t=d().find(t=>vv(t.value,e,r.by));t&&(C.value=t.ref,O(t.ref))}}function ie(e){C.value&&C.value.isConnected&&(e.preventDefault(),e.stopPropagation(),E.value||C.value.click())}function ae(e){if(b.value){if(y.value=!0,T.value)ee.trigger(e);else{let t=e.altKey||e.ctrlKey||e.metaKey;if(t&&e.key===`a`&&a.value){let t=d();x.value=[...t.map(e=>e.value)],e.preventDefault();let n=t.at(-1);n&&O(n.ref)}else if(!t){let t=f(e.key,d());t&&O(t)}}setTimeout(()=>{y.value=!1},1)}}function oe(){E.value=!0}function k(){Qn(()=>{E.value=!1})}function se(){Qn(()=>{ue(new KeyboardEvent(`keydown`,{key:`PageUp`}))})}function ce(e){let t=C.value;t?.isConnected&&(w.value=t),C.value=null,i(`leave`,e)}function le(e){let t=new CustomEvent(`listbox.entryFocus`,{bubbles:!1,cancelable:!0});if(e.currentTarget?.dispatchEvent(t),i(`entryFocus`,t),!t.defaultPrevented)if(w.value)O(w.value);else{let e=ne()?.[0];O(e)}}function ue(e){let t=Cv(e,s.value,g.value);if(!t)return;let n=ne();if(C.value){if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let e=n.indexOf(C.value);n=n.slice(e+1)}de(e,n[0])}if(n.length){let e=!C.value&&t===`prev`?n.length-1:0;O(n[e])}if(T.value)return ee.trigger(e)}function de(e,t){if(!(T.value||r.selectionBehavior!==`replace`||!a.value||!Array.isArray(x.value))&&!((e.altKey||e.ctrlKey||e.metaKey)&&!e.shiftKey)&&e.shiftKey){let n=d().filter(e=>e.ref.dataset.disabled!==``),r=n.find(e=>e.ref===t)?.value;if(e.key===h.END?r=n.at(-1)?.value:e.key===h.HOME&&(r=n[0]?.value),!r||!v.value)return;x.value=Ih(n.map(e=>e.value),v.value,r)}}async function fe(e,t=!0){if(Kh)if(await Qn(),T.value)D.trigger(e);else{let e=ne(),n=e.find(e=>e.dataset.state===`checked`),r=t?void 0:!1;n?O(n,t,r):e.length&&O(e[0],t,r)}}let pe=!1;return Er(x,()=>{if(!y.value){let e=pe;pe=!0,Qn(()=>{fe(void 0,e)})}},{immediate:!0,deep:!0}),t({highlightedElement:C,highlightItem:re,highlightFirstItem:se,highlightSelected:fe,getItems:d}),Dv({modelValue:x,onValueChange:S,multiple:a,orientation:s,dir:g,disabled:c,highlightOnHover:o,highlightedElement:C,isVirtual:T,virtualFocusHook:D,virtualKeydownHook:ee,virtualHighlightHook:te,by:r.by,firstValue:v,selectionBehavior:l,focusable:b,onLeave:ce,onEnter:le,changeHighlight:O,onKeydownEnter:ie,onKeydownNavigation:ue,onKeydownTypeAhead:ae,onCompositionStart:oe,onCompositionEnd:k,highlightFirstItem:se}),(e,t)=>(z(),V(N(y_),{ref_key:`primitiveElement`,ref:p,as:e.as,"as-child":e.asChild,dir:N(g),"data-disabled":N(c)?``:void 0,onPointerleave:ce,onFocusout:t[0]||=async e=>{let t=e.relatedTarget||e.target;await Qn(),C.value&&N(m)&&!N(m).contains(t)&&ce(e)}},{default:P(()=>[L(e.$slots,`default`,{modelValue:N(x)}),N(_)&&e.name?(z(),V(N(gv),{key:0,name:e.name,value:N(x),disabled:N(c),required:e.required},null,8,[`name`,`value`,`disabled`,`required`])):G(`v-if`,!0)]),_:3},8,[`as`,`as-child`,`dir`,`data-disabled`]))}}),kv=F({__name:`ListboxContent`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{CollectionSlot:t}=pv(),n=Ev(),r=ig(!1,10);return(e,i)=>(z(),V(N(t),null,{default:P(()=>[U(N(y_),{role:`listbox`,as:e.as,"as-child":e.asChild,tabindex:N(n).focusable.value?N(n).highlightedElement.value?`-1`:`0`:`-1`,"aria-orientation":N(n).orientation.value,"aria-multiselectable":!!N(n).multiple.value,"data-orientation":N(n).orientation.value,onMousedown:i[0]||=Jl(e=>r.value=!0,[`left`]),onFocus:i[1]||=e=>{N(r)||N(n).onEnter(e)},onKeydown:[i[2]||=Xl(e=>{N(n).orientation.value===`vertical`&&(e.key===`ArrowLeft`||e.key===`ArrowRight`)||N(n).orientation.value===`horizontal`&&(e.key===`ArrowUp`||e.key===`ArrowDown`)||(e.preventDefault(),N(n).focusable.value&&N(n).onKeydownNavigation(e))},[`down`,`up`,`left`,`right`,`home`,`end`]),Xl(N(n).onKeydownEnter,[`enter`]),N(n).onKeydownTypeAhead]},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`tabindex`,`aria-orientation`,`aria-multiselectable`,`data-orientation`,`onKeydown`])]),_:3}))}}),Av=F({__name:`ListboxFilter`,props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`input`}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=_g(n,`modelValue`,t,{defaultValue:``,passive:n.modelValue===void 0}),i=Ev(),{primitiveElement:a,currentElement:o}=b_(),s=q(()=>n.disabled||i.disabled.value||!1),c=M();Tr(()=>c.value=i.highlightedElement.value?.id),Gi(()=>{i.focusable.value=!1,setTimeout(()=>{n.autoFocus&&o.value?.focus()},1)}),Yi(()=>{i.focusable.value=!0});let{isComposing:l,handleCompositionStart:u,handleCompositionEnd:d}=Mg(e=>{r.value=e.target.value,i.onCompositionEnd(),i.highlightFirstItem()});function f(){i.onCompositionStart(),u()}function p(e){l.value||(r.value=e.target.value,i.highlightFirstItem())}function m(e){l.value||(e.preventDefault(),i.onKeydownNavigation(e))}function h(e){l.value||i.onKeydownEnter(e)}return(e,t)=>(z(),V(N(y_),{ref_key:`primitiveElement`,ref:a,as:e.as,"as-child":e.asChild,value:N(r),disabled:s.value?``:void 0,"data-disabled":s.value?``:void 0,"aria-disabled":s.value??void 0,"aria-activedescendant":c.value,type:`text`,onKeydown:[Xl(m,[`down`,`up`,`home`,`end`]),Xl(h,[`enter`])],onInput:p,onCompositionstart:f,onCompositionend:N(d)},{default:P(()=>[L(e.$slots,`default`,{modelValue:N(r)})]),_:3},8,[`as`,`as-child`,`value`,`disabled`,`data-disabled`,`aria-disabled`,`aria-activedescendant`,`onCompositionend`]))}}),jv=`listbox.select`,[Mv,Nv]=Rh(`ListboxItem`),Pv=F({__name:`ListboxItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=s_(void 0,`reka-listbox-item`),{CollectionItem:a}=pv(),{forwardRef:o,currentElement:s}=Bg(),c=Ev(),l=q(()=>s.value!=null&&s.value===c.highlightedElement.value),u=q(()=>_v(c.modelValue.value,n.value,c.by)),d=q(()=>c.disabled.value||n.disabled);async function f(e){r(`select`,e),!e?.defaultPrevented&&!d.value&&e&&(c.onValueChange(n.value),c.changeHighlight(s.value))}function p(e){Bh(jv,f,{originalEvent:e,value:n.value})}return Nv({isSelected:u}),(e,t)=>(z(),V(N(a),{value:e.value},{default:P(()=>[Js([l.value,u.value,d.value,N(c).focusable.value],()=>U(N(y_),K({id:N(i)},e.$attrs,{ref:N(o),role:`option`,tabindex:N(c).focusable.value?l.value?`0`:`-1`:-1,"aria-selected":u.value,as:e.as,"as-child":e.asChild,disabled:d.value?``:void 0,"data-disabled":d.value?``:void 0,"data-highlighted":l.value?``:void 0,"data-state":u.value?`checked`:`unchecked`,onClick:p,onKeydown:Xl(Jl(p,[`prevent`]),[`space`]),onPointermove:t[0]||=()=>{N(c).highlightedElement.value!==N(s)&&N(c).highlightOnHover.value&&N(c).changeHighlight(N(s),!1,!1)}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`tabindex`,`aria-selected`,`as`,`as-child`,`disabled`,`data-disabled`,`data-highlighted`,`data-state`,`onKeydown`]),t,1)]),_:3},8,[`value`]))}}),Fv=F({__name:`ListboxItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e;Bg();let n=Mv();return(e,r)=>N(n).isSelected.value?(z(),V(N(y_),K({key:0,"aria-hidden":`true`},t),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):G(`v-if`,!0)}}),[Iv,Lv]=Rh(`PopperRoot`),Rv=F({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let t=M();return Lv({anchor:t,onAnchorChange:e=>t.value=e}),(e,t)=>L(e.$slots,`default`)}}),zv=F({__name:`PopperAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n,currentElement:r}=Bg(),i=Iv();return wr(()=>{i.onAnchorChange(t.reference??r.value)}),(e,t)=>(z(),V(N(y_),{ref:N(n),as:e.as,"as-child":e.asChild},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}});function Bv(e){return e!==null}function Vv(e){return{name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=Hv(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}}function Hv(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var Uv=[`top`,`right`,`bottom`,`left`],Wv=Math.min,Gv=Math.max,Kv=Math.round,qv=Math.floor,Jv=e=>({x:e,y:e}),Yv={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Xv(e,t,n){return Gv(e,Wv(t,n))}function Zv(e,t){return typeof e==`function`?e(t):e}function Qv(e){return e.split(`-`)[0]}function $v(e){return e.split(`-`)[1]}function ey(e){return e===`x`?`y`:`x`}function ty(e){return e===`y`?`height`:`width`}function ny(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function ry(e){return ey(ny(e))}function iy(e,t,n){n===void 0&&(n=!1);let r=$v(e),i=ry(e),a=ty(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=py(o)),[o,py(o)]}function ay(e){let t=py(e);return[oy(e),t,oy(t)]}function oy(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var sy=[`left`,`right`],cy=[`right`,`left`],ly=[`top`,`bottom`],uy=[`bottom`,`top`];function dy(e,t,n){switch(e){case`top`:case`bottom`:return n?t?cy:sy:t?sy:cy;case`left`:case`right`:return t?ly:uy;default:return[]}}function fy(e,t,n,r){let i=$v(e),a=dy(Qv(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(oy)))),a}function py(e){let t=Qv(e);return Yv[t]+e.slice(t.length)}function my(e){return{top:0,right:0,bottom:0,left:0,...e}}function hy(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:my(e)}function gy(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function _y(e,t,n){let{reference:r,floating:i}=e,a=ny(t),o=ry(t),s=ty(o),c=Qv(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch($v(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function vy(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Zv(t,e),p=hy(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=gy(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=gy(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var yy=50,by=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:vy},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=_y(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<yy&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=_y(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},xy=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=Zv(e,t)||{};if(l==null)return{};let d=hy(u),f={x:n,y:r},p=ry(i),m=ty(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=Wv(d[_],T),D=Wv(d[v],T),ee=E,te=C-h[m]-D,ne=C/2-h[m]/2+w,O=Xv(ee,ne,te),re=!c.arrow&&$v(i)!=null&&ne!==O&&a.reference[m]/2-(ne<ee?E:D)-h[m]/2<0,ie=re?ne<ee?ne-ee:ne-te:0;return{[p]:f[p]+ie,data:{[p]:O,centerOffset:ne-O-ie,...re&&{alignmentOffset:ie}},reset:re}}}),Sy=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Zv(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=Qv(r),_=ny(o),v=Qv(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[py(o)]:ay(o)),x=p!==`none`;!d&&x&&b.push(...fy(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=iy(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==ny(t))||T.every(e=>ny(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=ny(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function Cy(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function wy(e){return Uv.some(t=>e[t]>=0)}var Ty=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=Zv(e,t);switch(i){case`referenceHidden`:{let e=Cy(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:wy(e)}}}case`escaped`:{let e=Cy(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:wy(e)}}}default:return{}}}}},Ey=new Set([`left`,`top`]);async function Dy(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Qv(n),s=$v(n),c=ny(n)===`y`,l=Ey.has(o)?-1:1,u=a&&c?-1:1,d=Zv(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Oy=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Dy(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},ky=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Zv(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=ny(Qv(i)),p=ey(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=Xv(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=Xv(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Ay=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Zv(e,t),u={x:n,y:r},d=ny(i),f=ey(d),p=u[f],m=u[d],h=Zv(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Ey.has(Qv(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},jy=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=Zv(e,t),u=await o.detectOverflow(t,l),d=Qv(i),f=$v(i),p=ny(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=Wv(h-u[g],v),x=Wv(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=Gv(u.left,0),t=Gv(u.right,0),n=Gv(u.top,0),r=Gv(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:Gv(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:Gv(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function My(){return typeof window<`u`}function Ny(e){return Iy(e)?(e.nodeName||``).toLowerCase():`#document`}function Py(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Fy(e){return((Iy(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Iy(e){return My()?e instanceof Node||e instanceof Py(e).Node:!1}function Ly(e){return My()?e instanceof Element||e instanceof Py(e).Element:!1}function Ry(e){return My()?e instanceof HTMLElement||e instanceof Py(e).HTMLElement:!1}function zy(e){return!My()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Py(e).ShadowRoot}function By(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Zy(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Vy(e){return/^(table|td|th)$/.test(Ny(e))}function Hy(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Uy=/transform|translate|scale|rotate|perspective|filter/,Wy=/paint|layout|strict|content/,Gy=e=>!!e&&e!==`none`,Ky;function qy(e){let t=Ly(e)?Zy(e):e;return Gy(t.transform)||Gy(t.translate)||Gy(t.scale)||Gy(t.rotate)||Gy(t.perspective)||!Yy()&&(Gy(t.backdropFilter)||Gy(t.filter))||Uy.test(t.willChange||``)||Wy.test(t.contain||``)}function Jy(e){let t=$y(e);for(;Ry(t)&&!Xy(t);){if(qy(t))return t;if(Hy(t))return null;t=$y(t)}return null}function Yy(){return Ky??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ky}function Xy(e){return/^(html|body|#document)$/.test(Ny(e))}function Zy(e){return Py(e).getComputedStyle(e)}function Qy(e){return Ly(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function $y(e){if(Ny(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||zy(e)&&e.host||Fy(e);return zy(t)?t.host:t}function eb(e){let t=$y(e);return Xy(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ry(t)&&By(t)?t:eb(t)}function tb(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=eb(e),i=r===e.ownerDocument?.body,a=Py(r);if(i){let e=nb(a);return t.concat(a,a.visualViewport||[],By(r)?r:[],e&&n?tb(e):[])}else return t.concat(r,tb(r,[],n))}function nb(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function rb(e){let t=Zy(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Ry(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Kv(n)!==a||Kv(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function ib(e){return Ly(e)?e:e.contextElement}function ab(e){let t=ib(e);if(!Ry(t))return Jv(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=rb(t),o=(a?Kv(n.width):n.width)/r,s=(a?Kv(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var ob=Jv(0);function sb(e){let t=Py(e);return!Yy()||!t.visualViewport?ob:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function cb(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Py(e)?!1:t}function lb(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=ib(e),o=Jv(1);t&&(r?Ly(r)&&(o=ab(r)):o=ab(e));let s=cb(a,n,r)?sb(a):Jv(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=Py(a),t=r&&Ly(r)?Py(r):r,n=e,i=nb(n);for(;i&&r&&t!==n;){let e=ab(i),t=i.getBoundingClientRect(),r=Zy(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Py(i),i=nb(n)}}return gy({width:u,height:d,x:c,y:l})}function ub(e,t){let n=Qy(e).scrollLeft;return t?t.left+n:lb(Fy(e)).left+n}function db(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-ub(e,n),y:n.top+t.scrollTop}}function fb(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Fy(r),s=t?Hy(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Jv(1),u=Jv(0),d=Ry(r);if((d||!d&&!a)&&((Ny(r)!==`body`||By(o))&&(c=Qy(r)),d)){let e=lb(r);l=ab(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?db(o,c):Jv(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function pb(e){return Array.from(e.getClientRects())}function mb(e){let t=Fy(e),n=Qy(e),r=e.ownerDocument.body,i=Gv(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Gv(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+ub(e),s=-n.scrollTop;return Zy(r).direction===`rtl`&&(o+=Gv(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var hb=25;function gb(e,t){let n=Py(e),r=Fy(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Yy();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=ub(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=hb&&(a-=o)}else l<=hb&&(a+=l);return{width:a,height:o,x:s,y:c}}function _b(e,t){let n=lb(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Ry(e)?ab(e):Jv(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function vb(e,t,n){let r;if(t===`viewport`)r=gb(e,n);else if(t===`document`)r=mb(Fy(e));else if(Ly(t))r=_b(t,n);else{let n=sb(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return gy(r)}function yb(e,t){let n=$y(e);return n===t||!Ly(n)||Xy(n)?!1:Zy(n).position===`fixed`||yb(n,t)}function bb(e,t){let n=t.get(e);if(n)return n;let r=tb(e,[],!1).filter(e=>Ly(e)&&Ny(e)!==`body`),i=null,a=Zy(e).position===`fixed`,o=a?$y(e):e;for(;Ly(o)&&!Xy(o);){let t=Zy(o),n=qy(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||By(o)&&!n&&yb(e,o))?r=r.filter(e=>e!==o):i=t,o=$y(o)}return t.set(e,r),r}function xb(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Hy(t)?[]:bb(t,this._c):[].concat(n),r],o=vb(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=vb(t,a[e],i);s=Gv(n.top,s),c=Wv(n.right,c),l=Wv(n.bottom,l),u=Gv(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function Sb(e){let{width:t,height:n}=rb(e);return{width:t,height:n}}function Cb(e,t,n){let r=Ry(t),i=Fy(t),a=n===`fixed`,o=lb(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=Jv(0);function l(){c.x=ub(i)}if(r||!r&&!a)if((Ny(t)!==`body`||By(i))&&(s=Qy(t)),r){let e=lb(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?db(i,s):Jv(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function wb(e){return Zy(e).position===`static`}function Tb(e,t){if(!Ry(e)||Zy(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Fy(e)===n&&(n=n.ownerDocument.body),n}function Eb(e,t){let n=Py(e);if(Hy(e))return n;if(!Ry(e)){let t=$y(e);for(;t&&!Xy(t);){if(Ly(t)&&!wb(t))return t;t=$y(t)}return n}let r=Tb(e,t);for(;r&&Vy(r)&&wb(r);)r=Tb(r,t);return r&&Xy(r)&&wb(r)&&!qy(r)?n:r||Jy(e)||n}var Db=async function(e){let t=this.getOffsetParent||Eb,n=this.getDimensions,r=await n(e.floating);return{reference:Cb(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Ob(e){return Zy(e).direction===`rtl`}var kb={convertOffsetParentRelativeRectToViewportRelativeRect:fb,getDocumentElement:Fy,getClippingRect:xb,getOffsetParent:Eb,getElementRects:Db,getClientRects:pb,getDimensions:Sb,getScale:ab,isElement:Ly,isRTL:Ob};function Ab(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function jb(e,t){let n=null,r,i=Fy(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=qv(d),h=qv(i.clientWidth-(u+f)),g=qv(i.clientHeight-(d+p)),_=qv(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:Gv(0,Wv(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!Ab(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function Mb(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=ib(e),u=i||a?[...l?tb(l):[],...t?tb(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?jb(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?lb(e):null;c&&g();function g(){let t=lb(e);h&&!Ab(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Nb=Oy,Pb=ky,Fb=Sy,Ib=jy,Lb=Ty,Rb=xy,zb=Ay,Bb=(e,t,n)=>{let r=new Map,i={platform:kb,...n},a={...i.platform,_c:r};return by(e,t,{...i,platform:a})};function Vb(e){return typeof e==`object`&&!!e&&`$el`in e}function Hb(e){if(Vb(e)){let t=e.$el;return Iy(t)&&Ny(t)===`#comment`?null:t}return e}function Ub(e){return typeof e==`function`?e():N(e)}function Wb(e){return{name:`arrow`,options:e,fn(t){let n=Hb(Ub(e.element));return n==null?{}:Rb({element:n,padding:e.padding}).fn(t)}}}function Gb(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Kb(e,t){let n=Gb(e);return Math.round(t*n)/n}function qb(e,t,n){n===void 0&&(n={});let r=n.whileElementsMounted,i=q(()=>Ub(n.open)??!0),a=q(()=>Ub(n.middleware)),o=q(()=>Ub(n.placement)??`bottom`),s=q(()=>Ub(n.strategy)??`absolute`),c=q(()=>Ub(n.transform)??!0),l=q(()=>Hb(e.value)),u=q(()=>Hb(t.value)),d=M(0),f=M(0),p=M(s.value),m=M(o.value),h=un({}),g=M(!1),_=q(()=>{let e={position:p.value,left:`0`,top:`0`};if(!u.value)return e;let t=Kb(u.value,d.value),n=Kb(u.value,f.value);return c.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...Gb(u.value)>=1.5&&{willChange:`transform`}}:{position:p.value,left:t+`px`,top:n+`px`}}),v;function y(){if(l.value==null||u.value==null)return;let e=i.value;Bb(l.value,u.value,{middleware:a.value,placement:o.value,strategy:s.value}).then(t=>{d.value=t.x,f.value=t.y,p.value=t.strategy,m.value=t.placement,h.value=t.middlewareData,g.value=e!==!1})}function b(){typeof v==`function`&&(v(),v=void 0)}function x(){if(b(),r===void 0){y();return}if(l.value!=null&&u.value!=null){v=r(l.value,u.value,y);return}}function S(){i.value||(g.value=!1)}return Er([a,o,s,i],y,{flush:`sync`}),Er([l,u],x,{flush:`sync`}),Er(i,S,{flush:`sync`}),Ne()&&Pe(b),{x:Qt(d),y:Qt(f),strategy:Qt(p),placement:Qt(m),middlewareData:Qt(h),isPositioned:Qt(g),floatingStyles:_,update:y}}var Jb={side:`bottom`,sideOffset:0,sideFlip:!0,align:`center`,alignOffset:0,alignFlip:!0,arrowPadding:0,hideShiftedArrow:!0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:`partial`,hideWhenDetached:!1,positionStrategy:`fixed`,updatePositionStrategy:`optimized`,prioritizePosition:!1},[Yb,Xb]=Rh(`PopperContent`),Zb=F({inheritAttrs:!1,__name:`PopperContent`,props:Da({side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...Jb}),emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,i=Iv(),{forwardRef:a,currentElement:o}=Bg(),s=M(),c=M(),{width:l,height:u}=l_(c),d=q(()=>n.side+(n.align===`center`?``:`-${n.align}`)),f=q(()=>typeof n.collisionPadding==`number`?n.collisionPadding:{top:0,right:0,bottom:0,left:0,...n.collisionPadding}),p=q(()=>Array.isArray(n.collisionBoundary)?n.collisionBoundary:[n.collisionBoundary]),m=q(()=>({padding:f.value,boundary:p.value.filter(Bv),altBoundary:p.value.length>0})),h=q(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),g=Hh(()=>[Nb({mainAxis:n.sideOffset+u.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&Fb({...m.value,...h.value}),n.avoidCollisions&&Pb({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky===`partial`?zb():void 0,...m.value}),!n.prioritizePosition&&n.avoidCollisions&&Fb({...m.value,...h.value}),Ib({...m.value,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--reka-popper-available-width`,`${n}px`),o.setProperty(`--reka-popper-available-height`,`${r}px`),o.setProperty(`--reka-popper-anchor-width`,`${i}px`),o.setProperty(`--reka-popper-anchor-height`,`${a}px`)}}),c.value&&Wb({element:c.value,padding:n.arrowPadding}),Vv({arrowWidth:l.value,arrowHeight:u.value}),n.hideWhenDetached&&Lb({strategy:`referenceHidden`,...m.value})]),{floatingStyles:_,placement:v,isPositioned:y,middlewareData:b,update:x}=qb(q(()=>n.reference??i.anchor.value),s,{strategy:n.positionStrategy,placement:d,whileElementsMounted:(...e)=>Mb(...e,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy===`always`}),middleware:g}),S=q(()=>Hv(v.value)[0]),C=q(()=>Hv(v.value)[1]);wr(()=>{y.value&&r(`placed`)});let w=q(()=>{let e=b.value.arrow?.centerOffset!==0;return n.hideShiftedArrow&&e}),T=M(``);return Cr(()=>{o.value&&(T.value=window.getComputedStyle(o.value).zIndex)}),Xb({placedSide:S,onArrowChange:e=>c.value=e,arrowX:q(()=>b.value.arrow?.x??0),arrowY:q(()=>b.value.arrow?.y??0),shouldHideArrow:w}),(e,t)=>(z(),B(`div`,{ref_key:`floatingRef`,ref:s,"data-reka-popper-content-wrapper":``,style:me({...N(_),transform:N(y)?N(_).transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:T.value,"--reka-popper-transform-origin":[N(b).transformOrigin?.x,N(b).transformOrigin?.y].join(` `),...N(b).hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}})},[U(N(y_),K({ref:N(a)},e.$attrs,{"as-child":n.asChild,as:e.as,"data-side":S.value,"data-align":C.value,style:{animation:N(y)?void 0:`none`}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`style`])],4))}}),[Qb,$b]=Rh(`ComboboxRoot`),ex=F({__name:`ComboboxRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},resetSearchTermOnBlur:{type:Boolean,required:!1,default:!0},resetSearchTermOnSelect:{type:Boolean,required:!1,default:!0},openOnFocus:{type:Boolean,required:!1,default:!1},openOnClick:{type:Boolean,required:!1,default:!1},ignoreFilter:{type:Boolean,required:!1},resetModelValueOnClear:{type:Boolean,required:!1,default:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},highlightOnHover:{type:Boolean,required:!1,default:!0},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`highlight`,`update:open`],setup(e,{expose:t,emit:n}){let r=e,i=n,{primitiveElement:a,currentElement:o}=b_(),{multiple:s,disabled:c,ignoreFilter:l,resetSearchTermOnSelect:u,openOnFocus:d,openOnClick:f,dir:p,resetModelValueOnClear:m,highlightOnHover:h}=yn(r),g=Ng(p),_=_g(r,`modelValue`,i,{defaultValue:r.defaultValue??(s.value?[]:void 0),passive:r.modelValue===void 0,deep:!0}),v=_g(r,`open`,i,{defaultValue:r.defaultOpen,passive:r.open===void 0});async function y(e){v.value=e,te.value=``,e?(await Qn(),a.value?.highlightSelected(),x.value=!0,C.value?.focus()):(x.value=!1,setTimeout(()=>{!e&&r.resetSearchTermOnBlur&&b.trigger()},1))}let b=Wh(),x=M(!1),S=M(!1),C=M(),w=M(),T=q(()=>a.value?.highlightedElement??void 0),E=M(new Map),D=M(new Map),{contains:ee}=Fg({sensitivity:`base`}),te=M(``),ne=q(e=>{if(!te.value||r.ignoreFilter||S.value)return{count:E.value.size,items:e?.items??new Map,groups:e?.groups??new Set(D.value.keys())};let t=0,n=new Map,i=new Set;for(let[e,r]of E.value){let i=ee(r,te.value);n.set(e,+!!i),i&&t++}for(let[e,t]of D.value)for(let r of t)if(n.get(r)>0){i.add(e);break}return{count:t,items:n,groups:i}}),O=Es();return Gi(()=>{O?.exposed&&(O.exposed.highlightItem=a.value?.highlightItem,O.exposed.highlightFirstItem=a.value?.highlightFirstItem,O.exposed.highlightSelected=a.value?.highlightSelected)}),t({filtered:ne,highlightedElement:T,highlightItem:a.value?.highlightItem,highlightFirstItem:a.value?.highlightFirstItem,highlightSelected:a.value?.highlightSelected}),$b({modelValue:_,multiple:s,disabled:c,open:v,onOpenChange:y,contentId:``,isUserInputted:x,isVirtual:S,inputElement:C,highlightedElement:T,onInputElementChange:e=>C.value=e,triggerElement:w,onTriggerElementChange:e=>w.value=e,parentElement:o,resetSearchTermOnSelect:u,onResetSearchTerm:b.on,allItems:E,allGroups:D,filterSearch:te,filterState:ne,ignoreFilter:l,openOnFocus:d,openOnClick:f,resetModelValueOnClear:m}),(e,t)=>(z(),V(N(Rv),null,{default:P(()=>[U(N(Ov),K({ref_key:`primitiveElement`,ref:a},e.$attrs,{modelValue:N(_),"onUpdate:modelValue":t[0]||=e=>ln(_)?_.value=e:null,style:{pointerEvents:N(v)?`auto`:void 0},as:e.as,"as-child":e.asChild,dir:N(g),multiple:N(s),name:e.name,required:e.required,disabled:N(c),"highlight-on-hover":N(h),by:r.by,onHighlight:t[1]||=e=>i(`highlight`,e)}),{default:P(()=>[L(e.$slots,`default`,{open:N(v),modelValue:N(_)})]),_:3},16,[`modelValue`,`style`,`as`,`as-child`,`dir`,`multiple`,`name`,`required`,`disabled`,`highlight-on-hover`,`by`])]),_:3}))}}),tx=F({__name:`ComboboxAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{forwardRef:t}=Bg();return(e,n)=>(z(),V(N(zv),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(y_),K({ref:N(t),"as-child":e.asChild,as:e.as},e.$attrs),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`as-child`,`as`])]),_:3},8,[`reference`]))}}),[nx,rx]=Rh(`ComboboxContent`),ix=F({__name:`ComboboxContentImpl`,props:{position:{type:String,required:!1,default:`inline`},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`],setup(e,{emit:t}){let n=e,r=t,{position:i}=yn(n),a=Qb(),o=q(()=>a.ignoreFilter.value?a.allItems.value.size===0:a.filterState.value.count===0),{forwardRef:s,currentElement:c}=Bg();kg(n.bodyLock),Lg(),a_(a.parentElement);let l=Vg(q(()=>n.position===`popper`?n:{}).value),u={boxSizing:`border-box`,"--reka-combobox-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-combobox-content-available-width":`var(--reka-popper-available-width)`,"--reka-combobox-content-available-height":`var(--reka-popper-available-height)`,"--reka-combobox-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-combobox-trigger-height":`var(--reka-popper-anchor-height)`};rx({position:i});let d=M(!1);return Gi(()=>{a.inputElement.value&&(d.value=c.value.contains(a.inputElement.value),d.value&&a.inputElement.value.focus())}),Yi(()=>{let e=zh();d.value&&(!e||e===document.body)&&a.triggerElement.value?.focus()}),(e,t)=>(z(),V(N(kv),{"as-child":``},{default:P(()=>[U(N(G_),{"as-child":``,onMountAutoFocus:t[5]||=Jl(()=>{},[`prevent`]),onUnmountAutoFocus:t[6]||=Jl(()=>{},[`prevent`])},{default:P(()=>[U(N(j_),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onDismiss:t[0]||=e=>N(a).onOpenChange(!1),onFocusOutside:t[1]||=e=>{N(a).parentElement.value?.contains(e.target)&&e.preventDefault(),r(`focusOutside`,e)},onInteractOutside:t[2]||=e=>r(`interactOutside`,e),onEscapeKeyDown:t[3]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[4]||=e=>{N(a).parentElement.value?.contains(e.target)&&e.preventDefault(),r(`pointerDownOutside`,e)}},{default:P(()=>[(z(),V(ia(N(i)===`popper`?N(Zb):N(y_)),K({...e.$attrs,...N(l)},{id:N(a).contentId,ref:N(s),"data-state":N(a).open.value?`open`:`closed`,"data-empty":o.value?``:void 0,style:{display:n.hideWhenEmpty&&o.value?`none`:`flex`,flexDirection:`column`,outline:`none`,...N(i)===`popper`?u:{}}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`data-empty`,`style`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),ax=F({__name:`ComboboxContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`],setup(e,{emit:t}){let n=Hg(e,t),{forwardRef:r}=Bg(),i=Qb();return i.contentId||=s_(void 0,`reka-combobox-content`),(e,t)=>(z(),V(N(g_),{present:e.forceMount||N(i).open.value},{default:P(()=>[U(ix,K({...N(n),...e.$attrs},{ref:N(r)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`]))}}),ox=F({__name:`ComboboxEmpty`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=Qb(),r=q(()=>n.ignoreFilter.value?n.allItems.value.size===0:n.filterState.value.count===0);return(e,n)=>r.value?(z(),V(N(y_),ye(K({key:0},t)),{default:P(()=>[L(e.$slots,`default`,{},()=>[n[0]||=W(`No options`)])]),_:3},16)):G(`v-if`,!0)}}),[sx,cx]=Rh(`ComboboxGroup`),lx=F({__name:`ComboboxInput`,props:{displayValue:{type:Function,required:!1},modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`input`}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=Qb(),a=Ev(),{primitiveElement:o,currentElement:s}=b_(),c=_g(n,`modelValue`,r,{passive:n.modelValue===void 0});Gi(()=>{s.value&&i.onInputElementChange(s.value)});let{isComposing:l,handleCompositionStart:u,handleCompositionEnd:d}=Mg(e=>{let t=e.target;t&&p(t.value)});function f(e){l.value||(e.preventDefault(),i.open.value||i.onOpenChange(!0))}function p(e){i.open.value?i.filterSearch.value=e:(i.onOpenChange(!0),Qn(()=>{e&&(i.filterSearch.value=e,a.highlightFirstItem())}))}function m(e){l.value||p(e.target.value)}function h(){i.openOnFocus.value&&!i.open.value&&i.onOpenChange(!0)}function g(e){if(!i.open.value)return;let t=e.relatedTarget;if(!t)return;let n=i.parentElement.value?.contains(t),r=document.getElementById(i.contentId)?.contains(t);!n&&!r&&requestAnimationFrame(()=>{if(!i.open.value)return;let e=document.activeElement;!i.parentElement.value?.contains(e)&&!document.getElementById(i.contentId)?.contains(e)&&i.onOpenChange(!1)})}function _(){i.openOnClick.value&&!i.open.value&&i.onOpenChange(!0)}function v(){let e=i.modelValue.value;n.displayValue?c.value=n.displayValue(e):!i.multiple.value&&e&&!Array.isArray(e)?typeof e==`object`?c.value=``:c.value=e.toString():c.value=``,Qn(()=>{c.value=c.value})}return i.onResetSearchTerm(()=>{v()}),Er(i.modelValue,async()=>{!i.isUserInputted.value&&i.resetSearchTermOnSelect.value&&v()},{immediate:!0,deep:!0}),Er(i.filterState,(e,t)=>{!i.isVirtual.value&&t.count===0&&a.highlightFirstItem()}),(e,t)=>(z(),V(N(Av),{ref_key:`primitiveElement`,ref:o,modelValue:N(c),"onUpdate:modelValue":t[0]||=e=>ln(c)?c.value=e:null,as:e.as,"as-child":e.asChild,"auto-focus":e.autoFocus,disabled:e.disabled,"aria-expanded":N(i).open.value,"aria-controls":N(i).contentId,"aria-autocomplete":`list`,role:`combobox`,autocomplete:`off`,onClick:_,onInput:m,onKeydown:Xl(f,[`down`,`up`]),onFocus:h,onBlur:g,onCompositionstart:N(u),onCompositionend:N(d)},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`modelValue`,`as`,`as-child`,`auto-focus`,`disabled`,`aria-expanded`,`aria-controls`,`onCompositionstart`,`onCompositionend`]))}}),ux=F({__name:`ComboboxItem`,props:{textValue:{type:String,required:!1},value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=s_(void 0,`reka-combobox-item`),a=Qb(),o=sx(null),{primitiveElement:s,currentElement:c}=b_();if(n.value===``)throw Error(`A <ComboboxItem /> must have a value prop that is not an empty string. This is because the Combobox value can be set to an empty string to clear the selection and show the placeholder.`);let l=q(()=>{if(a.isVirtual.value||a.ignoreFilter.value||!a.filterSearch.value)return!0;{let e=a.filterState.value.items.get(i);return e===void 0?!0:e>0}});return Gi(()=>{a.allItems.value.set(i,n.textValue||c.value.textContent||c.value.innerText);let e=o?.id;e&&(a.allGroups.value.has(e)?a.allGroups.value.get(e)?.add(i):a.allGroups.value.set(e,new Set([i])))}),Yi(()=>{a.allItems.value.delete(i)}),(e,t)=>l.value?(z(),V(N(Pv),K({key:0},n,{id:N(i),ref_key:`primitiveElement`,ref:s,disabled:N(a).disabled.value||e.disabled,onSelect:t[0]||=t=>{r(`select`,t),!t.defaultPrevented&&(!N(a).multiple.value&&!e.disabled&&!N(a).disabled.value?(t.preventDefault(),N(a).onOpenChange(!1),N(a).modelValue.value=n.value):N(a).multiple.value&&N(a).inputElement.value?.focus())}}),{default:P(()=>[L(e.$slots,`default`,{},()=>[W(j(e.value),1)])]),_:3},16,[`id`,`disabled`])):G(`v-if`,!0)}}),dx=F({__name:`ComboboxItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e;return(e,n)=>(z(),V(N(Fv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),fx=F({__name:`ComboboxPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),px=F({__name:`ComboboxTrigger`,props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,{forwardRef:n,currentElement:r}=Bg(),i=Qb(),a=q(()=>t.disabled||i.disabled.value||!1);return Gi(()=>{r.value&&i.onTriggerElementChange(r.value)}),(e,r)=>(z(),V(N(y_),K(t,{ref:N(n),type:e.as===`button`?`button`:void 0,tabindex:`-1`,"aria-label":`Show popup`,"aria-haspopup":`listbox`,"aria-expanded":N(i).open.value,"aria-controls":N(i).contentId,"data-state":N(i).open.value?`open`:`closed`,disabled:a.value,"data-disabled":a.value?``:void 0,"aria-disabled":a.value??void 0,onClick:r[0]||=e=>N(i).onOpenChange(!N(i).open.value)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`type`,`aria-expanded`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`aria-disabled`]))}});function mx(e){let t=Sg({nonce:M()});return q(()=>e?.value||t.nonce?.value)}var hx=F({__name:`ComboboxViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n}=Bg(),{nonce:r}=yn(t),i=mx(r),a=Qb();return(e,r)=>(z(),B(R,null,[U(N(y_),K({...e.$attrs,...t},{ref:N(n),"data-reka-combobox-viewport":``,role:`presentation`,style:{position:`relative`,flex:N(a).isVirtual.value?void 0:1,overflow:`auto`}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`style`]),U(N(y_),{as:`style`,nonce:N(i)},{default:P(()=>r[0]||=[W(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-combobox-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-combobox-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),[gx,_x]=Rh(`RovingFocusGroup`),vx=F({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:t,emit:n}){let r=e,i=n,{loop:a,orientation:o,dir:s}=yn(r),c=Ng(s),l=_g(r,`currentTabStopId`,i,{defaultValue:r.defaultCurrentTabStopId,passive:r.currentTabStopId===void 0}),u=M(!1),d=M(!1),f=M(0),{getItems:p,CollectionSlot:m}=pv({isProvider:!0});function h(e){let t=!d.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!u.value){let t=new CustomEvent(yv,bv);if(e.currentTarget.dispatchEvent(t),i(`entryFocus`,t),!t.defaultPrevented){let e=p().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);wv([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===l.value),...e].filter(Boolean),r.preventScrollOnEntryFocus)}}d.value=!1}function g(){setTimeout(()=>{d.value=!1},1)}return t({getItems:p}),_x({loop:a,dir:c,orientation:o,currentTabStopId:l,onItemFocus:e=>{l.value=e},onItemShiftTab:()=>{u.value=!0},onFocusableItemAdd:()=>{f.value++},onFocusableItemRemove:()=>{f.value--}}),(e,t)=>(z(),V(N(m),null,{default:P(()=>[U(N(y_),{tabindex:u.value||f.value===0?-1:0,"data-orientation":N(o),as:e.as,"as-child":e.asChild,dir:N(c),style:{outline:`none`},onMousedown:t[0]||=e=>d.value=!0,onMouseup:g,onFocus:h,onBlur:t[1]||=e=>u.value=!1},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),yx=F({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=gx(),r=s_(),i=q(()=>t.tabStopId||r),a=q(()=>n.currentTabStopId.value===i.value),{getItems:o,CollectionItem:s}=pv();Gi(()=>{t.focusable&&n.onFocusableItemAdd()}),Yi(()=>{t.focusable&&n.onFocusableItemRemove()});function c(e){if(e.key===`Tab`&&e.shiftKey){n.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let r=Cv(e,n.orientation.value,n.dir.value);if(r!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!t.allowShiftKey&&e.shiftKey)return;e.preventDefault();let i=[...o().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(r===`last`)i.reverse();else if(r===`prev`||r===`next`){r===`prev`&&i.reverse();let t=i.indexOf(e.currentTarget);i=n.loop.value?Tv(i,t+1):i.slice(t+1)}Qn(()=>wv(i))}}return(e,t)=>(z(),V(N(s),null,{default:P(()=>[U(N(y_),{tabindex:a.value?0:-1,"data-orientation":N(n).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:t[0]||=t=>{e.focusable?N(n).onItemFocus(i.value):t.preventDefault()},onFocus:t[1]||=e=>N(n).onItemFocus(i.value),onKeydown:c},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}}),bx=F({__name:`MenuAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(zv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}});function xx(){let e=M(!1);return Gi(()=>{ug(`keydown`,()=>{e.value=!0},{capture:!0,passive:!0}),ug([`pointerdown`,`pointermove`],()=>{e.value=!1},{capture:!0,passive:!0})}),e}var Sx=eg(xx),[Cx,wx]=Rh([`MenuRoot`,`MenuSub`],`MenuContext`),[Tx,Ex]=Rh(`MenuRoot`),Dx=F({__name:`MenuRoot`,props:{open:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,{modal:i,dir:a}=yn(n),o=Ng(a),s=_g(n,`open`,r),c=M(),l=Sx();return wx({open:s,onOpenChange:e=>{s.value=e},content:c,onContentChange:e=>{c.value=e}}),Ex({onClose:()=>{s.value=!1},isUsingKeyboardRef:l,dir:o,modal:i}),(e,t)=>(z(),V(N(Rv),null,{default:P(()=>[L(e.$slots,`default`)]),_:3}))}}),[Ox,kx]=Rh(`MenuContent`),Ax=F({__name:`MenuContentImpl`,props:Da({loop:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},disableOutsideScroll:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...Jb}),emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,i=Cx(),a=Tx(),{trapFocus:o,disableOutsidePointerEvents:s,loop:c}=yn(n);Lg(),kg(s.value);let l=M(``),u=M(0),d=M(0),f=M(null),p=M(`right`),m=M(0),h=M(null),g=M(),{forwardRef:_,currentElement:v}=Bg(),{handleTypeaheadSearch:y}=d_(),b=M();function x(e){let t=bg(e,b.value||zh(),v.value,{loop:c.value,arrowKeyOptions:`vertical`,dir:a?.dir.value,focus:!1,attributeName:`[data-reka-collection-item]:not([data-disabled])`});t&&(b.value=t,t.scrollIntoView({block:`nearest`}))}function S(){b.value&&b.value.click()}let C=M(),w=M();Er(b,e=>{w.value&&(e===void 0||e!==w.value.trigger.value)&&(w.value.onOpenChange(!1),w.value=void 0)}),Er(v,e=>{i.onContentChange(e)}),Yi(()=>{window.clearTimeout(u.value)});function T(e){return p.value===f.value?.side&&ev(e,f.value?.area)}async function E(e){r(`openAutoFocus`,e),!e.defaultPrevented&&(e.preventDefault(),v.value?.focus({preventScroll:!0}))}function D(e){if(e.defaultPrevented)return;let t=e.target,n=t.closest(`[data-reka-menu-content]`)===e.currentTarget,r=[`input`,`textarea`].includes(t.tagName.toLowerCase()),i=e.ctrlKey||e.altKey||e.metaKey,o=e.key.length===1,s=bg(e,zh(),v.value,{loop:c.value,arrowKeyOptions:`vertical`,dir:a?.dir.value,focus:!0,attributeName:`[data-reka-collection-item]:not([data-disabled])`});if(s)return s?.focus();if(e.code===`Space`)return;let l=g.value?.getItems()??[];if(n&&(e.key===`Tab`&&e.preventDefault(),!i&&o&&!r&&y(e.key,l)),e.target!==v.value||!X_.includes(e.key))return;e.preventDefault();let u=[...l.map(e=>e.ref)];Y_.includes(e.key)&&u.reverse(),Q_(u)}function ee(e){e?.currentTarget?.contains?.(e.target)||(window.clearTimeout(u.value),l.value=``)}function te(e){if(!tv(e))return;let t=e.target,n=m.value!==e.clientX;(e?.currentTarget)?.contains(t)&&n&&(p.value=e.clientX>m.value?`right`:`left`,m.value=e.clientX)}function ne(e){tv(e)&&C.value&&C.value.focus()}return kx({onItemEnter:e=>!!T(e),onItemLeave:e=>T(e)?!0:([`INPUT`,`TEXTAREA`].includes(zh()?.tagName||``)||v.value?.focus(),h.value=null,!1),onTriggerLeave:e=>!!T(e),searchRef:l,highlightedElement:b,onKeydownNavigation:x,onKeydownEnter:S,filterElement:C,onFilterElementChange:e=>{C.value=e},activeSubmenuContext:w,pointerGraceTimerRef:d,onPointerGraceIntentChange:e=>{f.value=e}}),(e,t)=>(z(),V(N(G_),{"as-child":``,trapped:N(o),onMountAutoFocus:E,onUnmountAutoFocus:t[7]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(j_),{"as-child":``,"disable-outside-pointer-events":N(s),onEscapeKeyDown:t[2]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[3]||=e=>r(`pointerDownOutside`,e),onFocusOutside:t[4]||=e=>r(`focusOutside`,e),onInteractOutside:t[5]||=e=>r(`interactOutside`,e),onDismiss:t[6]||=e=>r(`dismiss`)},{default:P(()=>[U(N(vx),{ref_key:`rovingFocusGroupRef`,ref:g,"current-tab-stop-id":h.value,"onUpdate:currentTabStopId":t[0]||=e=>h.value=e,"as-child":``,orientation:`vertical`,dir:N(a).dir.value,loop:N(c),onEntryFocus:t[1]||=e=>{r(`entryFocus`,e),N(a).isUsingKeyboardRef.value||e.preventDefault()}},{default:P(()=>[U(N(Zb),{ref:N(_),role:`menu`,as:e.as,"as-child":e.asChild,"aria-orientation":`vertical`,"data-reka-menu-content":``,"data-state":N(Z_)(N(i).open.value),dir:N(a).dir.value,side:e.side,"side-offset":e.sideOffset,align:e.align,"align-offset":e.alignOffset,"avoid-collisions":e.avoidCollisions,"collision-boundary":e.collisionBoundary,"collision-padding":e.collisionPadding,"arrow-padding":e.arrowPadding,"prioritize-position":e.prioritizePosition,"position-strategy":e.positionStrategy,"update-position-strategy":e.updatePositionStrategy,sticky:e.sticky,"hide-when-detached":e.hideWhenDetached,reference:e.reference,onKeydown:D,onBlur:ee,onPointermove:te,onPointerenter:ne},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`,`dir`,`side`,`side-offset`,`align`,`align-offset`,`avoid-collisions`,`collision-boundary`,`collision-padding`,`arrow-padding`,`prioritize-position`,`position-strategy`,`update-position-strategy`,`sticky`,`hide-when-detached`,`reference`])]),_:3},8,[`current-tab-stop-id`,`dir`,`loop`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),jx=F({inheritAttrs:!1,__name:`MenuItemImpl`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=Ox(),{forwardRef:r,currentElement:i}=Bg(),{CollectionItem:a}=pv(),o=M(!1),s=q(()=>o.value||i.value!=null&&n.highlightedElement.value===i.value);async function c(e){if(!(e.defaultPrevented||!tv(e))){if(t.disabled)n.onItemLeave(e);else if(!n.onItemEnter(e)){let t=e.currentTarget;n.highlightedElement.value=t,[`INPUT`,`TEXTAREA`].includes(zh()?.tagName||``)||t.focus({preventScroll:!0})}}}async function l(e){await Qn(),!e.defaultPrevented&&tv(e)&&n.highlightedElement.value===i.value&&!n.onItemLeave(e)&&n.highlightedElement.value===i.value&&(n.highlightedElement.value=void 0)}return(e,t)=>(z(),V(N(a),{value:{textValue:e.textValue}},{default:P(()=>[U(N(y_),K({ref:N(r),role:`menuitem`,tabindex:`-1`},e.$attrs,{as:e.as,"as-child":e.asChild,"aria-disabled":e.disabled||void 0,"data-disabled":e.disabled?``:void 0,"data-highlighted":s.value?``:void 0,onPointermove:c,onPointerleave:l,onFocus:t[0]||=async t=>{await Qn(),!(t.defaultPrevented||e.disabled)&&(o.value=!0,N(n).highlightedElement.value=t.currentTarget)},onBlur:t[1]||=async e=>{await Qn(),!e.defaultPrevented&&(o.value=!1)}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`aria-disabled`,`data-disabled`,`data-highlighted`])]),_:3},8,[`value`]))}}),Mx=F({__name:`MenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,{forwardRef:i,currentElement:a}=Bg(),o=Tx(),s=Ox(),c=M(!1);async function l(){let e=a.value;if(!n.disabled&&e){let e=new CustomEvent(K_,{bubbles:!0,cancelable:!0});r(`select`,e),await Qn(),e.defaultPrevented?c.value=!1:o.onClose()}}return(e,t)=>(z(),V(jx,K(n,{ref:N(i),onClick:l,onPointerdown:t[0]||=()=>{c.value=!0},onPointerup:t[1]||=async e=>{await Qn(),!e.defaultPrevented&&(c.value||e.currentTarget?.click())},onKeydown:t[2]||=async t=>{let n=N(s).searchRef.value!==``;e.disabled||n&&t.key===` `||N(q_).includes(t.key)&&(t.currentTarget?.click(),t.preventDefault())}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Nx=F({__name:`MenuRootContentModal`,props:{loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Hg(n,r),a=Cx(),{forwardRef:o,currentElement:s}=Bg();return a_(s),(e,t)=>(z(),V(Ax,K(N(i),{ref:N(o),"trap-focus":N(a).open.value,"disable-outside-pointer-events":N(a).open.value,"disable-outside-scroll":!0,onDismiss:t[0]||=e=>N(a).onOpenChange(!1),onFocusOutside:t[1]||=Jl(e=>r(`focusOutside`,e),[`prevent`])}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`trap-focus`,`disable-outside-pointer-events`]))}}),Px=F({__name:`MenuRootContentNonModal`,props:{loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=Hg(e,t),r=Cx();return(e,t)=>(z(),V(Ax,K(N(n),{"trap-focus":!1,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,onDismiss:t[0]||=e=>N(r).onOpenChange(!1)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Fx=F({__name:`MenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=Hg(e,t),r=Cx(),i=Tx();return(e,t)=>(z(),V(N(g_),{present:e.forceMount||N(r).open.value},{default:P(()=>[N(i).modal.value?(z(),V(Nx,ye(K({key:0},{...e.$attrs,...N(n)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(Px,ye(K({key:1},{...e.$attrs,...N(n)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),[Ix,Lx]=Rh(`MenuGroup`),Rx=F({__name:`MenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,n=Ix({id:``});return(e,r)=>(z(),V(N(y_),K(t,{id:N(n).id||void 0}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),zx=F({__name:`MenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Bx=F({__name:`MenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(y_),K(t,{role:`separator`,"aria-orientation":`horizontal`}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),[Vx,Hx]=Rh(`PopoverRoot`),Ux=F({__name:`PopoverRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},modal:{type:Boolean,required:!1,default:!1}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,{modal:i}=yn(n),a=_g(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});return Hx({contentId:``,triggerId:``,modal:i,open:a,onOpenChange:e=>{a.value=e},onOpenToggle:()=>{a.value=!a.value},triggerElement:M(),hasCustomAnchor:M(!1)}),(e,t)=>(z(),V(N(Rv),null,{default:P(()=>[L(e.$slots,`default`,{open:N(a),close:()=>a.value=!1})]),_:3}))}}),Wx=F({__name:`PopoverContentImpl`,props:{trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Vg(rg(n,`trapFocus`,`disableOutsidePointerEvents`)),{forwardRef:a}=Bg(),o=Vx();return Lg(),(e,t)=>(z(),V(N(G_),{"as-child":``,loop:``,trapped:e.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(j_),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onPointerDownOutside:t[0]||=e=>r(`pointerDownOutside`,e),onInteractOutside:t[1]||=e=>r(`interactOutside`,e),onEscapeKeyDown:t[2]||=e=>r(`escapeKeyDown`,e),onFocusOutside:t[3]||=e=>r(`focusOutside`,e),onDismiss:t[4]||=e=>N(o).onOpenChange(!1)},{default:P(()=>[U(N(Zb),K(N(i),{id:N(o).contentId,ref:N(a),"data-state":N(o).open.value?`open`:`closed`,"aria-labelledby":N(o).triggerId,style:{"--reka-popover-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-popover-content-available-width":`var(--reka-popper-available-width)`,"--reka-popover-content-available-height":`var(--reka-popper-available-height)`,"--reka-popover-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-popover-trigger-height":`var(--reka-popper-anchor-height)`},role:`dialog`}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`aria-labelledby`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),Gx=F({__name:`PopoverContentModal`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Vx(),a=M(!1);kg(!0);let o=Hg(n,r),{forwardRef:s,currentElement:c}=Bg();return a_(c),(e,t)=>(z(),V(Wx,K(N(o),{ref:N(s),"trap-focus":N(i).open.value,"disable-outside-pointer-events":``,onCloseAutoFocus:t[0]||=Jl(e=>{r(`closeAutoFocus`,e),a.value||N(i).triggerElement.value?.focus()},[`prevent`]),onPointerDownOutside:t[1]||=e=>{r(`pointerDownOutside`,e);let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;a.value=t.button===2||n},onFocusOutside:t[2]||=Jl(()=>{},[`prevent`])}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),Kx=F({__name:`PopoverContentNonModal`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Vx(),a=M(!1),o=M(!1),s=Hg(n,r);return(e,t)=>(z(),V(Wx,K(N(s),{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:t[0]||=e=>{r(`closeAutoFocus`,e),e.defaultPrevented||(a.value||N(i).triggerElement.value?.focus(),e.preventDefault()),a.value=!1,o.value=!1},onInteractOutside:t[1]||=async e=>{r(`interactOutside`,e),e.defaultPrevented||(a.value=!0,e.detail.originalEvent.type===`pointerdown`&&(o.value=!0));let t=e.target;N(i).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&o.value&&e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),qx=F({__name:`PopoverContent`,props:{forceMount:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Vx(),a=Hg(n,r),{forwardRef:o}=Bg();return i.contentId||=s_(void 0,`reka-popover-content`),(e,t)=>(z(),V(N(g_),{present:e.forceMount||N(i).open.value},{default:P(()=>[N(i).modal.value?(z(),V(Gx,K({key:0},N(a),{ref:N(o)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(Kx,K({key:1},N(a),{ref:N(o)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),Jx=F({__name:`PopoverPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Yx=F({__name:`PopoverTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Vx(),{forwardRef:r,currentElement:i}=Bg();return n.triggerId||=s_(void 0,`reka-popover-trigger`),Gi(()=>{n.triggerElement.value=i.value}),(e,i)=>(z(),V(ia(N(n).hasCustomAnchor.value?N(y_):N(zv)),{"as-child":``},{default:P(()=>[U(N(y_),{id:N(n).triggerId,ref:N(r),type:e.as===`button`?`button`:void 0,"aria-haspopup":`dialog`,"aria-expanded":N(n).open.value,"aria-controls":N(n).contentId,"data-state":N(n).open.value?`open`:`closed`,as:e.as,"as-child":t.asChild,onClick:N(n).onOpenToggle},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`id`,`type`,`aria-expanded`,`aria-controls`,`data-state`,`as`,`as-child`,`onClick`])]),_:3}))}}),[Xx,Zx]=Rh(`DropdownMenuRoot`),Qx=F({__name:`DropdownMenuRoot`,props:{defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1,default:void 0},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;Bg();let i=_g(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),a=M(),{modal:o,dir:s}=yn(n),c=Ng(s);return Zx({open:i,onOpenChange:e=>{i.value=e},onOpenToggle:()=>{i.value=!i.value},triggerId:``,triggerElement:a,contentId:``,modal:o,dir:c}),(e,t)=>(z(),V(N(Dx),{open:N(i),"onUpdate:open":t[0]||=e=>ln(i)?i.value=e:null,dir:N(c),modal:N(o)},{default:P(()=>[L(e.$slots,`default`,{open:N(i)})]),_:3},8,[`open`,`dir`,`modal`]))}}),$x=F({__name:`DropdownMenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(e,{emit:t}){let n=Hg(e,t);Bg();let r=Xx(),i=M(!1);function a(e){e.defaultPrevented||(i.value||setTimeout(()=>{r.triggerElement.value?.focus()},0),i.value=!1,e.preventDefault())}return r.contentId||=s_(void 0,`reka-dropdown-menu-content`),(e,t)=>(z(),V(N(Fx),K(N(n),{id:N(r).contentId,"aria-labelledby":N(r)?.triggerId,style:{"--reka-dropdown-menu-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-dropdown-menu-content-available-width":`var(--reka-popper-available-width)`,"--reka-dropdown-menu-content-available-height":`var(--reka-popper-available-height)`,"--reka-dropdown-menu-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-dropdown-menu-trigger-height":`var(--reka-popper-anchor-height)`},onCloseAutoFocus:a,onInteractOutside:t[0]||=e=>{if(e.defaultPrevented)return;let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,a=t.button===2||n;(!N(r).modal.value||a)&&(i.value=!0),N(r).triggerElement.value?.contains(e.target)&&e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`]))}}),eS=F({__name:`DropdownMenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=Pg(t);return Bg(),(e,t)=>(z(),V(N(Mx),ye(hs({...n,...N(r)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),tS=F({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return Bg(),(e,n)=>(z(),V(N(Rx),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),nS=F({__name:`DropdownMenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(zx),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),rS=F({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return Bg(),(e,n)=>(z(),V(N(Bx),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),iS=F({__name:`DropdownMenuTrigger`,props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Xx(),{forwardRef:r,currentElement:i}=Bg();return Gi(()=>{n.triggerElement=i}),n.triggerId||=s_(void 0,`reka-dropdown-menu-trigger`),(e,i)=>(z(),V(N(bx),{"as-child":``},{default:P(()=>[U(N(y_),{id:N(n).triggerId,ref:N(r),type:e.as===`button`?`button`:void 0,"as-child":t.asChild,as:e.as,"aria-haspopup":`menu`,"aria-expanded":N(n).open.value,"aria-controls":N(n).open.value?N(n).contentId:void 0,"data-disabled":e.disabled?``:void 0,disabled:e.disabled,"data-state":N(n).open.value?`open`:`closed`,onClick:i[0]||=async t=>{!e.disabled&&t.button===0&&t.ctrlKey===!1&&(N(n)?.onOpenToggle(),await Qn(),N(n).open.value&&t.preventDefault())},onKeydown:i[1]||=Xl(t=>{e.disabled||([`Enter`,` `].includes(t.key)&&N(n).onOpenToggle(),t.key===`ArrowDown`&&N(n).onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(t.key)&&t.preventDefault())},[`enter`,`space`,`arrow-down`])},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as-child`,`as`,`aria-expanded`,`aria-controls`,`data-disabled`,`disabled`,`data-state`])]),_:3}))}}),aS=F({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(e){let t=e;return Bg(),(e,n)=>(z(),V(N(y_),K(t,{onMousedown:n[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),oS=[` `,`Enter`,`ArrowUp`,`ArrowDown`],sS=[` `,`Enter`];function cS(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>lS(e,t,n)):lS(e,t,n)}function lS(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:Fh(e,t)}function uS(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var dS={key:0,value:``},[fS,pS]=Rh(`SelectRoot`),mS=F({inheritAttrs:!1,__name:`SelectRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`update:open`],setup(e,{emit:t}){let n=e,r=t,{required:i,disabled:a,multiple:o,dir:s}=yn(n),c=_g(n,`modelValue`,r,{defaultValue:n.defaultValue??(o.value?[]:void 0),passive:n.modelValue===void 0,deep:!0}),l=_g(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),u=M(),d=M(),f=M({x:0,y:0}),p=q(()=>o.value&&Array.isArray(c.value)?c.value?.length===0:Vh(c.value));pv({isProvider:!0});let m=Ng(s),h=zg(u),g=M(new Set),_=q(()=>Array.from(g.value).map(e=>e.value).join(`;`));function v(e){if(o.value){let t=Array.isArray(c.value)?[...c.value]:[],r=t.findIndex(t=>lS(t,e,n.by));r===-1?t.push(e):t.splice(r,1),c.value=[...t]}else c.value=e}function y(e){return Array.from(g.value).find(t=>cS(e,t.value,n.by))}return pS({triggerElement:u,onTriggerChange:e=>{u.value=e},valueElement:d,onValueElementChange:e=>{d.value=e},contentId:``,modelValue:c,onValueChange:v,by:n.by,open:l,multiple:o,required:i,onOpenChange:e=>{l.value=e},dir:m,triggerPointerDownPosRef:f,disabled:a,isEmptyModelValue:p,optionsSet:g,onOptionAdd:e=>{let t=y(e.value);t&&g.value.delete(t),g.value.add(e)},onOptionRemove:e=>{let t=y(e.value);t&&g.value.delete(t)}}),(e,t)=>(z(),V(N(Rv),null,{default:P(()=>[L(e.$slots,`default`,{modelValue:N(c),open:N(l)}),N(h)&&e.name?(z(),V(hS,{key:_.value,"aria-hidden":`true`,tabindex:`-1`,multiple:N(o),required:N(i),name:e.name,autocomplete:e.autocomplete,disabled:N(a),value:N(c)},{default:P(()=>[N(Vh)(N(c))?(z(),B(`option`,dS)):G(`v-if`,!0),(z(!0),B(R,null,I(Array.from(g.value),e=>(z(),B(`option`,K({key:e.value??``},{ref_for:!0},e),null,16))),128))]),_:1},8,[`multiple`,`required`,`name`,`autocomplete`,`disabled`,`value`])):G(`v-if`,!0)]),_:3}))}}),hS=F({__name:`BubbleSelect`,props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(e){let t=e,n=M(),r=fS();Er(()=>t.value,(e,t)=>{let r=window.HTMLSelectElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(e!==t&&i&&n.value){let t=new Event(`change`,{bubbles:!0});i.call(n.value,e),n.value.dispatchEvent(t)}});function i(e){r.onValueChange(e.target.value)}return(e,r)=>(z(),V(N(mv),{"as-child":``},{default:P(()=>[H(`select`,K({ref_key:`selectElement`,ref:n},t,{onInput:i}),[L(e.$slots,`default`)],16)]),_:3}))}}),gS=F({__name:`SelectPopperPosition`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:10},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Vg(e);return(e,n)=>(z(),V(N(Zb),K(N(t),{style:{boxSizing:`border-box`,"--reka-select-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-select-content-available-width":`var(--reka-popper-available-width)`,"--reka-select-content-available-height":`var(--reka-popper-available-height)`,"--reka-select-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-select-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),_S={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[vS,yS]=Rh(`SelectContent`),bS=F({__name:`SelectContentImpl`,props:{position:{type:String,required:!1,default:`item-aligned`},bodyLock:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=fS();Lg(),kg(n.bodyLock);let{CollectionSlot:a,getItems:o}=pv(),s=M();a_(s);let{search:c,handleTypeaheadSearch:l}=d_(),u=M(),d=M(),f=M(),p=M(!1),m=M(!1),h=M(!1);function g(){d.value&&s.value&&Q_([d.value,s.value])}Er(p,()=>{g()});let{onOpenChange:_,triggerPointerDownPosRef:v}=i;Cr(e=>{if(!s.value)return;let t={x:0,y:0},n=e=>{t={x:Math.abs(Math.round(e.pageX)-(v.value?.x??0)),y:Math.abs(Math.round(e.pageY)-(v.value?.y??0))}},r=e=>{e.pointerType!==`touch`&&(t.x<=10&&t.y<=10?e.preventDefault():s.value?.contains(e.target)||_(!1),document.removeEventListener(`pointermove`,n),v.value=null)};v.value!==null&&(document.addEventListener(`pointermove`,n),document.addEventListener(`pointerup`,r,{capture:!0,once:!0})),e(()=>{document.removeEventListener(`pointermove`,n),document.removeEventListener(`pointerup`,r,{capture:!0})})});function y(e){let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&l(e.key,o()),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=[...o().map(e=>e.ref)];if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>Q_(t)),e.preventDefault()}}let b=Vg(q(()=>n.position===`popper`?n:{}).value);return yS({content:s,viewport:u,onViewportChange:e=>{u.value=e},itemRefCallback:(e,t,n)=>{let r=!m.value&&!n,a=cS(i.modelValue.value,t,i.by);if(i.multiple.value){if(h.value)return;(a||r)&&(d.value=e,a&&(h.value=!0))}else (a||r)&&(d.value=e);r&&(m.value=!0)},selectedItem:d,selectedItemText:f,onItemLeave:()=>{s.value?.focus()},itemTextRefCallback:(e,t,n)=>{let r=!m.value&&!n;(cS(i.modelValue.value,t,i.by)||r)&&(f.value=e)},focusSelectedItem:g,position:n.position,isPositioned:p,searchRef:c}),(e,t)=>(z(),V(N(a),null,{default:P(()=>[U(N(G_),{"as-child":``,onMountAutoFocus:t[6]||=Jl(()=>{},[`prevent`]),onUnmountAutoFocus:t[7]||=e=>{r(`closeAutoFocus`,e),!e.defaultPrevented&&(N(i).triggerElement.value?.focus({preventScroll:!0}),e.preventDefault())}},{default:P(()=>[U(N(j_),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onFocusOutside:t[2]||=Jl(()=>{},[`prevent`]),onDismiss:t[3]||=e=>N(i).onOpenChange(!1),onEscapeKeyDown:t[4]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[5]||=e=>r(`pointerDownOutside`,e)},{default:P(()=>[(z(),V(ia(e.position===`popper`?gS:CS),K({...e.$attrs,...N(b)},{id:N(i).contentId,ref:e=>{if(!e)return;let t=N(lg)(e);t?.hasAttribute(`data-reka-popper-content-wrapper`)?s.value=t.firstElementChild:s.value=t},role:`listbox`,"data-state":N(i).open.value?`open`:`closed`,dir:N(i).dir.value,style:{display:`flex`,flexDirection:`column`,outline:`none`},onContextmenu:t[0]||=Jl(()=>{},[`prevent`]),onPlaced:t[1]||=e=>p.value=!0,onKeydown:y}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`dir`,`onKeydown`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),[xS,SS]=Rh(`SelectItemAlignedPosition`),CS=F({inheritAttrs:!1,__name:`SelectItemAlignedPosition`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,{getItems:i}=pv(),a=fS(),o=vS(),s=M(!1),c=M(!0),l=M(),{forwardRef:u,currentElement:d}=Bg(),{viewport:f,selectedItem:p,selectedItemText:m,focusSelectedItem:h}=o;function g(){if(a.triggerElement.value&&a.valueElement.value&&l.value&&d.value&&f?.value&&p?.value&&m?.value){let e=a.triggerElement.value.getBoundingClientRect(),t=d.value.getBoundingClientRect(),n=a.valueElement.value.getBoundingClientRect(),o=m.value.getBoundingClientRect();if(a.dir.value!==`rtl`){let r=o.left-t.left,i=n.left-r,a=e.left-i,s=e.width+a,c=Math.max(s,t.width),u=window.innerWidth-10,d=Lh(i,10,Math.max(10,u-c));l.value.style.minWidth=`${s}px`,l.value.style.left=`${d}px`}else{let r=t.right-o.right,i=window.innerWidth-n.right-r,a=window.innerWidth-e.right-i,s=e.width+a,c=Math.max(s,t.width),u=window.innerWidth-10,d=Lh(i,10,Math.max(10,u-c));l.value.style.minWidth=`${s}px`,l.value.style.right=`${d}px`}let c=i().map(e=>e.ref),u=window.innerHeight-20,h=f.value.scrollHeight,g=window.getComputedStyle(d.value),_=Number.parseInt(g.borderTopWidth,10),v=Number.parseInt(g.paddingTop,10),y=Number.parseInt(g.borderBottomWidth,10),b=Number.parseInt(g.paddingBottom,10),x=_+v+h+b+y,S=Math.min(p.value.offsetHeight*5,x),C=window.getComputedStyle(f.value),w=Number.parseInt(C.paddingTop,10),T=Number.parseInt(C.paddingBottom,10),E=e.top+e.height/2-10,D=u-E,ee=p.value.offsetHeight/2,te=p.value.offsetTop+ee,ne=_+v+te,O=x-ne;if(ne<=E){let e=p.value===c.at(-1);l.value.style.bottom=`0px`;let t=d.value.clientHeight-f.value.offsetTop-f.value.offsetHeight,n=ne+Math.max(D,ee+(e?T:0)+t+y);l.value.style.height=`${n}px`}else{let e=p.value===c[0];l.value.style.top=`0px`;let t=Math.max(E,_+f.value.offsetTop+(e?w:0)+ee)+O;l.value.style.height=`${t}px`,f.value.scrollTop=ne-E+f.value.offsetTop}l.value.style.margin=`10px 0`,l.value.style.minHeight=`${S}px`,l.value.style.maxHeight=`${u}px`,r(`placed`),requestAnimationFrame(()=>s.value=!0)}}let _=M(``);Gi(async()=>{await Qn(),g(),d.value&&(_.value=window.getComputedStyle(d.value).zIndex)});function v(e){e&&c.value===!0&&(g(),h?.(),c.value=!1)}return gg(a.triggerElement,()=>{g()}),SS({contentWrapper:l,shouldExpandOnScrollRef:s,onScrollButtonChange:v}),(e,t)=>(z(),B(`div`,{ref_key:`contentWrapperElement`,ref:l,style:me({display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:_.value})},[U(N(y_),K({ref:N(u),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...n}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)],4))}}),wS=F({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return pS(e.context),yS(_S),(e,t)=>L(e.$slots,`default`)}}),TS={key:1},ES=F({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=Hg(n,t),i=fS(),a=M();Gi(()=>{a.value=new DocumentFragment});let o=M(),s=q(()=>n.forceMount||i.open.value),c=M(s.value),l;function u(){l&&=(clearTimeout(l),void 0)}return Er(s,(e,t,n)=>{u(),l=setTimeout(()=>{c.value=s.value,l=void 0}),n(u)}),Yi(u),(e,t)=>s.value||c.value||o.value?.present?(z(),V(N(g_),{key:0,ref_key:`presenceRef`,ref:o,present:s.value},{default:P(()=>[U(bS,ye(hs({...N(r),...e.$attrs})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):a.value?(z(),B(`div`,TS,[(z(),V(Vr,{to:a.value},[U(wS,{context:N(i)},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):G(`v-if`,!0)}}),DS=F({__name:`SelectIcon`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(z(),V(N(y_),{"aria-hidden":`true`,as:e.as,"as-child":e.asChild},{default:P(()=>[L(e.$slots,`default`,{},()=>[t[0]||=W(`▼`)])]),_:3},8,[`as`,`as-child`]))}}),[OS,kS]=Rh(`SelectItem`),AS=F({__name:`SelectItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,{disabled:i}=yn(n),a=fS(),o=vS(),{forwardRef:s,currentElement:c}=Bg(),{CollectionItem:l}=pv(),u=q(()=>cS(a.modelValue?.value,n.value,a.by)),d=M(!1),f=M(n.textValue??``),p=s_(void 0,`reka-select-item-text`);async function m(e){e.defaultPrevented||Bh(`select.select`,h,{originalEvent:e,value:n.value})}async function h(e){await Qn(),r(`select`,e),!e.defaultPrevented&&(i.value||(a.onValueChange(n.value),a.multiple.value||a.onOpenChange(!1)))}async function g(e){await Qn(),!e.defaultPrevented&&(i.value?o.onItemLeave?.():e.currentTarget?.focus({preventScroll:!0}))}async function _(e){await Qn(),!e.defaultPrevented&&e.currentTarget===zh()&&o.onItemLeave?.()}async function v(e){await Qn(),!e.defaultPrevented&&(o.searchRef?.value!==``&&e.key===` `||(sS.includes(e.key)&&m(e),e.key===` `&&e.preventDefault()))}if(n.value===``)throw Error(`A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return Gi(()=>{c.value&&o.itemRefCallback(c.value,n.value,n.disabled)}),kS({value:n.value,disabled:i,textId:p,isSelected:u,onItemTextChange:e=>{f.value=((f.value||e?.textContent)??``).trim()}}),(e,t)=>(z(),V(N(l),{value:{textValue:f.value}},{default:P(()=>[U(N(y_),{ref:N(s),role:`option`,"aria-labelledby":N(p),"data-highlighted":d.value?``:void 0,"aria-selected":u.value,"data-state":u.value?`checked`:`unchecked`,"aria-disabled":N(i)||void 0,"data-disabled":N(i)?``:void 0,tabindex:N(i)?void 0:-1,as:e.as,"as-child":e.asChild,onFocus:t[0]||=e=>d.value=!0,onBlur:t[1]||=e=>d.value=!1,onPointerup:m,onPointerdown:t[2]||=e=>{e.currentTarget.focus({preventScroll:!0})},onTouchend:t[3]||=Jl(()=>{},[`prevent`,`stop`]),onPointermove:g,onPointerleave:_,onKeydown:v},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`aria-labelledby`,`data-highlighted`,`aria-selected`,`data-state`,`aria-disabled`,`data-disabled`,`tabindex`,`as`,`as-child`])]),_:3},8,[`value`]))}}),jS=F({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=OS();return(e,r)=>N(n).isSelected.value?(z(),V(N(y_),K({key:0,"aria-hidden":`true`},t),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):G(`v-if`,!0)}}),MS=F({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=fS(),r=vS(),i=OS(),{forwardRef:a,currentElement:o}=Bg(),s=q(()=>({value:i.value,disabled:i.disabled.value,textContent:o.value?.textContent??i.value?.toString()??``}));return Gi(()=>{o.value&&(i.onItemTextChange(o.value),r.itemTextRefCallback(o.value,i.value,i.disabled.value),n.onOptionAdd(s.value))}),Yi(()=>{n.onOptionRemove(s.value)}),(e,n)=>(z(),V(N(y_),K({id:N(i).textId,ref:N(a)},{...t,...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),NS=F({__name:`SelectPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),PS=F({__name:`SelectTrigger`,props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=fS(),{forwardRef:r,currentElement:i}=Bg(),a=q(()=>n.disabled?.value||t.disabled);n.contentId||=s_(void 0,`reka-select-content`),Gi(()=>{n.onTriggerChange(i.value)});let{getItems:o}=pv(),{search:s,handleTypeaheadSearch:c,resetTypeahead:l}=d_();function u(){a.value||(n.onOpenChange(!0),l())}function d(e){u(),n.triggerPointerDownPosRef.value={x:Math.round(e.pageX),y:Math.round(e.pageY)}}return(e,t)=>(z(),V(N(zv),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(y_),{ref:N(r),role:`combobox`,type:e.as===`button`?`button`:void 0,"aria-controls":N(n).contentId,"aria-expanded":N(n).open.value||!1,"aria-required":N(n).required?.value,"aria-autocomplete":`none`,disabled:a.value,dir:N(n)?.dir.value,"data-state":N(n)?.open.value?`open`:`closed`,"data-disabled":a.value?``:void 0,"data-placeholder":N(uS)(N(n).modelValue?.value)?``:void 0,"as-child":e.asChild,as:e.as,onClick:t[0]||=e=>{(e?.currentTarget)?.focus()},onPointerdown:t[1]||=e=>{if(e.pointerType===`touch`)return e.preventDefault();let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&(d(e),e.preventDefault())},onPointerup:t[2]||=Jl(e=>{e.pointerType===`touch`&&d(e)},[`prevent`]),onKeydown:t[3]||=e=>{let t=N(s)!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&t&&e.key===` `||(N(c)(e.key,N(o)()),N(oS).includes(e.key)&&(u(),e.preventDefault()))}},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`type`,`aria-controls`,`aria-expanded`,`aria-required`,`disabled`,`dir`,`data-state`,`data-disabled`,`data-placeholder`,`as-child`,`as`])]),_:3},8,[`reference`]))}}),FS=F({__name:`SelectValue`,props:{placeholder:{type:String,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,{forwardRef:n,currentElement:r}=Bg(),i=fS();Gi(()=>{i.valueElement=r});let a=q(()=>{let e=[],t=Array.from(i.optionsSet.value),n=e=>t.find(t=>cS(e,t.value,i.by));return e=Array.isArray(i.modelValue.value)?i.modelValue.value.map(e=>n(e)?.textContent??``):[n(i.modelValue.value)?.textContent??``],e.filter(Boolean)}),o=q(()=>a.value.length?a.value.join(`, `):t.placeholder);return(e,r)=>(z(),V(N(y_),{ref:N(n),as:e.as,"as-child":e.asChild,style:{pointerEvents:`none`},"data-placeholder":a.value.length?void 0:t.placeholder},{default:P(()=>[L(e.$slots,`default`,{selectedLabel:a.value,modelValue:N(i).modelValue.value},()=>[W(j(o.value),1)])]),_:3},8,[`as`,`as-child`,`data-placeholder`]))}}),IS=F({__name:`SelectViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{nonce:n}=yn(t),r=mx(n),i=vS(),a=i.position===`item-aligned`?xS():void 0,{forwardRef:o,currentElement:s}=Bg();Gi(()=>{i?.onViewportChange(s.value)});let c=M(0);function l(e){let t=e.currentTarget,{shouldExpandOnScrollRef:n,contentWrapper:r}=a??{};if(n?.value&&r?.value){let e=Math.abs(c.value-t.scrollTop);if(e>0){let n=window.innerHeight-20,i=Number.parseFloat(r.value.style.minHeight),a=Number.parseFloat(r.value.style.height),o=Math.max(i,a);if(o<n){let i=o+e,a=Math.min(n,i),s=i-a;r.value.style.height=`${a}px`,r.value.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,r.value.style.justifyContent=`flex-end`)}}}c.value=t.scrollTop}return(e,n)=>(z(),B(R,null,[U(N(y_),K({ref:N(o),"data-reka-select-viewport":``,role:`presentation`},{...e.$attrs,...t},{style:{position:`relative`,flex:1,overflow:`hidden auto`},onScroll:l}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16),U(N(y_),{as:`style`,nonce:N(r)},{default:P(()=>n[0]||=[W(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),[LS,RS]=Rh(`SwitchRoot`),zS=F({__name:`SwitchRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:`on`},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,{disabled:i}=yn(n),a=_g(n,`modelValue`,r,{defaultValue:n.defaultValue??n.falseValue,passive:n.modelValue===void 0}),o=q(()=>a.value===n.trueValue);function s(){i.value||(a.value=o.value?n.falseValue:n.trueValue)}let{forwardRef:c,currentElement:l}=Bg(),u=zg(l),d=q(()=>n.id&&l.value?document.querySelector(`[for="${n.id}"]`)?.innerText:void 0);return RS({checked:o,toggleCheck:s,disabled:i}),(e,t)=>(z(),V(N(y_),K(e.$attrs,{id:e.id,ref:N(c),role:`switch`,type:e.as===`button`?`button`:void 0,value:e.value,"aria-label":e.$attrs[`aria-label`]||d.value,"aria-checked":o.value,"aria-required":e.required,"data-state":o.value?`checked`:`unchecked`,"data-disabled":N(i)?``:void 0,"as-child":e.asChild,as:e.as,disabled:N(i),onClick:s,onKeydown:Xl(Jl(s,[`prevent`]),[`enter`])}),{default:P(()=>[L(e.$slots,`default`,{modelValue:N(a),checked:o.value}),N(u)&&e.name?(z(),V(N(gv),{key:0,type:`checkbox`,name:e.name,disabled:N(i),required:e.required,value:e.value,checked:o.value},null,8,[`name`,`disabled`,`required`,`value`,`checked`])):G(`v-if`,!0)]),_:3},16,[`id`,`type`,`value`,`aria-label`,`aria-checked`,`aria-required`,`data-state`,`data-disabled`,`as-child`,`as`,`disabled`,`onKeydown`]))}}),BS=F({__name:`SwitchThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=LS();return Bg(),(e,n)=>(z(),V(N(y_),{"data-state":N(t).checked.value?`checked`:`unchecked`,"data-disabled":N(t).disabled.value?``:void 0,"as-child":e.asChild,as:e.as},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`data-state`,`data-disabled`,`as-child`,`as`]))}}),[VS,HS]=Rh(`TabsRoot`),US=F({__name:`TabsRoot`,props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:`automatic`},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,{orientation:i,unmountOnHide:a,dir:o}=yn(n),s=Ng(o);Bg();let c=_g(n,`modelValue`,r,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),l=M(),u=un(new Set);return HS({modelValue:c,changeModelValue:e=>{c.value=e},orientation:i,dir:s,unmountOnHide:a,activationMode:n.activationMode,baseId:s_(void 0,`reka-tabs`),tabsList:l,contentIds:u,registerContent:e=>{u.value=new Set([...u.value,e])},unregisterContent:e=>{let t=new Set(u.value);t.delete(e),u.value=t}}),(e,t)=>(z(),V(N(y_),{dir:N(s),"data-orientation":N(i),"as-child":e.asChild,as:e.as},{default:P(()=>[L(e.$slots,`default`,{modelValue:N(c)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function WS(e,t){return`${e}-trigger-${t}`}function GS(e,t){return`${e}-content-${t}`}var KS=F({__name:`TabsList`,props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{loop:t}=yn(e),{forwardRef:n,currentElement:r}=Bg(),i=VS();return i.tabsList=r,(e,r)=>(z(),V(N(vx),{"as-child":``,orientation:N(i).orientation.value,dir:N(i).dir.value,loop:N(t)},{default:P(()=>[U(N(y_),{ref:N(n),role:`tablist`,"as-child":e.asChild,as:e.as,"aria-orientation":N(i).orientation.value},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),qS=F({__name:`TabsTrigger`,props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,{forwardRef:n}=Bg(),r=VS(),i=q(()=>WS(r.baseId,t.value)),a=q(()=>r.contentIds.value.has(t.value)?GS(r.baseId,t.value):void 0),o=q(()=>t.value===r.modelValue.value);return(e,t)=>(z(),V(N(yx),{"as-child":``,focusable:!e.disabled,active:o.value},{default:P(()=>[U(N(y_),{id:i.value,ref:N(n),role:`tab`,type:e.as===`button`?`button`:void 0,as:e.as,"as-child":e.asChild,"aria-selected":o.value?`true`:`false`,"aria-controls":a.value,"data-state":o.value?`active`:`inactive`,disabled:e.disabled,"data-disabled":e.disabled?``:void 0,"data-orientation":N(r).orientation.value,onMousedown:t[0]||=Jl(t=>{!e.disabled&&t.ctrlKey===!1?N(r).changeModelValue(e.value):t.preventDefault()},[`left`]),onKeydown:t[1]||=Xl(t=>N(r).changeModelValue(e.value),[`enter`,`space`]),onFocus:t[2]||=()=>{let t=N(r).activationMode!==`manual`;!o.value&&!e.disabled&&t&&N(r).changeModelValue(e.value)}},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as`,`as-child`,`aria-selected`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`data-orientation`])]),_:3},8,[`focusable`,`active`]))}}),[JS,YS]=Rh(`TooltipProvider`),XS=F({inheritAttrs:!1,__name:`TooltipProvider`,props:{delayDuration:{type:Number,required:!1,default:700},skipDelayDuration:{type:Number,required:!1,default:300},disableHoverableContent:{type:Boolean,required:!1,default:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:!1},content:{type:Object,required:!1}},setup(e){let{delayDuration:t,skipDelayDuration:n,disableHoverableContent:r,disableClosingTrigger:i,ignoreNonKeyboardFocus:a,disabled:o,content:s}=yn(e);Bg();let c=M(!0),l=M(!1),{start:u,stop:d}=og(()=>{c.value=!0},n,{immediate:!1});return YS({isOpenDelayed:c,delayDuration:t,onOpen(){d(),c.value=!1},onClose(){u()},isPointerInTransitRef:l,disableHoverableContent:r,disableClosingTrigger:i,disabled:o,ignoreNonKeyboardFocus:a,content:s}),(e,t)=>L(e.$slots,`default`)}}),ZS=`tooltip.open`,[QS,$S]=Rh(`TooltipRoot`),eC=F({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;Bg();let i=JS(),a=q(()=>n.disableHoverableContent??i.disableHoverableContent.value),o=q(()=>n.disableClosingTrigger??i.disableClosingTrigger.value),s=q(()=>n.disabled??i.disabled.value),c=q(()=>n.delayDuration??i.delayDuration.value),l=q(()=>n.ignoreNonKeyboardFocus??i.ignoreNonKeyboardFocus.value),u=_g(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});Er(u,e=>{i.onClose&&(e?(i.onOpen(),document.dispatchEvent(new CustomEvent(ZS))):i.onClose())});let d=M(!1),f=M(),p=q(()=>u.value?d.value?`delayed-open`:`instant-open`:`closed`),{start:m,stop:h}=og(()=>{d.value=!0,u.value=!0},c,{immediate:!1});function g(){h(),d.value=!1,u.value=!0}function _(){h(),u.value=!1}function v(){m()}return $S({contentId:``,open:u,stateAttribute:p,trigger:f,onTriggerChange(e){f.value=e},onTriggerEnter(){i.isOpenDelayed.value?v():g()},onTriggerLeave(){a.value?_():h()},onOpen:g,onClose:_,disableHoverableContent:a,disableClosingTrigger:o,disabled:s,ignoreNonKeyboardFocus:l}),(e,t)=>(z(),V(N(Rv),null,{default:P(()=>[L(e.$slots,`default`,{open:N(u)})]),_:3}))}}),tC=F({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=QS(),a=JS(),{forwardRef:o,currentElement:s}=Bg(),c=q(()=>n.ariaLabel||s.value?.textContent),l=q(()=>{let{ariaLabel:e,...t}=n;return Dg(t,a.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return Gi(()=>{ug(window,`scroll`,e=>{e.target?.contains(i.trigger.value)&&i.onClose()},{capture:!0}),ug(window,ZS,i.onClose)}),(e,t)=>(z(),V(N(j_),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:t[0]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[1]||=e=>{N(i).disableClosingTrigger.value&&N(i).trigger.value?.contains(e.target)&&e.preventDefault(),r(`pointerDownOutside`,e)},onFocusOutside:t[2]||=Jl(()=>{},[`prevent`]),onDismiss:t[3]||=e=>N(i).onClose()},{default:P(()=>[U(N(Zb),K({ref:N(o),"data-state":N(i).stateAttribute.value},{...e.$attrs,...l.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:P(()=>[L(e.$slots,`default`),U(N(mv),{id:N(i).contentId,role:`tooltip`},{default:P(()=>[W(j(c.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),nC=F({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let t=Vg(e),{forwardRef:n,currentElement:r}=Bg(),{trigger:i,onClose:a}=QS(),o=JS(),{isPointerInTransit:s,onPointerExit:c}=Ug(i,r);return o.isPointerInTransitRef=s,c(()=>{a()}),(e,r)=>(z(),V(tC,K({ref:N(n)},N(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),rC=F({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=QS(),a=Hg(n,r),{forwardRef:o}=Bg();return(e,t)=>(z(),V(N(g_),{present:e.forceMount||N(i).open.value},{default:P(()=>[(z(),V(ia(N(i).disableHoverableContent.value?tC:nC),K({ref:N(o)},N(a)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),iC=F({__name:`TooltipPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(N(lv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),aC=F({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=QS(),r=JS();n.contentId||=s_(void 0,`reka-tooltip-content`);let{forwardRef:i,currentElement:a}=Bg(),o=M(!1),s=M(!1),c=q(()=>n.disabled.value?{}:{click:h,focus:p,pointermove:d,pointerleave:f,pointerdown:u,blur:m});Gi(()=>{n.onTriggerChange(a.value)});function l(){setTimeout(()=>{o.value=!1},1)}function u(){n.open&&!n.disableClosingTrigger.value&&n.onClose(),o.value=!0,document.addEventListener(`pointerup`,l,{once:!0})}function d(e){e.pointerType!==`touch`&&!s.value&&!r.isPointerInTransitRef.value&&(n.onTriggerEnter(),s.value=!0)}function f(){n.onTriggerLeave(),s.value=!1}function p(e){o.value||n.ignoreNonKeyboardFocus.value&&!e.target.matches?.(`:focus-visible`)||n.onOpen()}function m(){n.onClose()}function h(){n.disableClosingTrigger.value||n.onClose()}return(e,r)=>(z(),V(N(zv),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(y_),K({ref:N(i),"aria-describedby":N(n).open.value?N(n).contentId:void 0,"data-state":N(n).stateAttribute.value,as:e.as,"as-child":t.asChild,"data-grace-area-trigger":``},ua(c.value)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),$=F({__name:`Button`,props:{variant:{},size:{},class:{},asChild:{type:Boolean},as:{default:`button`}},setup(e){let t=e;return(n,r)=>(z(),V(N(y_),{as:e.as,"as-child":e.asChild,class:A(N(lh)(N(oC)({variant:e.variant,size:e.size}),t.class))},{default:P(()=>[L(n.$slots,`default`)]),_:3},8,[`as`,`as-child`,`class`]))}}),oC=Mh(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,destructive:`bg-destructive text-white hover:bg-destructive/90`},size:{sm:`h-8 rounded-md px-3 text-xs`,default:`h-9 px-4 py-2`,icon:`size-9`}},defaultVariants:{variant:`default`,size:`default`}}),sC=F({__name:`Input`,props:Oa({class:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=Xa(e,`modelValue`);return(e,n)=>gr((z(),B(`input`,{"onUpdate:modelValue":n[0]||=e=>t.value=e,class:A(N(lh)(`flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50`,e.$props.class))},null,2)),[[Pl,t.value]])}}),cC=F({__name:`SelectTrigger`,props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=Vg(t);return(e,r)=>(z(),V(N(PS),K(N(n),{class:N(lh)(`flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,t.class)}),{default:P(()=>[L(e.$slots,`default`),U(N(DS),{"as-child":``},{default:P(()=>[U(N(Ou),{class:`size-4 opacity-50`})]),_:1})]),_:3},16,[`class`]))}}),lC=F({__name:`SelectContent`,props:{forceMount:{type:Boolean},position:{default:`popper`},bodyLock:{type:Boolean},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(t,i)=>(z(),V(N(NS),null,{default:P(()=>[U(N(ES),K(N(r),{class:N(lh)(`relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,e.position===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1`,n.class)}),{default:P(()=>[U(N(IS),{class:A(N(lh)(`p-1`,e.position===`popper`&&`h-[var(--reka-select-trigger-height)] w-full min-w-[var(--reka-select-trigger-width)]`))},{default:P(()=>[L(t.$slots,`default`)]),_:3},8,[`class`])]),_:3},16,[`class`])]),_:3}))}}),uC={class:`absolute left-2 flex size-3.5 items-center justify-center`},dC=F({__name:`SelectItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=Vg(t);return(e,r)=>(z(),V(N(AS),K(N(n),{class:N(lh)(`relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,t.class)}),{default:P(()=>[H(`span`,uC,[U(N(jS),null,{default:P(()=>[U(N(Du),{class:`size-4`})]),_:1})]),U(N(MS),null,{default:P(()=>[L(e.$slots,`default`)]),_:3})]),_:3},16,[`class`]))}}),fC=F({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(KS),K(t,{class:N(lh)(`inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground`,t.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`]))}}),pC=F({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=Vg(t);return(e,r)=>(z(),V(N(qS),K(N(n),{class:N(lh)(`inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow`,t.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`]))}}),mC=F({__name:`PopoverContent`,props:{forceMount:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{default:`center`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(e,t)=>(z(),V(N(Jx),null,{default:P(()=>[U(N(qx),K(N(r),{class:N(lh)(`z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,n.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),hC=F({__name:`Badge`,props:{variant:{},class:{}},setup(e){return(t,n)=>(z(),B(`span`,{class:A(N(lh)(N(gC)({variant:e.variant}),t.$props.class))},[L(t.$slots,`default`)],2))}}),gC=Mh(`inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground`,secondary:`border-transparent bg-secondary text-secondary-foreground`,outline:`text-foreground`,destructive:`border-transparent bg-destructive text-white`,source:`border-transparent bg-state-source/15 text-state-source`,machine:`border-transparent bg-state-machine/15 text-state-machine`,reviewed:`border-transparent bg-state-reviewed/15 text-state-reviewed`,"needs-review":`border-transparent bg-state-needs-review/15 text-state-needs-review`}},defaultVariants:{variant:`default`}}),_C=F({__name:`Switch`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},id:{},value:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(e,t)=>(z(),V(N(zS),K(N(r),{class:N(lh)(`peer inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,n.class)}),{default:P(()=>[U(N(BS),{class:`pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0`})]),_:1},16,[`class`]))}}),vC={class:`flex flex-col gap-3`},yC=[`aria-checked`,`onClick`],bC=[`aria-checked`],xC=[`aria-checked`,`disabled`],SC={key:0,class:`ml-[30px] text-[11px] text-muted-foreground`},CC=[`aria-checked`],wC={class:`border-t pt-2`},TC=[`aria-checked`,`onClick`],EC={class:`border-t pt-2`},DC=[`aria-checked`],OC={class:`border-t pt-2`},kC=[`aria-checked`,`disabled`,`onClick`],AC={class:`truncate`},jC=F({__name:`FilterMenu`,props:{states:{},issues:{},enabled:{},plurality:{},emptySource:{type:Boolean},aiContextUnreviewed:{type:Boolean},noUsages:{type:Boolean},skipTranslate:{type:Boolean},scanIndexed:{type:Boolean}},emits:[`update:states`,`update:issues`,`update:enabled`,`update:plurality`,`update:emptySource`,`update:aiContextUnreviewed`,`update:noUsages`,`update:skipTranslate`],setup(e,{emit:t}){let n=e,r=t,i=q(()=>new Set(n.enabled));function a(e){r(`update:states`,n.states.includes(e)?n.states.filter(t=>t!==e):[...n.states,e])}function o(e){r(`update:plurality`,n.plurality.includes(e)?n.plurality.filter(t=>t!==e):[...n.plurality,e])}function s(e){i.value.has(e)&&r(`update:issues`,n.issues.includes(e)?n.issues.filter(t=>t!==e):[...n.issues,e])}function c(e,t){t?i.value.has(e)||r(`update:enabled`,[...n.enabled,e]):(r(`update:enabled`,n.enabled.filter(t=>t!==e)),n.issues.includes(e)&&r(`update:issues`,n.issues.filter(t=>t!==e)))}return(t,n)=>(z(),B(`div`,vC,[H(`div`,null,[n[7]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Status`,-1),(z(!0),B(R,null,I(N(hp),t=>(z(),B(`button`,{key:t,type:`button`,role:`checkbox`,"aria-checked":e.states.includes(t),class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:e=>a(t)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.states.includes(t)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.states.includes(t)?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),W(` `+j(N(vp)[t]),1)],8,yC))),128)),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.emptySource,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:n[0]||=t=>r(`update:emptySource`,!e.emptySource)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.emptySource?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.emptySource?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),n[4]||=W(` Empty source `,-1)],8,bC),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.noUsages,disabled:!e.scanIndexed,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm enabled:hover:bg-accent disabled:cursor-not-allowed disabled:opacity-50`,onClick:n[1]||=t=>r(`update:noUsages`,!e.noUsages)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.noUsages?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.noUsages?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),n[5]||=W(` Unused `,-1)],8,xC),e.scanIndexed?G(``,!0):(z(),B(`p`,SC,`Run a scan first`)),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.skipTranslate,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:n[2]||=t=>r(`update:skipTranslate`,!e.skipTranslate)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.skipTranslate?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.skipTranslate?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),n[6]||=W(` Skip-translate `,-1)],8,CC)]),H(`div`,wC,[n[8]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Type`,-1),(z(!0),B(R,null,I(N(gp),t=>(z(),B(`button`,{key:t,type:`button`,role:`checkbox`,"aria-checked":e.plurality.includes(t),class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:e=>o(t)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.plurality.includes(t)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.plurality.includes(t)?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),W(` `+j(N(yp)[t]),1)],8,TC))),128))]),H(`div`,EC,[n[10]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Context`,-1),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.aiContextUnreviewed,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:n[3]||=t=>r(`update:aiContextUnreviewed`,!e.aiContextUnreviewed)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,e.aiContextUnreviewed?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.aiContextUnreviewed?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),U(N(vd),{class:`size-3.5 text-muted-foreground`}),n[9]||=W(` AI context (unreviewed) `,-1)],8,DC)]),H(`div`,OC,[n[11]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Issues`,-1),n[12]||=H(`p`,{class:`mb-1.5 text-[11px] text-muted-foreground`},`Toggle a check to run it; tick its box to filter by it.`,-1),(z(!0),B(R,null,I(N(pp),t=>(z(),B(`div`,{key:t,class:`flex items-center gap-2 py-0.5`},[H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.issues.includes(t),class:`flex min-w-0 flex-1 items-center gap-2 rounded px-1.5 py-1 text-sm disabled:opacity-50 enabled:hover:bg-accent`,disabled:!i.value.has(t),onClick:e=>s(t)},[H(`span`,{class:A([`flex size-4 shrink-0 items-center justify-center rounded border transition-colors`,e.issues.includes(t)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.issues.includes(t)?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),H(`span`,AC,j(N(_p)[t]),1)],8,kC),U(N(_C),{"model-value":i.value.has(t),"aria-label":`Enable ${N(_p)[t]} check`,"onUpdate:modelValue":e=>c(t,e)},null,8,[`model-value`,`aria-label`,`onUpdate:modelValue`])]))),128))])]))}}),MC=F({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(aS),{for:t.for,class:A(N(lh)(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`for`,`class`]))}}),NC=F({__name:`DialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(e,t)=>(z(),V(N(uv),null,{default:P(()=>[U(N(cv),{class:`fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`}),U(N(av),K(N(r),{class:N(lh)(`fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-card p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg`,n.class)}),{default:P(()=>[L(e.$slots,`default`),U(N(w_),{class:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`},{default:P(()=>[U(N(kd),{class:`size-4`}),t[0]||=H(`span`,{class:`sr-only`},`Close`,-1)]),_:1})]),_:3},16,[`class`])]),_:3}))}}),PC=F({__name:`DialogHeader`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`div`,{class:A(N(lh)(`flex flex-col gap-1.5 text-center sm:text-left`,e.$props.class))},[L(e.$slots,`default`)],2))}}),FC=F({__name:`DialogFooter`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`div`,{class:A(N(lh)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e.$props.class))},[L(e.$slots,`default`)],2))}}),IC=F({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(dv),{class:A(N(lh)(`text-lg font-semibold leading-none tracking-tight`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),LC=F({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(ov),{class:A(N(lh)(`text-sm text-muted-foreground`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),RC=F({__name:`DropdownMenuContent`,props:{forceMount:{type:Boolean},loop:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(e,t)=>(z(),V(N(nS),null,{default:P(()=>[U(N($x),K(N(r),{class:N(lh)(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,n.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),zC=F({__name:`DropdownMenuItem`,props:{disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=Vg(t);return(e,r)=>(z(),V(N(eS),K(N(n),{class:N(lh)(`relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4`,t.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`]))}}),BC=F({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(tS),{class:A(N(lh)(`px-2 py-1.5 text-sm font-semibold`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),VC=F({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(rS),{class:A(N(lh)(`-mx-1 my-1 h-px bg-border`,t.class))},null,8,[`class`]))}}),HC={class:`flex flex-wrap items-center gap-2`},UC={class:`grid gap-2`},WC={class:`flex flex-wrap gap-2`},GC=F({__name:`SelectionBar`,props:{keys:{},locales:{},scopeLabel:{},tagsOnSelection:{}},emits:[`changed`,`clear`,`translate`,`build-context`],setup(e,{emit:t}){let n=e,r=t,i=M(!1),a=M(!1),o=M(!1),s=M(!1),c=M(!1),l=M(``);Er(s,e=>{e||(l.value=``)});async function u(e,t,n=!1){i.value=!0;try{await e(),Q.success(t),r(`changed`),n&&r(`clear`),a.value=!1,o.value=!1,s.value=!1,c.value=!1}catch(e){Q.error(e.message||`Bulk action failed`)}finally{i.value=!1}}let d=()=>u(()=>Pd(n.keys,n.locales),`Cleared translations for ${n.keys.length} key${n.keys.length===1?``:`s`}`),f=()=>u(()=>Fd(n.keys),`Deleted ${n.keys.length} key${n.keys.length===1?``:`s`}`,!0),p=e=>u(()=>Id(n.keys,n.locales,e),`Marked ${n.keys.length} key${n.keys.length===1?``:`s`} ${e}`),m=e=>u(()=>Ld(n.keys,{skipTranslate:e}),e?`Marked skip-translate`:`Cleared skip-translate`),h=()=>u(()=>Ld(n.keys,{clearContext:!0}),`Cleared context for ${n.keys.length} key${n.keys.length===1?``:`s`}`),g=()=>{let e=l.value.trim();if(!(!e||i.value))return u(()=>Ld(n.keys,{addTags:[e]}),`Added tag "${e}"`).then(()=>l.value=``)},_=e=>u(()=>Ld(n.keys,{removeTags:[e]}),`Removed tag "${e}"`);return(t,n)=>(z(),B(`div`,HC,[U(N($),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-clear-trigger`,disabled:i.value||!e.keys.length,onClick:n[0]||=e=>a.value=!0},{default:P(()=>[U(N(Ru),{class:`size-4`}),n[19]||=W(` Clear translations `,-1)]),_:1},8,[`disabled`]),U(N($),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-translate`,disabled:i.value||!e.keys.length,onClick:n[1]||=e=>r(`translate`)},{default:P(()=>[U(N(vd),{class:`size-4`}),n[20]||=W(` Translate `,-1)]),_:1},8,[`disabled`]),U(N($),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-build-context`,disabled:i.value||!e.keys.length,onClick:n[2]||=e=>r(`build-context`)},{default:P(()=>[U(N(Od),{class:`size-4`}),n[21]||=W(` Build context `,-1)]),_:1},8,[`disabled`]),U(N(Qx),null,{default:P(()=>[U(N(iS),{"as-child":``},{default:P(()=>[U(N($),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-set-trigger`,disabled:i.value||!e.keys.length},{default:P(()=>[n[22]||=W(` Set `,-1),U(N(Ou),{class:`size-4`})]),_:1},8,[`disabled`])]),_:1}),U(N(RC),{align:`end`,class:`w-52`},{default:P(()=>[U(N(BC),null,{default:P(()=>[W(`Status · `+j(e.scopeLabel),1)]),_:1}),U(N(zC),{"data-testid":`bulk-mark-reviewed`,onSelect:n[3]||=e=>p(`reviewed`)},{default:P(()=>[...n[23]||=[W(`Mark reviewed`,-1)]]),_:1}),U(N(zC),{"data-testid":`bulk-mark-needs-review`,onSelect:n[4]||=e=>p(`needs-review`)},{default:P(()=>[...n[24]||=[W(`Mark needs-review`,-1)]]),_:1}),U(N(VC)),U(N(BC),null,{default:P(()=>[...n[25]||=[W(`Tags · key`,-1)]]),_:1}),U(N(zC),{onSelect:n[5]||=e=>s.value=!0},{default:P(()=>[...n[26]||=[W(`Add tag…`,-1)]]),_:1}),U(N(zC),{disabled:!e.tagsOnSelection.length,onSelect:n[6]||=e=>c.value=!0},{default:P(()=>[...n[27]||=[W(`Remove tag…`,-1)]]),_:1},8,[`disabled`]),U(N(VC)),U(N(BC),null,{default:P(()=>[...n[28]||=[W(`Context · key`,-1)]]),_:1}),U(N(zC),{onSelect:h},{default:P(()=>[...n[29]||=[W(`Clear context`,-1)]]),_:1}),U(N(VC)),U(N(BC),null,{default:P(()=>[...n[30]||=[W(`Translation · key`,-1)]]),_:1}),U(N(zC),{onSelect:n[7]||=e=>m(!0)},{default:P(()=>[...n[31]||=[W(`Skip translate`,-1)]]),_:1}),U(N(zC),{onSelect:n[8]||=e=>m(!1)},{default:P(()=>[...n[32]||=[W(`Don't skip`,-1)]]),_:1})]),_:1})]),_:1}),U(N($),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5 text-destructive hover:bg-destructive/10 hover:text-destructive`,"data-testid":`bulk-delete-trigger`,disabled:i.value||!e.keys.length,onClick:n[9]||=e=>o.value=!0},{default:P(()=>[U(N(wd),{class:`size-4`}),n[33]||=W(` Delete `,-1)]),_:1},8,[`disabled`]),U(N(C_),{open:a.value,"onUpdate:open":n[11]||=e=>a.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[34]||=[W(`Clear translations`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[W(` Clear translations for `+j(e.keys.length)+` `+j(e.keys.length===1?`key`:`keys`)+` in `+j(e.scopeLabel)+`? Source strings are kept. This cannot be undone. `,1)]),_:1})]),_:1}),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:i.value,onClick:n[10]||=e=>a.value=!1},{default:P(()=>[...n[35]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:i.value,"data-testid":`bulk-clear-confirm`,onClick:d},{default:P(()=>[...n[36]||=[W(`Clear translations`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(N(C_),{open:o.value,"onUpdate:open":n[13]||=e=>o.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[37]||=[W(`Delete keys`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[W(` Delete `+j(e.keys.length)+` `+j(e.keys.length===1?`key`:`keys`)+` and all their translations? This cannot be undone. `,1)]),_:1})]),_:1}),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:i.value,onClick:n[12]||=e=>o.value=!1},{default:P(()=>[...n[38]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:i.value,"data-testid":`bulk-delete-confirm`,onClick:f},{default:P(()=>[...n[39]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(N(C_),{open:s.value,"onUpdate:open":n[16]||=e=>s.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[40]||=[W(`Add tag`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[W(`Add a tag to `+j(e.keys.length)+` `+j(e.keys.length===1?`key`:`keys`)+`.`,1)]),_:1})]),_:1}),H(`div`,UC,[U(N(MC),{for:`bulk-add-tag`},{default:P(()=>[...n[41]||=[W(`Tag`,-1)]]),_:1}),U(N(sC),{id:`bulk-add-tag`,modelValue:l.value,"onUpdate:modelValue":n[14]||=e=>l.value=e,disabled:i.value,onKeydown:Xl(Jl(g,[`prevent`]),[`enter`])},null,8,[`modelValue`,`disabled`,`onKeydown`])]),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:i.value,onClick:n[15]||=e=>s.value=!1},{default:P(()=>[...n[42]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:i.value||!l.value.trim(),onClick:g},{default:P(()=>[...n[43]||=[W(`Add`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(N(C_),{open:c.value,"onUpdate:open":n[18]||=e=>c.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[44]||=[W(`Remove tag`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[...n[45]||=[W(`Remove a tag from the selected keys.`,-1)]]),_:1})]),_:1}),H(`div`,WC,[(z(!0),B(R,null,I(e.tagsOnSelection,e=>(z(),V(N($),{key:e,variant:`outline`,size:`sm`,disabled:i.value,onClick:t=>_(e)},{default:P(()=>[W(j(e),1)]),_:2},1032,[`disabled`,`onClick`]))),128))]),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:i.value,onClick:n[17]||=e=>c.value=!1},{default:P(()=>[...n[46]||=[W(`Close`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});function KC(){let e=M(new Set),t=null;function n(t){return e.value.has(t)}function r(n){e.value.has(n)?e.value.delete(n):e.value.add(n),t=n}function i(n,i){if(t===null)return r(n);let a=i.indexOf(t),o=i.indexOf(n);if(a===-1||o===-1)return r(n);let[s,c]=a<o?[a,o]:[o,a];for(let t=s;t<=c;t++)e.value.add(i[t]);t=n}function a(n){for(let t of n)e.value.add(t);t=n.length?n[n.length-1]:null}function o(){e.value.clear(),t=null}function s(n){let r=new Set(n);for(let t of[...e.value])r.has(t)||e.value.delete(t);t!==null&&!r.has(t)&&(t=null)}return{has:n,toggle:r,toggleRange:i,selectAll:a,clear:o,pruneTo:s,keys:()=>[...e.value],count:q(()=>e.value.size),allSelected:t=>t.length>0&&t.every(t=>e.value.has(t)),someSelected:t=>t.some(t=>e.value.has(t))}}var qC=F({__name:`TooltipContent`,props:{forceMount:{type:Boolean},ariaLabel:{},asChild:{type:Boolean},as:{},side:{},sideOffset:{default:4},align:{},alignOffset:{},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=Hg(n,t);return(e,t)=>(z(),V(N(iC),null,{default:P(()=>[U(N(rC),K(N(r),{class:N(lh)(`z-50 overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background shadow-md data-[state=delayed-open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95`,n.class)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),JC=[`zero`,`one`,`two`,`few`,`many`,`other`];function YC(e){let t;try{t=new Intl.PluralRules(e.replace(/_/g,`-`),{type:`cardinal`}).resolvedOptions().pluralCategories}catch{t=[`other`]}let n=new Set(t);return JC.filter(e=>n.has(e))}function XC(e,t,n){if(t===n)return!1;let r=e.values[n];if(e.plural){if(!r?.forms?.other)return!1;let n=e.values[t]?.forms??{};return YC(t).some(e=>(n[e]??``)===``)}return r?.value?!e.values[t]?.value:!1}function ZC(e,t,n){return t.filter(t=>XC(e,t,n))}function QC(e,t,n){return t.filter(t=>{if(t===n)return!1;let r=e.values[t];return!r||r.state!==`needs-review`?!1:r.value?r.value.length>0:Object.keys(r.forms??{}).length>0})}var $C=new Intl.DisplayNames([`en`],{type:`language`}),ew=new Map;function tw(e){if(!ew.has(e)){let t;try{t=new Intl.DisplayNames([e],{type:`language`}).of(e)??void 0}catch{t=void 0}ew.set(e,t)}return ew.get(e)}function nw(e){return e.split(`-`).slice(1).some(e=>/^[a-zA-Z]{5,8}$/.test(e)||/^[0-9][a-zA-Z0-9]{3}$/.test(e))}var rw=new Set([`ar`,`he`,`iw`,`fa`,`ur`,`ps`,`sd`,`ug`,`yi`,`dv`,`ckb`,`ks`,`nqo`,`rhg`]);function iw(e){let t=e.split(/[-_]/)[0]?.toLowerCase()??``;return rw.has(t)}function aw(e,t){let n=e.replace(/_/g,`-`),r=n,i=!1;try{r=Intl.getCanonicalLocales(n)[0]??n,nw(r)&&(i=!0)}catch{i=!0}let a=e;t?.name===void 0?i||(a=$C.of(r)??e):a=t.name;let o;return o=t&&t.flag!==void 0?t.flag:i?null:r===`en`?`en`:new Intl.Locale(r).maximize().region??null,{code:e,bcp47:r,name:a,endonym:i?void 0:tw(r),flagRegion:o,isCustom:i,rtl:iw(e)}}var ow=[`aria-label`],sw=`inline-flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-[11.5px] font-medium leading-none whitespace-nowrap min-w-[132px]`,cw=F({__name:`StateBadge`,props:{state:{},editable:{type:Boolean}},emits:[`setState`],setup(e,{emit:t}){let n=e,r=t,i=[`machine`,`reviewed`,`needs-review`],a={source:`Source`,machine:`Machine`,reviewed:`Reviewed`,"needs-review":`Needs review`},o={source:`bg-accent text-muted-foreground border-border-soft`,machine:`bg-machine-soft text-machine border-transparent`,reviewed:`bg-review-soft text-review border-transparent`,"needs-review":`bg-muted text-muted-foreground border-border`},s={source:`bg-muted-foreground`,machine:`bg-machine`,reviewed:`bg-review`,"needs-review":`bg-muted-foreground`};return(t,c)=>!e.editable||e.state===`source`?(z(),B(`span`,{key:0,class:A(N(lh)(sw,o[e.state],`cursor-default`)),"data-testid":`state-badge`},[e.state===`reviewed`?(z(),V(N(Du),{key:0,class:`size-3 shrink-0`})):(z(),B(`span`,{key:1,class:A(N(lh)(`size-[7px] shrink-0 rounded-full`,s[e.state]))},null,2)),W(` `+j(a[e.state]),1)],2)):(z(),V(N(Qx),{key:1},{default:P(()=>[U(N(iS),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:A(N(lh)(sw,o[e.state],`transition hover:brightness-95 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`)),"aria-label":`${a[e.state]} — change state`,"data-testid":`state-badge`},[e.state===`reviewed`?(z(),V(N(Du),{key:0,class:`size-3 shrink-0`})):(z(),B(`span`,{key:1,class:A(N(lh)(`size-[7px] shrink-0 rounded-full`,s[e.state]))},null,2)),W(` `+j(a[e.state])+` `,1),U(N(Ou),{class:`ml-auto size-3 opacity-50`})],10,ow)]),_:1}),U(N(RC),{align:`end`,class:`min-w-[10rem]`},{default:P(()=>[(z(),B(R,null,I(i,e=>U(N(zC),{key:e,onSelect:t=>r(`setState`,e)},{default:P(()=>[H(`span`,{class:A(N(lh)(`size-[7px] shrink-0 rounded-full`,s[e]))},null,2),W(` `+j(a[e])+` `,1),U(N(Du),{class:A(N(lh)(`ml-auto size-4`,e===n.state?`opacity-100`:`opacity-0`))},null,8,[`class`])]),_:2},1032,[`onSelect`])),64))]),_:1})]),_:1}))}}),lw=new RegExp([`\\{\\s*[A-Za-z0-9_]+\\s*,\\s*(?:plural|select|selectordinal)\\s*,(?:[^{}]|\\{[^{}]*\\})*\\}`,`\\{\\s*[A-Za-z0-9_.]+\\s*\\}`].join(`|`),`g`);function uw(e){let t=[];if(!e.includes(`'`))return t;for(let n=0;n<e.length;){if(e[n]===`'`){let r=e[n+1];if(r===`'`){n+=2;continue}if(r===`{`||r===`}`||r===`#`||r===`|`){let r=n;for(n+=2;n<e.length&&e[n]!==`'`;)n++;let i=n<e.length?n+1:n;t.push([r,i]),n=i;continue}}n++}return t}function dw(e){if(!e)return[];let t=uw(e),n=e=>t.some(([t,n])=>e>=t&&e<n),r=[],i=0;lw.lastIndex=0;let a;for(;(a=lw.exec(e))!==null;){if(a[0].length===0){lw.lastIndex++;continue}n(a.index)||(a.index>i&&r.push({text:e.slice(i,a.index),placeholder:!1}),r.push({text:a[0],placeholder:!0}),i=a.index+a[0].length)}return i<e.length&&r.push({text:e.slice(i),placeholder:!1}),r}var fw=F({__name:`Textarea`,props:Oa({class:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=Xa(e,`modelValue`);return(e,n)=>gr((z(),B(`textarea`,{"onUpdate:modelValue":n[0]||=e=>t.value=e,class:A(N(lh)(`flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50`,e.$props.class))},null,2)),[[Pl,t.value]])}}),pw={class:`min-w-0`},mw={key:0,class:`flex flex-col gap-1`},hw={class:`whitespace-pre-wrap break-words`},gw={key:0,class:`rounded bg-ph-bg px-1 font-mono text-[0.85em] font-semibold text-ph-fg`},_w=F({__name:`ValueEditor`,props:{keyName:{},locale:{},sourceLocale:{},value:{},maxLength:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=M(!1),a=M(``),o=M(!1),s=M(null),c=q(()=>n.locale===n.sourceLocale),l=q(()=>dw(n.value)),u=q(()=>n.maxLength!==void 0&&n.value.length>n.maxLength);function d(e){e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,160)}px`)}async function f(){a.value=n.value,i.value=!0,await Qn();let e=s.value?.$el;e?.focus(),e?.select(),d(e)}function p(){i.value=!1}async function m(){if(!i.value)return;i.value=!1;let e=a.value;if(e!==n.value){o.value=!0;try{c.value?await Rd(n.keyName,{source:e}):await zd(n.keyName,n.locale,e),r(`changed`)}catch(e){Q.error(`Could not save: ${e.message}`),r(`changed`)}finally{o.value=!1}}}return(t,n)=>(z(),B(`div`,pw,[i.value?(z(),B(`div`,mw,[U(N(fw),{ref_key:`textareaEl`,ref:s,modelValue:a.value,"onUpdate:modelValue":n[0]||=e=>a.value=e,rows:`1`,maxlength:e.maxLength,class:`max-w-[560px] resize-none rounded-lg border-2 border-primary text-sm shadow-[0_0_0_3px_var(--ring)]`,onInput:n[1]||=e=>d(e.target),onBlur:m,onKeydown:[Xl(Jl(p,[`prevent`]),[`escape`]),Xl(Jl(m,[`exact`,`prevent`]),[`enter`])]},null,8,[`modelValue`,`maxlength`,`onKeydown`]),n[2]||=H(`span`,{class:`text-[10.5px] text-muted-foreground`},[H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`↵`),W(` save · `),H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`esc`),W(` cancel `)],-1)])):e.value?(z(),B(`button`,{key:1,type:`button`,class:A(N(lh)(`group inline-flex max-w-full items-center gap-1.5 rounded-md px-2 py-1 -mx-2 -my-1 text-left text-sm leading-relaxed hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,u.value&&`text-destructive`)),onClick:Jl(f,[`stop`])},[H(`span`,hw,[(z(!0),B(R,null,I(l.value,(e,t)=>(z(),B(R,{key:t},[e.placeholder?(z(),B(`span`,gw,j(e.text),1)):(z(),B(R,{key:1},[W(j(e.text),1)],64))],64))),128))]),U(N(ad),{"aria-hidden":`true`,class:`size-3 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-60`})],2)):(z(),B(`button`,{key:2,type:`button`,"data-testid":`empty-marker`,class:`group inline-flex items-center gap-1.5 rounded-md border border-dashed border-input px-2.5 py-1 text-[12.5px] font-medium italic text-muted-foreground transition-colors hover:border-border hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:Jl(f,[`stop`])},[n[3]||=W(` Empty `,-1),U(N(ad),{class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-60`,"aria-hidden":`true`})]))]))}}),vw={class:`flex min-w-0 flex-col gap-2`},yw={class:`min-w-0 flex-1`},bw={key:0,class:`flex flex-col gap-1`},xw={class:`font-mono text-[10px] font-semibold uppercase tracking-wide text-primary`},Sw=[`onClick`],Cw={class:`whitespace-pre-wrap break-words`},ww={key:0,class:`rounded bg-ph-bg px-1 font-mono text-[0.85em] font-semibold text-ph-fg`},Tw=[`onClick`],Ew=F({__name:`PluralValueEditor`,props:{keyName:{},locale:{},sourceLocale:{},arg:{},forms:{},sourceForms:{},maxLength:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=q(()=>n.locale===n.sourceLocale),a=q(()=>[...Object.keys(n.forms).filter(e=>/^=\d+$/.test(e)).sort((e,t)=>Number(e.slice(1))-Number(t.slice(1))),...YC(n.locale)]),o=M(null),s=M(``),c=M(!1),l=M(null);function u(e){l.value=e}function d(e){return n.forms[e]??``}function f(e){return dw(d(e))}function p(e){return n.maxLength!==void 0&&d(e).length>n.maxLength}function m(e){e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,160)}px`)}async function h(e){s.value=d(e),o.value=e,await Qn();let t=l.value?.$el;t?.focus(),t?.select(),m(t)}function g(){o.value=null}async function _(){let e=o.value;if(!e)return;o.value=null;let t=s.value;if(t!==d(e)){c.value=!0;try{let i={};for(let[e,t]of Object.entries(n.forms))i[e]=t??``;i[e]=t,await Hd(n.keyName,n.locale,i),r(`changed`)}catch(e){Q.error(`Could not save: ${e.message}`),r(`changed`)}finally{c.value=!1}}}return(t,n)=>(z(),B(`div`,vw,[(z(!0),B(R,null,I(a.value,t=>(z(),B(`div`,{key:t,"data-testid":`plural-field`,class:`flex items-start gap-2.5`},[H(`span`,{class:A(N(lh)(`mt-0.5 min-w-[46px] shrink-0 rounded border border-border px-1.5 py-1 text-center font-mono text-[9.5px] font-semibold uppercase tracking-wide text-muted-foreground`,!i.value&&!d(t)&&`opacity-55`))},j(t),3),H(`div`,yw,[o.value===t?(z(),B(`div`,bw,[H(`span`,xw,`Plural: `+j(t),1),U(N(fw),{ref_for:!0,ref:u,modelValue:s.value,"onUpdate:modelValue":n[0]||=e=>s.value=e,rows:`1`,maxlength:e.maxLength,class:`max-w-[560px] resize-none rounded-lg border-2 border-primary text-sm shadow-[0_0_0_3px_var(--ring)]`,onInput:n[1]||=e=>m(e.target),onBlur:_,onKeydown:[Xl(Jl(g,[`prevent`]),[`escape`]),Xl(Jl(_,[`exact`,`prevent`]),[`enter`])]},null,8,[`modelValue`,`maxlength`,`onKeydown`]),n[2]||=H(`span`,{class:`text-[10.5px] text-muted-foreground`},[H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`↵`),W(` save · `),H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`esc`),W(` cancel `)],-1)])):d(t)?(z(),B(`button`,{key:1,type:`button`,class:A(N(lh)(`group inline-flex max-w-full items-center gap-1.5 rounded-md px-2 py-1 -mx-2 -my-1 text-left text-sm leading-relaxed hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,p(t)&&`text-destructive`)),onClick:Jl(e=>h(t),[`stop`])},[H(`span`,Cw,[(z(!0),B(R,null,I(f(t),(e,t)=>(z(),B(R,{key:t},[e.placeholder?(z(),B(`span`,ww,j(e.text),1)):(z(),B(R,{key:1},[W(j(e.text),1)],64))],64))),128))]),U(N(ad),{class:`size-3 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-60`,"aria-hidden":`true`})],10,Sw)):(z(),B(`button`,{key:2,type:`button`,"data-testid":`empty-marker`,class:`group inline-flex items-center gap-1.5 rounded-md border border-dashed border-input px-2.5 py-1 text-[12.5px] font-medium italic text-muted-foreground transition-colors hover:border-border hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:Jl(e=>h(t),[`stop`])},[n[3]||=W(` Empty `,-1),U(N(ad),{class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-60`,"aria-hidden":`true`})],8,Tw))])]))),128))]))}}),Dw=Object.assign({"./assets/flags/ad.svg":`/assets/ad-B18i8NGa.svg`,"./assets/flags/ae.svg":`/assets/ae-CZRtWSox.svg`,"./assets/flags/af.svg":`/assets/af-C77Rf6cE.svg`,"./assets/flags/ag.svg":`/assets/ag-C8MykuG2.svg`,"./assets/flags/ai.svg":`/assets/ai-Dmedkf4v.svg`,"./assets/flags/al.svg":`/assets/al-10QRkakw.svg`,"./assets/flags/am.svg":`/assets/am-DMt4_dd4.svg`,"./assets/flags/ao.svg":`/assets/ao-tXuRa6vm.svg`,"./assets/flags/aq.svg":`/assets/aq-CF5jO-0h.svg`,"./assets/flags/ar.svg":`/assets/ar-Be8Ju1cG.svg`,"./assets/flags/arab.svg":`/assets/arab-C4CYPgyC.svg`,"./assets/flags/as.svg":`/assets/as-Dekqy8Of.svg`,"./assets/flags/asean.svg":`/assets/asean-WMtZ-US_.svg`,"./assets/flags/at.svg":`/assets/at-DGA_6m5E.svg`,"./assets/flags/au.svg":`/assets/au-DAHDIuPI.svg`,"./assets/flags/aw.svg":`/assets/aw-W0PWLK5p.svg`,"./assets/flags/ax.svg":`/assets/ax-DvLIy84U.svg`,"./assets/flags/az.svg":`/assets/az-Bk-bYNxy.svg`,"./assets/flags/ba.svg":`/assets/ba-WdDiSMvP.svg`,"./assets/flags/bb.svg":`/assets/bb-DJxbaxmT.svg`,"./assets/flags/bd.svg":`/assets/bd-BF9t1-60.svg`,"./assets/flags/be.svg":`/assets/be-CLLkK3PN.svg`,"./assets/flags/bf.svg":`/assets/bf-YclsoDuF.svg`,"./assets/flags/bg.svg":`/assets/bg-GUQenraa.svg`,"./assets/flags/bh.svg":`/assets/bh-BQqEGq6F.svg`,"./assets/flags/bi.svg":`/assets/bi-CRmKY6RQ.svg`,"./assets/flags/bj.svg":`/assets/bj-14PhO9bM.svg`,"./assets/flags/bl.svg":`/assets/bl-4CI2YcwX.svg`,"./assets/flags/bm.svg":`/assets/bm-BeYgB2z9.svg`,"./assets/flags/bn.svg":`/assets/bn-B6T3O78g.svg`,"./assets/flags/bo.svg":`/assets/bo-CcUiMqkJ.svg`,"./assets/flags/bq.svg":`/assets/bq-BYpdxEeT.svg`,"./assets/flags/br.svg":`/assets/br-Cu5YU29T.svg`,"./assets/flags/bs.svg":`/assets/bs-7Gd_oriM.svg`,"./assets/flags/bt.svg":`/assets/bt-BTo4qm10.svg`,"./assets/flags/bv.svg":`/assets/bv-wM9JLv4R.svg`,"./assets/flags/bw.svg":`/assets/bw-n5ZaAnGL.svg`,"./assets/flags/by.svg":`/assets/by-C621sBpd.svg`,"./assets/flags/bz.svg":`/assets/bz-BCKHR4_q.svg`,"./assets/flags/ca.svg":`/assets/ca-PYUrLVUV.svg`,"./assets/flags/cc.svg":`/assets/cc-BNT6Xjzk.svg`,"./assets/flags/cd.svg":`/assets/cd-BGclsrP6.svg`,"./assets/flags/cefta.svg":`/assets/cefta-2dDBYygd.svg`,"./assets/flags/cf.svg":`/assets/cf-DRetLmp-.svg`,"./assets/flags/cg.svg":`/assets/cg-CwIyG6SE.svg`,"./assets/flags/ch.svg":`/assets/ch-sfriZoF1.svg`,"./assets/flags/ci.svg":`/assets/ci-C8Q8IYTn.svg`,"./assets/flags/ck.svg":`/assets/ck-DfXMUOTo.svg`,"./assets/flags/cl.svg":`/assets/cl-BgYYb4qP.svg`,"./assets/flags/cm.svg":`/assets/cm-D4yjdmKT.svg`,"./assets/flags/cn.svg":`/assets/cn-DifnnI3t.svg`,"./assets/flags/co.svg":`/assets/co-DV591zMm.svg`,"./assets/flags/cp.svg":`/assets/cp-K_ay05Q_.svg`,"./assets/flags/cr.svg":`/assets/cr-BlYVN-_Q.svg`,"./assets/flags/cu.svg":`/assets/cu-L6XVZNgo.svg`,"./assets/flags/cv.svg":`/assets/cv-CPsfcOfk.svg`,"./assets/flags/cw.svg":`/assets/cw-BbrnximR.svg`,"./assets/flags/cx.svg":`/assets/cx-DpYD6n6U.svg`,"./assets/flags/cy.svg":`/assets/cy-bZuP8hmf.svg`,"./assets/flags/cz.svg":`/assets/cz-WWBC5Aeb.svg`,"./assets/flags/de.svg":`/assets/de-B-2o-4Z9.svg`,"./assets/flags/dg.svg":`/assets/dg-CJPJrjiZ.svg`,"./assets/flags/dj.svg":`/assets/dj-hp_BwbmO.svg`,"./assets/flags/dk.svg":`/assets/dk-DmS9BCZB.svg`,"./assets/flags/dm.svg":`/assets/dm-Cbhezfe1.svg`,"./assets/flags/do.svg":`/assets/do-B86d445t.svg`,"./assets/flags/dz.svg":`/assets/dz-Dytc1TFu.svg`,"./assets/flags/eac.svg":`/assets/eac-CwGQsyAM.svg`,"./assets/flags/ec.svg":`/assets/ec-CaVOFQ3t.svg`,"./assets/flags/ee.svg":`/assets/ee-DufrxGIR.svg`,"./assets/flags/eg.svg":`/assets/eg-YC70hswZ.svg`,"./assets/flags/eh.svg":`/assets/eh-0awM4TVj.svg`,"./assets/flags/en.svg":`/assets/en-BZRN_IpI.svg`,"./assets/flags/er.svg":`/assets/er-X83uml6t.svg`,"./assets/flags/es-ct.svg":`/assets/es-ct-CVyhLp7O.svg`,"./assets/flags/es-ga.svg":`/assets/es-ga-D9xG2hYr.svg`,"./assets/flags/es-pv.svg":`/assets/es-pv-CO3NM2SE.svg`,"./assets/flags/es.svg":`/assets/es-d5m8M5h8.svg`,"./assets/flags/et.svg":`/assets/et-DwdlzOIx.svg`,"./assets/flags/eu.svg":`/assets/eu-Brdgz8ab.svg`,"./assets/flags/fi.svg":`/assets/fi-DWUIkfjL.svg`,"./assets/flags/fj.svg":`/assets/fj-DEAVMg38.svg`,"./assets/flags/fk.svg":`/assets/fk-nuUF_Ak3.svg`,"./assets/flags/fm.svg":`/assets/fm-B4Z83GL0.svg`,"./assets/flags/fo.svg":`/assets/fo-DFjwyWur.svg`,"./assets/flags/fr.svg":`/assets/fr-DVvUyOqI.svg`,"./assets/flags/ga.svg":`/assets/ga-BklUhLH_.svg`,"./assets/flags/gb-eng.svg":`/assets/gb-eng-C8iDhGHN.svg`,"./assets/flags/gb-nir.svg":`/assets/gb-nir-D4gikpNq.svg`,"./assets/flags/gb-sct.svg":`/assets/gb-sct-fW5q01ek.svg`,"./assets/flags/gb-wls.svg":`/assets/gb-wls-Bxz9hxvX.svg`,"./assets/flags/gb.svg":`/assets/gb-DTXiLQoe.svg`,"./assets/flags/gd.svg":`/assets/gd-CO-whzUe.svg`,"./assets/flags/ge.svg":`/assets/ge-B2RiL-Ih.svg`,"./assets/flags/gf.svg":`/assets/gf-DWl5zcw0.svg`,"./assets/flags/gg.svg":`/assets/gg-jdOQS2nU.svg`,"./assets/flags/gh.svg":`/assets/gh-r3LP_X7q.svg`,"./assets/flags/gi.svg":`/assets/gi-BJKE9SzW.svg`,"./assets/flags/gl.svg":`/assets/gl-CHaBnMib.svg`,"./assets/flags/gm.svg":`/assets/gm-Bu99atwn.svg`,"./assets/flags/gn.svg":`/assets/gn-1dJNy9oQ.svg`,"./assets/flags/gp.svg":`/assets/gp-DNyt_wTA.svg`,"./assets/flags/gq.svg":`/assets/gq-Cag8QTk2.svg`,"./assets/flags/gr.svg":`/assets/gr-C5PU0p9p.svg`,"./assets/flags/gs.svg":`/assets/gs-DiiNa0F5.svg`,"./assets/flags/gt.svg":`/assets/gt-CJo5DI-7.svg`,"./assets/flags/gu.svg":`/assets/gu-Di1JYREk.svg`,"./assets/flags/gw.svg":`/assets/gw-D249VY33.svg`,"./assets/flags/gy.svg":`/assets/gy-CcVYUM2E.svg`,"./assets/flags/hk.svg":`/assets/hk-CUNIaSX0.svg`,"./assets/flags/hm.svg":`/assets/hm-Dh6t_Tj3.svg`,"./assets/flags/hn.svg":`/assets/hn-CRjyS_bm.svg`,"./assets/flags/hr.svg":`/assets/hr-fzLfaANM.svg`,"./assets/flags/ht.svg":`/assets/ht-DIMg4gti.svg`,"./assets/flags/hu.svg":`/assets/hu-7Q5wwIIi.svg`,"./assets/flags/ic.svg":`/assets/ic-CSo4d8tH.svg`,"./assets/flags/id.svg":`/assets/id-DiSP6Fmm.svg`,"./assets/flags/ie.svg":`/assets/ie-ChAXClx3.svg`,"./assets/flags/il.svg":`/assets/il-_56OEGLa.svg`,"./assets/flags/im.svg":`/assets/im--VPIqfkF.svg`,"./assets/flags/in.svg":`/assets/in-Cdwu6Bq7.svg`,"./assets/flags/io.svg":`/assets/io-13HOfeJD.svg`,"./assets/flags/iq.svg":`/assets/iq-Dp8HDzo2.svg`,"./assets/flags/ir.svg":`/assets/ir-cCIgaNf6.svg`,"./assets/flags/is.svg":`/assets/is-CZjefTNV.svg`,"./assets/flags/it.svg":`/assets/it-Br7q0Zh6.svg`,"./assets/flags/je.svg":`/assets/je-DyWbhIiC.svg`,"./assets/flags/jm.svg":`/assets/jm-CItSr3iX.svg`,"./assets/flags/jo.svg":`/assets/jo-BAF1FGbm.svg`,"./assets/flags/jp.svg":`/assets/jp-BIMmfxpO.svg`,"./assets/flags/ke.svg":`/assets/ke-C8foqndp.svg`,"./assets/flags/kg.svg":`/assets/kg-B0FsxZiL.svg`,"./assets/flags/kh.svg":`/assets/kh-BeWfuE30.svg`,"./assets/flags/ki.svg":`/assets/ki-p_fAQGbS.svg`,"./assets/flags/km.svg":`/assets/km-B5tqtGG7.svg`,"./assets/flags/kn.svg":`/assets/kn-DVPxDkNY.svg`,"./assets/flags/kp.svg":`/assets/kp-CrDKzoxe.svg`,"./assets/flags/kr.svg":`/assets/kr-BCXH1Hao.svg`,"./assets/flags/kw.svg":`/assets/kw-fSBzmd30.svg`,"./assets/flags/ky.svg":`/assets/ky-Dpsu1myA.svg`,"./assets/flags/kz.svg":`/assets/kz-CwKXYZ8s.svg`,"./assets/flags/la.svg":`/assets/la-CuJflhIW.svg`,"./assets/flags/lb.svg":`/assets/lb-BSjpYEoo.svg`,"./assets/flags/lc.svg":`/assets/lc-CNvab8Ae.svg`,"./assets/flags/li.svg":`/assets/li-CHdhvNcr.svg`,"./assets/flags/lk.svg":`/assets/lk-DUkgV9Tq.svg`,"./assets/flags/lr.svg":`/assets/lr-B84vu3Ds.svg`,"./assets/flags/ls.svg":`/assets/ls-5Xk3Mxq5.svg`,"./assets/flags/lt.svg":`/assets/lt-DoukV-Sm.svg`,"./assets/flags/lu.svg":`/assets/lu-DOI02Msy.svg`,"./assets/flags/lv.svg":`/assets/lv-C-KfY8Yc.svg`,"./assets/flags/ly.svg":`/assets/ly-BWpTK3ux.svg`,"./assets/flags/ma.svg":`/assets/ma-BTRNTRUj.svg`,"./assets/flags/mc.svg":`/assets/mc-PK078JHl.svg`,"./assets/flags/md.svg":`/assets/md-DRlxvNwm.svg`,"./assets/flags/me.svg":`/assets/me-Cv4Gwqah.svg`,"./assets/flags/mf.svg":`/assets/mf-BaAGWwAq.svg`,"./assets/flags/mg.svg":`/assets/mg-C168LHXW.svg`,"./assets/flags/mh.svg":`/assets/mh-gxuIp6Wk.svg`,"./assets/flags/mk.svg":`/assets/mk-D9SIMr-a.svg`,"./assets/flags/ml.svg":`/assets/ml-DVf6ujpi.svg`,"./assets/flags/mm.svg":`/assets/mm-lwT09MQ0.svg`,"./assets/flags/mn.svg":`/assets/mn-CgXyw0O9.svg`,"./assets/flags/mo.svg":`/assets/mo-BAtCjuYA.svg`,"./assets/flags/mp.svg":`/assets/mp-CrOApEqW.svg`,"./assets/flags/mq.svg":`/assets/mq-BFnJ22KI.svg`,"./assets/flags/mr.svg":`/assets/mr-D6G1wpeZ.svg`,"./assets/flags/ms.svg":`/assets/ms-DxciGbUu.svg`,"./assets/flags/mt.svg":`/assets/mt-YqzKx9xl.svg`,"./assets/flags/mu.svg":`/assets/mu-mcq7cUFl.svg`,"./assets/flags/mv.svg":`/assets/mv-BynAllfM.svg`,"./assets/flags/mw.svg":`/assets/mw-C15nc1xZ.svg`,"./assets/flags/mx.svg":`/assets/mx-Cc8Ccfe8.svg`,"./assets/flags/my.svg":`/assets/my-Co4JeeyE.svg`,"./assets/flags/mz.svg":`/assets/mz-Drlr_USV.svg`,"./assets/flags/na.svg":`/assets/na-D79ffb4Z.svg`,"./assets/flags/nc.svg":`/assets/nc-5j7wEmDR.svg`,"./assets/flags/ne.svg":`/assets/ne-B1jPOYkl.svg`,"./assets/flags/nf.svg":`/assets/nf-Dl00mlk2.svg`,"./assets/flags/ng.svg":`/assets/ng-su4NM9If.svg`,"./assets/flags/ni.svg":`/assets/ni-CcFCSQxm.svg`,"./assets/flags/nl.svg":`/assets/nl-BnOa6UiA.svg`,"./assets/flags/no.svg":`/assets/no-qf2JPO73.svg`,"./assets/flags/np.svg":`/assets/np-CIuq5GKd.svg`,"./assets/flags/nr.svg":`/assets/nr-DERIdzkN.svg`,"./assets/flags/nu.svg":`/assets/nu-BfgWvGcd.svg`,"./assets/flags/nz.svg":`/assets/nz-5vODdBjz.svg`,"./assets/flags/om.svg":`/assets/om-DcqxRdQL.svg`,"./assets/flags/pa.svg":`/assets/pa-BLNN9G2-.svg`,"./assets/flags/pc.svg":`/assets/pc-BJpYiA9b.svg`,"./assets/flags/pe.svg":`/assets/pe-BLqhuu1C.svg`,"./assets/flags/pf.svg":`/assets/pf-C8ahG68q.svg`,"./assets/flags/pg.svg":`/assets/pg-BAYpbp9Z.svg`,"./assets/flags/ph.svg":`/assets/ph-BEzTn62K.svg`,"./assets/flags/pk.svg":`/assets/pk-CWMEc3ad.svg`,"./assets/flags/pl.svg":`/assets/pl-o38JROoc.svg`,"./assets/flags/pm.svg":`/assets/pm-CHiP5UmZ.svg`,"./assets/flags/pn.svg":`/assets/pn-DgxdtieE.svg`,"./assets/flags/pr.svg":`/assets/pr-B4tMV0xm.svg`,"./assets/flags/ps.svg":`/assets/ps-DO8YKYeS.svg`,"./assets/flags/pt.svg":`/assets/pt-DZ2ADgIR.svg`,"./assets/flags/pw.svg":`/assets/pw-CQP52WMX.svg`,"./assets/flags/py.svg":`/assets/py-mNzh0mZC.svg`,"./assets/flags/qa.svg":`/assets/qa-Dkmpc78M.svg`,"./assets/flags/re.svg":`/assets/re-Bk4ipYK1.svg`,"./assets/flags/ro.svg":`/assets/ro-CoSeqKY1.svg`,"./assets/flags/rs.svg":`/assets/rs-BfwKwXtn.svg`,"./assets/flags/ru.svg":`/assets/ru-D-4tNwXt.svg`,"./assets/flags/rw.svg":`/assets/rw-D7nbSYKI.svg`,"./assets/flags/sa.svg":`/assets/sa-Dh79zbT9.svg`,"./assets/flags/sb.svg":`/assets/sb-BDTYjcbk.svg`,"./assets/flags/sc.svg":`/assets/sc-CRNsSLg9.svg`,"./assets/flags/sd.svg":`/assets/sd-ClziNjGr.svg`,"./assets/flags/se.svg":`/assets/se-8C923vhy.svg`,"./assets/flags/sg.svg":`/assets/sg-DGYIMG0G.svg`,"./assets/flags/sh-ac.svg":`/assets/sh-ac-FjwY7RYr.svg`,"./assets/flags/sh-hl.svg":`/assets/sh-hl-CqtQPzWZ.svg`,"./assets/flags/sh-ta.svg":`/assets/sh-ta-CPJublpi.svg`,"./assets/flags/sh.svg":`/assets/sh-DNImvbrE.svg`,"./assets/flags/si.svg":`/assets/si-BMKT-Tec.svg`,"./assets/flags/sj.svg":`/assets/sj-BFFEGknm.svg`,"./assets/flags/sk.svg":`/assets/sk-K9BNIYAO.svg`,"./assets/flags/sl.svg":`/assets/sl-DxLJY5vJ.svg`,"./assets/flags/sm.svg":`/assets/sm-DGBIRFB_.svg`,"./assets/flags/sn.svg":`/assets/sn-S8ipNF1U.svg`,"./assets/flags/so.svg":`/assets/so-DlzA2Fco.svg`,"./assets/flags/sr.svg":`/assets/sr-Co7OKBh3.svg`,"./assets/flags/ss.svg":`/assets/ss-CxVEpdPD.svg`,"./assets/flags/st.svg":`/assets/st-C1Nd1c3V.svg`,"./assets/flags/sv.svg":`/assets/sv-CJIHhYwF.svg`,"./assets/flags/sx.svg":`/assets/sx-nDhIaDNb.svg`,"./assets/flags/sy.svg":`/assets/sy-DwSud114.svg`,"./assets/flags/sz.svg":`/assets/sz-qxMwa2gs.svg`,"./assets/flags/tc.svg":`/assets/tc-dtelpZmc.svg`,"./assets/flags/td.svg":`/assets/td-BsuVhZpT.svg`,"./assets/flags/tf.svg":`/assets/tf-Co33RhQH.svg`,"./assets/flags/tg.svg":`/assets/tg-CP1-sc35.svg`,"./assets/flags/th.svg":`/assets/th-tzq84hgd.svg`,"./assets/flags/tj.svg":`/assets/tj-b-aWfOTb.svg`,"./assets/flags/tk.svg":`/assets/tk-CDucsEss.svg`,"./assets/flags/tl.svg":`/assets/tl-wpo93AGk.svg`,"./assets/flags/tm.svg":`/assets/tm-C_WSgUcv.svg`,"./assets/flags/tn.svg":`/assets/tn-BcKCZULf.svg`,"./assets/flags/to.svg":`/assets/to-D8uVsoxb.svg`,"./assets/flags/tr.svg":`/assets/tr-Cd6FO9Bg.svg`,"./assets/flags/tt.svg":`/assets/tt-CTnr7aY5.svg`,"./assets/flags/tv.svg":`/assets/tv-DDqkVT-n.svg`,"./assets/flags/tw.svg":`/assets/tw-d-Mf-0VT.svg`,"./assets/flags/tz.svg":`/assets/tz-BjLtHeil.svg`,"./assets/flags/ua.svg":`/assets/ua-Bq0XgQqK.svg`,"./assets/flags/ug.svg":`/assets/ug-ByL2ejGl.svg`,"./assets/flags/um.svg":`/assets/um-Bhke9Eic.svg`,"./assets/flags/un.svg":`/assets/un-Bqg4Cbbh.svg`,"./assets/flags/us.svg":`/assets/us-C73uVeEr.svg`,"./assets/flags/uy.svg":`/assets/uy-DD6peej-.svg`,"./assets/flags/uz.svg":`/assets/uz-C2f-Cubn.svg`,"./assets/flags/va.svg":`/assets/va-B9-hqIE-.svg`,"./assets/flags/vc.svg":`/assets/vc-COpmFovN.svg`,"./assets/flags/ve.svg":`/assets/ve-BSqnIB9l.svg`,"./assets/flags/vg.svg":`/assets/vg-C7xY6pic.svg`,"./assets/flags/vi.svg":`/assets/vi-BC_zcciE.svg`,"./assets/flags/vn.svg":`/assets/vn-BEAEijd0.svg`,"./assets/flags/vu.svg":`/assets/vu-D6k0NQlg.svg`,"./assets/flags/wf.svg":`/assets/wf-DrxpOO_G.svg`,"./assets/flags/ws.svg":`/assets/ws-vzJNwdVm.svg`,"./assets/flags/xk.svg":`/assets/xk-Bj15g7cp.svg`,"./assets/flags/xx.svg":`/assets/xx-zm_JmrXl.svg`,"./assets/flags/ye.svg":`/assets/ye-BwST9gXC.svg`,"./assets/flags/yt.svg":`/assets/yt-DIfEG0ex.svg`,"./assets/flags/za.svg":`/assets/za-Jz40JTrv.svg`,"./assets/flags/zm.svg":`/assets/zm-BmsW91ne.svg`,"./assets/flags/zw.svg":`/assets/zw-U0m7oJ5e.svg`}),Ow=new Map;for(let[e,t]of Object.entries(Dw)){let n=e.match(/\/([^/]+)\.svg$/);n&&Ow.set(n[1].toLowerCase(),t)}function kw(e){return Ow.get(e.toLowerCase())}var Aw=[`src`,`alt`,`width`,`height`],jw=F({__name:`Flag`,props:{code:{},override:{},size:{default:16}},setup(e){let t=e,n=q(()=>aw(t.code,t.override)),r=q(()=>n.value.flagRegion?kw(n.value.flagRegion):void 0),i=q(()=>Math.round(t.size*4/3));return(t,a)=>r.value?(z(),B(`img`,{key:0,src:r.value,alt:n.value.name,width:i.value,height:e.size,class:`inline-block shrink-0 rounded-[2px] object-cover ring-1 ring-black/10`,style:me({width:`${i.value}px`,height:`${e.size}px`})},null,12,Aw)):(z(),V(N(qu),{key:1,class:`inline-block shrink-0 text-muted-foreground`,style:me({width:`${e.size}px`,height:`${e.size}px`}),"aria-hidden":`true`},null,8,[`style`]))}}),Mw={class:`inline-flex min-w-0 items-start gap-2`},Nw={class:`flex min-w-0 flex-col leading-tight`},Pw={class:`flex items-center gap-1.5`},Fw={class:`font-mono text-[11.5px] font-semibold tracking-wide`},Iw={key:0,class:`truncate text-[11px] text-muted-foreground`},Lw={class:`inline-flex min-w-0 items-center gap-1.5`},Rw={key:0,class:`truncate`},zw=F({__name:`LanguageLabel`,props:{code:{},override:{},showName:{type:Boolean,default:!1},showCode:{type:Boolean,default:!0},size:{default:16},codeMinChars:{},layout:{default:`inline`}},setup(e){let t=e,n=q(()=>aw(t.code,t.override));return(t,r)=>e.layout===`stacked`?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,Mw,[U(jw,{code:e.code,override:e.override,size:e.size,class:`mt-0.5 shrink-0`},null,8,[`code`,`override`,`size`]),H(`span`,Nw,[H(`span`,Pw,[H(`span`,Fw,j(e.code.toUpperCase()),1),n.value.rtl?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[...r[0]||=[H(`span`,{class:`rounded border border-border px-1 text-[9px] font-bold uppercase tracking-wide text-muted-foreground`},`RTL`,-1)]]),_:1}),U(N(qC),null,{default:P(()=>[...r[1]||=[W(`Right-to-left`,-1)]]),_:1})]),_:1})):G(``,!0)]),e.showName?(z(),B(`span`,Iw,j(n.value.name),1)):G(``,!0)])])]),_:1}),U(N(qC),null,{default:P(()=>[W(j(n.value.name),1)]),_:1})]),_:1})):(z(),V(N(eC),{key:1},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,Lw,[U(jw,{code:e.code,override:e.override,size:e.size},null,8,[`code`,`override`,`size`]),e.showName?(z(),B(`span`,Rw,j(n.value.name),1)):G(``,!0),e.showCode?(z(),B(`span`,{key:1,class:`font-mono text-xs`,style:me(e.codeMinChars==null?void 0:{minWidth:`${e.codeMinChars}ch`})},j(e.code.toUpperCase()),5)):G(``,!0)])]),_:1}),U(N(qC),null,{default:P(()=>[W(j(n.value.name),1)]),_:1})]),_:1}))}}),Bw=[`data-state`],Vw={class:`flex flex-wrap items-start gap-2 pt-0.5`},Hw={key:0,class:`rounded-md border border-border-soft bg-accent px-1.5 py-0.5 text-[10.5px] font-semibold uppercase tracking-wide text-muted-foreground`},Uw=[`dir`],Ww={key:0,"data-testid":`filling-hint`,class:`flex items-center gap-1.5 text-sm italic text-muted-foreground`},Gw={key:0,class:`flex items-center justify-end gap-1.5 pt-0.5`},Kw={type:`button`,class:`flex size-7 items-center justify-center rounded-md bg-destructive-soft text-destructive transition hover:brightness-95 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,"aria-label":`Show issues`},qw={class:`flex flex-col gap-1`},Jw={key:0,class:`mt-2 border-t pt-2`},Yw={class:`flex flex-wrap gap-1`},Xw=[`onClick`],Zw=[`disabled`],Qw=F({__name:`TranslationRow`,props:{keyName:{},locale:{},sourceLocale:{},value:{},maxLength:{},issues:{},labelChars:{},plural:{},sourceForms:{},filling:{type:Boolean}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=q(()=>n.locale===n.sourceLocale),a=q(()=>n.value?.state??(i.value?`source`:`needs-review`)),o=q(()=>n.value?.value??``),s=q(()=>!!n.plural),c=q(()=>n.value?.forms??{}),l=q(()=>iw(n.locale)),u=q(()=>!i.value&&(s.value?Object.keys(c.value).length>0:!!n.value?.value)),d=q(()=>(n.issues?.length??0)>0),f=q(()=>[...new Set((n.issues??[]).filter(e=>e.check===`spelling`).flatMap(e=>e.detail??[]))]);async function p(e){try{await _f(e),Q.success(`Added "${e}" to the dictionary`),r(`changed`)}catch(e){Q.error(`Could not add word: ${e.message}`)}}let m=M(!1);async function h(){try{await Vd(n.keyName,n.locale),Q.success(`Cleared`),r(`changed`)}catch(e){Q.error(e.message)}}async function g(e){try{await Bd(n.keyName,n.locale,e),r(`changed`)}catch(e){Q.error(`Could not update state: ${e.message}`)}}async function _(){m.value=!0;try{let e=await Gd({onlyMissing:!1,locales:[n.locale],keyGlob:n.keyName,force:!0});e.errors?.length?Q.error(e.errors[0]?.error??`Translation failed`):Q.success(`Translated ${n.locale.toUpperCase()} (${e.written} written)`),r(`changed`)}catch(e){Q.error(`Translate failed: ${e.message}`)}finally{m.value=!1}}return(t,n)=>(z(),B(`div`,{class:A(N(lh)(`grid grid-cols-[172px_minmax(0,1fr)_232px] items-start gap-[18px] border-b border-border-soft py-[11px] pl-4 pr-[18px] last:border-b-0 max-[1080px]:grid-cols-[150px_minmax(0,1fr)_200px] max-[1080px]:gap-3`,i.value&&`bg-foreground/[0.015] dark:bg-foreground/[0.025]`)),"data-state":a.value},[H(`div`,Vw,[U(zw,{code:e.locale,layout:`stacked`,"show-name":``,size:15},null,8,[`code`]),i.value?(z(),B(`span`,Hw,`Source`)):G(``,!0)]),H(`div`,{class:`flex min-w-0 flex-col gap-2`,dir:l.value?`rtl`:`ltr`},[e.filling?(z(),B(`div`,Ww,[U(N($u),{class:`size-3.5 shrink-0 animate-spin`}),n[2]||=W(` filling… `,-1)])):s.value?(z(),V(Ew,{key:1,"key-name":e.keyName,locale:e.locale,"source-locale":e.sourceLocale,arg:e.plural.arg,forms:c.value,"source-forms":e.sourceForms,"max-length":e.maxLength,onChanged:n[0]||=e=>r(`changed`)},null,8,[`key-name`,`locale`,`source-locale`,`arg`,`forms`,`source-forms`,`max-length`])):(z(),V(_w,{key:2,"key-name":e.keyName,locale:e.locale,"source-locale":e.sourceLocale,value:o.value,"max-length":e.maxLength,onChanged:n[1]||=e=>r(`changed`)},null,8,[`key-name`,`locale`,`source-locale`,`value`,`max-length`]))],8,Uw),i.value?G(``,!0):(z(),B(`div`,Gw,[d.value?(z(),V(N(Ux),{key:0},{default:P(()=>[U(N(Yx),{"as-child":``},{default:P(()=>[H(`button`,Kw,[U(N(Td),{class:`size-3.5`})])]),_:1}),U(N(mC),{align:`end`,class:`w-fit max-w-xs text-xs`},{default:P(()=>[H(`ul`,qw,[(z(!0),B(R,null,I(e.issues,(e,t)=>(z(),B(`li`,{key:t,class:`whitespace-pre-line text-foreground/80`},j(e.message),1))),128))]),f.value.length?(z(),B(`div`,Jw,[n[3]||=H(`p`,{class:`mb-1 text-[11px] font-medium text-muted-foreground`},`Add to dictionary`,-1),H(`div`,Yw,[(z(!0),B(R,null,I(f.value,e=>(z(),V(N(eC),{key:e},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`inline-flex items-center gap-0.5 rounded border border-amber-500/40 px-1.5 py-0.5 text-[11px] text-amber-700 transition-colors hover:bg-amber-500/10 dark:text-amber-300`,onClick:t=>p(e)},[U(N(od),{class:`size-3`}),W(j(e),1)],8,Xw)]),_:2},1024),U(N(qC),null,{default:P(()=>[W(`Add '`+j(e)+`' to the custom dictionary`,1)]),_:2},1024)]),_:2},1024))),128))])])):G(``,!0)]),_:1})]),_:1})):G(``,!0),u.value?(z(),V(N(eC),{key:1},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,"aria-label":`Clear translation`,onClick:Jl(h,[`stop`])},[U(N(Ru),{class:`size-4`})])]),_:1}),U(N(qC),null,{default:P(()=>[...n[4]||=[W(`Clear translation`,-1)]]),_:1})]),_:1})):G(``,!0),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-primary-soft hover:text-primary disabled:opacity-50`,disabled:m.value||e.filling,"aria-label":`AI translate this cell`,onClick:Jl(_,[`stop`])},[m.value||e.filling?(z(),V(N($u),{key:0,class:`size-4 animate-spin`})):(z(),V(N(Zu),{key:1,class:`size-4`}))],8,Zw)]),_:1}),U(N(qC),null,{default:P(()=>[...n[5]||=[W(`AI translate`,-1)]]),_:1})]),_:1}),U(cw,{state:a.value,editable:!0,onSetState:g},null,8,[`state`])]))],10,Bw))}}),$w=[`aria-pressed`],eT={key:0,class:`pointer-events-none absolute inset-0 z-[3] border-2 border-primary`,"aria-hidden":`true`},tT={key:1,class:`pointer-events-none absolute inset-y-0 left-0 z-[4] w-1 bg-primary`,"aria-hidden":`true`},nT={class:`sticky top-3`},rT=[`aria-checked`],iT={class:`absolute right-0 top-0`},aT=[`disabled`],oT=[`innerHTML`],sT={key:0,class:`mt-1.5 flex flex-wrap items-center gap-1.5 pl-6`},cT={key:0,class:`inline-flex items-center gap-1 rounded-md border border-primary-border bg-primary/[0.09] px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-primary`},lT={class:`font-medium normal-case text-muted-foreground`},uT={"data-testid":`issue-badge`,class:`inline-flex items-center gap-1 rounded-md bg-destructive-soft px-1.5 py-0.5 text-[11.5px] font-bold text-destructive`},dT={key:1,class:`mt-2 flex flex-wrap gap-1.5 pl-6`},fT=[`onClick`],pT=[`data-testid`,`disabled`],mT={key:3,"data-testid":`translating-missing`,class:`ml-6 mt-2.5 inline-flex items-center gap-1 text-[11px] text-primary`},hT=[`disabled`],gT={class:`min-w-0 flex-1 [&>*:nth-child(even)]:bg-zebra`},_T={class:`grid gap-2`},vT={class:`break-all rounded bg-muted px-1 py-0.5 font-mono text-sm`},yT=F({__name:`KeyRow`,props:{keyName:{},entry:{},sourceLocale:{},locales:{},selected:{type:Boolean},checked:{type:Boolean},issues:{}},emits:[`changed`,`select`,`toggle-select`,`renamed`,`filter-tag`],setup(e,{emit:t}){let n=e,r=q(()=>n.keyName.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/\./g,`.<wbr>`)),i=q(()=>{let e=new Map;for(let t of n.issues??[]){let n=e.get(t.locale);n?n.push(t):e.set(t.locale,[t])}return e}),a=t,o=M(!1),s=M(``),c=M(!1),l=M(!1),u=M(!1),d=M(!1),f=q(()=>ZC(n.entry,n.locales,n.sourceLocale)),p=q(()=>QC(n.entry,n.locales,n.sourceLocale));async function m(){d.value=!0;try{let e=await Gd({onlyMissing:!1,force:!0,keyGlob:n.keyName,locales:p.value});e.errors?.length?Q.error(e.errors[0]?.error??`Translation failed`):Q.success(`Re-translated ${e.written} stale value${e.written===1?``:`s`}`),a(`changed`)}catch(e){Q.error(`Translate failed: ${e.message}`)}finally{d.value=!1}}async function h(){u.value=!0;try{let e=await Gd({onlyMissing:!0,keyGlob:n.keyName});e.errors?.length?Q.error(e.errors[0]?.error??`Translation failed`):Q.success(`Translated ${e.written} missing value${e.written===1?``:`s`}`),a(`changed`)}catch(e){Q.error(`Translate failed: ${e.message}`)}finally{u.value=!1}}function g(e){a(`toggle-select`,{shift:e.shiftKey})}function _(e){e.target?.closest(`button, input, textarea, select, a, [contenteditable="true"]`)||a(`select`)}async function v(){let e=!n.entry.skipTranslate;l.value=!0;try{await Ld([n.keyName],{skipTranslate:e}),Q.success(e?`Excluded from translation`:`Included in translation`),a(`changed`)}catch(e){Q.error(`Update failed: ${e.message}`)}finally{l.value=!1}}function y(){s.value=n.keyName,o.value=!0}async function b(){let e=s.value.trim();if(!e||e===n.keyName){o.value=!1;return}l.value=!0;try{await Rd(n.keyName,{rename:e}),o.value=!1,Q.success(`Renamed to ${e}`),a(`renamed`,e)}catch(e){Q.error(`Rename failed: ${e.message}`)}finally{l.value=!1}}async function x(){l.value=!0;try{await Nd(n.keyName),c.value=!1,Q.success(`Deleted ${n.keyName}`),a(`changed`)}catch(e){Q.error(`Delete failed: ${e.message}`)}finally{l.value=!1}}return(t,n)=>(z(),B(`div`,{class:A(N(lh)(`relative flex border-b-2 border-border bg-card`,e.selected&&`z-[1]`)),role:`button`,"aria-pressed":e.selected,"aria-label":`Select key`,onClick:_},[e.selected?(z(),B(`span`,eT)):G(``,!0),e.selected?(z(),B(`span`,tT)):G(``,!0),H(`div`,{class:A(N(lh)(`relative w-[var(--key-col-width,272px)] shrink-0 border-r border-border-soft p-[14px_16px_14px_18px]`,e.selected&&`bg-primary-soft/60`))},[H(`div`,nT,[H(`button`,{type:`button`,role:`checkbox`,"aria-checked":!!e.checked,"data-testid":`row-select`,class:A([`absolute left-0 top-0.5 flex size-4 items-center justify-center rounded border transition-colors`,e.checked?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`]),"aria-label":`Select key`,onClick:Jl(g,[`stop`])},[e.checked?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],10,rT),H(`div`,iT,[U(N(Qx),null,{default:P(()=>[U(N(iS),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`flex size-6 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Key actions`,disabled:u.value,onClick:n[0]||=Jl(()=>{},[`stop`])},[U(N(Lu),{class:`size-4`})],8,aT)]),_:1}),U(N(RC),{align:`end`},{default:P(()=>[f.value.length>0?(z(),V(N(zC),{key:0,disabled:u.value,onSelect:h},{default:P(()=>[U(N(vd),{class:`size-4`}),W(` Translate missing (`+j(f.value.length)+`) `,1)]),_:1},8,[`disabled`])):G(``,!0),U(N(zC),{onSelect:y},{default:P(()=>[U(N(ad),{class:`size-4`}),n[9]||=W(` Rename `,-1)]),_:1}),U(N(zC),{"data-testid":`toggle-skip`,disabled:l.value,onSelect:v},{default:P(()=>[U(N(Zu),{class:`size-4`}),W(` `+j(e.entry.skipTranslate?`Include in translation`:`Skip translation`),1)]),_:1},8,[`disabled`]),U(N(zC),{class:`text-destructive data-[highlighted]:bg-destructive/10 data-[highlighted]:text-destructive`,onSelect:n[1]||=e=>c.value=!0},{default:P(()=>[U(N(wd),{class:`size-4`}),n[10]||=W(` Delete `,-1)]),_:1})]),_:1})]),_:1})]),H(`div`,{class:`break-words pl-6 pr-7 font-mono text-[13.5px] font-semibold tracking-tight cursor-pointer`,onClick:n[2]||=Jl(e=>g(e),[`stop`])},[H(`span`,{innerHTML:r.value},null,8,oT),e.entry.screenshot?(z(),V(N(Yu),{key:0,class:`ml-1.5 inline size-3.5 align-[-2px] text-muted-foreground`,"aria-label":`Has screenshot`})):G(``,!0)]),e.entry.plural||e.entry.skipTranslate||(e.issues?.length??0)>0?(z(),B(`div`,sT,[e.entry.plural?(z(),B(`span`,cT,[n[11]||=W(`PLURAL`,-1),H(`span`,lT,`· `+j(e.entry.plural.arg),1)])):G(``,!0),e.entry.skipTranslate?(z(),V(N(eC),{key:1},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[...n[12]||=[H(`span`,{"data-testid":`skip-badge`,class:`inline-flex items-center gap-1 rounded-md border border-warning-border bg-warning-bg px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-warning`},`SKIP`,-1)]]),_:1}),U(N(qC),null,{default:P(()=>[...n[13]||=[W(`Excluded from translation`,-1)]]),_:1})]),_:1})):G(``,!0),(e.issues?.length??0)>0?(z(),V(N(eC),{key:2},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,uT,[U(N(Td),{class:`size-3`}),W(j(e.issues.length),1)])]),_:1}),U(N(qC),null,{default:P(()=>[W(j(e.issues.length)+` issue`+j(e.issues.length===1?``:`s`),1)]),_:1})]),_:1})):G(``,!0)])):G(``,!0),(e.entry.tags??[]).length?(z(),B(`div`,dT,[(z(!0),B(R,null,I(e.entry.tags,e=>(z(),V(N(eC),{key:e},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`inline-flex h-[22px] items-center gap-1.5 rounded-full border border-primary-border bg-transparent px-[9px] text-xs font-medium text-foreground transition-colors hover:border-primary hover:bg-primary/[0.07]`,onClick:Jl(t=>a(`filter-tag`,e),[`stop`])},[U(N(Sd),{class:`size-3 text-primary`}),W(j(e),1)],8,fT)]),_:2},1024),U(N(qC),null,{default:P(()=>[W(`Filter by tag: `+j(e),1)]),_:2},1024)]),_:2},1024))),128))])):G(``,!0),f.value.length>0?(z(),V(N(eC),{key:2},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"data-testid":u.value?`translating-missing`:`translate-missing-btn`,disabled:u.value,class:`ml-6 mt-2.5 inline-flex items-center gap-1.5 rounded-lg border border-primary-border bg-primary-soft px-2.5 py-1.5 text-[11.5px] font-semibold text-primary transition hover:brightness-95 disabled:opacity-80`,onClick:Jl(h,[`stop`])},[u.value?(z(),V(N($u),{key:0,class:`size-3 animate-spin`})):(z(),V(N(vd),{key:1,class:`size-3`})),W(` `+j(u.value?`Translating…`:`Translate ${f.value.length} missing`),1)],8,pT)]),_:1}),U(N(qC),null,{default:P(()=>[W(`Translate the `+j(f.value.length)+` missing language`+j(f.value.length>1?`s`:``)+` for this key`,1)]),_:1})]),_:1})):u.value?(z(),B(`span`,mT,[U(N($u),{class:`size-3 animate-spin`}),n[14]||=W(` Translating… `,-1)])):G(``,!0),p.value.length>0?(z(),V(N(eC),{key:4},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"data-testid":`retranslate-stale-btn`,disabled:d.value,class:`ml-6 mt-2.5 inline-flex items-center gap-1.5 rounded-lg border border-amber-500/40 bg-amber-500/10 px-2.5 py-1.5 text-[11.5px] font-semibold text-amber-700 transition hover:brightness-95 disabled:opacity-80 dark:text-amber-300`,onClick:Jl(m,[`stop`])},[d.value?(z(),V(N($u),{key:0,class:`size-3 animate-spin`})):(z(),V(N(sd),{key:1,class:`size-3`})),W(` `+j(d.value?`Re-translating…`:`Re-translate ${p.value.length} stale`),1)],8,hT)]),_:1}),U(N(qC),null,{default:P(()=>[W(`Re-translate the `+j(p.value.length)+` stale language`+j(p.value.length>1?`s`:``)+` for this key`,1)]),_:1})]),_:1})):G(``,!0)])],2),H(`div`,gT,[(z(!0),B(R,null,I(e.locales,t=>(z(),V(Qw,{key:t,"key-name":e.keyName,locale:t,"source-locale":e.sourceLocale,value:e.entry.values[t],"max-length":e.entry.maxLength,issues:i.value.get(t)??[],plural:e.entry.plural,"source-forms":e.entry.values[e.sourceLocale]?.forms,filling:u.value&&f.value.includes(t)||d.value&&p.value.includes(t),onChanged:n[3]||=e=>a(`changed`)},null,8,[`key-name`,`locale`,`source-locale`,`value`,`max-length`,`issues`,`plural`,`source-forms`,`filling`]))),128))]),U(N(C_),{open:o.value,"onUpdate:open":n[6]||=e=>o.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[15]||=[W(`Rename key`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[...n[16]||=[W(`Use dot notation, e.g. `,-1),H(`span`,{class:`font-mono`},`home.title`,-1),W(`.`,-1)]]),_:1})]),_:1}),H(`div`,_T,[U(N(MC),{for:`rename-key`},{default:P(()=>[...n[17]||=[W(`New key`,-1)]]),_:1}),U(N(sC),{id:`rename-key`,modelValue:s.value,"onUpdate:modelValue":n[4]||=e=>s.value=e,class:`font-mono`,onKeydown:Xl(Jl(b,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:l.value,onClick:n[5]||=e=>o.value=!1},{default:P(()=>[...n[18]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:l.value,onClick:b},{default:P(()=>[...n[19]||=[W(`Rename`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(N(C_),{open:c.value,"onUpdate:open":n[8]||=e=>c.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[20]||=[W(`Delete key`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[n[21]||=W(` Delete `,-1),H(`code`,vT,j(e.keyName),1),n[22]||=W(` and all its translations? This cannot be undone. `,-1)]),_:1})]),_:1}),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:l.value,onClick:n[7]||=e=>c.value=!1},{default:P(()=>[...n[23]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:l.value,onClick:x},{default:P(()=>[...n[24]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])],10,$w))}}),bT=[{id:`phpstorm`,label:`PhpStorm`,buildUrl:e=>`phpstorm://open?file=${encodeURIComponent(e.abs)}&line=${e.line}`},{id:`vscode`,label:`VS Code`,buildUrl:e=>`vscode://file${e.abs}:${e.line}:${e.col}`},{id:`zed`,label:`Zed`,buildUrl:e=>`zed://file${e.abs}:${e.line}:${e.col}`}],xT=`vscode`,ST=e=>bT.some(t=>t.id===e),CT=M(xT);function wT(e){ST(e)&&(CT.value=e,ff({editor:e}).catch(()=>{}))}async function TT(){try{let{editor:e}=await df();ST(e)&&(CT.value=e)}catch{}}function ET(e,t){return(bT.find(e=>e.id===CT.value)??bT[0]).buildUrl(e,t)}function DT(){return{dirs:new Map,files:new Map}}function OT(e){let t=DT();for(let n of e){let e=n.file.split(`/`).filter(Boolean),r=e.pop()??n.file,i=t;for(let t of e){let e=i.dirs.get(t);e||(e=DT(),i.dirs.set(t,e)),i=e}let a=i.files.get(r)??[];a.push({line:n.line,url:n.url}),i.files.set(r,a)}let n=[],r=(e,t)=>{for(let i of[...e.dirs.keys()].sort()){let a=i,o=e.dirs.get(i);for(;o.files.size===0&&o.dirs.size===1;){let e=[...o.dirs.keys()][0];a+=`/`+e,o=o.dirs.get(e)}n.push({kind:`dir`,depth:t,label:a}),r(o,t+1)}for(let r of[...e.files.keys()].sort()){let i=e.files.get(r).slice().sort((e,t)=>e.line-t.line);n.push({kind:`file`,depth:t,name:r,refs:i})}};return r(t,0),n}var kT={class:`flex flex-col gap-2`},AT={class:`flex items-center gap-1.5`},jT={key:0,class:`flex flex-col gap-2`},MT={class:`mt-1 flex gap-2`},NT={class:`flex items-center justify-between`},PT={class:`font-mono text-[10px] text-muted-foreground`},FT={class:`flex gap-1.5`},IT=[`onClick`],LT=[`onClick`],RT={class:`whitespace-pre-wrap break-words text-[12.5px] leading-snug`},zT=F({__name:`NotesEditor`,props:{keyName:{},notes:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=e=>new Date(e).toLocaleString(),a=M(``),o=M(!1);async function s(){let e=a.value.trim();if(e){o.value=!0;try{await Cf(n.keyName,e),a.value=``,r(`changed`)}catch(e){Q.error(`Could not add note: ${e.message}`)}finally{o.value=!1}}}let c=M(null),l=M(``),u=M(!1);function d(e){c.value=e.id,l.value=e.text}function f(){c.value=null,l.value=``}async function p(e){let t=l.value.trim();if(t){u.value=!0;try{await wf(n.keyName,e,t),f(),r(`changed`)}catch(e){Q.error(`Could not save note: ${e.message}`)}finally{u.value=!1}}}async function m(e){try{await Tf(n.keyName,e),r(`changed`)}catch(e){Q.error(`Could not delete note: ${e.message}`)}}return(t,n)=>(z(),B(`div`,kT,[H(`div`,AT,[U(N(bd),{class:`size-3.5 text-muted-foreground`}),n[2]||=H(`p`,{class:`text-[13px] font-semibold`},`Notes`,-1)]),n[6]||=H(`p`,{class:`-mt-1 text-[11.5px] text-muted-foreground`},`Internal notes — never sent to the AI or exported.`,-1),e.notes.length?(z(),B(`ul`,jT,[(z(!0),B(R,null,I(e.notes,e=>(z(),B(`li`,{key:e.id,class:`flex flex-col gap-1 rounded-lg border border-border-soft bg-background p-2.5 text-sm`},[c.value===e.id?(z(),B(R,{key:0},[U(N(fw),{modelValue:l.value,"onUpdate:modelValue":n[0]||=e=>l.value=e,rows:`2`,onKeydown:Xl(Jl(f,[`prevent`]),[`escape`])},null,8,[`modelValue`,`onKeydown`]),H(`div`,MT,[U(N($),{size:`sm`,disabled:u.value||!l.value.trim(),onClick:t=>p(e.id)},{default:P(()=>[...n[3]||=[W(`Save`,-1)]]),_:1},8,[`disabled`,`onClick`]),U(N($),{size:`sm`,variant:`ghost`,onClick:f},{default:P(()=>[...n[4]||=[W(`Cancel`,-1)]]),_:1})])],64)):(z(),B(R,{key:1},[H(`div`,NT,[H(`span`,PT,j(i(e.at)),1),H(`span`,FT,[H(`button`,{type:`button`,"aria-label":`Edit note`,class:`text-muted-foreground hover:text-foreground`,onClick:t=>d(e)},[U(N(ad),{class:`size-3.5`})],8,IT),H(`button`,{type:`button`,"aria-label":`Delete note`,class:`text-muted-foreground hover:text-destructive`,onClick:t=>m(e.id)},[U(N(wd),{class:`size-3.5`})],8,LT)])]),H(`p`,RT,j(e.text),1)],64))]))),128))])):G(``,!0),U(N(fw),{"data-testid":`new-note`,modelValue:a.value,"onUpdate:modelValue":n[1]||=e=>a.value=e,rows:`2`,placeholder:`Add an internal note…`},null,8,[`modelValue`]),U(N($),{"data-testid":`add-note`,variant:`outline`,class:`w-full text-muted-foreground`,disabled:o.value||!a.value.trim(),onClick:s},{default:P(()=>[...n[5]||=[W(` Add note `,-1)]]),_:1},8,[`disabled`])]))}}),BT={class:`flex shrink-0 flex-col overflow-y-auto border-l border-border bg-card max-[1080px]:hidden`},VT={key:0,class:`flex flex-1 flex-col items-center justify-center gap-2.5 p-10 text-center text-muted-foreground`},HT={key:1,class:`flex flex-col gap-4 px-5 pb-10 pt-[18px]`},UT={class:`flex flex-col gap-0.5`},WT=[`innerHTML`],GT={class:`flex flex-wrap items-center gap-2`},KT={key:0,class:`rounded-md border border-primary-border bg-primary-soft px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-primary`},qT={key:1,class:`rounded-md border border-border-soft bg-accent px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-muted-foreground`},JT=[`disabled`],YT=[`disabled`],XT={key:0,class:`flex flex-col gap-1.5`},ZT={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-destructive`},QT={class:`font-mono text-[11px] font-semibold`},$T={class:`ml-auto rounded border border-destructive px-1.5 py-0.5 text-[10.5px] font-semibold text-destructive`},eE=[`disabled`,`onClick`],tE={key:1,class:`flex flex-col gap-1.5`},nE={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-muted-foreground`},rE={class:`font-mono text-[11px] font-semibold`},iE={class:`flex flex-col gap-1.5`},aE={class:`flex items-center gap-1.5`},oE={key:0,class:`ml-auto text-[11.5px] text-muted-foreground`},sE={key:0,class:`text-[12px] text-muted-foreground`},cE={key:0,class:`rounded-md border border-border-soft bg-accent px-2 py-1.5 text-[12px] text-muted-foreground`},lE={key:1,class:`flex flex-col gap-0.5 text-[11.5px]`},uE={class:`min-w-0 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},dE=[`href`],fE={key:1,class:`min-w-0 shrink truncate font-mono text-foreground`},pE={class:`flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5`},mE=[`href`],hE={key:1,class:`shrink-0 font-mono text-muted-foreground`},gE={key:2,class:`flex flex-col gap-1`},_E={class:`flex items-center gap-1 text-[11px] font-medium text-muted-foreground`},vE={class:`flex flex-col gap-1`},yE={class:`min-w-0 flex-1 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},bE={class:`shrink-0 rounded border border-dashed border-border-soft px-1 font-mono text-[10px]`},xE={class:`shrink-0 font-mono`},SE={key:3,class:`flex flex-col gap-1`},CE={class:`flex items-center gap-1 text-[11px] font-medium text-muted-foreground`},wE={class:`flex flex-col gap-1`},TE={class:`min-w-0 flex-1 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},EE={class:`shrink-0 rounded border border-dashed border-border-soft px-1 font-mono text-[10px]`},DE={class:`shrink-0 font-mono`},OE={class:`flex flex-col gap-1.5`},kE={class:`flex items-center gap-1.5`},AE={class:`ml-0.5 flex items-center gap-0.5 rounded border border-primary/30 bg-primary/10 px-1 py-0.5 text-[10px] font-semibold text-primary`},jE=[`disabled`],ME={class:`flex flex-col gap-1.5`},NE={class:`flex items-center gap-1.5`},PE={class:`flex flex-col gap-1.5`},FE={class:`flex items-center gap-1.5`},IE={class:`flex flex-col gap-2`},LE={class:`flex items-center gap-1.5`},RE={key:0,class:`flex flex-col gap-2`},zE=[`src`,`alt`],BE={class:`flex gap-2`},VE=[`disabled`],HE={class:`flex flex-col gap-1.5 text-[11.5px] text-muted-foreground`},UE={class:`flex items-center justify-between gap-3`},WE={class:`font-mono text-[11px] text-foreground`},GE={class:`flex items-center justify-between gap-3`},KE={class:`font-mono text-[11px] text-foreground`},qE=F({__name:`DetailPanel`,props:{keyName:{},entry:{},issues:{},locales:{},sourceLocale:{},usageRevision:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=e=>e?new Date(e).toLocaleString():`—`,a=q(()=>n.keyName?n.keyName.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/\./g,`.<wbr>`):``),o=q(()=>{let e=``;for(let t of Object.values(n.entry?.values??{}))t.updatedAt&&t.updatedAt>e&&(e=t.updatedAt);return e||void 0}),s=q(()=>!!n.entry?.plural),c=M(!1),l;function u(){uh(n.keyName).then(()=>{c.value=!0,clearTimeout(l),l=setTimeout(()=>c.value=!1,1500)}).catch(()=>{})}let d={placeholder:`Placeholder`,spelling:`Spelling`,length:`Length`,glossary:`Glossary`},f=q(()=>(n.issues??[]).filter(e=>e.check!==`untranslated`)),p={spelling:`spelling`,length:`max-length`},m=M(!1);async function h(e){let t=p[e.check];if(!(!t||!n.keyName||m.value)){m.value=!0;try{await Pf(n.keyName,t,e.locale),Q.success(`Dismissed until the source text changes`),r(`changed`)}catch(e){Q.error(e.message)}finally{m.value=!1}}}let g=q(()=>{let e=n.entry,t=n.sourceLocale;return!e||!t?[]:(n.locales??[]).filter(n=>XC(e,n,t))}),_=M(null),v=M(!1),y=M(!1);function b(){_.value?.click()}async function x(e){let t=e.target,i=t.files?.[0];if(t.value=``,!(!i||!n.keyName)){v.value=!0;try{await xf(n.keyName,i),Q.success(`Screenshot uploaded`),r(`changed`)}catch(e){Q.error(`Upload failed: ${e.message}`)}finally{v.value=!1}}}async function S(){if(n.keyName){y.value=!0;try{await Sf(n.keyName),Q.success(`Screenshot removed`),r(`changed`)}catch(e){Q.error(`Could not remove: ${e.message}`)}finally{y.value=!1}}}let C=Yt({context:``,tags:``,maxLength:void 0}),w=M(!1),T=M(!1);async function E(){if(n.keyName){T.value=!0;try{let e=0,t=[];for await(let r of nf({keyGlob:n.keyName,all:!0,force:!0}))r.type===`done`&&(e=r.written,t=r.errors);e>0?(Q.success(`Context suggested and saved — review it below`),r(`changed`)):t.length>0?Q.error(t[0].error):Q.info(`No usage found — add a code snippet or type context manually`)}catch(e){Q.error(`Could not suggest: ${e.message}`)}finally{T.value=!1}}}let D={context:``,tags:``,maxLength:void 0};function ee(){C.context=D.context=n.entry?.context??``,C.tags=D.tags=(n.entry?.tags??[]).join(`, `),C.maxLength=D.maxLength=n.entry?.maxLength}function te(){return C.context===D.context&&C.tags===D.tags&&C.maxLength===D.maxLength}Er(()=>n.keyName,ee,{immediate:!0}),Er(()=>n.entry,()=>{te()&&ee()});let ne=M(null),O=M(6);async function re(){let e=n.keyName;if(!e){ne.value=null;return}try{ne.value=await of(e)}catch{ne.value=null}}Er(()=>n.keyName,async()=>{ne.value=null,O.value=6,await re()},{immediate:!0}),Er(()=>n.usageRevision,re);let ie=e=>ET(e,ne.value?.project??``),ae=q(()=>(ne.value?.refs??[]).map(e=>({...e,url:ie(e)}))),oe=q(()=>(ne.value?.prefixRefs??[]).map(e=>({...e,url:ie(e)}))),k=q(()=>(ne.value?.literalRefs??[]).map(e=>({...e,url:ET(e,ne.value?.project??``)}))),se=q(()=>OT(ae.value.slice(0,O.value))),ce=e=>e.find(e=>e.url)?.url??null,le=M(`count`),ue=M(!1);Er(()=>[n.keyName,n.entry],()=>{le.value=n.entry?.plural?.arg??`count`},{immediate:!0});async function de(){if(!n.keyName)return;let e=le.value.trim()||`count`;ue.value=!0;try{await Ud(n.keyName,e),Q.success(`Converted to plural`),r(`changed`)}catch(e){Q.error(`Could not convert: ${e.message}`)}finally{ue.value=!1}}async function fe(){if(n.keyName){ue.value=!0;try{await Wd(n.keyName),Q.success(`Converted to a single string`),r(`changed`)}catch(e){Q.error(`Could not convert: ${e.message}`)}finally{ue.value=!1}}}async function pe(){let e=le.value.trim();if(!(!n.keyName||!e||e===n.entry?.plural?.arg))try{await Rd(n.keyName,{pluralArg:e}),Q.success(`Renamed count variable`),r(`changed`)}catch(e){Q.error(`Could not rename: ${e.message}`)}}async function he(){if(n.keyName){w.value=!0;try{await Rd(n.keyName,{metadata:{context:C.context.trim(),tags:C.tags.split(`,`).map(e=>e.trim()).filter(Boolean),maxLength:C.maxLength?Number(C.maxLength):null}}),Q.success(`Metadata saved`),r(`changed`)}catch(e){Q.error(`Could not save: ${e.message}`)}finally{w.value=!1}}}return(t,n)=>(z(),B(`aside`,BT,[!e.keyName||!e.entry?(z(),B(`div`,VT,[U(N(Uu),{class:`size-5`}),n[6]||=H(`p`,{class:`max-w-[200px] text-sm leading-relaxed`},`Select a key to view and edit its details.`,-1)])):(z(),B(`div`,HT,[H(`div`,UT,[n[7]||=H(`span`,{class:`text-[10.5px] font-bold uppercase tracking-wide text-muted-foreground`},`Key`,-1),U(N(eC),{"disable-closing-trigger":``},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,{class:`inline-block w-fit break-words cursor-pointer font-mono text-base font-semibold tracking-tight`,innerHTML:a.value,onClick:u},null,8,WT)]),_:1}),U(N(qC),null,{default:P(()=>[W(j(c.value?`Copied`:`Click to copy`),1)]),_:1})]),_:1})]),H(`div`,GT,[s.value?(z(),B(`span`,KT,`PLURAL`)):(z(),B(`span`,qT,`SINGLE`)),s.value?(z(),B(R,{key:2},[n[8]||=H(`span`,{class:`text-[11.5px] text-muted-foreground`},`arg`,-1),U(N(sC),{modelValue:le.value,"onUpdate:modelValue":n[0]||=e=>le.value=e,class:`h-7 w-24 font-mono text-xs`,"aria-label":`Number variable name`,onBlur:pe,onKeydown:Xl(Jl(pe,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),H(`button`,{type:`button`,class:`ml-auto rounded-md px-2 py-1 text-[12px] font-semibold text-primary transition-colors hover:bg-primary-soft disabled:opacity-50`,disabled:ue.value,onClick:fe},`Make single`,8,JT)],64)):(z(),B(`button`,{key:3,type:`button`,class:`ml-auto rounded-md px-2 py-1 text-[12px] font-semibold text-primary transition-colors hover:bg-primary-soft disabled:opacity-50`,disabled:ue.value,onClick:de},`Make plural`,8,YT))]),f.value.length||g.value.length?(z(),B(`div`,{key:0,class:A(N(lh)(`flex flex-col gap-3 rounded-xl border border-border bg-background p-3`,f.value.length&&`border-primary-border`))},[f.value.length?(z(),B(`div`,XT,[H(`div`,ZT,[U(N(Td),{class:`size-3.5`}),W(` `+j(f.value.length)+` issue`+j(f.value.length===1?``:`s`),1)]),(z(!0),B(R,null,I(f.value,(e,t)=>(z(),B(`div`,{key:t,class:`group flex items-center gap-2 text-[12.5px]`},[U(jw,{code:e.locale,size:14},null,8,[`code`]),H(`span`,QT,j(e.locale.toUpperCase()),1),H(`span`,$T,j(d[e.check]??e.check),1),p[e.check]?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`flex size-[20px] items-center justify-center rounded text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-foreground group-hover:opacity-100`,disabled:m.value,"aria-label":`Dismiss until the source changes`,onClick:t=>h(e)},[U(N(Su),{class:`size-3`})],8,eE)]),_:2},1024),U(N(qC),null,{default:P(()=>[...n[9]||=[W(`Dismiss until the source text changes`,-1)]]),_:1})]),_:2},1024)):G(``,!0)]))),128))])):G(``,!0),g.value.length?(z(),B(`div`,tE,[H(`div`,nE,[n[10]||=H(`span`,{class:`size-[7px] rounded-full bg-muted-foreground`},null,-1),W(` `+j(g.value.length)+` untranslated `,1)]),(z(!0),B(R,null,I(g.value,e=>(z(),B(`div`,{key:e,class:`flex items-center gap-2 text-[12.5px]`},[U(jw,{code:e,size:14},null,8,[`code`]),H(`span`,rE,j(e.toUpperCase()),1),n[11]||=H(`span`,{class:`ml-auto rounded border border-border-soft bg-accent px-1.5 py-0.5 text-[10.5px] font-semibold italic text-muted-foreground`},`Empty`,-1)]))),128))])):G(``,!0)],2)):G(``,!0),H(`div`,iE,[H(`div`,aE,[U(N(Fu),{class:`size-3.5 text-muted-foreground`}),n[12]||=H(`span`,{class:`text-[13px] font-semibold`},`Usage`,-1),ne.value?.indexed?(z(),B(`span`,oE,j(ne.value.count)+` reference`+j(ne.value.count===1?``:`s`),1)):G(``,!0)]),!ne.value||!ne.value.indexed?(z(),B(`p`,sE,` Run a scan to find where this key is used in your code. `)):(z(),B(R,{key:1},[ne.value.count===0&&oe.value.length===0&&k.value.length===0?(z(),B(`p`,cE,` Not referenced in the last scan — this key may be unused. `)):G(``,!0),ae.value.length?(z(),B(`div`,lE,[(z(!0),B(R,null,I(se.value,(e,t)=>(z(),B(R,{key:t},[e.kind===`dir`?(z(),B(`div`,{key:0,class:`flex items-center gap-1 text-muted-foreground`,style:me({paddingLeft:`${e.depth*12}px`})},[U(N(Ku),{class:`size-3 shrink-0`}),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,uE,j(e.label),1)]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(e.label),1)]),_:2},1024)]),_:2},1024)],4)):(z(),B(`div`,{key:1,class:`flex items-baseline gap-1.5`,style:me({paddingLeft:`${e.depth*12+16}px`})},[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[ce(e.refs)?(z(),B(`a`,{key:0,href:ce(e.refs),class:`min-w-0 shrink truncate rounded px-0.5 font-mono text-foreground hover:bg-accent hover:text-primary`},j(e.name),9,dE)):(z(),B(`span`,fE,j(e.name),1))]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(ce(e.refs)?`Open ${e.name}`:e.name),1)]),_:2},1024)]),_:2},1024),H(`span`,pE,[(z(!0),B(R,null,I(e.refs,(t,n)=>(z(),B(R,{key:n},[t.url?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`a`,{href:t.url,class:`shrink-0 rounded px-0.5 font-mono text-muted-foreground hover:bg-accent hover:text-primary`},`:`+j(t.line),9,mE)]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(`Open `+j(e.name)+`:`+j(t.line),1)]),_:2},1024)]),_:2},1024)):(z(),B(`span`,hE,`:`+j(t.line),1))],64))),128))])],4))],64))),128)),ne.value.count>O.value?(z(),B(`button`,{key:0,type:`button`,class:`mt-0.5 self-start text-[11.5px] text-primary hover:underline`,onClick:n[1]||=e=>O.value=ne.value.count},` + `+j(ne.value.count-O.value)+` more `,1)):G(``,!0)])):G(``,!0),oe.value.length?(z(),B(`div`,gE,[H(`p`,_E,[U(N(xu),{class:`size-3`}),n[13]||=W(` Possible usage (dynamic keys) `,-1)]),H(`ul`,vE,[(z(!0),B(R,null,I(oe.value,(e,t)=>(z(),B(`li`,{key:t,class:`text-[11.5px]`},[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[(z(),V(ia(e.url?`a`:`div`),{href:e.url||void 0,class:A([`group flex items-baseline gap-2 text-muted-foreground`,e.url?`hover:text-primary`:``])},{default:P(()=>[H(`span`,yE,j(e.file),1),H(`span`,bE,j(e.prefix)+`*`,1),H(`span`,xE,`:`+j(e.line),1),e.url?(z(),V(N(zu),{key:0,class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-100`})):G(``,!0)]),_:2},1032,[`href`,`class`]))]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(e.url?`Open ${e.file}:${e.line}`:`${e.file}:${e.line}`),1)]),_:2},1024)]),_:2},1024)]))),128))])])):G(``,!0),k.value.length?(z(),B(`div`,SE,[H(`p`,CE,[U(N(xu),{class:`size-3`}),n[14]||=W(` Possible usage (string literals) `,-1)]),H(`ul`,wE,[(z(!0),B(R,null,I(k.value,(e,t)=>(z(),B(`li`,{key:t,class:`text-[11.5px]`},[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[(z(),V(ia(e.url?`a`:`div`),{href:e.url||void 0,class:A([`group flex items-baseline gap-2 text-muted-foreground`,e.url?`hover:text-primary`:``])},{default:P(()=>[H(`span`,TE,j(e.file),1),H(`span`,EE,`'`+j(e.literal)+`'`,1),H(`span`,DE,`:`+j(e.line),1),e.url?(z(),V(N(zu),{key:0,class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-100`})):G(``,!0)]),_:2},1032,[`href`,`class`]))]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(e.url?`Open ${e.file}:${e.line}`:`${e.file}:${e.line}`),1)]),_:2},1024)]),_:2},1024)]))),128))])])):G(``,!0)],64))]),H(`div`,OE,[H(`div`,kE,[U(N(Xu),{class:`size-3.5 text-muted-foreground`}),n[16]||=H(`label`,{for:`detail-context`,class:`text-[13px] font-semibold`},`Context`,-1),e.entry.contextSource===`ai`?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,AE,[U(N(vd),{class:`size-2.5`}),n[15]||=W(` AI `,-1)])]),_:1}),U(N(qC),null,{default:P(()=>[W(j(e.entry.contextAt?`AI-generated ${i(e.entry.contextAt)}`:`AI-generated`),1)]),_:1})]),_:1})):G(``,!0),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`ml-auto flex items-center gap-1 rounded px-1.5 py-0.5 text-[11.5px] font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:opacity-40`,disabled:T.value,onClick:E},[U(N(vd),{class:`size-3`}),W(` `+j(T.value?`Suggesting…`:`Suggest`),1)],8,jE)]),_:1}),U(N(qC),null,{default:P(()=>[W(j(T.value?`Suggesting…`:`Suggest context with AI`),1)]),_:1})]),_:1})]),U(N(fw),{id:`detail-context`,modelValue:C.context,"onUpdate:modelValue":n[2]||=e=>C.context=e,rows:`5`,class:`min-h-28`,placeholder:`Where/how this string is used…`},null,8,[`modelValue`])]),H(`div`,ME,[H(`div`,NE,[U(N(Cd),{class:`size-3.5 text-muted-foreground`}),n[17]||=H(`label`,{for:`detail-tags`,class:`text-[13px] font-semibold`},`Tags`,-1)]),U(N(sC),{id:`detail-tags`,modelValue:C.tags,"onUpdate:modelValue":n[3]||=e=>C.tags=e,placeholder:`comma, separated`},null,8,[`modelValue`])]),H(`div`,PE,[H(`div`,FE,[U(N(ld),{class:`size-3.5 text-muted-foreground`}),n[18]||=H(`label`,{for:`detail-maxlen`,class:`text-[13px] font-semibold`},`Max length`,-1)]),U(N(sC),{id:`detail-maxlen`,modelValue:C.maxLength,"onUpdate:modelValue":n[4]||=e=>C.maxLength=e,modelModifiers:{number:!0},type:`number`,min:`0`,placeholder:`—`,class:`font-mono`},null,8,[`modelValue`])]),U(N($),{class:`w-full`,disabled:w.value,onClick:he},{default:P(()=>[...n[19]||=[W(`Save details`,-1)]]),_:1},8,[`disabled`]),n[25]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),e.keyName?(z(),V(zT,{key:1,"key-name":e.keyName,notes:e.entry.notes??[],onChanged:n[5]||=e=>r(`changed`)},null,8,[`key-name`,`notes`])):G(``,!0),n[26]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),H(`div`,IE,[H(`div`,LE,[U(N(Yu),{class:`size-3.5 text-muted-foreground`}),n[20]||=H(`span`,{class:`text-[13px] font-semibold`},`Screenshot`,-1)]),H(`input`,{ref_key:`fileInput`,ref:_,type:`file`,accept:`image/*`,class:`hidden`,onChange:x},null,544),e.entry.screenshot?(z(),B(`div`,RE,[H(`img`,{src:`/`+e.entry.screenshot,alt:`Screenshot for ${e.keyName}`,class:`max-h-48 w-full rounded-lg border border-border object-contain`},null,8,zE),H(`div`,BE,[U(N($),{variant:`outline`,size:`sm`,disabled:v.value,onClick:b},{default:P(()=>[U(N(sd),{class:`size-4`}),n[21]||=W(` Replace `,-1)]),_:1},8,[`disabled`]),U(N($),{variant:`outline`,size:`sm`,class:`text-muted-foreground hover:text-destructive`,disabled:y.value,onClick:S},{default:P(()=>[U(N(wd),{class:`size-4`}),n[22]||=W(` Remove `,-1)]),_:1},8,[`disabled`])])])):(z(),B(`button`,{key:1,type:`button`,class:`flex w-full flex-col items-center gap-2 rounded-xl border-[1.5px] border-dashed border-input p-[22px] text-center text-[12.5px] font-medium text-muted-foreground transition-colors hover:border-primary-border hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-60`,disabled:v.value,onClick:b},[U(N(Dd),{class:`size-5`}),W(` `+j(v.value?`Uploading…`:`Upload screenshot`),1)],8,VE))]),n[27]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),H(`div`,HE,[H(`div`,UE,[n[23]||=H(`span`,null,`Created`,-1),H(`span`,WE,j(i(e.entry.createdAt)),1)]),H(`div`,GE,[n[24]||=H(`span`,null,`Last updated`,-1),H(`span`,KE,j(i(o.value)),1)])])]))]))}}),JE={class:`grid gap-3`},YE={class:`grid gap-1.5`},XE={class:`grid gap-1.5`},ZE={class:`flex items-center justify-between gap-2 rounded-md border p-2.5`},QE={class:`flex flex-col`},$E={key:0,class:`grid gap-1.5`},eD={key:1,class:`text-sm text-destructive`},tD=F({__name:`AddKeyDialog`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:Oa([`created`],[`update:open`]),setup(e,{emit:t}){let n=Xa(e,`open`),r=t,i=M(``),a=M(``),o=M(``),s=M(!1),c=M(!1),l=M(`count`);Er(n,e=>{e&&(i.value=``,a.value=``,o.value=``,c.value=!1,l.value=`count`)});async function u(){let e=i.value.trim();if(!e){o.value=`Key is required.`;return}if(!a.value.trim()){o.value=`Source value is required.`;return}s.value=!0,o.value=``;try{c.value?await Md(e,a.value,{arg:l.value.trim()||`count`}):await Md(e,a.value),Q.success(`Added ${e}`),n.value=!1,r(`created`,e)}catch(e){o.value=e.message}finally{s.value=!1}}return(e,t)=>(z(),V(N(C_),{open:n.value,"onUpdate:open":t[5]||=e=>n.value=e},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...t[6]||=[W(`Add key`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[...t[7]||=[W(`Create a new translation key using dot notation.`,-1)]]),_:1})]),_:1}),H(`div`,JE,[H(`div`,YE,[U(N(MC),{for:`add-key`},{default:P(()=>[...t[8]||=[W(`Key `,-1),H(`span`,{class:`text-destructive`},`*`,-1)]]),_:1}),U(N(sC),{id:`add-key`,modelValue:i.value,"onUpdate:modelValue":t[0]||=e=>i.value=e,class:`font-mono`,placeholder:`home.title`,onKeydown:Xl(Jl(u,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),H(`div`,XE,[U(N(MC),{for:`add-value`},{default:P(()=>[W(j(c.value?`Source value (other form)`:`Source value`)+` `,1),t[9]||=H(`span`,{class:`text-destructive`},`*`,-1)]),_:1}),U(N(sC),{id:`add-value`,modelValue:a.value,"onUpdate:modelValue":t[1]||=e=>a.value=e,placeholder:c.value?`{count} items`:`Welcome home`,onKeydown:Xl(Jl(u,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),H(`div`,ZE,[H(`div`,QE,[U(N(MC),{for:`add-plural`,class:`cursor-pointer`},{default:P(()=>[...t[10]||=[W(`Plural`,-1)]]),_:1}),t[11]||=H(`span`,{class:`text-xs text-muted-foreground`},`One form per CLDR category, by locale.`,-1)]),U(N(_C),{id:`add-plural`,modelValue:c.value,"onUpdate:modelValue":t[2]||=e=>c.value=e},null,8,[`modelValue`])]),c.value?(z(),B(`div`,$E,[U(N(MC),{for:`add-plural-arg`},{default:P(()=>[...t[12]||=[W(`Count argument`,-1)]]),_:1}),U(N(sC),{id:`add-plural-arg`,modelValue:l.value,"onUpdate:modelValue":t[3]||=e=>l.value=e,class:`font-mono`,placeholder:`count`,onKeydown:Xl(Jl(u,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])):G(``,!0),o.value?(z(),B(`p`,eD,j(o.value),1)):G(``,!0)]),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:s.value,onClick:t[4]||=e=>n.value=!1},{default:P(()=>[...t[13]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:s.value||!i.value.trim()||!a.value.trim(),onClick:u},{default:P(()=>[...t[14]||=[W(`Add key`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),nD={key:0,class:`flex items-center gap-1.5 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-400`},rD={key:1,class:`text-sm text-destructive`},iD={key:2,class:`flex flex-1 items-center justify-center py-12 text-sm text-muted-foreground`},aD={key:0,class:`flex flex-col gap-1 rounded-md border border-amber-500/30 bg-amber-500/10 p-3 text-sm text-amber-700 dark:text-amber-400`},oD={class:`flex items-center gap-1.5 font-medium`},sD={class:`list-inside list-disc pl-1`},cD={class:`grid min-h-0 flex-1 grid-cols-[16rem_1fr] gap-3 overflow-hidden`},lD={class:`min-h-0 overflow-y-auto rounded-md border`},uD=[`onClick`],dD={key:0,class:`px-3 py-2 text-xs text-muted-foreground`},fD={key:0,class:`min-h-0 overflow-auto rounded-md border bg-muted/30 p-3 font-mono text-xs leading-relaxed [tab-size:2]`},pD={key:1,class:`flex min-h-0 items-center justify-center rounded-md border text-sm text-muted-foreground`},mD=F({__name:`ExportDialog`,props:Oa({exportLocales:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:[`update:open`],setup(e){let t=Xa(e,`open`),n=e,r=q(()=>(n.exportLocales?.length??0)>0),i=M(!1),a=M(!1),o=M(``),s=M([]),c=M([]),l=M(null),u=q(()=>s.value.find(e=>e.path===l.value)??null);async function d(){i.value=!0,o.value=``,s.value=[],c.value=[],l.value=null;try{let e=await Df();s.value=[...e.files].sort((e,t)=>e.path.localeCompare(t.path)),c.value=e.warnings,l.value=s.value[0]?.path??null}catch(e){o.value=e.message}finally{i.value=!1}}Er(t,e=>{e&&d()},{immediate:!0});async function f(){a.value=!0;try{let e=await Of();Q.success(`Wrote ${e.files} file${e.files===1?``:`s`}`),t.value=!1}catch(e){Q.error(`Export failed: ${e.message}`)}finally{a.value=!1}}return(e,d)=>(z(),V(N(C_),{open:t.value,"onUpdate:open":d[1]||=e=>t.value=e},{default:P(()=>[U(N(NC),{class:`flex max-h-[85vh] w-full max-w-5xl flex-col`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...d[2]||=[W(`Export preview`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[...d[3]||=[W(`Review the files that will be written to disk.`,-1)]]),_:1})]),_:1}),r.value?(z(),B(`p`,nD,[U(N(Td),{class:`size-3.5 shrink-0`}),W(` Export is limited to `+j(n.exportLocales.length)+` language`+j(n.exportLocales.length===1?``:`s`)+` (Settings → Export targets). `,1)])):G(``,!0),o.value?(z(),B(`p`,rD,j(o.value),1)):G(``,!0),i.value?(z(),B(`div`,iD,` Generating preview… `)):o.value?G(``,!0):(z(),B(R,{key:3},[c.value.length?(z(),B(`div`,aD,[H(`p`,oD,[U(N(Td),{class:`size-4`}),W(` `+j(c.value.length)+` warning`+j(c.value.length===1?``:`s`),1)]),H(`ul`,sD,[(z(!0),B(R,null,I(c.value,(e,t)=>(z(),B(`li`,{key:t},j(e),1))),128))])])):G(``,!0),H(`div`,cD,[H(`ul`,lD,[(z(!0),B(R,null,I(s.value,e=>(z(),B(`li`,{key:e.path},[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:A(N(lh)(`w-full truncate px-3 py-1.5 text-left font-mono text-xs transition-colors`,e.path===l.value?`bg-accent text-accent-foreground`:`hover:bg-muted/60`)),onClick:t=>l.value=e.path},j(e.path),11,uD)]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(e.path),1)]),_:2},1024)]),_:2},1024)]))),128)),s.value.length===0?(z(),B(`li`,dD,` No files to write. `)):G(``,!0)]),u.value?(z(),B(`pre`,fD,j(u.value.contents),1)):(z(),B(`div`,pD,` Select a file to preview its contents. `))])],64)),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:a.value,onClick:d[0]||=e=>t.value=!1},{default:P(()=>[...d[4]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:i.value||a.value||s.value.length===0,onClick:f},{default:P(()=>[U(N(Hu),{class:`size-4`}),W(` `+j(a.value?`Writing…`:`Write ${s.value.length} file${s.value.length===1?``:`s`}`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),hD={class:`relative h-2 w-full overflow-hidden rounded-full bg-muted`},gD={key:0,class:`gf-progress-indeterminate absolute inset-y-0 w-1/3 rounded-full bg-primary`},_D=mh(F({__name:`Progress`,props:{modelValue:{},indeterminate:{type:Boolean}},setup(e){return(t,n)=>(z(),B(`div`,hD,[e.indeterminate?(z(),B(`div`,gD)):(z(),B(`div`,{key:1,class:`h-full bg-primary transition-all`,style:me({width:`${Math.min(100,Math.max(0,e.modelValue??0))}%`})},null,4))]))}}),[[`__scopeId`,`data-v-558dffb9`]]),vD={key:0,class:`rounded-md border bg-muted/40 px-3 py-2 text-xs text-muted-foreground`},yD={class:`font-medium text-foreground`},bD={key:0,class:`mt-0.5`},xD={key:1,class:`mt-1`},SD={class:`mt-1`},CD={key:1,class:`flex min-h-0 flex-col gap-1.5`},wD={class:`flex justify-between text-xs text-muted-foreground`},TD={key:0},ED={key:0,class:`mt-1 flex max-h-56 min-h-0 flex-col overflow-y-auto rounded-md border text-sm`},DD={key:2,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},OD={class:`flex items-center gap-1.5 font-medium`},kD={key:3,class:`flex min-h-0 flex-col gap-1.5`},AD={class:`flex items-center gap-1.5 text-sm font-medium text-amber-700 dark:text-amber-400`},jD={class:`min-h-0 flex-1 overflow-y-auto rounded-md border text-sm`},MD={class:`inline-flex items-center gap-1.5 font-mono text-xs`},ND={class:`text-muted-foreground`},PD=F({__name:`TranslateDialog`,props:Oa({state:{},filteredKeys:{},targetLocale:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:Oa([`changed`,`batch-submitted`],[`update:open`]),setup(e,{emit:t}){let n=e,r=Xa(e,`open`),i=t,a=M(!1),o=M(``),s=M([]),c=M(0),l=M(0),u=null,d=M([]),f=e=>d.value.find(t=>t.locale===e),p=q(()=>d.value.filter(e=>e.status===`active`).length),m={active:0,queued:1,done:2},h=q(()=>[...d.value].sort((e,t)=>m[e.status]-m[t.status])),g=e=>e===`active`?$u:e===`done`?Du:Nu,_=q(()=>{let e=n.state;return e?n.targetLocale?[n.targetLocale]:e.config.locales.filter(t=>t!==e.config.sourceLocale):[]}),v=q(()=>{let e=n.state;if(!e)return 0;let t=n.filteredKeys?new Set(n.filteredKeys):null,r=0;for(let[n,i]of Object.entries(e.keys))if(!(t&&!t.has(n))&&!i.skipTranslate)for(let t of _.value)XC(i,t,e.config.sourceLocale)&&r++;return r}),y=M(null),b=q(()=>y.value??v.value),x=M(!1),S=M(!1);async function C(){x.value=!1;try{let e=await qd();x.value=e.supported&&!e.pending}catch{}}async function w(){S.value=!0;try{let e=await Jd({keys:n.filteredKeys?.length?n.filteredKeys:void 0,locales:n.targetLocale?[n.targetLocale]:void 0});Q.success(`Batch of ${e.total.toLocaleString()} strings submitted — results apply when processing finishes (usually under an hour).`),i(`batch-submitted`),r.value=!1}catch(e){o.value=e.message}finally{S.value=!1}}let T=M(null),E=e=>e>=1e4?`${Math.round(e/1e3)}k`:e.toLocaleString(),D=e=>e>=.1?`$${e.toFixed(2)}`:`$${e.toFixed(4)}`,ee=q(()=>{let e=T.value?.estimatedCost;return e==null?`Batch (50% off)`:`Batch ≈ ${D(e/2)} (50% off)`});async function te(){T.value=null;try{T.value=await Kd({keys:n.filteredKeys?.length?n.filteredKeys:void 0,locales:n.targetLocale?[n.targetLocale]:void 0})}catch{}}Er(r,e=>{e&&(o.value=``,s.value=[],c.value=0,l.value=0,d.value=[],y.value=null,te(),C())},{immediate:!0});function ne(){u?.abort()}async function O(){u=new AbortController,a.value=!0,o.value=``,s.value=[],c.value=0,d.value=[],y.value=v.value,l.value=y.value;try{let e=u.signal,t=0,a=n.filteredKeys?.length?n.filteredKeys:void 0,o=n.targetLocale?[n.targetLocale]:void 0,p=o?[e,a,o]:a?[e,a]:[e];for await(let e of tf(...p))if(e.type===`start`)l.value=e.total,d.value=e.locales.map(e=>({locale:e.locale,total:e.total,done:0,status:`queued`}));else if(e.type===`locale-start`){let t=f(e.locale);t&&(t.status=`active`)}else if(e.type===`progress`){c.value=e.done,l.value=e.total;let t=f(e.locale);t&&(t.done=e.localeDone,t.status===`queued`&&(t.status=`active`)),i(`changed`)}else if(e.type===`locale-done`){let t=f(e.locale);t&&(t.status=`done`,t.done=t.total)}else e.type===`done`&&(t=e.written,s.value=e.errors,c.value=l.value,i(`changed`));e.aborted||(Q.success(`Translated ${t} string${t===1?``:`s`}`),s.value.length===0&&(r.value=!1))}catch(e){e.name!==`AbortError`&&(o.value=e.message)}finally{a.value=!1,u=null}}return(e,t)=>(z(),V(N(C_),{open:r.value,"onUpdate:open":t[1]||=e=>r.value=e},{default:P(()=>[U(N(NC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...t[2]||=[W(`Translate missing strings`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[b.value===0?(z(),B(R,{key:0},[W(`Nothing missing — all translations are filled.`)],64)):(z(),B(R,{key:1},[W(` Translate `+j(b.value.toLocaleString())+` missing string`+j(b.value===1?``:`s`)+` across `+j(_.value.length)+` language`+j(_.value.length===1?``:`s`)+` with Claude? This sends source strings + context to the AI provider. `,1)],64))]),_:1})]),_:1}),T.value&&T.value.requests>0&&b.value>0&&!a.value&&c.value===0?(z(),B(`div`,vD,[H(`p`,null,[W(` ≈ `+j(T.value.requests.toLocaleString())+` requests · `+j(T.value.batches.toLocaleString())+` batch`+j(T.value.batches===1?``:`es`)+` · ~`+j(E(T.value.inputTokens))+` in / ~`+j(E(T.value.outputTokens))+` out tokens`,1),T.value.estimatedCost===null?G(``,!0):(z(),B(R,{key:0},[t[3]||=W(` · `,-1),H(`span`,yD,`≈ `+j(D(T.value.estimatedCost)),1),t[4]||=W(` (±20%)`,-1)],64))]),T.value.pricing?G(``,!0):(z(),B(`p`,bD,` No pricing known for this model — set a price in Settings → AI for a dollar estimate. `)),T.value.perLocale.length>1?(z(),B(`details`,xD,[t[5]||=H(`summary`,{class:`cursor-pointer select-none`},`Per-language breakdown`,-1),H(`ul`,SD,[(z(!0),B(R,null,I(T.value.perLocale,e=>(z(),B(`li`,{key:e.locale,class:`flex justify-between font-mono tabular-nums`},[H(`span`,null,j(e.locale),1),H(`span`,null,j(e.requests.toLocaleString())+` req · ~`+j(E(e.inputTokens))+` / ~`+j(E(e.outputTokens)),1)]))),128))])])):G(``,!0)])):G(``,!0),a.value||c.value>0?(z(),B(`div`,CD,[H(`div`,wD,[H(`span`,null,j(c.value.toLocaleString())+` / `+j(l.value.toLocaleString())+` translated`,1),a.value&&d.value.length?(z(),B(`span`,TD,j(p.value)+` of `+j(d.value.length)+` language`+j(d.value.length===1?``:`s`)+` active`,1)):G(``,!0)]),U(N(_D),{"model-value":l.value>0?c.value/l.value*100:0},null,8,[`model-value`]),d.value.length?(z(),B(`ul`,ED,[(z(!0),B(R,null,I(h.value,e=>(z(),B(`li`,{key:e.locale,class:A([`flex items-center gap-2 border-b px-3 py-1.5 last:border-b-0`,e.status===`queued`&&`opacity-55`])},[(z(),V(ia(g(e.status)),{class:A([`size-3.5 shrink-0`,e.status===`active`?`animate-spin text-primary`:e.status===`done`?`text-emerald-600 dark:text-emerald-400`:`text-muted-foreground`])},null,8,[`class`])),U(zw,{code:e.locale,size:14,"show-name":``},null,8,[`code`]),H(`span`,{class:A([`ml-auto font-mono text-xs tabular-nums`,e.status===`active`?`text-foreground`:`text-muted-foreground`])},j(e.done.toLocaleString())+` / `+j(e.total.toLocaleString()),3)],2))),128))])):G(``,!0)])):G(``,!0),o.value?(z(),B(`div`,DD,[H(`p`,OD,[U(N(Td),{class:`size-4`}),t[6]||=W(` Translation failed `,-1)]),H(`p`,null,j(o.value),1)])):G(``,!0),s.value.length?(z(),B(`div`,kD,[H(`p`,AD,[U(N(Td),{class:`size-4`}),W(` `+j(s.value.length)+` string`+j(s.value.length===1?``:`s`)+` could not be translated `,1)]),H(`ul`,jD,[(z(!0),B(R,null,I(s.value,(e,t)=>(z(),B(`li`,{key:`${e.key}-${e.locale}-${t}`,class:`border-b px-3 py-1.5 last:border-b-0`},[H(`span`,MD,[W(j(e.key)+` @ `,1),U(zw,{code:e.locale,size:12},null,8,[`code`])]),H(`span`,ND,` — `+j(e.error),1)]))),128))])])):G(``,!0),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,onClick:t[0]||=e=>a.value?ne():r.value=!1},{default:P(()=>[W(j(a.value?`Cancel`:`Close`),1)]),_:1}),b.value>0&&x.value?(z(),V(N($),{key:0,variant:`outline`,disabled:a.value||S.value,onClick:w},{default:P(()=>[W(j(S.value?`Submitting…`:ee.value),1)]),_:1},8,[`disabled`])):G(``,!0),b.value>0?(z(),V(N($),{key:1,disabled:a.value,onClick:O},{default:P(()=>[U(N(vd),{class:`size-4`}),W(` `+j(a.value?`Translating…`:`Translate`),1)]),_:1},8,[`disabled`])):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),FD={key:0,class:`flex flex-col gap-1.5`},ID={class:`flex justify-between text-xs text-muted-foreground`},LD={key:1,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},RD={class:`flex items-center gap-1.5 font-medium`},zD={key:2,class:`flex min-h-0 flex-col gap-1.5`},BD={class:`flex items-center gap-1.5 text-sm font-medium text-amber-700 dark:text-amber-400`},VD={class:`min-h-0 flex-1 overflow-y-auto rounded-md border text-sm`},HD={class:`font-mono text-xs`},UD={class:`text-muted-foreground`},WD=F({__name:`ContextDialog`,props:Oa({state:{},keys:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:Oa([`changed`,`batch-submitted`],[`update:open`]),setup(e,{emit:t}){let n=e,r=Xa(e,`open`),i=t,a=M(!1),o=M(null),s=M(``),c=M([]),l=M(0),u=M(0),d=q(()=>{let e=n.state;return e?n.keys.filter(t=>e.keys[t]&&!e.keys[t].context).length:0}),f=M(!1),p=M(!1);async function m(){f.value=!1;try{let e=await Zd();f.value=e.supported&&!e.pending}catch{}}async function h(){p.value=!0;try{let e=await Qd({keys:n.keys});Q.success(`Context batch of ${e.total.toLocaleString()} keys submitted — results apply when processing finishes (usually under an hour).`),i(`batch-submitted`),r.value=!1}catch(e){s.value=e.message}finally{p.value=!1}}Er(r,e=>{e?(s.value=``,c.value=[],l.value=0,u.value=0,m()):o.value?.abort()});function g(){o.value?.abort()}async function _(){a.value=!0,s.value=``,c.value=[],l.value=0,u.value=0,o.value=new AbortController;let e=!1;try{for await(let t of nf({keys:n.keys},o.value.signal))t.type===`start`?u.value=t.total:t.type===`progress`?(l.value=t.done,u.value=t.total):t.type===`done`&&(e=!0,l.value=u.value,c.value=t.errors,i(`changed`),Q.success(`Built context for ${t.written} key${t.written===1?``:`s`}`),t.errors.length===0&&(r.value=!1))}catch(e){s.value=e.message}finally{!e&&o.value?.signal.aborted&&(i(`changed`),Q(`Build cancelled after ${l.value} of ${u.value} keys`)),o.value=null,a.value=!1}}return(e,t)=>(z(),V(N(C_),{open:r.value,"onUpdate:open":t[1]||=e=>r.value=e},{default:P(()=>[U(N(NC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...t[2]||=[W(`Build context`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[d.value===0?(z(),B(R,{key:0},[W(` All selected keys already have context — nothing to build. `)],64)):(z(),B(R,{key:1},[W(` Build AI context notes for `+j(d.value)+` selected key`+j(d.value===1?``:`s`)+` that currently have none? The AI will scan call-site code snippets to write a short translator hint for each key. `,1)],64))]),_:1})]),_:1}),a.value||l.value>0?(z(),B(`div`,FD,[H(`div`,ID,[H(`span`,null,j(l.value.toLocaleString())+` / `+j(u.value.toLocaleString())+` built`,1)]),U(N(_D),{"model-value":u.value>0?l.value/u.value*100:0},null,8,[`model-value`])])):G(``,!0),s.value?(z(),B(`div`,LD,[H(`p`,RD,[U(N(Td),{class:`size-4`}),t[3]||=W(` Build failed `,-1)]),H(`p`,null,j(s.value),1)])):G(``,!0),c.value.length?(z(),B(`div`,zD,[H(`p`,BD,[U(N(Td),{class:`size-4`}),W(` `+j(c.value.length)+` key`+j(c.value.length===1?``:`s`)+` could not be processed `,1)]),H(`ul`,VD,[(z(!0),B(R,null,I(c.value,(e,t)=>(z(),B(`li`,{key:`${e.key}-${t}`,class:`border-b px-3 py-1.5 last:border-b-0`},[H(`span`,HD,j(e.key),1),H(`span`,UD,` — `+j(e.error),1)]))),128))])])):G(``,!0),U(N(FC),null,{default:P(()=>[a.value?(z(),V(N($),{key:0,variant:`outline`,onClick:g},{default:P(()=>[...t[4]||=[W(`Cancel`,-1)]]),_:1})):(z(),V(N($),{key:1,variant:`outline`,onClick:t[0]||=e=>r.value=!1},{default:P(()=>[...t[5]||=[W(`Close`,-1)]]),_:1})),d.value>0&&f.value?(z(),V(N($),{key:2,variant:`outline`,disabled:a.value||p.value,onClick:h},{default:P(()=>[W(j(p.value?`Submitting…`:`Batch (50% off)`),1)]),_:1},8,[`disabled`])):G(``,!0),d.value>0?(z(),V(N($),{key:3,disabled:a.value||p.value,onClick:_},{default:P(()=>[U(N(vd),{class:`size-4`}),W(` `+j(a.value?`Building…`:`Build context`),1)]),_:1},8,[`disabled`])):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),GD={key:0,class:`flex items-center gap-3 rounded-md border bg-muted/40 px-3 py-2 text-sm`},KD={class:`flex min-w-0 flex-1 flex-col gap-1`},qD={class:`truncate`},JD=F({__name:`BatchBanner`,props:{kind:{default:`translate`}},emits:[`changed`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=M(null),o=M(!1),s;async function c(){try{a.value=(await(r.kind===`context`?Zd():qd())).pending}catch{}}Gi(()=>{c(),s=setInterval(()=>void c(),3e4)}),Yi(()=>clearInterval(s)),t({refresh:c});let l=q(()=>a.value?.status===`ended`);async function u(){o.value=!0;try{if(r.kind===`context`){let e=await $d(),t=[e.retried?`${e.retried} retried`:``,e.errors.length?`${e.errors.length} error(s)`:``].filter(Boolean).join(`, `);Q.success(`Context batch applied — wrote ${e.written} context(s)${t?` (${t})`:``}`)}else{let e=await Yd(),t=[e.retried?`${e.retried} retried`:``,e.staleSkipped?`${e.staleSkipped} stale skipped`:``,e.errors.length?`${e.errors.length} error(s)`:``].filter(Boolean).join(`, `);Q.success(`Batch applied — wrote ${e.written} translation(s)${t?` (${t})`:``}`)}i(`changed`),await c()}catch(e){Q.error(e.message)}finally{o.value=!1}}async function d(){if(window.confirm(`Cancel this batch? Finished entries are discarded.`))try{await(r.kind===`context`?ef():Xd()),await c()}catch(e){Q.error(e.message)}}return(e,t)=>a.value?(z(),B(`div`,GD,[(z(),V(ia(l.value?N(Du):N($u)),{class:A([`size-4 shrink-0`,l.value?`text-emerald-600 dark:text-emerald-400`:`animate-spin text-primary`])},null,8,[`class`])),H(`div`,KD,[H(`span`,qD,[W(j(r.kind===`context`?`Batch context build`:`Batch translation`)+` (`+j(a.value.total.toLocaleString())+` `+j(r.kind===`context`?`keys`:`strings`)+`) `,1),l.value?(z(),B(R,{key:0},[W(` — finished, ready to apply`)],64)):(z(),B(R,{key:1},[W(` — processing…`)],64))]),l.value?G(``,!0):(z(),V(N(_D),{key:0,indeterminate:``,class:`h-1`}))]),U(N($),{size:`sm`,disabled:!l.value||o.value,onClick:u},{default:P(()=>[W(j(o.value?`Applying…`:l.value?`Apply results`:`Waiting…`),1)]),_:1},8,[`disabled`]),U(N($),{size:`sm`,variant:`ghost`,disabled:o.value,onClick:d},{default:P(()=>[U(N(kd),{class:`size-4`})]),_:1},8,[`disabled`])])):G(``,!0)}}),YD={key:1,class:`text-muted-foreground`},XD={class:`flex items-center gap-2 border-b px-3`},ZD={class:`absolute left-2 flex size-3.5 items-center justify-center`},QD={class:`flex w-full min-w-0 items-center justify-between gap-2`},$D={class:`shrink-0 font-mono text-xs text-muted-foreground`},eO=F({__name:`LocaleCombobox`,props:Oa({locales:{},placeholder:{},class:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=Xa(e,`modelValue`),r=M(!1),i=M(``),a=q(()=>t.locales.map(e=>({code:e,resolved:aw(e)})).sort((e,t)=>e.resolved.name.localeCompare(t.resolved.name,`en`))),o=q(()=>{let e=i.value.trim().toLowerCase();return e?a.value.filter(({code:t,resolved:n})=>t.toLowerCase().includes(e)||n.bcp47.toLowerCase().includes(e)||n.name.toLowerCase().includes(e)||(n.endonym?.toLowerCase().includes(e)??!1)):a.value});function s(e){r.value=e,e&&(i.value=``)}return(a,c)=>(z(),V(N(ex),{modelValue:n.value,"onUpdate:modelValue":c[1]||=e=>n.value=e,open:r.value,"ignore-filter":``,"onUpdate:open":s},{default:P(()=>[U(N(tx),{"as-child":``},{default:P(()=>[U(N(px),{class:A(N(lh)(`flex h-9 items-center justify-between gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,t.class))},{default:P(()=>[n.value?(z(),V(zw,{key:0,code:n.value,"show-name":``,"show-code":!1,size:14},null,8,[`code`])):(z(),B(`span`,YD,j(e.placeholder??`Locale`),1)),U(N(Ou),{class:`size-4 shrink-0 opacity-50`})]),_:1},8,[`class`])]),_:1}),U(N(fx),null,{default:P(()=>[U(N(ax),{position:`popper`,align:`start`,"side-offset":4,class:`z-50 max-h-96 w-[260px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1`},{default:P(()=>[H(`div`,XD,[U(N(pd),{class:`size-4 shrink-0 opacity-50`}),U(N(lx),{modelValue:i.value,"onUpdate:modelValue":c[0]||=e=>i.value=e,"display-value":()=>``,placeholder:`Search locales…`,class:`h-9 w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground`},null,8,[`modelValue`])]),U(N(hx),{class:`max-h-72 p-1`},{default:P(()=>[U(N(ox),{class:`py-6 text-center text-sm text-muted-foreground`},{default:P(()=>[...c[2]||=[W(` No locales found `,-1)]]),_:1}),(z(!0),B(R,null,I(o.value,({code:e})=>(z(),V(N(ux),{key:e,value:e,class:`relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`},{default:P(()=>[H(`span`,ZD,[U(N(dx),null,{default:P(()=>[U(N(Du),{class:`size-4`})]),_:1})]),H(`span`,QD,[U(zw,{code:e,"show-name":``,"show-code":!1,size:14},null,8,[`code`]),H(`span`,$D,j(e.toUpperCase()),1)])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`open`]))}}),tO={class:`relative w-0 shrink-0`},nO=[`aria-valuenow`,`aria-valuemin`,`aria-valuemax`],rO=F({__name:`ResizeHandle`,props:{side:{},width:{},min:{},max:{}},emits:[`update:width`,`commit`,`reset`],setup(e,{emit:t}){let n=e,r=t,i=M(!1);function a(e){if(e.button!==0)return;let t=e.currentTarget,a=e.clientX,o=n.width,s=n.side===`right`?1:-1;i.value=!0,t.setPointerCapture(e.pointerId),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let c=e=>Math.min(n.max,Math.max(n.min,Math.round(e))),l=e=>{r(`update:width`,c(o+s*(e.clientX-a)))},u=()=>{t.removeEventListener(`pointermove`,l),t.removeEventListener(`pointerup`,u),t.removeEventListener(`pointercancel`,u),document.body.style.cursor=``,document.body.style.userSelect=``,i.value=!1,r(`commit`)};t.addEventListener(`pointermove`,l),t.addEventListener(`pointerup`,u),t.addEventListener(`pointercancel`,u)}return(t,n)=>(z(),B(`div`,tO,[H(`div`,{class:A(N(lh)(`absolute inset-y-0 -left-1 z-10 w-2 cursor-col-resize transition-colors hover:bg-primary/20`,i.value&&`bg-primary/30`)),role:`separator`,"aria-orientation":`vertical`,"aria-valuenow":e.width,"aria-valuemin":e.min,"aria-valuemax":e.max,"aria-label":`Resize panel (double-click to reset)`,onPointerdown:a,onDblclick:n[0]||=e=>r(`reset`)},null,42,nO)]))}});function iO(e,t,n,r){let i=`glotfile-${e}`,a=e=>Math.min(r,Math.max(n,Math.round(e))),o=M((()=>{let e=Number(localStorage.getItem(i));return Number.isFinite(e)&&e>0?a(e):t})()),s=()=>{localStorage.setItem(i,String(o.value)),uf({[e]:o.value}).catch(()=>{})};return{width:o,min:n,max:r,set:e=>{o.value=a(e)},commit:s,reset:()=>{o.value=t,s()},syncValue:e=>{typeof e==`number`&&Number.isFinite(e)&&(o.value=a(e),localStorage.setItem(i,String(o.value)))}}}var aO=iO(`keyColumnWidth`,272,180,560),oO=iO(`detailPanelWidth`,420,320,720);async function sO(e){try{let t=e??await lf();aO.syncValue(t.keyColumnWidth),oO.syncValue(t.detailPanelWidth)}catch{}}var cO={class:`flex min-h-0 flex-1 flex-col`},lO={class:`flex shrink-0 flex-wrap items-center gap-2 border-b px-4 py-2`},uO={class:`relative`},dO={key:0,class:`rounded bg-primary px-1.5 text-xs text-primary-foreground`},fO=[`aria-label`],pO={class:`ml-auto flex items-center gap-2`},mO={class:`mr-1 text-xs text-muted-foreground tabular-nums`},hO={key:2},gO={key:3},_O={key:4},vO={key:0,class:`flex shrink-0 flex-wrap items-center gap-1.5 border-b px-4 py-1.5`},yO=[`aria-label`,`onClick`],bO=[`aria-label`,`onClick`],xO=[`aria-label`,`onClick`],SO={class:`flex flex-col gap-2 px-4 py-2 empty:hidden`},CO={key:1,class:`sticky top-0 z-20 flex h-11 shrink-0 items-center gap-2 border-b bg-background pl-[18px] pr-4`},wO=[`aria-checked`,`aria-label`],TO={class:`text-sm font-medium tabular-nums`},EO={class:`text-sm text-muted-foreground`},DO={key:1,for:`select-all-checkbox`,class:`cursor-pointer select-none text-sm text-muted-foreground`},OO={class:`relative min-w-0 flex-1 overflow-hidden`},kO={key:0,class:`flex h-full items-center justify-center gap-2 p-8 text-sm text-muted-foreground`},AO={key:1,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},jO=[`data-index`],MO=`glotfile:enabledChecks`,NO=F({__name:`EditorView`,setup(e){let t=aO.width,n=oO.width,r=un(null),{filter:i,sort:a,view:o,locale:s}=wp(Np()),c=M(i),l=KC();function u(){try{let e=localStorage.getItem(MO);if(e){let t=JSON.parse(e);return pp.filter(e=>t.includes(e))}}catch{}return[...mp]}let d=M(u()),f=M(new Map),p=M(null),m=M(!1),h=M(0);async function g(){try{let e=await sf();m.value=e.indexed,p.value=e.indexed?new Set(e.used):null}catch{m.value=!1,p.value=null}h.value++}let _=M(!1),v=0;async function y(){if(d.value.length===0){f.value=new Map,_.value=!1;return}try{let e=await Mf(d.value);f.value=bp(e.issues),_.value=e.spellPending,e.spellPending&&v<6?(v++,setTimeout(y,800)):v=0}catch{f.value=new Map}}Er(d,e=>{localStorage.setItem(MO,JSON.stringify(e)),v=0,y()},{deep:!0});let b=M(a),x=M(o),S=M(s),C=null;Er([b,x,S,()=>({...c.value,text:void 0})],()=>{Pp(Tp({filter:c.value,sort:b.value,view:x.value,locale:S.value}))},{deep:!0}),Er(()=>c.value.text,()=>{C&&clearTimeout(C),C=setTimeout(()=>{Pp(Tp({filter:c.value,sort:b.value,view:x.value,locale:S.value}))},300)});let w=q(()=>c.value.states.length+c.value.issues.length+c.value.plurality.length+ +!!c.value.emptySource+ +!!c.value.aiContextUnreviewed+ +!!c.value.noUsages+ +!!c.value.skipTranslate),T=q(()=>{let e=0;for(let t of f.value.values())e+=t.length;return e});function E(e){c.value.states=c.value.states.filter(t=>t!==e)}function D(e){c.value.issues=c.value.issues.filter(t=>t!==e)}function ee(e){c.value.plurality=c.value.plurality.filter(t=>t!==e)}if(Eh.value){let e=Eh.value;if(c.value={text:``,states:[],issues:[],plurality:[],tag:``,needsAttention:!1,emptySource:!1,aiContextUnreviewed:!1,noUsages:!1,skipTranslate:!1,...e},e.issues?.length){let t=new Set([...d.value,...e.issues]);d.value=pp.filter(e=>t.has(e))}e.locale&&(x.value=`bilingual`,S.value=e.locale),Eh.value=null}let te=M(null),ne=M(null),O=M(null);Oh.value&&=(te.value=Oh.value,null);let re=M(!1),ie=M(!1),ae=M(!1),oe=M(!1),k=M(!1),se=M(null),ce=M(null),le=M(!0),ue=M(!1);async function de(){r.value=await jd(),y()}Th(de);let fe=setTimeout(()=>{le.value&&(ue.value=!0)},250);de().finally(()=>{le.value=!1,ue.value=!1,clearTimeout(fe)});let pe=q(()=>r.value?.config.sourceLocale??``),he=q(()=>r.value?.config.locales??[]),ge=q(()=>he.value.filter(e=>e!==pe.value));Er(ge,e=>{!S.value&&e.length>0&&(S.value=e[0])},{immediate:!0});let _e=q(()=>{if(x.value===`bilingual`)return S.value?[pe.value,S.value]:[pe.value];let e=he.value.filter(e=>e!==pe.value);return[pe.value,...e]}),ve=q(()=>{let e=r.value;if(!e)return[];let t=x.value===`bilingual`&&S.value?S.value:void 0;return fp(e,{...c.value,locale:t},f.value,p.value??void 0)}),ye=q(()=>{let e=r.value,t=ve.value;if(b.value===`key-desc`)return[...t].reverse();if(b.value===`created`){let n=t=>{let n=e?.keys[t]?.createdAt;return n?Date.parse(n):0};return[...t].sort((e,t)=>n(t)-n(e))}if(b.value===`updated`){let n=t=>{let n=Object.values(e?.keys[t]?.values??{}),r=0;for(let e of n){let t=e.updatedAt?Date.parse(e.updatedAt):0;t>r&&(r=t)}return r};return[...t].sort((e,t)=>n(t)-n(e))}return t}),be=q(()=>x.value===`bilingual`?S.value?[S.value]:[]:ge.value),xe=q(()=>x.value===`bilingual`?S.value||`—`:`all ${ge.value.length} targets`),Se=q(()=>l.keys()),Ce=q(()=>l.count.value),we=q(()=>l.allSelected(ye.value)),Te=q(()=>l.someSelected(ye.value)),Ee=q(()=>{let e=r.value;if(!e)return[];let t=new Set;for(let n of l.keys())for(let r of e.keys[n]?.tags??[])t.add(r);return[...t].sort()});function De(){l.allSelected(ye.value)?l.clear():l.selectAll(ye.value)}function Oe(e,t){t?l.toggleRange(e,ye.value):l.toggle(e)}Er(ye,e=>l.pruneTo(e));let ke=q(()=>r.value&&te.value?r.value.keys[te.value]??null:null),Ae=cp(q(()=>({count:ye.value.length,getScrollElement:()=>ce.value,estimateSize:()=>56,overscan:8,getItemKey:e=>ye.value[e]??e}))),je=q(()=>Ae.value.getVirtualItems()),Me=q(()=>Ae.value.getTotalSize());function Ne(e){te.value=e}let Pe=M(null);function Fe(){let e=Pe.value?.$el;e?.focus?.(),e?.select?.()}function Ie(e){let t=e.target,n=!!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable)),r=!!document.querySelector(`[role="listbox"],[role="menu"],[role="dialog"]`);if(e.key===`/`&&!n&&!r&&!e.metaKey&&!e.ctrlKey&&!e.altKey){e.preventDefault(),Fe();return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||n||r)return;let i=ye.value;if(i.length===0)return;e.preventDefault();let a=te.value?i.indexOf(te.value):-1,o=Math.max(0,Math.min(i.length-1,e.key===`ArrowDown`?a+1:a-1)),s=i[o];s&&(te.value=s,Ae.value.scrollToIndex(o,{align:`auto`}))}Gi(()=>window.addEventListener(`keydown`,Ie)),Yi(()=>{window.removeEventListener(`keydown`,Ie),C&&clearTimeout(C)}),Gi(async()=>{try{let e=await af();e.indexed&&!se.value&&!k.value&&(se.value=`${e.files.toLocaleString()} files · ${e.refs.toLocaleString()} refs`)}catch{}g()});async function Le(e,t){te.value===e&&(te.value=t),await de()}async function Re(e){await de(),te.value=e,c.value.text=`"${e}"`}async function ze(){k.value=!0,se.value=null;try{let e=await rf();se.value=`${e.files.toLocaleString()} files · ${e.refs.toLocaleString()} refs`,await g()}catch{se.value=`Scan failed`}finally{k.value=!1}}return(e,i)=>(z(),V(N(XS),{"delay-duration":400},{default:P(()=>[H(`div`,cO,[H(`div`,lO,[H(`div`,uO,[U(N(pd),{class:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`}),U(N(sC),{ref_key:`searchInput`,ref:Pe,modelValue:c.value.text,"onUpdate:modelValue":i[0]||=e=>c.value.text=e,placeholder:`Search keys, values, context…`,class:`h-8 w-64 pl-8 pr-8`,onKeydown:i[1]||=Xl(e=>c.value.text=``,[`esc`])},null,8,[`modelValue`]),c.value.text?(z(),B(`button`,{key:0,type:`button`,class:`absolute right-1.5 top-1/2 grid size-5 -translate-y-1/2 place-items-center rounded text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,"aria-label":`Clear search`,onClick:i[2]||=e=>c.value.text=``},[U(N(kd),{class:`size-3.5`})])):G(``,!0)]),U(N(Ux),null,{default:P(()=>[U(N(Yx),{"as-child":``},{default:P(()=>[U(N($),{variant:`outline`,size:`sm`,class:`h-8 gap-1.5`},{default:P(()=>[U(N(Qu),{class:`size-4 opacity-60`}),i[31]||=W(` Filter `,-1),w.value?(z(),B(`span`,dO,j(w.value),1)):G(``,!0)]),_:1})]),_:1}),U(N(mC),{align:`start`,class:`w-64`},{default:P(()=>[U(jC,{states:c.value.states,"onUpdate:states":i[3]||=e=>c.value.states=e,issues:c.value.issues,"onUpdate:issues":i[4]||=e=>c.value.issues=e,enabled:d.value,"onUpdate:enabled":i[5]||=e=>d.value=e,plurality:c.value.plurality,"onUpdate:plurality":i[6]||=e=>c.value.plurality=e,"empty-source":c.value.emptySource,"onUpdate:emptySource":i[7]||=e=>c.value.emptySource=e,"ai-context-unreviewed":c.value.aiContextUnreviewed,"onUpdate:aiContextUnreviewed":i[8]||=e=>c.value.aiContextUnreviewed=e,"no-usages":c.value.noUsages,"onUpdate:noUsages":i[9]||=e=>c.value.noUsages=e,"skip-translate":c.value.skipTranslate,"onUpdate:skipTranslate":i[10]||=e=>c.value.skipTranslate=e,"scan-indexed":m.value},null,8,[`states`,`issues`,`enabled`,`plurality`,`empty-source`,`ai-context-unreviewed`,`no-usages`,`skip-translate`,`scan-indexed`])]),_:1})]),_:1}),U(N($),{variant:c.value.needsAttention?`default`:`outline`,size:`sm`,class:`h-8 gap-1.5`,role:`switch`,"aria-checked":c.value.needsAttention,onClick:i[11]||=e=>c.value.needsAttention=!c.value.needsAttention},{default:P(()=>[U(N(Td),{class:A([`size-4`,c.value.needsAttention?``:`opacity-60`])},null,8,[`class`]),i[32]||=W(` Needs attention `,-1),T.value?(z(),B(`span`,{key:0,class:`ml-0.5 rounded-full bg-destructive-soft px-1.5 text-[11px] font-bold text-destructive tabular-nums`,"aria-label":`${T.value} issue${T.value===1?``:`s`}`},j(T.value.toLocaleString()),9,fO)):G(``,!0)]),_:1},8,[`variant`,`aria-checked`]),U(N(mS),{modelValue:b.value,"onUpdate:modelValue":i[12]||=e=>b.value=e},{default:P(()=>[U(N(cC),{class:`h-8 w-[160px]`},{default:P(()=>[U(N(FS),{placeholder:`Sort`})]),_:1}),U(N(lC),null,{default:P(()=>[U(N(dC),{value:`key-asc`},{default:P(()=>[...i[33]||=[W(`Key A→Z`,-1)]]),_:1}),U(N(dC),{value:`key-desc`},{default:P(()=>[...i[34]||=[W(`Key Z→A`,-1)]]),_:1}),U(N(dC),{value:`created`},{default:P(()=>[...i[35]||=[W(`Recently created`,-1)]]),_:1}),U(N(dC),{value:`updated`},{default:P(()=>[...i[36]||=[W(`Recently updated`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`]),U(N(US),{modelValue:x.value,"onUpdate:modelValue":i[13]||=e=>x.value=e},{default:P(()=>[U(N(fC),{class:`h-8`},{default:P(()=>[U(N(pC),{value:`bilingual`,class:`text-xs`},{default:P(()=>[...i[37]||=[W(`Bilingual`,-1)]]),_:1}),U(N(pC),{value:`multilingual`,class:`text-xs`},{default:P(()=>[...i[38]||=[W(`Multilingual`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`]),x.value===`bilingual`?(z(),V(eO,{key:0,modelValue:S.value,"onUpdate:modelValue":i[14]||=e=>S.value=e,locales:ge.value,class:`h-8 w-[170px]`},null,8,[`modelValue`,`locales`])):G(``,!0),H(`div`,pO,[H(`span`,mO,j(ye.value.length.toLocaleString())+` keys`,1),U(N($),{size:`sm`,variant:`outline`,onClick:i[15]||=e=>ie.value=!0},{default:P(()=>[U(N(Hu),{class:`size-4`}),i[39]||=W(` Export `,-1)]),_:1}),U(N($),{size:`sm`,variant:`outline`,disabled:k.value,onClick:ze},{default:P(()=>[k.value?(z(),V(N($u),{key:0,class:`size-4 animate-spin`})):(z(),V(N(dd),{key:1,class:`size-4`})),k.value?(z(),B(`span`,hO,`Scanning…`)):se.value?(z(),B(`span`,gO,j(se.value),1)):(z(),B(`span`,_O,`Scan`))]),_:1},8,[`disabled`]),U(N($),{size:`sm`,onClick:i[16]||=e=>re.value=!0},{default:P(()=>[U(N(od),{class:`size-4`}),i[40]||=W(` Add key `,-1)]),_:1})])]),c.value.states.length||c.value.issues.length||c.value.plurality.length||c.value.emptySource||c.value.aiContextUnreviewed||c.value.noUsages||c.value.skipTranslate?(z(),B(`div`,vO,[(z(!0),B(R,null,I(c.value.states,e=>(z(),V(N(hC),{key:`s-${e}`,variant:`secondary`,class:`gap-1`},{default:P(()=>[W(j(N(vp)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(vp)[e]} filter`,onClick:t=>E(e)},[U(N(kd),{class:`size-3`})],8,yO)]),_:2},1024))),128)),(z(!0),B(R,null,I(c.value.plurality,e=>(z(),V(N(hC),{key:`p-${e}`,variant:`secondary`,class:`gap-1`},{default:P(()=>[W(j(N(yp)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(yp)[e]} filter`,onClick:t=>ee(e)},[U(N(kd),{class:`size-3`})],8,bO)]),_:2},1024))),128)),c.value.emptySource?(z(),V(N(hC),{key:0,variant:`secondary`,class:`gap-1`},{default:P(()=>[i[41]||=W(` Empty source `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove Empty source filter`,onClick:i[17]||=e=>c.value.emptySource=!1},[U(N(kd),{class:`size-3`})])]),_:1})):G(``,!0),(z(!0),B(R,null,I(c.value.issues,e=>(z(),V(N(hC),{key:`i-${e}`,variant:`outline`,class:`gap-1`},{default:P(()=>[W(j(N(_p)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(_p)[e]} filter`,onClick:t=>D(e)},[U(N(kd),{class:`size-3`})],8,xO)]),_:2},1024))),128)),c.value.aiContextUnreviewed?(z(),V(N(hC),{key:1,variant:`secondary`,class:`gap-1`},{default:P(()=>[U(N(vd),{class:`size-3`}),i[42]||=W(` AI context (unreviewed) `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove AI context filter`,onClick:i[18]||=e=>c.value.aiContextUnreviewed=!1},[U(N(kd),{class:`size-3`})])]),_:1})):G(``,!0),c.value.noUsages?(z(),V(N(hC),{key:2,variant:`secondary`,class:`gap-1`},{default:P(()=>[i[43]||=W(` Unused `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove Unused filter`,onClick:i[19]||=e=>c.value.noUsages=!1},[U(N(kd),{class:`size-3`})])]),_:1})):G(``,!0),c.value.skipTranslate?(z(),V(N(hC),{key:3,variant:`secondary`,class:`gap-1`},{default:P(()=>[i[44]||=W(` Skip-translate `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove Skip-translate filter`,onClick:i[20]||=e=>c.value.skipTranslate=!1},[U(N(kd),{class:`size-3`})])]),_:1})):G(``,!0)])):G(``,!0),H(`div`,SO,[U(JD,{ref_key:`translateBanner`,ref:ne,onChanged:de},null,512),U(JD,{ref_key:`contextBanner`,ref:O,kind:`context`,onChanged:de},null,512)]),ye.value.length?(z(),B(`div`,CO,[H(`button`,{id:`select-all-checkbox`,type:`button`,role:`checkbox`,"aria-checked":we.value?`true`:Te.value?`mixed`:`false`,"data-testid":`select-all`,class:A([`flex size-4 items-center justify-center rounded border transition-colors`,we.value||Te.value?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`]),"aria-label":we.value?`Deselect all`:`Select all`,onClick:De},[we.value?(z(),V(N(Du),{key:0,class:`size-3`})):Te.value?(z(),V(N(td),{key:1,class:`size-3`})):G(``,!0)],10,wO),Ce.value?(z(),B(R,{key:0},[H(`span`,TO,j(Ce.value.toLocaleString())+` selected`,1),H(`span`,EO,`· `+j(xe.value),1)],64)):(z(),B(`label`,DO,`Select all`)),Ce.value?(z(),V(GC,{key:2,class:`ml-auto`,keys:Se.value,locales:be.value,"scope-label":xe.value,"tags-on-selection":Ee.value,onChanged:de,onClear:i[21]||=e=>N(l).clear(),onTranslate:i[22]||=e=>ae.value=!0,onBuildContext:i[23]||=e=>oe.value=!0},null,8,[`keys`,`locales`,`scope-label`,`tags-on-selection`])):G(``,!0)])):G(``,!0),H(`div`,{class:`flex min-h-0 flex-1 overflow-hidden`,style:me({"--key-col-width":`${N(t)}px`})},[H(`div`,OO,[H(`div`,{ref_key:`parent`,ref:ce,class:`h-full overflow-auto`},[ue.value?(z(),B(`div`,kO,[U(N($u),{class:`size-4 animate-spin`}),i[45]||=W(` Loading… `,-1)])):!le.value&&ye.value.length===0?(z(),B(`div`,AO,` No keys match the current filter. `)):(z(),B(`div`,{key:2,style:me({height:`${Me.value}px`,position:`relative`,width:`100%`})},[(z(!0),B(R,null,I(je.value,e=>(z(),B(`div`,{key:e.key,ref_for:!0,ref:e=>N(Ae).measureElement(e),"data-index":e.index,style:me({position:`absolute`,top:`${e.start}px`,left:`0`,width:`100%`})},[r.value&&ye.value[e.index]?(z(),V(yT,{key:0,"key-name":ye.value[e.index],entry:r.value.keys[ye.value[e.index]],"source-locale":pe.value,locales:_e.value,selected:te.value===ye.value[e.index],issues:f.value.get(ye.value[e.index])??[],checked:N(l).has(ye.value[e.index]),onSelect:t=>Ne(ye.value[e.index]),onChanged:de,onRenamed:t=>Le(ye.value[e.index],t),onFilterTag:i[24]||=e=>c.value.text=e,onToggleSelect:t=>Oe(ye.value[e.index],t.shift)},null,8,[`key-name`,`entry`,`source-locale`,`locales`,`selected`,`issues`,`checked`,`onSelect`,`onRenamed`,`onToggleSelect`])):G(``,!0)],12,jO))),128))],4))],512),ye.value.length?(z(),B(`div`,{key:0,class:`absolute inset-y-0`,style:me({left:`${N(t)}px`})},[U(rO,{side:`right`,class:`h-full`,width:N(t),min:N(aO).min,max:N(aO).max,"onUpdate:width":N(aO).set,onCommit:N(aO).commit,onReset:N(aO).reset},null,8,[`width`,`min`,`max`,`onUpdate:width`,`onCommit`,`onReset`])],4)):G(``,!0)]),U(rO,{side:`left`,class:`max-[1080px]:hidden`,width:N(n),min:N(oO).min,max:N(oO).max,"onUpdate:width":N(oO).set,onCommit:N(oO).commit,onReset:N(oO).reset},null,8,[`width`,`min`,`max`,`onUpdate:width`,`onCommit`,`onReset`]),U(qE,{"key-name":te.value,entry:ke.value,issues:te.value?f.value.get(te.value)??[]:[],locales:he.value,"source-locale":pe.value,"usage-revision":h.value,style:me({width:`${N(n)}px`}),onChanged:de},null,8,[`key-name`,`entry`,`issues`,`locales`,`source-locale`,`usage-revision`,`style`])],4),U(tD,{open:re.value,"onUpdate:open":i[25]||=e=>re.value=e,onCreated:Re},null,8,[`open`]),U(mD,{open:ie.value,"onUpdate:open":i[26]||=e=>ie.value=e,"export-locales":r.value?.config.exportLocales??[]},null,8,[`open`,`export-locales`]),U(PD,{open:ae.value,"onUpdate:open":i[27]||=e=>ae.value=e,state:r.value,"filtered-keys":Se.value,"target-locale":x.value===`bilingual`?S.value:void 0,onChanged:de,onBatchSubmitted:i[28]||=e=>ne.value?.refresh()},null,8,[`open`,`state`,`filtered-keys`,`target-locale`]),U(WD,{open:oe.value,"onUpdate:open":i[29]||=e=>oe.value=e,state:r.value,keys:Se.value,onChanged:de,onBatchSubmitted:i[30]||=e=>O.value?.refresh()},null,8,[`open`,`state`,`keys`])])]),_:1}))}}),PO={"empty-source":`Empty source`,"empty-translation":`Untranslated`,"placeholder-mismatch":`Placeholder mismatch`,"icu-mismatch":`ICU mismatch`,"glossary-violation":`Glossary`,"max-length":`Too long`,"identical-to-source":`Identical to source`,whitespace:`Whitespace`,spelling:`Spelling`,"output-stale":`Outputs out of date`},FO={"empty-translation":`untranslated`,"placeholder-mismatch":`placeholder`,"glossary-violation":`glossary`,"max-length":`length`,spelling:`spelling`};function IO(e){if(e.ruleId===`empty-translation`)return{text:e.key,states:[`missing`]};if(e.ruleId===`output-stale`)return{};let t=FO[e.ruleId],n=e.locale?{locale:e.locale}:{};return t?{...n,issues:[t]}:{...n,text:e.key}}function LO(e,t){let n=e.values[t];return n?e.plural?(n.forms?.other??``).trim()!==``:(n.value??``).trim()!==``:!1}function RO(e,t){if(!LO(e,t))return`missing`;let n=e.values[t].state;return n===`reviewed`?`reviewed`:n===`needs-review`?`needsReview`:`machine`}function zO(e,t){let n=e.values[t];return n?e.plural?n.forms?.other??``:n.value??``:``}function BO(e){let t=e.trim();return t===``?0:t.split(/\s+/).length}function VO(e,t){return`${e} ${t}${e===1?``:`s`}`}function HO(e,t){let{sourceLocale:n,locales:r}=e.config,i=r.filter(e=>e!==n),a=Object.keys(e.keys).filter(t=>!e.keys[t].skipTranslate),o=t.findings.filter(e=>e.locale===``),s=o.filter(e=>e.severity===`error`).length,c=new Map;for(let e of t.findings){if(e.locale===``)continue;let t=c.get(e.locale);t?t.push(e):c.set(e.locale,[e])}let l=i.map(t=>{let n={reviewed:0,needsReview:0,machine:0,missing:0},r=[];for(let i of a){let a=RO(e.keys[i],t);n[a]++,a===`needsReview`&&r.push(i)}let i=c.get(t)??[],o=[...new Set(i.filter(e=>e.ruleId===`empty-translation`).map(e=>e.key))],s=i.filter(e=>e.severity===`error`&&e.ruleId!==`empty-translation`),l=i.filter(e=>e.severity===`warn`),u=a.length,d=n.reviewed+n.needsReview+n.machine,f;f=o.length>0||s.length>0?`blocked`:r.length>0?`almost`:`ready`;let p=[];o.length&&p.push(`${o.length} missing`),s.length&&p.push(`${s.length} breaking`),r.length&&p.push(`${r.length} stale`);let m=[];return l.length&&m.push(VO(l.length,`warning`)),{locale:t,total:u,translated:d,pct:u?Math.round(d/u*100):0,counts:n,missingKeys:o,staleKeys:r,errors:s,warnings:l,breaking:s.length,warning:l.length,verdict:f,blockers:p,notes:m}}),u=a.length*i.length,d=0,f=0;for(let e of l)d+=e.translated,f+=e.counts.reviewed;let p=a.reduce((t,r)=>t+BO(zO(e.keys[r],n)),0),m={breaking:[],warning:[]};for(let e of t.findings)e.ruleId!==`empty-translation`&&m[e.severity===`error`?`breaking`:`warning`].push(e);return{totals:{keys:Object.keys(e.keys).length,locales:i.length,translatedPct:u?Math.round(d/u*1e3)/10:0,reviewedPct:u?Math.round(f/u*1e3)/10:0,sourceWords:p,openIssues:m.breaking.length+m.warning.length,ready:l.filter(e=>e.verdict===`ready`).length,almost:l.filter(e=>e.verdict===`almost`).length,blocked:l.filter(e=>e.verdict===`blocked`).length,breaking:m.breaking.length,missing:l.reduce((e,t)=>e+t.missingKeys.length,0),stale:l.reduce((e,t)=>e+t.staleKeys.length,0)},project:o,projectErrors:s,locales:l,risk:m,worklist:UO(l,m)}}function UO(e,t){let n=[];for(let e of t.breaking)n.push({id:`b:${e.locale}:${e.key}:${e.ruleId}`,priority:`breaking`,title:`Fix ${PO[e.ruleId].toLowerCase()}`,where:e.locale?`${e.locale.toUpperCase()} · ${e.key}`:e.key,detail:e.message,filter:e.ruleId===`output-stale`?void 0:IO(e),count:1});let r=new Map;for(let t of e)for(let e of t.missingKeys){let n=r.get(e);n?n.push(t.locale):r.set(e,[t.locale])}for(let[e,t]of r)n.push({id:`m:${e}`,priority:`missing`,title:`Translate ${VO(t.length,`missing string`)}`,where:e,detail:`Missing in ${t.map(e=>e.toUpperCase()).join(`, `)}`,filter:{text:e,states:[`missing`]},count:t.length});let i=[];for(let t of e)for(let e of t.staleKeys)i.push({locale:t.locale,key:e});i.length&&n.push({id:`s:all`,priority:`stale`,title:`Refresh ${VO(i.length,`stale translation`)}`,where:`source changed since translated`,detail:i.map(e=>`${e.locale.toUpperCase()} · ${e.key}`).join(` · `),filter:{states:[`needs-review`]},count:i.length});let a=new Map;for(let e of t.warning){let t=a.get(e.ruleId);t?t.push(e):a.set(e.ruleId,[e])}for(let[e,t]of a)n.push({id:`w:${e}`,priority:`warning`,title:`Review ${VO(t.length,`${PO[e].toLowerCase()} warning`)}`,where:[...new Set(t.map(e=>e.locale.toUpperCase()||e.key))].join(`, `),detail:t.map(e=>`${e.locale?e.locale.toUpperCase():`—`} · ${e.key}`).join(` · `),filter:IO(t[0]),count:t.length});return n}var WO={class:`min-h-0 flex-1 overflow-y-auto p-6`},GO={key:0,class:`mt-8 text-center text-sm text-muted-foreground`},KO={key:1,class:`mt-8 text-center text-sm text-muted-foreground`},qO={key:2,class:`mx-auto flex max-w-[1080px] flex-col gap-4`},JO={class:`flex flex-wrap divide-x rounded-xl border bg-card px-2 py-3 shadow-sm`},YO={class:`flex flex-col px-5`},XO={class:`text-lg font-semibold tabular-nums`},ZO={class:`flex flex-col px-5`},QO={class:`text-lg font-semibold tabular-nums`},$O={class:`flex flex-col px-5`},ek={class:`text-lg font-semibold tabular-nums`},tk={class:`flex flex-col px-5`},nk={class:`text-lg font-semibold tabular-nums`},rk=[`disabled`],ik={class:`flex flex-col px-5`},ak={class:`text-lg font-semibold tabular-nums`},ok={class:`flex flex-wrap items-start justify-between gap-6`},sk={class:`min-w-0`},ck={class:`mt-1.5 flex items-center gap-2.5 text-2xl font-semibold tracking-tight`},lk={class:`mt-1.5 text-sm text-muted-foreground`},uk={class:`text-emerald-600 dark:text-emerald-400`},dk={class:`text-amber-600 dark:text-amber-400`},fk={class:`text-red-600 dark:text-red-400`},pk={key:0,class:`mt-2 flex flex-col gap-1`},mk={class:`font-semibold`},hk={class:`font-mono text-muted-foreground`},gk={class:`text-muted-foreground`},_k={class:`flex gap-2`},vk={class:`text-[11px] uppercase tracking-wide text-muted-foreground`},yk={class:`mt-4 flex flex-wrap items-center gap-x-4 gap-y-2 border-t pt-3.5`},bk={class:`flex items-center gap-1 text-xs text-muted-foreground`},xk={class:`flex items-center gap-1 text-xs text-muted-foreground`},Sk={class:`flex items-center gap-1 text-xs text-muted-foreground`},Ck={class:`flex items-center gap-1 text-xs text-muted-foreground`},wk={class:`rounded-2xl border bg-card p-5 shadow-sm`},Tk={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},Ek={key:1,class:`grid grid-cols-[repeat(auto-fill,minmax(218px,1fr))] gap-3`},Dk=[`data-test`,`onClick`],Ok={class:`flex items-start justify-between gap-2`},kk={class:`flex min-w-0 flex-col`},Ak={class:`truncate font-mono text-xs font-semibold uppercase`},jk=[`title`],Mk={class:`text-2xl font-semibold tabular-nums leading-none`},Nk={class:`flex h-[7px] w-full overflow-hidden rounded-full bg-muted`},Pk={class:`flex min-h-[20px] items-center gap-1.5 text-xs text-muted-foreground`},Fk={class:`truncate`},Ik={class:`rounded-2xl border bg-card p-5 shadow-sm`},Lk={class:`mb-4`},Rk={class:`mt-0.5 text-sm text-muted-foreground`},zk={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},Bk={key:1,class:`flex flex-col gap-2`},Vk=[`disabled`,`onClick`],Hk={class:`flex min-w-0 flex-col gap-0.5`},Uk={class:`flex items-center gap-2 text-sm font-semibold`},Wk={class:`truncate font-mono text-xs text-muted-foreground`},Gk={key:0,class:`grid grid-cols-1 gap-4 lg:grid-cols-2`},Kk={class:`rounded-2xl border bg-card p-5 shadow-sm`},qk={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},Jk={key:1,class:`flex flex-col gap-2.5`},Yk=[`disabled`,`onClick`],Xk={class:`flex flex-1 flex-col`},Zk={class:`text-sm font-semibold`},Qk={class:`text-xs text-muted-foreground`},$k={key:0,class:`border-t`},eA={class:`flex items-center justify-between gap-2 border-b bg-muted/40 px-3.5 py-1.5`},tA={class:`text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`},nA=[`disabled`,`title`,`onClick`],rA=[`onClick`,`onKeydown`],iA=[`title`],aA={class:`truncate font-medium`},oA={class:`font-mono text-muted-foreground`},sA={class:`truncate text-muted-foreground`},cA={class:`flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100`},lA=[`disabled`,`title`,`onClick`],uA=[`disabled`,`onClick`],dA={key:2,class:`mt-3 overflow-hidden rounded-xl border`},fA={key:0,class:`border-t`},pA={class:`font-mono font-semibold uppercase`},mA={class:`truncate`},hA={class:`font-mono`},gA={class:`truncate`},_A=[`disabled`,`onClick`],vA={class:`rounded-2xl border bg-card p-5 shadow-sm`},yA=[`onClick`],bA={class:`flex min-w-0 items-center gap-2`},xA={class:`flex min-w-0 flex-col`},SA={class:`whitespace-nowrap font-mono uppercase leading-tight`},CA=[`title`],wA={class:`text-center font-mono tabular-nums`},TA={key:1,class:`rounded-2xl border bg-card p-5 shadow-sm`},EA={class:`flex items-center gap-3 rounded-xl bg-muted p-4`},DA=F({__name:`AnalyticsView`,setup(e){let t=M(null),n=M({findings:[],counts:{error:0,warn:0,suppressed:0},ok:!0}),r=M(!0),i=q(()=>({...n.value,findings:n.value.findings.filter(e=>!e.suppressed)})),a=q(()=>n.value.findings.filter(e=>e.suppressed)),o=q(()=>t.value?HO(t.value,i.value):null),s=q(()=>!!o.value&&(o.value.totals.keys===0||o.value.totals.locales===0)),c=q(()=>!!o.value&&o.value.totals.translatedPct===0);async function l(){let[e,r]=await Promise.all([jd(),Nf({includeSuppressed:!0}).catch(()=>null)]);t.value=e,r&&(n.value=r)}Th(l),Gi(async()=>{try{await l()}catch(e){Q.error(e.message)}finally{r.value=!1}});let u=M(!1),d=M(!1);function f(e){return e.ruleId===`spelling`?/"([^"]+)"/.exec(e.message)?.[1]:void 0}async function p(e,t){if(!d.value){d.value=!0;try{await t(),await l(),Q.success(e)}catch(e){Q.error(e.message)}finally{d.value=!1}}}let m=e=>p(`Dismissed until the source of ${e.key} changes`,()=>Pf(e.key,e.ruleId,e.locale)),h=e=>p(`Restored ${PO[e.ruleId].toLowerCase()} on ${e.key}`,()=>Ff(e.key,e.ruleId,e.locale)),g=(e,t)=>p(`Dismissed ${t} warning${t===1?``:`s`}`,()=>If({rules:[e]})),_=e=>{let t=f(e);t&&p(`Added "${t}" to the dictionary`,()=>_f(t))};function v(e){let t=new Map;for(let n of o.value.risk[e]){let e=t.get(n.ruleId);e?e.push(n):t.set(n.ruleId,[n])}return[...t.entries()].map(([e,t])=>({ruleId:e,findings:t}))}let y={ready:{label:`Ready`,icon:ju,text:`text-emerald-600 dark:text-emerald-400`,border:`border-l-emerald-500`,bar:`bg-emerald-500`,soft:`bg-emerald-500/10`},almost:{label:`Almost`,icon:Pu,text:`text-amber-600 dark:text-amber-400`,border:`border-l-amber-500`,bar:`bg-amber-500`,soft:`bg-amber-500/10`},blocked:{label:`Blocked`,icon:id,text:`text-red-600 dark:text-red-400`,border:`border-l-red-500`,bar:`bg-red-500`,soft:`bg-red-500/10`},none:{label:`Not started`,icon:gd,text:`text-muted-foreground`,border:`border-l-border`,bar:`bg-muted-foreground/40`,soft:`bg-muted`}},b={breaking:{label:`Breaking`,icon:id,text:`text-red-600 dark:text-red-400`,border:`border-l-red-500`,soft:`bg-red-500/10`},missing:{label:`Missing`,icon:Nu,text:`text-muted-foreground`,border:`border-l-muted-foreground/40`,soft:`bg-muted`},stale:{label:`Stale`,icon:Pu,text:`text-amber-600 dark:text-amber-400`,border:`border-l-amber-500`,soft:`bg-amber-500/10`},warning:{label:`Warning`,icon:Td,text:`text-amber-600 dark:text-amber-400`,border:`border-l-amber-500`,soft:`bg-amber-500/10`}},x=[{key:`breaking`,label:`Breaking`,blurb:"Lint errors — `glotfile check` fails on these. Ship-blocking.",text:`text-red-600 dark:text-red-400`,bar:`bg-red-500`},{key:`warning`,label:`Warning`,blurb:`Lint warnings — worth a look, won't block a release.`,text:`text-amber-600 dark:text-amber-400`,bar:`bg-amber-500`}],S=q(()=>{let e=o.value;return c.value?`none`:e.projectErrors>0?`blocked`:e.totals.ready===e.totals.locales&&e.totals.locales>0?`ready`:`blocked`}),C=q(()=>S.value===`none`?`Nothing to ship yet`:S.value===`ready`?`Ready to ship`:`Not ready to ship`);function w(e){return e.verdict===`ready`?e.notes.length?e.notes.join(` · `):`Clean — clears the gate`:e.blockers.join(` · `)}function T(e){return e.missingKeys.length?{locale:e.locale,states:[`missing`]}:e.errors.length?{locale:e.locale,...IO(e.errors[0])}:e.staleKeys.length?{locale:e.locale,states:[`needs-review`]}:{locale:e.locale}}function E(e){return aw(e).name}function D(e,t){return(t?e/t*100:0)+`%`}function ee(e){let t=[...new Set(o.value.risk[e].flatMap(e=>IO(e).issues??[]))];return t.length?{issues:t}:{needsAttention:!0}}return(e,t)=>(z(),B(`div`,WO,[r.value?(z(),B(`div`,GO,`Loading analytics…`)):s.value?(z(),B(`div`,KO,` No keys yet — add keys in the Editor to see analytics. `)):o.value?(z(),B(`div`,qO,[H(`section`,JO,[H(`div`,YO,[H(`span`,XO,j(o.value.totals.keys),1),t[2]||=H(`span`,{class:`text-xs text-muted-foreground`},`keys`,-1)]),H(`div`,ZO,[H(`span`,QO,j(o.value.totals.locales),1),t[3]||=H(`span`,{class:`text-xs text-muted-foreground`},`locales`,-1)]),H(`div`,$O,[H(`span`,ek,j(o.value.totals.translatedPct)+`%`,1),t[4]||=H(`span`,{class:`text-xs text-muted-foreground`},`translated`,-1)]),H(`div`,tk,[H(`span`,nk,j(o.value.totals.reviewedPct)+`%`,1),t[5]||=H(`span`,{class:`text-xs text-muted-foreground`},`reviewed`,-1)]),H(`button`,{type:`button`,class:`group flex flex-col px-5 text-left`,"data-test":`open-issues`,disabled:!o.value.totals.openIssues,onClick:t[0]||=e=>N(Dh)({needsAttention:!0})},[H(`span`,{class:A([`text-lg font-semibold tabular-nums`,o.value.totals.breaking?`text-red-600 dark:text-red-400`:``])},j(o.value.totals.openIssues),3),t[6]||=H(`span`,{class:`text-xs text-muted-foreground group-hover:text-foreground`},`open issues`,-1)],8,rk),H(`div`,ik,[H(`span`,ak,j(o.value.totals.sourceWords),1),t[7]||=H(`span`,{class:`text-xs text-muted-foreground`},`source words`,-1)])]),H(`section`,{class:A([`rounded-2xl border border-l-4 bg-card p-6 shadow-sm`,y[S.value].border])},[H(`div`,ok,[H(`div`,sk,[t[12]||=H(`div`,{class:`font-mono text-[11px] uppercase tracking-wider text-muted-foreground`},`Can I ship?`,-1),H(`h1`,ck,[(z(),V(ia(y[S.value].icon),{class:A([`size-6`,y[S.value].text])},null,8,[`class`])),W(` `+j(C.value),1)]),H(`p`,lk,[c.value?(z(),B(R,{key:0},[W(`Add translations to get started — run a sync to let the AI fill them in.`)],64)):(z(),B(R,{key:1},[H(`strong`,uk,j(o.value.totals.ready),1),W(` of `+j(o.value.totals.locales)+` locales ready`,1),o.value.totals.almost?(z(),B(R,{key:0},[t[8]||=W(` · `,-1),H(`strong`,dk,j(o.value.totals.almost),1),t[9]||=W(` need a refresh`,-1)],64)):G(``,!0),o.value.totals.blocked?(z(),B(R,{key:1},[t[10]||=W(` · `,-1),H(`strong`,fk,j(o.value.totals.blocked),1),t[11]||=W(` blocked`,-1)],64)):G(``,!0)],64))]),o.value.project.length?(z(),B(`ul`,pk,[(z(!0),B(R,null,I(o.value.project,e=>(z(),B(`li`,{key:`${e.ruleId}:${e.key}`,class:A([`flex items-center gap-1.5 text-xs`,e.severity===`error`?`text-red-600 dark:text-red-400`:`text-amber-600 dark:text-amber-400`])},[e.severity===`error`?(z(),V(N(id),{key:0,class:`size-3 shrink-0`})):(z(),V(N(Td),{key:1,class:`size-3 shrink-0`})),H(`span`,mk,j(N(PO)[e.ruleId]),1),H(`span`,hk,j(e.key),1),H(`span`,gk,j(e.message),1)],2))),128))])):G(``,!0)]),H(`div`,_k,[(z(!0),B(R,null,I([{n:o.value.totals.ready,label:`ready`,cls:`text-emerald-600 dark:text-emerald-400`},{n:o.value.totals.almost,label:`almost`,cls:`text-amber-600 dark:text-amber-400`},{n:o.value.totals.blocked,label:`blocked`,cls:`text-red-600 dark:text-red-400`}],e=>(z(),B(`div`,{key:e.label,class:`flex min-w-[66px] flex-col items-center rounded-xl border px-4 py-2`},[H(`span`,{class:A([`text-2xl font-semibold tabular-nums`,e.n?e.cls:`text-muted-foreground/50`])},j(e.n),3),H(`span`,vk,j(e.label),1)]))),128))])]),H(`div`,yk,[t[17]||=H(`span`,{class:`font-mono text-[10px] uppercase tracking-wider text-muted-foreground`},`Release gate`,-1),H(`span`,bk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[13]||=W(` 100% translated`,-1)]),H(`span`,xk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[14]||=W(` 0 lint errors`,-1)]),H(`span`,Sk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[15]||=W(` outputs exported`,-1)]),H(`span`,Ck,[U(N(Du),{class:`size-3 text-emerald-500`}),t[16]||=W(` nothing stale`,-1)]),t[18]||=H(`span`,{class:`ml-auto text-[11px] italic text-muted-foreground`},[W(`same rules as `),H(`code`,{class:`font-mono not-italic`},`glotfile check`),W(` · skip via `),H(`code`,{class:`font-mono not-italic`},`config.lint.rules`)],-1)])],2),H(`section`,wk,[t[21]||=H(`header`,{class:`mb-4`},[H(`h2`,{class:`text-base font-semibold`},`Release readiness`),H(`p`,{class:`mt-0.5 text-sm text-muted-foreground`},`Per-locale status against the release gate. Click any locale to drill in.`)],-1),c.value?(z(),B(`div`,Tk,[U(N(Wu),{class:`size-5 text-muted-foreground`}),t[19]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`No locale is ready yet.`),H(`span`,{class:`text-sm text-muted-foreground`},`Translate your strings, then locales appear here as they clear the gate.`)],-1)])):(z(),B(`div`,Ek,[(z(!0),B(R,null,I(o.value.locales,e=>(z(),B(`button`,{key:e.locale,type:`button`,"data-test":`rcard-${e.locale}`,class:A([`flex flex-col gap-2 rounded-xl border border-l-[3px] p-3.5 text-left transition hover:-translate-y-0.5 hover:bg-muted/50`,y[e.verdict].border]),onClick:t=>N(Dh)(T(e))},[H(`div`,Ok,[H(`span`,kk,[H(`span`,Ak,j(e.locale),1),H(`span`,{class:`truncate text-[11px] text-muted-foreground`,title:E(e.locale)},j(E(e.locale)),9,jk)]),H(`span`,{class:A([`flex items-center gap-1 text-[11px] font-semibold`,y[e.verdict].text])},[(z(),V(ia(y[e.verdict].icon),{class:`size-3`})),W(j(y[e.verdict].label),1)],2)]),H(`div`,Mk,[W(j(e.pct),1),t[20]||=H(`span`,{class:`ml-0.5 text-xs text-muted-foreground`},`%`,-1)]),H(`div`,Nk,[H(`span`,{class:`h-full bg-emerald-500`,style:me({width:D(e.counts.reviewed,e.total)})},null,4),H(`span`,{class:`h-full bg-amber-500`,style:me({width:D(e.counts.needsReview,e.total)})},null,4),H(`span`,{class:`h-full bg-sky-500`,style:me({width:D(e.counts.machine,e.total)})},null,4)]),H(`div`,Pk,[e.verdict===`ready`?G(``,!0):(z(),V(ia(y[e.verdict].icon),{key:0,class:A([`size-3 shrink-0`,y[e.verdict].text])},null,8,[`class`])),H(`span`,Fk,j(w(e)),1)])],10,Dk))),128))]))]),H(`section`,Ik,[H(`header`,Lk,[t[22]||=H(`h2`,{class:`text-base font-semibold`},`Needs attention`,-1),H(`p`,Rk,j(c.value?`Your prioritized worklist will fill in as the AI translates.`:`Prioritized — fix the top item first. Each opens the matching strings.`),1)]),o.value.worklist.length?(z(),B(`ol`,Bk,[(z(!0),B(R,null,I(o.value.worklist,(e,t)=>(z(),B(`li`,{key:e.id},[H(`button`,{type:`button`,class:A([`grid w-full grid-cols-[30px_1fr_auto_16px] items-center gap-3 rounded-xl border border-l-[3px] px-3.5 py-3 text-left transition enabled:hover:bg-muted/50`,[b[e.priority].border,t===0?b[e.priority].soft:``]]),disabled:!e.filter,onClick:t=>e.filter&&N(Dh)(e.filter)},[H(`span`,{class:A([`flex size-[30px] items-center justify-center rounded-lg`,[b[e.priority].soft,b[e.priority].text]])},[(z(),V(ia(b[e.priority].icon),{class:`size-4`}))],2),H(`span`,Hk,[H(`span`,Uk,[W(j(e.title)+` `,1),t===0?(z(),B(`span`,{key:0,class:A([`rounded-full px-2 py-0.5 font-mono text-[9.5px] font-semibold uppercase tracking-wide text-white`,b[e.priority].text.includes(`red`)?`bg-red-500`:b[e.priority].text.includes(`amber`)?`bg-amber-500`:`bg-muted-foreground`])},`Start here`,2)):G(``,!0)]),H(`span`,Wk,j(e.where),1)]),H(`span`,{class:A([`rounded-full px-2.5 py-1 text-[11px] font-semibold`,[b[e.priority].soft,b[e.priority].text]])},j(b[e.priority].label),3),U(N(ku),{class:`size-4 text-muted-foreground`})],10,Vk)]))),128))])):(z(),B(`div`,zk,[U(N(ju),{class:`size-5 text-emerald-500`}),t[23]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`Nothing needs attention.`),H(`span`,{class:`text-sm text-muted-foreground`},`Every translated string clears its checks and is up to date.`)],-1)]))]),c.value?(z(),B(`section`,TA,[t[32]||=H(`h2`,{class:`mb-4 text-base font-semibold`},`Quality`,-1),H(`div`,EA,[U(N(Mu),{class:`size-5 text-muted-foreground`}),t[31]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`No checks run yet.`),H(`span`,{class:`text-sm text-muted-foreground`},`Quality checks appear once strings are translated.`)],-1)])])):(z(),B(`div`,Gk,[H(`section`,Kk,[t[29]||=H(`header`,{class:`mb-4`},[H(`h2`,{class:`text-base font-semibold`},`Quality`),H(`p`,{class:`mt-0.5 text-sm text-muted-foreground`},`Grouped by risk — a broken placeholder is not a typo.`)],-1),o.value.totals.openIssues?(z(),B(`div`,Jk,[(z(),B(R,null,I(x,e=>H(`div`,{key:e.key,class:`overflow-hidden rounded-xl border`},[H(`button`,{type:`button`,class:`flex w-full items-center gap-3 px-3.5 py-3 text-left enabled:hover:bg-muted/50`,disabled:!o.value.risk[e.key].length,onClick:t=>N(Dh)(ee(e.key))},[H(`span`,{class:A([`w-1 self-stretch rounded-full`,e.bar])},null,2),H(`span`,{class:A([`min-w-[22px] text-xl font-semibold tabular-nums`,e.text])},j(o.value.risk[e.key].length),3),H(`span`,Xk,[H(`span`,Zk,j(e.label),1),H(`span`,Qk,j(e.blurb),1)]),o.value.risk[e.key].length?(z(),V(N(ku),{key:0,class:`size-4 text-muted-foreground`})):G(``,!0)],8,Yk),o.value.risk[e.key].length?(z(),B(`div`,$k,[(z(!0),B(R,null,I(v(e.key),n=>(z(),B(R,{key:n.ruleId},[H(`div`,eA,[H(`span`,tA,j(N(PO)[n.ruleId])+` · `+j(n.findings.length),1),e.key===`warning`?(z(),B(`button`,{key:0,type:`button`,class:`flex items-center gap-1 rounded px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,disabled:d.value,title:`Hide all ${n.findings.length} until each key's source changes`,onClick:e=>g(n.ruleId,n.findings.length)},[U(N(Su),{class:`size-3`}),t[25]||=W(` Dismiss all `,-1)],8,nA)):G(``,!0)]),(z(!0),B(R,null,I(n.findings,(e,n)=>(z(),B(`div`,{key:n,role:`button`,tabindex:`0`,class:`group grid w-full cursor-pointer grid-cols-[42px_minmax(90px,1fr)_1.4fr_auto] items-center gap-2.5 border-b px-3.5 py-2.5 text-left text-xs last:border-b-0 hover:bg-muted/50`,onClick:t=>N(Dh)(N(IO)(e)),onKeydown:Xl(t=>N(Dh)(N(IO)(e)),[`enter`])},[H(`span`,{class:`font-mono font-semibold uppercase text-muted-foreground`,title:e.locale?E(e.locale):`project-wide`},j(e.locale||`—`),9,iA),H(`span`,aA,[H(`span`,oA,j(e.key),1)]),H(`span`,sA,j(e.message),1),H(`span`,cA,[f(e)?(z(),B(`button`,{key:0,type:`button`,class:`flex items-center gap-1 rounded border bg-background px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,disabled:d.value,title:`Never flag "${f(e)}" again`,onClick:Jl(t=>_(e),[`stop`])},[U(N(wu),{class:`size-3`}),t[26]||=W(` Add word `,-1)],8,lA)):G(``,!0),e.severity===`warn`?(z(),B(`button`,{key:1,type:`button`,class:`flex items-center gap-1 rounded border bg-background px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,disabled:d.value,title:`Hide until this key's source changes`,onClick:Jl(t=>m(e),[`stop`])},[U(N(Su),{class:`size-3`}),t[27]||=W(` Dismiss `,-1)],8,uA)):G(``,!0)])],40,rA))),128))],64))),128))])):G(``,!0)])),64))])):(z(),B(`div`,qk,[U(N(ju),{class:`size-5 text-emerald-500`}),t[24]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`No issues found.`),H(`span`,{class:`text-sm text-muted-foreground`},`All translated strings pass their checks.`)],-1)])),a.value.length?(z(),B(`div`,dA,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3.5 py-2.5 text-left text-xs text-muted-foreground hover:bg-muted/50`,onClick:t[1]||=e=>u.value=!u.value},[(z(),V(ia(u.value?N(Ou):N(ku)),{class:`size-3.5`})),U(N(Su),{class:`size-3.5`}),W(` Suppressed (`+j(a.value.length)+`) — hidden until each key's source changes `,1)]),u.value?(z(),B(`div`,fA,[(z(!0),B(R,null,I(a.value,(e,n)=>(z(),B(`div`,{key:n,class:`grid w-full grid-cols-[42px_minmax(90px,1fr)_1.4fr_auto] items-center gap-2.5 border-b px-3.5 py-2.5 text-left text-xs text-muted-foreground last:border-b-0`},[H(`span`,pA,j(e.locale||`—`),1),H(`span`,mA,[W(j(N(PO)[e.ruleId])+` · `,1),H(`span`,hA,j(e.key),1)]),H(`span`,gA,j(e.message),1),H(`button`,{type:`button`,class:`flex items-center gap-1 rounded border bg-background px-1.5 py-0.5 text-[11px] transition-colors hover:bg-accent hover:text-foreground`,disabled:d.value,onClick:t=>h(e)},[U(N(cd),{class:`size-3`}),t[28]||=W(` Restore `,-1)],8,_A)]))),128))])):G(``,!0)])):G(``,!0)]),H(`section`,vA,[t[30]||=_s(`<header class="mb-4"><h2 class="text-base font-semibold">By locale</h2><p class="mt-0.5 text-sm text-muted-foreground">Full breakdown.</p></header><div class="grid grid-cols-[minmax(96px,1.4fr)_52px_64px_50px_72px_72px_16px] gap-2 border-b pb-2 font-mono text-[11px] uppercase tracking-wide text-muted-foreground"><span>Locale</span><span class="text-center">Done</span><span class="text-center">Missing</span><span class="text-center">Stale</span><span class="text-center">Breaking</span><span class="text-center">Warnings</span><span></span></div>`,2),(z(!0),B(R,null,I(o.value.locales,e=>(z(),B(`button`,{key:e.locale,type:`button`,class:`grid w-full grid-cols-[minmax(96px,1.4fr)_52px_64px_50px_72px_72px_16px] items-center gap-2 border-b py-2.5 text-left text-sm last:border-b-0 hover:bg-muted/50`,onClick:t=>N(Dh)(T(e))},[H(`span`,bA,[H(`span`,{class:A([`size-2 shrink-0 rounded-full`,y[e.verdict].bar])},null,2),H(`span`,xA,[H(`span`,SA,j(e.locale),1),H(`span`,{class:`truncate text-xs leading-tight text-muted-foreground`,title:E(e.locale)},j(E(e.locale)),9,CA)])]),H(`span`,wA,j(e.pct)+`%`,1),H(`span`,{class:A([`text-center font-mono tabular-nums`,e.missingKeys.length?``:`text-muted-foreground`])},j(e.missingKeys.length||`—`),3),H(`span`,{class:A([`text-center font-mono tabular-nums`,e.staleKeys.length?`text-amber-600 dark:text-amber-400`:`text-muted-foreground`])},j(e.staleKeys.length||`—`),3),H(`span`,{class:A([`text-center font-mono tabular-nums`,e.breaking?`text-red-600 dark:text-red-400`:`text-muted-foreground`])},j(e.breaking||`—`),3),H(`span`,{class:A([`text-center font-mono tabular-nums`,e.warning?`text-amber-600 dark:text-amber-400`:`text-muted-foreground`])},j(e.warning||`—`),3),U(N(ku),{class:`size-3.5 text-muted-foreground`})],8,yA))),128))])]))])):G(``,!0)]))}});function OA(e,t){let n=t.trim().toLowerCase();return n===``?e:e.filter(e=>e.term.toLowerCase().includes(n)||(e.notes??``).toLowerCase().includes(n)?!0:Object.entries(e.translations??{}).some(([e,t])=>e.toLowerCase().includes(n)||t.toLowerCase().includes(n)))}var kA={class:`grid gap-4`},AA={class:`grid gap-1.5`},jA={key:0,class:`text-xs text-muted-foreground`},MA={class:`flex items-center justify-between`},NA={class:`flex items-center justify-between`},PA={class:`grid gap-1.5`},FA={key:0,class:`grid gap-2 border-t pt-3`},IA={key:1,class:`text-sm text-destructive`},LA=F({__name:`GlossaryEntryDialog`,props:Oa({entry:{},targetLocales:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:Oa([`saved`],[`update:open`]),setup(e,{emit:t}){let n=e,r=Xa(e,`open`),i=t,a=Yt({term:``,doNotTranslate:!1,caseSensitive:!1,notes:``,translations:{}}),o=M(!1),s=M(``),c=M(!1);Er(r,e=>{if(!e)return;let t=n.entry;c.value=t!==null,a.term=t?.term??``,a.doNotTranslate=t?.doNotTranslate??!1,a.caseSensitive=t?.caseSensitive??!1,a.notes=t?.notes??``,a.translations={};for(let e of n.targetLocales)a.translations[e]=t?.translations?.[e]??``;s.value=``},{immediate:!0});async function l(){let e=a.term.trim();if(!e){s.value=`Term is required.`;return}let t={};for(let[e,n]of Object.entries(a.translations)){let r=n.trim();r&&(t[e]=r)}let n={term:e};a.doNotTranslate&&(n.doNotTranslate=!0),a.caseSensitive&&(n.caseSensitive=!0),a.notes.trim()&&(n.notes=a.notes.trim()),Object.keys(t).length>0&&(n.translations=t),o.value=!0,s.value=``;try{await yf(n),Q.success(c.value?`Updated ${e}`:`Added ${e}`),r.value=!1,i(`saved`)}catch(e){s.value=e.message}finally{o.value=!1}}return(t,n)=>(z(),V(N(C_),{open:r.value,"onUpdate:open":n[5]||=e=>r.value=e},{default:P(()=>[U(N(NC),{class:`max-h-[85vh] max-w-lg overflow-y-auto`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[W(j(c.value?`Edit term`:`Add term`),1)]),_:1}),U(N(LC),null,{default:P(()=>[...n[6]||=[W(` Guide AI translations with do-not-translate terms and forced translations. `,-1)]]),_:1})]),_:1}),H(`div`,kA,[H(`div`,AA,[U(N(MC),{for:`glossary-term`},{default:P(()=>[...n[7]||=[W(`Term`,-1)]]),_:1}),U(N(sC),{id:`glossary-term`,modelValue:a.term,"onUpdate:modelValue":n[0]||=e=>a.term=e,class:`font-mono`,placeholder:`Sign in`,disabled:c.value,onKeydown:Xl(Jl(l,[`prevent`]),[`enter`])},null,8,[`modelValue`,`disabled`,`onKeydown`]),c.value?(z(),B(`p`,jA,` The term is the entry's identity and can't be changed. `)):G(``,!0)]),H(`div`,MA,[H(`div`,null,[U(N(MC),{for:`glossary-dnt`},{default:P(()=>[...n[8]||=[W(`Do not translate`,-1)]]),_:1}),n[9]||=H(`p`,{class:`text-xs text-muted-foreground`},`Keep this term verbatim in every language.`,-1)]),U(N(_C),{id:`glossary-dnt`,modelValue:a.doNotTranslate,"onUpdate:modelValue":n[1]||=e=>a.doNotTranslate=e},null,8,[`modelValue`])]),H(`div`,NA,[H(`div`,null,[U(N(MC),{for:`glossary-cs`},{default:P(()=>[...n[10]||=[W(`Case sensitive`,-1)]]),_:1}),n[11]||=H(`p`,{class:`text-xs text-muted-foreground`},`Only match the exact casing.`,-1)]),U(N(_C),{id:`glossary-cs`,modelValue:a.caseSensitive,"onUpdate:modelValue":n[2]||=e=>a.caseSensitive=e},null,8,[`modelValue`])]),H(`div`,PA,[U(N(MC),{for:`glossary-notes`},{default:P(()=>[...n[12]||=[W(`Notes`,-1)]]),_:1}),U(N(fw),{id:`glossary-notes`,modelValue:a.notes,"onUpdate:modelValue":n[3]||=e=>a.notes=e,rows:`5`,class:`min-h-24 resize-y`,placeholder:`Optional guidance for translators.`},null,8,[`modelValue`])]),e.targetLocales.length>0?(z(),B(`div`,FA,[n[13]||=H(`p`,{class:`text-sm font-medium`},`Forced translations`,-1),(z(!0),B(R,null,I(e.targetLocales,e=>(z(),B(`div`,{key:e,class:`grid gap-1.5`},[U(N(MC),{for:`glossary-tr-${e}`,class:`text-xs text-muted-foreground`},{default:P(()=>[U(zw,{code:e,"show-name":``,"show-code":!1,size:12},null,8,[`code`])]),_:2},1032,[`for`]),U(N(sC),{id:`glossary-tr-${e}`,modelValue:a.translations[e],"onUpdate:modelValue":t=>a.translations[e]=t,placeholder:`Forced translation for ${e}`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`placeholder`])]))),128))])):G(``,!0),s.value?(z(),B(`p`,IA,j(s.value),1)):G(``,!0)]),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:o.value,onClick:n[4]||=e=>r.value=!1},{default:P(()=>[...n[14]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:o.value,onClick:l},{default:P(()=>[W(j(c.value?`Save`:`Add term`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),RA={class:`min-h-0 flex-1 overflow-y-auto`},zA={key:0,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},BA={key:1,class:`mx-auto flex max-w-3xl flex-col gap-4 p-6`},VA={class:`flex items-center justify-between`},HA={class:`relative`},UA={key:0,class:`rounded-lg border border-dashed p-10 text-center text-sm text-muted-foreground`},WA={key:1,class:`rounded-lg border border-dashed p-10 text-center text-sm text-muted-foreground`},GA={key:2,class:`flex flex-col gap-2`},KA={class:`min-w-0 flex-1`},qA={class:`flex flex-wrap items-center gap-2`},JA={class:`font-mono text-sm font-medium`},YA={key:0,class:`mt-1 text-sm text-muted-foreground`},XA={key:1,class:`mt-2 flex flex-wrap gap-1.5`},ZA={class:`flex shrink-0 items-center gap-1`},QA={class:`font-mono`},$A=F({__name:`GlossaryView`,setup(e){let t=M([]),n=M(``),r=M([]),i=M(!1),a=M(!1),o=M(null),s=M(null),c=M(!1),l=M(``),u=q(()=>OA(t.value,l.value)),d=q(()=>r.value.filter(e=>e!==n.value));async function f(){let[e,a]=await Promise.all([vf(),jd()]);t.value=e,n.value=a.config.sourceLocale,r.value=a.config.locales,i.value=!0}f(),Th(f);function p(){o.value=null,a.value=!0}function m(e){o.value=e,a.value=!0}function h(e){return Object.entries(e.translations??{}).map(([e,t])=>`${e}: ${t}`)}async function g(){let e=s.value;if(e){c.value=!0;try{await bf(e.term),Q.success(`Deleted ${e.term}`),s.value=null,await f()}catch(e){Q.error(`Delete failed: ${e.message}`)}finally{c.value=!1}}}return(e,n)=>(z(),B(`div`,RA,[i.value?(z(),B(`div`,BA,[H(`div`,VA,[n[7]||=H(`div`,null,[H(`h2`,{class:`text-base font-semibold`},`Glossary`),H(`p`,{class:`text-sm text-muted-foreground`},`Do-not-translate terms and forced translations.`)],-1),U(N($),{onClick:p},{default:P(()=>[U(N(od),{class:`size-4`}),n[6]||=W(` Add term `,-1)]),_:1})]),H(`div`,HA,[U(N(pd),{class:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`}),U(N(sC),{modelValue:l.value,"onUpdate:modelValue":n[0]||=e=>l.value=e,placeholder:`Search terms, notes, translations…`,class:`h-8 w-full pl-8 pr-8`,onKeydown:n[1]||=Xl(e=>l.value=``,[`esc`])},null,8,[`modelValue`]),l.value?(z(),B(`button`,{key:0,class:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,"aria-label":`Clear search`,onClick:n[2]||=e=>l.value=``},[U(N(kd),{class:`size-4`})])):G(``,!0)]),t.value.length===0?(z(),B(`div`,UA,` No glossary terms yet — add do-not-translate terms and forced translations to guide AI. `)):u.value.length===0?(z(),B(`div`,WA,` No terms match your search. `)):(z(),B(`ul`,GA,[(z(!0),B(R,null,I(u.value,e=>(z(),B(`li`,{key:e.term,class:`flex items-start gap-3 rounded-lg border bg-card p-3 text-card-foreground shadow-sm`},[H(`div`,KA,[H(`div`,qA,[H(`span`,JA,j(e.term),1),e.doNotTranslate?(z(),V(N(hC),{key:0,variant:`secondary`},{default:P(()=>[...n[8]||=[W(`Do-not-translate`,-1)]]),_:1})):G(``,!0),e.caseSensitive?(z(),V(N(hC),{key:1,variant:`outline`},{default:P(()=>[...n[9]||=[W(`Case-sensitive`,-1)]]),_:1})):G(``,!0)]),e.notes?(z(),B(`p`,YA,j(e.notes),1)):G(``,!0),h(e).length?(z(),B(`div`,XA,[(z(!0),B(R,null,I(h(e),e=>(z(),B(`span`,{key:e,class:`inline-flex items-center rounded-md border bg-background px-2 py-0.5 font-mono text-xs`},j(e),1))),128))])):G(``,!0)]),H(`div`,ZA,[U(N($),{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.term}`,onClick:t=>m(e)},{default:P(()=>[U(N(ad),{class:`size-4`})]),_:1},8,[`aria-label`,`onClick`]),U(N($),{variant:`ghost`,size:`icon`,class:`text-muted-foreground hover:text-destructive`,"aria-label":`Delete ${e.term}`,onClick:t=>s.value=e},{default:P(()=>[U(N(wd),{class:`size-4`})]),_:1},8,[`aria-label`,`onClick`])])]))),128))]))])):(z(),B(`div`,zA,` Loading glossary… `)),U(LA,{open:a.value,"onUpdate:open":n[3]||=e=>a.value=e,entry:o.value,"target-locales":d.value,onSaved:f},null,8,[`open`,`entry`,`target-locales`]),U(N(C_),{open:s.value!==null,"onUpdate:open":n[5]||=e=>{e||(s.value=null)}},{default:P(()=>[U(N(NC),{class:`max-w-md`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[10]||=[W(`Delete term`,-1)]]),_:1}),U(N(LC),null,{default:P(()=>[n[11]||=W(` Delete `,-1),H(`span`,QA,j(s.value?.term),1),n[12]||=W(` from the glossary? This cannot be undone. `,-1)]),_:1})]),_:1}),U(N(FC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:c.value,onClick:n[4]||=e=>s.value=null},{default:P(()=>[...n[13]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:c.value,onClick:g},{default:P(()=>[...n[14]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}}),ej=[{id:`empty-source`,label:`Empty source`,description:`The source text itself is empty.`,default:`error`},{id:`empty-translation`,label:`Untranslated`,description:`A target translation is missing or blank.`,default:`error`},{id:`placeholder-mismatch`,label:`Placeholder mismatch`,description:`Placeholders differ between source and translation.`,default:`error`},{id:`icu-mismatch`,label:`ICU mismatch`,description:`ICU plural/select structure differs from the source.`,default:`error`},{id:`glossary-violation`,label:`Glossary`,description:`A glossary term is missing or translated incorrectly.`,default:`error`},{id:`max-length`,label:`Too long`,description:`The translation exceeds the key's maximum length.`,default:`warn`},{id:`identical-to-source`,label:`Identical to source`,description:`The translation is exactly the source text.`,default:`warn`},{id:`whitespace`,label:`Whitespace`,description:`Leading/trailing whitespace differs from the source.`,default:`warn`},{id:`spelling`,label:`Spelling`,description:`A word isn't in the locale's dictionary, the glossary, or your custom dictionary.`,default:`warn`}],tj=Object.fromEntries(ej.map(e=>[e.id,e.default]));function nj(e,t){if(typeof e==`string`&&e.trim()===``)return t;let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)?n:t}function rj(e){return{sourceLocale:e.sourceLocale,locales:[...e.locales],outputs:e.outputs.map(e=>({adapter:e.adapter,path:e.path,emptyAs:e.emptyAs,style:e.style===`flat`?`flat`:`nested`,indent:e.indent??null,finalNewline:e.finalNewline??null,includeLocale:e.includeLocale??!0,skipSourceLocale:e.skipSourceLocale??!1,localeAliases:e.localeAliases?structuredClone(e.localeAliases):{},localeCase:e.localeCase,localeMap:e.localeMap?structuredClone(e.localeMap):{}})),indent:e.format.indent,sortKeys:e.format.sortKeys,finalNewline:e.format.finalNewline,autoExport:e.autoExport??!0,exportLocales:[...e.exportLocales??[]],customWords:[...e.spelling?.customWords??[]],lintRules:{...tj,...e.lint?.rules},lintIgnore:[...e.lint?.ignore??[]],scanAccessors:[...e.scan?.accessors??[]],scanPatterns:[...e.scan?.patterns??[]],scanInclude:[...e.scan?.include??[]],scanExclude:[...e.scan?.exclude??[]],scanKeep:[...e.scan?.keep??[]]}}function ij(e,t){let n=e.outputs.map(e=>{let t={adapter:e.adapter.trim(),path:e.path.trim()};if(e.style===`flat`&&(t.style=`flat`),e.emptyAs&&(t.emptyAs=e.emptyAs),e.indent!=null&&(t.indent=e.indent),e.finalNewline!=null&&(t.finalNewline=e.finalNewline),e.includeLocale||(t.includeLocale=!1),e.skipSourceLocale&&(t.skipSourceLocale=!0),e.localeAliases&&Object.keys(e.localeAliases).length&&(t.localeAliases=Object.fromEntries(Object.entries(e.localeAliases).filter(([,e])=>e.length>0)),Object.keys(t.localeAliases).length===0&&delete t.localeAliases),e.localeCase&&(t.localeCase=e.localeCase),e.localeMap){let n=Object.fromEntries(Object.entries(e.localeMap).filter(([,e])=>e.trim()!==``));Object.keys(n).length&&(t.localeMap=n)}return t}).filter(e=>e.adapter||e.path),r={};e.scanAccessors.length&&(r.accessors=[...e.scanAccessors]),e.scanPatterns.length&&(r.patterns=[...e.scanPatterns]),e.scanInclude.length&&(r.include=[...e.scanInclude]),e.scanExclude.length&&(r.exclude=[...e.scanExclude]),e.scanKeep.length&&(r.keep=[...e.scanKeep]);let i={sourceLocale:e.sourceLocale,locales:[...e.locales],outputs:n,format:{indent:nj(e.indent,2),sortKeys:e.sortKeys,finalNewline:e.finalNewline},autoExport:e.autoExport,...e.exportLocales.length?{exportLocales:[...e.exportLocales]}:{},spelling:{customWords:[...e.customWords]},...Object.keys(r).length?{scan:r}:{}},a=Object.fromEntries(Object.entries(e.lintRules).filter(([e,t])=>tj[e]!==void 0&&t!==tj[e])),o={};return Object.keys(a).length&&(o.rules=a),e.lintIgnore.length&&(o.ignore=[...e.lintIgnore]),t?.lint?.spelling!==void 0&&(o.spelling=t.lint.spelling),Object.keys(o).length&&(i.lint=o),t?.storage!==void 0&&(i.storage=t.storage),i}var aj=M(0),oj={class:`flex items-center gap-2 p-2`},sj=[`aria-label`],cj={class:`!flex items-center gap-2`},lj={class:`truncate font-medium`},uj={class:`flex items-center gap-2`},dj={key:0,class:`grid gap-5 border-t border-border p-4`},fj={key:0,class:`grid gap-1.5`},pj={class:`mt-1 inline-flex w-fit rounded-md border border-input p-0.5`},mj=[`onClick`],hj={key:1,class:`grid gap-1.5`},gj={class:`mt-1 inline-flex w-fit rounded-md border border-input p-0.5`},_j=[`onClick`],vj={key:2,class:`grid gap-1.5`},yj={class:`flex items-center gap-2`},bj={key:0,class:`text-xs text-muted-foreground`},xj={class:`flex items-center gap-2`},Sj={key:3,class:`grid gap-1.5`},Cj={class:`flex items-center gap-2`},wj={key:0,class:`text-xs text-muted-foreground`},Tj={class:`flex items-center gap-2`},Ej={class:`text-xs text-muted-foreground`},Dj={key:4,class:`grid gap-1.5`},Oj={class:`flex items-center gap-2`},kj={class:`text-xs text-muted-foreground`},Aj={class:`grid gap-1.5`},jj={class:`flex w-full items-center justify-between gap-4`},Mj={class:`font-mono text-xs text-muted-foreground`},Nj={class:`grid gap-1.5`},Pj={class:`mt-1 grid gap-2`},Fj={key:0,class:`text-xs text-muted-foreground`},Ij={class:`w-24 shrink-0 font-mono text-xs font-semibold`},Lj={key:1},Rj={class:`!flex items-center gap-1.5`},zj={class:`border-t border-border pt-4`},Bj={class:`mt-2 grid gap-2`},Vj={key:0,class:`text-xs text-muted-foreground`},Hj={class:`flex h-8 shrink-0 items-center gap-1.5`},Uj={class:`font-mono text-xs font-semibold`},Wj={class:`flex flex-1 flex-wrap items-center gap-1.5`},Gj=[`onClick`],Kj={key:1},qj={class:`!flex items-center gap-1.5`},Jj=F({__name:`OutputEditor`,props:{output:{},formatIndent:{},formatFinalNewline:{type:Boolean},locales:{},adapters:{}},emits:[`update:output`,`remove`],setup(e,{emit:t}){let n=e,r=t,i=M(!1),a=M({}),o={"laravel-php":[`emptyAs`,`indent`,`finalNewline`],"vue-i18n-json":[`emptyAs`,`style`,`indent`,`finalNewline`],"flutter-arb":[`emptyAs`,`indent`,`finalNewline`,`includeLocale`],"angular-xliff":[`emptyAs`],"rails-yaml":[`emptyAs`,`indent`,`finalNewline`],"apple-strings":[`emptyAs`]};function s(e){return o[e]??[`emptyAs`,`indent`,`finalNewline`]}function c(e){return s(n.output.adapter).includes(e)}let l=[{value:`source`,label:`Fill source`},{value:`empty`,label:`Leave empty`},{value:`omit`,label:`Omit`}],u=[{value:`lower-hyphen`,label:`lower-hyphen`,example:`en-us`},{value:`lower-underscore`,label:`lower-underscore`,example:`en_us`},{value:`bcp47-hyphen`,label:`bcp47-hyphen`,example:`en-US`},{value:`bcp47-underscore`,label:`bcp47-underscore`,example:`en_US`}];function d(e){return e===`flutter-arb`?`Default (Flutter: en_US)`:e===`angular-xliff`?`Default (Angular: en-US)`:e===`rails-yaml`?`Default (Rails: en-US)`:e===`apple-strings`?`Default (Apple: en-US)`:`Default (en-us)`}let f=q(()=>n.output.localeCase??`default`);function p(e){y({localeCase:e==="default"?void 0:e})}let m={"laravel-php":`Laravel PHP`,"vue-i18n-json":`Vue i18n JSON`,"flutter-arb":`Flutter ARB`,"angular-xliff":`Angular XLIFF`,"rails-yaml":`Rails YAML`,"apple-strings":`Apple .strings`};function h(e){return m[e]??e}let g=q(()=>[...n.adapters].sort((e,t)=>h(e).localeCompare(h(t)))),_={"laravel-php":Vu,"vue-i18n-json":Bu,"flutter-arb":_d,"angular-xliff":Vu,"rails-yaml":Vu,"apple-strings":_d};function v(e){return _[e]??Uu}function y(e){r(`update:output`,{...n.output,...e})}function b(e){return e===`flutter-arb`?`omit`:`source`}function x(e){y({adapter:e,emptyAs:b(e),style:e===`vue-i18n-json`?`nested`:n.output.style,includeLocale:!0})}let S=q(()=>n.output.emptyAs??b(n.output.adapter)),C=q(()=>n.output.finalNewline??n.formatFinalNewline),w=q(()=>n.output.indent!=null),T=q(()=>n.output.finalNewline!=null),E=q(()=>n.output.localeAliases??{}),D=q(()=>Object.keys(E.value)),ee=q(()=>n.locales.filter(e=>!D.value.includes(e)));function te(e){y({localeAliases:e})}function ne(e){te({...E.value,[e]:[]})}function O(e){let t={...E.value};delete t[e],te(t)}function re(e){let t=(a.value[e]??``).trim();if(!t)return;let n=E.value[e]??[];n.includes(t)||(te({...E.value,[e]:[...n,t]}),a.value={...a.value,[e]:``})}function ie(e,t){te({...E.value,[e]:(E.value[e]??[]).filter(e=>e!==t)})}let ae=q(()=>n.output.localeMap??{}),oe=q(()=>Object.keys(ae.value)),k=q(()=>n.locales.filter(e=>!oe.value.includes(e)));function se(e){y({localeMap:e})}function ce(e){se({...ae.value,[e]:e})}function le(e){let t={...ae.value};delete t[e],se(t)}function ue(e,t){se({...ae.value,[e]:t})}return(t,n)=>(z(),B(`div`,{class:A([`rounded-lg border`,i.value?`border-input`:`border-border`])},[H(`div`,oj,[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`grid size-7 shrink-0 place-items-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground`,"aria-label":i.value?`Collapse`:`Expand options`,onClick:n[0]||=e=>i.value=!i.value},[U(N(ku),{class:A([`size-4 transition-transform`,i.value?`rotate-90`:``])},null,8,[`class`])],8,sj)]),_:1}),U(N(qC),null,{default:P(()=>[W(j(i.value?`Collapse`:`Expand options`),1)]),_:1})]),_:1}),U(N(mS),{"model-value":e.output.adapter,"onUpdate:modelValue":x},{default:P(()=>[U(N(cC),{class:`w-44 shrink-0`},{default:P(()=>[H(`span`,cj,[(z(),V(ia(v(e.output.adapter)),{class:`size-3.5 shrink-0 text-primary`})),H(`span`,lj,j(h(e.output.adapter)),1)])]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(g.value,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[H(`span`,uj,[(z(),V(ia(v(e)),{class:`size-3.5 text-primary`})),W(` `+j(h(e)),1)])]),_:2},1032,[`value`]))),128)),e.output.adapter&&!e.adapters.includes(e.output.adapter)?(z(),V(N(dC),{key:0,value:e.output.adapter},{default:P(()=>[W(j(e.output.adapter),1)]),_:1},8,[`value`])):G(``,!0)]),_:1})]),_:1},8,[`model-value`]),U(N(sC),{"model-value":e.output.path,class:`flex-1 font-mono text-sm`,placeholder:`lib/l10n/app_{locale}.arb`,spellcheck:`false`,"aria-label":`Output path`,"onUpdate:modelValue":n[1]||=e=>y({path:String(e)})},null,8,[`model-value`]),U(N($),{variant:`ghost`,size:`icon`,class:`shrink-0 text-muted-foreground hover:text-destructive`,"aria-label":`Remove output`,onClick:n[2]||=e=>r(`remove`)},{default:P(()=>[U(N(wd),{class:`size-4`})]),_:1})]),i.value?(z(),B(`div`,dj,[c(`emptyAs`)?(z(),B(`div`,fj,[U(N(MC),null,{default:P(()=>[...n[8]||=[W(`Empty keys`,-1)]]),_:1}),n[9]||=H(`p`,{class:`text-xs text-muted-foreground`},`What to write when a translation is missing.`,-1),H(`div`,pj,[(z(),B(R,null,I(l,e=>H(`button`,{key:e.value,type:`button`,class:A([`rounded-[5px] px-2.5 py-1 text-xs font-medium transition-colors`,S.value===e.value?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:t=>y({emptyAs:e.value})},j(e.label),11,mj)),64))])])):G(``,!0),c(`style`)?(z(),B(`div`,hj,[U(N(MC),null,{default:P(()=>[...n[10]||=[W(`Nesting`,-1)]]),_:1}),n[11]||=H(`p`,{class:`text-xs text-muted-foreground`},`Expand dotted keys into nested objects.`,-1),H(`div`,gj,[(z(),B(R,null,I([`nested`,`flat`],t=>H(`button`,{key:t,type:`button`,class:A([`rounded-[5px] px-2.5 py-1 text-xs font-medium capitalize transition-colors`,(e.output.style??`nested`)===t?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:e=>y({style:t})},j(t),11,_j)),64))])])):G(``,!0),c(`indent`)?(z(),B(`div`,vj,[H(`div`,yj,[U(N(MC),null,{default:P(()=>[...n[12]||=[W(`Indent`,-1)]]),_:1}),w.value?(z(),B(`button`,{key:1,type:`button`,class:`text-xs text-primary hover:underline`,onClick:n[3]||=e=>y({indent:null})},`Reset`)):(z(),B(`span`,bj,`Inherited · `+j(e.formatIndent),1))]),H(`div`,xj,[U(N(sC),{type:`number`,min:`0`,max:`8`,class:A([`w-20`,w.value?`border-primary`:``]),"model-value":e.output.indent??``,placeholder:String(e.formatIndent),"onUpdate:modelValue":n[4]||=e=>y({indent:e===``?null:Math.max(0,parseInt(String(e),10)||0)})},null,8,[`class`,`model-value`,`placeholder`]),n[13]||=H(`span`,{class:`text-xs text-muted-foreground`},`spaces`,-1)])])):G(``,!0),c(`finalNewline`)?(z(),B(`div`,Sj,[H(`div`,Cj,[U(N(MC),null,{default:P(()=>[...n[14]||=[W(`Final newline`,-1)]]),_:1}),T.value?(z(),B(`button`,{key:1,type:`button`,class:`text-xs text-primary hover:underline`,onClick:n[5]||=e=>y({finalNewline:null})},`Reset`)):(z(),B(`span`,wj,`Inherited · `+j(e.formatFinalNewline?`on`:`off`),1))]),H(`div`,Tj,[U(N(_C),{"model-value":C.value,"onUpdate:modelValue":n[6]||=e=>y({finalNewline:e})},null,8,[`model-value`]),H(`span`,Ej,j(C.value?`Enabled`:`Disabled`),1)])])):G(``,!0),c(`includeLocale`)?(z(),B(`div`,Dj,[U(N(MC),{class:`flex items-center gap-1.5`},{default:P(()=>[...n[15]||=[W(`Include `,-1),H(`code`,{class:`font-mono text-xs`},`@@locale`,-1)]]),_:1}),n[16]||=H(`p`,{class:`text-xs text-muted-foreground`},`Write the locale marker into each file. Standard for Flutter.`,-1),H(`div`,Oj,[U(N(_C),{"model-value":e.output.includeLocale??!0,"onUpdate:modelValue":n[7]||=e=>y({includeLocale:e})},null,8,[`model-value`]),H(`span`,kj,j(e.output.includeLocale??!0?`Enabled`:`Disabled`),1)])])):G(``,!0),H(`div`,Aj,[U(N(MC),null,{default:P(()=>[...n[17]||=[W(`Locale code format`,-1)]]),_:1}),n[18]||=H(`p`,{class:`text-xs text-muted-foreground`},[W(`How the `),H(`code`,{class:`font-mono text-xs`},`{locale}`),W(` token is rendered in file names (and the in-file marker for ARB).`)],-1),U(N(mS),{"model-value":f.value,"onUpdate:modelValue":p},{default:P(()=>[U(N(cC),{class:`w-72`,"aria-label":`Locale code format`},{default:P(()=>[U(N(FS))]),_:1}),U(N(lC),null,{default:P(()=>[U(N(dC),{value:`default`},{default:P(()=>[W(j(d(e.output.adapter)),1)]),_:1}),(z(),B(R,null,I(u,e=>U(N(dC),{key:e.value,value:e.value},{default:P(()=>[H(`span`,jj,[H(`span`,null,j(e.label),1),H(`span`,Mj,j(e.example),1)])]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`model-value`])]),H(`div`,Nj,[U(N(MC),null,{default:P(()=>[...n[19]||=[W(`Locale overrides`,-1)]]),_:1}),n[21]||=H(`p`,{class:`text-xs text-muted-foreground`},`Force a specific export code for one locale — wins over the format above.`,-1),H(`div`,Pj,[oe.value.length===0?(z(),B(`p`,Fj,`No overrides.`)):G(``,!0),(z(!0),B(R,null,I(oe.value,e=>(z(),B(`div`,{key:e,class:`flex items-center gap-2`},[H(`span`,Ij,j(e),1),U(N(bu),{class:`size-3 shrink-0 text-muted-foreground`}),U(N(sC),{class:`h-8 flex-1 font-mono text-xs`,"aria-label":`Export code for `+e,placeholder:`export code`,"model-value":ae.value[e]??``,"onUpdate:modelValue":t=>ue(e,String(t))},null,8,[`aria-label`,`model-value`,`onUpdate:modelValue`]),U(N($),{variant:`ghost`,size:`icon`,class:`size-8 shrink-0 text-muted-foreground hover:text-destructive`,"aria-label":`Remove override `+e,onClick:t=>le(e)},{default:P(()=>[U(N(wd),{class:`size-3.5`})]),_:1},8,[`aria-label`,`onClick`])]))),128)),k.value.length>0?(z(),B(`div`,Lj,[U(N(mS),{"model-value":``,"onUpdate:modelValue":ce},{default:P(()=>[U(N(cC),{class:`w-56 text-muted-foreground`,"aria-label":`Add locale override`},{default:P(()=>[H(`span`,Rj,[U(N(od),{class:`size-3.5`}),n[20]||=W(` Add override…`,-1)])]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(k.value,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])):G(``,!0)])]),H(`div`,zj,[n[25]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Advanced · Locale aliases`,-1),n[26]||=H(`p`,{class:`mt-1.5 text-xs text-muted-foreground`},[W(` Write one catalog locale to additional file codes — e.g. `),H(`span`,{class:`font-mono`},`zh-Hans`),W(` also as `),H(`span`,{class:`font-mono`},`zh, zh_CN`),W(`. `)],-1),H(`div`,Bj,[D.value.length===0?(z(),B(`p`,Vj,`No aliases. The locale's own code is used as the file name.`)):G(``,!0),(z(!0),B(R,null,I(D.value,e=>(z(),B(`div`,{key:e,class:`flex items-start gap-2`},[H(`div`,Hj,[H(`span`,Uj,j(e),1),U(N(bu),{class:`size-3 text-muted-foreground`})]),H(`div`,Wj,[(z(!0),B(R,null,I(E.value[e]??[],t=>(z(),B(`span`,{key:t,class:`inline-flex items-center gap-1 rounded-md border border-border bg-muted px-1.5 py-0.5 font-mono text-xs`},[W(j(t)+` `,1),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`text-muted-foreground hover:text-destructive`,"aria-label":`Remove`,onClick:n=>ie(e,t)},[U(N(kd),{class:`size-3`})],8,Gj)]),_:2},1024),U(N(qC),null,{default:P(()=>[...n[22]||=[W(`Remove`,-1)]]),_:1})]),_:2},1024)]))),128)),U(N(sC),{class:`h-8 w-28 font-mono text-xs`,placeholder:`add code…`,"model-value":a.value[e]??``,"onUpdate:modelValue":t=>a.value={...a.value,[e]:String(t)},onKeydown:Xl(Jl(t=>re(e),[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`])]),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[U(N($),{variant:`ghost`,size:`icon`,class:`size-8 shrink-0 text-muted-foreground hover:text-destructive`,"aria-label":`Remove alias`,onClick:t=>O(e)},{default:P(()=>[U(N(wd),{class:`size-3.5`})]),_:1},8,[`onClick`])]),_:2},1024),U(N(qC),null,{default:P(()=>[...n[23]||=[W(`Remove alias`,-1)]]),_:1})]),_:2},1024)]))),128)),ee.value.length>0?(z(),B(`div`,Kj,[U(N(mS),{"model-value":``,"onUpdate:modelValue":ne},{default:P(()=>[U(N(cC),{class:`w-56 text-muted-foreground`},{default:P(()=>[H(`span`,qj,[U(N(od),{class:`size-3.5`}),n[24]||=W(` Add locale alias…`,-1)])]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(ee.value,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])):G(``,!0)])])])):G(``,!0)],2))}}),Yj={class:`grid gap-1.5`},Xj={class:`flex flex-wrap gap-2`},Zj=[`aria-label`,`onClick`],Qj={key:0,class:`text-sm text-muted-foreground`},$j={class:`flex max-w-sm gap-2`},eM={key:0,class:`flex items-center gap-1.5 text-xs text-destructive`},tM=F({__name:`ScanListField`,props:{label:{},items:{},placeholder:{},mono:{type:Boolean},addLabel:{},validate:{type:Function}},emits:[`update:items`],setup(e,{emit:t}){let n=e,r=t,i=M(``),a=M(``);function o(){let e=i.value.trim();if(!e)return;if(n.items.includes(e)){a.value=`"${e}" is already listed`;return}let t=n.validate?.(e)??null;if(t){a.value=t;return}a.value=``,r(`update:items`,[...n.items,e]),i.value=``}function s(e){r(`update:items`,n.items.filter(t=>t!==e))}return(t,n)=>(z(),B(`div`,Yj,[U(N(MC),null,{default:P(()=>[W(j(e.label),1)]),_:1}),L(t.$slots,`help`),H(`div`,Xj,[(z(!0),B(R,null,I(e.items,t=>(z(),B(`span`,{key:t,class:A([`inline-flex items-center gap-1.5 rounded-lg border bg-accent px-2.5 py-1.5 text-sm`,e.mono&&`font-mono`])},[W(j(t)+` `,1),H(`button`,{type:`button`,class:`flex size-[18px] items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove ${t}`,onClick:e=>s(t)},[U(N(kd),{class:`size-3`})],8,Zj)],2))),128)),e.items.length===0?(z(),B(`p`,Qj,`None — auto-detect.`)):G(``,!0)]),H(`div`,$j,[U(N(sC),{modelValue:i.value,"onUpdate:modelValue":n[0]||=e=>i.value=e,class:A(e.mono?`font-mono`:void 0),placeholder:e.placeholder,onKeydown:Xl(Jl(o,[`prevent`]),[`enter`]),onInput:n[1]||=e=>a.value=``},null,8,[`modelValue`,`class`,`placeholder`,`onKeydown`]),U(N($),{variant:`outline`,onClick:o},{default:P(()=>[U(N(od),{class:`size-4`}),W(` `+j(e.addLabel??`Add`),1)]),_:1})]),a.value?(z(),B(`p`,eM,[U(N(Td),{class:`size-3.5`}),W(` `+j(a.value),1)])):G(``,!0)]))}}),nM={class:`flex flex-col items-center justify-center gap-4 p-6 py-10 text-center`},rM={class:`p-6`},iM={class:`flex items-start gap-3 pr-6`},aM={class:`grid h-10 w-10 shrink-0 place-items-center rounded-lg border border-primary/25 bg-primary/10 text-primary`},oM={class:`min-w-0`},sM={key:0,class:`mt-5 flex items-center gap-3 rounded-lg border border-success-border bg-success-bg/50 px-4 py-3.5`},cM={class:`mt-4 grid grid-cols-4 gap-2`},lM={class:`mt-1.5 text-[17px] font-semibold leading-none tabular-nums`},uM={class:`mt-1 whitespace-nowrap text-[10.5px] text-muted-foreground`},dM={class:`mt-2 text-center text-[11px] text-muted-foreground`},fM={class:`mt-4 divide-y divide-border overflow-hidden rounded-lg border border-border`},pM={key:0},mM=[`onClick`],hM={class:`ml-auto font-mono text-[11px] text-muted-foreground tabular-nums`},gM={key:0,class:`max-h-36 divide-y divide-border/50 overflow-auto border-t border-border bg-muted/20 gf-content-fade`},_M={key:0,class:`mt-4 flex items-center justify-between gap-4 rounded-lg border border-destructive/30 bg-destructive-soft/40 p-3.5`},vM={class:`flex items-start gap-2.5`},yM={class:`text-[13px] font-medium`},bM={class:`flex items-center gap-2 border-t border-border px-6 py-4`},xM={class:`ml-auto`},SM={class:`flex flex-col items-center justify-center gap-4 p-6 py-10 text-center`},CM={class:`p-6`},wM={class:`flex flex-col items-center gap-3 pt-1 text-center`},TM={class:`grid h-12 w-12 place-items-center rounded-full bg-success-bg text-success ring-1 ring-success-border`},EM={class:`font-semibold text-foreground`},DM={class:`font-semibold text-foreground`},OM={class:`font-semibold text-foreground`},kM={key:0,class:`mt-5 overflow-hidden rounded-lg border border-warning-border bg-warning-bg/60`},AM={class:`whitespace-nowrap text-[13px] font-medium text-warning`},jM={key:0,class:`max-h-44 divide-y divide-warning-border/40 overflow-auto border-t border-warning-border/70 gf-content-fade`},MM={class:`flex items-center border-t border-border px-6 py-4`},NM={class:`ml-auto`},PM={class:`p-6`},FM={class:`flex items-start gap-3 pr-6`},IM={class:`grid h-10 w-10 shrink-0 place-items-center rounded-full bg-destructive-soft text-destructive`},LM={class:`min-w-0`},RM={class:`flex items-center border-t border-border px-6 py-4`},zM={class:`ml-auto`},BM=F({__name:`SyncWizard`,emits:[`dismiss`,`synced`],setup(e,{expose:t,emit:n}){let r=n,i=M(!0),a=M(`loading`),o=M(null),s=M([]),c=M(null),l=M(``),u=M(!1),d=M(!1),f=M({});t({init:p});async function p(){a.value=`loading`;try{let e=await zf();o.value=e.plan,s.value=e.warnings,a.value=`review`}catch(e){l.value=e.message,a.value=`error`}}let m=q(()=>{let e=o.value;return e?e.added.length+e.sourceChanged.length+e.adopted.length+e.removed.length:0}),h=q(()=>m.value===0),g=q(()=>{let e=o.value;return e?[{id:`added`,label:`Added`,icon:od,tone:`added`,keys:e.added},{id:`sourceChanged`,label:`Source changed`,icon:ad,tone:`changed`,keys:e.sourceChanged},{id:`adopted`,label:`Adopted`,icon:Du,tone:`adopted`,keys:e.adopted.map(e=>`${e.key} · ${e.locale}`)},{id:`removed`,label:`Removed`,icon:wd,tone:`removed`,keys:e.removed}]:[]}),_={added:`text-success`,changed:`text-amber-600 dark:text-amber-400`,adopted:`text-primary`,removed:`text-destructive`};async function v(){a.value=`applying`;try{c.value=await Bf({prune:u.value}),a.value=`done`}catch(e){l.value=e.message,a.value=`error`}}function y(e){e||a.value!==`applying`&&(a.value===`done`?r(`synced`):r(`dismiss`))}return(e,t)=>(z(),V(N(C_),{open:i.value,"onUpdate:open":y},{default:P(()=>[U(N(uv),null,{default:P(()=>[U(N(cv),{class:`fixed inset-0 z-50 bg-foreground/40 gf-content-fade`}),U(N(av),{class:`fixed left-1/2 top-1/2 z-50 w-[30rem] max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-border bg-card text-card-foreground shadow-2xl focus:outline-none gf-content-fade`,onInteractOutside:t[8]||=Jl(()=>{},[`prevent`])},{default:P(()=>[a.value===`loading`?(z(),B(R,{key:0},[U(N(dv),{class:`sr-only`},{default:P(()=>[...t[9]||=[W(`Comparing files`,-1)]]),_:1}),H(`div`,nM,[U(N($u),{class:`size-9 text-primary gf-spin`}),t[10]||=H(`div`,{class:`text-[13px] text-muted-foreground`},`Reading your locale files…`,-1)])],64)):a.value===`review`&&o.value?(z(),B(R,{key:1},[H(`button`,{type:`button`,class:`absolute right-3.5 top-3.5 z-10 grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:t[0]||=e=>r(`dismiss`)},[U(N(kd),{class:`size-4`})]),H(`div`,rM,[H(`div`,iM,[H(`div`,aM,[U(N(sd),{class:`size-5`})]),H(`div`,oM,[U(N(dv),{class:`text-base font-semibold leading-tight`},{default:P(()=>[...t[11]||=[W(`Sync from files`,-1)]]),_:1}),U(N(ov),{class:`mt-0.5 text-[13px] text-muted-foreground`},{default:P(()=>[...t[12]||=[W(` Re-reads your locale files and merges changes in. Glossary, context and existing translations are kept. `,-1)]]),_:1})])]),h.value?(z(),B(`div`,sM,[U(N(Du),{class:`size-4 shrink-0 text-success`,"stroke-width":2.5}),t[13]||=H(`span`,{class:`text-[13px] text-foreground`},`Already in sync — nothing changed on disk.`,-1)])):(z(),B(R,{key:1},[H(`div`,cM,[(z(!0),B(R,null,I(g.value,e=>(z(),B(`div`,{key:e.id,class:`flex flex-col items-center rounded-lg border border-border bg-muted/40 px-2 py-2.5`},[(z(),V(ia(e.icon),{class:A([`size-3.5`,_[e.tone]])},null,8,[`class`])),H(`span`,lM,j(e.keys.length),1),H(`span`,uM,j(e.label),1)]))),128))]),H(`p`,dM,j(o.value.unchanged.toLocaleString())+` key`+j(o.value.unchanged===1?``:`s`)+` unchanged `,1),H(`div`,fM,[(z(!0),B(R,null,I(g.value,e=>(z(),B(R,{key:e.id},[e.keys.length?(z(),B(`div`,pM,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3 py-2 text-[12.5px] transition-colors hover:bg-muted/50`,onClick:t=>f.value[e.id]=!f.value[e.id]},[U(N(ku),{class:A([`size-3.5 shrink-0 transition-transform`,f.value[e.id]?`rotate-90`:``])},null,8,[`class`]),(z(),V(ia(e.icon),{class:A([`size-3.5 shrink-0`,_[e.tone]])},null,8,[`class`])),H(`span`,null,j(e.label),1),H(`span`,hM,j(e.keys.length),1)],8,mM),f.value[e.id]?(z(),B(`ul`,gM,[(z(!0),B(R,null,I(e.keys,e=>(z(),B(`li`,{key:e,class:`truncate px-3 py-1.5 font-mono text-[11.5px] text-muted-foreground`},j(e),1))),128))])):G(``,!0)])):G(``,!0)],64))),128))]),o.value.removed.length?(z(),B(`div`,_M,[H(`div`,vM,[U(N(wd),{class:`mt-0.5 size-4 shrink-0 text-destructive`}),H(`div`,null,[H(`div`,yM,`Delete `+j(o.value.removed.length)+` removed `+j(o.value.removed.length===1?`key`:`keys`),1),t[14]||=H(`div`,{class:`mt-0.5 text-[11.5px] text-muted-foreground`},` Keys gone from the source file. Off keeps them — safer if an edited string just changed its id. `,-1)])]),U(N(_C),{"data-testid":`prune-toggle`,modelValue:u.value,"onUpdate:modelValue":t[1]||=e=>u.value=e},null,8,[`modelValue`])])):G(``,!0)],64))]),H(`div`,bM,[U(N($),{variant:`ghost`,size:`sm`,onClick:t[2]||=e=>r(`dismiss`)},{default:P(()=>[W(j(h.value?`Close`:`Cancel`),1)]),_:1}),H(`div`,xM,[h.value?(z(),V(N($),{key:0,variant:`outline`,onClick:t[3]||=e=>r(`dismiss`)},{default:P(()=>[...t[15]||=[W(`Done`,-1)]]),_:1})):(z(),V(N($),{key:1,"data-testid":`apply-btn`,onClick:v},{default:P(()=>[U(N(sd),{class:`size-4`}),W(` Apply `+j(m.value)+` `+j(m.value===1?`change`:`changes`),1)]),_:1}))])])],64)):a.value===`applying`?(z(),B(R,{key:2},[U(N(dv),{class:`sr-only`},{default:P(()=>[...t[16]||=[W(`Applying changes`,-1)]]),_:1}),H(`div`,SM,[U(N($u),{class:`size-9 text-primary gf-spin`}),t[17]||=H(`div`,{class:`text-[13px] text-muted-foreground`},`Merging changes…`,-1)])],64)):a.value===`done`&&c.value?(z(),B(R,{key:3},[H(`div`,CM,[H(`div`,wM,[H(`div`,TM,[U(N(Du),{class:`size-6`,"stroke-width":2.5})]),H(`div`,null,[U(N(dv),{class:`text-base font-semibold`},{default:P(()=>[...t[18]||=[W(`Sync complete`,-1)]]),_:1}),U(N(ov),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[H(`span`,EM,`+`+j(c.value.plan.added.length),1),t[19]||=W(` added, `,-1),H(`span`,DM,`~`+j(c.value.plan.sourceChanged.length),1),t[20]||=W(` changed, `,-1),H(`span`,OM,j(c.value.plan.removed.length),1),t[21]||=W(` removed. `,-1)]),_:1})])]),c.value.warnings.length?(z(),B(`div`,kM,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3 py-2.5 text-left`,onClick:t[4]||=e=>d.value=!d.value},[U(N(Td),{class:`size-3.5 shrink-0 text-warning`}),H(`span`,AM,j(c.value.warnings.length)+` `+j(c.value.warnings.length===1?`warning`:`warnings`),1),U(N(ku),{class:A([`ml-auto size-3.5 shrink-0 text-warning transition-transform`,d.value?`rotate-90`:``])},null,8,[`class`])]),d.value?(z(),B(`ul`,jM,[(z(!0),B(R,null,I(c.value.warnings,(e,t)=>(z(),B(`li`,{key:t,class:`px-3 py-2 text-[12px] text-muted-foreground`},j(e),1))),128))])):G(``,!0)])):G(``,!0)]),H(`div`,MM,[H(`div`,NM,[U(N($),{onClick:t[5]||=e=>r(`synced`)},{default:P(()=>[t[22]||=W(`Reload editor `,-1),U(N(bu),{class:`size-4`})]),_:1})])])],64)):a.value===`error`?(z(),B(R,{key:4},[H(`button`,{type:`button`,class:`absolute right-3.5 top-3.5 z-10 grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:t[6]||=e=>r(`dismiss`)},[U(N(kd),{class:`size-4`})]),H(`div`,PM,[H(`div`,FM,[H(`div`,IM,[U(N(Td),{class:`size-5`})]),H(`div`,LM,[U(N(dv),{class:`text-base font-semibold`},{default:P(()=>[...t[23]||=[W(`Couldn't sync`,-1)]]),_:1}),U(N(ov),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[W(j(l.value),1)]),_:1})])])]),H(`div`,RM,[H(`div`,zM,[U(N($),{variant:`outline`,onClick:t[7]||=e=>r(`dismiss`)},{default:P(()=>[...t[24]||=[W(`Dismiss`,-1)]]),_:1})])])],64)):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),VM={key:0,class:`flex flex-1 items-center justify-center text-sm text-muted-foreground`},HM={key:1,class:`flex min-h-0 flex-1 overflow-hidden`},UM={class:`flex w-60 shrink-0 flex-col gap-1 overflow-y-auto border-r bg-muted p-3`},WM=[`onClick`],GM={class:`min-w-0 flex-1`},KM={class:`block text-[13px] font-[570] leading-tight`},qM={class:`mt-0.5 block truncate text-[11px] opacity-70`},JM={key:0,class:`size-2 shrink-0 rounded-full bg-primary ring-2 ring-primary/25`},YM={key:1,class:`shrink-0 rounded border border-emerald-500/30 bg-emerald-500/10 px-1.5 py-0.5 font-mono text-[9px] font-semibold uppercase tracking-wide text-emerald-600 dark:text-emerald-400`},XM=[`onClick`],ZM={class:`min-w-0 flex-1`},QM={class:`block text-[13px] font-[570] leading-tight`},$M={class:`mt-0.5 block truncate text-[11px] opacity-70`},eN={class:`relative flex min-w-0 flex-1 flex-col`},tN={class:`flex-1 overflow-y-auto px-8 pb-28 pt-7`},nN={class:`max-w-[680px]`},rN={class:`mb-6`},iN={class:`flex items-center gap-2.5 text-[21px] font-bold tracking-tight`},aN={key:0,class:`size-2 rounded-full bg-primary ring-2 ring-primary/25`},oN={key:0,class:`mt-1.5 text-sm text-muted-foreground`},sN={key:1,class:`mt-1.5 text-sm text-muted-foreground`},cN={key:2,class:`mt-1.5 text-sm text-muted-foreground`},lN={key:3,class:`mt-1.5 text-sm text-muted-foreground`},uN={key:4,class:`mt-1.5 text-sm text-muted-foreground`},dN={key:5,class:`mt-1.5 text-sm text-muted-foreground`},fN={key:6,class:`mt-1.5 text-sm text-muted-foreground`},pN={key:7,class:`mt-2 flex items-center gap-1.5 text-sm text-muted-foreground`},mN={key:0,class:`flex flex-col gap-5`},hN={class:`grid max-w-sm gap-1.5`},gN={key:0},_N={class:`grid gap-1.5`},vN={class:`ml-1.5 font-normal text-muted-foreground`},yN={class:`flex flex-wrap gap-2`},bN={key:0,class:`font-mono text-[10px] italic text-muted-foreground`},xN=[`aria-label`,`onClick`],SN={class:`mt-1 flex items-center gap-1.5 text-xs text-destructive`},CN={class:`grid max-w-sm gap-1.5`},wN={class:`flex gap-2`},TN={key:0,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},EN={key:1,class:`flex flex-col gap-6`},DN={class:`flex items-center justify-between gap-4 rounded-lg border p-3.5`},ON={class:`flex items-start gap-2.5`},kN={class:`grid size-8 shrink-0 place-items-center rounded-md border border-primary/25 bg-primary/10 text-primary`},AN={class:`flex items-center justify-between gap-4 rounded-lg border p-3.5`},jN={class:`flex items-start gap-2.5`},MN={class:`grid size-8 shrink-0 place-items-center rounded-md border border-primary/25 bg-primary/10 text-primary`},NN={class:`rounded-lg border p-3.5`},PN={class:`flex items-center justify-between gap-4`},FN={class:`flex items-start gap-2.5`},IN={class:`grid size-8 shrink-0 place-items-center rounded-md border border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400`},LN={key:0,class:`mt-3 border-t pt-3`},RN={class:`flex flex-wrap gap-2`},zN=[`aria-checked`,`onClick`],BN={class:`mt-2 flex items-center gap-1.5 text-xs text-amber-600 dark:text-amber-400`},VN={class:`mt-2 divide-y rounded-lg border`},HN={class:`flex items-center justify-between gap-4 p-3.5`},UN={class:`flex items-center gap-2`},WN={class:`flex items-center justify-between gap-4 p-3.5`},GN={class:`flex items-center gap-2 text-sm font-medium`},KN={class:`inline-flex items-center gap-1 rounded border border-border bg-muted px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`},qN={class:`inline-flex shrink-0 items-center gap-1 rounded-md border border-primary/25 bg-primary/10 px-2 py-1 text-xs font-medium text-primary`},JN={class:`flex items-center justify-between gap-4 p-3.5`},YN={class:`mt-2 flex flex-col gap-2.5`},XN={key:0,class:`text-sm text-muted-foreground`},ZN={key:2,class:`flex flex-col gap-4`},QN={class:`flex items-center gap-2 rounded-lg border p-3`},$N={key:1,class:`flex-1 text-sm text-muted-foreground`},eP={class:`grid max-w-sm gap-4`},tP={class:`grid gap-1.5`},nP={class:`flex items-center gap-2`},rP={key:0,class:`flex items-center gap-1 text-xs leading-none text-emerald-600 dark:text-emerald-400`},iP={class:`text-xs text-muted-foreground`},aP={class:`grid gap-1.5`},oP={key:0,class:`text-xs text-muted-foreground`},sP=[`onClick`],cP={key:0},lP={key:0,class:`grid gap-1.5`},uP={key:1,class:`grid gap-1.5`},dP={key:0,class:`text-xs text-muted-foreground`},fP={key:1,class:`text-xs text-muted-foreground`},pP={class:`grid gap-1.5`},mP={class:`grid gap-1.5`},hP={class:`grid gap-1.5`},gP={class:`grid gap-1.5`},_P={class:`grid gap-1.5`},vP={class:`grid gap-1.5`},yP={key:2,class:`flex items-center gap-3`},bP={class:`grid gap-0.5`},xP={key:3,class:`grid gap-1.5`},SP={key:3,class:`flex flex-col gap-6`},CP={key:4,class:`flex flex-col gap-6`},wP={class:`mt-2 divide-y rounded-lg border`},TP={class:`min-w-0`},EP={class:`flex items-center gap-2 text-sm font-medium`},DP={class:`rounded border bg-muted px-1 py-0.5 font-mono text-[10px] text-muted-foreground`},OP={class:`mt-0.5 text-xs text-muted-foreground`},kP={key:5,class:`flex flex-col gap-4`},AP={class:`flex flex-wrap gap-2`},jP=[`aria-label`,`onClick`],MP={key:0,class:`text-sm text-muted-foreground`},NP={class:`grid max-w-sm gap-1.5`},PP={class:`flex gap-2`},FP={key:6,class:`flex flex-col gap-4`},IP={class:`grid max-w-sm gap-1.5`},LP={class:`flex items-center gap-2`},RP={key:0,class:`flex items-center gap-1 text-xs leading-none text-emerald-600 dark:text-emerald-400`},zP={class:`flex items-center gap-1.5 text-sm text-muted-foreground`},BP={class:`inline-grid h-5 min-w-[20px] shrink-0 place-items-center rounded-full bg-primary px-1.5 text-[11px] font-bold tabular-nums text-primary-foreground`},VP={class:`font-semibold`},HP={class:`relative`},UP={key:0,class:`absolute bottom-full left-1/2 z-50 mb-2.5 w-64 -translate-x-1/2 rounded-xl border bg-card p-3.5 shadow-lg`},WP={class:`mt-1 text-xs leading-relaxed text-muted-foreground`},GP={class:`mt-3 flex justify-end gap-2`},KP={role:`dialog`,"aria-modal":`true`,"aria-labelledby":`leave-warning-title`,class:`w-full max-w-md rounded-2xl border bg-card p-5 shadow-xl`},qP={id:`leave-warning-title`,class:`flex items-center gap-2 text-[15px] font-semibold`},JP={class:`mt-1.5 text-[13px] leading-relaxed text-muted-foreground`},YP={class:`font-medium text-foreground`},XP={class:`block`},ZP={class:`mt-4 flex items-center gap-2`},QP={key:0,class:`fixed left-1/2 top-4 z-[80] flex -translate-x-1/2 items-center gap-2 rounded-[11px] bg-foreground px-4 py-2.5 text-[12.5px] font-medium text-background shadow-lg`},$P=F({__name:`SettingsView`,setup(e){let t=[`languages`,`outputs`,`ai`,`scan`,`quality`,`dictionary`,`editor`],n=[`flutter-arb`,`laravel-php`,`vue-i18n-json`,`angular-xliff`,`rails-yaml`,`apple-strings`],r=[{value:`anthropic`,label:`Anthropic`},{value:`bedrock`,label:`AWS Bedrock`},{value:`claude-code`,label:`Claude Code`},{value:`ollama`,label:`Ollama`},{value:`openai`,label:`OpenAI`},{value:`openrouter`,label:`OpenRouter`}],i={anthropic:[`claude-opus-4-8`,`claude-sonnet-4-6`,`claude-haiku-4-5-20251001`],openai:[`gpt-4o-mini`,`gpt-4o`,`gpt-4.1`],bedrock:[`amazon.nova-pro-v1:0`,`anthropic.claude-3-5-sonnet-20241022-v2:0`,`meta.llama3-1-70b-instruct-v1:0`],openrouter:[`anthropic/claude-3.5-haiku`,`openai/gpt-4o-mini`,`google/gemini-2.0-flash-001`],ollama:[`translategemma:4b`,`translategemma:12b`,`qwen3.5:9b`],"claude-code":[`claude-opus-4-8`,`claude-sonnet-4-6`,`claude-haiku-4-5-20251001`]},a={anthropic:`Set ANTHROPIC_API_KEY in your environment (or a .env file).`,openai:`Set OPENAI_API_KEY in your environment (or a .env file).`,bedrock:`Uses your AWS credentials (env vars, AWS_PROFILE, or an instance/SSO role).`,openrouter:`Set OPENROUTER_API_KEY in your environment (or a .env file).`,ollama:`Runs locally — no API key needed. Set OLLAMA_API_KEY only for a secured/remote server.`,"claude-code":`Uses your local Claude Code session — no separate API key needed. Requires the claude CLI to be installed.`},o=M(null),s=M(null),c=Yt({sourceLocale:``,locales:[],outputs:[],indent:2,sortKeys:!0,finalNewline:!0,autoExport:!0,exportLocales:[],customWords:[],lintRules:{},lintIgnore:[],scanAccessors:[],scanPatterns:[],scanInclude:[],scanExclude:[],scanKeep:[]}),l=M(!1),u=M(!1),d=M(p()),f=M(!1);function p(){let e=Np().get(`section`)??``;return t.includes(e)?e:`languages`}function m(e){d.value=e,location.hash=`settings?section=${e}`}function h(){d.value=p()}let g=M(null),_=M(!1),v=null;function y(e){c.sourceLocale=e.sourceLocale,c.locales=[...e.locales],c.outputs=e.outputs.map(e=>({...e})),c.indent=e.indent,c.sortKeys=e.sortKeys,c.finalNewline=e.finalNewline,c.autoExport=e.autoExport,c.exportLocales=[...e.exportLocales],c.customWords=[...e.customWords],c.lintRules={...e.lintRules},c.lintIgnore=[...e.lintIgnore],c.scanAccessors=[...e.scanAccessors],c.scanPatterns=[...e.scanPatterns],c.scanInclude=[...e.scanInclude],c.scanExclude=[...e.scanExclude],c.scanKeep=[...e.scanKeep]}function b(){o.value={sourceLocale:c.sourceLocale,locales:[...c.locales],outputs:c.outputs.map(e=>({...e})),indent:c.indent,sortKeys:c.sortKeys,finalNewline:c.finalNewline,autoExport:c.autoExport,exportLocales:[...c.exportLocales],customWords:[...c.customWords],lintRules:{...c.lintRules},lintIgnore:[...c.lintIgnore],scanAccessors:[...c.scanAccessors],scanPatterns:[...c.scanPatterns],scanInclude:[...c.scanInclude],scanExclude:[...c.scanExclude],scanKeep:[...c.scanKeep]}}async function x(){let e=await jd();s.value=e.config,y(rj(e.config)),b(),await O(),l.value=!0}x();let S=M({}),C=q(()=>Object.keys(S.value).sort((e,t)=>e.localeCompare(t))),w=M(null),T=M(``),E=Yt({provider:`anthropic`,model:``,endpoint:``,region:``,batchSize:25,concurrency:``,contextBatchSize:``,contextConcurrency:``,vision:!1,promptStyle:``,inputPricePerMTok:``,outputPricePerMTok:``}),D=M(!1),ee=null,te=null,ne=``;async function O(){let[e,t]=await Promise.all([df(),pf()]);S.value=t.profiles,w.value=t.activeProfile,T.value=t.activeProfile??``,re(w.value?t.profiles[w.value]??e.ai:e.ai),ne=JSON.stringify(ie())}function re(e){E.provider=e.provider,E.model=e.model,E.endpoint=e.endpoint??``,E.region=e.region??``,E.batchSize=e.batchSize,E.concurrency=e.concurrency??``,E.contextBatchSize=e.contextBatchSize??``,E.contextConcurrency=e.contextConcurrency??``,E.vision=e.vision??!1,E.promptStyle=e.promptStyle??``,E.inputPricePerMTok=e.inputPricePerMTok??``,E.outputPricePerMTok=e.outputPricePerMTok??``,ne=JSON.stringify(ie())}function ie(){let e=String(E.endpoint).trim(),t=String(E.region).trim(),n=Number(E.batchSize),r=Number(E.concurrency),i=Number(E.contextBatchSize),a=Number(E.contextConcurrency),o=Number(E.inputPricePerMTok),s=Number(E.outputPricePerMTok);return{provider:E.provider.trim(),model:E.model.trim(),endpoint:e===``?null:e,region:t===``?null:t,batchSize:Number.isFinite(n)&&n>0?n:25,concurrency:Number.isFinite(r)&&r>0?r:void 0,contextBatchSize:Number.isFinite(i)&&i>0?i:void 0,contextConcurrency:Number.isFinite(a)&&a>0?a:void 0,vision:E.vision||void 0,promptStyle:E.promptStyle||void 0,inputPricePerMTok:E.inputPricePerMTok!==``&&Number.isFinite(o)&&o>=0?o:void 0,outputPricePerMTok:E.outputPricePerMTok!==``&&Number.isFinite(s)&&s>=0?s:void 0}}Er(E,()=>{JSON.stringify(ie())!==ne&&(te&&clearTimeout(te),te=setTimeout(async()=>{let e=ie();try{w.value?(await mf(w.value,e),S.value={...S.value,[w.value]:e}):await ff({ai:e}),ne=JSON.stringify(e),D.value=!0,ee&&clearTimeout(ee),ee=setTimeout(()=>{D.value=!1},1700)}catch(e){Q.error(e.message)}},500))},{deep:!0});let ae=[`languages`,`outputs`,`scan`,`quality`,`dictionary`],oe=[`ai`,`editor`];function k(e){if(!o.value)return!0;let t=c,n=o.value;return e===`languages`?JSON.stringify(t.locales)===JSON.stringify(n.locales)&&t.sourceLocale===n.sourceLocale:e===`outputs`?JSON.stringify(t.outputs)===JSON.stringify(n.outputs)&&String(t.indent)===String(n.indent)&&t.finalNewline===n.finalNewline&&t.autoExport===n.autoExport&&JSON.stringify(t.exportLocales)===JSON.stringify(n.exportLocales):e===`scan`?JSON.stringify(t.scanAccessors)===JSON.stringify(n.scanAccessors)&&JSON.stringify(t.scanPatterns)===JSON.stringify(n.scanPatterns)&&JSON.stringify(t.scanInclude)===JSON.stringify(n.scanInclude)&&JSON.stringify(t.scanExclude)===JSON.stringify(n.scanExclude)&&JSON.stringify(t.scanKeep)===JSON.stringify(n.scanKeep):e===`quality`?JSON.stringify(t.lintRules)===JSON.stringify(n.lintRules)&&JSON.stringify(t.lintIgnore)===JSON.stringify(n.lintIgnore):e===`dictionary`?JSON.stringify(t.customWords)===JSON.stringify(n.customWords):!0}let se=q(()=>ae.filter(e=>!k(e))),ce=q(()=>se.value.length),le=q(()=>se.value.map(e=>me[e].title));Er(ce,e=>{aj.value=e},{immediate:!0}),Yi(()=>{aj.value=0});let ue=q(()=>bT.find(e=>e.id===CT.value)?.label??`VS Code`),de=M(!1),fe=null;function pe(e){wT(e),de.value=!0,fe&&clearTimeout(fe),fe=setTimeout(()=>{de.value=!1},1700)}let me={languages:{title:`Languages`},outputs:{title:`Export targets`},ai:{title:`AI`},scan:{title:`Scan`},quality:{title:`Quality checks`},dictionary:{title:`Custom dictionary`},editor:{title:`Editor`}},he=[{id:`languages`,title:`Languages`},{id:`outputs`,title:`Export targets`},{id:`scan`,title:`Scan`},{id:`quality`,title:`Quality checks`},{id:`dictionary`,title:`Custom dictionary`}];function ge(e){if(e===`languages`)return`${c.locales.length} language${c.locales.length===1?``:`s`}`;if(e===`outputs`)return`${c.outputs.length} target${c.outputs.length===1?``:`s`}${c.autoExport?` · auto`:``}${c.exportLocales.length?` · limited`:``}`;if(e===`ai`)return w.value?`${w.value} · ${E.model}`:`${E.provider} · ${E.model}`;if(e===`scan`){let e=c.scanAccessors.length,t=c.scanPatterns.length,n=c.scanKeep.length,r=[e&&`${e} accessor${e===1?``:`s`}`,t&&`${t} pattern${t===1?``:`s`}`,n&&`${n} kept`].filter(Boolean);return r.length?r.join(` · `):`Auto-detect`}if(e===`quality`){let e=Object.entries(c.lintRules).filter(([,e])=>e===`off`).length,t=Object.entries(c.lintRules).filter(([e,t])=>tj[e]!==void 0&&t!==tj[e]).length;return!t&&!c.lintIgnore.length?`Defaults`:[t&&`${t} adjusted${e?` (${e} off)`:``}`,c.lintIgnore.length&&`${c.lintIgnore.length} ignored`].filter(Boolean).join(` · `)}return e===`dictionary`?c.customWords.length?`${c.customWords.length} word${c.customWords.length===1?``:`s`}`:`No custom words`:``}async function _e(){if(ce.value!==0){u.value=!0;try{await cf(ij(c,s.value??void 0)),b(),_.value=!0,v&&clearTimeout(v),v=setTimeout(()=>{_.value=!1},1700)}catch(e){Q.error(e.message)}finally{u.value=!1}}}function ve(){o.value&&y(o.value),f.value=!1}function ye(e){return e===`settings`||ce.value===0?!0:(g.value=e,!1)}function be(e){g.value=null,jp(e)}function xe(){g.value=null}function Se(){let e=g.value;ve(),e&&be(e)}async function Ce(){let e=g.value;await _e(),e&&ce.value===0&&be(e)}function we(e){ce.value>0&&(e.preventDefault(),e.returnValue=``)}function Te(e){if(e.key===`Escape`&&g.value){e.preventDefault(),xe();return}(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),_e())}Gi(()=>{window.addEventListener(`keydown`,Te),window.addEventListener(`beforeunload`,we),window.addEventListener(`hashchange`,h),Ap(ye)}),Yi(()=>{window.removeEventListener(`keydown`,Te),window.removeEventListener(`beforeunload`,we),window.removeEventListener(`hashchange`,h),Ap(null)});let Ee=M(``);function De(){let e=Ee.value.trim().toLowerCase();if(e){if(c.locales.some(t=>t.toLowerCase()===e)){Q.error(`${e} is already in the list`);return}c.locales.push(e),Ee.value=``}}function Oe(e){e!==c.sourceLocale&&(c.locales=c.locales.filter(t=>t!==e))}function ke(){c.outputs.push({adapter:`flutter-arb`,path:``,emptyAs:`omit`,style:`nested`,indent:null,finalNewline:null,includeLocale:!0,localeAliases:{}})}function Ae(e){c.outputs.splice(e,1)}let je=q(()=>c.exportLocales.length>0);function Me(e){c.exportLocales=e?[...c.locales]:[]}function Ne(e){c.exportLocales=c.exportLocales.includes(e)?c.exportLocales.filter(t=>t!==e):[...c.exportLocales,e]}let Pe=q(()=>E.provider===`bedrock`),Fe=q(()=>E.provider===`ollama`),Ie=q(()=>a[E.provider]??``),Le=q(()=>i[E.provider]??[]),Re=q(()=>Le.value[0]??``);async function ze(e){w.value=e,T.value=e??``,await gf(e),re(e?S.value[e]??ie():(await df()).ai)}async function Be(){let e=`Profile ${Object.keys(S.value).length+1}`,t=ie();await mf(e,t),S.value={...S.value,[e]:t},await ze(e)}async function Ve(e,t){let n=t.trim();if(!n||n===e){T.value=e;return}if(n in S.value){Q.error(`A profile with that name already exists`),T.value=e;return}let r=S.value[e];await mf(n,r),await hf(e);let i={...S.value};delete i[e],i[n]=r,S.value=i,await ze(n)}async function He(){if(!w.value)return;let e=w.value;await hf(e);let t={...S.value};delete t[e],S.value=t,await ze(null)}let Ue=M(``);function We(){let e=Ue.value.trim();if(e){if(c.customWords.includes(e)){Q.error(`${e} is already in the dictionary`);return}c.customWords=[...c.customWords,e].sort(),Ue.value=``}}function Ge(e){c.customWords=c.customWords.filter(t=>t!==e)}function Ke(e){try{return new RegExp(e),null}catch(e){return`Invalid regex: ${e.message}`}}let qe=M(!1),Je=M(null);function Ye(){location.reload()}return(e,t)=>(z(),B(R,null,[l.value?(z(),B(`div`,HM,[H(`nav`,UM,[t[33]||=H(`p`,{class:`px-2.5 pb-2 pt-1 text-[10.5px] font-bold uppercase tracking-widest text-muted-foreground`},` Settings `,-1),(z(),B(R,null,I(he,e=>H(`button`,{key:e.id,type:`button`,class:A([`flex w-full items-center gap-2.5 rounded-[10px] border px-2.5 py-2.5 text-left transition-colors`,d.value===e.id?`border-border bg-card text-foreground shadow-sm`:`border-transparent bg-transparent text-muted-foreground hover:bg-accent hover:text-foreground`]),onClick:t=>m(e.id)},[H(`span`,{class:A([`flex size-[30px] shrink-0 items-center justify-center rounded-lg border`,d.value===e.id?`border-primary/30 bg-primary/10 text-primary`:`border-border/60 bg-background text-muted-foreground`])},[e.id===`languages`?(z(),V(N(qu),{key:0,class:`size-4`})):e.id===`outputs`?(z(),V(N(Uu),{key:1,class:`size-4`})):e.id===`ai`?(z(),V(N(Iu),{key:2,class:`size-4`})):e.id===`scan`?(z(),V(N(dd),{key:3,class:`size-4`})):e.id===`quality`?(z(),V(N(hd),{key:4,class:`size-4`})):(z(),V(N(Cu),{key:5,class:`size-4`}))],2),H(`span`,GM,[H(`span`,KM,j(e.title),1),H(`span`,qM,j(ge(e.id)),1)]),!e.autosave&&se.value.includes(e.id)?(z(),B(`span`,JM)):G(``,!0),e.autosave?(z(),B(`span`,YM,`Auto`)):G(``,!0)],10,WM)),64)),t[34]||=H(`p`,{class:`mt-4 border-t px-2.5 pb-2 pt-3 text-[10.5px] font-bold uppercase tracking-widest text-muted-foreground`},` Local (not committed) `,-1),(z(),B(R,null,I(oe,e=>H(`button`,{key:e,type:`button`,class:A([`flex w-full items-center gap-2.5 rounded-[10px] border px-2.5 py-2.5 text-left transition-colors`,d.value===e?`border-border bg-card text-foreground shadow-sm`:`border-transparent bg-transparent text-muted-foreground hover:bg-accent hover:text-foreground`]),onClick:t=>m(e)},[H(`span`,{class:A([`flex size-[30px] shrink-0 items-center justify-center rounded-lg border`,d.value===e?`border-primary/30 bg-primary/10 text-primary`:`border-border/60 bg-background text-muted-foreground`])},[e===`ai`?(z(),V(N(Iu),{key:0,class:`size-4`})):(z(),V(N(Fu),{key:1,class:`size-4`}))],2),H(`span`,ZM,[H(`span`,QM,j(me[e].title),1),H(`span`,$M,j(e===`editor`?ue.value:ge(e)),1)])],10,XM)),64))]),H(`div`,eN,[H(`div`,tN,[H(`div`,nN,[H(`div`,rN,[H(`h2`,iN,[W(j(me[d.value].title)+` `,1),se.value.includes(d.value)?(z(),B(`span`,aN)):G(``,!0)]),d.value===`languages`?(z(),B(`p`,oN,` The source language is translated into every other language. `)):d.value===`outputs`?(z(),B(`p`,sN,[...t[35]||=[W(` Where compiled translation files are written. Use `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`{locale}`,-1),W(` and `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`{namespace}`,-1),W(` placeholders in the path. `,-1)]])):d.value===`ai`?(z(),B(`p`,cN,[...t[36]||=[W(` The provider and model used for machine translation. Stored locally in `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`.glotfile/`,-1),W(`, not shared with your team. `,-1)]])):d.value===`scan`?(z(),B(`p`,lN,` How the usage scanner finds where keys are referenced in code. Auto-detection handles most projects — these settings are for the cases it can't infer. `)):d.value===`quality`?(z(),B(`p`,uN,[...t[37]||=[W(` Which checks run and how severe they are — in the editor, the Analytics release gate, and `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`glotfile lint`,-1),W(` alike. Errors block a release; warnings don't. `,-1)]])):d.value===`dictionary`?(z(),B(`p`,dN,` Words the spell checker should never flag. Added here or from a cell's warning. `)):d.value===`editor`?(z(),B(`p`,fN,[...t[38]||=[W(` Which editor opens when you click a key's code usage. Stored locally in `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`.glotfile/`,-1),W(`, not shared with your team. `,-1)]])):G(``,!0),oe.includes(d.value)?(z(),B(`p`,pN,[U(N(Ad),{class:`size-3.5`}),t[39]||=W(` Changes here save automatically. `,-1)])):G(``,!0)]),d.value===`languages`?(z(),B(`div`,mN,[H(`div`,hN,[U(N(MC),{for:`source-locale`},{default:P(()=>[...t[40]||=[W(`Source language`,-1)]]),_:1}),U(N(mS),{modelValue:c.sourceLocale,"onUpdate:modelValue":t[0]||=e=>c.sourceLocale=e},{default:P(()=>[U(N(cC),{id:`source-locale`},{default:P(()=>[c.sourceLocale?(z(),B(`span`,gN,[U(zw,{code:c.sourceLocale,"show-name":``,size:14},null,8,[`code`])])):(z(),V(N(FS),{key:1,placeholder:`Select source`}))]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(c.locales,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[U(zw,{code:e,"show-name":``,size:14},null,8,[`code`])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`div`,_N,[U(N(MC),null,{default:P(()=>[t[41]||=W(` Languages `,-1),H(`span`,vN,j(c.locales.length),1)]),_:1}),H(`div`,yN,[(z(!0),B(R,null,I(c.locales,e=>(z(),B(`span`,{key:e,class:A([`inline-flex items-center gap-1.5 rounded-[9px] border px-2.5 py-1.5 text-sm transition-colors`,e===c.sourceLocale?`border-border/60 bg-accent`:`border-border bg-background`])},[U(zw,{code:e,"show-name":``,size:14},null,8,[`code`]),e===c.sourceLocale?(z(),B(`span`,bN,`source`)):(z(),B(`button`,{key:1,type:`button`,class:`ml-0.5 flex size-[18px] items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove ${e}`,onClick:t=>Oe(e)},[U(N(kd),{class:`size-3`})],8,xN))],2))),128))]),H(`p`,SN,[U(N(Td),{class:`size-3.5`}),t[42]||=W(` Removing a language deletes its translations. `,-1)])]),H(`div`,CN,[U(N(MC),{for:`add-locale`},{default:P(()=>[...t[43]||=[W(`Add language`,-1)]]),_:1}),H(`div`,wN,[U(N(sC),{id:`add-locale`,modelValue:Ee.value,"onUpdate:modelValue":t[1]||=e=>Ee.value=e,class:`font-mono`,placeholder:`es`,onKeydown:Xl(Jl(De,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),U(N($),{variant:`outline`,onClick:De},{default:P(()=>[U(N(od),{class:`size-4`}),t[44]||=W(` Add`,-1)]),_:1})]),Ee.value.trim()?(z(),B(`p`,TN,[t[45]||=W(` Preview: `,-1),U(zw,{code:Ee.value.trim(),"show-name":``,size:14},null,8,[`code`])])):G(``,!0)])])):d.value===`outputs`?(z(),B(`div`,EN,[H(`div`,DN,[H(`div`,ON,[H(`span`,kN,[U(N(Ad),{class:`size-4`})]),t[46]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Auto-export on save`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Write locale files to your project automatically as you edit, so your running app picks them up immediately.`)],-1)]),U(N(_C),{modelValue:c.autoExport,"onUpdate:modelValue":t[2]||=e=>c.autoExport=e},null,8,[`modelValue`])]),H(`div`,AN,[H(`div`,jN,[H(`span`,MN,[U(N(sd),{class:`size-4`})]),t[47]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Sync from files`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},[W(`Re-read the locale files on disk and merge changes into the catalog — keeping glossary, context and translations. For Angular, run this after `),H(`span`,{class:`font-mono`},`ng extract-i18n`),W(`.`)])],-1)]),U(N($),{variant:`outline`,size:`sm`,"data-testid":`open-sync`,class:`shrink-0`,onClick:t[3]||=e=>qe.value=!0},{default:P(()=>[U(N(sd),{class:`size-4`}),t[48]||=W(` Sync `,-1)]),_:1})]),H(`div`,NN,[H(`div`,PN,[H(`div`,FN,[H(`span`,IN,[U(N(Zu),{class:`size-4`})]),t[49]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Limit export languages`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Only the selected languages are written to disk, including auto-export. Off exports all languages.`)],-1)]),U(N(_C),{"model-value":je.value,"onUpdate:modelValue":Me},null,8,[`model-value`])]),je.value?(z(),B(`div`,LN,[H(`div`,RN,[(z(!0),B(R,null,I(c.locales,e=>(z(),B(`button`,{key:e,type:`button`,role:`checkbox`,"aria-checked":c.exportLocales.includes(e),class:A([`inline-flex items-center gap-1.5 rounded-[9px] border px-2.5 py-1.5 text-sm transition-colors`,c.exportLocales.includes(e)?`border-primary/40 bg-primary/10`:`border-border bg-background text-muted-foreground hover:bg-accent`]),onClick:t=>Ne(e)},[H(`span`,{class:A([`flex size-4 items-center justify-center rounded border transition-colors`,c.exportLocales.includes(e)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[c.exportLocales.includes(e)?(z(),V(N(Du),{key:0,class:`size-3`})):G(``,!0)],2),U(zw,{code:e,"show-name":``,size:14},null,8,[`code`])],10,zN))),128))]),H(`p`,BN,[U(N(Td),{class:`size-3.5`}),W(` Export limited to `+j(c.exportLocales.length)+` of `+j(c.locales.length)+` languages. `,1)])])):G(``,!0)]),H(`div`,null,[t[57]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Format defaults`,-1),t[58]||=H(`p`,{class:`mt-1 text-xs text-muted-foreground`},`Export targets inherit these. Indent and Final newline can be overridden per target.`,-1),H(`div`,VN,[H(`div`,HN,[t[51]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Indent`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Spaces per nesting level.`)],-1),H(`div`,UN,[U(N(sC),{modelValue:c.indent,"onUpdate:modelValue":t[4]||=e=>c.indent=e,modelModifiers:{number:!0},type:`number`,min:`0`,max:`8`,class:`w-20`},null,8,[`modelValue`]),t[50]||=H(`span`,{class:`text-xs text-muted-foreground`},`spaces`,-1)])]),H(`div`,WN,[H(`div`,null,[H(`div`,GN,[t[53]||=W(` Sort keys `,-1),H(`span`,KN,[U(N(ed),{class:`size-2.5`}),t[52]||=W(` Locked`,-1)])]),t[54]||=H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Keys are always written alphabetically so output is deterministic and diffs stay clean.`,-1)]),H(`span`,qN,[U(N(Du),{class:`size-3`}),t[55]||=W(` Always alphabetical`,-1)])]),H(`div`,JN,[t[56]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Final newline`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Append a trailing newline at the end of every file.`)],-1),U(N(_C),{modelValue:c.finalNewline,"onUpdate:modelValue":t[5]||=e=>c.finalNewline=e},null,8,[`modelValue`])])])]),H(`div`,null,[t[60]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Export targets`,-1),H(`div`,YN,[(z(!0),B(R,null,I(c.outputs,(e,t)=>(z(),V(Jj,{key:t,output:e,"format-indent":Number(c.indent)||0,"format-final-newline":c.finalNewline,locales:c.locales,adapters:n,"onUpdate:output":e=>c.outputs.splice(t,1,e),onRemove:e=>Ae(t)},null,8,[`output`,`format-indent`,`format-final-newline`,`locales`,`onUpdate:output`,`onRemove`]))),128)),c.outputs.length===0?(z(),B(`p`,XN,`No export targets configured.`)):G(``,!0),H(`div`,null,[U(N($),{variant:`ghost`,size:`sm`,class:`mt-1 pl-2`,onClick:ke},{default:P(()=>[U(N(od),{class:`size-4`}),t[59]||=W(` Add export target `,-1)]),_:1})])])])])):d.value===`ai`?(z(),B(`div`,ZN,[H(`div`,QN,[U(N(mS),{"model-value":w.value??`__none__`,"onUpdate:modelValue":t[6]||=e=>ze(e===`__none__`?null:e)},{default:P(()=>[U(N(cC),{class:`w-44`},{default:P(()=>[U(N(FS),{placeholder:`No profile`})]),_:1}),U(N(lC),null,{default:P(()=>[U(N(dC),{value:`__none__`},{default:P(()=>[...t[61]||=[W(`No profile`,-1)]]),_:1}),(z(!0),B(R,null,I(C.value,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),w.value?(z(),V(N(sC),{key:0,modelValue:T.value,"onUpdate:modelValue":t[7]||=e=>T.value=e,class:`flex-1 font-medium`,placeholder:`Profile name`,onBlur:t[8]||=e=>Ve(w.value,T.value),onKeydown:t[9]||=Xl(Jl(e=>Ve(w.value,T.value),[`prevent`]),[`enter`])},null,8,[`modelValue`])):(z(),B(`span`,$N,`Using default settings`)),U(N($),{variant:`outline`,size:`sm`,class:`shrink-0`,onClick:Be},{default:P(()=>[U(N(od),{class:`size-4`}),t[62]||=W(` New `,-1)]),_:1}),U(N($),{variant:`ghost`,size:`sm`,class:`shrink-0 text-destructive hover:bg-destructive/10 hover:text-destructive`,disabled:!w.value,onClick:He},{default:P(()=>[U(N(kd),{class:`size-4`})]),_:1},8,[`disabled`])]),H(`div`,eP,[H(`div`,tP,[H(`div`,nP,[U(N(MC),{for:`ai-provider`},{default:P(()=>[...t[63]||=[W(`Provider`,-1)]]),_:1}),U(hc,{"enter-active-class":`transition duration-150 ease-out`,"enter-from-class":`opacity-0 translate-y-0.5`,"enter-to-class":`opacity-100 translate-y-0`,"leave-active-class":`transition duration-300 ease-in`,"leave-from-class":`opacity-100 translate-y-0`,"leave-to-class":`opacity-0`},{default:P(()=>[D.value?(z(),B(`span`,rP,[U(N(Du),{class:`size-3`}),t[64]||=W(` Saved `,-1)])):G(``,!0)]),_:1})]),U(N(mS),{modelValue:E.provider,"onUpdate:modelValue":t[10]||=e=>E.provider=e},{default:P(()=>[U(N(cC),{id:`ai-provider`},{default:P(()=>[U(N(FS),{placeholder:`Select provider`})]),_:1}),U(N(lC),null,{default:P(()=>[(z(),B(R,null,I(r,e=>U(N(dC),{key:e.value,value:e.value},{default:P(()=>[W(j(e.label),1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`]),H(`p`,iP,j(Ie.value),1)]),H(`div`,aP,[U(N(MC),{for:`ai-model`},{default:P(()=>[...t[65]||=[W(`Model`,-1)]]),_:1}),U(N(sC),{id:`ai-model`,modelValue:E.model,"onUpdate:modelValue":t[11]||=e=>E.model=e,class:`font-mono`,placeholder:Re.value},null,8,[`modelValue`,`placeholder`]),Le.value.length?(z(),B(`p`,oP,[t[66]||=W(` Examples: `,-1),(z(!0),B(R,null,I(Le.value,(e,t)=>(z(),B(R,{key:e},[H(`button`,{type:`button`,class:`font-mono underline-offset-2 hover:text-foreground hover:underline`,onClick:t=>E.model=e},j(e),9,sP),t<Le.value.length-1?(z(),B(`span`,cP,` · `)):G(``,!0)],64))),128))])):G(``,!0)]),Pe.value?(z(),B(`div`,lP,[U(N(MC),{for:`ai-region`},{default:P(()=>[...t[67]||=[W(`Region`,-1)]]),_:1}),U(N(sC),{id:`ai-region`,modelValue:E.region,"onUpdate:modelValue":t[12]||=e=>E.region=e,class:`font-mono`,placeholder:`us-east-1`},null,8,[`modelValue`]),t[68]||=H(`p`,{class:`text-xs text-muted-foreground`},[W(`AWS region for Bedrock. Falls back to `),H(`code`,{class:`font-mono`},`AWS_REGION`),W(` if empty.`)],-1)])):(z(),B(`div`,uP,[U(N(MC),{for:`ai-endpoint`},{default:P(()=>[...t[69]||=[W(`Endpoint`,-1)]]),_:1}),U(N(sC),{id:`ai-endpoint`,modelValue:E.endpoint,"onUpdate:modelValue":t[13]||=e=>E.endpoint=e,class:`font-mono`,placeholder:Fe.value?`http://localhost:11434/v1`:`Default (leave empty)`},null,8,[`modelValue`,`placeholder`]),Fe.value?(z(),B(`p`,dP,[...t[70]||=[W(`Defaults to the local Ollama server. Override only for a remote instance — include the `,-1),H(`code`,{class:`font-mono`},`/v1`,-1),W(` suffix.`,-1)]])):(z(),B(`p`,fP,`Optional — for an in-region or self-hosted / OpenAI-compatible gateway.`))])),t[88]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Translation`,-1),H(`div`,pP,[U(N(MC),{for:`ai-batch`},{default:P(()=>[...t[71]||=[W(`Batch size`,-1)]]),_:1}),U(N(sC),{id:`ai-batch`,modelValue:E.batchSize,"onUpdate:modelValue":t[14]||=e=>E.batchSize=e,modelModifiers:{number:!0},type:`number`,min:`1`,class:`w-28`},null,8,[`modelValue`]),t[72]||=H(`p`,{class:`text-xs text-muted-foreground`},`Strings sent per request.`,-1)]),H(`div`,mP,[U(N(MC),{for:`ai-concurrency`},{default:P(()=>[...t[73]||=[W(`Parallel locales`,-1)]]),_:1}),U(N(sC),{id:`ai-concurrency`,modelValue:E.concurrency,"onUpdate:modelValue":t[15]||=e=>E.concurrency=e,modelModifiers:{number:!0},type:`number`,min:`1`,placeholder:`3`,class:`w-28`},null,8,[`modelValue`]),t[74]||=H(`p`,{class:`text-xs text-muted-foreground`},`How many locales to translate at once.`,-1)]),H(`div`,hP,[U(N(MC),{for:`ai-price-in`},{default:P(()=>[...t[75]||=[W(`Input price ($ / 1M tokens)`,-1)]]),_:1}),U(N(sC),{id:`ai-price-in`,modelValue:E.inputPricePerMTok,"onUpdate:modelValue":t[16]||=e=>E.inputPricePerMTok=e,modelModifiers:{number:!0},type:`number`,min:`0`,step:`0.01`,placeholder:`Auto for Claude models`,class:`w-44`},null,8,[`modelValue`])]),H(`div`,gP,[U(N(MC),{for:`ai-price-out`},{default:P(()=>[...t[76]||=[W(`Output price ($ / 1M tokens)`,-1)]]),_:1}),U(N(sC),{id:`ai-price-out`,modelValue:E.outputPricePerMTok,"onUpdate:modelValue":t[17]||=e=>E.outputPricePerMTok=e,modelModifiers:{number:!0},type:`number`,min:`0`,step:`0.01`,placeholder:`Auto for Claude models`,class:`w-44`},null,8,[`modelValue`]),t[77]||=H(`p`,{class:`text-xs text-muted-foreground`},`Used for the pre-translate cost estimate. Set both to override the built-in Claude prices or to price other models.`,-1)]),t[89]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Context build`,-1),H(`div`,_P,[U(N(MC),{for:`ai-context-batch`},{default:P(()=>[...t[78]||=[W(`Batch size`,-1)]]),_:1}),U(N(sC),{id:`ai-context-batch`,modelValue:E.contextBatchSize,"onUpdate:modelValue":t[18]||=e=>E.contextBatchSize=e,modelModifiers:{number:!0},type:`number`,min:`1`,placeholder:String(E.batchSize||25),class:`w-28`},null,8,[`modelValue`,`placeholder`]),t[79]||=H(`p`,{class:`text-xs text-muted-foreground`},`Keys per request. Defaults to translation batch size.`,-1)]),H(`div`,vP,[U(N(MC),{for:`ai-context-concurrency`},{default:P(()=>[...t[80]||=[W(`Concurrency`,-1)]]),_:1}),U(N(sC),{id:`ai-context-concurrency`,modelValue:E.contextConcurrency,"onUpdate:modelValue":t[19]||=e=>E.contextConcurrency=e,modelModifiers:{number:!0},type:`number`,min:`1`,placeholder:String(E.concurrency||3),class:`w-28`},null,8,[`modelValue`,`placeholder`]),t[81]||=H(`p`,{class:`text-xs text-muted-foreground`},`Parallel context requests. Defaults to parallel locales.`,-1)]),Fe.value?(z(),B(`div`,yP,[U(N(_C),{id:`ai-vision`,modelValue:E.vision,"onUpdate:modelValue":t[20]||=e=>E.vision=e},null,8,[`modelValue`]),H(`div`,bP,[U(N(MC),{for:`ai-vision`},{default:P(()=>[...t[82]||=[W(`Vision`,-1)]]),_:1}),t[83]||=H(`p`,{class:`text-xs text-muted-foreground`},`Enable for models that support image input (e.g. translategemma, llava).`,-1)])])):G(``,!0),Fe.value?(z(),B(`div`,xP,[U(N(MC),{for:`ai-prompt-style`},{default:P(()=>[...t[84]||=[W(`Prompt style`,-1)]]),_:1}),U(N(mS),{"model-value":E.promptStyle||`__default__`,"onUpdate:modelValue":t[21]||=e=>E.promptStyle=e===`__default__`?``:e},{default:P(()=>[U(N(cC),{id:`ai-prompt-style`},{default:P(()=>[U(N(FS),{placeholder:`Default`})]),_:1}),U(N(lC),null,{default:P(()=>[U(N(dC),{value:`__default__`},{default:P(()=>[...t[85]||=[W(`Default`,-1)]]),_:1}),U(N(dC),{value:`translategemma`},{default:P(()=>[...t[86]||=[W(`TranslateGemma`,-1)]]),_:1})]),_:1})]),_:1},8,[`model-value`]),t[87]||=H(`p`,{class:`text-xs text-muted-foreground`},`TranslateGemma uses a role-based system prompt and plain-text output instead of JSON batching.`,-1)])):G(``,!0)])])):d.value===`scan`?(z(),B(`div`,SP,[U(tM,{label:`Flutter accessors`,items:c.scanAccessors,mono:``,placeholder:`translations`,"onUpdate:items":t[22]||=e=>c.scanAccessors=e},{help:P(()=>[...t[90]||=[H(`p`,{class:`text-xs text-muted-foreground`},[W(` Accessors assigned from `),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-[11px]`},`AppLocalizations.of(...)`),W(` are detected automatically. Add a name only if yours isn't found. `)],-1)]]),_:1},8,[`items`]),U(tM,{label:`Custom patterns`,items:c.scanPatterns,mono:``,placeholder:`LocaleKeys\\.(\\w+)\\.tr\\(\\)`,validate:Ke,"onUpdate:items":t[23]||=e=>c.scanPatterns=e},{help:P(()=>[...t[91]||=[H(`p`,{class:`text-xs text-muted-foreground`},` Regex applied to every scanned file — capture group 1 is the key. `,-1)]]),_:1},8,[`items`]),U(tM,{label:`Include globs`,items:c.scanInclude,mono:``,placeholder:`lib/**`,"onUpdate:items":t[24]||=e=>c.scanInclude=e},{help:P(()=>[...t[92]||=[H(`p`,{class:`text-xs text-muted-foreground`},`Limit the scan to these globs. Empty scans everything.`,-1)]]),_:1},8,[`items`]),U(tM,{label:`Exclude globs`,items:c.scanExclude,mono:``,placeholder:`**/*.g.dart`,"onUpdate:items":t[25]||=e=>c.scanExclude=e},{help:P(()=>[...t[93]||=[H(`p`,{class:`text-xs text-muted-foreground`},`Skipped on top of always-excluded dirs (node_modules, build, …).`,-1)]]),_:1},8,[`items`]),U(tM,{label:`Keep keys`,items:c.scanKeep,mono:``,placeholder:`validation.*`,"onUpdate:items":t[26]||=e=>c.scanKeep=e},{help:P(()=>[...t[94]||=[H(`p`,{class:`text-xs text-muted-foreground`},[W(` Key globs always treated as used — for keys consumed by code the scan can't see (framework internals, vendored packages). They never show as unused and are safe from `),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-[11px]`},`prune --unused`),W(`. `)],-1)]]),_:1},8,[`items`])])):d.value===`quality`?(z(),B(`div`,CP,[H(`div`,null,[t[96]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Rules`,-1),H(`div`,wP,[(z(!0),B(R,null,I(N(ej),e=>(z(),B(`div`,{key:e.id,class:`flex items-center justify-between gap-4 p-3.5`},[H(`div`,TP,[H(`div`,EP,[W(j(e.label)+` `,1),H(`code`,DP,j(e.id),1)]),H(`div`,OP,j(e.description),1)]),U(N(mS),{"model-value":c.lintRules[e.id]??e.default,"onUpdate:modelValue":t=>c.lintRules={...c.lintRules,[e.id]:t}},{default:P(()=>[U(N(cC),{class:A([`w-32 shrink-0`,c.lintRules[e.id]===`off`?`text-muted-foreground`:``])},{default:P(()=>[U(N(FS))]),_:1},8,[`class`]),U(N(lC),null,{default:P(()=>[U(N(dC),{value:`error`},{default:P(()=>[W(`Error`+j(e.default===`error`?` ·`:``),1)]),_:2},1024),U(N(dC),{value:`warn`},{default:P(()=>[W(`Warning`+j(e.default===`warn`?` ·`:``),1)]),_:2},1024),U(N(dC),{value:`off`},{default:P(()=>[...t[95]||=[W(`Off`,-1)]]),_:1})]),_:2},1024)]),_:2},1032,[`model-value`,`onUpdate:modelValue`])]))),128))]),t[97]||=H(`p`,{class:`mt-2 text-xs text-muted-foreground`},`· marks the built-in default.`,-1)]),U(tM,{label:`Ignore keys`,items:c.lintIgnore,mono:``,placeholder:`legacy.*`,"onUpdate:items":t[27]||=e=>c.lintIgnore=e},{help:P(()=>[...t[98]||=[H(`p`,{class:`text-xs text-muted-foreground`},` Key globs excluded from every check — for legacy or generated keys you don't maintain. `,-1)]]),_:1},8,[`items`])])):d.value===`dictionary`?(z(),B(`div`,kP,[H(`div`,AP,[(z(!0),B(R,null,I(c.customWords,e=>(z(),B(`span`,{key:e,class:`inline-flex items-center gap-1.5 rounded-lg border bg-accent px-2.5 py-1.5 font-mono text-sm`},[W(j(e)+` `,1),H(`button`,{type:`button`,class:`flex size-[18px] items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove ${e}`,onClick:t=>Ge(e)},[U(N(kd),{class:`size-3`})],8,jP)]))),128)),c.customWords.length===0?(z(),B(`p`,MP,`No custom words yet.`)):G(``,!0)]),H(`div`,NP,[U(N(MC),{for:`add-word`},{default:P(()=>[...t[99]||=[W(`Add word`,-1)]]),_:1}),H(`div`,PP,[U(N(sC),{id:`add-word`,modelValue:Ue.value,"onUpdate:modelValue":t[28]||=e=>Ue.value=e,class:`font-mono`,placeholder:`Glotfile`,onKeydown:Xl(Jl(We,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),U(N($),{variant:`outline`,onClick:We},{default:P(()=>[U(N(od),{class:`size-4`}),t[100]||=W(` Add`,-1)]),_:1})])])])):d.value===`editor`?(z(),B(`div`,FP,[H(`div`,IP,[H(`div`,LP,[U(N(MC),{for:`editor-select`},{default:P(()=>[...t[101]||=[W(`Editor`,-1)]]),_:1}),U(hc,{"enter-active-class":`transition duration-150 ease-out`,"enter-from-class":`opacity-0 translate-y-0.5`,"enter-to-class":`opacity-100 translate-y-0`,"leave-active-class":`transition duration-300 ease-in`,"leave-from-class":`opacity-100 translate-y-0`,"leave-to-class":`opacity-0`},{default:P(()=>[de.value?(z(),B(`span`,RP,[U(N(Du),{class:`size-3`}),t[102]||=W(` Saved `,-1)])):G(``,!0)]),_:1})]),U(N(mS),{"model-value":N(CT),"onUpdate:modelValue":pe},{default:P(()=>[U(N(cC),{id:`editor-select`},{default:P(()=>[U(N(FS),{placeholder:`Select editor`})]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(N(bT),e=>(z(),V(N(dC),{key:e.id,value:e.id},{default:P(()=>[W(j(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),H(`p`,zP,[U(N(ed),{class:`size-3.5`}),t[103]||=W(` Stored locally in `,-1),t[104]||=H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`.glotfile/`,-1),t[105]||=W(` — clicking a usage opens the file via its URL scheme. `,-1)])])):G(``,!0)])]),oe.includes(d.value)?G(``,!0):(z(),B(`div`,{key:0,class:A([`absolute bottom-5 left-1/2 flex min-w-[400px] max-w-[calc(100%-3.5rem)] -translate-x-1/2 items-center gap-3 rounded-[14px] border bg-card px-4 py-2.5 shadow-lg transition-[border-color,box-shadow]`,ce.value>0?`border-primary/40 shadow-primary/10`:`border-border`])},[H(`span`,{class:A([`flex min-w-0 flex-1 items-center gap-2 overflow-hidden text-ellipsis whitespace-nowrap text-[13px]`,ce.value>0?`text-foreground`:`text-muted-foreground`])},[ce.value>0?(z(),B(R,{key:0},[H(`span`,BP,j(ce.value),1),W(` Unsaved `+j(ce.value===1?`change`:`changes`)+` in `,1),H(`strong`,VP,j(le.value.join(`, `)),1)],64)):(z(),B(R,{key:1},[U(N(Du),{class:`size-3.5 shrink-0`}),t[106]||=W(` All changes saved `,-1)],64))],2),H(`div`,HP,[U(N($),{variant:`ghost`,size:`sm`,disabled:ce.value===0,onClick:t[29]||=e=>f.value=!f.value},{default:P(()=>[U(N(Ed),{class:`size-4`}),t[107]||=W(` Discard `,-1)]),_:1},8,[`disabled`]),f.value?(z(),B(`div`,UP,[t[110]||=H(`p`,{class:`text-[13px] font-semibold`},`Discard all changes?`,-1),H(`p`,WP,` Reverts every unsaved edit in `+j(le.value.join(`, `))+`. `,1),H(`div`,GP,[U(N($),{size:`sm`,variant:`outline`,onClick:t[30]||=e=>f.value=!1},{default:P(()=>[...t[108]||=[W(`Keep editing`,-1)]]),_:1}),U(N($),{size:`sm`,variant:`destructive`,onClick:ve},{default:P(()=>[...t[109]||=[W(`Discard`,-1)]]),_:1})])])):G(``,!0)]),U(N($),{size:`sm`,disabled:ce.value===0||u.value,onClick:_e},{default:P(()=>[U(N(ud),{class:`size-4`}),t[111]||=W(` Save changes `,-1)]),_:1},8,[`disabled`])],2))])])):(z(),B(`div`,VM,` Loading settings… `)),U(hc,{"enter-active-class":`transition duration-150 ease-out`,"enter-from-class":`opacity-0`,"enter-to-class":`opacity-100`,"leave-active-class":`transition duration-100 ease-in`,"leave-from-class":`opacity-100`,"leave-to-class":`opacity-0`},{default:P(()=>[g.value?(z(),B(`div`,{key:0,class:`fixed inset-0 z-[70] flex items-center justify-center bg-background/70 p-6 backdrop-blur-sm`,onClick:Jl(xe,[`self`])},[H(`div`,KP,[H(`h3`,qP,[U(N(Td),{class:`size-4 text-amber-500`}),t[112]||=W(` Unsaved changes `,-1)]),H(`p`,JP,[W(` You have `+j(ce.value)+` unsaved `+j(ce.value===1?`change`:`changes`)+` in `,1),H(`strong`,YP,j(le.value.join(`, `)),1),t[113]||=W(`. `,-1),H(`span`,XP,`Leaving now discards `+j(ce.value===1?`it`:`them`)+`.`,1)]),H(`div`,ZP,[U(N($),{size:`sm`,variant:`outline`,class:`mr-auto`,onClick:xe},{default:P(()=>[...t[114]||=[W(`Keep editing`,-1)]]),_:1}),U(N($),{size:`sm`,variant:`destructive`,onClick:Se},{default:P(()=>[U(N(Ed),{class:`size-4`}),t[115]||=W(` Discard & leave `,-1)]),_:1}),U(N($),{size:`sm`,disabled:u.value,onClick:Ce},{default:P(()=>[U(N(ud),{class:`size-4`}),t[116]||=W(` Save & leave `,-1)]),_:1},8,[`disabled`])])])])):G(``,!0)]),_:1}),U(hc,{"enter-active-class":`transition duration-200 ease-out`,"enter-from-class":`opacity-0 -translate-y-1.5`,"enter-to-class":`opacity-100 translate-y-0`,"leave-active-class":`transition duration-150 ease-in`,"leave-from-class":`opacity-100 translate-y-0`,"leave-to-class":`opacity-0 -translate-y-1.5`},{default:P(()=>[_.value?(z(),B(`div`,QP,[U(N(Du),{class:`size-3.5`}),t[117]||=W(` Settings saved `,-1)])):G(``,!0)]),_:1}),qe.value?(z(),V(BM,{key:2,ref_key:`syncWizardRef`,ref:Je,onVnodeMounted:t[31]||=e=>Je.value?.init(),onDismiss:t[32]||=e=>qe.value=!1,onSynced:Ye},null,512)):G(``,!0)],64))}}),eF={class:`min-h-0 flex-1 overflow-y-auto`},tF={key:0,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},nF={key:1,class:`flex h-full items-center justify-center p-8`},rF={class:`flex max-w-md flex-col items-center gap-3 text-center text-muted-foreground`},iF={key:2,class:`grid grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-3 p-6`},aF=[`onClick`],oF={class:`flex aspect-video items-center justify-center overflow-hidden border-b bg-muted/30`},sF=[`src`,`alt`],cF={class:`flex flex-col gap-0.5 p-2.5`},lF={class:`truncate font-mono text-xs font-medium`},uF={class:`truncate text-xs text-muted-foreground`},dF={key:1,class:`truncate text-xs text-muted-foreground`},fF={class:`flex max-h-[70vh] items-center justify-center overflow-auto rounded-md border bg-muted/30 p-2`},pF=[`src`,`alt`],mF={key:0,class:`text-sm text-muted-foreground`},hF=F({__name:`ScreenshotsView`,setup(e){let t=un(null),n=M(!1),r=M(null);async function i(){t.value=await jd(),n.value=!0}i(),Th(i);let a=q(()=>t.value?.config.sourceLocale??``),o=q(()=>{let e=t.value;return e?Object.entries(e.keys).filter(([,e])=>!!e.screenshot).map(([e,t])=>({key:e,entry:t,screenshot:t.screenshot,source:t.values[a.value]?.value??``})).sort((e,t)=>e.key.localeCompare(t.key)):[]});return(e,t)=>(z(),B(`div`,eF,[n.value?o.value.length===0?(z(),B(`div`,nF,[H(`div`,rF,[U(N(Ju),{class:`size-8 opacity-60`}),t[2]||=H(`p`,{class:`text-sm`},` No screenshots yet — add one from a key's detail panel in the Editor. `,-1)])])):(z(),B(`div`,iF,[(z(!0),B(R,null,I(o.value,e=>(z(),B(`button`,{key:e.key,type:`button`,class:`group flex flex-col overflow-hidden rounded-lg border bg-card text-left shadow-sm transition-colors hover:border-ring focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:t=>r.value=e},[H(`div`,oF,[H(`img`,{src:`/`+e.screenshot,alt:`Screenshot for ${e.key}`,class:`h-full w-full object-contain`},null,8,sF)]),H(`div`,cF,[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,lF,j(e.key),1)]),_:2},1024),U(N(qC),{class:`font-mono`},{default:P(()=>[W(j(e.key),1)]),_:2},1024)]),_:2},1024),e.source?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,uF,j(e.source),1)]),_:2},1024),U(N(qC),null,{default:P(()=>[W(j(e.source),1)]),_:2},1024)]),_:2},1024)):(z(),B(`span`,dF,`—`))])],8,aF))),128))])):(z(),B(`div`,tF,` Loading screenshots… `)),U(N(C_),{open:r.value!==null,"onUpdate:open":t[1]||=e=>{e||(r.value=null)}},{default:P(()=>[r.value?(z(),V(N(NC),{key:0,class:`max-w-3xl`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),{class:`break-all font-mono text-sm`},{default:P(()=>[W(j(r.value.key),1)]),_:1}),U(N(LC),null,{default:P(()=>[W(j(r.value.source||`—`),1)]),_:1})]),_:1}),H(`div`,fF,[H(`img`,{src:`/`+r.value.screenshot,alt:`Screenshot for ${r.value.key}`,class:`max-h-[65vh] w-auto object-contain`},null,8,pF)]),r.value.entry.context?(z(),B(`p`,mF,[t[3]||=H(`span`,{class:`font-medium text-foreground`},`Context:`,-1),W(` `+j(r.value.entry.context),1)])):G(``,!0),U(N(FC),null,{default:P(()=>[U(N($),{size:`sm`,onClick:t[0]||=e=>N(kh)(r.value.key)},{default:P(()=>[U(N(yd),{class:`size-4`}),t[4]||=W(` Open in editor `,-1)]),_:1})]),_:1})]),_:1})):G(``,!0)]),_:1},8,[`open`])]))}}),gF={class:`min-h-0 flex-1 overflow-y-auto p-4`},_F={key:0,class:`mt-8 text-center text-sm text-muted-foreground`},vF={key:1,class:`mx-auto flex max-w-4xl flex-col gap-4`},yF={key:0,class:`flex flex-wrap gap-1.5`},bF=[`onClick`],xF={class:`flex flex-wrap items-center gap-3 border-b px-4 py-2.5`},SF={class:`text-sm font-medium`},CF={class:`text-sm text-muted-foreground`},wF={class:`border-b`},TF={class:`overflow-x-auto whitespace-pre-wrap break-words bg-muted/40 px-4 py-3 font-mono text-xs leading-relaxed`},EF={class:`divide-y`},DF={class:`flex items-center gap-2`},OF={class:`truncate font-mono text-xs text-muted-foreground`},kF={class:`flex items-start gap-2 text-sm`},AF={class:`min-w-0 flex-1 break-words`},jF={class:`min-w-0 flex-1 break-words`},MF={key:0,class:`text-destructive`},NF={key:1},PF={key:0,class:`text-xs text-muted-foreground`},FF={key:1,class:`flex flex-wrap gap-1`},IF={key:2,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},LF={class:`truncate font-mono`},RF={key:1,class:`flex flex-col gap-1.5 px-4 py-3`},zF={key:0,class:`flex items-center gap-2`},BF={class:`truncate font-mono text-xs text-muted-foreground`},VF={key:1,class:`flex items-start gap-2 text-sm`},HF=F({__name:`ActivityView`,setup(e){let t=M([]),n=M(!0),r=M(`all`);async function i(){try{t.value=await Ef()}catch(e){Q.error(e.message)}finally{n.value=!1}}Gi(i),Th(i);let a=e=>e.kind===`translate`||e.kind===`context`,o=q(()=>[...new Set(t.value.map(e=>e.kind))]),s=q(()=>r.value===`all`?t.value:t.value.filter(e=>e.kind===r.value)),c=e=>lh(`rounded-full border px-2.5 py-0.5 text-xs transition-colors`,r.value===e?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`);function l(e,t){return e.results?.find(e=>e.id===t)}function u(e){return e.doNotTranslate?`${e.term} (do-not-translate)`:e.forced?`${e.term} → ${e.forced}`:e.term}function d(e){return e==null||e===``?`∅`:typeof e==`string`?e:JSON.stringify(e)}let f=e=>typeof e==`object`&&!!e;return(e,i)=>(z(),B(`div`,gF,[!n.value&&t.value.length===0?(z(),B(`p`,_F,` No activity yet — edits, translations, and config changes will show up here. `)):(z(),B(`div`,vF,[o.value.length>1?(z(),B(`div`,yF,[H(`button`,{type:`button`,class:A(c(`all`)),onClick:i[0]||=e=>r.value=`all`},`All`,2),(z(!0),B(R,null,I(o.value,e=>(z(),B(`button`,{key:e,type:`button`,class:A(c(e)),onClick:t=>r.value=e},j(e),11,bF))),128))])):G(``,!0),(z(!0),B(R,null,I(s.value,(e,t)=>(z(),B(`article`,{key:`${e.at}-${t}`,class:`rounded-lg border bg-card`},[H(`header`,xF,[H(`span`,SF,j(new Date(e.at).toLocaleString()),1),U(N(hC),{variant:`outline`,class:`font-mono uppercase`},{default:P(()=>[W(j(e.kind),1)]),_:2},1024),H(`span`,CF,j(e.summary),1),e.model?(z(),V(N(hC),{key:0,variant:`secondary`,class:`ml-auto font-mono`},{default:P(()=>[W(j(e.model),1)]),_:2},1024)):G(``,!0)]),a(e)?(z(),B(R,{key:0},[H(`details`,wF,[i[1]||=H(`summary`,{class:`cursor-pointer select-none px-4 py-2 text-xs font-medium text-muted-foreground hover:text-foreground`},` System prompt `,-1),H(`pre`,TF,j(e.system),1)]),H(`ul`,EF,[(z(!0),B(R,null,I(e.items,t=>(z(),B(`li`,{key:t.id,class:`flex flex-col gap-1.5 px-4 py-3`},[H(`div`,DF,[H(`span`,OF,j(t.key),1),t.targetLocale?(z(),V(N(hC),{key:0,variant:`outline`,class:`shrink-0 font-mono uppercase`},{default:P(()=>[W(j(t.targetLocale),1)]),_:2},1024)):G(``,!0)]),H(`div`,kF,[H(`span`,AF,j(t.source),1),U(N(bu),{class:`mt-0.5 size-4 shrink-0 text-muted-foreground`}),H(`span`,jF,[l(e,t.id)?.error?(z(),B(`span`,MF,j(l(e,t.id)?.error),1)):(z(),B(`span`,NF,j(l(e,t.id)?.translation??l(e,t.id)?.value),1))])]),t.context?(z(),B(`p`,PF,j(t.context),1)):G(``,!0),t.glossary?.length?(z(),B(`div`,FF,[(z(!0),B(R,null,I(t.glossary,e=>(z(),B(`span`,{key:e.term,class:`rounded bg-muted px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground`},j(u(e)),1))),128))])):G(``,!0),t.screenshot?(z(),B(`div`,IF,[U(N(Yu),{class:`size-3.5 shrink-0`}),H(`span`,LF,j(t.screenshot),1)])):G(``,!0)]))),128))])],64)):e.key||e.before!==void 0||e.after!==void 0?(z(),B(`div`,RF,[e.key?(z(),B(`div`,zF,[H(`span`,BF,j(e.key),1),e.locale?(z(),V(N(hC),{key:0,variant:`outline`,class:`shrink-0 font-mono uppercase`},{default:P(()=>[W(j(e.locale),1)]),_:2},1024)):G(``,!0)])):G(``,!0),e.before!==void 0||e.after!==void 0?(z(),B(`div`,VF,[e.before===void 0?G(``,!0):(z(),B(`span`,{key:0,class:A(N(lh)(`min-w-0 flex-1 break-words text-muted-foreground`,f(e.before)&&`font-mono text-xs`))},j(d(e.before)),3)),e.before!==void 0&&e.after!==void 0?(z(),V(N(bu),{key:1,class:`mt-0.5 size-4 shrink-0 text-muted-foreground`})):G(``,!0),e.after===void 0?G(``,!0):(z(),B(`span`,{key:2,class:A(N(lh)(`min-w-0 flex-1 break-words`,f(e.after)&&`font-mono text-xs`))},j(d(e.after)),3))])):G(``,!0)])):G(``,!0)]))),128))]))]))}}),UF=[{id:`home`,title:`Home`,section:``,html:`<h1>Glotfile</h1>
8
8
  <blockquote>
9
9
  <p>A <strong>local-first, git-native translation manager</strong>. All of your app&#39;s copy lives in one JSON file you commit to your repo. You edit and AI-translate it through a local web UI, then export to whatever locale formats your apps consume — no SaaS, no hosted database, nothing leaves your machine except the AI calls you choose to make.</p>
10
10
  </blockquote>
@@ -2296,4 +2296,4 @@ Only the AI calls you trigger. The UI is local-only; no credentials or screensho
2296
2296
  <ul>
2297
2297
  <li>Home · Installation · AI Providers · Continuous Integration</li>
2298
2298
  </ul>
2299
- `,text:`Troubleshooting and FAQ Setup It's pre-1.0 and not yet on npm. Run from a checkout: . See Installation. Wrong Node version Glotfile needs Node . Check with . Translation "Install the SDK for this provider" OpenAI, OpenRouter, and Bedrock need an optional SDK. Install the one for your provider — (OpenAI or OpenRouter) or (Bedrock). See AI Providers. No API key / auth errors Set the provider's credentials in your environment or a local : , , , or the AWS chain. See AI Providers. A translation was skipped The result failed validation — a dropped placeholder, broken ICU, or an over-length value. Glotfile prints the reason and leaves the value untranslated. See Placeholders and ICU and How Translation Works. My reviewed translation didn't change after That's intentional — values are protected from being overwritten. Unmark it first to re-translate. Screenshots seem ignored The selected model may not support vision (e.g. Bedrock Meta Llama text models). The run proceeds text-only and warns how many screenshots were skipped. See Screenshots. Validation and CI fails with Your exported files don't match the catalog. Run and commit the result. See Continuous Integration. Spelling flags real words Add them to the custom dictionary in Settings ( ). The same list silences both the editor's live spell check and the lint rule. Glossary terms are accepted automatically. See Checks and Validation. A rule is too noisy Override its severity (or turn it off) in , or certain key globs. See Configuration Reference. Files and git Can I edit by hand? You can, but you rarely need to — the UI writes it for you, deterministically. If you do edit it, keep it valid: it's validated on load. See The State File. Big diffs on every save Check ( , , ). Deterministic formatting keeps diffs minimal. See The State File. General Do I already have translations I can import? Import existing locale files with — see import. You can also add keys via the Editor. Does anything leave my machine? Only the AI calls you trigger. The UI is local-only; no credentials or screenshot bytes are ever logged. See AI Log. Related - Home · Installation · AI Providers · Continuous Integration`}],WF={class:`flex min-h-0 flex-1 overflow-hidden`},GF={class:`flex w-56 shrink-0 flex-col overflow-hidden border-r bg-muted/30`},KF={class:`relative shrink-0 px-2 py-2`},qF={key:0,class:`flex flex-col gap-1 overflow-y-auto px-2 pb-3`},JF={class:`px-2 py-1 text-xs text-muted-foreground`},YF=[`onClick`],XF={class:`text-sm font-medium`},ZF={key:0,class:`text-[10px] uppercase tracking-wider text-muted-foreground`},QF={key:1,class:`mt-0.5 line-clamp-2 text-xs text-muted-foreground`},$F={class:`bg-primary/20 text-foreground`},eI={key:1,class:`flex flex-col gap-1 overflow-y-auto px-2 pb-3`},tI=[`onClick`],nI={class:`min-w-0 flex-1 overflow-y-auto`},rI=[`innerHTML`],iI=F({__name:`DocsView`,setup(e){let t=[``,`Getting Started`,`Frameworks`,`Web UI`,`CLI`,`Concepts`,`AI Translation`,`Reference`,`Guides`,`Help`];function n(){let e=Np().get(`doc`);return e&&UF.some(t=>t.id===e)?e:UF[0]?.id??``}let r=M(n()),i=M(``),a=q(()=>{let e=new Map;for(let t of UF)e.has(t.section)||e.set(t.section,[]),e.get(t.section).push(t);return[...t,...[...e.keys()].filter(e=>!t.includes(e))].map(t=>({section:t,pages:e.get(t)??[]})).filter(e=>e.pages.length>0)}),o=q(()=>{let e=i.value.trim().toLowerCase();if(!e)return[];let t=[];for(let n of UF){let r=n.text.toLowerCase(),i=n.title.toLowerCase().includes(e),a=r.indexOf(e);if(a===-1&&!i)continue;if(a===-1){t.push({id:n.id,title:n.title,section:n.section,before:``,match:``,after:``});continue}let o=Math.max(0,a-40),s=Math.min(n.text.length,a+e.length+80);t.push({id:n.id,title:n.title,section:n.section,before:(o>0?`…`:``)+n.text.slice(o,a),match:n.text.slice(a,a+e.length),after:n.text.slice(a+e.length,s)+(s<n.text.length?`…`:``)})}return t}),s=q(()=>UF.find(e=>e.id===r.value)??UF[0]);function c(e){e!==r.value&&(r.value=e,history.pushState(null,``,`#docs?${new URLSearchParams({doc:e})}`))}function l(e){c(e),i.value=``}function u(){r.value=n()}return Gi(()=>window.addEventListener(`hashchange`,u)),Yi(()=>window.removeEventListener(`hashchange`,u)),(e,t)=>(z(),B(`div`,WF,[H(`nav`,GF,[H(`div`,KF,[U(N(pd),{class:`pointer-events-none absolute left-4 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground`}),gr(H(`input`,{"onUpdate:modelValue":t[0]||=e=>i.value=e,type:`search`,placeholder:`Search docs…`,class:`w-full rounded-md border bg-background py-1 pl-7 pr-7 text-sm outline-none focus:ring-2 focus:ring-ring`},null,512),[[Pl,i.value]]),i.value?(z(),B(`button`,{key:0,type:`button`,class:`absolute right-4 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:t[1]||=e=>i.value=``},[U(N(kd),{class:`size-3.5`})])):G(``,!0)]),i.value.trim()?(z(),B(`div`,qF,[H(`div`,JF,j(o.value.length)+` result`+j(o.value.length===1?``:`s`),1),(z(!0),B(R,null,I(o.value,e=>(z(),B(`button`,{key:e.id,type:`button`,class:`w-full rounded-md px-2 py-1.5 text-left transition-colors hover:bg-accent hover:text-accent-foreground`,onClick:t=>l(e.id)},[H(`div`,XF,j(e.title),1),e.section?(z(),B(`div`,ZF,j(e.section),1)):G(``,!0),e.match?(z(),B(`div`,QF,[W(j(e.before),1),H(`mark`,$F,j(e.match),1),W(j(e.after),1)])):G(``,!0)],8,YF))),128))])):(z(),B(`div`,eI,[(z(!0),B(R,null,I(a.value,(e,t)=>(z(),B(R,{key:e.section},[e.section?(z(),B(`div`,{key:0,class:A([`px-2 pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,t>0?`mt-3`:``])},j(e.section),3)):G(``,!0),(z(!0),B(R,null,I(e.pages,e=>(z(),B(`button`,{key:e.id,type:`button`,class:A([`w-full rounded-md px-2 py-1 text-left text-sm transition-colors`,r.value===e.id?`bg-primary text-primary-foreground`:`text-foreground hover:bg-accent hover:text-accent-foreground`]),onClick:t=>c(e.id)},j(e.title),11,tI))),128))],64))),128))]))]),H(`div`,nI,[H(`div`,{class:`prose prose-sm dark:prose-invert mx-auto max-w-3xl px-8 py-6`,innerHTML:s.value?.html},null,8,rI)])]))}}),aI={en:`English`,fr:`French`,de:`German`,es:`Spanish`,pt:`Portuguese`,it:`Italian`,nl:`Dutch`,ca:`Catalan`,pl:`Polish`,ru:`Russian`,uk:`Ukrainian`,cs:`Czech`,sk:`Slovak`,sv:`Swedish`,da:`Danish`,no:`Norwegian`,nb:`Norwegian Bokmål`,fi:`Finnish`,tr:`Turkish`,el:`Greek`,ro:`Romanian`,hu:`Hungarian`,bg:`Bulgarian`,hr:`Croatian`,sr:`Serbian`,sl:`Slovenian`,ja:`Japanese`,ko:`Korean`,zh:`Chinese`,ar:`Arabic`,he:`Hebrew`,hi:`Hindi`,th:`Thai`,vi:`Vietnamese`,id:`Indonesian`,ms:`Malay`,fa:`Persian`};function oI(e){let[t=``,n]=e.split(/[-_]/),r=t.toLowerCase(),i=n&&/^[A-Za-z]{2}$/.test(n)?n.toUpperCase():void 0,a=aI[r]??e;return{code:e,name:i?`${a} (${i})`:a}}var sI={class:`p-6`},cI={class:`flex items-start gap-3 pr-6`},lI={class:`grid h-10 w-10 shrink-0 place-items-center rounded-lg border border-primary/25 bg-primary/10 font-mono text-[13px] font-semibold leading-none tracking-tight text-primary`},uI={class:`min-w-0`},dI={class:`font-medium text-foreground`},fI={class:`font-mono text-[12px]`},pI={class:`mt-4 flex items-center gap-4 rounded-lg border border-border bg-muted/40 px-3.5 py-2.5`},mI={class:`flex flex-col`},hI={class:`text-[17px] font-semibold leading-none tabular-nums`},gI={class:`flex flex-col`},_I={class:`text-[17px] font-semibold leading-none tabular-nums`},vI={class:`ml-auto flex items-center gap-1.5 whitespace-nowrap text-[11px] text-muted-foreground`},yI={class:`mt-5`},bI={class:`!flex min-w-0 items-center gap-2`},xI={class:`font-mono text-[13px]`},SI={class:`truncate text-[13px] text-muted-foreground`},CI={class:`flex items-center gap-2`},wI={class:`font-mono text-[13px]`},TI={class:`text-[13px] text-muted-foreground`},EI={class:`mt-4`},DI={class:`flex items-center justify-between`},OI={class:`whitespace-nowrap text-[12px] tabular-nums text-muted-foreground`},kI={class:`mt-1.5 flex flex-wrap gap-1.5 rounded-lg border border-border bg-muted/30 p-2.5`},AI=[`disabled`,`onClick`],jI={class:`font-mono`},MI={key:0,class:`ml-0.5 rounded-sm bg-primary/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-primary`},NI={key:0,class:`mt-4`},PI={class:`overflow-hidden rounded-lg border border-border`},FI={class:`ml-auto font-mono text-[11px] text-muted-foreground/70`},II={key:0,class:`divide-y divide-border border-t border-border gf-content-fade`},LI={class:`shrink-0 font-mono text-foreground`},RI={class:`ml-auto truncate text-right text-muted-foreground`},zI={key:0,class:`px-3 py-1.5 text-[11px] text-muted-foreground/70`},BI={class:`flex items-center gap-2 border-t border-border px-6 py-4`},VI={class:`ml-1 flex cursor-pointer select-none items-center gap-1.5 text-[12px] text-muted-foreground`},HI={class:`ml-auto`},UI={class:`flex flex-col items-center justify-center gap-4 p-6 py-8 text-center`},WI={key:0,class:`mt-1 text-[13px] text-muted-foreground`},GI={class:`p-6`},KI={class:`flex flex-col items-center gap-3 pt-1 text-center`},qI={class:`grid h-12 w-12 place-items-center rounded-full bg-success-bg text-success ring-1 ring-success-border`},JI={class:`font-semibold text-foreground tabular-nums`},YI={class:`font-semibold text-foreground`},XI={key:0,class:`mt-5 overflow-hidden rounded-lg border border-warning-border bg-warning-bg/60`},ZI={class:`whitespace-nowrap text-[13px] font-medium text-warning`},QI={key:0,class:`max-h-44 divide-y divide-warning-border/40 overflow-auto border-t border-warning-border/70 gf-content-fade`},$I={class:`flex items-center border-t border-border px-6 py-4`},eL={class:`ml-auto`},tL={class:`p-6`},nL={class:`flex items-start gap-3 pr-6`},rL={class:`grid h-10 w-10 shrink-0 place-items-center rounded-full bg-destructive-soft text-destructive`},iL={class:`min-w-0`},aL={class:`flex items-center border-t border-border px-6 py-4`},oL={class:`ml-auto`},sL=F({__name:`ImportWizard`,emits:[`dismiss`,`imported`],setup(e,{expose:t,emit:n}){let r=n,i=M(!0),a=M(`confirm`),o=M(null),s=M(``),c=M({}),l=M(!1),u=M(!1),d=M(null),f=M(``),p=M(!0);t({init:m});async function m(){try{let e=await Lf();if(!e.found){r(`dismiss`);return}o.value=e,s.value=e.sourceLocale}catch{r(`dismiss`)}}let h={"laravel-php":{label:`Laravel PHP`,glyph:`</>`,file:`lang/{locale}/*.php`},"vue-i18n-json":{label:`Vue i18n JSON`,glyph:`{ }`,file:`locales/{locale}.json`},"flutter-arb":{label:`Flutter ARB`,glyph:`arb`,file:`lib/l10n/app_{locale}.arb`},"apple-strings":{label:`Apple .strings`,glyph:``,file:`{locale}.lproj/Localizable.strings`}},g=q(()=>h[o.value?.format??``]??{label:o.value?.format??``,glyph:`{}`,file:``});function _(e){return e===s.value||!c.value[e]}function v(e){e!==s.value&&(c.value={...c.value,[e]:!c.value[e]})}let y=q(()=>o.value?o.value.locales.filter(_):[]),b=q(()=>y.value.length),x=q(()=>o.value?Math.max(0,o.value.keyCount-o.value.sampleKeys.length):0);async function S(){if(o.value){a.value=`importing`;try{d.value=await Rf({format:o.value.format,sourceLocale:s.value,locales:y.value,cldr:p.value}),a.value=`done`}catch(e){f.value=e.message,a.value=`error`}}}function C(e){e||a.value!==`importing`&&(a.value===`done`?r(`imported`):r(`dismiss`))}return(e,t)=>(z(),V(N(C_),{open:i.value,"onUpdate:open":C},{default:P(()=>[U(N(uv),null,{default:P(()=>[U(N(cv),{class:`fixed inset-0 z-50 bg-foreground/40 gf-content-fade`}),U(N(av),{class:`fixed left-1/2 top-1/2 z-50 w-[28rem] max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-border bg-card text-card-foreground shadow-2xl focus:outline-none gf-content-fade`,onInteractOutside:t[9]||=Jl(()=>{},[`prevent`])},{default:P(()=>[a.value===`confirm`&&o.value?(z(),B(R,{key:0},[H(`button`,{type:`button`,class:`absolute right-3.5 top-3.5 z-10 grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:t[0]||=e=>r(`dismiss`)},[U(N(kd),{class:`size-4`})]),H(`div`,sI,[H(`div`,cI,[H(`div`,lI,j(g.value.glyph),1),H(`div`,uI,[U(N(dv),{class:`text-base font-semibold leading-tight`},{default:P(()=>[...t[10]||=[W(`Import your translations`,-1)]]),_:1}),U(N(ov),{class:`mt-0.5 text-[13px] text-muted-foreground`},{default:P(()=>[t[11]||=W(` Found a `,-1),H(`span`,dI,j(g.value.label),1),t[12]||=W(` setup in `,-1),H(`span`,fI,j(g.value.file),1),t[13]||=W(`. `,-1)]),_:1})])]),H(`div`,pI,[H(`div`,mI,[H(`span`,hI,j(o.value.keyCount.toLocaleString()),1),t[14]||=H(`span`,{class:`mt-1 whitespace-nowrap text-[11px] text-muted-foreground`},`keys detected`,-1)]),t[17]||=H(`div`,{class:`h-7 w-px bg-border`},null,-1),H(`div`,gI,[H(`span`,_I,j(o.value.locales.length),1),t[15]||=H(`span`,{class:`mt-1 whitespace-nowrap text-[11px] text-muted-foreground`},`locales`,-1)]),H(`div`,vI,[U(N(Gu),{class:`size-3.5 opacity-70`}),t[16]||=W(` Detected automatically `,-1)])]),H(`div`,yI,[U(N(MC),{class:`flex items-center gap-1.5 whitespace-nowrap`},{default:P(()=>[...t[18]||=[W(` Source language `,-1),H(`span`,{class:`text-[12px] font-normal text-muted-foreground`},`· the original text`,-1)]]),_:1}),U(N(mS),{modelValue:s.value,"onUpdate:modelValue":t[1]||=e=>s.value=e},{default:P(()=>[U(N(cC),{class:`mt-1.5`},{default:P(()=>[H(`span`,bI,[U(jw,{code:s.value,size:14},null,8,[`code`]),H(`span`,xI,j(s.value),1),H(`span`,SI,j(N(oI)(s.value).name),1)])]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(o.value.locales,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[H(`span`,CI,[U(jw,{code:e,size:14},null,8,[`code`]),H(`span`,wI,j(e),1),H(`span`,TI,j(N(oI)(e).name),1)])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`div`,EI,[H(`div`,DI,[U(N(MC),{class:`whitespace-nowrap`},{default:P(()=>[...t[19]||=[W(`Locales to import`,-1)]]),_:1}),H(`span`,OI,j(b.value)+` of `+j(o.value.locales.length),1)]),H(`div`,kI,[(z(!0),B(R,null,I(o.value.locales,e=>(z(),V(N(eC),{key:e},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,disabled:e===s.value,class:A([`group inline-flex h-7 shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md border pl-1.5 pr-2 text-[12px] transition-colors`,e===s.value?`border-primary/40 bg-primary/10 cursor-default`:_(e)?`border-input bg-card text-foreground hover:bg-muted`:`border-dashed border-border bg-transparent text-muted-foreground hover:bg-muted/50`]),onClick:t=>v(e)},[U(jw,{code:e,size:14},null,8,[`code`]),H(`span`,jI,j(e),1),e===s.value?(z(),B(`span`,MI,`src`)):(z(),B(`span`,{key:1,class:A([`grid size-3.5 place-items-center rounded-[3px] border`,_(e)?`border-primary bg-primary text-primary-foreground`:`border-border text-transparent`])},[U(N(Du),{class:`size-2.5`,"stroke-width":3})],2))],10,AI)]),_:2},1024),U(N(qC),null,{default:P(()=>[W(j(e===s.value?`Source language — always imported`:_(e)?`Click to exclude`:`Click to include`),1)]),_:2},1024)]),_:2},1024))),128))])]),o.value.sampleKeys.length?(z(),B(`div`,NI,[H(`div`,PI,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3 py-2 text-[13px] text-muted-foreground transition-colors hover:bg-muted/50`,onClick:t[2]||=e=>l.value=!l.value},[U(N(ku),{class:A([`size-3.5 shrink-0 transition-transform`,l.value?`rotate-90`:``])},null,8,[`class`]),t[20]||=H(`span`,{class:`whitespace-nowrap`},`Preview sample keys`,-1),H(`span`,FI,j(g.value.glyph),1)]),l.value?(z(),B(`div`,II,[(z(!0),B(R,null,I(o.value.sampleKeys,e=>(z(),B(`div`,{key:e.key,class:`flex items-baseline gap-3 px-3 py-1.5 text-[12px]`},[H(`span`,LI,j(e.key),1),H(`span`,RI,j(e.value),1)]))),128)),x.value>0?(z(),B(`div`,zI,` + `+j(x.value.toLocaleString())+` more keys `,1)):G(``,!0)])):G(``,!0)])])):G(``,!0)]),H(`div`,BI,[U(N($),{variant:`ghost`,size:`sm`,onClick:t[3]||=e=>r(`dismiss`)},{default:P(()=>[...t[21]||=[W(`Skip`,-1)]]),_:1}),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`label`,VI,[gr(H(`input`,{type:`checkbox`,"data-testid":`cldr-toggle`,"onUpdate:modelValue":t[4]||=e=>p.value=e,class:`size-3.5 accent-primary`},null,512),[[Fl,p.value]]),t[22]||=W(` Convert plurals to CLDR categories `,-1)])]),_:1}),U(N(qC),{class:`max-w-xs`},{default:P(()=>[...t[23]||=[W(`Rewrite exact =N plural selectors (e.g. =1) into each language's CLDR plural categories, the way Crowdin does.`,-1)]]),_:1})]),_:1}),H(`div`,HI,[U(N($),{"data-testid":`import-btn`,disabled:b.value===0,onClick:S},{default:P(()=>[U(N(Ad),{class:`size-4`}),W(` Import `+j(b.value)+` `+j(b.value===1?`locale`:`locales`),1)]),_:1},8,[`disabled`])])])],64)):a.value===`importing`?(z(),B(R,{key:1},[U(N(dv),{class:`sr-only`},{default:P(()=>[...t[24]||=[W(`Importing translations`,-1)]]),_:1}),H(`div`,UI,[U(N($u),{class:`size-10 text-primary gf-spin`}),H(`div`,null,[t[25]||=H(`div`,{class:`text-sm font-semibold`},`Importing translations…`,-1),o.value?(z(),B(`div`,WI,` Reading `+j(o.value.keyCount.toLocaleString())+` keys across `+j(b.value)+` locales `,1)):G(``,!0)])])],64)):a.value===`done`&&d.value?(z(),B(R,{key:2},[H(`div`,GI,[H(`div`,KI,[H(`div`,qI,[U(N(Du),{class:`size-6`,"stroke-width":2.5})]),H(`div`,null,[U(N(dv),{class:`text-base font-semibold`},{default:P(()=>[...t[26]||=[W(`Import complete`,-1)]]),_:1}),U(N(ov),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[H(`span`,JI,j(d.value.keyCount.toLocaleString())+` keys`,1),t[27]||=W(` across `,-1),H(`span`,YI,j(d.value.localeCount)+` locales`,1),t[28]||=W(` imported. `,-1)]),_:1})])]),d.value.warnings.length?(z(),B(`div`,XI,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3 py-2.5 text-left`,onClick:t[5]||=e=>u.value=!u.value},[U(N(Td),{class:`size-3.5 shrink-0 text-warning`}),H(`span`,ZI,j(d.value.warnings.length)+` `+j(d.value.warnings.length===1?`warning`:`warnings`),1),t[29]||=H(`span`,{class:`whitespace-nowrap text-[12px] text-warning/70`},`· import still succeeded`,-1),U(N(ku),{class:A([`ml-auto size-3.5 shrink-0 text-warning transition-transform`,u.value?`rotate-90`:``])},null,8,[`class`])]),u.value?(z(),B(`ul`,QI,[(z(!0),B(R,null,I(d.value.warnings,(e,t)=>(z(),B(`li`,{key:t,class:`px-3 py-2 text-[12px] text-muted-foreground`},j(e),1))),128))])):G(``,!0)])):G(``,!0)]),H(`div`,$I,[H(`div`,eL,[U(N($),{onClick:t[6]||=e=>r(`imported`)},{default:P(()=>[t[30]||=W(`Open editor `,-1),U(N(bu),{class:`size-4`})]),_:1})])])],64)):a.value===`error`?(z(),B(R,{key:3},[H(`button`,{type:`button`,class:`absolute right-3.5 top-3.5 z-10 grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:t[7]||=e=>r(`dismiss`)},[U(N(kd),{class:`size-4`})]),H(`div`,tL,[H(`div`,nL,[H(`div`,rL,[U(N(Td),{class:`size-5`})]),H(`div`,iL,[U(N(dv),{class:`text-base font-semibold`},{default:P(()=>[...t[31]||=[W(`Couldn't import translations`,-1)]]),_:1}),U(N(ov),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[W(j(f.value),1)]),_:1})])])]),H(`div`,aL,[H(`div`,oL,[U(N($),{variant:`outline`,onClick:t[8]||=e=>r(`dismiss`)},{default:P(()=>[...t[32]||=[W(`Dismiss`,-1)]]),_:1})])])],64)):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),cL=`glotfile-theme`,lL=[`system`,`light`,`dark`],uL=e=>lL.includes(e);function dL(){let e=localStorage.getItem(cL);return uL(e)?e:`system`}var fL=window.matchMedia(`(prefers-color-scheme: dark)`),pL=M(fL.matches);fL.addEventListener(`change`,e=>{pL.value=e.matches});var mL=M(dL()),hL=q(()=>mL.value===`system`?pL.value:mL.value===`dark`);function gL(){document.documentElement.classList.toggle(`dark`,hL.value)}function _L(){Er(hL,gL,{immediate:!0,flush:`sync`})}function vL(e){mL.value=e,localStorage.setItem(cL,e),uf({theme:e}).catch(()=>{})}async function yL(){try{let{theme:e}=await lf();uL(e)&&e!==mL.value&&(mL.value=e,localStorage.setItem(cL,e))}catch{}}var bL={class:`flex flex-col items-center gap-0.5 rounded-lg bg-black/15 p-0.5`},xL=[`data-mode`,`aria-label`,`aria-pressed`,`onClick`],SL=F({__name:`ThemeToggle`,setup(e){let t=[{value:`light`,label:`Light`,icon:xd},{value:`system`,label:`System`,icon:nd},{value:`dark`,label:`Dark`,icon:rd}];return(e,n)=>(z(),B(`div`,bL,[(z(),B(R,null,I(t,e=>U(N(eC),{key:e.value},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"data-mode":e.value,"aria-label":e.label,"aria-pressed":N(mL)===e.value,class:A(N(lh)(`flex size-8 items-center justify-center rounded-md transition-colors`,N(mL)===e.value?`bg-primary text-primary-foreground`:`text-rail-foreground/70 hover:bg-white/10 hover:text-rail-foreground`)),onClick:t=>N(vL)(e.value)},[(z(),V(ia(e.icon),{class:`size-4`}))],10,xL)]),_:2},1024),U(N(qC),{side:`right`},{default:P(()=>[W(j(e.label),1)]),_:2},1024)]),_:2},1024)),64))]))}}),CL=F({__name:`Kbd`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`kbd`,{class:A(N(lh)(`inline-flex h-5 min-w-5 items-center justify-center rounded border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground`,e.$props.class))},[L(e.$slots,`default`)],2))}}),wL=[{route:`editor`,keys:[`g`,`e`],label:`Editor`},{route:`analytics`,keys:[`g`,`a`],label:`Analytics`},{route:`glossary`,keys:[`g`,`g`],label:`Glossary`},{route:`screenshots`,keys:[`g`,`i`],label:`Screenshots`},{route:`settings`,keys:[`g`,`s`],label:`Settings`},{route:`activity`,keys:[`g`,`l`],label:`Activity`},{route:`docs`,keys:[`g`,`d`],label:`Docs`}];function TL(e,t){if(e.pending===`g`){let e=wL.find(e=>e.keys[1]===t);return{state:{pending:null},action:e?{type:`navigate`,route:e.route}:null}}return t===`g`?{state:{pending:`g`},action:null}:t===`?`?{state:{pending:null},action:{type:`toggleHelp`}}:{state:{pending:null},action:null}}var EL={class:`flex w-14 shrink-0 flex-col items-center gap-1 bg-rail py-3 text-rail-foreground`},DL=[`aria-label`,`onClick`],OL={key:0,class:`flex items-center gap-0.5`},kL={class:`mt-auto flex flex-col items-center gap-1.5`},AL={class:`font-mono text-[10px] text-rail-foreground/50`},jL=F({__name:`NavRail`,setup(e){let t=Mp(),n=[{id:`editor`,label:`Editor`,icon:Zu},{id:`analytics`,label:`Analytics`,icon:Eu},{id:`glossary`,label:`Glossary`,icon:Tu},{id:`screenshots`,label:`Screenshots`,icon:Yu},{id:`settings`,label:`Settings`,icon:md},{id:`activity`,label:`Activity`,icon:fd},{id:`docs`,label:`Docs`,icon:Cu}].map(e=>({...e,keys:wL.find(t=>t.route===e.id)?.keys}));return(e,r)=>(z(),V(N(XS),{"delay-duration":300},{default:P(()=>[H(`nav`,EL,[r[0]||=H(`div`,{class:`mb-3 flex size-9 items-center justify-center rounded-md bg-primary font-mono text-base font-semibold text-primary-foreground`},` G `,-1),(z(!0),B(R,null,I(N(n),e=>(z(),V(N(eC),{key:e.id},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"aria-label":e.label,class:A(N(lh)(`relative flex size-10 items-center justify-center rounded-md transition-colors`,N(t)===e.id?`bg-primary text-primary-foreground`:`text-rail-foreground/70 hover:bg-white/10 hover:text-rail-foreground`)),onClick:t=>N(jp)(e.id)},[(z(),V(ia(e.icon),{class:`size-5`}))],10,DL)]),_:2},1024),U(N(qC),{side:`right`,class:`flex items-center gap-2`},{default:P(()=>[H(`span`,null,j(e.label),1),e.keys?(z(),B(`span`,OL,[(z(!0),B(R,null,I(e.keys,(e,t)=>(z(),V(CL,{key:t},{default:P(()=>[W(j(e),1)]),_:2},1024))),128))])):G(``,!0)]),_:2},1024)]),_:2},1024))),128)),H(`div`,kL,[U(SL),H(`span`,AL,`v`+j(N(`0.8.2`)),1)])])]),_:1}))}}),ML={class:`flex flex-col gap-1`},NL={class:`flex items-center gap-1`},PL={class:`flex items-center justify-between py-1 text-sm`},FL={class:`flex items-center gap-1`},IL=F({__name:`ShortcutsDialog`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:[`update:open`],setup(e){let t=Xa(e,`open`);return(e,n)=>(z(),V(N(C_),{open:t.value,"onUpdate:open":n[0]||=e=>t.value=e},{default:P(()=>[U(N(NC),{class:`max-w-sm`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[1]||=[W(`Keyboard shortcuts`,-1)]]),_:1})]),_:1}),H(`ul`,ML,[(z(!0),B(R,null,I(N(wL),e=>(z(),B(`li`,{key:e.route,class:`flex items-center justify-between py-1 text-sm`},[H(`span`,null,j(e.label),1),H(`span`,NL,[(z(!0),B(R,null,I(e.keys,(e,t)=>(z(),V(CL,{key:t},{default:P(()=>[W(j(e),1)]),_:2},1024))),128))])]))),128)),H(`li`,PL,[n[3]||=H(`span`,null,`Search keys`,-1),H(`span`,FL,[U(CL,null,{default:P(()=>[...n[2]||=[W(`/`,-1)]]),_:1})])])])]),_:1})]),_:1},8,[`open`]))}}),LL=M(!1),RL=1e3;function zL(){let e={pending:null},t=null;function n(){t!==null&&(clearTimeout(t),t=null)}function r(r){if(r.metaKey||r.ctrlKey||r.altKey||r.repeat)return;let i=r.target;if(i&&(i.tagName===`INPUT`||i.tagName===`TEXTAREA`||i.isContentEditable))return;let a=r.key.toLowerCase(),o=!!document.querySelector(`[role="dialog"],[role="menu"],[role="listbox"]`),s=a===`?`&&LL.value;if(o&&!s)return;let c=TL(e,a);e=c.state,n(),e.pending===`g`&&(t=window.setTimeout(()=>{e={pending:null},t=null},RL));let{action:l}=c;l&&(l.type===`navigate`?jp(l.route):LL.value=!LL.value,r.preventDefault())}Gi(()=>window.addEventListener(`keydown`,r)),Yi(()=>{n(),window.removeEventListener(`keydown`,r)})}var BL={class:`flex h-screen bg-background text-foreground`},VL={class:`flex min-w-0 flex-1 flex-col`},HL={class:`flex h-12 shrink-0 items-center justify-between border-b px-4`},UL={class:`flex min-w-0 items-center gap-3`},WL={key:0,class:`flex min-w-0 items-center gap-1.5`},GL={class:`max-w-[12rem] shrink-0 truncate font-mono text-sm font-medium`},KL={class:`truncate`},qL={key:0,class:`text-muted-foreground`},JL={class:`text-sm font-semibold`},YL={class:`font-mono`},XL={class:`flex min-h-0 flex-1 flex-col overflow-hidden`},ZL=F({__name:`App`,setup(e){let t=Mp();zL();let n=un(null),r=M(null),i=M([]),a=q(()=>[...i.value].sort((e,t)=>{let n=e.relDir?`${e.relDir}/${e.name}`:e.name,r=t.relDir?`${t.relDir}/${t.name}`:t.name;return n.localeCompare(r)})),o=M(!1),s=M(null);async function c(){n.value=await jd()}Th(c),Gi(async()=>{await c(),Ch();try{[r.value,i.value]=await Promise.all([kf(),Af()]),document.title=r.value.project?`${r.value.project} — Glotfile`:`Glotfile`}catch(e){Q.error(e.message)}n.value&&Object.keys(n.value.keys).length===0&&(o.value=!0)});function l(){location.reload()}async function u(e){if(e!==r.value?.path)try{await jf(e),location.reload()}catch(e){Q.error(e.message)}}let d=q(()=>({editor:`Editor`,analytics:`Analytics`,glossary:`Glossary`,screenshots:`Screenshots`,settings:`Settings`,activity:`Activity`,docs:`Docs`})[t.value]),f=q(()=>{if(!n.value)return null;let{sourceLocale:e,locales:t}=n.value.config;return{source:e,targets:t.filter(t=>t!==e)}});return(e,n)=>(z(),V(N(XS),{"delay-duration":300},{default:P(()=>[H(`div`,BL,[U(jL),H(`div`,VL,[H(`header`,HL,[H(`div`,UL,[r.value?(z(),B(`div`,WL,[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,GL,j(r.value.project),1)]),_:1}),U(N(qC),{side:`bottom`,class:`font-mono`},{default:P(()=>[W(j(r.value.dir),1)]),_:1})]),_:1}),U(N(ku),{class:`size-3.5 shrink-0 text-muted-foreground`}),U(N(Qx),null,{default:P(()=>[U(N(iS),{"as-child":``},{default:P(()=>[U(N($),{variant:`outline`,size:`sm`,class:`max-w-[16rem] gap-1.5 font-mono`},{default:P(()=>[H(`span`,KL,j(r.value.name),1),U(N(Au),{class:`size-3.5 shrink-0 text-muted-foreground`})]),_:1})]),_:1}),U(N(RC),{align:`start`,class:`w-max`},{default:P(()=>[(z(!0),B(R,null,I(a.value,e=>(z(),V(N(zC),{key:e.path,class:`font-mono`,onSelect:t=>u(e.path)},{default:P(()=>[U(N(Du),{class:A([`size-4 shrink-0`,e.path===r.value.path?`opacity-100`:`opacity-0`])},null,8,[`class`]),H(`span`,null,[e.relDir?(z(),B(`span`,qL,j(e.relDir)+`/`,1)):G(``,!0),W(j(e.name),1)])]),_:2},1032,[`onSelect`]))),128))]),_:1})]),_:1})])):G(``,!0),H(`h1`,JL,j(d.value),1)]),f.value?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`shrink-0 font-mono text-xs text-muted-foreground transition-colors hover:text-foreground`,onClick:n[0]||=e=>N(jp)(`settings`)},j(f.value.source)+` → `+j(f.value.targets.length)+` `+j(f.value.targets.length===1?`locale`:`locales`),1)]),_:1}),U(N(qC),{side:`bottom`,class:`max-w-[28rem] leading-relaxed`},{default:P(()=>[H(`div`,YL,j(f.value.targets.join(`, `)||`—`),1),n[4]||=H(`div`,{class:`mt-1 text-background/60`},`Click to manage in Settings`,-1)]),_:1})]),_:1})):G(``,!0)]),H(`main`,XL,[N(t)===`editor`?(z(),V(NO,{key:0})):N(t)===`analytics`?(z(),V(DA,{key:1})):N(t)===`glossary`?(z(),V($A,{key:2})):N(t)===`screenshots`?(z(),V(hF,{key:3})):N(t)===`settings`?(z(),V($P,{key:4})):N(t)===`activity`?(z(),V(HF,{key:5})):N(t)===`docs`?(z(),V(iI,{key:6})):G(``,!0)])]),U(N(hh)),U(IL,{open:N(LL),"onUpdate:open":n[1]||=e=>ln(LL)?LL.value=e:null},null,8,[`open`]),o.value?(z(),V(sL,{key:0,ref_key:`wizardRef`,ref:s,onVnodeMounted:n[2]||=e=>s.value?.init(),onDismiss:n[3]||=e=>o.value=!1,onImported:l},null,512)):G(``,!0)])]),_:1}))}});_L(),iu(ZL).mount(`#app`),yL(),sO(),TT();
2299
+ `,text:`Troubleshooting and FAQ Setup It's pre-1.0 and not yet on npm. Run from a checkout: . See Installation. Wrong Node version Glotfile needs Node . Check with . Translation "Install the SDK for this provider" OpenAI, OpenRouter, and Bedrock need an optional SDK. Install the one for your provider — (OpenAI or OpenRouter) or (Bedrock). See AI Providers. No API key / auth errors Set the provider's credentials in your environment or a local : , , , or the AWS chain. See AI Providers. A translation was skipped The result failed validation — a dropped placeholder, broken ICU, or an over-length value. Glotfile prints the reason and leaves the value untranslated. See Placeholders and ICU and How Translation Works. My reviewed translation didn't change after That's intentional — values are protected from being overwritten. Unmark it first to re-translate. Screenshots seem ignored The selected model may not support vision (e.g. Bedrock Meta Llama text models). The run proceeds text-only and warns how many screenshots were skipped. See Screenshots. Validation and CI fails with Your exported files don't match the catalog. Run and commit the result. See Continuous Integration. Spelling flags real words Add them to the custom dictionary in Settings ( ). The same list silences both the editor's live spell check and the lint rule. Glossary terms are accepted automatically. See Checks and Validation. A rule is too noisy Override its severity (or turn it off) in , or certain key globs. See Configuration Reference. Files and git Can I edit by hand? You can, but you rarely need to — the UI writes it for you, deterministically. If you do edit it, keep it valid: it's validated on load. See The State File. Big diffs on every save Check ( , , ). Deterministic formatting keeps diffs minimal. See The State File. General Do I already have translations I can import? Import existing locale files with — see import. You can also add keys via the Editor. Does anything leave my machine? Only the AI calls you trigger. The UI is local-only; no credentials or screenshot bytes are ever logged. See AI Log. Related - Home · Installation · AI Providers · Continuous Integration`}],WF={class:`flex min-h-0 flex-1 overflow-hidden`},GF={class:`flex w-56 shrink-0 flex-col overflow-hidden border-r bg-muted/30`},KF={class:`relative shrink-0 px-2 py-2`},qF={key:0,class:`flex flex-col gap-1 overflow-y-auto px-2 pb-3`},JF={class:`px-2 py-1 text-xs text-muted-foreground`},YF=[`onClick`],XF={class:`text-sm font-medium`},ZF={key:0,class:`text-[10px] uppercase tracking-wider text-muted-foreground`},QF={key:1,class:`mt-0.5 line-clamp-2 text-xs text-muted-foreground`},$F={class:`bg-primary/20 text-foreground`},eI={key:1,class:`flex flex-col gap-1 overflow-y-auto px-2 pb-3`},tI=[`onClick`],nI={class:`min-w-0 flex-1 overflow-y-auto`},rI=[`innerHTML`],iI=F({__name:`DocsView`,setup(e){let t=[``,`Getting Started`,`Frameworks`,`Web UI`,`CLI`,`Concepts`,`AI Translation`,`Reference`,`Guides`,`Help`];function n(){let e=Np().get(`doc`);return e&&UF.some(t=>t.id===e)?e:UF[0]?.id??``}let r=M(n()),i=M(``),a=q(()=>{let e=new Map;for(let t of UF)e.has(t.section)||e.set(t.section,[]),e.get(t.section).push(t);return[...t,...[...e.keys()].filter(e=>!t.includes(e))].map(t=>({section:t,pages:e.get(t)??[]})).filter(e=>e.pages.length>0)}),o=q(()=>{let e=i.value.trim().toLowerCase();if(!e)return[];let t=[];for(let n of UF){let r=n.text.toLowerCase(),i=n.title.toLowerCase().includes(e),a=r.indexOf(e);if(a===-1&&!i)continue;if(a===-1){t.push({id:n.id,title:n.title,section:n.section,before:``,match:``,after:``});continue}let o=Math.max(0,a-40),s=Math.min(n.text.length,a+e.length+80);t.push({id:n.id,title:n.title,section:n.section,before:(o>0?`…`:``)+n.text.slice(o,a),match:n.text.slice(a,a+e.length),after:n.text.slice(a+e.length,s)+(s<n.text.length?`…`:``)})}return t}),s=q(()=>UF.find(e=>e.id===r.value)??UF[0]);function c(e){e!==r.value&&(r.value=e,history.pushState(null,``,`#docs?${new URLSearchParams({doc:e})}`))}function l(e){c(e),i.value=``}function u(){r.value=n()}return Gi(()=>window.addEventListener(`hashchange`,u)),Yi(()=>window.removeEventListener(`hashchange`,u)),(e,t)=>(z(),B(`div`,WF,[H(`nav`,GF,[H(`div`,KF,[U(N(pd),{class:`pointer-events-none absolute left-4 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground`}),gr(H(`input`,{"onUpdate:modelValue":t[0]||=e=>i.value=e,type:`search`,placeholder:`Search docs…`,class:`w-full rounded-md border bg-background py-1 pl-7 pr-7 text-sm outline-none focus:ring-2 focus:ring-ring`},null,512),[[Pl,i.value]]),i.value?(z(),B(`button`,{key:0,type:`button`,class:`absolute right-4 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:t[1]||=e=>i.value=``},[U(N(kd),{class:`size-3.5`})])):G(``,!0)]),i.value.trim()?(z(),B(`div`,qF,[H(`div`,JF,j(o.value.length)+` result`+j(o.value.length===1?``:`s`),1),(z(!0),B(R,null,I(o.value,e=>(z(),B(`button`,{key:e.id,type:`button`,class:`w-full rounded-md px-2 py-1.5 text-left transition-colors hover:bg-accent hover:text-accent-foreground`,onClick:t=>l(e.id)},[H(`div`,XF,j(e.title),1),e.section?(z(),B(`div`,ZF,j(e.section),1)):G(``,!0),e.match?(z(),B(`div`,QF,[W(j(e.before),1),H(`mark`,$F,j(e.match),1),W(j(e.after),1)])):G(``,!0)],8,YF))),128))])):(z(),B(`div`,eI,[(z(!0),B(R,null,I(a.value,(e,t)=>(z(),B(R,{key:e.section},[e.section?(z(),B(`div`,{key:0,class:A([`px-2 pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,t>0?`mt-3`:``])},j(e.section),3)):G(``,!0),(z(!0),B(R,null,I(e.pages,e=>(z(),B(`button`,{key:e.id,type:`button`,class:A([`w-full rounded-md px-2 py-1 text-left text-sm transition-colors`,r.value===e.id?`bg-primary text-primary-foreground`:`text-foreground hover:bg-accent hover:text-accent-foreground`]),onClick:t=>c(e.id)},j(e.title),11,tI))),128))],64))),128))]))]),H(`div`,nI,[H(`div`,{class:`prose prose-sm dark:prose-invert mx-auto max-w-3xl px-8 py-6`,innerHTML:s.value?.html},null,8,rI)])]))}}),aI={en:`English`,fr:`French`,de:`German`,es:`Spanish`,pt:`Portuguese`,it:`Italian`,nl:`Dutch`,ca:`Catalan`,pl:`Polish`,ru:`Russian`,uk:`Ukrainian`,cs:`Czech`,sk:`Slovak`,sv:`Swedish`,da:`Danish`,no:`Norwegian`,nb:`Norwegian Bokmål`,fi:`Finnish`,tr:`Turkish`,el:`Greek`,ro:`Romanian`,hu:`Hungarian`,bg:`Bulgarian`,hr:`Croatian`,sr:`Serbian`,sl:`Slovenian`,ja:`Japanese`,ko:`Korean`,zh:`Chinese`,ar:`Arabic`,he:`Hebrew`,hi:`Hindi`,th:`Thai`,vi:`Vietnamese`,id:`Indonesian`,ms:`Malay`,fa:`Persian`};function oI(e){let[t=``,n]=e.split(/[-_]/),r=t.toLowerCase(),i=n&&/^[A-Za-z]{2}$/.test(n)?n.toUpperCase():void 0,a=aI[r]??e;return{code:e,name:i?`${a} (${i})`:a}}var sI={class:`p-6`},cI={class:`flex items-start gap-3 pr-6`},lI={class:`grid h-10 w-10 shrink-0 place-items-center rounded-lg border border-primary/25 bg-primary/10 font-mono text-[13px] font-semibold leading-none tracking-tight text-primary`},uI={class:`min-w-0`},dI={class:`font-medium text-foreground`},fI={class:`font-mono text-[12px]`},pI={class:`mt-4 flex items-center gap-4 rounded-lg border border-border bg-muted/40 px-3.5 py-2.5`},mI={class:`flex flex-col`},hI={class:`text-[17px] font-semibold leading-none tabular-nums`},gI={class:`flex flex-col`},_I={class:`text-[17px] font-semibold leading-none tabular-nums`},vI={class:`ml-auto flex items-center gap-1.5 whitespace-nowrap text-[11px] text-muted-foreground`},yI={class:`mt-5`},bI={class:`!flex min-w-0 items-center gap-2`},xI={class:`font-mono text-[13px]`},SI={class:`truncate text-[13px] text-muted-foreground`},CI={class:`flex items-center gap-2`},wI={class:`font-mono text-[13px]`},TI={class:`text-[13px] text-muted-foreground`},EI={class:`mt-4`},DI={class:`flex items-center justify-between`},OI={class:`whitespace-nowrap text-[12px] tabular-nums text-muted-foreground`},kI={class:`mt-1.5 flex flex-wrap gap-1.5 rounded-lg border border-border bg-muted/30 p-2.5`},AI=[`disabled`,`onClick`],jI={class:`font-mono`},MI={key:0,class:`ml-0.5 rounded-sm bg-primary/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-primary`},NI={key:0,class:`mt-4`},PI={class:`overflow-hidden rounded-lg border border-border`},FI={class:`ml-auto font-mono text-[11px] text-muted-foreground/70`},II={key:0,class:`divide-y divide-border border-t border-border gf-content-fade`},LI={class:`shrink-0 font-mono text-foreground`},RI={class:`ml-auto truncate text-right text-muted-foreground`},zI={key:0,class:`px-3 py-1.5 text-[11px] text-muted-foreground/70`},BI={class:`flex items-center gap-2 border-t border-border px-6 py-4`},VI={class:`ml-1 flex cursor-pointer select-none items-center gap-1.5 text-[12px] text-muted-foreground`},HI={class:`ml-auto`},UI={class:`flex flex-col items-center justify-center gap-4 p-6 py-8 text-center`},WI={key:0,class:`mt-1 text-[13px] text-muted-foreground`},GI={class:`p-6`},KI={class:`flex flex-col items-center gap-3 pt-1 text-center`},qI={class:`grid h-12 w-12 place-items-center rounded-full bg-success-bg text-success ring-1 ring-success-border`},JI={class:`font-semibold text-foreground tabular-nums`},YI={class:`font-semibold text-foreground`},XI={key:0,class:`mt-5 overflow-hidden rounded-lg border border-warning-border bg-warning-bg/60`},ZI={class:`whitespace-nowrap text-[13px] font-medium text-warning`},QI={key:0,class:`max-h-44 divide-y divide-warning-border/40 overflow-auto border-t border-warning-border/70 gf-content-fade`},$I={class:`flex items-center border-t border-border px-6 py-4`},eL={class:`ml-auto`},tL={class:`p-6`},nL={class:`flex items-start gap-3 pr-6`},rL={class:`grid h-10 w-10 shrink-0 place-items-center rounded-full bg-destructive-soft text-destructive`},iL={class:`min-w-0`},aL={class:`flex items-center border-t border-border px-6 py-4`},oL={class:`ml-auto`},sL=F({__name:`ImportWizard`,emits:[`dismiss`,`imported`],setup(e,{expose:t,emit:n}){let r=n,i=M(!0),a=M(`confirm`),o=M(null),s=M(``),c=M({}),l=M(!1),u=M(!1),d=M(null),f=M(``),p=M(!0);t({init:m});async function m(){try{let e=await Lf();if(!e.found){r(`dismiss`);return}o.value=e,s.value=e.sourceLocale}catch{r(`dismiss`)}}let h={"laravel-php":{label:`Laravel PHP`,glyph:`</>`,file:`lang/{locale}/*.php`},"vue-i18n-json":{label:`Vue i18n JSON`,glyph:`{ }`,file:`locales/{locale}.json`},"flutter-arb":{label:`Flutter ARB`,glyph:`arb`,file:`lib/l10n/app_{locale}.arb`},"apple-strings":{label:`Apple .strings`,glyph:``,file:`{locale}.lproj/Localizable.strings`}},g=q(()=>h[o.value?.format??``]??{label:o.value?.format??``,glyph:`{}`,file:``});function _(e){return e===s.value||!c.value[e]}function v(e){e!==s.value&&(c.value={...c.value,[e]:!c.value[e]})}let y=q(()=>o.value?o.value.locales.filter(_):[]),b=q(()=>y.value.length),x=q(()=>o.value?Math.max(0,o.value.keyCount-o.value.sampleKeys.length):0);async function S(){if(o.value){a.value=`importing`;try{d.value=await Rf({format:o.value.format,sourceLocale:s.value,locales:y.value,cldr:p.value}),a.value=`done`}catch(e){f.value=e.message,a.value=`error`}}}function C(e){e||a.value!==`importing`&&(a.value===`done`?r(`imported`):r(`dismiss`))}return(e,t)=>(z(),V(N(C_),{open:i.value,"onUpdate:open":C},{default:P(()=>[U(N(uv),null,{default:P(()=>[U(N(cv),{class:`fixed inset-0 z-50 bg-foreground/40 gf-content-fade`}),U(N(av),{class:`fixed left-1/2 top-1/2 z-50 w-[28rem] max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-border bg-card text-card-foreground shadow-2xl focus:outline-none gf-content-fade`,onInteractOutside:t[9]||=Jl(()=>{},[`prevent`])},{default:P(()=>[a.value===`confirm`&&o.value?(z(),B(R,{key:0},[H(`button`,{type:`button`,class:`absolute right-3.5 top-3.5 z-10 grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:t[0]||=e=>r(`dismiss`)},[U(N(kd),{class:`size-4`})]),H(`div`,sI,[H(`div`,cI,[H(`div`,lI,j(g.value.glyph),1),H(`div`,uI,[U(N(dv),{class:`text-base font-semibold leading-tight`},{default:P(()=>[...t[10]||=[W(`Import your translations`,-1)]]),_:1}),U(N(ov),{class:`mt-0.5 text-[13px] text-muted-foreground`},{default:P(()=>[t[11]||=W(` Found a `,-1),H(`span`,dI,j(g.value.label),1),t[12]||=W(` setup in `,-1),H(`span`,fI,j(g.value.file),1),t[13]||=W(`. `,-1)]),_:1})])]),H(`div`,pI,[H(`div`,mI,[H(`span`,hI,j(o.value.keyCount.toLocaleString()),1),t[14]||=H(`span`,{class:`mt-1 whitespace-nowrap text-[11px] text-muted-foreground`},`keys detected`,-1)]),t[17]||=H(`div`,{class:`h-7 w-px bg-border`},null,-1),H(`div`,gI,[H(`span`,_I,j(o.value.locales.length),1),t[15]||=H(`span`,{class:`mt-1 whitespace-nowrap text-[11px] text-muted-foreground`},`locales`,-1)]),H(`div`,vI,[U(N(Gu),{class:`size-3.5 opacity-70`}),t[16]||=W(` Detected automatically `,-1)])]),H(`div`,yI,[U(N(MC),{class:`flex items-center gap-1.5 whitespace-nowrap`},{default:P(()=>[...t[18]||=[W(` Source language `,-1),H(`span`,{class:`text-[12px] font-normal text-muted-foreground`},`· the original text`,-1)]]),_:1}),U(N(mS),{modelValue:s.value,"onUpdate:modelValue":t[1]||=e=>s.value=e},{default:P(()=>[U(N(cC),{class:`mt-1.5`},{default:P(()=>[H(`span`,bI,[U(jw,{code:s.value,size:14},null,8,[`code`]),H(`span`,xI,j(s.value),1),H(`span`,SI,j(N(oI)(s.value).name),1)])]),_:1}),U(N(lC),null,{default:P(()=>[(z(!0),B(R,null,I(o.value.locales,e=>(z(),V(N(dC),{key:e,value:e},{default:P(()=>[H(`span`,CI,[U(jw,{code:e,size:14},null,8,[`code`]),H(`span`,wI,j(e),1),H(`span`,TI,j(N(oI)(e).name),1)])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`div`,EI,[H(`div`,DI,[U(N(MC),{class:`whitespace-nowrap`},{default:P(()=>[...t[19]||=[W(`Locales to import`,-1)]]),_:1}),H(`span`,OI,j(b.value)+` of `+j(o.value.locales.length),1)]),H(`div`,kI,[(z(!0),B(R,null,I(o.value.locales,e=>(z(),V(N(eC),{key:e},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,disabled:e===s.value,class:A([`group inline-flex h-7 shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md border pl-1.5 pr-2 text-[12px] transition-colors`,e===s.value?`border-primary/40 bg-primary/10 cursor-default`:_(e)?`border-input bg-card text-foreground hover:bg-muted`:`border-dashed border-border bg-transparent text-muted-foreground hover:bg-muted/50`]),onClick:t=>v(e)},[U(jw,{code:e,size:14},null,8,[`code`]),H(`span`,jI,j(e),1),e===s.value?(z(),B(`span`,MI,`src`)):(z(),B(`span`,{key:1,class:A([`grid size-3.5 place-items-center rounded-[3px] border`,_(e)?`border-primary bg-primary text-primary-foreground`:`border-border text-transparent`])},[U(N(Du),{class:`size-2.5`,"stroke-width":3})],2))],10,AI)]),_:2},1024),U(N(qC),null,{default:P(()=>[W(j(e===s.value?`Source language — always imported`:_(e)?`Click to exclude`:`Click to include`),1)]),_:2},1024)]),_:2},1024))),128))])]),o.value.sampleKeys.length?(z(),B(`div`,NI,[H(`div`,PI,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3 py-2 text-[13px] text-muted-foreground transition-colors hover:bg-muted/50`,onClick:t[2]||=e=>l.value=!l.value},[U(N(ku),{class:A([`size-3.5 shrink-0 transition-transform`,l.value?`rotate-90`:``])},null,8,[`class`]),t[20]||=H(`span`,{class:`whitespace-nowrap`},`Preview sample keys`,-1),H(`span`,FI,j(g.value.glyph),1)]),l.value?(z(),B(`div`,II,[(z(!0),B(R,null,I(o.value.sampleKeys,e=>(z(),B(`div`,{key:e.key,class:`flex items-baseline gap-3 px-3 py-1.5 text-[12px]`},[H(`span`,LI,j(e.key),1),H(`span`,RI,j(e.value),1)]))),128)),x.value>0?(z(),B(`div`,zI,` + `+j(x.value.toLocaleString())+` more keys `,1)):G(``,!0)])):G(``,!0)])])):G(``,!0)]),H(`div`,BI,[U(N($),{variant:`ghost`,size:`sm`,onClick:t[3]||=e=>r(`dismiss`)},{default:P(()=>[...t[21]||=[W(`Skip`,-1)]]),_:1}),U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`label`,VI,[gr(H(`input`,{type:`checkbox`,"data-testid":`cldr-toggle`,"onUpdate:modelValue":t[4]||=e=>p.value=e,class:`size-3.5 accent-primary`},null,512),[[Fl,p.value]]),t[22]||=W(` Convert plurals to CLDR categories `,-1)])]),_:1}),U(N(qC),{class:`max-w-xs`},{default:P(()=>[...t[23]||=[W(`Rewrite exact =N plural selectors (e.g. =1) into each language's CLDR plural categories, the way Crowdin does.`,-1)]]),_:1})]),_:1}),H(`div`,HI,[U(N($),{"data-testid":`import-btn`,disabled:b.value===0,onClick:S},{default:P(()=>[U(N(Ad),{class:`size-4`}),W(` Import `+j(b.value)+` `+j(b.value===1?`locale`:`locales`),1)]),_:1},8,[`disabled`])])])],64)):a.value===`importing`?(z(),B(R,{key:1},[U(N(dv),{class:`sr-only`},{default:P(()=>[...t[24]||=[W(`Importing translations`,-1)]]),_:1}),H(`div`,UI,[U(N($u),{class:`size-10 text-primary gf-spin`}),H(`div`,null,[t[25]||=H(`div`,{class:`text-sm font-semibold`},`Importing translations…`,-1),o.value?(z(),B(`div`,WI,` Reading `+j(o.value.keyCount.toLocaleString())+` keys across `+j(b.value)+` locales `,1)):G(``,!0)])])],64)):a.value===`done`&&d.value?(z(),B(R,{key:2},[H(`div`,GI,[H(`div`,KI,[H(`div`,qI,[U(N(Du),{class:`size-6`,"stroke-width":2.5})]),H(`div`,null,[U(N(dv),{class:`text-base font-semibold`},{default:P(()=>[...t[26]||=[W(`Import complete`,-1)]]),_:1}),U(N(ov),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[H(`span`,JI,j(d.value.keyCount.toLocaleString())+` keys`,1),t[27]||=W(` across `,-1),H(`span`,YI,j(d.value.localeCount)+` locales`,1),t[28]||=W(` imported. `,-1)]),_:1})])]),d.value.warnings.length?(z(),B(`div`,XI,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3 py-2.5 text-left`,onClick:t[5]||=e=>u.value=!u.value},[U(N(Td),{class:`size-3.5 shrink-0 text-warning`}),H(`span`,ZI,j(d.value.warnings.length)+` `+j(d.value.warnings.length===1?`warning`:`warnings`),1),t[29]||=H(`span`,{class:`whitespace-nowrap text-[12px] text-warning/70`},`· import still succeeded`,-1),U(N(ku),{class:A([`ml-auto size-3.5 shrink-0 text-warning transition-transform`,u.value?`rotate-90`:``])},null,8,[`class`])]),u.value?(z(),B(`ul`,QI,[(z(!0),B(R,null,I(d.value.warnings,(e,t)=>(z(),B(`li`,{key:t,class:`px-3 py-2 text-[12px] text-muted-foreground`},j(e),1))),128))])):G(``,!0)])):G(``,!0)]),H(`div`,$I,[H(`div`,eL,[U(N($),{onClick:t[6]||=e=>r(`imported`)},{default:P(()=>[t[30]||=W(`Open editor `,-1),U(N(bu),{class:`size-4`})]),_:1})])])],64)):a.value===`error`?(z(),B(R,{key:3},[H(`button`,{type:`button`,class:`absolute right-3.5 top-3.5 z-10 grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:t[7]||=e=>r(`dismiss`)},[U(N(kd),{class:`size-4`})]),H(`div`,tL,[H(`div`,nL,[H(`div`,rL,[U(N(Td),{class:`size-5`})]),H(`div`,iL,[U(N(dv),{class:`text-base font-semibold`},{default:P(()=>[...t[31]||=[W(`Couldn't import translations`,-1)]]),_:1}),U(N(ov),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[W(j(f.value),1)]),_:1})])])]),H(`div`,aL,[H(`div`,oL,[U(N($),{variant:`outline`,onClick:t[8]||=e=>r(`dismiss`)},{default:P(()=>[...t[32]||=[W(`Dismiss`,-1)]]),_:1})])])],64)):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),cL=`glotfile-theme`,lL=[`system`,`light`,`dark`],uL=e=>lL.includes(e);function dL(){let e=localStorage.getItem(cL);return uL(e)?e:`system`}var fL=window.matchMedia(`(prefers-color-scheme: dark)`),pL=M(fL.matches);fL.addEventListener(`change`,e=>{pL.value=e.matches});var mL=M(dL()),hL=q(()=>mL.value===`system`?pL.value:mL.value===`dark`);function gL(){document.documentElement.classList.toggle(`dark`,hL.value)}function _L(){Er(hL,gL,{immediate:!0,flush:`sync`})}function vL(e){mL.value=e,localStorage.setItem(cL,e),uf({theme:e}).catch(()=>{})}async function yL(){try{let{theme:e}=await lf();uL(e)&&e!==mL.value&&(mL.value=e,localStorage.setItem(cL,e))}catch{}}var bL={class:`flex flex-col items-center gap-0.5 rounded-lg bg-black/15 p-0.5`},xL=[`data-mode`,`aria-label`,`aria-pressed`,`onClick`],SL=F({__name:`ThemeToggle`,setup(e){let t=[{value:`light`,label:`Light`,icon:xd},{value:`system`,label:`System`,icon:nd},{value:`dark`,label:`Dark`,icon:rd}];return(e,n)=>(z(),B(`div`,bL,[(z(),B(R,null,I(t,e=>U(N(eC),{key:e.value},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"data-mode":e.value,"aria-label":e.label,"aria-pressed":N(mL)===e.value,class:A(N(lh)(`flex size-8 items-center justify-center rounded-md transition-colors`,N(mL)===e.value?`bg-primary text-primary-foreground`:`text-rail-foreground/70 hover:bg-white/10 hover:text-rail-foreground`)),onClick:t=>N(vL)(e.value)},[(z(),V(ia(e.icon),{class:`size-4`}))],10,xL)]),_:2},1024),U(N(qC),{side:`right`},{default:P(()=>[W(j(e.label),1)]),_:2},1024)]),_:2},1024)),64))]))}}),CL=F({__name:`Kbd`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`kbd`,{class:A(N(lh)(`inline-flex h-5 min-w-5 items-center justify-center rounded border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground`,e.$props.class))},[L(e.$slots,`default`)],2))}}),wL=[{route:`editor`,keys:[`g`,`e`],label:`Editor`},{route:`analytics`,keys:[`g`,`a`],label:`Analytics`},{route:`glossary`,keys:[`g`,`g`],label:`Glossary`},{route:`screenshots`,keys:[`g`,`i`],label:`Screenshots`},{route:`settings`,keys:[`g`,`s`],label:`Settings`},{route:`activity`,keys:[`g`,`l`],label:`Activity`},{route:`docs`,keys:[`g`,`d`],label:`Docs`}];function TL(e,t){if(e.pending===`g`){let e=wL.find(e=>e.keys[1]===t);return{state:{pending:null},action:e?{type:`navigate`,route:e.route}:null}}return t===`g`?{state:{pending:`g`},action:null}:t===`?`?{state:{pending:null},action:{type:`toggleHelp`}}:{state:{pending:null},action:null}}var EL={class:`flex w-14 shrink-0 flex-col items-center gap-1 bg-rail py-3 text-rail-foreground`},DL=[`aria-label`,`onClick`],OL={key:0,class:`flex items-center gap-0.5`},kL={class:`mt-auto flex flex-col items-center gap-1.5`},AL={class:`font-mono text-[10px] text-rail-foreground/50`},jL=F({__name:`NavRail`,setup(e){let t=Mp(),n=[{id:`editor`,label:`Editor`,icon:Zu},{id:`analytics`,label:`Analytics`,icon:Eu},{id:`glossary`,label:`Glossary`,icon:Tu},{id:`screenshots`,label:`Screenshots`,icon:Yu},{id:`settings`,label:`Settings`,icon:md},{id:`activity`,label:`Activity`,icon:fd},{id:`docs`,label:`Docs`,icon:Cu}].map(e=>({...e,keys:wL.find(t=>t.route===e.id)?.keys}));return(e,r)=>(z(),V(N(XS),{"delay-duration":300},{default:P(()=>[H(`nav`,EL,[r[0]||=H(`div`,{class:`mb-3 flex size-9 items-center justify-center rounded-md bg-primary font-mono text-base font-semibold text-primary-foreground`},` G `,-1),(z(!0),B(R,null,I(N(n),e=>(z(),V(N(eC),{key:e.id},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"aria-label":e.label,class:A(N(lh)(`relative flex size-10 items-center justify-center rounded-md transition-colors`,N(t)===e.id?`bg-primary text-primary-foreground`:`text-rail-foreground/70 hover:bg-white/10 hover:text-rail-foreground`)),onClick:t=>N(jp)(e.id)},[(z(),V(ia(e.icon),{class:`size-5`}))],10,DL)]),_:2},1024),U(N(qC),{side:`right`,class:`flex items-center gap-2`},{default:P(()=>[H(`span`,null,j(e.label),1),e.keys?(z(),B(`span`,OL,[(z(!0),B(R,null,I(e.keys,(e,t)=>(z(),V(CL,{key:t},{default:P(()=>[W(j(e),1)]),_:2},1024))),128))])):G(``,!0)]),_:2},1024)]),_:2},1024))),128)),H(`div`,kL,[U(SL),H(`span`,AL,`v`+j(N(`0.8.3`)),1)])])]),_:1}))}}),ML={class:`flex flex-col gap-1`},NL={class:`flex items-center gap-1`},PL={class:`flex items-center justify-between py-1 text-sm`},FL={class:`flex items-center gap-1`},IL=F({__name:`ShortcutsDialog`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:[`update:open`],setup(e){let t=Xa(e,`open`);return(e,n)=>(z(),V(N(C_),{open:t.value,"onUpdate:open":n[0]||=e=>t.value=e},{default:P(()=>[U(N(NC),{class:`max-w-sm`},{default:P(()=>[U(N(PC),null,{default:P(()=>[U(N(IC),null,{default:P(()=>[...n[1]||=[W(`Keyboard shortcuts`,-1)]]),_:1})]),_:1}),H(`ul`,ML,[(z(!0),B(R,null,I(N(wL),e=>(z(),B(`li`,{key:e.route,class:`flex items-center justify-between py-1 text-sm`},[H(`span`,null,j(e.label),1),H(`span`,NL,[(z(!0),B(R,null,I(e.keys,(e,t)=>(z(),V(CL,{key:t},{default:P(()=>[W(j(e),1)]),_:2},1024))),128))])]))),128)),H(`li`,PL,[n[3]||=H(`span`,null,`Search keys`,-1),H(`span`,FL,[U(CL,null,{default:P(()=>[...n[2]||=[W(`/`,-1)]]),_:1})])])])]),_:1})]),_:1},8,[`open`]))}}),LL=M(!1),RL=1e3;function zL(){let e={pending:null},t=null;function n(){t!==null&&(clearTimeout(t),t=null)}function r(r){if(r.metaKey||r.ctrlKey||r.altKey||r.repeat)return;let i=r.target;if(i&&(i.tagName===`INPUT`||i.tagName===`TEXTAREA`||i.isContentEditable))return;let a=r.key.toLowerCase(),o=!!document.querySelector(`[role="dialog"],[role="menu"],[role="listbox"]`),s=a===`?`&&LL.value;if(o&&!s)return;let c=TL(e,a);e=c.state,n(),e.pending===`g`&&(t=window.setTimeout(()=>{e={pending:null},t=null},RL));let{action:l}=c;l&&(l.type===`navigate`?jp(l.route):LL.value=!LL.value,r.preventDefault())}Gi(()=>window.addEventListener(`keydown`,r)),Yi(()=>{n(),window.removeEventListener(`keydown`,r)})}var BL={class:`flex h-screen bg-background text-foreground`},VL={class:`flex min-w-0 flex-1 flex-col`},HL={class:`flex h-12 shrink-0 items-center justify-between border-b px-4`},UL={class:`flex min-w-0 items-center gap-3`},WL={key:0,class:`flex min-w-0 items-center gap-1.5`},GL={class:`max-w-[12rem] shrink-0 truncate font-mono text-sm font-medium`},KL={class:`truncate`},qL={key:0,class:`text-muted-foreground`},JL={class:`text-sm font-semibold`},YL={class:`font-mono`},XL={class:`flex min-h-0 flex-1 flex-col overflow-hidden`},ZL=F({__name:`App`,setup(e){let t=Mp();zL();let n=un(null),r=M(null),i=M([]),a=q(()=>[...i.value].sort((e,t)=>{let n=e.relDir?`${e.relDir}/${e.name}`:e.name,r=t.relDir?`${t.relDir}/${t.name}`:t.name;return n.localeCompare(r)})),o=M(!1),s=M(null);async function c(){n.value=await jd()}Th(c),Gi(async()=>{await c(),Ch();try{[r.value,i.value]=await Promise.all([kf(),Af()]),document.title=r.value.project?`${r.value.project} — Glotfile`:`Glotfile`}catch(e){Q.error(e.message)}n.value&&Object.keys(n.value.keys).length===0&&(o.value=!0)});function l(){location.reload()}async function u(e){if(e!==r.value?.path)try{await jf(e),location.reload()}catch(e){Q.error(e.message)}}let d=q(()=>({editor:`Editor`,analytics:`Analytics`,glossary:`Glossary`,screenshots:`Screenshots`,settings:`Settings`,activity:`Activity`,docs:`Docs`})[t.value]),f=q(()=>{if(!n.value)return null;let{sourceLocale:e,locales:t}=n.value.config;return{source:e,targets:t.filter(t=>t!==e)}});return(e,n)=>(z(),V(N(XS),{"delay-duration":300},{default:P(()=>[H(`div`,BL,[U(jL),H(`div`,VL,[H(`header`,HL,[H(`div`,UL,[r.value?(z(),B(`div`,WL,[U(N(eC),null,{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`span`,GL,j(r.value.project),1)]),_:1}),U(N(qC),{side:`bottom`,class:`font-mono`},{default:P(()=>[W(j(r.value.dir),1)]),_:1})]),_:1}),U(N(ku),{class:`size-3.5 shrink-0 text-muted-foreground`}),U(N(Qx),null,{default:P(()=>[U(N(iS),{"as-child":``},{default:P(()=>[U(N($),{variant:`outline`,size:`sm`,class:`max-w-[16rem] gap-1.5 font-mono`},{default:P(()=>[H(`span`,KL,j(r.value.name),1),U(N(Au),{class:`size-3.5 shrink-0 text-muted-foreground`})]),_:1})]),_:1}),U(N(RC),{align:`start`,class:`w-max`},{default:P(()=>[(z(!0),B(R,null,I(a.value,e=>(z(),V(N(zC),{key:e.path,class:`font-mono`,onSelect:t=>u(e.path)},{default:P(()=>[U(N(Du),{class:A([`size-4 shrink-0`,e.path===r.value.path?`opacity-100`:`opacity-0`])},null,8,[`class`]),H(`span`,null,[e.relDir?(z(),B(`span`,qL,j(e.relDir)+`/`,1)):G(``,!0),W(j(e.name),1)])]),_:2},1032,[`onSelect`]))),128))]),_:1})]),_:1})])):G(``,!0),H(`h1`,JL,j(d.value),1)]),f.value?(z(),V(N(eC),{key:0},{default:P(()=>[U(N(aC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`shrink-0 font-mono text-xs text-muted-foreground transition-colors hover:text-foreground`,onClick:n[0]||=e=>N(jp)(`settings`)},j(f.value.source)+` → `+j(f.value.targets.length)+` `+j(f.value.targets.length===1?`locale`:`locales`),1)]),_:1}),U(N(qC),{side:`bottom`,class:`max-w-[28rem] leading-relaxed`},{default:P(()=>[H(`div`,YL,j(f.value.targets.join(`, `)||`—`),1),n[4]||=H(`div`,{class:`mt-1 text-background/60`},`Click to manage in Settings`,-1)]),_:1})]),_:1})):G(``,!0)]),H(`main`,XL,[N(t)===`editor`?(z(),V(NO,{key:0})):N(t)===`analytics`?(z(),V(DA,{key:1})):N(t)===`glossary`?(z(),V($A,{key:2})):N(t)===`screenshots`?(z(),V(hF,{key:3})):N(t)===`settings`?(z(),V($P,{key:4})):N(t)===`activity`?(z(),V(HF,{key:5})):N(t)===`docs`?(z(),V(iI,{key:6})):G(``,!0)])]),U(N(hh)),U(IL,{open:N(LL),"onUpdate:open":n[1]||=e=>ln(LL)?LL.value=e:null},null,8,[`open`]),o.value?(z(),V(sL,{key:0,ref_key:`wizardRef`,ref:s,onVnodeMounted:n[2]||=e=>s.value?.init(),onDismiss:n[3]||=e=>o.value=!1,onImported:l},null,512)):G(``,!0)])]),_:1}))}});_L(),iu(ZL).mount(`#app`),yL(),sO(),TT();